Cube Sisteminde İtemlerin Efsunları Silinmesin | Gamesfrm.com
🛡️
Moderatör Alımları Başladı
Forum yönetim ekibimize katılmak ister misin? Başvurular şu anda açık.
Başvur
Reklam Alanı   Reklam Alanı
Meyhane2   Reklam Alanı

Cube Sisteminde İtemlerin Efsunları Silinmesin

RuLing

İşsiz Moderatör
Yönetici
Haber Editörü
Sosyal Editör
Katılım
28 May 2018
Mesajlar
4,087
Tepki puanı
273
Konum
Diyarbakır
Merhaba arkadaşlar,

Bildiğiniz üzere çoğu fileste cube sisteminde item dönüştürdüğümüzde itemlerin efsunları siliniyor. Eğer efsunlar silinmesin istiyorsanız aşağıdaki adımları yapınız.

Cube.cpp Açılır ve aratılır


Kod:
    this->gold = 0;

Sonrasına ekle

Kod:
#ifdef ENABLE_CUBE_RENEWAL
    this->allowCopyAttr = false;
#endif



Aratılır

Kod:
        else TOKEN("gold")
        {
            cube_data->gold = value1;
        }

sonrasına ekle

Kod:
#ifdef ENABLE_CUBE_RENEWAL
        else TOKEN("allow_copy")
        {
            cube_data->allowCopyAttr = (value1 == 1 ? true : false);
        }
#endif

Aratılır

Kod:
    bool Cube_make (LPCHARACTER ch)
    LPITEM    new_item;

Sonrasına Ekle

Kod:
#ifdef ENABLE_CUBE_RENEWAL
    DWORD copyAttr[ITEM_ATTRIBUTE_MAX_NUM][2];
#endif

Aratılır
Kod:
CUBE_VALUE    *reward_value = cube_proto->reward_value();

Sonrasına Ekle
Kod:
#ifdef ENABLE_CUBE_RENEWAL
    for (int i=0; i<CUBE_MAX_NUM; ++i)
    {
        if (NULL==items[i])    continue;

        if (items[i]->GetType() == ITEM_WEAPON || items[i]->GetType() == ITEM_ARMOR)
        {
            bool hasElement = false;
            for (int j = 0; j < cube_proto->item.size(); ++j)
            {
                if(cube_proto->item[j].vnum == items[i]->GetVnum())
                {
                    hasElement = true;
                    break;
                }
            }
            
            if(hasElement == false)
                continue;
            
            for (int a = 0; a < ITEM_ATTRIBUTE_MAX_NUM; a++)
            {
                copyAttr[a][0] = items[i]->GetAttributeType(a);
                copyAttr[a][1] = items[i]->GetAttributeValue(a);
            }

            break;
        }
        
        continue;
    }
#endif

Aratılır
Kod:
new_item = ch->AutoGiveItem(reward_value->vnum, reward_value->count);

Sonrasına Ekle
Kod:
#ifdef ENABLE_CUBE_RENEWAL
        if (cube_proto->allowCopyAttr == true && copyAttr != NULL)
        {
            new_item->ClearAttribute();
            
            for (int a = 0; a < ITEM_ATTRIBUTE_MAX_NUM; a++)
            {
                new_item->SetForceAttribute(a, copyAttr[a][0], copyAttr[a][1]);
            }
        }
#endif



cube.h açılır ve aratılır

Kod:
    struct CUBE_DATA

    int                        percent;
    unsigned int            gold;

sonrasına ekle

Kod:
#ifdef ENABLE_CUBE_RENEWAL
    bool                    allowCopyAttr;
#endif


service.h ekle


Kod:
#define ENABLE_CUBE_RENEWAL


Daha sonra cube.txt dosyasına aşağıdaki gibi ekleyebilirsiniz.

Kod:
section       
npc    20378   
item    11299    1
item    30509    10
item    30516    10
item    30514    10
allow_copy    1
reward    20000    1
gold    100000   
percent    60   
end

allow_copy 1 ya da 0 yapacaksınız isteğinize göre düzenleyin.
 

Yeni Mesajlar

Üst