Neler yeni
XenForo Bannerlar
Modern AdBlock Uyarısı

Foruma hoş geldin, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Kod Kişiye özel drop bonusu verme

Fatih Bulut

Süper Üye
Katılım
6 Kas 2021
Mesajlar
3,261
Tepkime puanı
4,780
Puanları
113
Yaş
31
Konum
Türkiye
Dc
fatihbulut
Dropları test ederken lazım olduğu için yaptım, benzer amaçta kullanabilirsiniz ya da başka karakterlerede verebilirsiniz. Sadece kişiye özel % olarak drop bonusu sağlar.

o9rmbII.png

* cmd.cpp
Arat:

Kod:
struct command_info cmd_info[] =

Üstüne ekle:

Kod:
ACMD(do_personal_drop_mgr);

Arat:
Kod:
    { "\n",        NULL,            0,            POS_DEAD,    GM_IMPLEMENTOR    }
Üstüne ekle:
Kod:
    { "personal_drop_mgr", do_personal_drop_mgr,         0,            POS_DEAD,    GM_IMPLEMENTOR },
* cmd_gm.cpp
Ekle:
Kod:
ACMD(do_personal_drop_mgr)
{
    char arg1[256], arg2[256], arg3[256];

    const char* line = two_arguments(argument, arg1, sizeof(arg1), arg2, sizeof(arg2));
    one_argument(line, arg3, sizeof(arg3));

    if (arg1[0] == '\0' && arg2[0] == '\0' && arg3[0] == '\0')
    {
        ch->ChatPacket(CHAT_TYPE_INFO, "Usage: /personal_drop_mgr <exp_value> <gold_value> <item_value>");
        return;
    }

    int exp = 0, gold = 0, item = 0;
    str_to_number(exp, arg1);
    str_to_number(gold, arg2);
    str_to_number(item, arg3);

    ch->ChatPacket(CHAT_TYPE_INFO, "Set personal drop rates: exp %d, gold %d, item %d", exp, gold, item);

    CPrivManager::instance().GiveCharacterPriv(ch->GetPlayerID(), PRIV_EXP_PCT, exp, 1);
    CPrivManager::instance().GiveCharacterPriv(ch->GetPlayerID(), PRIV_GOLD_DROP, gold, 1);
    CPrivManager::instance().GiveCharacterPriv(ch->GetPlayerID(), PRIV_ITEM_DROP, item, 1);
}

* priv_manager.cpp

Arat:

Kod:
    value = MINMAX(0, value, 100);
Değiştir:
Kod:
    value = MINMAX(0, value, 250);
* interfaceModule.py

Ekle:
Kod:
import uiPersonalDropManager

Arat:

Kod:
        self.wndGuildBuilding = None
Ekle:
Kod:
        self.wndPersonalDropMgr = None
Arat:
Kod:
        self.wndChatLog = wndChatLog
Ekle:
Kod:
        self.wndPersonalDropMgr = uiPersonalDropManager.PersonalDropWindow()
Arat:
Kod:
        if self.wndGuildBuilding:
            self.wndGuildBuilding.Destroy()
Ekle:
Kod:
     if self.wndPersonalDropMgr:
            self.wndPersonalDropMgr.Destroy()
Arat:
Kod:
        del self.wndGuildBuilding
Ekle
Kod:
        del self.wndPersonalDropMgr
Arat:
Kod:
        if self.wndExpandedTaskBar:
            self.wndExpandedTaskBar.Hide()
Ekle:
Kod:
        if self.wndPersonalDropMgr:
            self.wndPersonalDropMgr.Hide()
Arat:
Kod:
    def ShowGift(self):
        self.wndTaskBar.ShowGift()
Ekle:
Kod:
    def TogglePersonalDropMgrWindow(self):
        self.wndPersonalDropMgr.ToggleWindow()
* game.py

Arat:
Kod:
            "mall"          : self.__InGameShop_Show,

Altına ekle:
Kod:
            "open_personal_drop_mgr"    : self.__OpenPersonalDropMgr,

Ekle
Kod:
    def __OpenPersonalDropMgr(self):
        self.interface.TogglePersonalDropMgrWindow()

Clienizdeki root klasörüne uiPersonalDropManager.py isminde aktarın:


Kod:
quest personal_drop_mgr begin
    state start begin
        when login with pc.is_gm() begin
            set_state(run)
        end
    end

    state run begin
        when letter begin
            send_letter("<GM> Personal Drop")
        end

        when button or info begin
            cmdchat("open_personal_drop_mgr")
        end
    end
end

Questi server filesinizdeki share\locale\*\quest dizinine atın, aynı klasördeki quest_list klasörüne ekleyip qc ile derleyin daha sonrasında hazır olacaktır
 

Benzer konular

Forumdan daha fazla yararlanmak için giriş yapın yada üye olun!

Forumdan daha fazla yararlanmak için giriş yapın veya kayıt olun!

Kayıt ol

Forumda bir hesap oluşturmak tamamen ücretsizdir.

Şimdi kayıt ol
Giriş yap

Eğer bir hesabınız var ise lütfen giriş yapın

Giriş yap

Tema düzenleyici

Tema özelletirmeleri

Grafik arka planlar

Granit arka planlar