[Ajuda] Comando + Mysql
#1

Bom criei um comando para as pessoas pegarem a vaga 1 em uma empresa mas, a pessoa pega a vaga 1 mas o formato"Ninguem" que estб na coluna "Func" na base de dados nгo converte para o nome do jogador que pegou a vaga continua "Ninguem". Gostaria de ajuda nisso.

Agradeзo desde jб <3



-- Aqui estб o comando --


Код:
CMD:pegarvaga1(playerid,params[])
{
    new Query[130], pName[24];
    for(new c; c < MAX_PROPIEDADES; c++)
    {
	    if(IsPlayerInRangeOfPoint(playerid,2.0,PropInfo[c][pPosX],PropInfo[c][pPosY],PropInfo[c][pPosZ])) return SendClientMessage(playerid,-1,"Vocк nгo estб perto de nenhuma empresa!");
	    {
    		if(strcmp(PropInfo[c][pPropietario], NombreJugador(playerid), false)) return SendClientMessage(playerid,-1,"Vocк й o dono da empresa nгo pode pegar uma vaga.");
	    	{
		   	if(PlayerInfo[playerid][pEmp] > 0) return SendClientMessage(playerid,-1,"Vocк jб й funcionбrio de outra empresa.");
      			{
	 	           	if(strcmp(PropInfo[c][pFunc],"Ninguem", true)) return SendClientMessage(playerid,-1,"Essa vaga estб ocupada.");
	 	           	{
	    				PlayerInfo[playerid][pEmp] += 1;
	    				format(PropInfo[c][pFunc],100,"%s",NombreJugador(playerid));
	    				CargarPropiedad©;
					format(Query,sizeof(Query),"UPDATE `propiedades` SET `Func`='%s' WHERE `ID`='%d'",PropInfo[c][pFunc],PropInfo[c][pID]);
					mysql_function_query(Conecction,Query,true,"","");
					SendClientMessage(playerid, -1, "Vocк se juntou а equipa da empresa na vaga 1!");
					return 1;
					
			   		}
            	                }
                        }
		}
	}
	return 1;
}

-- Linha do Update do MySQL --

Код:
format(Query,sizeof(Query),"UPDATE `propiedades` SET `Func`='%s' WHERE `ID`='%d'",PropInfo[c][pFunc],PropInfo[c][pID]);
mysql_function_query(Conecction,Query,true,"","");
Reply
#2

Tente tirar as aspas simples do WHERE `ID` = '%d'

Assim:

PHP код:
"UPDATE `propiedades` SET `Func`='%s' WHERE `ID`=%d" 
Й um dos erros desse sistema que eu dei uma pequena olhada й jб vi, Pois eu sempre vi dizer que sу se usa ' ' em strings (%s, %e, %q) Й tbm no INSERT INTO no caso depois do VALUES ('Ola', 'Oi')
Reply
#3

Quote:
Originally Posted by AutoMatic2
Посмотреть сообщение
Tente tirar as aspas simples do WHERE `ID` = '%d'

Assim:

PHP код:
"UPDATE `propiedades` SET `Func`='%s' WHERE `ID`=%d" 
Й um dos erros desse sistema que eu dei uma pequena olhada й jб vi, Pois eu sempre vi dizer que sу se usa ' ' em strings (%s, %e, %q) Й tbm no INSERT INTO no caso depois do VALUES ('Ola', 'Oi')
Obrigado pela maravilhosa ajuda, mas o problema ainda insiste.
Reply
#4

Se fosse eu eu ficava tentando algumas maneiras.

Dou outro exemplo de usar o format para pFunc assim:

PHP код:
format(PropInfo[c][pFunc], 24Nome(playerid)); 
Modifique esse 100 para 24. Pois o MAX_PLAYER_NAME vai ate 24 carбcters!
Reply
#5

Quote:
Originally Posted by AutoMatic2
Посмотреть сообщение
Se fosse eu eu ficava tentando algumas maneiras.

Dou outro exemplo de usar o format para pFunc assim:

PHP код:
format(PropInfo[c][pFunc], 24Nome(playerid)); 
Modifique esse 100 para 24. Pois o MAX_PLAYER_NAME vai ate 24 carбcters!
Consegui colocar o colocando a funcionar resolvendo o meu problema, muito obrigado. Agora preciso de ajuda a organizar o seguinte comando, porque as mensagens estгo a sair todas juntas, uma confusгo meu deus.


Код:
CMD:pegarvaga1(playerid,params[])
{
    new Query[130];
    for(new c = 0; c < MAX_PROPIEDADES; c++)
    {
	    if(IsPlayerInRangeOfPoint(playerid,2.0,PropInfo[c][pPosX],PropInfo[c][pPosY],PropInfo[c][pPosZ]))
	    {
    		if(strcmp(PropInfo[c][pPropietario], NombreJugador(playerid), true))
	    	{
	    	    SendClientMessage(playerid, COLOR_ROJO, "Vocк nгo pode trabalhar em uma vaga sendo o proprietбrio da empresa.");
                }
		if(PlayerInfo[playerid][pEmp] > 0)
  		{
			SendClientMessage(playerid, COLOR_ROJO, "Vocк jб й um funcionбrio desta ou de outra empresa.");
		}
 		if(strcmp(PropInfo[c][pFunc],"Ninguem", false))
		{
		    SendClientMessage(playerid, COLOR_ROJO, "Esta vaga estб preenchida.");
		}
		PlayerInfo[playerid][pEmp] += 1;
		format(PropInfo[c][pFunc], 24, NombreJugador(playerid));
		CargarPropiedad©;
		format(Query,sizeof(Query),"UPDATE `propiedades` SET `Func`='%s' WHERE `ID`=%d",PropInfo[c][pFunc],PropInfo[c][pID]);
		mysql_function_query(Conecction,Query,true,"","");
		SendClientMessage(playerid, -1, "Vocк se juntou а equipa da empresa na vaga 1!");
		return 1;
	    }
	    else SendClientMessage(playerid, COLOR_ROJO, "Vocк nгo estб perto de nenhuma empresa.");
	}
	return 1;
}
Reply
#6

Tente fazer da forma abaixo usando return 1;

break; Para parar a contagem do for й nгo mandar 1000 mensagens no chat

PHP код:
CMD:pegarvaga1(playerid,params[])
{
    new 
Query[130];
    for(new 
0MAX_PROPIEDADES; ++c)
    {
        if(
IsPlayerInRangeOfPoint(playerid,2.0,PropInfo[c][pPosX],PropInfo[c][pPosY],PropInfo[c][pPosZ]))
        {
            
SendClientMessage(playeridCOLOR_ROJO"Vocк nгo estб perto de nenhuma empresa.");
            return 
1;
        }
        if(
strcmp(PropInfo[c][pPropietario], NombreJugador(playerid), true))
        {
            
SendClientMessage(playeridCOLOR_ROJO"Vocк nгo pode trabalhar em uma vaga sendo o proprietбrio da empresa.");
            return 
1;
        }
        if(
PlayerInfo[playerid][pEmp] > 0)
        {
            
SendClientMessage(playeridCOLOR_ROJO"Vocк jб й um funcionбrio desta ou de outra empresa.");
            return 
1;
        }
        if(
strcmp(PropInfo[c][pFunc],"Ninguem"false))
        {
            
SendClientMessage(playeridCOLOR_ROJO"Esta vaga estб preenchida.");
            return 
1;
        }
        
PlayerInfo[playerid][pEmp] += 1;
        
format(PropInfo[c][pFunc], 24NombreJugador(playerid));
        
CargarPropiedad(c);
        
format(Query,sizeof(Query),"UPDATE `propiedades` SET `Func`='%s' WHERE `ID`=%d",PropInfo[c][pFunc],PropInfo[c][pID]);
        
mysql_function_query(Conecction,Query,true,"","");
        
SendClientMessage(playerid, -1"Vocк se juntou а equipa da empresa na vaga 1!");
        break;
    }
    return 
1;

Reply
#7

Quote:
Originally Posted by AutoMatic2
Посмотреть сообщение
Tente fazer da forma abaixo usando return 1;

break; Para parar a contagem do for й nгo mandar 1000 mensagens no chat

PHP код:
CMD:pegarvaga1(playerid,params[])
{
    new 
Query[130];
    for(new 
0MAX_PROPIEDADES; ++c)
    {
        if(
IsPlayerInRangeOfPoint(playerid,2.0,PropInfo[c][pPosX],PropInfo[c][pPosY],PropInfo[c][pPosZ]))
        {
            
SendClientMessage(playeridCOLOR_ROJO"Vocк nгo estб perto de nenhuma empresa.");
            return 
1;
        }
        if(
strcmp(PropInfo[c][pPropietario], NombreJugador(playerid), true))
        {
            
SendClientMessage(playeridCOLOR_ROJO"Vocк nгo pode trabalhar em uma vaga sendo o proprietбrio da empresa.");
            return 
1;
        }
        if(
PlayerInfo[playerid][pEmp] > 0)
        {
            
SendClientMessage(playeridCOLOR_ROJO"Vocк jб й um funcionбrio desta ou de outra empresa.");
            return 
1;
        }
        if(
strcmp(PropInfo[c][pFunc],"Ninguem"false))
        {
            
SendClientMessage(playeridCOLOR_ROJO"Esta vaga estб preenchida.");
            return 
1;
        }
        
PlayerInfo[playerid][pEmp] += 1;
        
format(PropInfo[c][pFunc], 24NombreJugador(playerid));
        
CargarPropiedad(c);
        
format(Query,sizeof(Query),"UPDATE `propiedades` SET `Func`='%s' WHERE `ID`=%d",PropInfo[c][pFunc],PropInfo[c][pID]);
        
mysql_function_query(Conecction,Query,true,"","");
        
SendClientMessage(playerid, -1"Vocк se juntou а equipa da empresa na vaga 1!");
        break;
    }
    return 
1;

Resolvido <3 Obrigado
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)