[Ajuda] Obter ID da Empresa
#1

Olб, estou com um problema, queria pegar o id de uma empresa quando o player clickar na linha que a representa.
Exemplo, ele digita /Empresas, dai vai aparecer todas as empresas que ele й dono, e ao clickar em uma, ele pegar o ID da empresa que ele clickou, alguem pode me ajudar?

PHP код:
CMD:teste(playerid){
    new 
Linha1[1024];
    new 
vname[64], Linha2[1024], area[30];
            
    
format(Linha11024"");
    for(new 
0MAX_EMPRESAS++)
    {
        if(
EmpresaInfo[i][TemDono] == PlayerInfo[playerid][UserID])
        {        
            
GetEmpresa2DZoneiareaMAX_ZONE_NAME );
            
format(Linha2126"Numero da Empresa: %d | Localizaзгo: %s\n"EmpresaInfo[i][Numero], area);
            
strcat(Linha1Linha2);
        }
    }
    
Dialog_Show(playeridDIALOG_EMPRESASDIALOG_STYLE_MSGBOX"Concercionaria"Linha1"Escolher""Sair");
    return 
1;
}
Dialog:DIALOG_EMPRESAS(playeridresponselistiteminputtext[])
{
    if (!
response)      return 1;
    new 
idemp = -1cont = -1;
    for(new 
=0MAX_EMPRESAS ;x++)
    {
        
cont++;
        if (
listitem == cont)
        {
            
idemp x
            break;
        }
    }
    return 
1;

Reply
#2

Porque й que estб a criar um contador dentro de um loop quando o prуprio loop jб faz isso? Pode inicializar mais do que uma variбvel dentro de um loop, exemplo:

PHP код:
    for(new 020<= 20x++, i--) {
        
printf("%d | %d"xi);
    } 
Output:

Код:
0 | 20
1 | 19
2 | 18
3 | 17
4 | 16
5 | 15
6 | 14
7 | 13
8 | 12
9 | 11
10 | 10
11 | 9
12 | 8
13 | 7
14 | 6
15 | 5
16 | 4
17 | 3
18 | 2
19 | 1
20 | 0
Para quк isto:

PHP код:
format(Linha11024""); 
Estб a declarar uma variбvel com 1024 de tamanho e sу a formatar com 126, porquк?

PHP код:
format(Linha2126,....); 
O seu cуdigo do dialog nгo faz qualquer sentido. Pelo que percebi, cada linha do dialog й uma empresa, entгo o ID da empresa vai ser simplesmente o listitem do dialog.
Reply
#3

Poderia me ajudar no code a quando eu clickar no dialog, getar o Id da empresa?
Reply
#4

Como lhe disse, o listitem й o ID da empresa.

PHP код:
Dialog:DIALOG_EMPRESAS(playeridresponselistiteminputtext[])
{
    if(!
response) return 1;
    
    new 
idEmpresa listitem;
    return 
1;

Reply
#5

e se caso o id da empresa for 100, e o sу estiver uma empresa na lista?
Reply
#6

Li mal o cуdigo, nгo reparei na condiзгo, pensei que a lista ia listar todas as empresas, quer elas estivessem em uso ou nгo.

A ъnica forma que eu consigo pensar no momento й usando o texto do listitem, mas muito provavelmente hб maneiras muito melhores de fazer isto.

PHP код:
CMD:teste(playerid){
    new 
Linha1[1024], Linha2[128], area[30];
    for(new 
0MAX_EMPRESASi++)
    {
        if(
EmpresaInfo[i][TemDono] == PlayerInfo[playerid][UserID])
        {
            
GetEmpresa2DZone(iareaMAX_ZONE_NAME);
            
format(Linha2sizeof Linha2"[%d] Numero da Empresa: %d | Localizaзгo: %s\n"iEmpresaInfo[i][Numero], area);
            
strcat(Linha1Linha2);
        }
    }
    
    
Dialog_Show(playeridDIALOG_EMPRESASDIALOG_STYLE_MSGBOX"Concercionaria"Linha1"Escolher""Sair");
    
    return 
1;
}
Dialog:DIALOG_EMPRESAS(playeridresponselistiteminputtext[])
{
    if (!
response)    return 1;
    
    new 
output[2][128], empresaIDtemp[4];
    
strexplode(outputinputtext"]");
    
strcatmid(tempoutput[0], 1);
    
    
empresaID strval(temp);
    
    return 
1;

Nгo compilei nem testei, mas acho que deve funcionar. Precisa da include strlib:

Код:
#include strlib
https://github.com/oscar-broman/strl...ter/strlib.inc
Reply
#7

Consegui fazendo isso

pawn Код:
stock ProcurarEmpresa(playerid, empdd)
{
    new empid = 0;
    for(new i = 0; i < MAX_EMPRESAS; i ++)
    {
        if(EmpresaInfo[i][TemDono] > 0)
        {
            if(EmpresaInfo[i][TemDono] == PlayerInfo[playerid][UserID])
            {
                empid ++;
                if(empid == empdd)
                {
                    // Funзгo
                }
            }
        }
    }
    return 1;
}
vlw <3
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)