v4vx

Member
  • Content Count

    471
  • Joined

  • Last visited

  • Points

    1,642 [ Donate ]

Community Reputation

68 Aimé

About v4vx

  • Rank
    Dev PHP
  • Birthday 12/19/1995

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Le forum qui a connu mes premières lignes de code Bravo pour les 10 ans !
  2. Actuellement il y a : connexion, liste perso, entré IG gestion items (pas de pano encore) echanges dialogues déplacement chat commandes admin (et bientôt joueurs) Merci
  3. Yo les gens, je vous présente mon petit ému, parti d'aucune base (les bases java actuelles sont trop à chier x) ) Objetifs Cet émulateur a été créé principalement pour m'entrainer, et utiliser différents design pattern, et pas vraiment pour faire un serveur, ou qu'il soit vraiment exploitable et débug 100%. Je l'ai dev dans l'optique qu'il soit le plus propre possible, le plus modulable et performant. Pour ce faire j'ai ajouté une API de scripting javascript, en utilisant l'excellentissime moteur rhino de Mozilla. Fonctionnalités Apache mina comme fw réseau API scripting js (mozilla rhino) système de packets très extensible (future) possibiliter de faire tourner plusieurs versions de dofus 1.x.x Lazy-loading Système de commande beaucoup plus flexible Mono serveur la plupart des actions, fonctionnalités peuvent être étendues et modifiés via l'API de scripting API de scripting Ajout de packet : network.game.GameInputHandler.instance().registerPacket({ id: function(){ return 'AP'; //id du packet (pa exemple generation du nom) }, perform: function(extra, session){ //action à faire Shell.println('Using API !'); var name = ''; var voy = 'aeiouy'; var cons = 'bcdfghjklmnpqrstvwxz'; var useVoy = true; for(var i = 0; i < 12; ++i){ if(useVoy) name += voy.charAt(Utils.rand(0, voy.length)); else name += cons.charAt(Utils.rand(0, cons.length)); useVoy = !useVoy; } GamePacketEnum.CHARACTER_GENERATOR_NAME.send(session, name); } }); Ajout d'une commande : CommandsHandler.instance().registerCommand(JavaAdapter(Command, { name : function(){ return "useless"; //nom de la commande }, perform: function(args, asker){ asker.write("I am useless !"); } })); Modification d'un générateur de packets : var generators = network.generators; var Element = game.objects.dep.Stats.Element; var PlayerGenerator = JavaAdapter(generators.PlayerGenerator, { generateGM: function(player){ return player.getCell().getID() + ';' + player.orientation + ';' + player.getID() + ';' + player.getName() + ';' + player.getClassID() + ';' + player.getGfxID() + ';' + player.getSexe() + ';' + '0,' + '0,' + '0,' + player.getID() + ';' + jelly.Utils.implode(';', player.getColors()) + ';' + player.getGMStuff() + ';' + (player.getLevel() > 99 ? '1' : '0') + ';' //aura + ';' //emote + ';' //emote timer + ';;' // ? + player.restriction + ';' + ';;'; }, generateAs: function(player){ var packet = ''; packet += '0' + '|' + '0' + '|' + '150' + '|'; //cur xp | min xp | max xp packet += player.getPDVMax() + '|' + player.getPDVMax() + '|'; //cur pvd | max pdv packet += player.getTotalStats().get(Element.PA) + '|' + player.getTotalStats().get(Element.PM) + '|'; packet += 18765 + '|'; //kamas packet += player.getBaseStats().get(Element.FORCE) + '|' + player.getBaseStats().get(Element.FORCE) + '|'; packet += player.getBaseStats().get(Element.VITA) + '|' + player.getBaseStats().get(Element.VITA) + '|'; packet += player.getBaseStats().get(Element.DOMMAGE) + '|' + player.getBaseStats().get(Element.DOMMAGE) + '|'; packet += player.getBaseStats().get(Element.CHANCE) + '|' + player.getBaseStats().get(Element.CHANCE) + '|'; packet += player.getBaseStats().get(Element.AGILITE) + '|' + player.getBaseStats().get(Element.AGILITE) + '|'; packet += player.getBaseStats().get(Element.INTEL) + '|' + player.getBaseStats().get(Element.INTEL) + '|'; packet += 0 + '|' + 0 + '|'; //capital | spell pts packet += player.getTotalStats().get(Element.PO) + '|'; packet += "10000|10000|"; //energie packet += "0|"; //align ? packet += player.getTotalStats().get(Element.INVOC) + '|'; packet += player.getInitiative() + '|'; packet += player.getProspection(); return packet; } }); generators.GeneratorsRegistry.setPlayer(PlayerGenerator); Ajout d'un canal de discution game.chat.ChatHandler.instance().registerChannel({ id: function(){ return '&'; //[id] du canal (BM[id]|[message]) }, post: function(msg, player){ GamePacketEnum.CHAT_MESSAGE_OK.sendToAll('|' + player.getID() + '|' + player.getName() + '|' + msg); Shell.println("Message envoyé à tous !"); }, condition: function(){ return new jelly.filters.YesFilter(); } }); Execution de scripts : API.execute("monScript"); // exécute un fichier js (ne pas mettre l'extension !) API.execDir("monDir/monSousDir"); //exécute tout les scripts du dossier indiqué Remerciements Blackrush pour ces conseils java Sébastien NEDJAR prof (de java) à mon IUT Mohammed pour son soutien Ankama-games pour leur super jeu Liens : GitHub : ICI --- Download
  4. id en auto_increment (la base quoi), et puis sa n'empèche qu'il reste toujours la faille SQL
  5. Ce n'est pas ton code... Car si tu ne sais pas coder, go sur [Hidden Content] apprends le php, puis enfin tu peux nous dire que tu n'y arrives pas !
  6. Faut peut-être que tu nous donnes le script que tu as fait pour delete ?
  7. Supprimes plutôt via un id, car avec l'encodage et tout le bordel, sa marchera pas. De plus, grosse faille SQL... As tu pensé si le titre de ta new contenait un " ?
  8. putty est un logiciel pour protocole ssh, pour se.connecter à un dédié quoi. FreeBSD est un OS. Donc rien à voir entre les deux.
  9. Putin, tu aimes les gros frameworks bien lourd toi
  10. tu peux le faire, vus que tu l'as déjà fait, et que tu peux modifier mon post x) Mais je vais y bosser
  11. Ajout d'un lien de test : [Hidden Content] Pour tester les comptes : test1 / test (compte valide) test / test (banni) J'ai actuellement désactivé l'inscription, à cause d'un petit bug, je le remet d'ici ce soir.
  12. UP: ajout du comparatif mysql / SQLite.
  13. Pour information LIMIT 0, x peut être utilisé LIMIT x. Plus rapide, plus simple et plus beau