Cela fait un moment que je voulais faire ce tuto , mais un bug du core rendait ces véhicules pratiquement inutiles puisque l'on était dismount a chaque changement de zone .
Heureusement le grand Zorro ... heuuu le grand Noc est arrivé et a balayé ce " petit " souci ... qui m'emm****** depuis toujours .
En remerciement de ce haut fait je vous demanderais de commencer chaque prochaine réponse de ce post par un copier/coller de la phrase qui suit :
Merci Monsieur Noc
Un véhicule comme un char du Joug n'est rien d'autre a la base qu'un MOB , a ne pas confondre avec une monture invoqué .
Généralement en passif il est possible de lui affecter tout comme pour un MOB classique une IA grâce a SmartAI . Par exemple :
- Suivre un waitpoint_data et ainsi en faire un moyen de transport comme les griffons .
- Despawn le véhicule lorsqu'on le quitte (ceci afin de ne pas retrouver les véhicules n'importe ou ) .
L'exemple ci dessous est assez explicite et peux donc être reprit en copier/coller . Afin de rendre ce script compatible toute version , je l'ai basé sur des UPDATE plutot que des REPLACE . Le mob doit donc exister , au pire faite une copie d'un deja existant .
Citation :SET @ENTRY := 40791 ;
SET @Name := "Dirigeable";
SET @IconName := "vehichleCursor"; # Directions , Gunner , vehichleCursor , Driver , Attack , Buy , Speak , Pickup , Interact , Trainer , Taxi , Repair , LootAll , Quest , PVP
SET @modelid1 := 31757 ;
SET @subname :="" ;
SET @level := 45;
SET @speed := 2.5;
SET @faction := 35; # neutre 35 - Alliance 11 - Horde 85
SET @Vehicleid := 2211; # Determine ou apparait le joueur : default/debout 224 | cheval 156 | invisible 292 | canon 972 | armoire 212 | 2211 Montgolfière
# pas dinterface 0 - Dirigeable/debout 219 | Assis 615 - avance/recule en ligne droite 292 - 164 inertie char - en dessous 527
# player invisible 292 - voler ?! 508 - mamouth 312/72 - cheval 62 - ours 53 - griffon 44 - ours53 - avion 44
# 316 sans interface avec bouton sortie
SET @movementId := 0 ; # 180/156
SET @AIName := "SmartAI";
SET @InhabitType := 4; # 1 terre - 2 mer - 4 air
SET @HoverHeight :=1 ; # 1 voler temporairement - Peut provoquer des tremblement avec des waypoint_data
SET @taille := 0.75 ;
SET @classe := 2; # WARRIOR (1) - PALADIN (2) - ROGUE (4) - MAGE(8)
SET @unit_flags := 16908290;
SET @unit_flags2 :=2112; # Defaut 2048 - mouvement forcé = 2112
SET @npcflag := 50331648;
SET @type_flags := 0;
SET @type_flags2 := 0;
SET @dynamicflags :=0;
SET @type := 1 ; # Bete (1) - Mecanique (9) - Totem (11) - Humanoid (7) - Dragon (2) - Not specified (10) - elementaire (4)
SET @spell1 := 0;
SET @spell2 := 0 ; # Belier 62376 - Roquete 43769
SET @spell3 := 0 ;
SET @spell4 := 0 ;
SET @spell5 := 0 ;
SET @spell6 := 0 ;
SET @`flagsextra` = 0 ;
SET @RegenHealth := 1;
SET @HealthModifier :=1;
SET @ManaModifier :=1;
SET @ArmorModifier :=1;
SET @DamageModifier :=1;
SET @mechanic_immune_mask := 344407931;
UPDATE `world`.`creature_template` SET `modelid1`=@modelid1,`modelid2`=0,`modelid3`=0,`modelid4`=0,`flags_extra` = @`flagsextra` WHERE `creature_template`.`entry` = @ENTRY ;
UPDATE `world`.`creature_template` SET `unit_flags2`=@unit_flags2,`exp`=0,`mechanic_immune_mask`=@mechanic_immune_mask, `IconName`=@IconName,`name` = @Name ,`subname`=@subname,`minlevel`=@level,`maxlevel`=@level,`speed_run`=@speed,`speed_walk`=@speed,`scale`=@taille,`unit_class`=@classe,`unit_flags`=@unit_flags,`npcflag`=@npcflag,`type_flags`=@type_flags,`type_flags2`=@type_flags2,`dynamicflags`=@dynamicflags,`type`=@type,`spell1`=@spell1 ,`spell2`=@spell2,`spell3`=@spell3,`spell4`=@spell4,`spell5`=@spell5,`spell6`=@spell6,`HoverHeight`=@HoverHeight,`InhabitType`=@InhabitType,`AIName`=@AIName,`movementId`=@movementId,`faction`=@faction,`Vehicleid`=@Vehicleid,`RegenHealth`=@RegenHealth,`HealthModifier`=@HealthModifier,`ManaModifier`=@ManaModifier,`ArmorModifier`=@ArmorModifier,`DamageModifier`=@DamageModifier WHERE `creature_template`.`entry` = @ENTRY ;
DELETE FROM `world`.`npc_spellclick_spells` WHERE `npc_spellclick_spells`.`npc_entry` = @ENTRY;
INSERT INTO `npc_spellclick_spells` (`npc_entry`, `spell_id`, `cast_flags`, `user_type`) VALUES (@ENTRY, 65030, 1, 1); # Pour pouvoir le conduire
REPLACE INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `auras`) VALUES (@ENTRY, 0, 0, 33554432, 1, 0, 43775); # Pour Voler , sinon rien
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,20,0,28,0,100,0,0,0,0,0,41,100,0,0,0,0,0,1,0,0,0,0,0,0,0,"despawn si plus de passager");
Dans le cas particulier ou ce véhicule devrait vous servir a combattre , sachez que vous ne gagnerez pas d'xp avec lui puisque cest lui qui kill et que ce n'est pas votre pet :p
Ci ce véhicule doit vous servir dans une quete pour comptabiliser un nombre de kill , il vous faudra transférer ces informations du véhicule au joueur avec une ligne SmartAI supplémentairement comme sur le screen ci dessous :