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