PlayerInfo -
JoelNyiTz - 08.09.2018
Bom dia, eu criei um comando (/demitirvaga1) porйm quero que ele tenha a funзгo de setar PlayerInfo[ID][pEmp] = 0; ao jogador que for demitido, o meu problema й que ao usar [ID] ele precisa que o comando seja por exemplo: /demitirvaga1 [ID], mas nesse comando nгo quero que leve o ID, porque nгo faria o menor sentido no meu sistema , a minha pergunta й se tem alguma funзгo que sete as colunas do jogador atravйs do nome do jogador (GetPlayerName)? Se sim, se pudesse me dar um exemplo agradecia muito.
Re: PlayerInfo -
GSantana - 08.09.2018
posta o cуdigo aqui
Re: PlayerInfo -
JoelNyiTz - 08.09.2018
Quote:
Originally Posted by GSantana
posta o cуdigo aqui
|
Code:
CMD:demitirvaga1(playerid,params[])
{
new string[1100], ID, Query[130];
for(new c = 0; c < MAX_PROPIEDADES; c++)
{
if(IsPlayerInRangeOfPoint(playerid,2.5,PropInfo[c][pPosX],PropInfo[c][pPosY],PropInfo[c][pPosZ]))
{
if(!strcmp(PropInfo[c][pPropietario], NombreJugador(playerid), true))
{
if(!strcmp(PropInfo[c][pFunc],"Ninguem", true))
{
PlayerInfo[ID][pEmp] = 0;
format(PropInfo[c][pFunc], 24, "Ninguem");
CargarPropiedad©;
format(Query,sizeof(Query),"UPDATE `propiedades` SET `Func`='Ninguem' WHERE `ID`=%d",PropInfo[c][pID]);
mysql_function_query(Conecction,Query,true,"","");
format(string, 128,"Vocк {ff0000}demitiu{FFFFFF} da empresa {0066ff}%s{FFFFFF} que vocк trabalhava na produзгo {0066ff}1{FFFFFF}.", PropInfo[c][pFunc]);
SendClientMessage(playerid, -1, string);
break;
}
else return SendClientMessage(playerid, COLOR_ROJO, "Nгo а ninguйm ocupando a vaga nъmero 1!");
}
else return SendClientMessage(playerid, COLOR_ROJO, "Vocк nгo й o dono dessa empresa.");
}
}
return 1;
}
Linha:
Code:
PlayerInfo[ID][pEmp] = 0;
Re: PlayerInfo -
ipsLuan - 08.09.2018
PHP Code:
CMD:demitirvaga1(playerid)
{
new string[200], Query[130];
for(new c = 0; c < MAX_PROPIEDADES; c++)
{
if(IsPlayerInRangeOfPoint(playerid, 2.5, PropInfo[c][pPosX], PropInfo[c][pPosY], PropInfo[c][pPosZ]))
{
if(strcmp(PropInfo[c][pPropietario], NombreJugador(playerid), true) == 0)
{
if(strcmp(PropInfo[c][pFunc], "Ninguem", true) == 0)
{
CargarPropiedad(c);
format(Query,sizeof(Query),"UPDATE `propiedades` SET `Func`='Ninguem' WHERE `ID`=%d",PropInfo[c][pID]);
mysql_function_query(Conecction,Query,true,"","");
format(string, 128,"Vocк {ff0000}demitiu{FFFFFF} da empresa {0066ff}%s{FFFFFF} que vocк trabalhava na produзгo {0066ff}1{FFFFFF}.", PropInfo[c][pFunc]);
SendClientMessage(playerid, -1, string);
format(PropInfo[c][pFunc], 24, "Ninguem");
//SalvarPlayer();
break;
}
else return SendClientMessage(playerid, COLOR_ROJO, "Nгo а ninguйm ocupando a vaga nъmero 1!");
}
else return SendClientMessage(playerid, COLOR_ROJO, "Vocк nгo й o dono dessa empresa.");
}
}
return 1;
}
Depois de demitir, й sу chamar a callback de salvamento.
Re: PlayerInfo -
JoelNyiTz - 08.09.2018
Quote:
Originally Posted by ipsLuan
PHP Code:
CMD:demitirvaga1(playerid)
{
new string[200], Query[130];
for(new c = 0; c < MAX_PROPIEDADES; c++)
{
if(IsPlayerInRangeOfPoint(playerid, 2.5, PropInfo[c][pPosX], PropInfo[c][pPosY], PropInfo[c][pPosZ]))
{
if(strcmp(PropInfo[c][pPropietario], NombreJugador(playerid), true) == 0)
{
if(strcmp(PropInfo[c][pFunc], "Ninguem", true) == 0)
{
CargarPropiedad(c);
format(Query,sizeof(Query),"UPDATE `propiedades` SET `Func`='Ninguem' WHERE `ID`=%d",PropInfo[c][pID]);
mysql_function_query(Conecction,Query,true,"","");
format(string, 128,"Vocк {ff0000}demitiu{FFFFFF} da empresa {0066ff}%s{FFFFFF} que vocк trabalhava na produзгo {0066ff}1{FFFFFF}.", PropInfo[c][pFunc]);
SendClientMessage(playerid, -1, string);
format(PropInfo[c][pFunc], 24, "Ninguem");
//SalvarPlayer();
break;
}
else return SendClientMessage(playerid, COLOR_ROJO, "Nгo а ninguйm ocupando a vaga nъmero 1!");
}
else return SendClientMessage(playerid, COLOR_ROJO, "Vocк nгo й o dono dessa empresa.");
}
}
return 1;
}
Depois de demitir, й sу chamar a callback de salvamento.
|
E como ele vai detetar que o jogador demitido deve voltar com o [pEmp] a 0?
Re: PlayerInfo -
ipsLuan - 08.09.2018
Quote:
Originally Posted by JoelNyiTz
E como ele vai detetar que o jogador demitido deve voltar com o [pEmp] a 0?
|
Do mesmo jeito que as informaзхes й setadas no PlayerInfo:
Carregando as coisas do jogador.
Re: PlayerInfo -
JoelNyiTz - 08.09.2018
Quote:
Originally Posted by ipsLuan
Do mesmo jeito que as informaзхes й setadas no PlayerInfo: Carregando as coisas do jogador.
|
Felizmente, estб tudo saindo, estб dando update na base de dados o format saindo certinho, mas o PlayerInfo[pEmp], nгo й setada para 0 ao jogador que й demitido, continua 1 infelizmente.
Re: PlayerInfo -
Malandrin - 08.09.2018
Uй, vocк estб fazendo isso?
PHP Code:
PlayerInfo[id][pEmp] = 0;
Ou estб fazendo de outro jeito? Se possнvel mande o jeito que vocк estб fazendo..
Re: PlayerInfo -
JoelNyiTz - 08.09.2018
Quote:
Originally Posted by Malandrin
Uй, vocк estб fazendo isso?
PHP Code:
PlayerInfo[id][pEmp] = 0;
Ou estб fazendo de outro jeito? Se possнvel mande o jeito que vocк estб fazendo..
|
Eu estava fazendo PlayerInfo[ID][pEmp] mas no meu sistema nгo pode ser, gostaria de algo tipo de invйs de ser preciso o ID, fosse buscar pelo nome do jogador e setar a 0, nгo sei se strcmp й possнvel fazer isso. Й essa a minha questгo, gostaria de setar atravйs do pname por exemplo o pEmp para 0.
Re: PlayerInfo -
iHollyZinhO - 08.09.2018
Quote:
Originally Posted by JoelNyiTz
Eu estava fazendo PlayerInfo[ID][pEmp] mas no meu sistema nгo pode ser, gostaria de algo tipo de invйs de ser preciso o ID, fosse buscar pelo nome do jogador e setar a 0, nгo sei se strcmp й possнvel fazer isso. Й essa a minha questгo, gostaria de setar atravйs do pname por exemplo o pEmp para 0.
|
Diretamente usando o nome nгo й possнvel, mas vocк usa o strcmp para comparar o nome do jogador para buscar o нndice da linha correspondente ao jogador, que no caso й o ID.
Re: PlayerInfo -
Malandrin - 08.09.2018
Quote:
Originally Posted by JoelNyiTz
Eu estava fazendo PlayerInfo[ID][pEmp] mas no meu sistema nгo pode ser, gostaria de algo tipo de invйs de ser preciso o ID, fosse buscar pelo nome do jogador e setar a 0, nгo sei se strcmp й possнvel fazer isso. Й essa a minha questгo, gostaria de setar atravйs do pname por exemplo o pEmp para 0.
|
Nгo pode porque? Se for por causa do MySQL dб sim, eu uso...
Re: PlayerInfo -
JoelNyiTz - 08.09.2018
Quote:
Originally Posted by Malandrin
Nгo pode porque? Se for por causa do MySQL dб sim, eu uso...
|
O sistema й o seguinte, o jogador vai e pega a vaga da empresa e automaticamente armazena na base de dados mysql o nome dele, quando e se o dono quiser ele dб /demitirvaga1 para demitir quem estб na vaga 1.
Se eu usar o playerid, ele seta o pEmp do dono a 0 e o que eu quero й que sete desse jogador que foi demitido. Sу queria saber um jeito de fazer isso, se eu usasse [ID] nгo teria de ser /demitirvaga1 [ID]? Sу daria para remover o jogador se ele estivesse online. Desde jб obrigado pela ajuda.
Re: PlayerInfo -
ipsLuan - 08.09.2018
Vocк estб complicando as coisas, de onde vocк estб tirando os cуdigos do sistema?
Se ao executar o comando jб salva que nгo existe mais nenhum funcionбrio, й sу vocк carregar e verificar se existe o nome do jogador em alguma empresa.
Re: PlayerInfo -
JoelNyiTz - 08.09.2018
Quote:
Originally Posted by ipsLuan
Vocк estб complicando as coisas, de onde vocк estб tirando os cуdigos do sistema?
Se ao executar o comando jб salva que nгo existe mais nenhum funcionбrio, й sу vocк carregar e verificar se existe o nome do jogador em alguma empresa.
|
Nгo porque o que identifica que um jogador jб estб em uma empresa й o [pEmp] 0 - Nгo estб em nenhuma empresa; [pEmp] 1 - estб em uma empresa. Й porque isso que quando o dono demite o jogador, esse jogador precisa setar de 1 para 0 o [pEmp], porque jб nгo estб em nenhuma empresa й sу isso.
Re: PlayerInfo -
ipsLuan - 08.09.2018
Quote:
Originally Posted by JoelNyiTz
Nгo porque o que identifica que um jogador jб estб em uma empresa й o [pEmp] 0 - Nгo estб em nenhuma empresa; [pEmp] 1 - estб em uma empresa. Й porque isso que quando o dono demite o jogador, esse jogador precisa setar de 1 para 0 o [pEmp], porque jб nгo estб em nenhuma empresa й sу isso.
|
Vocк jб tem o nome do jogador que estб na empresa:
PropInfo[c][pFunc].
Agora, o que vocк precisa fazer й abrir o salvamento do jogador, definir que ele nгo й mais funcionбrio da empresa e fazer o carregamento das informaзхes para setar a informaзгo como 0.
PHP Code:
format(contaPlayer, sizeof(contaPlayer), "Contas/%s.ini", PropInfo[c][pFunc]);
DOF2_SetInt(contaPlayer, "Funcionario", 0);
DOF2_SaveFile();
//CarregarPlayer(playerid);
Use este modelo.
Salve as informaзхes no banco de dados, se ele estiver on-line, faзa o carregamento dos dados.
Re: PlayerInfo -
JoelNyiTz - 08.09.2018
Quote:
Originally Posted by ipsLuan
Vocк jб tem o nome do jogador que estб na empresa: PropInfo[c][pFunc].
Agora, o que vocк precisa fazer й abrir o salvamento do jogador, definir que ele nгo й mais funcionбrio da empresa e fazer o carregamento das informaзхes para setar a informaзгo como 0.
PHP Code:
format(contaPlayer, sizeof(contaPlayer), "Contas/%s.ini", PropInfo[c][pFunc]);
DOF2_SetInt(contaPlayer, "Funcionario", 0);
DOF2_SaveFile();
//CarregarPlayer(playerid);
Use este modelo.
Salve as informaзхes no banco de dados, se ele estiver on-line, faзa o carregamento dos dados.
|
O meu servidor nгo usa DOF2 infelizmente para aplicar esse processo, apenas mysql.
Falta-me apenas esta parte para concluir o meu sistema, serб que um comando por exemplo /demitir [Nome_Sobrenome] nгo daria? Assim talvez o atravйs PlayerInfo[ID][pEmp] jб funcionaria.
Estou dando voltas e voltas, tentando fazer tudo, mas sem sucesso. Tudo por causa de uma setagem
Re: PlayerInfo -
ipsLuan - 08.09.2018
Й a mesma coisa. Como vocк faz pra salvar a conta do jogador?
"UPDATE ... NAME = %s" PropInfo[c][pFunc]...
Re: PlayerInfo -
JoelNyiTz - 08.09.2018
Quote:
Originally Posted by ipsLuan
Й a mesma coisa. Como vocк faz pra salvar a conta do jogador?
"UPDATE ... NAME = %s" PropInfo[c][pFunc]...
|
Exemplo:
Code:
format(Query,sizeof(Query),"UPDATE `usuarios` SET `Emp`='0' WHERE `Username`=%s",PropInfo[c][pFunc]);
Tentei isso para tentar ir buscar o Username que estб no Func e assim Setar o Emp para 0 mas sem sucesso, talvez por estar em tabelas diferentes.
@Edit
Ficou assim, tudo funciona perfeitamente mas o Emp nгo seta por nada.
Code:
CMD:demitirvaga1(playerid,params[])
{
new string[1100], Query[130];
for(new c = 0; c < MAX_PROPIEDADES; c++)
{
if(IsPlayerInRangeOfPoint(playerid,2.5,PropInfo[c][pPosX],PropInfo[c][pPosY],PropInfo[c][pPosZ]))
{
if(!strcmp(PropInfo[c][pPropietario], NombreJugador(playerid), true))
{
if(strcmp(PropInfo[c][pFunc], NombreJugador(playerid), true) || strcmp(PropInfo[c][pFunc1], NombreJugador(playerid), true) || strcmp(PropInfo[c][pFunc2], NombreJugador(playerid), true) || strcmp(PropInfo[c][pFunc3], NombreJugador(playerid), true))
{
SendClientMessage(playerid, COLOR_ROJO, "Nгo а ninguйm ocupando a vaga 1!");
return 1;
}
format(string, 128,"Vocк {ff0000}demitiu{FFFFFF} da empresa {0066ff}%s{FFFFFF} que vocк trabalhava na produзгo {0066ff}1{FFFFFF}.", PropInfo[c][pFunc]);
SendClientMessage(playerid, -1, string);
CargarPropiedad©;
format(Query,sizeof(Query),"UPDATE `usuarios` SET `Emp`='0' WHERE `Username`=%s",PropInfo[c][pFunc]);
mysql_function_query(Conecction,Query,true,"","");
format(Query,sizeof(Query),"UPDATE `propiedades` SET `Func`='Ninguem' WHERE `ID`=%d",PropInfo[c][pID]);
mysql_function_query(Conecction,Query,true,"","");
format(PropInfo[c][pFunc], 24, "Ninguem");
break;
}
else return SendClientMessage(playerid, COLOR_ROJO, "Vocк nгo й o dono dessa empresa.");
}
}
return 1;
}
Re: PlayerInfo -
ipsLuan - 08.09.2018
Como vocк salva e carrega o PlayerInfo[ID][pEmp]?
Re: PlayerInfo -
JoelNyiTz - 08.09.2018
Quote:
Originally Posted by ipsLuan
Como vocк salva e carrega o PlayerInfo[ID][pEmp]?
|
Para guardar:
stock GuardarCuenta(playerid)
forward SaveAccount(playerid);
public SaveAccount(playerid)
Para carregar:
forward CargarUsers();
public CargarUsers()