Çözüldü Güvenli bölge quest eklentisi

  • Konuyu açan Konuyu açan DeadLyEscaPe
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 2
  • Gösterim Gösterim 81
Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

DeadLyEscaPe

Yardımsever Üye
Yardımsever Üye
Üye
Mesaj
524
Çözümler
33
Beğeni
129
Puan
940
Ticaret Puanı
0
Karakter güvenli bölgede bir NPC'ye tıkladığında " Güvenli bölgedesin, lütfen dışarı çık." şeklinde uyarı yapmak istiyorum. Bunun için quest fonksiyonu yazmalıyım. Yardımcı olabilecek arkadaş var mı?


Kod:
Genişlet Daralt Kopyala
if pc.is_safe() then

syschat("Güvenli bölgedesin.")

return

end

gibi...
 
Çözüm
questlua_pc:
C++:
Genişlet Daralt Kopyala
{ "get_wear",        pc_get_wear            },
.
.
{ "is_safe",        pc_is_safezone            }, // ekle

C++:
Genişlet Daralt Kopyala
    int pc_get_wear(lua_State * L)
    {       
        [...]
    }
    //Ekle
    int pc_is_safezone(lua_State* L)
    {
        
        LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();

        if (!ch)
        {
            lua_pushboolean(L, false);
            return 1;
        }

        LPSECTREE sectree = ch->GetSectree();
        if (!sectree)
        {
            lua_pushboolean(L, false);
            return 1;
        }

        bool is_safe = sectree->IsAttr(ch->GetX(), ch->GetY(), ATTR_BANPK);
        lua_pushboolean(L, is_safe);
        return 1;
    }
...
questlua_pc:
C++:
Genişlet Daralt Kopyala
{ "get_wear",        pc_get_wear            },
.
.
{ "is_safe",        pc_is_safezone            }, // ekle

C++:
Genişlet Daralt Kopyala
    int pc_get_wear(lua_State * L)
    {       
        [...]
    }
    //Ekle
    int pc_is_safezone(lua_State* L)
    {
        
        LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();

        if (!ch)
        {
            lua_pushboolean(L, false);
            return 1;
        }

        LPSECTREE sectree = ch->GetSectree();
        if (!sectree)
        {
            lua_pushboolean(L, false);
            return 1;
        }

        bool is_safe = sectree->IsAttr(ch->GetX(), ch->GetY(), ATTR_BANPK);
        lua_pushboolean(L, is_safe);
        return 1;
    }

quest_functions içine ekle:
C++:
Genişlet Daralt Kopyala
pc.is_safe

Test etmedim ama çalışacağını umuyorum
 
Çözüm
questlua_pc:
C++:
Genişlet Daralt Kopyala
{ "get_wear",        pc_get_wear            },
.
.
{ "is_safe",        pc_is_safezone            }, // ekle

C++:
Genişlet Daralt Kopyala
    int pc_get_wear(lua_State * L)
    {      
        [...]
    }
    //Ekle
    int pc_is_safezone(lua_State* L)
    {
       
        LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();

        if (!ch)
        {
            lua_pushboolean(L, false);
            return 1;
        }

        LPSECTREE sectree = ch->GetSectree();
        if (!sectree)
        {
            lua_pushboolean(L, false);
            return 1;
        }

        bool is_safe = sectree->IsAttr(ch->GetX(), ch->GetY(), ATTR_BANPK);
        lua_pushboolean(L, is_safe);
        return 1;
    }

quest_functions içine ekle:
C++:
Genişlet Daralt Kopyala
pc.is_safe

Test etmedim ama çalışacağını umuyorum

Teşekkür ederim, işe yarıyor :)
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst