Hikayeler

Reklam vermek için turkmmo@gmail.com

Char_Item.cpp Hakkında

HacKer_CaN

Level 3
TM Üye
Katılım
26 Ağu 2010
Konular
37
Mesajlar
196
Online süresi
6g 4719s
Reaksiyon Skoru
13
Altın Konu
0
Başarım Puanı
107
TM Yaşı
15 Yıl 8 Ay
MmoLira
48
DevLira
0

Metin2 EP, Valorant VP dahil tüm oyun ürünlerini en uygun fiyatlarla bulabilir, Item ve Karakterlerinizi hızlıca satabilirsiniz. HEMEN TIKLA!

Merhabalar, öncelikle yeniden TurkMMO'da konu açmak heyecan verici.

char_item.cpp'de efsun nesneleriyle oynuyorum ancak bir konuda takılı kaldım.

Kullandığım yeni bir efsun itemi "71352" ekledim. Bu efsun nesnesi silah itemine sürüklendiği takdirde belirli bir efsun vermesini istiyorum (Atıyorum Güç efsunu).
Ekrana saatlerdir bakıyorum, bir kaç deneme kodum oldu ama maalesef oyundaki standart efsun nesnesi işlevi sağladı. Bu konu hakkında yardımcı olabilecek varsa ne mutlu bize.



case USE_ADD_ATTRIBUTE :
if (item->GetVnum() == 71352)
{
if (item2->GetType() == ITEM_WEAPON)
{

item2->AddAttribute(5, 5);
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Başarıyla Eklendi."));
}
else
{
ChatPacket(CHAT_TYPE_INFO, "Eklenemedi");
return false;
}
}
 
item2->ClearAttribute();
item2->SetForceAttribute( 0, APPLY_STR, 5); //Güç +5

Bunu dener misin?

Efsun Arrayı yapıp içine efsunlar eklersin bunu random ile arrayın 1 ve 2 .ci kısımlarını alarak

SetForceAttribute(0, random[0], random[1]) gibi yapabilirsin.
 
Son düzenleme:
item2->ClearAttribute();
item2->SetForceAttribute( 0, APPLY_STR, 5); //Güç +5

Bunu dener misin?

Efsun Arrayı yapıp içine efsunlar eklersin bunu random ile arrayın 1 ve 2 .ci kısımlarını alarak

SetForceAttribute(0, random[0], random[1]) gibi yapabilirsin.
Teşekkür ederim. Maalesef itemi kullandığımda sıradan Efsun nesnesi işlevi gösteriyor. Acaba case USE_ADD_ATTRIBUTE veya case USE_CHANGE_ATTRIBUTE kaynaklı olabilir mi?
 
Buraya case USE_ADD_ATTRIBUTE : kodunuzu komple ekler misiniz?
 
Buraya case USE_ADD_ATTRIBUTE : kodunuzu komple ekler misiniz?
case USE_ADD_ATTRIBUTE3:
if (item2->GetAttributeCount() < 4)
{
// ¿¬Àç°¡ Ư¼öó¸®
// Àı´ë·Î ¿¬Àç°¡ Ãß°¡ ¾ÈµÉ°Å¶ó ÇÏ¿© Çϵå ÄÚµùÇÔ.
if (item->GetVnum() == 71353)
{
if (item2->GetType() == ITEM_WEAPON)
{
bool bCanUse = true;
for (int i = 0; i < ITEM_LIMIT_MAX_NUM; ++i)
{
if (item2->GetLimitType(i) == LIMIT_LEVEL && item2->GetLimitValue(i) > 90)
{
bCanUse = false;
break;
}
}
if (false == bCanUse)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Àû¿ë ·¹º§º¸´Ù ³ô¾Æ »ç¿ëÀÌ ºÒ°¡´ÉÇÕ´Ï´Ù."));
break;
}
}
else
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¹«±â¿Í °©¿Ê¿¡¸¸ »ç¿ë °¡´ÉÇÕ´Ï´Ù."));
break;
}
}
char buf[21];
snprintf(buf, sizeof(buf), "%u", item2->GetID());

if (number(1, 100) <= aiItemAttributeAddPercent[item2->GetAttributeCount()])
{
item2->ClearAttribute();
item2->SetForceAttribute(0, APPLY_STR, 5); //Güç +5
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼º Ãß°¡¿¡ ¼º°øÇÏ¿´½À´Ï´Ù."));

int iAddedIdx = item2->GetAttributeCount() - 1;
LogManager::instance().ItemLog(
GetPlayerID(),
item2->GetAttributeType(iAddedIdx),
item2->GetAttributeValue(iAddedIdx),
item->GetID(),
"ADD_ATTRIBUTE_SUCCESS",
buf,
GetDesc()->GetHostName(),
item->GetOriginalVnum());
}



else
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("¼Ó¼º Ãß°¡¿¡ ½ÇÆĞÇÏ¿´½À´Ï´Ù."));
LogManager::instance().ItemLog(this, item, "ADD_ATTRIBUTE_FAIL", buf);
}

item->SetCount(item->GetCount() - 1);
}
else
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("´õÀÌ»ó ÀÌ ¾ÆÀÌÅÛÀ» ÀÌ¿ëÇÏ¿© ¼Ó¼ºÀ» Ãß°¡ÇÒ ¼ö ¾ø½À´Ï´Ù."));
}
break;
item_length.h dosyasında case USE_ADD_ATTRIBUTE3 tanımladım.
kodu 71152 yeşil efsun nesnesi kodundan baz aldım.
 

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

Geri
Üst