else if(command.length() == 4 && command.compare(0,4,"heal") == 0) { int hpgain = util::to_int(arguments[0]); int tpused = hpgain / 10; if (this->player->character->map->world->config["LimitDamage"]) { hpgain = std::min(hpgain, this->player->character->maxhp - this->player->character->hp); tpused = std::min(tpused, this->player->character->maxtp - this->player->character->tp); } hpgain = std::max(hpgain, 0); tpused = std::max(tpused, 0); this->player->character->tp -= tpused; this->player->character->hp += hpgain; if (this->player->character->map->world->config["LimitDamage"]) { this->player->character->hp = std::min(this->player->character->hp, this->player->character->maxhp); } this->player->character->Effect(17);//effect 1-31 if (this->player->character->party) { this->player->character->party->UpdateHP(this->player->character); } r.AddInt(hpgain); r.AddShort(this->player->character->hp); b.SetID(PACKET_RECOVER, PACKET_AGREE); b.AddShort(this->player->id); b.AddInt(hpgain); b.AddChar(int(double(this->player->character->hp) / double(this->player->character->maxhp) * 100.0)); UTIL_PTR_VECTOR_FOREACH(this->server->world->characters, Character, ch) { ch->client->SendBuilder(b); } this->player->character->client->SendBuilder(r); b.SetID(PACKET_RECOVER, PACKET_PLAYER); b.Reset(); b.AddShort(this->player->character->hp); b.AddShort(this->player->character->tp); b.AddShort(0); // ? this->player->character->client->SendBuilder(b); }