if (attrItem.sValue <= 0)
{
ChatPacket(CHAT_TYPE_INFO, "No"); // TEST
UnequipItem(item);
break;
}
ChatPacket(CHAT_TYPE_INFO, "The weapon needs repair.");
int type = item.aAttr[i].bType;//hangi efsun olduğu
int value = item.aAttr[i].sValue;//efsunun değeri
bir de şu ne işe yarıyor "attrItem.sValue <= 0" itemdeki efsunun type ve value sini öğrenmek için bunları kullanmak gerekiyor diye biliyorum
C++:int type = item.aAttr[i].bType;//hangi efsun olduğu int value = item.aAttr[i].sValue;//efsunun değeri
if (attrItem.sValue <= 0)
{
ChatPacket(CHAT_TYPE_INFO, "No"); // TEST
UnequipItem(item);
break;
}
Dediğim şeyi yapmış olman sevindirdi. Damageyi göndermeyi engellemek güzel olmuş.Evet value 0'a düştüğünde Damage paketini yollamayı engelliyorum. Tamir sistemi için kodladığım basit bir kod bloğu sadece.
Bu arada Locale_string'e ekli olduğu halde göndermiyor. Tuhaf...
Kodunuzun tamamını görmeden yorum yapmak zor fakat burada aklıma gelen üç senaryo var;
1- If bloğunun devreye girmeme olasılığı. (Eğer olması gerektiği gibi itemi unequip ediyorsa çalışıyordur.)
2- Spesifik bir atıfta bulunulmaması. (Kodun tamamını bilmediğim için varsayım olarak ch->ChatPacket gibi, muhtemelen değildir ama olasılık)
3- LC_TEXT sorunu.
Olası bir LC_TEXT sorunu olup olmadığını test etmek için bu şekilde deneyin;
C++:if (attrItem.sValue <= 0) { ChatPacket(CHAT_TYPE_INFO, "No"); // TEST UnequipItem(item); break; }