SQL 6xx Quete d'escorte & SmartAI
#1
[Image: quete_descorte.jpg]


Le tuto du jour portera sur une quête d'escorte , exemple : la quête "Sortez-moi de là ! 25332" .
Quete simple ou Kristoff Manheim , prisonnier des ogres du taudis , nous demande de l'aider a s'évader de cette grotte . 

Le principe est simple , un`waypoint` pour définir le chemin qu'il va suivre et un petit script en SmartAI pour gérer tout cela. , smartai ne gère pas waypoint_data mais uniquement waypoint .
  • waypoint : D'origine il est impossible de créer dans le jeu un waypoint parce qu'il ni a pas de commande , par contre l'on peut créer un waypoint_data avec la commande  .wp add ID . Bien entendu l'ID ne doit pas exister dans ces 2 tables , il suffit ensuite de convertir les lignes waypoint_data en waypoint.
  • Le script SmartAi : en 3 lignes 
  1. EVENT_ACCEPTED_QUEST (19)  ->  ACTION_WP_START (53) : Si l'on prend la quete 25332 alors le PNJ (TARGET_SELF) commence a suivre le waypoint
  2. EVENT_WAYPOINT_REACHED (40)  ->  ACTION_CALL_KILLEDMONSTER (33) : si le joueur atteint une certaine étape du waypoint , alors le joueur (TARGET_ACTION_INVOKER) reçoit le crédit de quete , crédit pouvant etre trouvé grace a Keira2.
  3. EVENT_DEATH (6) ->  ACTION_FAIL_QUEST (6) : si le pnj meurt alors la quete a échoué , il vous faudra alors l'abandonnée attendre le respawn du pnj et la reprendre .
A noter pour la 1ere ligne qui lance le waypoint , il est possible de définir le despawn du pnj a la fin du parcours , de le faire courir et aussi son attitude passive , défensive ou agressive . 
Il aurait aussi été possible de rajouter des actions comme changer le mode courir , lui faire faire une pause ou parler , etc , pour cela il aurait suffit de rajouter des lignes détectant qu'une étape x a été atteinte grâce a EVENT_WAYPOINT_REACHED (40)


Citation :-- Kristoff Manheim SAI
SET @ENTRY := 39640;
UPDATE `creature_template` SET `AIName`="SmartAI" WHERE `entry`=@ENTRY;
DELETE FROM `smart_scripts` WHERE `entryorguid`=@ENTRY AND `source_type`=0;
INSERT INTO `smart_scripts` (`entryorguid`,`source_type`,`id`,`link`,`event_type`,`event_phase_mask`,`event_chance`,`event_flags`,`event_param1`,`event_param2`,`event_param3`,`event_param4`,`action_type`,`action_param1`,`action_param2`,`action_param3`,`action_param4`,`action_param5`,`action_param6`,`target_type`,`target_param1`,`target_param2`,`target_param3`,`target_x`,`target_y`,`target_z`,`target_o`,`comment`) VALUES
(@ENTRY,0,0,0,19,0,100,0,25332,0,0,0,53,0,11043846,0,0,5000,1,1,0,0,0,0,0,0,0,"Quete 25332 - start WP"),
(@ENTRY,0,10,0,40,0,100,0,20,11043846,0,0,33,39808,0,0,0,0,0,7,0,0,0,0,0,0,0,"Quete 25332 - Credit"),
(@ENTRY,0,15,0,6,0,100,0,0,0,0,0,6,25332,0,0,0,0,0,7,0,0,0,0,0,0,0,"Quete 25332 - echec quete ");


Voila , un tuto que j'ai voulu très simple , d'ou le minimun de lignes et d'actions . Bon jeu a vous Smile


[Image: quete_descorte2.jpg]
Répondre
#2
Superbe encore une fois, merci beaucoup pour ton tutoriel.
Si tu avances, tu meurs ... si tu recules, tu meurs ... alors dis moi ... pourquoi tu recules?
(Proverbe mongol)
Répondre
#3
Il est simple celui la , mais comme j'ai du en faire 2 pour le debug de hyjal je me suis dit que sa serait sympa pour un debutant . Sa lui permet surtout de mettre le pied a l'etriė .
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 2 visiteur(s)