cmd.cpp
ACMD(do_grzyb_ovh);
{ "muchomorantyexp", do_grzyb_ovh, 0, POS_DEAD, GM_PLAYER },
cmd_general.cpp
Version 1 - With PulseManager:
ACMD(do_grzyb_ovh)
{
if (!ch)
return;
if (ch->IsDead() || ch->IsObserverMode())
return;
if (!PulseManager::Instance().IncreaseClock(ch->GetPlayerID(), ePulse::Alchemia, std::chrono::milliseconds(10000)))
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Musisz odczekac: %.2f sekund."), PULSEMANAGER_CLOCK_TO_SEC2(ch->GetPlayerID(), ePulse::Alchemia));
return;
}
if (ch->GetQuestFlag("muchomor.antyexp") == 0)
{
ch->SetQuestFlag("muchomor.antyexp", 1);
ch->ChatPacket(CHAT_TYPE_INFO, "|cffffc700AntyExp - Został Włączony.|r");
}
else
{
ch->SetQuestFlag("muchomor.antyexp", 0);
ch->ChatPacket(CHAT_TYPE_INFO, "AntyExp - Został Wyłączony.");
}
}
Version 2 with normal cooldown with questflag:
ACMD(do_grzyb_ovh)
{
if (!ch)
return;
if (ch->IsDead() || ch->IsObserverMode())
return;
int cooltime = ch->GetQuestFlag("muchomor.cooltime");
if (cooltime > get_global_time())
{
ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Odczekaj 5 sekund."));
return;
}
if (ch->GetQuestFlag("muchomor.antyexp") == 0)
{
ch->SetQuestFlag("muchomor.antyexp", 1);
ch->ChatPacket(CHAT_TYPE_INFO, "|cffffc700AntyExp - Został Włączony.|r");
}
else
{
ch->SetQuestFlag("muchomor.antyexp", 0);
ch->ChatPacket(CHAT_TYPE_INFO, "AntyExp - Został Wyłączony.");
}
ch->SetQuestFlag("muchomor.cooltime", get_global_time() + 5);
}
char_battle.cpp
Find:
to->PointChange(POINT_EXP, iExp, true);
from->CreateFly(FLY_EXP, to);
and change:
if (to->GetQuestFlag("muchomor.antyexp") == 0)
{
to->PointChange(POINT_EXP, iExp, true);
from->CreateFly(FLY_EXP, to);
}
Ok! How to use in client?
Just use net
import net
def YourDef(self):
net.SendChatPacket("/muchomorantyexp")
Done!
You can easily edit this code for an assumed item or anything else, the code is simple, takes little code, no new packets, no bugs with guild or other problems, full fixed