void ItemCheck();
void CHARACTER::ItemCheck()
{
LPITEM item = GetWear(WEAR_ARMOR);
if(GetMapIndex() == 41 && item->GetVnum() == 11299)
{
UnequipItem(item);
ChatPacket(CHAT_TYPE_INFO, "Engelli olan esyalar cikarildi.");
return;
}
}
bool CHARACTER::EquipItem(LPITEM item, int iCandidateCell)
{
if(GetMapIndex() == 41 && item->GetVnum() == 11299)
{
ChatPacket(CHAT_TYPE_INFO, "Bu haritada olmaz dayioglu");
return false;
}
[...]
pvp engelleme sistemime ekleyecegim bu şekil birşey yaptım denemeye değermi ve bunu hangi bloga ekleyebilirim equip item e olurmuGetMapIndex && GetWear
#ifdef __PVP_RESTRICTION_YUMA__
if (IS_PVP_MAP(GetMapIndex()))
{
LPITEM pkItem = GetWear(WEAR_WEAPON);
if (pkItem && (
pkItem->GetVnum() >= 189
&& pkItem->GetVnum() <= 199
&& pkItem->GetVnum() <= 3169
&& pkItem->GetVnum() <= 2179
&& pkItem->GetVnum() <= 1139))
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Harita engel."));
return false;
}
}
#endif
yardımın için teşekkürlerinput_login.cpp - ::EnterGame
içerisinde LPCHARACTER ch; 'den sonra herhangi bir satıra ekleyebilirsin, oyuncu oyuna girince kontrol edilir.
GetMapIndex, GetWear gibi fonksiyonlar Character sınıfı üyeleri oldukları için ch pointer'ı ile kullanmak zorundasın.
yani ch->GetMapIndex() , ch->GetWear()
Karakterden sökmek için de ch->UnequipItem(LPITEM item)
void ItemCheck();
void CHARACTER::ItemCheck()
{
LPITEM item = GetWear(WEAR_ARMOR);
if(GetMapIndex() == 41 && item->GetVnum() == 11299)
{
UnequipItem(item);
ChatPacket(CHAT_TYPE_INFO, "Engelli olan esyalar cikarildi.");
return;
}
}
bool CHARACTER::EquipItem(LPITEM item, int iCandidateCell)
{
if(GetMapIndex() == 41 && item->GetVnum() == 11299)
{
ChatPacket(CHAT_TYPE_INFO, "Bu haritada olmaz dayioglu");
return false;
}
[...]
char.h:
C++:void ItemCheck();
char_item.cpp:
C++:void CHARACTER::ItemCheck() { LPITEM item = GetWear(ITEM_ARMOR); if(GetMapIndex() == 41 && item->GetVnum() == 11299) { UnequipItem(item); ChatPacket(CHAT_TYPE_INFO, "Engelli olan esyalar cikarildi."); return; } }
char_item.cpp:
ItemCheck'i de input login içinden çağırırsın. Niye void yaptım bilmiyom aslında bool daha kullanışlı olurdu ama gerisini sen düzenlersin.C++:bool CHARACTER::EquipItem(LPITEM item, int iCandidateCell) { if(GetMapIndex() == 41 && item->GetVnum() == 11299) { ChatPacket(CHAT_TYPE_INFO, "Bu haritada olmaz dayioglu"); return false; } [...]
char.h:
C++:void ItemCheck();
char_item.cpp:
C++:void CHARACTER::ItemCheck() { LPITEM item = GetWear(ITEM_ARMOR); if(GetMapIndex() == 41 && item->GetVnum() == 11299) { UnequipItem(item); ChatPacket(CHAT_TYPE_INFO, "Engelli olan esyalar cikarildi."); return; } }
char_item.cpp:
ItemCheck'i de input login içinden çağırırsın. Niye void yaptım bilmiyom aslında bool daha kullanışlı olurdu ama gerisini sen düzenlersin.C++:bool CHARACTER::EquipItem(LPITEM item, int iCandidateCell) { if(GetMapIndex() == 41 && item->GetVnum() == 11299) { ChatPacket(CHAT_TYPE_INFO, "Bu haritada olmaz dayioglu"); return false; } [...]
Buna oynadıktan sonra karar verirsinHer hafta onlarca ucuz kıytırık pvp'lerin açılma 'sebeplerinden' bir tanesi xd
bu ne demek oluyor biraz meal var mı anlamadım ben bişeyHer hafta onlarca ucuz kıytırık pvp'lerin açılma 'sebeplerinden' bir tanesi xd
input_login.cpp de ::EnterGame fonksiyonunun en altına(içine) ch->ItemCheck(); yapıştır gitsin. Her ışınlanmada kontrol eder.çok teşekkürler input loginden çağırmak derken ekstra birşey eklemek gerekiyormu verdiklerinizi ekledim
tamam kral çok sağolinput_login.cpp de ::EnterGame fonksiyonunun en altına(içine) ch->ItemCheck(); yapıştır gitsin. Her ışınlanmada kontrol eder.