Problemă stun pe server

Metin2 Global - Un server de calitate !
Totalitatea subiectelor care nu respectă regulamentul impus in sectiunea "Probleme şi Întrebări" vor fi stocate aici.
Deconectat
Avatar utilizator
Parrish
Mister Just4Metin
Mister Just4Metin
Mesaje: 451
Membru din: 06 Mai 2014
Reputație: .
——————————————
★ Moderator [1.50/3.0]
★ Mister J4M
★ Şmecher
★ Nume anterior: Onderkoffer, Aominecchi
——————————————
Server Metin2: Niciunul
Regat: Chunjo
Mulțumiri acordate: 19
Mulțumiri primite: 1

Problemă stun pe server

Mesajde Parrish » 04 Oct 2016, 20:52

Bună seara,
Am o problemă cu stun-ul pe server, am serverfiles cartof v2, am modificat în sursă, dar încă tot se dă stun.
O rezolvare?

Deconectat
Avatar utilizator
Chriss™
Nivel 2
Nivel 2
Mesaje: 174
Membru din: 11 Sep 2016
Localitate: /chriss/THL
Reputație: ===================
►Moderator
===================
►Trial Moderator
===================
Status: Mai bine ca niciodată
Server Metin2: Work Metin2THL
Regat: Shinsoo
Mulțumiri acordate: 14
Mulțumiri primite: 13
Contact:

Re: Problemă stun pe server

Mesajde Chriss™ » 04 Oct 2016, 21:01

Cartof e plin de buguri, după urli că nu-ţi merg questurile :ymapplause:
tutorial stun: pe care-l aplic mereu pe cartof V1 şi nu am nici o problemă(doar acest tutorial, nu mai multe că-s destule):
intri în Item.cpp din game, sursă server
cauţi:
DWORD dwImmuneFlag = 0;

for (int i = 0; i < WEAR_MAX_NUM; ++i)
if (m_pOwner->GetWear(i))
SET_BIT(dwImmuneFlag, m_pOwner->GetWear(i)->m_pProto->dwImmuneFlag);

m_pOwner->SetImmuneFlag(dwImmuneFlag);

modifici în:
DWORD dwImmuneFlag = 0;
LPITEM item = NULL;

for (int i = 0; i < WEAR_MAX_NUM; ++i)
{
if (item=m_pOwner->GetWear(i))
{
if (item->GetImmuneFlag() != 0)
SET_BIT(dwImmuneFlag, item->GetImmuneFlag());
if (item->GetAttributeCount() > 0)
{
if (item->HasAttr(APPLY_IMMUNE_STUN))
SET_BIT(dwImmuneFlag, IMMUNE_STUN);
if (item->HasAttr(APPLY_IMMUNE_SLOW))
SET_BIT(dwImmuneFlag, IMMUNE_SLOW);
if (item->HasAttr(APPLY_IMMUNE_FALL))
SET_BIT(dwImmuneFlag, IMMUNE_FALL);
}
}
}

m_pOwner->SetImmuneFlag(dwImmuneFlag);

x2( de 2 ori faci lucrul ăsta, ai 2 funcţii la fel )
Dacă nici ăsta nu ţi-e bun te rog eu nu mai folosi toate shiturile de sf-uri, de la v1 la v2 este o diferenţă enormă mai ales în buguri ;) .
Imagine
Imagine
Imagine
Imagine

Conectat
Avatar utilizator
stilledanger
Mister Just4Metin
Mister Just4Metin
Mesaje: 732
Membru din: 31 Ian 2014
Localitate: /usr/xsag/thw2/
Reputație: Fost dezvoltator la Zearth2 si ThunderWorld2
Status: http://survive-on-mars.com
Server Metin2: survive-on-mars.com
Autentificat prin: Android
Mulțumiri acordate: 13
Mulțumiri primite: 48
Contact:

Re: Problemă stun pe server

Mesajde stilledanger » 04 Oct 2016, 21:23

Nu e buna rezolvarea aia , nu rezolva nimic :))

Cauta in char.h

Cod: Selectaţi tot

IsImmune(DWORD dwImmuneFlag);

si adauga sub

Cod: Selectaţi tot

void            UpdateImmuneFlags();


Intra in char_resist.cpp cauta

Cod: Selectaţi tot

#include "locale_service.h"

si adauga sub

Cod: Selectaţi tot

#include "item.h"

acum cauta

Cod: Selectaţi tot

bool CHARACTER::IsImmune(DWORD dwImmuneFlag)

si aduaga in prima liinie

Cod: Selectaţi tot

if (!IS_SET(m_pointsInstant.dwImmuneFlag, dwImmuneFlag))
      UpdateImmuneFlags();

Acum adauga asta inainte de ultima functie cautata

Cod: Selectaţi tot

void CHARACTER::UpdateImmuneFlags()
{
   m_pointsInstant.dwImmuneFlag = 0;

   for (int i = 0; i < WEAR_MAX_NUM; i++)
   {
      if(GetWear(i))
      {
         for (int i2 = 0; i2 < ITEM_APPLY_MAX_NUM; ++i2)
         {
            if (GetWear(i)->GetProto()->aApplies[i2].bType == APPLY_NONE)
               continue;
            else if(GetWear(i)->GetProto()->aApplies[i2].bType == APPLY_IMMUNE_STUN)
               SET_BIT(m_pointsInstant.dwImmuneFlag, IMMUNE_STUN);
            else if(GetWear(i)->GetProto()->aApplies[i2].bType == APPLY_IMMUNE_SLOW)
               SET_BIT(m_pointsInstant.dwImmuneFlag, IMMUNE_SLOW);
            else if(GetWear(i)->GetProto()->aApplies[i2].bType == APPLY_IMMUNE_FALL)
               SET_BIT(m_pointsInstant.dwImmuneFlag, IMMUNE_FALL);
         }

         for (int i3 = 0; i3 < ITEM_ATTRIBUTE_MAX_NUM; ++i3)
         {
            if (GetWear(i)->GetAttributeType(i3))
            {
               const TPlayerItemAttribute& ia = GetWear(i)->GetAttribute(i3);

               if(ia.bType == APPLY_IMMUNE_STUN)
                  SET_BIT(m_pointsInstant.dwImmuneFlag, IMMUNE_STUN);
               else if(ia.bType == APPLY_IMMUNE_SLOW)
                  SET_BIT(m_pointsInstant.dwImmuneFlag, IMMUNE_SLOW);
               else if(ia.bType == APPLY_IMMUNE_FALL)
                  SET_BIT(m_pointsInstant.dwImmuneFlag, IMMUNE_FALL);
            }
         }
      }
   }
}
Administrator la Trebuie să fii logat sau înregistrat pentru a vedea acest link.
Fost dezvoltator şi administrator la ThunderWorld2
Tutoriale C++ in curs de dezvoltare Trebuie să fii logat sau înregistrat pentru a vedea acest link.

Deconectat
Avatar utilizator
Chriss™
Nivel 2
Nivel 2
Mesaje: 174
Membru din: 11 Sep 2016
Localitate: /chriss/THL
Reputație: ===================
►Moderator
===================
►Trial Moderator
===================
Status: Mai bine ca niciodată
Server Metin2: Work Metin2THL
Regat: Shinsoo
Mulțumiri acordate: 14
Mulțumiri primite: 13
Contact:

Re: Problemă stun pe server

Mesajde Chriss™ » 05 Oct 2016, 00:54

stilledanger scrie:Nu e buna rezolvarea aia , nu rezolva nimic :))

Cauta in char.h

Cod: Selectaţi tot

IsImmune(DWORD dwImmuneFlag);

si adauga sub

Cod: Selectaţi tot

void            UpdateImmuneFlags();


Intra in char_resist.cpp cauta

Cod: Selectaţi tot

#include "locale_service.h"

si adauga sub

Cod: Selectaţi tot

#include "item.h"

acum cauta

Cod: Selectaţi tot

bool CHARACTER::IsImmune(DWORD dwImmuneFlag)

si aduaga in prima liinie

Cod: Selectaţi tot

if (!IS_SET(m_pointsInstant.dwImmuneFlag, dwImmuneFlag))
      UpdateImmuneFlags();

Acum adauga asta inainte de ultima functie cautata

Cod: Selectaţi tot

void CHARACTER::UpdateImmuneFlags()
{
   m_pointsInstant.dwImmuneFlag = 0;

   for (int i = 0; i < WEAR_MAX_NUM; i++)
   {
      if(GetWear(i))
      {
         for (int i2 = 0; i2 < ITEM_APPLY_MAX_NUM; ++i2)
         {
            if (GetWear(i)->GetProto()->aApplies[i2].bType == APPLY_NONE)
               continue;
            else if(GetWear(i)->GetProto()->aApplies[i2].bType == APPLY_IMMUNE_STUN)
               SET_BIT(m_pointsInstant.dwImmuneFlag, IMMUNE_STUN);
            else if(GetWear(i)->GetProto()->aApplies[i2].bType == APPLY_IMMUNE_SLOW)
               SET_BIT(m_pointsInstant.dwImmuneFlag, IMMUNE_SLOW);
            else if(GetWear(i)->GetProto()->aApplies[i2].bType == APPLY_IMMUNE_FALL)
               SET_BIT(m_pointsInstant.dwImmuneFlag, IMMUNE_FALL);
         }

         for (int i3 = 0; i3 < ITEM_ATTRIBUTE_MAX_NUM; ++i3)
         {
            if (GetWear(i)->GetAttributeType(i3))
            {
               const TPlayerItemAttribute& ia = GetWear(i)->GetAttribute(i3);

               if(ia.bType == APPLY_IMMUNE_STUN)
                  SET_BIT(m_pointsInstant.dwImmuneFlag, IMMUNE_STUN);
               else if(ia.bType == APPLY_IMMUNE_SLOW)
                  SET_BIT(m_pointsInstant.dwImmuneFlag, IMMUNE_SLOW);
               else if(ia.bType == APPLY_IMMUNE_FALL)
                  SET_BIT(m_pointsInstant.dwImmuneFlag, IMMUNE_FALL);
            }
         }
      }
   }
}

defapt vorbeşti fără tine :-? dacă eu doar acel tutorial îl folosesc şi n-am nici o problemă cu stunu :)) cum poţi să-mi spui tu mie că nu rezolvă nimic ?:))) serios?:)))
Imagine
Imagine
Imagine
Imagine

Deconectat
Avatar utilizator
Parrish
Mister Just4Metin
Mister Just4Metin
Mesaje: 451
Membru din: 06 Mai 2014
Reputație: .
——————————————
★ Moderator [1.50/3.0]
★ Mister J4M
★ Şmecher
★ Nume anterior: Onderkoffer, Aominecchi
——————————————
Server Metin2: Niciunul
Regat: Chunjo
Mulțumiri acordate: 19
Mulțumiri primite: 1

Re: Problemă stun pe server

Mesajde Parrish » 05 Oct 2016, 07:37

Chriss™ scrie:
stilledanger scrie:Nu e buna rezolvarea aia , nu rezolva nimic :))

Cauta in char.h

Cod: Selectaţi tot

IsImmune(DWORD dwImmuneFlag);

si adauga sub

Cod: Selectaţi tot

void            UpdateImmuneFlags();


Intra in char_resist.cpp cauta

Cod: Selectaţi tot

#include "locale_service.h"

si adauga sub

Cod: Selectaţi tot

#include "item.h"

acum cauta

Cod: Selectaţi tot

bool CHARACTER::IsImmune(DWORD dwImmuneFlag)

si aduaga in prima liinie

Cod: Selectaţi tot

if (!IS_SET(m_pointsInstant.dwImmuneFlag, dwImmuneFlag))
      UpdateImmuneFlags();

Acum adauga asta inainte de ultima functie cautata

Cod: Selectaţi tot

void CHARACTER::UpdateImmuneFlags()
{
   m_pointsInstant.dwImmuneFlag = 0;

   for (int i = 0; i < WEAR_MAX_NUM; i++)
   {
      if(GetWear(i))
      {
         for (int i2 = 0; i2 < ITEM_APPLY_MAX_NUM; ++i2)
         {
            if (GetWear(i)->GetProto()->aApplies[i2].bType == APPLY_NONE)
               continue;
            else if(GetWear(i)->GetProto()->aApplies[i2].bType == APPLY_IMMUNE_STUN)
               SET_BIT(m_pointsInstant.dwImmuneFlag, IMMUNE_STUN);
            else if(GetWear(i)->GetProto()->aApplies[i2].bType == APPLY_IMMUNE_SLOW)
               SET_BIT(m_pointsInstant.dwImmuneFlag, IMMUNE_SLOW);
            else if(GetWear(i)->GetProto()->aApplies[i2].bType == APPLY_IMMUNE_FALL)
               SET_BIT(m_pointsInstant.dwImmuneFlag, IMMUNE_FALL);
         }

         for (int i3 = 0; i3 < ITEM_ATTRIBUTE_MAX_NUM; ++i3)
         {
            if (GetWear(i)->GetAttributeType(i3))
            {
               const TPlayerItemAttribute& ia = GetWear(i)->GetAttribute(i3);

               if(ia.bType == APPLY_IMMUNE_STUN)
                  SET_BIT(m_pointsInstant.dwImmuneFlag, IMMUNE_STUN);
               else if(ia.bType == APPLY_IMMUNE_SLOW)
                  SET_BIT(m_pointsInstant.dwImmuneFlag, IMMUNE_SLOW);
               else if(ia.bType == APPLY_IMMUNE_FALL)
                  SET_BIT(m_pointsInstant.dwImmuneFlag, IMMUNE_FALL);
            }
         }
      }
   }
}

defapt vorbeşti fără tine :-? dacă eu doar acel tutorial îl folosesc şi n-am nici o problemă cu stunu :)) cum poţi să-mi spui tu mie că nu rezolvă nimic ?:))) serios?:)))

Am încercat ambele tutoriale, ăstea sunt postate de M.Seby şi stunul tot se ia pe server.


Înapoi la “Arhivă Probleme şi Întrebări”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 47 vizitatori