farkmt2official 1
farkmt2official
Mt2Hizmet 1
Mt2Hizmet
Bvural41 1
Bvural41
berzahx 1
berzahx
mavzermete 1
mavzermete
Hikaye Ekle

Cube'de Socket'leri Olduğu Gibi Aktar

Ayyıldız2 | 2008 TR Yapısı • 1-99 Orta Emek Destan • Oto Avsız • 10 Temmuz 21:00 HEMEN TIKLA!

Merhaba arkadaşlar.
Bir müşterimin isteği üzerine dikkatimi çekti ve sizlerle paylaşmak istedim.
Socket bulunduran itemlerin Socket'lerini olduğu gibi aktarmak için yapılan bir eklentidir.

[CODE lang="cpp" title="game\src\cube.cpp"]//arat;

this->gold = 0;

//altına ekle;

this->allowCopySocket = false;

//tekrar arat;

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

//altına ekle;

else TOKEN("allow_copy_socket")
{
cube_data->allowCopySocket = (value1 == 1 ? true : false);
}

//tekrar arat;

LPITEM new_item;

//altına ekle;

DWORD copySocket[ITEM_SOCKET_MAX_NUM];

//tekrar arat;

CUBE_VALUE* reward_value = cube_proto->reward_value();

//altına ekle;

for (int i = 0; i < CUBE_MAX_NUM; ++i)
{
if (nullptr == items) continue;

if (items->GetType() == ITEM_WEAPON || items->GetType() == ITEM_ARMOR || items->GetType() == ITEM_UNIQUE || items->GetType() == ITEM_COSTUME)
{
bool hasElement = false;
for (int j = 0; j < cube_proto->item.size(); ++j)
{
if (cube_proto->item[j].vnum == items->GetVnum())
{
hasElement = true;
break;
}
}

if (hasElement == false)
continue;

for (int a = 0; a < ITEM_SOCKET_MAX_NUM; a++)
copySocket[a] = items->GetSocket(a);

break;
}

continue;
}

//tekrar arat;

new_item = ch->AutoGiveItem(reward_value->vnum, reward_value->count);

//altına ekle;

if (cube_proto->allowCopySocket == true)
{
for (int i = 0; i < ITEM_SOCKET_MAX_NUM; i++)
new_item->SetSocket(i, copySocket);
}[/CODE]

[CODE lang="cpp" title="game\src\cube.h"]//arat;

unsigned int gold;

//altına ekle;

bool allowCopySocket;[/CODE]

Örnek cube.txt:
[CODE title=".../locale/turkey/cube.txt"]section
npc 20095
item 189 1
allow_copy_socket 1
reward 319 1
percent 100
end [/CODE]

Aşağıdaki kodu eklediğiniz her blok Socket'leri silmeden aktaracaktır.
[CODE title=""]allow_copy_socket 1[/CODE]

İyi forumlar.
 
Merhaba arkadaşlar.
Bir müşterimin isteği üzerine dikkatimi çekti ve sizlerle paylaşmak istedim.
Socket bulunduran itemlerin Socket'lerini olduğu gibi aktarmak için yapılan bir eklentidir.

[CODE lang="cpp" title="game\src\cube.cpp"]//arat;

this->gold = 0;

//altına ekle;

this->allowCopySocket = false;

//tekrar arat;

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

//altına ekle;

else TOKEN("allow_copy_socket")
{
cube_data->allowCopySocket = (value1 == 1 ? true : false);
}

//tekrar arat;

LPITEM new_item;

//altına ekle;

DWORD copySocket[ITEM_SOCKET_MAX_NUM];

//tekrar arat;

CUBE_VALUE* reward_value = cube_proto->reward_value();

//altına ekle;

for (int i = 0; i < CUBE_MAX_NUM; ++i)
{
if (nullptr == items) continue;

if (items->GetType() == ITEM_WEAPON || items->GetType() == ITEM_ARMOR || items->GetType() == ITEM_UNIQUE || items->GetType() == ITEM_COSTUME)
{
bool hasElement = false;
for (int j = 0; j < cube_proto->item.size(); ++j)
{
if (cube_proto->item[j].vnum == items->GetVnum())
{
hasElement = true;
break;
}
}

if (hasElement == false)
continue;

for (int a = 0; a < ITEM_SOCKET_MAX_NUM; a++)
copySocket[a] = items->GetSocket(a);

break;
}

continue;
}

//tekrar arat;

new_item = ch->AutoGiveItem(reward_value->vnum, reward_value->count);

//altına ekle;

if (cube_proto->allowCopySocket == true)
{
for (int i = 0; i < ITEM_SOCKET_MAX_NUM; i++)
new_item->SetSocket(i, copySocket);
}[/CODE]

[CODE lang="cpp" title="game\src\cube.h"]//arat;

unsigned int gold;

//altına ekle;

bool allowCopySocket;[/CODE]

Örnek cube.txt:
[CODE title=".../locale/turkey/cube.txt"]section
npc 20095
item 189 1
allow_copy_socket 1
reward 319 1
percent 100
end [/CODE]

Aşağıdaki kodu eklediğiniz her blok Socket'leri silmeden aktaracaktır.
[CODE title=""]allow_copy_socket 1[/CODE]

İyi forumlar.

Paylaşım için teşekkürler.
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst