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
Sonrasına ekle
Aratılır
sonrasına ekle
Aratılır
Sonrasına Ekle
Aratılır
Sonrasına Ekle
Aratılır
Sonrasına Ekle
cube.h açılır ve aratılır
sonrasına ekle
service.h ekle
Daha sonra cube.txt dosyasına aşağıdaki gibi ekleyebilirsiniz.
allow_copy 1 ya da 0 yapacaksınız isteğinize göre düzenleyin.
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.