[CORE 6xx] PNJ choix Camp Panda , Race , Faction & Apparence - Version imprimable +- AquaYoup (https://aquayoup.123.fr) +-- Forum : Développement World of Warcraft (https://aquayoup.123.fr/forum-1.html) +--- Forum : Tutoriels (https://aquayoup.123.fr/forum-6.html) +--- Sujet : [CORE 6xx] PNJ choix Camp Panda , Race , Faction & Apparence (/thread-102.html) |
PNJ choix Camp Panda , Race , Faction & Apparence - Stitch - 22/01/2017 PNJ Changeur de Race , Faction , Look
Un PNJ qui peut être utile sur son serveur qui propose les options de bases pour changer son personnage de Camp Alliance/Horde , de Race , d'apparence ou n'on inclus d'origine pour choisir le camp des Pandarens .
Dans ce dernier cas les Pandarens commenceront dans l'Alliance et pourront par ce PNJ changer pour la Horde ou tout autre races mais devront avoir fait les quêtes de bases.
Les autres races pourront aussi changer pour devenir un Pandarens de leur camp par un menu dédié , l'autre camp Pandaren sera masqué .
Il est aussi possible d'adapter cette technique pour la fin des quetes Pandarens afin de remplacer l'option bugué du choix du camp mais je ne la développerais pas ici , je n'ai pas non plus inclus d'option de paiement comme il ce fait dans d'autres script (token), le PNJ est en accès libre et donc gratuit .
Pour ces opérations j'utiliserais la technique officielle qui permet de changer son personnage de camp en y ajoutant quelques variables : AT_LOGIN_*** et nécessitera donc une déco/reco apres son choix .
1) Dans un premier temps il nous faut le PNJ dans notre DB worlds , le voici . A vous de vous le personnaliser :
Citation :DELETE FROM `creature_template` WHERE (entry = 15000142); 2) Ensuite sont menu gossip dans le core pour proposer les divers choix : Ouvrez le fichier \src\server\scripts\World\npcs_special.cpp
Citation :new npc_changer(); //STITCH PNJ change race , faction , rename et custom 15000142
Citation :/*##############################################################################################Pour ce script je l'ai voulu facile d’accès aussi j'ai retiré certaines de mes options active ou en cour de dev . Vous remarquerez pour le choix du camp des Pandarens que ce choix propose 2 lignes , une pour l'alliance et une pour la Horde mais je joueur ne ce verra proposé que celle de son camp. Il vous est aussi possible sur le même procédé de limiter a une race ou une classe : if (Player->GetTeamId() == TEAM_ALLIANCE) { .... } ou de lancer un spell par exemple pour un visuel ou lancer une intro Player->CastSpell(Player, 113245, true); . J'aurais pu aussi incorporer le traitement du choix a ces lignes mais je n'ai pas voulu séparer la ligne qui passe automatiquement le panda neutre dans l'alliance par défaut . A vous d'adapter en fonction de vos humeur . 3) Choix de faction pour les Pandarens Les parties AT_LOGIN_CHANGE_RACE , AT_LOGIN_CHANGE_FACTION , AT_LOGIN_CUSTOMIZE et AT_LOGIN_RENAME sont incluses d'origines dans le core et il ni a donc rien d'autre a faire . Par contre les variables AT_LOGIN_allianceverspanda et AT_LOGIN_hordeverspanda n'existent pas d'origine et sont a rajouter dans \src\server\game\Entities\Player\Player.h , ajoutez la partie en vert : Citation :enum AtLoginFlags Vous remarquerez qu'a chaque option correspond un bit mais la valeur est exprimé en hexa : 1,2,4,8,16, ... et sont donc normalement cumulable . Pour des raisons pratiques j'ai retiré cette option cumulable dans les lignes qui suivront. Je terminerais par le traitement du choix des pandarens qui n'est rien d'autre qu'une requete SQL du core afin de changer la race dans la DB Character , d'ou le déco/Reco . Pour ceci éditez \src\server\game\Handlers\CharacterHandler.cpp juste avant ces lignes (270 environ) : Citation :return res; Rajoutez : Citation :CharacterDatabase.DirectExecute("UPDATE `characters` SET `race` = 25,`at_login`=0 WHERE (`at_login` = 512 AND (`race` = 1 OR `race` = 3 OR `race` = 4 OR `race` = 7 OR `race` = 11 OR `race` = 22) OR `race`=24 )"); //STITCH a la connexion un joueur A2 deviens Panda A2 - AT_LOGIN_allianceverspanda s'il est NEUTRE ou s'il a fait ce choix par le PNJFaites attention dans ces dernières ligne les valeurs des variables AT_LOGIN_allianceverspanda et AT_LOGIN_hordeverspanda sont des entiers alors que dans les lignes précédentes elles ont été défini en hexa . Bon voila , ces lignes pourrait être mieux ecrites comme de n'agir que sur le joueur plutôt que de passer tout les panda neutre dans l'alliance mais comme je débute sur le core ... merci de votre compréhension :p Il ne vous reste plus qu'a compiler votre core , bon jeu a vous RE: PNJ choix Camp Panda , Race , Faction & Apparence - Stitch - 22/01/2017 J'ai oublié de preciser dans les tes sql que je n'avais pas inclus de test de classe pour la simple raison que je l''ai modifié pour qu'il accepte toutes les classes pour toutes les races RE: PNJ choix Camp Panda , Race , Faction & Apparence - Noc - 22/01/2017 Encore un petit bijou, décidément tu nous gâtes trop. Merci beaucoup RE: PNJ choix Camp Panda , Race , Faction & Apparence - Stitch - 22/01/2017 bon c est pas top mais sa a l avantage de fonctionner et de pouvoir etre adapté pour faire un tas de choses sans modif client comme l'ajout de race si un jour je debloque mon probleme . de plus on ne trouve nule part comment passer outre le bug du choix de faction des Panda ... donc ... |