Problemă stun pe server

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: 464
Membru din: 06 Mai 2014
Reputație: .
——————————————
★ Moderator [1.50/3.0]
★ Mister J4M
★ Şmecher
★ Nume anterior: Onderkoffer, Aominecchi
——————————————
Server Metin2: metin2lf.ro
Regat: Chunjo
Mulțumiri acordate: 20
Mulțumiri primite: 2

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: 203
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: 18
Mulțumiri primite: 15
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 ;) .
Skype: monster_cristi
Imagine
Imagine

Deconectat
Avatar utilizator
stilledanger
Mister Just4Metin
Mister Just4Metin
Mesaje: 1013
Membru din: 31 Ian 2014
Localitate: #127.0.0.1
Reputație: Fost dezvoltator la Zearth2 si ThunderWorld2
Fost Super Moderator
Fost Moderator
Fost Trial Moderator
Status: https://somthegame.com
Server Metin2: somthegame.com
Mulțumiri acordate: 3
Mulțumiri primite: 89
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);
            }
         }
      }
   }
}
Fost Super Moderator / Moderator / Trial-Moderator la Just4Metin
Trebuie să fii logat sau înregistrat pentru a vedea acest link.
Retras din domeniul Metin2, vă rog sa nu mă mai căutați pentru support!
discutii-diverse/surviveonmars-disponibil-luna-aceasta-t63026-20.html
Trebuie să fii logat sau înregistrat pentru a vedea acest link.

Deconectat
Avatar utilizator
Chriss™
Nivel 2
Nivel 2
Mesaje: 203
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: 18
Mulțumiri primite: 15
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?:)))
Skype: monster_cristi
Imagine
Imagine

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

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: .Khan, Charmeine112, Elvis1, Ene, Google [Bot], haxor69, LKD, MaidanuMc(MaidanuOfficial), mihaisandu531, spadasin112, Swaless, yonut258 și 15 vizitatori