SA-MP Forums Archive
[Ajuda] Comando trabalhar - 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] Comando trabalhar (/showthread.php?tid=457849)



Comando trabalhar - Don_Speed - 13.08.2013

Bom fiz um /trabalhar para aparecer apenas 3 rotas ...
Porem nгo aparece a dialog , e na printf mostra que ele seta apenas dois .


pawn Код:
command(trabalhar, playerid, params[])
{
    new aaa[150], Rotas[MAX_PLAYERS][4], rot = 0;
    if(PlayerInfo[playerid][pClass] == TEAM_TRUCK)
    {
        if(GetVehicleTrailer(GetPlayerVehicleID(playerid)))
        {
             PlayerInfo[playerid][pTranpo] = GetPlayerVehicleID(playerid);
             for(new wp = 0; wp < sizeof Locais; wp++ )
             {
                   if(IsPlayerInRangeOfPoint(playerid, 10000, Locais[wp][X], Locais[wp][Y], Locais[wp][Z]))
                   {
                       rot++;
                       Rotas[playerid][rot] = Locais[wp][RotaID];
                       for(new i = 1; i< 4; i++)
                       {
                            format(Don,sizeof(Don),"Carga: %s - %s para %s\n", Locais[Rotas[playerid][i]][Produto], Locais[Rotas[playerid][i]][Name], Locais[Rotas[playerid][i]][ParaName]);
                            strcat(aaa, Don);
                            printf("Carga: %s - %s para %s", Locais[Rotas[playerid][i]][Produto], Locais[Rotas[playerid][i]][Name], Locais[Rotas[playerid][i]][ParaName]);
                            continue;
                       }
                   }
             }
             
             ShowPlayerDialog(playerid, DIALOG_WORK, DIALOG_STYLE_LIST, "Rotas", aaa, "Selecionar", #);
             
             PlayerInfo[playerid][Trab] ++;
             
        }else SendClientMessage(playerid, -1,"[ERRO] Vocк nгo tem carroceria.");
    }
    return true;
}

O que hб de errado?



Re: Comando trabalhar - PT - 13.08.2013

tenta assim

pawn Код:
command(trabalhar, playerid, params[])
{
    new aaa[150], Rotas[MAX_PLAYERS][4], rot = 0;
    if(PlayerInfo[playerid][pClass] == TEAM_TRUCK)
    {
        if(GetVehicleTrailer(GetPlayerVehicleID(playerid)))
        {
             PlayerInfo[playerid][pTranpo] = GetPlayerVehicleID(playerid);
             for(new wp = 0; wp < sizeof (Locais); wp++ )
             {
                   if(IsPlayerInRangeOfPoint(playerid, 10000, Locais[wp][X], Locais[wp][Y], Locais[wp][Z]))
                   {
                       rot++;
                       Rotas[playerid][rot] = Locais[wp][RotaID];
                       for(new i = 1; i< 4; i++)
                       {
                            format(Don, sizeof(Don), "Carga: %s - %s para %s\n", Locais[Rotas[playerid][i]][Produto], Locais[Rotas[playerid][i]][Name], Locais[Rotas[playerid][i]][ParaName]);
                            strcat(aaa, Don, sizeof(aaa));
                            printf("Carga: %s - %s para %s", Locais[Rotas[playerid][i]][Produto], Locais[Rotas[playerid][i]][Name], Locais[Rotas[playerid][i]][ParaName]);
                            continue;
                       }
                   }
             }
             
             ShowPlayerDialog(playerid, DIALOG_WORK, DIALOG_STYLE_LIST, "Rotas", aaa, "Selecionar", #);
             
             PlayerInfo[playerid][Trab] ++;
             
        }
        else SendClientMessage(playerid, -1,"[ERRO] Vocк nгo tem carroceria.");
    }
    return true;
}



Re: Comando trabalhar - Don_Speed - 13.08.2013

[I]
Quote:
Originally Posted by PT
Посмотреть сообщение
tenta assim

pawn Код:
command(trabalhar, playerid, params[])
{
    new aaa[150], Rotas[MAX_PLAYERS][4], rot = 0;
    if(PlayerInfo[playerid][pClass] == TEAM_TRUCK)
    {
        if(GetVehicleTrailer(GetPlayerVehicleID(playerid)))
        {
             PlayerInfo[playerid][pTranpo] = GetPlayerVehicleID(playerid);
             for(new wp = 0; wp < sizeof (Locais); wp++ )
             {
                   if(IsPlayerInRangeOfPoint(playerid, 10000, Locais[wp][X], Locais[wp][Y], Locais[wp][Z]))
                   {
                       rot++;
                       Rotas[playerid][rot] = Locais[wp][RotaID];
                       for(new i = 1; i< 4; i++)
                       {
                            format(Don, sizeof(Don), "Carga: %s - %s para %s\n", Locais[Rotas[playerid][i]][Produto], Locais[Rotas[playerid][i]][Name], Locais[Rotas[playerid][i]][ParaName]);
                            strcat(aaa, Don, sizeof(aaa));
                            printf("Carga: %s - %s para %s", Locais[Rotas[playerid][i]][Produto], Locais[Rotas[playerid][i]][Name], Locais[Rotas[playerid][i]][ParaName]);
                            continue;
                       }
                   }
             }
             
             ShowPlayerDialog(playerid, DIALOG_WORK, DIALOG_STYLE_LIST, "Rotas", aaa, "Selecionar", #);
             
             PlayerInfo[playerid][Trab] ++;
             
        }
        else SendClientMessage(playerid, -1,"[ERRO] Vocк nгo tem carroceria.");
    }
    return true;
}[/i]



Continua igual!
Olha so a printf que coloquei la :
Код:
[13:08:23] Carga: Caixas - Deposito para LVA Freight depot
[13:08:23] Carga: Carmon - Usina para 24/7
[13:08:23] Carga: Carmon - Usina para 24/7
[13:08:23] Carga: Caixas - Deposito para LVA Freight depot
[13:08:23] Carga: Graos - EasterBasion para Doherty
[13:08:23] Carga: Carmon - Usina para 24/7
[13:08:23] Carga: Caixas - Deposito para LVA Freight depot
[13:08:23] Carga: Graos - EasterBasion para Doherty
[13:08:23] Carga: Teste - Deka para Prala
Aqui as toras que possui:
pawn Код:
new Locais[][locs] =
{
    {1, "Carmon", "Usina", 292.2992, 1416.2694, 10.7145, "24/7", 1348.5021, -1751.2698, 13.9576, 3500},
    {2, "Caixas", "Deposito", 1734.0804, 981.7241, 11.4140, "LVA Freight depot", 1721.5757, 711.1726, 11.4241, 5500},
    {3, "Graos", "EasterBasion", -1692.0012, 21.7743, 4.1449, "Doherty", -1882.8525, -202.1867, 16.8491, 5000},
    {4, "Teste", "Deka", 0.0, 0.0, 0.0, "Prala", 0.0, 0.0, 0.0, 1000}
};




Re: Comando trabalhar - PT - 13.08.2013

n tem que fazer 1 random para escolher 1 so local, e esse o problema esta a escolher todos os destinos, certo?


Re: Comando trabalhar - Don_Speed - 13.08.2013

Quote:
Originally Posted by PT
Посмотреть сообщение
n tem que fazer 1 random para escolher 1 so local, e esse o problema esta a escolher todos os destinos, certo?
Se fosse random nгo teria graзa !

Meu problema e em relaзгo a dialog fiz um debug e vi que as variaveis estгo sendo setadas normalmente!
Porem nгo consigo fazer passar para a dialog

Como fiz o debug

pawn Код:
command(trabalhar, playerid, params[])
{
    new aaa[150], Rotas[MAX_PLAYERS][4];
    if(PlayerInfo[playerid][pClass] == TEAM_TRUCK)
    {
        if(GetVehicleTrailer(GetPlayerVehicleID(playerid)))
        {
             PlayerInfo[playerid][pTranpo] = GetPlayerVehicleID(playerid);
             for(new wp = 0; wp < sizeof (Locais); wp++ )
             {
                   if(IsPlayerInRangeOfPoint(playerid, 750, Locais[wp][X], Locais[wp][Y], Locais[wp][Z]))
                   {
                       rot[playerid]++;
                       Rotas[playerid][rot[playerid]] = Locais[wp][RotaID];
                       printf("ID: %d Rota: %d",rot[playerid], Rotas[playerid][rot[playerid]]);
                       
                   }
             }
             PlayerInfo[playerid][Trab] ++;
             rot[playerid]= 0;

        }
        else SendClientMessage(playerid, -1,"[ERRO] Vocк nгo tem carroceria.");
    }
    return true;
}



Re: Comando trabalhar - PT - 13.08.2013

testa ae

pawn Код:
#define teste 123

CMD:trabalhar(playerid)
{
    new string[256], pt[256], Rotas[MAX_PLAYERS][4];
    if(PlayerInfo[playerid][pClass] == TEAM_TRUCK)
    {
        if(GetVehicleTrailer(GetPlayerVehicleID(playerid)))
        {
             PlayerInfo[playerid][pTranpo] = GetPlayerVehicleID(playerid);
             for(new wp = 0; wp < sizeof (Locais); wp++ )
             {
                   if(IsPlayerInRangeOfPoint(playerid, 750, Locais[wp][X], Locais[wp][Y], Locais[wp][Z]))
                   {
                       rot[playerid]++;
                       Rotas[playerid][rot[playerid]] = Locais[wp][RotaID];
                       printf("ID: %d Rota: %d",rot[playerid], Rotas[playerid][rot[playerid]]);
                       
                       format(string, sizeof(string), "ID: %d Rota: %d\n",rot[playerid], Rotas[playerid][rot[playerid]]);
                       strcat(pt, string, sizeof(pt));
                       ShowPlayerDialog(playerid, teste, DIALOG_STYLE_MSGBOX, "Rotas", pt, "OK", "");    
                   }
             }
             PlayerInfo[playerid][Trab] ++;
             rot[playerid]= 0;

        }
        else SendClientMessage(playerid, -1,"[ERRO] Vocк nгo tem carroceria.");
    }
    return true;
}
os valores que devem aparecer aqui:

pawn Код:
ID:  Rota:
e letra ou numero? tbm pode ser isso


Re: Comando trabalhar - Don_Speed - 13.08.2013

#edit consegui que que pegue , porem so pega uma vez o /trabalhar

Code
pawn Код:
command(trabalhar, playerid, params[])
{
    if(PlayerInfo[playerid][pClass] == TEAM_TRUCK)
    {
        if(GetVehicleTrailer(GetPlayerVehicleID(playerid)))
        {
             for(new wp = 0; wp < sizeof (Locais); wp++ )
             {
                   if(IsPlayerInRangeOfPoint(playerid, 100000, Locais[wp][X], Locais[wp][Y], Locais[wp][Z]))
                   {
                       rot[playerid]++;
                       PlayerInfo[playerid][pInfo][rot[playerid]] = Locais[wp][RotaID];
                       printf("pInfo %d | Rot %d", PlayerInfo[playerid][pInfo][rot[playerid]], rot[playerid]);
                       Chamar(playerid);
                       continue;
                   }
             }
             rot[playerid]= 0;
             printf("%d", rot[playerid]);
        }
        else SendClientMessage(playerid, -1,"[ERRO] Vocк nгo tem carroceria.");
    }
    return true;
}
Chamar(playerid)
{
    new aaa[150];
    for(new i = 1; i< 4; i++)
    {
        format(Don, sizeof(Don), "Carga: %s - %s para %s\n", Locais[PlayerInfo[playerid][pInfo][i]][Produto], Locais[PlayerInfo[playerid][pInfo][i]][Name], Locais[PlayerInfo[playerid][pInfo][i]][ParaName]);
        strcat(aaa, Don, sizeof(aaa));
    }
    ShowPlayerDialog(playerid, DIALOG_WORK, DIALOG_STYLE_LIST, "Rotas", aaa, "Selecionar", #);
    return true;
}



Re: Comando trabalhar - PT - 13.08.2013

pawn Код:
if(PlayerInfo[playerid][pClass] == TEAM_TRUCK)
    {
        new aaa[150];
        if(GetVehicleTrailer(GetPlayerVehicleID(playerid)))
        {
             PlayerInfo[playerid][pTranpo] = GetPlayerVehicleID(playerid);
             for(new wp = 0; wp < sizeof (Locais); wp++ )
             {
                   if(IsPlayerInRangeOfPoint(playerid, 100000, Locais[wp][X], Locais[wp][Y], Locais[wp][Z]))
                   {
                       rot[playerid]++;
                       PlayerInfo[playerid][pInfo][rot[playerid]] = Locais[wp][RotaID];
                       printf("pInfo %d | Rot %d", PlayerInfo[playerid][pInfo][rot[playerid]], rot[playerid]);
                   }
             }
             for(new i = 1; i< 3; i++)
             {
                  format(Don, sizeof(Don), "Carga: %s - %s para %s\n", Locais[PlayerInfo[i][pInfo][i]][Produto], Locais[PlayerInfo[i][pInfo][i]][Name], Locais[PlayerInfo[i][pInfo][i]][ParaName]);
                  strcat(aaa, Don, sizeof(aaa));
                  ShowPlayerDialog(playerid, DIALOG_WORK, DIALOG_STYLE_LIST, "Rotas", aaa, "Selecionar", #);
                  continue;
             }
             PlayerInfo[playerid][Trab] ++;
             rot[playerid]= 0;

        }
        else SendClientMessage(playerid, -1,"[ERRO] Vocк nгo tem carroceria.");
    }
    return true;
}
assim da?

estou tentando ajudar, mas meu conhecimento n permite mais, pelo menos vou continuar a tentar com o que sei

se der erro por causa do showplayerdialog, coloca fora do loop


Re: Comando trabalhar - Don_Speed - 13.08.2013

Quote:
Originally Posted by PT
Посмотреть сообщение
pawn Код:
if(PlayerInfo[playerid][pClass] == TEAM_TRUCK)
    {
        new aaa[150];
        if(GetVehicleTrailer(GetPlayerVehicleID(playerid)))
        {
             PlayerInfo[playerid][pTranpo] = GetPlayerVehicleID(playerid);
             for(new wp = 0; wp < sizeof (Locais); wp++ )
             {
                   if(IsPlayerInRangeOfPoint(playerid, 100000, Locais[wp][X], Locais[wp][Y], Locais[wp][Z]))
                   {
                       rot[playerid]++;
                       PlayerInfo[playerid][pInfo][rot[playerid]] = Locais[wp][RotaID];
                       printf("pInfo %d | Rot %d", PlayerInfo[playerid][pInfo][rot[playerid]], rot[playerid]);
                   }
             }
             for(new i = 1; i< 3; i++)
             {
                  format(Don, sizeof(Don), "Carga: %s - %s para %s\n", Locais[PlayerInfo[i][pInfo][i]][Produto], Locais[PlayerInfo[i][pInfo][i]][Name], Locais[PlayerInfo[i][pInfo][i]][ParaName]);
                  strcat(aaa, Don, sizeof(aaa));
                  ShowPlayerDialog(playerid, DIALOG_WORK, DIALOG_STYLE_LIST, "Rotas", aaa, "Selecionar", #);
                  continue;
             }
             PlayerInfo[playerid][Trab] ++;
             rot[playerid]= 0;

        }
        else SendClientMessage(playerid, -1,"[ERRO] Vocк nгo tem carroceria.");
    }
    return true;
}
assim da?

estou tentando ajudar, mas meu conhecimento n permite mais, pelo menos vou continuar a tentar com o que sei

se der erro por causa do showplayerdialog, coloca fora do loop

Dei edit la !



Re: Comando trabalhar - PT - 13.08.2013

tira o
pawn Код:
return true;
da callback
pawn Код:
Chamar(playerid)