Çözüldü Quest Üzerinden Mob Sabitleme

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ı.

Tebair

Üye
Üye
Mesaj
24
Beğeni
11
Puan
683
Ticaret Puanı
0
Merhabalar başlıktada belirttiğim gibi mob öldüğü zaman etrafında başka mobların doğmasını istiyorum.Bunu nasıl yapabilirim.Düşündüğüm şu when kill komutu ile mob öldükten sonra Quest üzerinden kordinatlar ile bos sabitlemek ama yapamadım yardımcı olur musunu?
 
Çözüm
Evet doğru. :) 1, 1, 1 duruma göre değişiyor. Kaynak kodunda bu quest fonksiyonu şu şekilde tanımlanmış.

game/src/questlua.cpp
C++:
    ALUA(mob_spawn)
    {
        if (!lua_isnumber(L, 1) || !lua_isnumber(L, 2) || !lua_isnumber(L, 3) || !lua_isnumber(L, 4))
        {
            sys_err("invalid argument");
            return 0;
        }

        DWORD mob_vnum = (DWORD)lua_tonumber(L, 1);
        long local_x = (long) lua_tonumber(L, 2)*100;
        long local_y = (long) lua_tonumber(L, 3)*100;
        float radius = (float) lua_tonumber(L, 4)*100;
        bool bAggressive = lua_toboolean(L, 5);
        DWORD count = (lua_isnumber(L, 6))?(DWORD) lua_tonumber(L, 6):1;

1 değer (3302 ) mob vnum olmalı.
2 değer (608) konumun x...
Böyle bir şey mümkün. Event ve dungeon questlerini inceleyerek daha detaylı bulabilirsiniz ama size mob spawnı için örnek bir kod veriyim;
Lua (Quest):
mob.spawn(3302, 608, 617, 1, 1, 1)

Yalnız bu normal sabitli npc gibi değildir. Servere rest atıldığında silinir.
 
Efendim aslında benim istediğim bir filesteki hoşuna gitti.Kulenin sonkatındaki azrail kesildiği zaman yanlarına mob çağrılması.

mob.spawn(3302, 608, 617, 1, 1, 1)

3302 mob kodu
608,617 Mobun çıkacağı kordinatlar
1,1,1 sabit
Doğrumudur.Servere restart atıldığında silinir derken onu anlayamadım.
 
Evet doğru. :) 1, 1, 1 duruma göre değişiyor. Kaynak kodunda bu quest fonksiyonu şu şekilde tanımlanmış.

game/src/questlua.cpp
C++:
    ALUA(mob_spawn)
    {
        if (!lua_isnumber(L, 1) || !lua_isnumber(L, 2) || !lua_isnumber(L, 3) || !lua_isnumber(L, 4))
        {
            sys_err("invalid argument");
            return 0;
        }

        DWORD mob_vnum = (DWORD)lua_tonumber(L, 1);
        long local_x = (long) lua_tonumber(L, 2)*100;
        long local_y = (long) lua_tonumber(L, 3)*100;
        float radius = (float) lua_tonumber(L, 4)*100;
        bool bAggressive = lua_toboolean(L, 5);
        DWORD count = (lua_isnumber(L, 6))?(DWORD) lua_tonumber(L, 6):1;

1 değer (3302 ) mob vnum olmalı.
2 değer (608) konumun x cinsinden değeri
3 değer (617) konumun y cinsinden değeri
4 değer (1) belirlenen nokta yerine değilde belirtilen alan içinde rasgele spawn eder
5 değer (1) ise spawn olacak şey saldırgan mı değil mi onu ayarlıyorsunuz.
6 değer (1) ise spawn olacak mob miktarı.

Bilmediğiniz fonksiyonları öğrenmek için kaynak kodunu inceleyebilirsiniz. :)
 
Çözüm
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst