void Character::House() { int x, y, house; for(int i = 0 ; i < static_cast<int>(this->world->house_config["Amount"]) ; i++){ x = static_cast<int>(this->world->house_config[util::to_string(i+1) + ".x"]); y = static_cast<int>(this->world->house_config[util::to_string(i+1) + ".y"]); house = static_cast<int>(this->world->house_config[util::to_string(i+1) + ".house"]); if (this->house == house) { this->PetTransfer(); this->Warp(house, x, y, WARP_ANIMATION_NONE); this->PetTransfer(); } } } void Character::LeaveHouse() { if (this->house == this->mapid) { this->PetTransfer(); this->Warp(this->SpawnMap(), this->SpawnX(), this->SpawnY(), WARP_ANIMATION_NONE); this->PetTransfer(); } } void Character::HousePayment() { PacketBuilder builder; PacketBuilder reply; short id = 1;int timel; int times = 60;int id1, house, rent; timel = times -= this->house_usage; for(int i = 0 ; i < static_cast<int>(this->world->house_config["Amount"]) ; i++){ id1 = static_cast<int>(this->world->house_config[util::to_string(i+1) + ".id"]); house = static_cast<int>(this->world->house_config[util::to_string(i+1) + ".house"]); rent = static_cast<int>(this->world->house_config[util::to_string(i+1) + ".rent"]); if(this->house == house) { if(this->house > 0) { this->house_usage += static_cast<int>(this->world->config["HouseUsage"]); if(this->house_usage >= 30 && this->HasItem(id) >= rent) { this->house_usage = 0; if(this->player->character->DelItem(id, rent)); { builder.SetID(PACKET_ITEM, PACKET_KICK); builder.AddShort(id); builder.AddInt(this->player->character->HasItem(id)); builder.AddChar(this->player->character->weight); builder.AddChar(this->player->character->maxweight); this->player->client->SendBuilder(builder); } } else if(this->house_usage >= 30 && this->house_usage <= 60 && this->HasItem(id) <= rent) { builder.SetID(PACKET_TALK, PACKET_TELL); builder.AddBreakString("landlord"); builder.AddBreakString(this->name + "YOU HAVE" + ".." + util::to_string(timel) + "MINUTES TO COLLECT YOUR RENT MONEY OR YOUR HOUSE WILL BE SEASED"); this->player->client->SendBuilder(builder); } else if(this->house_usage >= 30 && this->house_usage <= 60 && this->HasItem(id) >= rent) { builder.SetID(PACKET_TALK, PACKET_TELL); builder.AddBreakString("LANDLORD"); builder.AddBreakString(this->name + "THANK YOU FOR YOUR PROMPT PAYMENT (:"); this->player->client->SendBuilder(builder); } if(this->house_usage > 60 && this->HasItem(id) <= rent) { if(this->HasItem(id1) >= 1) { this->player->character->DelItem(id1, 1); reply.SetID(PACKET_ITEM, PACKET_KICK); reply.AddShort(id1); reply.AddInt(this->player->character->HasItem(id1)); reply.AddChar(this->player->character->weight); reply.AddChar(this->player->character->maxweight); this->player->client->SendBuilder(reply); } this->house = 0; this->house_usage = 0; this->LeaveHouse(); builder.SetID(PACKET_TALK, PACKET_TELL); builder.AddBreakString("LANDLORD"); builder.AddBreakString(this->name + "YOUR HOUSE HAS BEEN SEASED >,<"); this->player->client->SendBuilder(builder); } } this->Save(); } } }