SA-MP Forums Archive
[Ajuda]Ver Contratos. - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda]Ver Contratos. (/showthread.php?tid=314042)



[Ajuda]Ver Contratos. - Leo_Lost - 28.01.2012

Bom quando alguem usa /meucontrato era pra falar o id eo nome do contrato, mas sempre fala o id eo nome de quem usou o comando preciso de ajuda para resolver esse poblema ja tentei varias vezes e nem quer dar certo.




pawn Код:
}
    if(strcmp(cmd, "/meucontrato", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            if(PlayerInfo[playerid][pMembro] != 8 && PlayerInfo[playerid][pLider] != 8)
            {
                SendClientMessage(playerid, COR_EXE, "Vocк nao e um hitman.");
                return 1;
            }
            if(GoChase[playerid] == 999)
            {
                SendClientMessage(playerid,COR_VAGOS,"Voce nao possui um contrato!.");
                return 1;
            }
            new Giver[MAX_PLAYER_NAME];
            GetPlayerName(hitid, Giver, sizeof(Giver));
            format(gstring,128,"<< Seu contrato eo Player %s (ID:%d) >>",Giver,hitid);
            SendClientMessage(playerid,COLOR_YELLOW,gstring);
            return 1;
        }
        return 1;
    }



Re: [Ajuda]Ver Contratos. - Hardware - 28.01.2012

Poste o comando para contratar os serviзos.


Re : Re: [Ajuda]Ver Contratos. - Leo_Lost - 28.01.2012

Quote:
Originally Posted by Hardware
Посмотреть сообщение
Poste o comando para contratar os serviзos.
Aqui quando alguem coloca um contrato para os hitmans matar alguem.
pawn Код:
}
    if(strcmp(cmd, "/contrato", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            new money2;
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD1, "USE: /contrato [ID/Nome] [Quantia]");
                return 1;
            }
            giveplayerid = ReturnUser(tmp);
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD1, "USE: /contrato [ID/Nome] [Quantia]");
                return 1;
            }
            if(PlayerInfo[playerid][pMembro] == 8 || PlayerInfo[playerid][pLider] == 8)
            {
                SendClientMessage(playerid, COLOR_WHITE, "ERRO: Voce nao pode colocar contrato!");
                return 1;
            }
            moneys = strval(tmp);
            if(moneys < 10000) { SendClientMessage(playerid, COLOR_GREY, "   Seu contrato nгo pode ser menor que 10000"); return 1; }
            if(PlayerInfo[playerid][pLevel] < 1)
            {
                SendClientMessage(playerid, COLOR_GRAD1, "Vocк precisa de no Mнnimo nнvel 1 para por um Contrato.");
                return 1;
            }
            if (IsPlayerConnected(giveplayerid))
            {
                if(giveplayerid != INVALID_PLAYER_ID)
                {
                    if(PlayerInfo[giveplayerid][pLevel] == 1)
                    {
                        SendClientMessage(playerid, COLOR_GRAD1, "Vocк nгo pode por contrato em novatos!");
                        return 1;
                    }
                    if(PlayerInfo[giveplayerid][pMembro] == 8 && PlayerInfo[playerid][pMembro] == 8)
                    {
                        SendClientMessage(playerid, COLOR_GREY, "   Nгo pode colocar contrato em membros de sua agencia!");
                        return 1;
                    }
                    else if(PlayerInfo[giveplayerid][pLider] == 8 && PlayerInfo[playerid][pMembro] == 8)
                    {
                        SendClientMessage(playerid, COLOR_GREY, "   Nгo pode colocar contrato em Hitmans!");
                        return 1;
                    }
                    else if(PlayerInfo[giveplayerid][pMembro] == 8||PlayerInfo[giveplayerid][pLider] == 8)
                    {
                        SendClientMessage(playerid, COLOR_GREY, "Nгo pode colocar contrato em Hitmans!");
                        return 1;
                    }
                    else if(PlayerInfo[giveplayerid][pAdmin] >= 1)
                    {
                        SendClientMessage(playerid, COLOR_GREY, "   Nгo pode colocar contrato em Admins!");
                        return 1;
                    }
                    if(gTeam[giveplayerid] == 2 && moneys <= 80000)
                    {
                        SendClientMessage(playerid, COLOR_GREY, "Preco Minimo de $80000 em oficiais!");
                        return 1;
                    }
                    if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "Nao pode colocar contrato em si mesmo!"); return 1; }
                    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                    GetPlayerName(playerid, sendername, sizeof(sendername));
                    money2 = GetPlayerMoney(playerid);
                    if (moneys > 0 && money2 >= moneys)
                    {
                        GivePlayerMoney(playerid, (0 - moneys));
                        PlayerInfo[giveplayerid][pHeadValue]+=moneys;
                        format(string, sizeof(string), "%s Colocou um contrato em %s, por $%d.",sendername, giveplayer, moneys);
                        SendFamilyMessage(8, COLOR_YELLOW, string);
                        format(string, sizeof(string), "* Vocк colocou um contrato em %s, por $%d.",giveplayer, moneys);
                        SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
                        PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
                    }
                    else
                    {
                        SendClientMessage(playerid, COLOR_GRAD1, "   Vocк nгo possui essa grana.");
                    }
                }
            }
            else
            {
                SendClientMessage(playerid, COLOR_GRAD1, "   Esse nгo й um jogador ativo.");
            }
        }
        return 1;
    }
   
    return 1;
}
Aqui quando o hitman cumpri o contrato.
pawn Код:
ConsumingMoney[killerid] = 1;
                    GivePlayerMoney(killerid, PlayerInfo[playerid][pHeadValue]);
                    format(gstring,128,"{FFFF00}<<Vocк foi morto por contrato pelo hitman %s no valor de %d e nгo foi DM!>>",PlayerName(killerid),PlayerInfo[playerid][pHeadValue]);
                    SendClientMessage(playerid, COLOR_YELLOW, gstring);
                    format(gstring,128,"<< Algum Hitman Cumpriu o contrato em %s e Recebeu $%d >>",PlayerName(playerid),PlayerInfo[playerid][pHeadValue]);
                    SendClientMessageToAll(COLOR_YELLOW, gstring);
                    GameTextForPlayer(killerid, "~w~Contrato ~r~Cumprido", 5000, 1);
                    PlayerInfo[playerid][pHeadValue] = 0;
                    GotHit[playerid] = 0;
                    GetChased[playerid] = 999;
                    GoChase[killerid] = 999;



Re: [Ajuda]Ver Contratos. - rjjj - 28.01.2012

Vocк deve armazenar o ID da vнtima do contrato em uma variбvel global (para que a possa chamar de qualquer lugar do GM) e depois usб-la no comando .


Veja como fazer :


pawn Код:
//No Topo do GM:

new VitimaID[MAX_PLAYERS]; //Uma variбvel array com tamanho igual a MAX_PLAYERS para que cada jogador seja capaz de ter seu prуprio alvo.


//Em um cуdigo no qual o ID do jogador e o ID da vнtima possam ser, ambos, obtidos (provavelmente seria o de aceitar o contrato):


VitimaID[x] = y;  //Sendo x o ID (ou variбvel que o contйm) do jogador "Hitman" e y o ID (ou variбvel que o contйm) do alvo do mesmo.



//Por fim, seu comando /meucontrato ficaria assim:


if(strcmp(cmd, "/meucontrato", true) == 0)
    {
        if(PlayerInfo[playerid][pMembro] != 8 && PlayerInfo[playerid][pLider] != 8)
        {
            SendClientMessage(playerid, COR_EXE, "Vocк nao e um hitman.");
            return 1;
        }
        if(GoChase[playerid] == 999)
        {
            SendClientMessage(playerid,COR_VAGOS,"Voce nao possui um contrato!.");
            return 1;
        }
        new Giver[MAX_PLAYER_NAME];
        GetPlayerName(VitimaID[playerid], Giver, sizeof(Giver));
        format(gstring,128,"<< Seu contrato eo Player %s (ID:%d) >>",Giver,VitimaID[playerid]);
        SendClientMessage(playerid,COLOR_YELLOW,gstring);
        return 1;
    }


Espero ter ajudado .


Re : [Ajuda]Ver Contratos. - Leo_Lost - 28.01.2012

Vlw ajudo e muito.