Aller au contenu
Top-Metin2.org - Vous êtes à la recherche d'un serveur Metin 2 ? ×
×
×
  • Créer...

C++ - Remettre le Niveau en Temps Réel


Messages recommandés

  • Robot

Centre de Téléchargement

Hidden Content

    Give reaction to this post to see the hidden content.
( Interne )

Salut !

 

Comme certains m'ont demandé sur skype, etc, et j'ai envie de partager, je le mets ici :

Dans les sources serveur : 

 

Dans packet.h cherchez : 

typedef struct packet_update_char
 

Dans celui-ci, cherchez :

short    sAlignment;
 

Ajoutez en dessous :

DWORD    dwLevel;
 

 


 

Maintenant, dans char.cpp, cherchez :

void CHARACTER::UpdatePacket()
 

Trouvez de dans :

pack.sAlignment    = m_iAlignment / 10;
 

Ajoutez en dessous :

pack.dwLevel = GetLevel();
 

 



 

Ensuite, dans vos sources client, ouvrez le packet.h :

Cherchez :

typedef struct packet_update_char
 

Trouvez dans celui-ci :

short       sAlignment;
 

Ajoutez :

DWORD        dwLevel;
 

 


 

Ouvrez ensuite PythonNetworkStreamPhaseGameActor.cpp et cherchez :

bool CPythonNetworkStream::RecvCharacterUpdatePacket()
 

De dans, cherchez :

kNetUpdateActorData.m_sAlignment=chrUpdatePacket.sAlignment;
 

Ajoutez :

kNetUpdateActorData.m_dwLevel=chrUpdatePacket.dwLevel;
 

 


 

 

Rendez vous ensuite dans NetworkActorManager.cpp et cherchez :

void CNetworkActorManager::UpdateActor(const SNetworkUpdateActorData& c_rkNetUpdateActorData)
 

Cherchez de dans :

pkInstFind->SetAlignment(c_rkNetUpdateActorData.m_sAlignment);
 

Ajoutez en dessous :

pkInstFind->SetLevel(c_rkNetUpdateActorData.m_dwLevel);
 

 


 

Allez ensuite dans NetworkActorManager.h et cherchez :

struct SNetworkUpdateActorData
 

De dans, vous aurez :

short m_sAlignment;
 

Mettez à la suite :

DWORD m_dwLevel;
 

 


Ensuite, dans InstanceBase.cpp cherchez :

void CInstanceBase::SetAlignment(short sAlignment)
 

Après la fonction, ajoutez celle-ci :

void CInstanceBase::SetLevel(DWORD level){    m_dwLevel = level;    UpdateTextTailLevel(m_dwLevel);}
 

 


Ouvrez ensuite InstanceBaseEffect.cpp et cherchez :

void CInstanceBase::UpdateTextTailLevel(DWORD level)
 

Remplacez toute la fonction par :

void CInstanceBase::UpdateTextTailLevel(DWORD level){    if (IsPC())    {        static D3DXCOLOR s_kLevelColor = D3DXCOLOR(152.0f/255.0f, 255.0f/255.0f, 51.0f/255.0f, 1.0f);        char szText[256];        sprintf(szText, "Lv %d", level);        CPythonTextTail::Instance().AttachLevel(GetVirtualID(), szText, s_kLevelColor);    }}
 

 


Et pour finir, dans InstanceBase.h cherchez :

void                    SetAlignment(short sAlignment);
 

Ajoutez pour finir : 

void                    SetLevel(DWORD level);
 

 



 

Et voilà, le niveau va maintenant se mettre à jour en temps réel pour tout le monde.

 

 

Cordialement, Takuma.

  • Metin2 Dev 2

french_banner.gif

Lien vers le commentaire
Partager sur d’autres sites

  • Réponses 5
  • Créé
  • Dernière réponse

Meilleurs contributeurs dans ce sujet

  • 4 semaines après...
  • 8 mois après...


  • brilliantdiscord_widget
  • Flux d'Activité

    1. 6

      problème de connexion à mon serveur local (je suis débutant dans ce genre d'entreprise )

    2. 2

      problème de lancement serveur

    3. 9
    4. 0

      [PVM/PVP] ATLAX2 - EASY PLAY

    5. 2

      problème de lancement serveur

Information importante

Conditions d’utilisation / Politique de confidentialité / Règles / Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.