[C++] Anti Exp gyűrű

Indította huzsihun1997, 2015-09-14, 11:42:25

Miért jó ez? hiszen van nagyon sok anti exp quest...
Nos ez annyiban tér el a többitől, hogy nem "elveszi" az exp-t, pl 3 másodpercenként, hanem tiltja az exp "kapást"
ergó, ha te felmész 90%-ra, bekapcsolod nem esik le 0%-ra, simán nem megy 90% fölé (nem kapsz exp-t!)

char.h

SetExp(DWORD exp) hez

bool            block_exp;

char.cpp-ben

if (gPlayerMaxLevel <= GetLevel())
    return; 

ehez

if (block_exp)
    {
        return;
    } 

ezt

questlua_pc.cpp-ben
keress rá erre:
{ "give_award_socket",    pc_give_award_socket    }, 

ird alá ezeket:
{ "block_exp",    _block_exp    },    //Tapasztalat tiltás
           
{ "unblock_exp",    _unblock_exp    },    //tapasztalat engedélyezés


questlua_pc.cpp -ben

void RegisterPCFunctionTable()  alá

int _block_exp(lua_State* L) // tapasztalat tiltás INT-ig
{
    LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();
    ch->block_exp = true;
    return 0;
}
   
int _unblock_exp(lua_State* L) //tapasztalat engedélyezés INT ig
{
    LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr();
    ch->block_exp = false;
    return 0;


input_login.cpp-ben

if (g_bCheckClientVersion) 
alá (egyből!)

ch->block_exp = false; 

quest_functions-ba
pc.block_exp
pc.unblock_exp


locale_xy/locale/xy item_desc.txt (item ID-t ird át!)
ITEMID antiexp Ha bekapcsolod, nem kapsz tapasztalatot! Nem megy lejjebb a tapasztalatod! Ha 90%-nál bekapcsolod, és ölsz, akkor ugyanugy 90%-on maradsz! Nem mész le 0%-ra!

item_list.txt ITEMID-t ird át ittis!
ITEMID ETC icon/item/antiexp.tga

icon.eix-epk-ba, pedig tegyél be egy képet, "antiexp.tga" néven.

quest: ITEMID-t ird át ittis!
quest antiexp begin
    state start begin
        when login begin
            if pc.getqf("antiexp") == 1 then
                pc.block_exp()
                chat("Anti tapasztalat aktív!")
            end
        end
        when ITEMID.use begin
            if pc.getqf("antiexp") == 0 then
                pc.block_exp()
                pc.setqf("antiexp", 1)
                chat("Anti tapasztalat aktíválva.")
            elseif pc.getqf("antiexp") == 1 then
                pc.unblock_exp()
                pc.setqf("antiexp", 0)
                chat("Anti tapasztalat kikapcsolva.")
            end
        end
    end
end