Jump to content
Araştır
  • Diğer seçenekler ...
Sonuçları bul ...
Sonuçları bul ...
sewakldawk

GM komutu ile NPC silme

Önerilen Mesajlar

Merhaba,

GameServer'daki HandleMonKillCommand komutunu kopyalayıp düzenleyerek komut ile K_NPCPOS tablosundan o NPC'ye ait kaydı silmek istiyorum. Monster seçip komutu uyguluyorum, fakat hedef NPC'nin K_NPCPOS tablosundaki LeftZ, TopZ, RightX ve BottomZ verilerini almayı beceremedim.

COMMAND_HANDLER(CUser::HandleMonDelCommand)

{
if (!isGM())
return false;

if (GetTargetID() == 0 && GetTargetID() {
g_pMain->SendHelpDescription(this, "Using Sample : Select a NPC or Monster than use +monkills");
return false;
}

CNpc *pNpc = g_pMain->GetNpcPtr(GetTargetID());


printf("sSid: %d, x: %d, y: %d, z: %d", pNpc->GetProtoID(), pNpc->GetSPosX(), pNpc->GetSPosY(), pNpc->GetSPosZ());

if (pNpc)
g_pMain->KillNpc(GetTargetID());

return true;
}


Bu koddaki pNpc->GetProtoID() NPC'nin sSid'sini alıyor, fakat pNpc->GetSPosX() gibi fonksiyonlarla o anki pozisyonunu alabiliyorum. Veritabanındaki orijinal pozisyonlarını nasıl alabilirim?

Yapmak istediğim şey kısacası, diyelim Moradon'da bir yerde 5 adet Worm var, bunları bir komutla veritabanından silmek istiyorum.

Yardımlarınız için şimdiden teşekkürler.

İletiyi paylaş


Link to post
Sitelerde Paylaş

Direk olarak npc ve monsterları yüklerken orjinal kordinatlarını yedek tutmuyor. O kordinatlar üzerinden random +-yarıçap ekleyip dağıtıyor monsterları. Bu şekilde silmek yerine k_npcpos tablosuna uniqkey ID stunu ekle +1 artan şekilde bu sayede her eklenen npc ve monster'ın o key ile bağlantısı olur bunu da CNpc içerisine ekle int m_iSQLID şeklinde tanımlayıp K_NPCPOS tablosunu yüklerken dolduracaksın bu sayede target üzerinden o id değerini getirtip işlem yapabilirsin.

İletiyi paylaş


Link to post
Sitelerde Paylaş
Alıntı
Direk olarak npc ve monsterları yüklerken orjinal kordinatlarını yedek tutmuyor. O kordinatlar üzerinden random +-yarıçap ekleyip dağıtıyor monsterları. Bu şekilde silmek yerine k_npcpos tablosuna uniqkey ID stunu ekle +1 artan şekilde bu sayede her eklenen npc ve monster'ın o key ile bağlantısı olur bunu da CNpc içerisine ekle int m_iSQLID şeklinde tanımlayıp K_NPCPOS tablosunu yüklerken dolduracaksın bu sayede target üzerinden o id değerini getirtip işlem yapabilirsin.


Mantıklı, çok teşekkürler :)

İletiyi paylaş


Link to post
Sitelerde Paylaş

×
×
  • Yeni Oluştur...