else if (command.length() >= 2 && command.compare(0,2,"ph") == 0 && this->player->character->has_pet) { PacketBuilder builder; UTIL_PTR_LIST_FOREACH(this->player->character->map->characters, Character, character) { int hpgain = this->player->character->maxhp - this->player->character->hp; if(this->player->character->tp > 0) { this->player->character->tp -= 50; if (this->player->character->tp <= 0) { this->player->character->tp = 0; } this->player->character->hp += hpgain; reply.AddInt(hpgain); reply.AddShort(this->player->character->hp); { PacketBuilder builder; builder.SetID(PACKET_RECOVER, PACKET_AGREE); builder.AddShort(this->player->id); builder.AddInt(hpgain); builder.AddChar(int(double(this->player->character->hp) / double(this->player->character->maxhp) * 100.0)); UTIL_PTR_VECTOR_FOREACH(this->server->world->characters, Character, character) { character->player->client->SendBuilder(builder); } } PacketBuilder builder; builder.SetID(PACKET_RECOVER, PACKET_PLAYER); builder.AddShort(this->player->character->hp); builder.AddShort(this->player->character->tp); UTIL_PTR_VECTOR_FOREACH(this->server->world->characters, Character, character) { character->player->client->SendBuilder(builder); } } PacketBuilder builder; builder.SetID(PACKET_EFFECT, PACKET_PLAYER); builder.AddShort(this->player->id); builder.AddShort(21); builder.AddChar(0); UTIL_PTR_VECTOR_FOREACH(this->server->world->characters, Character, character) { character->player->client->SendBuilder(builder); } } }