[Ajuda] Comando trabalhar
#1

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

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;
}
Reply
#3

[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}
};

Reply
#4

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

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;
}
Reply
#6

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

#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;
}
Reply
#8

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
Reply
#9

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 !
Reply
#10

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


Forum Jump:


Users browsing this thread: 3 Guest(s)