void world_boost(void *world_void) { World *world = static_cast<World *>(world_void); UTIL_PTR_VECTOR_FOREACH(world->characters, Character, character) { if (character->boost >= 1 && character->tick > 0) { character->tick -= 1; } else if (character->boost >=1 && character->tick == 0) { EIF_Data *item = world->eif->Get(character->boost); int bstr = item->str; int bintl = item->intl; int bwis = item->wis; int bagi = item->agi; int bcon = item->con; int bcha = item->cha; character->str -= bstr; character->intl -= bintl; character->agi -= bagi; character->wis -= bwis; character->con -= bcon; character->cha -= bcha; character->boost = 0; character->tick = -1; PacketBuilder builder(PACKET_STATSKILL, PACKET_PLAYER); builder.AddShort(character->statpoints); builder.AddShort(character->str); builder.AddShort(character->intl); builder.AddShort(character->wis); builder.AddShort(character->agi); builder.AddShort(character->con); builder.AddShort(character->cha); builder.AddShort(character->maxhp); builder.AddShort(character->maxtp); builder.AddShort(character->maxsp); builder.AddShort(character->maxweight); builder.AddShort(character->mindam); builder.AddShort(character->maxdam); builder.AddShort(character->accuracy); builder.AddShort(character->evade); builder.AddShort(character->armor); character->player->client->SendBuilder(builder); character->ServerMsg("You feel the strength leave you."); } } }