Belt Bonuses

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

Nivel 1
Mesaje: 68
Membru din: 22 Feb 2014, 12:38
Aprecieri: 43  
Mulţumiri: 4  
Medalii

Hi.. I today tried to add special attr for belts but when i try add bonus with new item it does not do anything..
Here is everything what i add:

common/item_length.h

Cod: Selectaţi tot

   USE_BELT_CHANGE_ATTRIBUTE,
   USE_BELT_ADD_ATTRIBUTE,
game/src/char_item.cpp

Cod: Selectaţi tot

                    // BELTATTR
                    case USE_BELT_CHANGE_ATTRIBUTE:
                    case USE_BELT_ADD_ATTRIBUTE:
                        {
                            LPITEM item2;
                            if (!IsValidItemPosition(DestCell) || !(item2 = GetItem(DestCell)))
                                return false;
	                            if (item2->IsExchanging())
                                return false;
	                            if (item2->IsEquipped())
                                return false;
	                            if (ITEM_WEAPON == item2->GetType() || ITEM_ARMOR  == item2->GetType() ||
                                     COSTUME_HAIR == item2->GetSubType() || COSTUME_ACCE == item2->GetSubType())
                            {
                                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You can use these bonuses only on belts."));
                                return false;
                            }
	                            switch (item->GetSubType())
                            {
                                case USE_BELT_ADD_ATTRIBUTE:
                                    if (item2->GetAttributeSetIndex() == -1)
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("??? ??? ? ?? ??????."));
                                        return false;
                                    }
	                                    if (item2->GetAttributeCount() < 1)
                                    {
                                        char buf[21];
                                        snprintf(buf, sizeof(buf), "%u", item2->GetID());
	                                        item2->AddAttribute();
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You have successfully added bonus."));
                                        item->SetCount(item->GetCount() - 1);
                                    }
                                    else
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You can add just a bonus outfit."));
                                        break;
                                    }
                                    break;
	                                case USE_BELT_CHANGE_ATTRIBUTE:
                                    if (item2->GetAttributeSetIndex() == -1)
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("??? ??? ? ?? ??????."));
                                    return false;
                                    }
	                                    if (item2->GetAttributeCount() == 0)
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("This suit does not own any bonus."));
                                        return false;
                                    }
	                                    item2->ClearAttribute();
                                    item2->AlterToMagicItem();
                                    item->SetCount(item->GetCount() - 1);
                                    ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You just changed the bonus."));
                                    break;
                            }
                        }
                        break;
game/src/item.cpp 2x

Cod: Selectaţi tot

         case ITEM_BELT:
		            iSecondPct = 50;
		            iThirdPct = 40;
		            break;
db/src/ProtoReader.cpp

Cod: Selectaţi tot

"USE_BELT_CHANGE_ATTRIBUTE", "USE_BELT_ADD_ATTRIBUTE"
dump_proto/ItemCSVReader.cpp

Cod: Selectaţi tot

"USE_BELT_CHANGE_ATTRIBUTE", "USE_BELT_ADD_ATTRIBUTE"
server/db/item_proto.txt

Cod: Selectaţi tot

70066    ????    ITEM_USE    USE_BELT_CHANGE_ATTRIBUTE    1    ANTI_DROP | ANTI_SELL | ANTI_GIVE | ANTI_MYSHOP    ITEM_STACKABLE | LOG    NONE    NONE    0    0    0    0    0    LIMIT_NONE    0    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
		70065    ????    ITEM_USE    USE_BELT_ADD_ATTRIBUTE    1    ANTI_DROP | ANTI_SELL | ANTI_GIVE | ANTI_MYSHOP    ITEM_STACKABLE | LOG    NONE    NONE    0    0    0    0    0    LIMIT_NONE    0    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
GameLib/ItemData.cpp

Cod: Selectaţi tot

        case USE_BELT_CHANGE_ATTRIBUTE:
		            return DEF_STR(USE_BELT_CHANGE_ATTRIBUTE);
		        case USE_BELT_ADD_ATTRIBUTE:
		            return DEF_STR(USE_BELT_ADD_ATTRIBUTE);
GameLib/ItemData.h

Cod: Selectaţi tot

   USE_BELT_CHANGE_ATTRIBUTE,
		   USE_BELT_ADD_ATTRIBUTE,
root/uiinventory.py

Cod: Selectaţi tot

"USE_BELT_CHANGE_ATTRIBUTE", "USE_BELT_ADD_ATTRIBUTE"
Someone know what can i do bad? :(  Thx
Avatar utilizator
[RaffaeL]
Software Developer

Software Developer
Mesaje: 3223
Membru din: 19 Mar 2016, 12:58
Server: ...
Aprecieri: 15  
Mulţumiri: 2502  
  Rezolvări prob.: 2
Discord: Copiază ID
 Contact:
Medalii

enzicz scrie:Hi.. I today tried to add special attr for belts but when i try add bonus with new item it does not do anything..
Here is everything what i add:

common/item_length.h

Cod: Selectaţi tot

   USE_BELT_CHANGE_ATTRIBUTE,
   USE_BELT_ADD_ATTRIBUTE,
game/src/char_item.cpp

Cod: Selectaţi tot

                    // BELTATTR
                    case USE_BELT_CHANGE_ATTRIBUTE:
                    case USE_BELT_ADD_ATTRIBUTE:
                        {
                            LPITEM item2;
                            if (!IsValidItemPosition(DestCell) || !(item2 = GetItem(DestCell)))
                                return false;
	                            if (item2->IsExchanging())
                                return false;
	                            if (item2->IsEquipped())
                                return false;
	                            if (ITEM_WEAPON == item2->GetType() || ITEM_ARMOR  == item2->GetType() ||
                                     COSTUME_HAIR == item2->GetSubType() || COSTUME_ACCE == item2->GetSubType())
                            {
                                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You can use these bonuses only on belts."));
                                return false;
                            }
	                            switch (item->GetSubType())
                            {
                                case USE_BELT_ADD_ATTRIBUTE:
                                    if (item2->GetAttributeSetIndex() == -1)
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("??? ??? ? ?? ??????."));
                                        return false;
                                    }
	                                    if (item2->GetAttributeCount() < 1)
                                    {
                                        char buf[21];
                                        snprintf(buf, sizeof(buf), "%u", item2->GetID());
	                                        item2->AddAttribute();
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You have successfully added bonus."));
                                        item->SetCount(item->GetCount() - 1);
                                    }
                                    else
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You can add just a bonus outfit."));
                                        break;
                                    }
                                    break;
	                                case USE_BELT_CHANGE_ATTRIBUTE:
                                    if (item2->GetAttributeSetIndex() == -1)
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("??? ??? ? ?? ??????."));
                                    return false;
                                    }
	                                    if (item2->GetAttributeCount() == 0)
                                    {
                                        ChatPacket(CHAT_TYPE_INFO, LC_TEXT("This suit does not own any bonus."));
                                        return false;
                                    }
	                                    item2->ClearAttribute();
                                    item2->AlterToMagicItem();
                                    item->SetCount(item->GetCount() - 1);
                                    ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You just changed the bonus."));
                                    break;
                            }
                        }
                        break;
game/src/item.cpp 2x

Cod: Selectaţi tot

         case ITEM_BELT:
		            iSecondPct = 50;
		            iThirdPct = 40;
		            break;
db/src/ProtoReader.cpp

Cod: Selectaţi tot

"USE_BELT_CHANGE_ATTRIBUTE", "USE_BELT_ADD_ATTRIBUTE"
dump_proto/ItemCSVReader.cpp

Cod: Selectaţi tot

"USE_BELT_CHANGE_ATTRIBUTE", "USE_BELT_ADD_ATTRIBUTE"
server/db/item_proto.txt

Cod: Selectaţi tot

70066    ????    ITEM_USE    USE_BELT_CHANGE_ATTRIBUTE    1    ANTI_DROP | ANTI_SELL | ANTI_GIVE | ANTI_MYSHOP    ITEM_STACKABLE | LOG    NONE    NONE    0    0    0    0    0    LIMIT_NONE    0    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
		70065    ????    ITEM_USE    USE_BELT_ADD_ATTRIBUTE    1    ANTI_DROP | ANTI_SELL | ANTI_GIVE | ANTI_MYSHOP    ITEM_STACKABLE | LOG    NONE    NONE    0    0    0    0    0    LIMIT_NONE    0    LIMIT_NONE    0    APPLY_NONE    0    APPLY_NONE    0    APPLY_NONE    0    0    0    0    0    0    0    0    0    0
GameLib/ItemData.cpp

Cod: Selectaţi tot

        case USE_BELT_CHANGE_ATTRIBUTE:
		            return DEF_STR(USE_BELT_CHANGE_ATTRIBUTE);
		        case USE_BELT_ADD_ATTRIBUTE:
		            return DEF_STR(USE_BELT_ADD_ATTRIBUTE);
GameLib/ItemData.h

Cod: Selectaţi tot

   USE_BELT_CHANGE_ATTRIBUTE,
		   USE_BELT_ADD_ATTRIBUTE,
root/uiinventory.py

Cod: Selectaţi tot

"USE_BELT_CHANGE_ATTRIBUTE", "USE_BELT_ADD_ATTRIBUTE"
Someone know what can i do bad? :(  Thx
Someone know what can i do bad? :(  Thx
What can you do bad...I don't know, but in case that your source code are well added, then verify the type/subtype of your enchant items(may have a wrong type/subtype).
Imagine
Imagine
https://www.youtube.com/watch?v=GhYkCIETEto
Do everything, if you know what you're doing, else... Imagine
Ma gasesti si aici: Discord https://discord.gg/5J5GnyZVSR
Afișează semnătura
Avatar utilizator
enzicz
Nivel 1

Nivel 1
Mesaje: 68
Membru din: 22 Feb 2014, 12:38
Aprecieri: 43  
Mulţumiri: 4  
Medalii

I check it and all is right :( I rly can found a problem there :/
Avatar utilizator
enzicz
Nivel 1

Nivel 1
Mesaje: 68
Membru din: 22 Feb 2014, 12:38
Aprecieri: 43  
Mulţumiri: 4  
Medalii

EDIT: Is maybe there something to allow bonus in item? I mean in item_proto..

[ Postat de pe Android ] Imagine
Avatar utilizator
Hades ✔
Utilizatorul Lunii Noiembrie

Utilizatorul Lunii Noiembrie
Mesaje: 3363
Membru din: 22 Aug 2016, 18:35
Server: Hades World
Aprecieri: 104  
Mulţumiri: 824  
Discord: Copiază ID
 Contact:
Medalii

enzicz scrie:EDIT: Is maybe there something to allow bonus in item? I mean in item_proto..

[ Postat de pe Android ] Imagine
You have "Item Stackable" added in item_proto.

I think you need to remake proto.

Try to change proto, if this doesn`t work you can post a reply here.
Hades World
(New) 2023 Version for Selling!
Discord: hades_97
Server Discord: https://discord.gg/YF27nkC

:flag_gb: :flag_ro: :flag_de: :flag_tr: :flag_pl: :flag_cz: :flag_fr: :flag_pt: :flag_nl: :flag_gr: :flag_hu: :flag_it: :flag_es:

Imagine
Afișează semnătura
Avatar utilizator
enzicz
Nivel 1

Nivel 1
Mesaje: 68
Membru din: 22 Feb 2014, 12:38
Aprecieri: 43  
Mulţumiri: 4  
Medalii

[ Hades ] ✔ scrie:
enzicz scrie:EDIT: Is maybe there something to allow bonus in item? I mean in item_proto..

[ Postat de pe Android ] Imagine
You have "Item Stackable" added in item_proto.

I think you need to remake proto.

Try to change proto, if this doesn`t work you can post a reply here.
Can you explain me more what do you mean with rework item_proto?

Now i tried edit code in char_item.cpp like that for test:

Cod: Selectaţi tot

        
	 case USE_BELT_ADD_ATTRIBUTE:
                        { 
                            LPITEM item2; 
                            if (!IsValidItemPosition(DestCell) || !(item2 = GetItem(DestCell))) 
                                return false; 
	                            if (item2->IsExchanging()) 
                                return false; 
	                            if (item2->IsEquipped()) 
                                return false; 
	                            if (ITEM_WEAPON == item2->GetType() || ITEM_ARMOR  == item2->GetType() || COSTUME_HAIR == item2->GetSubType() ) 
                            { 
                                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You can use these bonuses only on belts.")); 
                                return false; 
                            } 
                            if (item2->GetAttributeSetIndex() == -1) 
                            { 
                                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼ºÀ» º¯°æÇÒ ¼ö ¾ø´Â ¾ÆÀÌÅÛÀÔ´Ï´Ù.")); 
                                return false; 
                            } 
	                            if (item2->GetAttributeCount() >= 3) 
                            { 
                                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("´õÀÌ»ó ÀÌ ¾ÆÀÌÅÛÀ» ÀÌ¿ëÇÏ¿© ¼Ó¼ºÀ» Ãß°¡ÇÒ ¼ö ¾ø½À´Ï´Ù.")); 
                                return false; 
                            } 
	                            if (item2->GetAttributeCount() < 3) 
                            { 
                                if (number(1, 100) < 30) 
                                { 
                                    while(item2->GetAttributeCount() < number(2, 3)) 
                                    item2->AddAttribute(); 
                                } 
                                else 
                                { 
                                    item2->AddAttribute(); 
                                } 
                            } 
                            else 
                            { 
                                item2->AddAttribute(); 
                            } 
                            item->SetCount(item->GetCount() - 1); 
                            ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You have successfully added bonus.")); 
                        } 
                        break; 
	                    case USE_BELT_CHANGE_ATTRIBUTE:
                        { 
                            LPITEM item2; 
                            if (!IsValidItemPosition(DestCell) || !(item2 = GetItem(DestCell))) 
                                return false; 
	                            if (item2->IsExchanging()) 
                                return false; 
	                            if (item2->IsEquipped()) 
                                return false; 
	                            if (ITEM_WEAPON == item2->GetType() || ITEM_ARMOR  == item2->GetType() || COSTUME_HAIR == item2->GetSubType() ) 
                            { 
                                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You can use these bonuses only on belts.")); 
                                return false; 
                            } 
	                            if (item2->GetAttributeSetIndex() == -1) 
                            { 
                                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼ºÀ» º¯°æÇÒ ¼ö ¾ø´Â ¾ÆÀÌÅÛÀÔ´Ï´Ù.")); 
                                return false; 
                            } 
                            if (item2->GetAttributeCount() == 0) 
                            { 
                                ChatPacket(CHAT_TYPE_INFO, LC_TEXT("º¯°æÇÒ ¼Ó¼ºÀÌ ¾ø½À´Ï´Ù.")); 
                                return false; 
                            } 
                            item2->ChangeAttribute(); 
                            item->SetCount(item->GetCount() - 1); 
                            ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You just changed the bonus.")); 
                    } 
                    break;  
Now i can use this bonus on SASH and COSTUME ARMOR.. [ye,ye i know i can edit it here if (ITEM_WEAPON == item2->GetType() || ITEM_ARMOR  == item2->GetType() || COSTUME_HAIR == item2->GetSubType() ) ] but i edit it on purpose.. but on belt it say me in chat that bulls*it : ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼ºÀ» º¯°æÇÒ ¼ö ¾ø´Â ¾ÆÀÌÅÛÀÔ´Ï´Ù."));  

I´m totaly done from this :(
Avatar utilizator
enzicz
Nivel 1

Nivel 1
Mesaje: 68
Membru din: 22 Feb 2014, 12:38
Aprecieri: 43  
Mulţumiri: 4  
Medalii

Fixxed after little edit in item_attribute.cpp

[ Postat de pe Android ] Imagine
Închis
Răspunsuri
0
Vizualizări
195
Răspunsuri
2
Vizualizări
788

Înapoi la “Probleme rezolvate”

  • Informaţie
  • Cine este conectat

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