Jump to content
  • 0

Problema SSCANF


roscatu

Question

Salut tuturor, am o problema cu sscanf, am urmatorul cod

forward Warn(playerid);
public Warn(playerid)
{
        new rows,fields;
        cache_get_data(rows, fields, conn_handler);
        cache_get_row(0, 23, player_warns, conn_handler);
        cache_get_row(0, 12, adminlevel, conn_handler);
       
        PlayerInfo[playerid][pWarns] = strval(player_warns);
        PlayerInfo[playerid][pAdminLevel] = strval(adminlevel);
       
        printf("admin level: %i", PlayerInfo[playerid][pAdminLevel]);
}

COMMAND:warn(playerid, params[])
{
        new targetid,motiv[129],warn_query_select[128];
       
        mysql_format(conn_handler ,warn_query_select,"SELECT * FROM users WHERE username = '%s'", GetName(playerid));
        mysql_function_query(conn_handler , warn_query_select, true, "Warn", "", "");
       
        if(PlayerInfo[playerid][pLogged] == 1)
        {
                printf("admin level in comanda: %i", PlayerInfo[playerid][pAdminLevel]);
               
                if(PlayerInfo[playerid][pAdminLevel] >= 2)
                {
                        if(sscanf(params, "us[128]", targetid, motiv))
                        {
                                SCM(playerid,0xFF0000C8,"Utilizare: {FFFFFF} [playerid/name] [motiv]");
                        }
                        else
                        {      
                                if(!IsPlayerConnected(targetid))
                                {
                                        SCM(playerid,0xFF0000C8,"[INDUNGI] {FFFFFF} Acest player nu este online!");
                                }
                                else
                                {
                                        mysql_format(conn_handler, warn_query,"UPDATE `users` SET `pWarns` = '%i' WHERE `username` ='%s' ",PlayerInfo[playerid][pWarns]+1,GetName(playerid));
                                        mysql_function_query(conn_handler , warn_query, true, "Update_warn", "", "");
                                        format(warn_receive,sizeof(warn_receive),"Ai primit warn pentru %s !", motiv[128]);
                                        SCM(targetid,0xFFFFFFC8,warn_receive);
                                }
                        }
                }
                else
                {
                        SCM(playerid,0xFF0000C8,"[INDUNGI] {FFFFFF} Nu ai acces la aceasta comanda!");
                }
        }
        else
        {
                SCM(playerid,0xFF0000C8,"[INDUNGI] {FFFFFF} Trebuie sa fi logat pentru a folosii comenzile!");
        }
       
        return 1;
}
Problema este ca aceasta constanta PlayerInfo[playerid][pAdminLevel] ramane goala cand o folosesc inafara functie,stie cineva de ce? Si o alta incercare de-a mea este de a pune tot codul aprox in functia aceea si arata cam asa
forward Warn(playerid,params[]);
public Warn(playerid,params[])
{
	new rows,fields,targetid,motiv[129],warn_query_select[128];
	cache_get_data(rows, fields, conn_handler);
	cache_get_row(0, 23, player_warns, conn_handler);
	cache_get_row(0, 12, adminlevel, conn_handler);

	PlayerInfo[playerid][pWarns] = strval(player_warns);
	PlayerInfo[playerid][pAdminLevel] = strval(adminlevel);

	printf("admin level: %i", PlayerInfo[playerid][pAdminLevel]);

	if(PlayerInfo[playerid][pLogged] == 1)
	{
		printf("admin level in comanda: %i", PlayerInfo[playerid][pAdminLevel]);

		if(PlayerInfo[playerid][pAdminLevel] >= 2)
		{
			if(sscanf(params, "us[128]", targetid, motiv))
			{
				SCM(playerid,0xFF0000C8,"Utilizare: {FFFFFF} [playerid/name] [motiv]");
			}
			else
			{	
				if(!IsPlayerConnected(targetid))
				{
					SCM(playerid,0xFF0000C8,"[INDUNGI] {FFFFFF} Acest player nu este online!");
				}
				else
				{
					mysql_format(conn_handler, warn_query,"UPDATE `users` SET `pWarns` = '%i' WHERE `username` ='%s' ",PlayerInfo[playerid][pWarns]+1,GetName(playerid));
					mysql_function_query(conn_handler , warn_query, true, "Update_warn", "", "");
					format(warn_receive,sizeof(warn_receive),"Ai primit warn pentru %s !", motiv[128]);
					SCM(targetid,0xFFFFFFC8,warn_receive);
				}
			}
		}
		else
		{
			SCM(playerid,0xFF0000C8,"[INDUNGI] {FFFFFF} Nu ai acces la aceasta comanda!");
		}
	}
	else
	{
		SCM(playerid,0xFF0000C8,"[INDUNGI] {FFFFFF} Trebuie sa fi logat pentru a folosii comenzile!");
	}
}

COMMAND:warn(playerid, params[])
{	
	mysql_format(conn_handler ,warn_query_select,"SELECT * FROM users WHERE username = '%s'", GetName(playerid));
	mysql_function_query(conn_handler , warn_query_select, true, "Warn", "", "");

	return 1;
}

Aici problema este ca nu imi trece de verificare sintaxei de la sscanf.

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

Problema e ca e scriptat ca in punga ...

Uite aici mura in gura !

[pawn]

COMMAND:warn(playerid, params[])

{

    new targetid,motiv[129],warn_query_select[128];

    if(PlayerInfo[playerid][pLogged] != 1)

return SCM(playerid,0xFF0000C8,"[iNDUNGI] {FFFFFF} Trebuie sa fi logat pentru a folosii comenzile!");

    if(PlayerInfo[playerid][pAdminLevel] < 2)

return SCM(playerid,0xFF0000C8,"[iNDUNGI] {FFFFFF} Nu ai acces la aceasta comanda!");

    if(sscanf(params, "us[128]", targetid, motiv))

            return SCM(playerid,0xFF0000C8,"Utilizare: {FFFFFF} [playerid/name] [motiv]");

    if(!IsPlayerConnected(targetid))

        return SCM(playerid,0xFF0000C8,"[iNDUNGI] {FFFFFF} Acest player nu este online!");

if( PlayerInfo[targetid][pWarns] == 3 )

        return SCM( targetid , 0xFFFFFFC8 , "Ai primit kick motiv < 3/3 warns >" ) , Kick( targetid );

       

    PlayerInfo[targetid][pWarns] += 1;

   

mysql_format(conn_handler, warn_query,"UPDATE `users` SET `pWarns` = '%i' WHERE `username` ='%s'" , PlayerInfo[targetid][pWarns] , GetName( targetid ) );

    mysql_function_query( conn_handler , warn_query , false , "" , "" );

    format(warn_receive,sizeof(warn_receive),"Ai primit warn pentru %s !", motiv);

    SCM(targetid,0xFFFFFFC8,warn_receive);

    printf( "%s a folosit comanda warn < Level: %d >" , GetName( playerid ) , PlayerInfo[playerid][pAdminLevel] );

    return 1;

}

[/pawn]

I'm back bitches.

Link to comment
Share on other sites

Problema e ca e scriptat ca in punga ...

Uite aici mura in gura !

[pawn]

COMMAND:warn(playerid, params[])

{

    new targetid,motiv[129],warn_query_select[128];

    if(PlayerInfo[playerid][pLogged] != 1)

return SCM(playerid,0xFF0000C8,"[iNDUNGI] {FFFFFF} Trebuie sa fi logat pentru a folosii comenzile!");

    if(PlayerInfo[playerid][pAdminLevel] < 2)

return SCM(playerid,0xFF0000C8,"[iNDUNGI] {FFFFFF} Nu ai acces la aceasta comanda!");

    if(sscanf(params, "us[128]", targetid, motiv))

            return SCM(playerid,0xFF0000C8,"Utilizare: {FFFFFF} [playerid/name] [motiv]");

    if(!IsPlayerConnected(targetid))

        return SCM(playerid,0xFF0000C8,"[iNDUNGI] {FFFFFF} Acest player nu este online!");

if( PlayerInfo[targetid][pWarns] == 3 )

        return SCM( targetid , 0xFFFFFFC8 , "Ai primit kick motiv < 3/3 warns >" ) , Kick( targetid );

       

    PlayerInfo[targetid][pWarns] += 1;

   

mysql_format(conn_handler, warn_query,"UPDATE `users` SET `pWarns` = '%i' WHERE `username` ='%s'" , PlayerInfo[targetid][pWarns] , GetName( targetid ) );

    mysql_function_query( conn_handler , warn_query , false , "" , "" );

    format(warn_receive,sizeof(warn_receive),"Ai primit warn pentru %s !", motiv);

    SCM(targetid,0xFFFFFFC8,warn_receive);

    printf( "%s a folosit comanda warn < Level: %d >" , GetName( playerid ) , PlayerInfo[playerid][pAdminLevel] );

    return 1;

}

[/pawn]

Daca pun in command codul imi merge si mie perfect, dar asa nu am cum verifica admin level, pentru ca variabila din warn_query_select este executata ultima , si cand verific daca e admin imi da 0

Link to comment
Share on other sites

Stai ma ca nu te inteleg =))

Cum ti-am dat eu merge perfect ... !

La mine asa e si verifica daca are admin sau nu in aceasta functie

    if(PlayerInfo[playerid][pAdminLevel] < 2)
			return SCM(playerid,0xFF0000C8,"[INDUNGI] {FFFFFF} Nu ai acces la aceasta comanda!");

I'm back bitches.

Link to comment
Share on other sites

Stai ma ca nu te inteleg =))

Cum ti-am dat eu merge perfect ... !

La mine asa e si verifica daca are admin sau nu in aceasta functie

    if(PlayerInfo[playerid][pAdminLevel] < 2)
			return SCM(playerid,0xFF0000C8,"[INDUNGI] {FFFFFF} Nu ai acces la aceasta comanda!");

Si eu daca am variabila cu admin level intr-o functie thread de la mysql, cum folosesc valoarea data de functia thread ??

Link to comment
Share on other sites

Gandeste ca in acel thread cu Warn doar ii reloadeaza AdminLevel playerului !

Iti explic in cod ca sa intelegi.

Si vine asa :

forward Warn(playerid);
public Warn(playerid)
{
        new rows,fields;
        cache_get_data(rows, fields, conn_handler);
        cache_get_row(0, 23, player_warns, conn_handler); // Incarcare Warns
        cache_get_row(0, 12, adminlevel, conn_handler); // Incarca adminLevel
       
        PlayerInfo[playerid][pWarns] = strval(player_warns); // Seteaza warnurile incarcate 
        PlayerInfo[playerid][pAdminLevel] = strval(adminlevel); // Seteaza Levelul adminului
       
        printf("admin level: %i", PlayerInfo[playerid][pAdminLevel]); // Face un print in consola cu levelul adminului !
}

I'm back bitches.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.