*Problemă/Întrebare: Nu functioneaza itemul pt schimbarea bonusului
Tipologie server: -
*Resursă folosită: sursa/change-attribute-alchemy-t82753.html
*ServerFiles utilizat: marty c11
*Syserr: -
Poză:
*Detalii suplimentare: Am facut si item cu subtype -ul specificat in case, am pus codul si in char_item si in dragonsoul.h , in proto reader este trecut subtype ul ca altfel nu pornea serverul, dar totusi nu imi merge dupa cum se vede si in video
Problema schimbare bonusuri alchimie
- Marius Dragomir
-

- Mesaje: 1020
- Membru din: 13 Noi 2017, 21:32
- Server: HellHound
- Regat: Jinno
- Aprecieri: 499
- Mulţumiri: 1211
- Discord: Copiază ID
- Pentru acest mesaj, Marius Dragomir a primit 2 (de) mulţumiri
- Reverse0- • plaplarrii1
Muta pe vnum, daca nu ai reusit pe subtype.
Te duci in case-u de la ADD_ATTRIBUTE sau CHANGE_ATTRIBUTE parca asa se nume in char_item.cpp
Si pui:
Si daca pui in case-ul de la add/change attribute, vezi sa fie type3 subtype 19 sau 18, verifici ce type si subrype au adaugarile normale sau schimbarile, depinde in ce case o sa pui tu.
Asa poate iti merge.
Lasa char_item.cpp aici daca nu te descurci.
Te duci in case-u de la ADD_ATTRIBUTE sau CHANGE_ATTRIBUTE parca asa se nume in char_item.cpp
Si pui:
#ifdef USE_CHANGE_ATTRIBUTE_DS
if(item->GetVnum() == vnumu itemlui)
{
LPITEM pDS;
if (!IsValidItemPosition(DestCell) || !(pDS = GetItem(DestCell)))
return false;
if (pDS->IsExchanging() || pDS->IsEquipped())
{
ChatPacket(CHAT_TYPE_INFO, "Alchimia este echipata, dezechipeaz-o pentru a folosi bonusul.");
return false;
}
if (pDS->IsDragonSoul())
{
pDS->ClearAttribute();
DSManager::instance().PutAttributes(pDS);
item->SetCount(item->GetCount() - 1);
ChatPacket(CHAT_TYPE_INFO, "Bonusul a fost schimbat cu succes.");
}
else
{
ChatPacket(CHAT_TYPE_INFO, "Itemul se poate folosi doar pe alchimie.");
return false;
}
}
#endif
Nu vad rostu sa faci un subtype, doar pentru un item sincer sa fiu Si daca pui in case-ul de la add/change attribute, vezi sa fie type3 subtype 19 sau 18, verifici ce type si subrype au adaugarile normale sau schimbarile, depinde in ce case o sa pui tu.
Asa poate iti merge.
Lasa char_item.cpp aici daca nu te descurci.
- Marius Dragomir
-

- Mesaje: 1020
- Membru din: 13 Noi 2017, 21:32
- Server: HellHound
- Regat: Jinno
- Aprecieri: 499
- Mulţumiri: 1211
- Discord: Copiază ID
Am item_proto pe txt nu sql deci ar trebuii sa trec acolo ceva de genul?amvenitsavadcv scrie: ↑16 Dec 2020, 03:19 Muta pe vnum, daca nu ai reusit pe subtype.
Te duci in case-u de la ADD_ATTRIBUTE sau CHANGE_ATTRIBUTE parca asa se nume in char_item.cpp
Si pui:#ifdef USE_CHANGE_ATTRIBUTE_DS if(item->GetVnum() == vnumu itemlui) { LPITEM pDS; if (!IsValidItemPosition(DestCell) || !(pDS = GetItem(DestCell))) return false; if (pDS->IsExchanging() || pDS->IsEquipped()) { ChatPacket(CHAT_TYPE_INFO, "Alchimia este echipata, dezechipeaz-o pentru a folosi bonusul."); return false; } if (pDS->IsDragonSoul()) { pDS->ClearAttribute(); DSManager::instance().PutAttributes(pDS); item->SetCount(item->GetCount() - 1); ChatPacket(CHAT_TYPE_INFO, "Bonusul a fost schimbat cu succes."); } else { ChatPacket(CHAT_TYPE_INFO, "Itemul se poate folosi doar pe alchimie."); return false; } } #endifNu vad rostu sa faci un subtype, doar pentru un item sincer sa fiu
Si daca pui in case-ul de la add/change attribute, vezi sa fie type3 subtype 19 sau 18, verifici ce type si subrype au adaugarile normale sau schimbarile, depinde in ce case o sa pui tu.
Asa poate iti merge.
ITEM_TYPE SUB_TYPE
ITEM_USE USE_CHANGE_ATTRIBUTE
Asta doar daca codu ce ti l-am dat mai sus,l-ai adaugat in case-ul de la CHANGE_ATTRIBUTE in char_item.cppmariusdrg95 scrie: ↑16 Dec 2020, 03:24Am item_proto pe txt nu sql deci ar trebuii sa trec acolo ceva de genul?amvenitsavadcv scrie: ↑16 Dec 2020, 03:19 Muta pe vnum, daca nu ai reusit pe subtype.
Te duci in case-u de la ADD_ATTRIBUTE sau CHANGE_ATTRIBUTE parca asa se nume in char_item.cpp
Si pui:#ifdef USE_CHANGE_ATTRIBUTE_DS if(item->GetVnum() == vnumu itemlui) { LPITEM pDS; if (!IsValidItemPosition(DestCell) || !(pDS = GetItem(DestCell))) return false; if (pDS->IsExchanging() || pDS->IsEquipped()) { ChatPacket(CHAT_TYPE_INFO, "Alchimia este echipata, dezechipeaz-o pentru a folosi bonusul."); return false; } if (pDS->IsDragonSoul()) { pDS->ClearAttribute(); DSManager::instance().PutAttributes(pDS); item->SetCount(item->GetCount() - 1); ChatPacket(CHAT_TYPE_INFO, "Bonusul a fost schimbat cu succes."); } else { ChatPacket(CHAT_TYPE_INFO, "Itemul se poate folosi doar pe alchimie."); return false; } } #endifNu vad rostu sa faci un subtype, doar pentru un item sincer sa fiu
Si daca pui in case-ul de la add/change attribute, vezi sa fie type3 subtype 19 sau 18, verifici ce type si subrype au adaugarile normale sau schimbarile, depinde in ce case o sa pui tu.
Asa poate iti merge.
ITEM_TYPE SUB_TYPE
ITEM_USE USE_CHANGE_ATTRIBUTE
- Marius Dragomir
-

- Mesaje: 1020
- Membru din: 13 Noi 2017, 21:32
- Server: HellHound
- Regat: Jinno
- Aprecieri: 499
- Mulţumiri: 1211
- Discord: Copiază ID
O sa il bag in acel case ca e mai simplu si mai putina bataie de cap plus ca nu ar merge cu alt tip de schimbare pentru ca din ce vad definesc vnumul in ceea ce mi-ai trecut tu aici nu ?amvenitsavadcv scrie: ↑16 Dec 2020, 03:26Asta doar daca codu ce ti l-am dat mai sus,l-ai adaugat in case-ul de la CHANGE_ATTRIBUTE in char_item.cppmariusdrg95 scrie: ↑16 Dec 2020, 03:24Am item_proto pe txt nu sql deci ar trebuii sa trec acolo ceva de genul?amvenitsavadcv scrie: ↑16 Dec 2020, 03:19 Muta pe vnum, daca nu ai reusit pe subtype.
Te duci in case-u de la ADD_ATTRIBUTE sau CHANGE_ATTRIBUTE parca asa se nume in char_item.cpp
Si pui:#ifdef USE_CHANGE_ATTRIBUTE_DS if(item->GetVnum() == vnumu itemlui) { LPITEM pDS; if (!IsValidItemPosition(DestCell) || !(pDS = GetItem(DestCell))) return false; if (pDS->IsExchanging() || pDS->IsEquipped()) { ChatPacket(CHAT_TYPE_INFO, "Alchimia este echipata, dezechipeaz-o pentru a folosi bonusul."); return false; } if (pDS->IsDragonSoul()) { pDS->ClearAttribute(); DSManager::instance().PutAttributes(pDS); item->SetCount(item->GetCount() - 1); ChatPacket(CHAT_TYPE_INFO, "Bonusul a fost schimbat cu succes."); } else { ChatPacket(CHAT_TYPE_INFO, "Itemul se poate folosi doar pe alchimie."); return false; } } #endifNu vad rostu sa faci un subtype, doar pentru un item sincer sa fiu
Si daca pui in case-ul de la add/change attribute, vezi sa fie type3 subtype 19 sau 18, verifici ce type si subrype au adaugarile normale sau schimbarile, depinde in ce case o sa pui tu.
Asa poate iti merge.
ITEM_TYPE SUB_TYPE
ITEM_USE USE_CHANGE_ATTRIBUTE
- Pentru acest mesaj, Marius Dragomir for the post:
- Frey444
Da, o sa ti mearga doar pe vnum-ul respectiv.mariusdrg95 scrie: ↑16 Dec 2020, 03:28O sa il bag in acel case ca e mai simplu si mai putina bataie de cap plus ca nu ar merge cu alt tip de schimbare pentru ca din ce vad definesc vnumul in ceea ce mi-ai trecut tu aici nu ?amvenitsavadcv scrie: ↑16 Dec 2020, 03:26Asta doar daca codu ce ti l-am dat mai sus,l-ai adaugat in case-ul de la CHANGE_ATTRIBUTE in char_item.cppmariusdrg95 scrie: ↑16 Dec 2020, 03:24
Am item_proto pe txt nu sql deci ar trebuii sa trec acolo ceva de genul?
ITEM_TYPE SUB_TYPE
ITEM_USE USE_CHANGE_ATTRIBUTE
- Marius Dragomir
-

- Mesaje: 1020
- Membru din: 13 Noi 2017, 21:32
- Server: HellHound
- Regat: Jinno
- Aprecieri: 499
- Mulţumiri: 1211
- Discord: Copiază ID
Am incercat si asa cum mi-ai dat totusi rezultatul este acelasi, trebuie sa fac vreo modificare in dragonsoul.h ?amvenitsavadcv scrie: ↑16 Dec 2020, 03:33Da, o sa ti mearga doar pe vnum-ul respectiv.mariusdrg95 scrie: ↑16 Dec 2020, 03:28O sa il bag in acel case ca e mai simplu si mai putina bataie de cap plus ca nu ar merge cu alt tip de schimbare pentru ca din ce vad definesc vnumul in ceea ce mi-ai trecut tu aici nu ?amvenitsavadcv scrie: ↑16 Dec 2020, 03:26
Asta doar daca codu ce ti l-am dat mai sus,l-ai adaugat in case-ul de la CHANGE_ATTRIBUTE in char_item.cpp
Lasa mi char_item.cpp aici sa dau o privire.
Si maine dimineata o sa ti dau un raspuns mai sigur.Ca nu am cum sa stiu ce mai ai tu prin char_item.cpp ce nu te lasa sa schimbi. Ca vad ca iti intra intr-un ChatPacket care sigur da un return false; dupa.
Asa arata din prima poza.
Si maine dimineata o sa ti dau un raspuns mai sigur.Ca nu am cum sa stiu ce mai ai tu prin char_item.cpp ce nu te lasa sa schimbi. Ca vad ca iti intra intr-un ChatPacket care sigur da un return false; dupa.
Asa arata din prima poza.
- Marius Dragomir
-

- Mesaje: 1020
- Membru din: 13 Noi 2017, 21:32
- Server: HellHound
- Regat: Jinno
- Aprecieri: 499
- Mulţumiri: 1211
- Discord: Copiază ID
char_item.cppamvenitsavadcv scrie: ↑16 Dec 2020, 04:07 Lasa mi char_item.cpp aici sa dau o privire.
Si maine dimineata o sa ti dau un raspuns mai sigur.Ca nu am cum sa stiu ce mai ai tu prin char_item.cpp ce nu te lasa sa schimbi. Ca vad ca iti intra intr-un ChatPacket care sigur da un return false; dupa.
Asa arata din prima poza.
EDIT: Aparent schimb bonusurile la iteme normale cu el
Ar fi trebuit sa ti mearga.
Incerca asa:
Adauga in dragonsoul.cpp
In case-ul de la Add-Attribute:
Dupa:
Incerca asa:
Adauga in dragonsoul.cpp
bool DSManager::Schimbabns(LPITEM pItem)
{
if (NULL == pItem || !pItem->IsDragonSoul())
return false;
PutAttributes(pItem);
}
Adauga in dragonsoul.h in public:bool Schimbabns(LPITEM pDS);Adauga in char_item.cpp
In case-ul de la Add-Attribute:
Dupa:
if (item2->GetAttributeSetIndex() == -1)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("속성을 변경할 수 없는 아이템입니다."));
return false;
}
Adauga: if (item->GetVnum() == Vnumu tau)
{
if(item2->GetType() == ITEM_DS)//Acum te va lasa sa schimbi doar pe alchimie
{
if (!IsValidItemPosition(DestCell) || !(item2 = GetItem(DestCell)))
return false;
if (item2->IsExchanging() || item2->IsEquipped())
{
ChatPacket(CHAT_TYPE_INFO, "Alchimia este echipata, dezechipeaz-o pentru a folosi bonusul.");
return false;
}
DSManager::instance().Schimbabns(item2);
ChatPacket(CHAT_TYPE_INFO("bonus_change_succes"));
LogManager::instance().ItemLog(this, item, "SCHIMBA_ALCHIMIE", buf);
item->SetCount(item->GetCount() - 1);
}
else
{
ChatPacket(CHAT_TYPE_INFO("Nu este alchimie"));
}
}-
- Informaţie
-
Cine este conectat
Utilizatori ce ce navighează pe acest forum: cosminusi93ksm și 29 vizitatori
