else if (command.length() >= 4 && command.compare(0,4,"deal") == 0) { //this->player->character->deal = true; int nextcard = util::rand(1, 12); int hisnextcard = util::rand(1, 12); int gold = 1; int amount1 = 1000; if (this->player->character) { int target_x = this->player->character->x; int target_y = this->player->character->y; switch (this->player->character->direction) { case DIRECTION_UP: target_y -= 1; break; case DIRECTION_RIGHT: target_x += 1; break; case DIRECTION_DOWN: target_y += 1; break; case DIRECTION_LEFT: target_x -= 1; break; } if (this->player->character->map->GetSpec(target_x, target_y) != Map_Tile::Unknown6 || (this->player->character->x != target_x && this->player->character->y != target_y)) { break; } if (this->player->character->HasItem(1) < 500) { this->player->character->map->Msg(this->player->character, " You dont have enough gold to play ", true); break; } if(this->player->character->mycards > 21 && this->player->character->hiscards > 21) { this->player->character->mycards = 0; this->player->character->hiscards = 0; } if(this->player->character->deal == true) { if(arguments[0] == "cards") { if(this->player->character->mycards > 0 || this->player->character->hiscards > 0) { this->player->character->map->Msg(this->player->character,"either type #deal hit or #deal stand", true); break; } this->player->character->mycards += nextcard; this->player->character->hiscards += hisnextcard; this->player->character->map->Msg(this->player->character,"You got" + util::to_string(nextcard) , true); this->player->character->map->Msg(this->player->character,"He got" + util::to_string(hisnextcard) , true); } if(arguments[0] == "hit") { if(this->player->character->mycards < 1 || this->player->character->hiscards < 1) { this->player->character->map->Msg(this->player->character,"You cant hit type #deal cards", true); break; } if(this->player->character->hiscards > 16 && this->player->character->hiscards <= 21) { this->player->character->hiscards = this->player->character->hiscards; } else{ this->player->character->hiscards += hisnextcard; } this->player->character->mycards += nextcard; //this->player->character->hiscards += hisnextcard; this->player->character->map->Msg(this->player->character,"You got" + util::to_string(this->player->character->mycards) , true); this->player->character->map->Msg(this->player->character,"He got" + util::to_string(this->player->character->hiscards) , true); if(this->player->character->mycards > 21 && this->player->character->hiscards <= 21) { this->player->character->map->Msg(this->player->character,"You lose" + util::to_string(this->player->character->mycards) , true); this->player->character->mycards = 0; this->player->character->hiscards = 0; short id = 1; int amount = 500; if(this->player->character->DelItem(id, amount)); { PacketBuilder builder; 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->character->player->client->SendBuilder(builder); } break; } if(this->player->character->hiscards > 21 && this->player->character->mycards <=21) { this->player->character->map->Msg(this->player->character,"You win" , true); this->player->character->mycards = 0; this->player->character->hiscards = 0; this->player->character->AddItem(gold, amount1); reply.SetID(PACKET_ITEM, PACKET_GET); reply.AddShort(0); // UID reply.AddShort(gold); reply.AddThree(amount1); reply.AddChar(this->player->character->weight); reply.AddChar(this->player->character->maxweight); this->player->character->player->client->SendBuilder(reply); break; } } if(arguments[0] == "stand") { if(this->player->character->mycards < 1 || this->player->character->hiscards < 1) { this->player->character->map->Msg(this->player->character,"You cant stand type #deal cards", true); break; } if(this->player->character->hiscards < 16) { this->player->character->hiscards += hisnextcard; this->player->character->map->Msg(this->player->character,"He got." + util::to_string(this->player->character->hiscards) , true); } if((this->player->character->mycards > 21 || this->player->character->mycards < this->player->character->hiscards)&& this->player->character->hiscards <=21) { this->player->character->map->Msg(this->player->character,"You lose" + util::to_string(this->player->character->mycards) , true); this->player->character->map->Msg(this->player->character,"He won" + util::to_string(this->player->character->hiscards) , true); this->player->character->mycards = 0; this->player->character->hiscards = 0; short id = 1; int amount = 500; if(this->player->character->DelItem(id, amount)); { PacketBuilder builder; 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->character->player->client->SendBuilder(builder); } break; } if((this->player->character->hiscards > 21 || this->player->character->hiscards < this->player->character->mycards) && this->player->character->mycards <=21) { this->player->character->map->Msg(this->player->character,"You got" + util::to_string(this->player->character->mycards) , true); this->player->character->map->Msg(this->player->character,"He got" + util::to_string(this->player->character->hiscards) , true); this->player->character->map->Msg(this->player->character,"You win" , true); this->player->character->mycards = 0; this->player->character->hiscards = 0; this->player->character->AddItem(gold, amount1); reply.SetID(PACKET_ITEM, PACKET_GET); reply.AddShort(0); // UID reply.AddShort(gold); reply.AddThree(amount1); reply.AddChar(this->player->character->weight); reply.AddChar(this->player->character->maxweight); this->player->character->player->client->SendBuilder(reply); break; } } } } }