Aide Code C++
On compilant Mon Core Apres L'ajouts de scripts J'ai eu ces erreurs


Code PHP :
npc_buff.cpp
npc_metier
.cpp
..\..\..\..\TrinityCore\src\server\scripts\Custom\npc_buff.cpp(2) : fatal error C1083Cannot open include file'../../shared/Config/Config.h'No such file or directory
..\..\..\..\TrinityCore\src\server\scripts\Custom\npc_metier.cpp(282) : error C2065'Script' undeclared identifier
..\..\..\..\TrinityCore\src\server\scripts\Custom\npc_metier.cpp(282) : error C2065'newscript' undeclared identifier
..\..\..\..\TrinityCore\src\server\scripts\Custom\npc_metier.cpp(283) : error C2065'newscript' undeclared identifier
..\..\..\..\TrinityCore\src\server\scripts\Custom\npc_metier.cpp(283) : error C2061syntax error identifier 'Script'
..\..\..\..\TrinityCore\src\server\scripts\Custom\npc_metier.cpp(284) : error C2065'newscript' undeclared identifier
..\..\..\..\TrinityCore\src\server\scripts\Custom\npc_metier.cpp(284) : error C2227left of '->Name' must point to class/struct/union/generic type
        type is 
''unknown-type''
..\..\..\..\TrinityCore\src\server\scripts\Custom\npc_metier.cpp(285) : error C2065'newscript' undeclared identifier
..\..\..\..\TrinityCore\src\server\scripts\Custom\npc_metier.cpp(285) : error C2227left of '->pGossipHello' must point to class/struct/union/generic type
        type is 
''unknown-type''
..\..\..\..\TrinityCore\src\server\scripts\Custom\npc_metier.cpp(286) : error C2065'newscript' undeclared identifier
..\..\..\..\TrinityCore\src\server\scripts\Custom\npc_metier.cpp(286) : error C2227left of '->pGossipSelect' must point to class/struct/union/generic type
        type is 
''unknown-type''
..\..\..\..\TrinityCore\src\server\scripts\Custom\npc_metier.cpp(287) : error C2065'newscript' undeclared identifier
..\..\..\..\TrinityCore\src\server\scripts\Custom\npc_metier.cpp(287) : error C2227left of '->RegisterSelf' must point to class/struct/union/generic type
        type is 
''unknown-type'' 

Édition :
Pour Le script le voici

Code PHP :
//#include "precompiled.h"
#include "ScriptPCH.h"
#include "ScriptedEscortAI.h"   
//#include "sc_creature.h"
//#include "sc_gossip.h"
//#include "Player.h"

#define GOSSIP_CHAP_TO_ALCHIMIE "Changer 4 Tokens et apprendre Alchimie a 450"
#define GOSSIP_CHAP_TO_CALLIGRAPHIE "Changer 4 Tokenset apprendre Calligraphie a 450"
#define GOSSIP_CHAP_TO_CUISINIER "Changer 4 Tokens et apprendre Cuisinier a 450"
#define GOSSIP_CHAP_TO_DEPECEUR "Changer 4 Tokens et apprendre Dépeceur a 450"
#define GOSSIP_CHAP_TO_ENCHANTEUR "Changer 4 Tokens et apprendre Enchanteur a 450"
#define GOSSIP_CHAP_TO_FORGERON "Changer 4 Tokens et apprendre Forgeron a 450"
#define GOSSIP_CHAP_TO_HERBORISTE "Changer 4 Tokens et apprendre Herboriste a 450"
#define GOSSIP_CHAP_TO_INGENIEUR "Changer 4 Tokens et apprendre Ingénieur a 450"
#define GOSSIP_CHAP_TO_JOAILLIER "Changer 4 Tokens et apprendre Joaillier a 450"
#define GOSSIP_CHAP_TO_MINEUR "Changer 4 Tokens et apprendre Mineur a 450"
#define GOSSIP_CHAP_TO_PECHEUR "Changer 4 Tokens et apprendre Pêcheur a 450"
#define GOSSIP_CHAP_TO_SECOURISTE "Changer 4 Tokens et apprendre Secouriste a 450"
#define GOSSIP_CHAP_TO_TAILLEUR "Changer 4 Tokens et apprendre Tailleur a 450"
#define GOSSIP_CHAP_TO_TDC "Changer 4 Tokens et apprendre Travailleur du cuir a 450"
#define NOT_ENOUGH_CHAP "Vous n'avez pas assez de Tokens !"
#define FINISH "Bravo $N ! Vous avez changé 4 Tokens contre un métier 450"


bool GossipHello_npc_metier(Player *playerCreature *_Creature)
{
        
player->ADD_GOSSIP_ITEM(3GOSSIP_CHAP_TO_ALCHIMIE            GOSSIP_SENDER_MAIN1210); //alchimie
    
player->ADD_GOSSIP_ITEM(3GOSSIP_CHAP_TO_CALLIGRAPHIE                       GOSSIP_SENDER_MAIN1211); //calligraphie
        
player->ADD_GOSSIP_ITEM(3GOSSIP_CHAP_TO_CUISINIER            GOSSIP_SENDER_MAIN1212); //cuisinier
    
player->ADD_GOSSIP_ITEM(3GOSSIP_CHAP_TO_DEPECEUR                   GOSSIP_SENDER_MAIN1213); //depeceur
        
player->ADD_GOSSIP_ITEM(3GOSSIP_CHAP_TO_ENCHANTEUR           GOSSIP_SENDER_MAIN1214); //enchanteur
    
player->ADD_GOSSIP_ITEM(3GOSSIP_CHAP_TO_FORGERON                   GOSSIP_SENDER_MAIN1215); //forgeron
        
player->ADD_GOSSIP_ITEM(3GOSSIP_CHAP_TO_HERBORISTE            GOSSIP_SENDER_MAIN1216); //herboriste
    
player->ADD_GOSSIP_ITEM(3GOSSIP_CHAP_TO_INGENIEUR                  GOSSIP_SENDER_MAIN1217); //ingenieur
        
player->ADD_GOSSIP_ITEM(3GOSSIP_CHAP_TO_JOAILLIER           GOSSIP_SENDER_MAIN1218); //joaillier
    
player->ADD_GOSSIP_ITEM(3GOSSIP_CHAP_TO_MINEUR                     GOSSIP_SENDER_MAIN1219); //mineur
        
player->ADD_GOSSIP_ITEM(3GOSSIP_CHAP_TO_PECHEUR            GOSSIP_SENDER_MAIN1220); //pecheur
    
player->ADD_GOSSIP_ITEM(3GOSSIP_CHAP_TO_SECOURISTE                 GOSSIP_SENDER_MAIN1221); //secouriste
        
player->ADD_GOSSIP_ITEM(3GOSSIP_CHAP_TO_TAILLEUR          GOSSIP_SENDER_MAIN1222); //tailleur
    
player->ADD_GOSSIP_ITEM(3GOSSIP_CHAP_TO_TDC                GOSSIP_SENDER_MAIN1223); //travail du cuir
        
player->SEND_GOSSIP_MENU(3961,_Creature->GetGUID()); //action de fermeture
        
return true;
}

bool GossipSelect_npc_metier(Player *playerCreature *_Creatureuint32 senderuint32 action)
{
         
// En combat
    
if(!player->getAttackers().empty())
    {
        
player->CLOSE_GOSSIP_MENU();
        
_Creature->MonsterWhisper("Vous êtes en combat $N, revenez plus tard !"player->GetGUID());
      
    }

        switch(
action)
    {
        case 
1210:
                if (
player->GetItemCount(60000,true) < 4)
                {
                        
player->CLOSE_GOSSIP_MENU();
                        
_Creature->MonsterWhisper(NOT_ENOUGH_CHAPplayer->GetGUID());
                }
                else
        {
                        
player->CLOSE_GOSSIP_MENU();
                        
player->DestroyItemCount(600004truetrue);
                        
player->SetSkill(51304171450450);
                        
_Creature->MonsterWhisper(FINISHplayer->GetGUID());
        }
    break;

                case 
1211:
                if (
player->GetItemCount(60000,true) < 4)
                {
                        
player->CLOSE_GOSSIP_MENU();
                        
_Creature->MonsterWhisper(NOT_ENOUGH_CHAPplayer->GetGUID());
                }
                else
        {
                        
player->CLOSE_GOSSIP_MENU();
                        
player->DestroyItemCount(600004truetrue);
                        
player->SetSkill(45363773450450);
                        
_Creature->MonsterWhisper(FINISHplayer->GetGUID());
        }
    break;

                case 
1212:
                if (
player->GetItemCount(60000,true) < 4)
                {
                        
player->CLOSE_GOSSIP_MENU();
                        
_Creature->MonsterWhisper(NOT_ENOUGH_CHAPplayer->GetGUID());
                }
                else
        {
                        
player->CLOSE_GOSSIP_MENU();
                        
player->DestroyItemCount(600004truetrue);
                        
player->SetSkill(51296185450450);
                        
_Creature->MonsterWhisper(FINISHplayer->GetGUID());
        }
    break;
        
                case 
1213:
                if (
player->GetItemCount(60000,true) < 4)
                {
                        
player->CLOSE_GOSSIP_MENU();
                        
_Creature->MonsterWhisper(NOT_ENOUGH_CHAPplayer->GetGUID());
                }
                else
        {
                        
player->CLOSE_GOSSIP_MENU();
                        
player->DestroyItemCount(600004truetrue);
                        
player->SetSkill(50305393450450);
                        
_Creature->MonsterWhisper(FINISHplayer->GetGUID());
        }
    break;
        
                case 
1214:
                if (
player->GetItemCount(60000,true) < 4)
                {
                        
player->CLOSE_GOSSIP_MENU();
                        
_Creature->MonsterWhisper(NOT_ENOUGH_CHAPplayer->GetGUID());
                }
                else
        {
                        
player->CLOSE_GOSSIP_MENU();
                        
player->DestroyItemCount(600004truetrue);
                        
player->SetSkill(51313333450450);
                        
_Creature->MonsterWhisper(FINISHplayer->GetGUID());
        }
    break;
        
                case 
1215:
                if (
player->GetItemCount(60000,true) < 4)
                {
                        
player->CLOSE_GOSSIP_MENU();
                        
_Creature->MonsterWhisper(NOT_ENOUGH_CHAPplayer->GetGUID());
                }
                else
        {
                        
player->CLOSE_GOSSIP_MENU();
                        
player->DestroyItemCount(600004truetrue);
                        
player->SetSkill(51300164450450);
                        
_Creature->MonsterWhisper(FINISHplayer->GetGUID());
        }
    break;
        
                case 
1216:
                if (
player->GetItemCount(60000,true) < 4)
                {
                        
player->CLOSE_GOSSIP_MENU();
                        
_Creature->MonsterWhisper(NOT_ENOUGH_CHAPplayer->GetGUID());
                }
                else
        {
                        
player->CLOSE_GOSSIP_MENU();
                        
player->DestroyItemCount(600004truetrue);
                        
player->SetSkill(50300182450450);
                        
_Creature->MonsterWhisper(FINISHplayer->GetGUID());
        }
    break;
        
                case 
1217:
                if (
player->GetItemCount(60000,true) < 4)
                {
                        
player->CLOSE_GOSSIP_MENU();
                        
_Creature->MonsterWhisper(NOT_ENOUGH_CHAPplayer->GetGUID());
                }
                else
        {
                        
player->CLOSE_GOSSIP_MENU();
                        
player->DestroyItemCount(600004truetrue);
                        
player->SetSkill(51306202450450);
                        
_Creature->MonsterWhisper(FINISHplayer->GetGUID());
        }
    break;
        
                case 
1218:
                if (
player->GetItemCount(60000,true) < 4)
                {
                        
player->CLOSE_GOSSIP_MENU();
                        
_Creature->MonsterWhisper(NOT_ENOUGH_CHAPplayer->GetGUID());
                }
                else
        {
                        
player->CLOSE_GOSSIP_MENU();
                        
player->DestroyItemCount(600004truetrue);
                        
player->SetSkill(51311755450450);
                        
_Creature->MonsterWhisper(FINISHplayer->GetGUID());
        }
    break;
        
                case 
1219:
                if (
player->GetItemCount(60000,true) < 4)
                {
                        
player->CLOSE_GOSSIP_MENU();
                        
_Creature->MonsterWhisper(NOT_ENOUGH_CHAPplayer->GetGUID());
                }
                else
        {
                        
player->CLOSE_GOSSIP_MENU();
                        
player->DestroyItemCount(600004truetrue);
                        
player->SetSkill(50310186450450);
                        
_Creature->MonsterWhisper(FINISHplayer->GetGUID());
        }
    break;
        
                case 
1220:
                if (
player->GetItemCount(60000,true) < 4)
                {
                        
player->CLOSE_GOSSIP_MENU();
                        
_Creature->MonsterWhisper(NOT_ENOUGH_CHAPplayer->GetGUID());
                }
                else
        {
                        
player->CLOSE_GOSSIP_MENU();
                        
player->DestroyItemCount(600004truetrue);
                        
player->SetSkill(51294356450450);
                        
_Creature->MonsterWhisper(FINISHplayer->GetGUID());
        }
    break;
        
                case 
1221:
                if (
player->GetItemCount(60000,true) < 4)
                {
                        
player->CLOSE_GOSSIP_MENU();
                        
_Creature->MonsterWhisper(NOT_ENOUGH_CHAPplayer->GetGUID());
                }
                else
        {
                        
player->CLOSE_GOSSIP_MENU();
                        
player->DestroyItemCount(600004truetrue);
                        
player->SetSkill(45542129450450);
                        
_Creature->MonsterWhisper(FINISHplayer->GetGUID());
        }
    break;
        
                case 
1222:
                if (
player->GetItemCount(60000,true) < 4)
                {
                        
player->CLOSE_GOSSIP_MENU();
                        
_Creature->MonsterWhisper(NOT_ENOUGH_CHAPplayer->GetGUID());
                }
                else
        {
                        
player->CLOSE_GOSSIP_MENU();
                        
player->DestroyItemCount(600004truetrue);
                        
player->SetSkill(51309197450450);
                        
_Creature->MonsterWhisper(FINISHplayer->GetGUID());
        }
    break;
        
                case 
1223:
                if (
player->GetItemCount(60000,true) < 4)
                {
                        
player->CLOSE_GOSSIP_MENU();
                        
_Creature->MonsterWhisper(NOT_ENOUGH_CHAPplayer->GetGUID());
                }
                else
        {
                        
player->CLOSE_GOSSIP_MENU();
                        
player->DestroyItemCount(600004truetrue);
                        
player->SetSkill(51302165450450);
                        
_Creature->MonsterWhisper(FINISHplayer->GetGUID());
        }
    break;
        }
    return 
true;
}

void AddSC_npc_metier()
{
    
Script *newscript;
    
newscript = new Script;
    
newscript->Name="npc_metier";
    
newscript->pGossipHello =  &GossipHello_npc_metier;
    
newscript->pGossipSelect = &GossipSelect_npc_metier;
    
newscript->RegisterSelf();

Le script c++est fait pour mangos faut le réadapter Hihi
ouais enfin je ne sais pas si il saura le faire Erf
Tous d'abord Merci pour Vos réponse.
Oui C'est la qui est le fond Du problème Effectivment je ne sais pas commant faire pour le readapter Langue
Et bien plusieurs étapes :

Tout d'abord avoir des notions de C/C++ (je t'invite à suite un bon nombre de tutoriels sur ces langages).
Ensuite tu trouve un script Trinity (sans le dossier des sources il y en a plein) et tu en prends un qui s'apparente à la même entité (genre si tu veux scripter un PNJ , ben tu prends un script qui a pour entité de base un PNJ)
Tu essaye d'en déduire la structure de Base d'une classe de script pour PNJ (il doit y avoir quelques méthodes communes à tous les pnjs scriptés.. normal car ils héritent tous de la même classe mère (ah oui j'oubliais des notions de P.O.O sont requises, mais au pire il existe des mini "tutos" chez trinity de "HOWTO script a NPC", qui peuvent aider)
Enfin tu compares ce script à celuyi que tu veux adapter et tu t'arranges pour que les actions fassent les mêmes.

De manière générale, il s'agit simplement de reproduire le comportement du PNJ, de ce fait il faut que tu cherches les méthodes propres à Trinity pour faire les mêmes choses que Mangos.
ce qui est cool c’est que certaines méthodes ont le même nom, d'autres non. Ce qui nécéssite aussi de connaitre un peu les deux FrameWorks Clin

Retourner en haut Accueil