SQL Triggler et SmartAI
#1
[Image: Triggler-01.jpg]

Un triggler c'est quoi au juste ?

Un triggler ce n'est rien d'autre qu'un mob invisible (flags_extra 128) généralement passif , qui n'agresse pas (unit_flags 131072) et ne peux être attaquer (unit_flags 2) ... bref un mob qui ne sert a rien !!!
Et bien détrompez vous , ce mob qui ne sert a rien est indispensable et vraiment très utile dans le cas par exemple d'une quête ou pour déclencher un événement .
  • Par exemple , de manière simple celui ci peut détecter le mouvement d'un joueur et invoquer des agresseurs a sa position . 
  • Dans le cadre d'une quête il peut être invoqué a une position pour une certaine durée . Afin d'introduire un peut d'aléatoire et que les mobs ne soient pas invoqués toujours au même endroit l'on pourra le faire bouger de différentes versions .
  • Détecter un joueur et lui attribuer un crédit de quête dans le cadre d'une exploration .
Un exemple concret sur ces screens :
  • Le trigger en forme de diablotin sous la tente détecte que le joueur a une certaine distance utilise la torche pour brûler la tente ( Rasez le poste de Navrecorne ! 27429 (a2) - 27296 (h2) )
  • Lui crédite la quete
  • Spam pour 20s des PNJ flamme sur les trigglers en forme de boules blanches dans un rayon de 15m comme sur l'image ci dessous 
Et vous voila incendiaire Big Grin

[Image: Triggler-02.jpg]



Le SmartAI du triggler diablotin :
  • La 1ere ligne : (EVENT_SPELLHIT) détecte que le joueur utilise le sort 42356 utilisé par la torche et crédite la quete du joueur (ACTION_CALL_KILLEDMONSTER) 
  • La 2eme ligne qui est lié (EVENT_LINK) a la 1ere ligne  invoquera des flammes pour 20s a la position des autres triggler (boules blanches) dans un rayon de 15m .
Citation :-- North Tent SAI
SET @ENTRY := 23751;
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,10,8,0,100,0,42356,0,3500,3500,33,23751,0,0,0,0,0,7,0,0,0,0,0,0,0,"North Tent - On Spellhit 'Burn Direhorn Post' - Quest Credit 'Raze Direhorn Post!'"),
(@ENTRY,0,10,0,61,0,100,0,0,0,0,0,12,15000064,2,20000,0,0,0,9,15000079,0,15,0,0,0,0,"Rasez le poste de Navrecorne ! 27429 (a2) - 27296 (h2) : visuel flammes");

Voila pour le mini tuto qui j’espère vous ouvrira les yeux sur cette possibilité que sont les triggler . Pour accompagner ce tuto , une petite liste de PNJ perso qui peuvent être utilisé dans ce cas la et qui sont déja présent dans la DB .
  • 15000031 generateur de tremblement de terre 500ms (.learn 6524) 
  • 15000033 Tas de boiz Azshara - quete Il faut bûcher 14134
  • 15000038 Appuyez sur le bouton ! 14477 
  • 15000045 Lapins Curieux
  • 15000063 flame x1
  • 15000064 flame x2
  • 15000065 flame x3
  • 15000066 flame x4
  • 15000079 TRIGGER WORLD GENERIQUE
  • 15000157 TRIGGER WORLD GENERIQUE 1 
  • 15000158 TRIGGER WORLD GENERIQUE 2 
  • 15000159 TRIGGER WORLD GENERIQUE 3 
  • 15000160 TRIGGER WORLD GENERIQUE 4 
  • 15000161 TRIGGER WORLD GENERIQUE 5 
  • 15000171 Flamme x3 pour extinction (basé sur .npc add 15000065 - Sceau pour eteindre : item 46094/Spell 64558)
Répondre
#2
Bravo et merci pour ce superbe tutoriel
Si tu avances, tu meurs ... si tu recules, tu meurs ... alors dis moi ... pourquoi tu recules?
(Proverbe mongol)
Répondre
#3
Instructif ! Merci bien ^_^
Répondre


Atteindre :


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