Pastebin

New pastes are no longer accepted · Stats

Latest Pastes

statskill skill levels

case PACKET_ADD: // Spending a stat point on a skill
		{

           if (this->state < EOClient::PlayingModal) return false;

			unsigned short *stat;
			int action = reader.GetChar();
			int stat_id = reader.GetShort();

			 switch (action)
            {
             case SKILL_LEVEL:
              {
             UTIL_PTR_LIST_FOREACH(this->player->character->spells, Character_Spell, spl)
              {

            if(spl->id == stat_id)
              {

            if(spl->level >= 100)
             {
             return false;
             }

             ++spl->level;
             --this->player->character->skillpoints;

             reply.SetID(PACKET_STATSKILL, PACKET_ACCEPT);
             reply.AddShort(this->player->character->skillpoints);
             reply.AddShort(stat_id);
             reply.AddShort(spl->level);

             CLIENT_SEND(reply);
                }
            }
        }
        break;

        case STAT_LEVEL:
         {
         if(this->player->character->statpoints <= 0)
         {
            return false;
         }

			switch (stat_id)
			{
				case 1: stat = &this->player->character->str; break;
				case 2: stat = &this->player->character->intl; break;
				case 3: stat = &this->player->character->wis; break;
				case 4: stat = &this->player->character->agi; break;
				case 5: stat = &this->player->character->con; break;
				case 6: stat = &this->player->character->cha; break;
				default: return false;
			}

			++(*stat);
			--this->player->character->statpoints;

			this->player->character->CalculateStats();

			reply.SetID(PACKET_STATSKILL, PACKET_PLAYER);
			reply.AddShort(this->player->character->statpoints);
			reply.AddShort(this->player->character->str);
			reply.AddShort(this->player->character->intl);
			reply.AddShort(this->player->character->wis);
			reply.AddShort(this->player->character->agi);
			reply.AddShort(this->player->character->con);
			reply.AddShort(this->player->character->cha);
			reply.AddShort(this->player->character->maxhp);
			reply.AddShort(this->player->character->maxtp);
			reply.AddShort(this->player->character->maxsp);
			reply.AddShort(this->player->character->maxweight);
			reply.AddShort(this->player->character->mindam);
			reply.AddShort(this->player->character->maxdam);
			reply.AddShort(this->player->character->accuracy);
			reply.AddShort(this->player->character->evade);
			reply.AddShort(this->player->character->armor);

			CLIENT_SEND(reply);
		}
		break;
    }
}
break;