Obter ID da Empresa -
Mitic0 - 21.07.2018
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(Linha1, 1024, "");
for(new i = 0; i < MAX_EMPRESAS; i ++)
{
if(EmpresaInfo[i][TemDono] == PlayerInfo[playerid][UserID])
{
GetEmpresa2DZone( i, area, MAX_ZONE_NAME );
format(Linha2, 126, "Numero da Empresa: %d | Localizaзгo: %s\n", EmpresaInfo[i][Numero], area);
strcat(Linha1, Linha2);
}
}
Dialog_Show(playerid, DIALOG_EMPRESAS, DIALOG_STYLE_MSGBOX, "Concercionaria", Linha1, "Escolher", "Sair");
return 1;
}
Dialog:DIALOG_EMPRESAS(playerid, response, listitem, inputtext[])
{
if (!response) return 1;
new idemp = -1, cont = -1;
for(new x =0; x < MAX_EMPRESAS ;x++)
{
cont++;
if (listitem == cont)
{
idemp = x;
break;
}
}
return 1;
}
Re: Obter ID da Empresa -
bruxo00 - 21.07.2018
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 x = 0, i = 20; x <= 20; x++, i--) {
printf("%d | %d", x, i);
}
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(Linha1, 1024, "");
Estб a declarar uma variбvel com 1024 de tamanho e sу a formatar com 126, porquк?
PHP код:
format(Linha2, 126,....);
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.
Re: Obter ID da Empresa -
Mitic0 - 21.07.2018
Poderia me ajudar no code a quando eu clickar no dialog, getar o Id da empresa?
Re: Obter ID da Empresa -
bruxo00 - 21.07.2018
Como lhe disse, o listitem й o ID da empresa.
PHP код:
Dialog:DIALOG_EMPRESAS(playerid, response, listitem, inputtext[])
{
if(!response) return 1;
new idEmpresa = listitem;
return 1;
}
Re: Obter ID da Empresa -
Mitic0 - 21.07.2018
e se caso o id da empresa for 100, e o sу estiver uma empresa na lista?
Re: Obter ID da Empresa -
bruxo00 - 21.07.2018
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 i = 0; i < MAX_EMPRESAS; i++)
{
if(EmpresaInfo[i][TemDono] == PlayerInfo[playerid][UserID])
{
GetEmpresa2DZone(i, area, MAX_ZONE_NAME);
format(Linha2, sizeof Linha2, "[%d] Numero da Empresa: %d | Localizaзгo: %s\n", i, EmpresaInfo[i][Numero], area);
strcat(Linha1, Linha2);
}
}
Dialog_Show(playerid, DIALOG_EMPRESAS, DIALOG_STYLE_MSGBOX, "Concercionaria", Linha1, "Escolher", "Sair");
return 1;
}
Dialog:DIALOG_EMPRESAS(playerid, response, listitem, inputtext[])
{
if (!response) return 1;
new output[2][128], empresaID, temp[4];
strexplode(output, inputtext, "]");
strcatmid(temp, output[0], 1);
empresaID = strval(temp);
return 1;
}
Nгo compilei nem testei, mas acho que deve funcionar. Precisa da include strlib:
https://github.com/oscar-broman/strl...ter/strlib.inc
Re: Obter ID da Empresa -
Mitic0 - 21.07.2018
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