16/03/2019, 18:30
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
- 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
- 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.
- 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 .
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