[Ajuda] SetPlayerPos
#1

Como colocar mais que 1 SetPlayerPos num comando?

ou seja eu tenho 14 coordenadas random:

pawn Код:
RandomAPrison[rand][0], RandomAPrison[rand][1], RandomAPrison[rand][2], RandomAPrison[rand][3], RandomAPrison[rand][4], RandomAPrison[rand][5], RandomAPrison[rand][6], RandomAPrison[rand][7], RandomAPrison[rand][8], RandomAPrison[rand][9], RandomAPrison[rand][10], RandomAPrison[rand][11], RandomAPrison[rand][12], RandomAPrison[rand][13]
So posso colocar 3 Randoms num setplayerpos:

pawn Код:
SetPlayerPos(playerb, RandomAPrison[rand][0], RandomAPrison[rand][1], RandomAPrison[rand][2]);
como colocar mais setplayerpos com + randoms neste comando?

pawn Код:
CMD:arrest(playerid, params[])
{
    new rand = random(sizeof(RandomAPrison));
    new playerb, time, string[128], fine;
    if(!IsPlayerLoggedIn(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You need to login first before using any command.");
    if(!IsACop(playerid) && !IsFBI(playerid) && !IsARES(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You are not a LEO.");
    if(!PlayerInfo[playerid][pFacDuty]) return SendClientMessage(playerid, COLOR_GREY, "You are not on duty.");
    if(!IsPlayerNearArrestPoint(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You are not near the arrest point.");
    if(sscanf(params, "uis[64]", playerb, time, fine)) return SendClientMessage(playerid, COLOR_WHITE, "[Usage]: /arrest [playerid] [minutes] [price]");
    if(!IsPlayerLoggedIn(playerb)) return SendClientMessage(playerid, COLOR_GREY, "Invalid player id.");
    if(fine <=0 || fine > 5000)return SendClientMessage(playerid, COLOR_GREY, "Invalid money amount(0-5000).");
    if(!PlayerInfo[playerb][pWanted]) return SendClientMessage(playerid, COLOR_GREY, "Player is not wanted.");
    if(IsACop(playerb) && IsFBI(playerb) && IsARES(playerb)) return SendClientMessage(playerid, COLOR_GREY, "You can't arrest an BCPD Officer.");
    if(!IsPlayerNearPlayer(playerid, playerb, 2)) return SendClientMessage(playerid, COLOR_GREY, "You are too far away from that player.");
    format(string, sizeof(string), "Local Prison: %s has been arrested by %s.", RPN(playerb), RPN(playerid));
    foreach(Player, i)
    {
        if(IsACop(i) || IsFBI(i) || IsARES(i))
        {
        SendClientMessage(i, COLOR_BLUE, string);
        }
    }
    SetPlayerColor(playerb, TRANSPARENT_ORANGE);
    PlayerInfo[playerb][pArrested] ++;
    PlayerInfo[playerb][pPrison] = 2;
    PlayerInfo[playerb][pPrisonTime] = time*60;
    GiveDodMoney(playerb, -fine);
    ClearDodWantedLevels(playerb);
    SetPlayerInterior(playerb, 0);
    SetPlayerVirtualWorld(playerb, 0);
    SetPlayerPos(playerb, RandomAPrison[rand][0], RandomAPrison[rand][1], RandomAPrison[rand][2]);
    SetPlayerFacingAngle(playerb, 90.0);
    TogglePlayerControllable(playerb, 0);
    SetTimerEx("EnterExitTimer", 5000, false, "i", playerb);
    SetCameraBehindPlayer(playerb);
    format(string, sizeof(string), " You have been arrested by an officer for %d minutes (%d seconds) and fined $%d", PlayerInfo[playerb][pPrisonTime]/60, PlayerInfo[playerb][pPrisonTime], fine);
    SendClientMessage(playerb, COLOR_LIGHTBLUE, string);
    RemovePlayerAttachedObject(playerb, 0);
    SetPlayerSpecialAction(playerb, SPECIAL_ACTION_NONE);
    // Clearing robbery
    if(BankRobber[playerb])
    {
        new Rob = BankRobber[playerb]-1;
        DisablePlayerCheckpoint(playerb);
        BankRobbersCount --;
        format(BankRobbers[Rob], MAX_PLAYER_NAME, "");
        DeliverMoney[playerb] = 0;
        //
        foreach(Player, i)
        {
            if(BankRobber[i] || PlayerInfo[i][pFac] == 1)
            {
                if(Rob == 0) TextDrawHideForPlayer(i, Textdraw1);
                else if(Rob == 1) TextDrawHideForPlayer(i, Textdraw2);
                else if(Rob == 2) TextDrawHideForPlayer(i, Textdraw3);
                else if(Rob == 3) TextDrawHideForPlayer(i, Textdraw4);
                else if(Rob == 4) TextDrawHideForPlayer(i, Textdraw5);
            }
        }
        format(string, sizeof(string), "** %s has been arrested and has failed the robbery. **", RPN(playerb));
        SendRobberyMessage(COLOR_LIGHTRED, string);
        SendCopMessage(COLOR_LIGHTRED, string);
        BankRobber[playerb] = 0;
        if(BankRobbersCount == 0)
        {
            TextDrawHideForAll(Textdraw0);
            TextDrawHideForAll(Textdraw1);
            TextDrawHideForAll(Textdraw2);
            TextDrawHideForAll(Textdraw3);
            TextDrawHideForAll(Textdraw4);
            TextDrawHideForAll(Textdraw5);
//            BankRobbery = 0;
            RobberyStarted = 0;
            TotalRobbers = 0;
            new copsonline;
            foreach(Player, i)
            {
                if(IsACop(i) || IsFBI(i) || IsARES(i)) copsonline++;
            }
            foreach(Player, i)
            {
                if(IsACop(i) || IsFBI(i) || IsARES(i))
                {
                    new Saved = (TotalRobbers*50000-(TotalStolen*50000));
                    format(string, sizeof(string), "** You have received your cut from the saved money. ($%d)", Saved/copsonline);
                    SendClientMessage(i, COLOR_LIME, string);
                }
            }
  }
    }
    return 1;
}
Reply
#2

ve se entende

pawn Код:
new Float:RandomAPrison[][3] =
{
    // posicoes, (X, Y, Z)
    {X, Y, Z},
    {X, Y, Z},
    {X, Y, Z}
};

// local onde vc quer
new ptrandom = random(sizeof(RandomAPrison));
SetPlayerPos(playerid, RandomAPrison[ptrandom][0], RandomAPrison[ptrandom][1],RandomAPrison[ptrandom][2]);
Reply
#3

Quote:
Originally Posted by PT
Посмотреть сообщение
ve se entende

pawn Код:
new Float:RandomAPrison[][3] =
{
    // posicoes, (X, Y, Z)
    {X, Y, Z},
    {X, Y, Z},
    {X, Y, Z}
};

// local onde vc quer
new ptrandom = random(sizeof(RandomAPrison));
SetPlayerPos(playerid, RandomAPrison[ptrandom][0], RandomAPrison[ptrandom][1],RandomAPrison[ptrandom][2]);
Desculpe mas vocк nгo viu bem o script, o que vocк postou jб estб no script.... eu estou a pedir ajuda para colocar mais que 3 randoms, eu nгo quero sу 3 randoms, quero colocar mais que 3 locais diferentes no comando....
Reply
#4

so aumentar isto

pawn Код:
new Float:RandomAPrison[][11] =
{
    // posicoes, (X, Y, Z)
    {X, Y, Z},
    {X, Y, Z},
    {X, Y, Z},
    {X, Y, Z},
    {X, Y, Z},
    {X, Y, Z},
    {X, Y, Z},
    {X, Y, Z},
    {X, Y, Z},
    {X, Y, Z},
    {X, Y, Z}
};
Reply
#5

eu sei, e no comando?

O SetPlayerPos so pode ter 3 Randoms se nгo dб warring :S
Reply
#6

Sim "MorreJa" sу pode setar 3 posiзхes "X,Y,Z" se quiser setar ROTAЗГO ai vai outra funзгo... ^^
Reply
#7

Mas eu quero setar mais que 3 posiзхes.
Reply
#8

Colocar mais posiзхes na seleзгo aleatуria que ocorre durante o jogo consistiria em aumentar os grupos de coordenadas da array RandomAPrison, como foi dito acima.



Vocк, pela minha compreensгo, pensa que porque hб trкs dados na linha do SetPlayerPos o jogador sempre irб para um ъnico local, o que nгo й verdade .



A variбvel rand, associada no inнcio do comando а funзгo random, durante o jogo gera um nъmero aleatуrio que faz com que os dados passados ao SetPlayerPos sejam iguais аs coordenadas X, Y e Z de uma determinada posiзгo escolhida aleatoriamente dentre as da array RandomAPrison.



Espero ter ajudado .
Reply
#9

Ai chesus.. eu sei que na SetPlayerPos Seta apenas 3 posiзoes, mas o que eu estou a dizer й que se a SetPlayerPos so consegue ter 3 Posiзoes e eu no comando quero meter 20 posiзoes diferentes...
Reply
#10

Usa switch, meu deus.

pawn Код:
switch(afdafdaf)
{
    case 0:SetPlayerPos();
    case 1:SetPlayerPos();
    case 2:SetPlayerPos();
    case 3:SetPlayerPos();
    case 4:SetPlayerPos();
    case 5:SetPlayerPos();
    case 6:SetPlayerPos();
}
vб estudar tambйm.

e sу pra avisar,

pawn Код:
SetPlayerPos(playerb, RandomAPrison[rand][0], RandomAPrison[rand][1], RandomAPrison[rand][2]);
irб bugar, pois cada uma delas tem uma coordenada completa (X,Y,Z) na variavel que vocк mostrou no tуpico anterior.
Reply


Forum Jump:


Users browsing this thread: 6 Guest(s)