farkmt2official 1
farkmt2official
mannaxxx 1
mannaxxx
Bvural41 1
Bvural41
Agora Metin2 1
Agora Metin2
berkmenoo 1
berkmenoo
Hikaye Ekle

Cube'de Socket'leri Olduğu Gibi Aktar

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