probleme comp System Pet Last Version

Înainte de a posta o problemă, caută în acest forum și poate găsești rezolvare.
Închis
Avatar utilizator
yonr1
Nivel 4

Nivel 4
Mesaje: 677
Membru din: 03 Dec 2013, 08:42
Aprecieri: 297  
Mulţumiri: 30  
  Rezolvări prob.: 14
Medalii

*Problemă/Întrebare: am cateva mici probleme la acel sistem
Tipologie server(PvM / PvP):
*Resursă folosită: *Link exclusiv J4M* post795771.html?hilit=pet#p795771
*ServerFiles utilizat:
*Syserr:
Poză:
*Detalii suplimentare: la char_item.cpp nu gasesc fro 2 lini
si la cmd_general.cpp primesc acea erroare la compilare
1. bool CHARACTER::DestroyItem(TItemPos Cell)
2. bool CHARACTER::SellItem(TItemPos Cell)

char_item


cmd_general.cpp


cmd_general.cpp:
In function 'void do_change_pet(LPCHARACTER, const char*, int, int)':
cmd_general.cpp:2556:28: error: 'class CHARACTER' has no member named 'GetExtendInvenMax'
if (firstInvenPos >= ch->GetExtendInvenMax())
^
cmd_general.cpp:2567:29: error: 'class CHARACTER' has no member named 'GetExtendInvenMax'
if (secondInvenPos >= ch->GetExtendInvenMax())

Imagine
Afișează semnătura
Avatar utilizator
FALLEN1
Nivel 4

Nivel 4
Mesaje: 585
Membru din: 14 Noi 2015, 20:12
Server: Dark-Fusion2
Regat: Chunjo
Aprecieri: 366  
Mulţumiri: 758  
  Rezolvări prob.: 2
Discord: Copiază ID
Medalii

ACMD(do_change_pet)

{

if (quest::CQuestManager::instance().GetEventFlag("pet_kapat") == 1)

{

ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("PET_SYSTEM_DISABLED"));

return;

}

char arg1[256], arg2[256], arg3[256], arg4[256];

four_arguments(argument, arg1, sizeof(arg1), arg2, sizeof(arg2), arg3, sizeof(arg3), arg4, sizeof(arg4));


if (!*arg1 || !*arg2 || !*arg3 || !*arg4)

return;


int firstInvenType = atoi(arg1);

int firstInvenPos = atoi(arg2);

int secondInvenType = atoi(arg3);

int secondInvenPos = atoi(arg4);


if (firstInvenType < 0)

return;


if (secondInvenType <0)

return;


if (firstInvenType == INVENTORY)

{

if (firstInvenPos >= INVENTORY_MAX_NUM)

return;

}

else

{

if (firstInvenPos >= 225)

return;

}


if (secondInvenType == INVENTORY)

{

if (secondInvenPos >= INVENTORY_MAX_NUM)

return;

}

else

{

if (secondInvenPos >= 225)

return;

}


LPITEM petItem = ch->GetItem(TItemPos(firstInvenType, firstInvenPos));

LPITEM secondItem = ch->GetItem(TItemPos(secondInvenType, secondInvenPos));


if (!petItem)

return;


if (!secondItem)

return;


if (secondItem->GetVnum() != 55033)

return;


int m_dwbonuspet[3][2];


for (int x = 0; x < 3; ++x) //Inizializzazione bonus del pet

{

int btype[3] = { 1, 54, 53 };

m_dwbonuspet[x][0] = btype[x];

m_dwbonuspet[x][1] = 0;

}


int newpettype = number(0, 7);

int level = petItem->GetSocket(1);

int age = petItem->GetSocket(3);

int tmpage = (time(0) + age) / 86400;


if (newpettype == 0)

{

m_dwbonuspet[0][1] = number(1, 30);

m_dwbonuspet[1][1] = number(1, 30);

m_dwbonuspet[2][1] = number(1, 30);;

for (int i = 0; i < level; ++i)

{

int lvbonus = 0;

if (level >= 60)

lvbonus = 1;

if (i % 6 == 0)

{

m_dwbonuspet[0][1] += number(1 + lvbonus, 5 + lvbonus);

m_dwbonuspet[2][1] += number(1 + lvbonus, 5 + lvbonus);

}

if (i % 8 == 0)

{

m_dwbonuspet[1][1] += number(1 + lvbonus, 5 + lvbonus);

}

}

}

else if (newpettype == 1) // sabit

{

m_dwbonuspet[0][1] = number(1, 30);

m_dwbonuspet[1][1] = number(1, 30);

m_dwbonuspet[2][1] = number(1, 30);

for (int i = 0; i < level; ++i)

{

int lvbonus = 0;

if (tmpage >= 60)

lvbonus = 1;

if (i % 5 == 0)

{

m_dwbonuspet[0][1] += number(2 + lvbonus, 3 + lvbonus);

m_dwbonuspet[2][1] += number(2 + lvbonus, 3 + lvbonus);

}

if (i % 7 == 0)

{

m_dwbonuspet[1][1] += number(2 + lvbonus, 3 + lvbonus);

}

}

}

else if (newpettype == 2)

{

m_dwbonuspet[0][1] = number(1, 30);

m_dwbonuspet[1][1] = number(1, 30);

m_dwbonuspet[2][1] = number(1, 30);

for (int i = 0; i < level; ++i)

{

int lvbonus = 0;

if (level >= 60)

lvbonus = 1;

if (i % 6 == 0)

{

m_dwbonuspet[0][1] += number(1 + lvbonus, 7 + lvbonus);

m_dwbonuspet[2][1] += number(1 + lvbonus, 7 + lvbonus);

}

if (i % 8 == 0)

{

m_dwbonuspet[1][1] += number(1 + lvbonus, 7 + lvbonus);

}

}

}

else if (newpettype == 3) // sabit

{

m_dwbonuspet[0][1] = number(1, 30);

m_dwbonuspet[1][1] = number(1, 30);

m_dwbonuspet[2][1] = number(1, 30);

for (int i = 0; i < level; ++i)

{

int lvbonus = 0;

if (tmpage >= 60)

lvbonus = 1;

if (i % 5 == 0)

{

m_dwbonuspet[0][1] += number(3 + lvbonus, 4 + lvbonus);

m_dwbonuspet[2][1] += number(3 + lvbonus, 4 + lvbonus);

}

if (i % 7 == 0)

{

m_dwbonuspet[1][1] += number(3 + lvbonus, 4 + lvbonus);

}

}

}

else if (newpettype == 4)

{

m_dwbonuspet[0][1] = number(1, 30);

m_dwbonuspet[1][1] = number(1, 30);

m_dwbonuspet[2][1] = number(1, 30);

for (int i = 0; i < level; ++i)

{

int lvbonus = 0;

if (level >= 60)

lvbonus = 1;

if (i % 6 == 0)

{

m_dwbonuspet[0][1] += number(1 + lvbonus, 9 + lvbonus);

m_dwbonuspet[2][1] += number(1 + lvbonus, 9 + lvbonus);

}

if (i % 8 == 0)

{

m_dwbonuspet[1][1] += number(1 + lvbonus, 9 + lvbonus);

}

}

}

else if (newpettype == 5) // sabit

{

m_dwbonuspet[0][1] = number(1, 30);

m_dwbonuspet[1][1] = number(1, 30);

m_dwbonuspet[2][1] = number(1, 30);

for (int i = 0; i < level; ++i)

{

int lvbonus = 0;

if (tmpage >= 60)

lvbonus = 1;

if (i % 5 == 0)

{

m_dwbonuspet[0][1] += number(5 + lvbonus, 6 + lvbonus);

m_dwbonuspet[2][1] += number(5 + lvbonus, 6 + lvbonus);

}

if (i % 7 == 0)

{

m_dwbonuspet[1][1] += number(5 + lvbonus, 6 + lvbonus);

}

}

}

else if (newpettype == 6)

{

m_dwbonuspet[0][1] = number(1, 30);

m_dwbonuspet[1][1] = number(1, 30);

m_dwbonuspet[2][1] = number(1, 30);

for (int i = 0; i < level; ++i)

{

int lvbonus = 0;

if (level >= 60)

lvbonus = 1;

if (i % 6 == 0)

{

m_dwbonuspet[0][1] += number(1 + lvbonus, 10 + lvbonus);

m_dwbonuspet[2][1] += number(1 + lvbonus, 10 + lvbonus);

}

if (i % 8 == 0)

{

m_dwbonuspet[1][1] += number(1 + lvbonus, 10 + lvbonus);

}

}

}

else if (newpettype == 7)

{

m_dwbonuspet[0][1] = number(1, 30);

m_dwbonuspet[1][1] = number(1, 30);

m_dwbonuspet[2][1] = number(1, 30);

for (int i = 0; i < level; ++i)

{

int lvbonus = 0;

if (tmpage >= 60)

lvbonus = 1;

if (i % 5 == 0)

{

m_dwbonuspet[0][1] += number(5 + lvbonus, 7 + lvbonus);

m_dwbonuspet[2][1] += number(5 + lvbonus, 7 + lvbonus);

}

if (i % 7 == 0)

{

m_dwbonuspet[1][1] += number(5 + lvbonus, 7 + lvbonus);

}

}

}


std::unique_ptr<SQLMsg> pMsg(DBManager::instance().DirectQuery("UPDATE new_petsystem SET bonus0 = '%d', bonus1 = '%d', bonus2 = '%d', pet_type = '%d' WHERE id = '%lu'", m_dwbonuspet[0][1], m_dwbonuspet[1][1], m_dwbonuspet[2][1], newpettype, petItem->GetID()));

for (int b = 0; b < 3; b++) {

petItem->SetForceAttribute(b, 1, m_dwbonuspet[1]);

}


secondItem->SetCount(secondItem->GetCount() - 1);

ch->ChatPacket(CHAT_TYPE_COMMAND, "OnResultPetAttrChange %d", newpettype);

}



Compara functia ACMD(do_change_pet)
Avatar utilizator
yonr1
Nivel 4

Nivel 4
Mesaje: 677
Membru din: 03 Dec 2013, 08:42
Aprecieri: 297  
Mulţumiri: 30  
  Rezolvări prob.: 14
Medalii

OBJDIR/char.o: In function `CHARACTER::PointsPacket()':
/usr/src/passion/Server/game/src/char.cpp:1740: undefined reference to `CHARACTER::GetNextExp() const'
OBJDIR/char.o: In function `CHARACTER::PointChange(unsigned char, long long, bool, bool)':
/usr/src/passion/Server/game/src/char.cpp:3206: undefined reference to `CHARACTER::GetNextExp() const'
/usr/src/passion/Server/game/src/char.cpp:3213: undefined reference to `CHARACTER::GetNextExp() const'
/usr/src/passion/Server/game/src/char.cpp:3183: undefined reference to `CHARACTER::GetNextExp() const'
/usr/src/passion/Server/game/src/char.cpp:3185: undefined reference to `CHARACTER::GetNextExp() const'
OBJDIR/char_battle.o:/usr/src/passion/Server/game/src/char_battle.cpp:2529: more undefined references to `CHARACTER::GetNextExp() const' follow
collect2: error: ld returned 1 exit status
gmake: *** [../game] Error 1
root@host:/usr/src/passion/Server/game/src #
Imagine
Afișează semnătura
Avatar utilizator
yonr1
Nivel 4

Nivel 4
Mesaje: 677
Membru din: 03 Dec 2013, 08:42
Aprecieri: 297  
Mulţumiri: 30  
  Rezolvări prob.: 14
Medalii

Am reușit să compilez sursa dar cu cele 2 linii din char_item cum fac cu ele ?? :D
Imagine
Afișează semnătura
Avatar utilizator
DMG
Membru Club

Membru Club
Mesaje: 632
Membru din: 24 Iun 2017, 14:59
Server: Metin2Haha.ro
Regat: Jinno
Aprecieri: 415  
Mulţumiri: 454  
Medalii

yonr1 scrie: ↑04 Iul 2022, 08:27 Am reușit să compilez sursa dar cu cele 2 linii din char_item cum fac cu ele ?? :D
Alea parcă țin de sistemul ala de drop din inventar , te întreabă dacă arunci , vinzi sau distrugi un item . De aceea nu cred ca le ai , nu îl au multe servere .
Am pățit și eu asta și când am avut de adăugat ceva pe lângă alea doua funcții . Am cautat un serverfile care avea sistemul și am comparat fișierul respectiv sa pot așeza funcțiile cât de cat
Imagine
Afișează semnătura
Avatar utilizator
yonr1
Nivel 4

Nivel 4
Mesaje: 677
Membru din: 03 Dec 2013, 08:42
Aprecieri: 297  
Mulţumiri: 30  
  Rezolvări prob.: 14
Medalii

O rezolvare cu Lv la pet ? creste 4 bile dupa ramane blocat..
trece la lv urmator doar cu iteme
Imagine
Afișează semnătura
Avatar utilizator
rares2014
Nivel 2

Nivel 2
Mesaje: 192
Membru din: 01 Sep 2014, 21:42
Regat: Jinno
Aprecieri: 474  
Mulţumiri: 105  
 Contact:
Medalii

yonr1 scrie: ↑04 Iul 2022, 14:07 O rezolvare cu Lv la pet ? creste 4 bile dupa ramane blocat..
trece la lv urmator doar cu iteme
Asta inseamna ca functioneaza, asa e facut sa fie.
Avatar utilizator
yonr1
Nivel 4

Nivel 4
Mesaje: 677
Membru din: 03 Dec 2013, 08:42
Aprecieri: 297  
Mulţumiri: 30  
  Rezolvări prob.: 14
Medalii

rares2014 scrie: ↑04 Iul 2022, 14:18
yonr1 scrie: ↑04 Iul 2022, 14:07 O rezolvare cu Lv la pet ? creste 4 bile dupa ramane blocat..
trece la lv urmator doar cu iteme
Asta inseamna ca functioneaza, asa e facut sa fie.
Mersi de răspuns, 😅
Se poate da T/C
Imagine
Afișează semnătura
Închis

Înapoi la “Probleme rezolvate”

  • Informaţie
  • Cine este conectat

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