emirhanHCL 1
emirhanHCL
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
farkmt2official 1
farkmt2official
Hikaye Ekle

[C++] Birkaç Yeni quest_functions

Türkiye'de ilk Mobil & PC Aynı Anda Metin2 Oyna. Triarchonline kalıcı ve uzun ömürlü yapısı ile 24 Temmuz'da açılıyor. | 1-99 Mobil Metin2 Triarch HEMEN TIKLA!

Merhaba,

Birkaç gündür kill komutu arıyordum, yabancı bir forumda derdime derman buldum bunun yanında iş yapabilecek birkaç fonksiyon daha buldum sizlere sunmak istedim. Neyse çok uzattım anlatıma geçelim;

1.Aşama:

game/src içinde questlua_pc.cpp açılır ;

Arat:
Kod:
int pc_get_name(lua_State* L)

Üstüne boşluk bırakarak ekle:

Kod:
// New Functions by ummeh122
    int pc_get_ip(lua_State* L)
    {
        LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();
        lua_pushstring(L, ch->GetDesc()->GetHostName());
        return 1;
    }

    int pc_kill(lua_State* L)
    {
        LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();
        ch->Dead();
        return 0;
    }

    int pc_set_coins(lua_State * L)
    {
        if (!lua_isnumber(L, 1))
        {
            sys_err("invalid argument");
            return 0;
        }

        LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();
        long val = (long)lua_tonumber(L, 1);
        SQLMsg *msg;

        msg = DBManager::instance().DirectQuery("UPDATE account.account SET coins = coins + '%ld' WHERE id = '%d'", val, ch->GetAID());
    
        if (msg->uiSQLErrno != 0)
        {
            sys_err("pc_update_coins query failed");
            return 0;
        }
    }

    int pc_get_empire_name(lua_State* L)
    {
        LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();
        const char* tabelle[3] = {"Shinsoo","Chunjo","Jinno"};
        int empireave = ch->GetEmpire()-1;
        lua_pushstring(L, tabelle[empireave]);
        return 1;
    }
    // New Functions by ummeh122 end

Aynı yerde arat:
Kod:
{ "getname",        pc_get_name        },
            { "get_name",        pc_get_name        },

Altına ekle:

Kod:
// New Functions by ummeh122
            { "get_ip",                pc_get_ip            },
            { "kill",                pc_kill                },
            { "set_coins",            pc_set_coins        },
            { "get_empire_name",    pc_get_empire_name    },
            // New Functions by ummeh122 end

2.Aşama:

game/src/quest içerisindeki quest_functions ve filezillada quest klasöründeki quest_functions da uygun bir yere ekle:
Kod:
pc.get_ip
pc.kill
pc.set_coins
pc.get_empire_name

Örnek Kullanım;
Kod:
pc.kill()
pc.set_coins("50")

Günlük EP ödül verimlerinde çok verimli olabilecek bir komut olduğunu düşünüyorum.

Fonksiyonların içerdiği komutlar;
Oyuncunun İp'sini göster
Oyuncuyu öldür
Oyuncunun bulunduğu bayrağın ismini göster
Oyuncuya quest komutuyla EP ver


Eğer daha önceden paylaşılmışsa kapatılabilir ben aradım bulamadım forumda.
Bir Teşekkür yeterli iyi kullanımlar :)
 
Son düzenleme:
Thx, seçenekleri çoğalta bilirsen veya birlikte konu altında çoğaltabilirsek konu sabitlenebilecek değerde olduğunu düşünüyorum.
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst