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;
}
}
}
}
}