[Ajuda] Sistema de Aposta
#1

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...
Reply
#2

Pode ser de corrida, jogo da velha, mata-mata, matemбtica.. Vai do que vocк imaginar.
Reply
#3

Fiz de cabeзa, segundo a lуgica funciona, mas nгo tenho 100% pois nгo testei, usa como base.

PHP код:
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(tmpsizeof 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(playeridkilleridreason)
{
    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;

Reply
#4

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)
Reply
#5

Quote:
Originally Posted by [BC]Vinny
Посмотреть сообщение
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)
Sim funciona, eu vou te explicar a logica, primeiro verifico de existe aposta, a aposta existira se o aposta_creator nгo for igual a -1.
Depois verifico se a pessoa que usou o /aceitaraposta nгo й o criador e por fim verifico se a essa mesma pessoa й o convidado.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)