Pastebin

New pastes are no longer accepted · Stats

Latest Pastes

Functions and such ~Ryouken

void Character::UpdateStats()
{
    this->CalculateStats();

    PacketBuilder reply(PACKET_STATSKILL, PACKET_PLAYER, 32);
    reply.AddShort(this->statpoints);
    reply.AddShort(this->display_str);
    reply.AddShort(this->display_intl);
    reply.AddShort(this->display_wis);
    reply.AddShort(this->display_agi);
    reply.AddShort(this->display_con);
    reply.AddShort(this->display_cha);
    reply.AddShort(this->maxhp);
    reply.AddShort(this->maxtp);
    reply.AddShort(this->maxsp);
    reply.AddShort(this->maxweight);
    reply.AddShort(this->mindam);
    reply.AddShort(this->maxdam);
    reply.AddShort(this->accuracy);
    reply.AddShort(this->evade);
    reply.AddShort(this->armor);

    this->Send(reply);
}

bool Character::Buff(std::string statname, int amount, int time, std::string label)
{
    int buffstr = 0, buffint = 0, buffwis = 0, buffagi = 0, buffcon = 0, buffcha = 0;

    if(!statname.empty())
    {
        if(int(statname.find("str")) != -1) buffstr = amount;
        if(int(statname.find("int")) != -1) buffint = amount;
        if(int(statname.find("wis")) != -1) buffwis = amount;
        if(int(statname.find("agi")) != -1) buffagi = amount;
        if(int(statname.find("con")) != -1) buffcon = amount;
        if(int(statname.find("cha")) != -1) buffcha = amount;
        if(int(statname.find("exp")) != -1) exprate = amount;

        if(buffstr > 0 || buffint > 0 || buffwis > 0 || buffagi > 0 || buffcon > 0 || buffcha > 0)
        {
            Character_StatBuff *buff = new Character_StatBuff;
            buff->time = time;
            buff->label = label;
            buff->str = buffstr;
            buff->intl = buffint;
            buff->wis = buffwis;
            buff->agi = buffagi;
            buff->con = buffcon;
            buff->cha = buffcha;

            this->statbuffs.push_back(buff);
            this->UpdateStats();

            return true;
        }
    }
    return false;
}

void Character::ClearBuffsLabeled(std::string label)
{
    std::list<Character_StatBuff *> toremove;

    UTIL_FOREACH(this->statbuffs, buff)
    {
        if(buff->label != label)
            continue;

        toremove.push_back(buff);
    }
    UTIL_FOREACH(toremove, remove)
    {
        this->RemoveBuff(remove);
    }
}

void Character::RemoveBuff(Character_StatBuff *thebuff)
{
    this->statbuffs.erase(std::remove(UTIL_RANGE(this->statbuffs), thebuff),this->statbuffs.end());
    this->UpdateStats();
}

void Character::ClearBuffs()
{
    this->statbuffs.clear();
	this->UpdateStats();
}