Premium Account
#1

hello guys, i want to make dialog to can players buy premium account but i faild
I take from command /setpremium and put on dialog but i take errors " warning 217: loose indentation"
this is the command:
PHP код:
CMD:setpremium(playerid,params[])
{
    if(
gPlayerLogged[playerid] == 0) return SendClientMessage(playeridCOLOR_LIGHTRED"Trebuie sa te loghezi mai intai.");
    if (
PlayerInfo[playerid][pAdmin] < 5) return SCM(playerid,COLOR_WHITE,AdminOnly);
    new 
id,sendername[25],string[128];
    if(
sscanf(params"u",id)) return SCM(playeridCOLOR_WHITE"{B8DBFF}USE: /setpremium <Name/Playerid>");
    if(
PlayerInfo[id][pPremiumAccount] == 1) return SCM(playerid,COLOR_LIGHTRED"Error:{FFFFFF} Acest player detine cont premium.");
    
PlayerInfo[id][pPremiumAccount] = 1;
    
GetPlayerName(playeridsendernamesizeof(sendername));
    
format(stringsizeof(string), "Admin %s a setat cont-ul dvs. Premium.",sendername);
    
SCM(playerid,COLOR_LIGHTRED,string);
    
GetPlayerName(id,sendername,sizeof(sendername));
    
format(stringsizeof(string), "UPDATE users SET `Premium`='1' WHERE `name`='%s'",sendername);
    
mysql_query(SQL,string);
    return 
1;

and this is dialog
PHP код:
if(response)
        {
            if(
listitem == 0)
            {
                if(
PlayerInfo[playerid][pHPoints] <1500) return SCM(playerid,-1,"{37B9C8}You don't have 1500 PremiumPoints.");//premium
                
PlayerInfo[playerid][pHPoints] -= 1500;
                
//GivePlayerCash(playerid,15000);
                //Update(playerid,pCashx);
                //Update(playerid,pHPointsx);
                
new id,sendername[25],string[128];
                if(
PlayerInfo[id][pPremiumAccount] == 1) return SCM(playerid,COLOR_LIGHTRED"Error:{FFFFFF}Ai cont preimum.");
                
PlayerInfo[id][pPremiumAccount] = 1;
                
GetPlayerName(id,sendername,sizeof(sendername));
                
format(stringsizeof(string), "UPDATE users SET `Premium`='1' WHERE `name`='%s'",sendername);
                
mysql_query(SQL,string);
                
SCM(playerid,-1,"{33CCFF}Felicitari ai cumparat cont premium.");
            } 
Reply
#2

That warning means that you need to organize your code, try organizing the dialog and it should work.
Reply
#3

I organize and thank you, not warning "loose identation"
But i have too more warning's
PHP код:
 Gamelife.pwn(40141) : warning 219local variable "sendername" shadows a variable at a preceding level
Gamelife
.pwn(40141) : warning 219local variable "string" shadows a variable at a preceding level 
and the line

PHP код:
new id,sendername[26],string[129]; 
Reply
#4

Make sure you don't have them as global variables on top of your script.
Reply
#5

well it's on command /setpremium.
Reply
#6

any help's ?
Reply
#7

Код:
CMD:setpremium(playerid,params[])
{
	if(gPlayerLogged[playerid] == 0) return SendClientMessage(playerid, COLOR_LIGHTRED, "Trebuie sa te loghezi mai intai.");
	if (PlayerInfo[playerid][pAdmin] < 5) return SCM(playerid,COLOR_WHITE,AdminOnly);
	new id,sendernamee[25],stringg[128];
	if(sscanf(params, "u",id)) return SCM(playerid, COLOR_WHITE, "{B8DBFF}USE: /setpremium <Name/Playerid>");
	if(PlayerInfo[id][pPremiumAccount] == 1) return SCM(playerid,COLOR_LIGHTRED, "Error:{FFFFFF} Acest player detine cont premium.");
	PlayerInfo[id][pPremiumAccount] = 1;
	GetPlayerName(playerid, sendernamee, sizeof(sendernamee));
	format(stringg, sizeof(stringg), "Admin %s a setat cont-ul dvs. Premium.",sendernamee);
	SCM(playerid,COLOR_LIGHTRED,stringg);
	GetPlayerName(id,sendernamee,sizeof(sendernamee));
	format(stringg, sizeof(stringg), "UPDATE users SET `Premium`='1' WHERE `name`='%s'",sendernamee);
	mysql_query(SQL,stringg);
	return 1;
}
//
if(response)
{
	if(listitem == 0)
	{
		if(PlayerInfo[playerid][pHPoints] <1500) return SCM(playerid,-1,"{37B9C8}You don't have 1500 PremiumPoints.");//premium
		PlayerInfo[playerid][pHPoints] -= 1500;
		//GivePlayerCash(playerid,15000);
		//Update(playerid,pCashx);
		//Update(playerid,pHPointsx);
		new id,sendernamee[25],string[128];
		if(PlayerInfo[id][pPremiumAccount] == 1) return SCM(playerid,COLOR_LIGHTRED, "Error:{FFFFFF}Ai cont preimum.");
		PlayerInfo[id][pPremiumAccount] = 1;
		GetPlayerName(id,sendernamee,sizeof(sendernamee));
		format(string, sizeof(string), "UPDATE users SET `Premium`='1' WHERE `name`='%s'",sendernamee);
		mysql_query(SQL,string);
		SCM(playerid,-1,"{33CCFF}Felicitari ai cumparat cont premium.");
	}
Reply
#8

The variables 'sendername' and 'string' are created inside your command and at the top of your script. You will need to remove one of the variables or rename them to get rid of the warning
Reply
#9

Look how i make:
PHP код:
if(dialogid == DIALOG_HPoints1)
    {
        if(
response)
        {
            if(
listitem == 0)
            {
                new 
id,sendername[93],string[178];
                if(
PlayerInfo[playerid][pHPoints] <80) return SCM(playerid,-1,"{37B9C8}You don't have 80 gold.");
                
PlayerInfo[playerid][pHPoints] -= 80;
                if(
PlayerInfo[id][pPremiumAccount] == 1) return SCM(playerid,COLOR_LIGHTRED"Error:{FFFFFF} Acest player detine cont premium.");
                
PlayerInfo[id][pPremiumAccount] = 1;
                
GetPlayerName(id,sendername,sizeof(sendername));
                
format(stringsizeof(string), "UPDATE users SET `Premium`='1' WHERE `name`='%s'",sendername);
                
mysql_query(SQL,string);
            } 
now errors
PHP код:
Gamelife.pwn(40139) : warning 219local variable "sendername" shadows a variable at a preceding level
Gamelife
.pwn(40139) : warning 219local variable "string" shadows a variable at a preceding level 
Reply
#10

Код:
new id,sendername[93],string[178];
The last two variables are already created somewhere else in your script. Rename them or remove them depending on what the declarations are of the other two variables with the same name in another place in your script.
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)