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

Pages: 1 2


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
View Post
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 
0MAX_PROPIEDADESc++)
    {
        if(
IsPlayerInRangeOfPoint(playerid2.5PropInfo[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(string128,"Vocк {ff0000}demitiu{FFFFFF} da empresa {0066ff}%s{FFFFFF} que vocк trabalhava na produзгo {0066ff}1{FFFFFF}."PropInfo[c][pFunc]);
                    
SendClientMessage(playerid, -1string);
                    
format(PropInfo[c][pFunc], 24"Ninguem");
                    
//SalvarPlayer();
                    
break;
                }
                else return 
SendClientMessage(playeridCOLOR_ROJO"Nгo а ninguйm ocupando a vaga nъmero 1!");
            }
            else return 
SendClientMessage(playeridCOLOR_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
View Post
PHP Code:
CMD:demitirvaga1(playerid)
{
    new 
string[200], Query[130];
    for(new 
0MAX_PROPIEDADESc++)
    {
        if(
IsPlayerInRangeOfPoint(playerid2.5PropInfo[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(string128,"Vocк {ff0000}demitiu{FFFFFF} da empresa {0066ff}%s{FFFFFF} que vocк trabalhava na produзгo {0066ff}1{FFFFFF}."PropInfo[c][pFunc]);
                    
SendClientMessage(playerid, -1string);
                    
format(PropInfo[c][pFunc], 24"Ninguem");
                    
//SalvarPlayer();
                    
break;
                }
                else return 
SendClientMessage(playeridCOLOR_ROJO"Nгo а ninguйm ocupando a vaga nъmero 1!");
            }
            else return 
SendClientMessage(playeridCOLOR_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
View Post
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
View Post
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
View Post
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
View Post
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
View Post
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
View Post
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
View Post
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
View Post

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(contaPlayersizeof(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
View Post
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(contaPlayersizeof(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
View Post
Й 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
View Post
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()