10.05.2015, 20:58
Queria saber se alguйm poderia me levar a lуgica ou fazer uma base por onde eu poderia iniciar um sistema de aposta de dinheiro, player apostando com outro player o que morrer perde...
enum e_apostaInfo
{
aposta_amount,
aposta_creator,
aposta_other,
aposta_accepted
};
new apostaInfo[MAX_PLAYERS][e_apostaInfo];
public OnPlayerConnect(playerid)
{
apostaInfo[playerid][aposta_amount] = -1;
apostaInfo[playerid][aposta_creator] = -1;
apostaInfo[playerid][aposta_other] = -1;
apostaInfo[playerid][aposta_aceepted] = 0;
}
CMD:apostar(playerid,params[])
{
new otherid,amount;
if(sscanf(params,"ui",otherid,amount)) return SendClientMessage(playerid,-1,"USE: /apostar [id] [quantidade]");
if(!IsPlayerConnected(otherid)) return SendClientMessage(playerid,-1,"Jogador off the line..");
new str[128];
GetPlayerName(playerid,tmp,MAX_PLAYER_NAME);
format(tmp, sizeof tmp,"Vocк recebeu uma aposta de %s no valor de %s$",tmp,amount);
SendClientMessage(otherid,-1,tmp);
apostaInfo[playerid][aposta_amount] = amount;
apostaInfo[playerid][aposta_creator] = playerid;
apostaInfo[playerid][aposta_other] = otherid;
apostaInfo[playerid][aposta_aceepted] = 0;
apostaInfo[otherid][aposta_amount] = amount;
apostaInfo[otherid][aposta_creator] = playerid;
apostaInfo[otherid][aposta_other] = otherid;
apostaInfo[otherid][aposta_accepted] = 0;
return true;
}
CMD:aceitaraposta(playerid,params[])
{
if(apostaInfo[playerid][aposta_creator] != -1)
{
if(apostaInfo[playerid][aposta_creator] != playerid)
{
if(apostaInfo[playerid][aposta_other] == playerid)
{
if(!IsPlayerConnected(apostaInfo[playerid][aposta_creator])) return SendClientMessage(playerid,-1,"O criador ficou off the line..");
GivePlayerMoney(playerid,-apostaInfo[playerid][aposta_amount]);
SendClientMessage(playerid,-1,"Aposta aceite, dinheiro retirado.");
SendClientMessage(apostaInfo[playerid][aposta_creator],-1,"A aposta foi aceite!");
apostaInfo[playerid][aposta_accepted] = 1;
apostaInfo[apostaInfo[playerid][aposta_creator]][aposta_accepted] = 1;
return true;
}
}
}
return false;
}
public OnPlayerDeath(playerid, killerid, reason)
{
if(killerid != INVALID_PLAYER_ID)
{
if(apostaInfo[playerid][aposta_accepted] = 1)
{
if(apostaInfo[playerid][aposta_creator] == killerid || apostaInfo[playerid][aposta_other] == killerid)
{
SendClientMessage(playerid,-1,"Perdeu..");
SendClientMessage(killerid,-1,"Ganhou..");
GivePlayerMoney(killerid,apostaInfo[playerid][aposta_amount]*2);
apostaInfo[playerid][aposta_amount] = -1;
apostaInfo[playerid][aposta_creator] = -1;
apostaInfo[playerid][aposta_other] = -1;
apostaInfo[playerid][aposta_aceepted] = 0;
apostaInfo[killerid][aposta_amount] = -1;
apostaInfo[killerid][aposta_creator] = -1;
apostaInfo[killerid][aposta_other] = -1;
apostaInfo[killerid][aposta_aceepted] = 0;
}
}
}
return 1;
}
if(apostaInfo[playerid][aposta_creator] != -1) { if(apostaInfo[playerid][aposta_creator] != playerid) { if(apostaInfo[playerid][aposta_other] == playerid)
isso funciona mesmo ??
posso ta enganado mas se verifico q o aposta_creator й diferente do playerid e dentro dessa chave vc verifica se й igual acho q dessa forma se uma linha nao retorna a outra retorna e o comando nao vai ter como funcionar Код:
if(apostaInfo[playerid][aposta_creator] != -1) { if(apostaInfo[playerid][aposta_creator] != playerid) { if(apostaInfo[playerid][aposta_other] == playerid) |