/setname problem
#1

here's my code and I have some errors,

pawn Код:
CMD:setname(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] >= 4)
    {
            new name[MAX_PLAYERS],string1[128],query[128],q[128];
            new targetid, inputtext;
            if(sscanf(params, "us[128]", targetid, inputtext)) return SendClientMessage(playerid, C_GREY, "USAGE: /setname [playerid] [new name]");
            {
            format(q,128,"SELECT `user` FROM 'accounts' WHERE user = '%s'",inputtext);
            mysql_query(q);
            mysql_store_result();
            if(mysql_num_rows()>0)
                {
                SendClientMessage(playerid, C_RED,"That name is already taken. Please choose another name.");
                }
            GetPlayerName(playerid, name, sizeof(name));
            format(query, sizeof(query), "UPDATE 'accounts' SET user ='%s' WHERE user ='%s'",inputtext,name);
            mysql_query(query);
            format(string1, sizeof(string1), "*ADMIN: %s changed your name to %s.",Name(playerid),inputtext);
            SendClientMessage(targetid, C_CYAN, string1);
            SetPlayerName(targetid, inputtext); // i get error on this line.
            mysql_free_result();
            }
    } else return SendClientMessage(playerid, C_RED, "You are not authorized to use this command!");
    return 1;
}
Код:
D:\GTA SanAndreas\_Samp_\gamemodes\iBon_BF.pwn(4644) : error 035: argument type mismatch (argument 2)
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


1 Error.
Please fix this bug.. Thanks in advance!
Reply
#2

Do you want to say what's line where's the problem?
Reply
#3

Quote:
Originally Posted by benjaminjones
Посмотреть сообщение
Do you want to say what's line where's the problem?
SetPlayerName(targetid, inputtext); there error comes...
Reply
#4

Try this:

Код:
CMD: setname(playerid, params[])
{
	new string[128], giveplayerid, name[MAX_PLAYER_NAME];
	new playername[MAX_PLAYER_NAME];
	if(sscanf(params, "us[24]", giveplayerid, name)) return SendClientMessageEx(playerid, COLOR_WHITE, "USAGE: /setname [playerid] [newname]");

	if(IsPlayerConnected(giveplayerid))
	{
		if (PlayerInfo[playerid][pAdmin] >= 4)
		{
			if(!doesAccountExist(name))
			{
				new
					newname[MAX_PLAYER_NAME + 10];

				GetPlayerName(giveplayerid, playername, sizeof(playername));
				format(newname, sizeof(newname), "users/%s.ini", name);

				if(PlayerInfo[giveplayerid][pPhousekey] != INVALID_HOUSE_ID && strcmp(playername, HouseInfo[PlayerInfo[giveplayerid][pPhousekey]][hOwner], true) == 0)
				{
					strmid(HouseInfo[PlayerInfo[giveplayerid][pPhousekey]][hOwner], name, 0, strlen(name), 255);
					format(string, sizeof(string), "This house is owned by\n %s\nLevel: %d\nID: %d",HouseInfo[PlayerInfo[giveplayerid][pPhousekey]][hOwner],HouseInfo[PlayerInfo[giveplayerid][pPhousekey]][hLevel],PlayerInfo[giveplayerid][pPhousekey]);
					UpdateDynamic3DTextLabelText(HouseInfo[PlayerInfo[giveplayerid][pPhousekey]][hTextID], COLOR_GREEN, string);
				}

				if(PlayerInfo[giveplayerid][pPhousekey2] != INVALID_HOUSE_ID && strcmp(playername, HouseInfo[PlayerInfo[giveplayerid][pPhousekey2]][hOwner], true) == 0)
				{
					strmid(HouseInfo[PlayerInfo[giveplayerid][pPhousekey2]][hOwner], name, 0, strlen(name), 255);
					format(string, sizeof(string), "This house is owned by\n %s\nLevel: %d\nID: %d",HouseInfo[PlayerInfo[giveplayerid][pPhousekey2]][hOwner],HouseInfo[PlayerInfo[giveplayerid][pPhousekey2]][hLevel],PlayerInfo[giveplayerid][pPhousekey2]);
					UpdateDynamic3DTextLabelText(HouseInfo[PlayerInfo[giveplayerid][pPhousekey2]][hTextID], COLOR_GREEN, string);
				}

				if(PlayerInfo[giveplayerid][pDonateRank] >= 1)
				{
					new string2[128];
					format(string2, sizeof(string2), "[VIP NAMECHANGES] %s has changed their name to %s.", GetPlayerNameEx(giveplayerid), name);
					Log("logs/vipnamechanges.log", string2);
				}

				format(string, sizeof(string), " Your name has been changed from %s to %s.", GetPlayerNameEx(giveplayerid), name);
				SendClientMessageEx(giveplayerid,COLOR_YELLOW,string);
				format(string, sizeof(string), " You have changed %s's name to %s.", GetPlayerNameEx(giveplayerid), name);
				SendClientMessageEx(playerid,COLOR_YELLOW,string);
				format(string, sizeof(string), "%s changed \"%s\"s name to \"%s\"",GetPlayerNameEx(playerid),GetPlayerNameEx(giveplayerid),name);
				Log("logs/stats.log", string);
				SetPlayerName(giveplayerid, name);
				OnPlayerStatsUpdate(giveplayerid);

				format(newname, sizeof(newname), "users/%s.ini", playername);
				fremove(newname);

				if(doesAccountExist(playername))  // If it doesn't get removed, blank the file with write io and check its length when a player attempts to authenticate (it'll be 0)
				{
					new File: BlankTheFile = fopen(newname, io_write);
					SendClientMessageEx(playerid, COLOR_GRAD2, "The old account couldn't be removed completely (it's been blanked for future use).");
					fclose(BlankTheFile);
				}
			}
			else
			{
				SendClientMessageEx(playerid, COLOR_WHITE, "This name is already registered.");
			}
		}
		else
		{
			SendClientMessageEx(playerid, COLOR_GRAD2, "You aren't authorised to use this command.");
		}
	}
	else
	{
		SendClientMessageEx(playerid, COLOR_GRAD2, "No Such Player");
	}
	return 1;
}
Reply
#5

Quote:
Originally Posted by SupermanV
Посмотреть сообщение
Try this:

Код:
CMD: setname(playerid, params[])
{
	new string[128], giveplayerid, name[MAX_PLAYER_NAME];
	new playername[MAX_PLAYER_NAME];
	if(sscanf(params, "us[24]", giveplayerid, name)) return SendClientMessageEx(playerid, COLOR_WHITE, "USAGE: /setname [playerid] [newname]");

	if(IsPlayerConnected(giveplayerid))
	{
		if (PlayerInfo[playerid][pAdmin] >= 4)
		{
			if(!doesAccountExist(name))
			{
				new
					newname[MAX_PLAYER_NAME + 10];

				GetPlayerName(giveplayerid, playername, sizeof(playername));
				format(newname, sizeof(newname), "users/%s.ini", name);

				if(PlayerInfo[giveplayerid][pPhousekey] != INVALID_HOUSE_ID && strcmp(playername, HouseInfo[PlayerInfo[giveplayerid][pPhousekey]][hOwner], true) == 0)
				{
					strmid(HouseInfo[PlayerInfo[giveplayerid][pPhousekey]][hOwner], name, 0, strlen(name), 255);
					format(string, sizeof(string), "This house is owned by\n %s\nLevel: %d\nID: %d",HouseInfo[PlayerInfo[giveplayerid][pPhousekey]][hOwner],HouseInfo[PlayerInfo[giveplayerid][pPhousekey]][hLevel],PlayerInfo[giveplayerid][pPhousekey]);
					UpdateDynamic3DTextLabelText(HouseInfo[PlayerInfo[giveplayerid][pPhousekey]][hTextID], COLOR_GREEN, string);
				}

				if(PlayerInfo[giveplayerid][pPhousekey2] != INVALID_HOUSE_ID && strcmp(playername, HouseInfo[PlayerInfo[giveplayerid][pPhousekey2]][hOwner], true) == 0)
				{
					strmid(HouseInfo[PlayerInfo[giveplayerid][pPhousekey2]][hOwner], name, 0, strlen(name), 255);
					format(string, sizeof(string), "This house is owned by\n %s\nLevel: %d\nID: %d",HouseInfo[PlayerInfo[giveplayerid][pPhousekey2]][hOwner],HouseInfo[PlayerInfo[giveplayerid][pPhousekey2]][hLevel],PlayerInfo[giveplayerid][pPhousekey2]);
					UpdateDynamic3DTextLabelText(HouseInfo[PlayerInfo[giveplayerid][pPhousekey2]][hTextID], COLOR_GREEN, string);
				}

				if(PlayerInfo[giveplayerid][pDonateRank] >= 1)
				{
					new string2[128];
					format(string2, sizeof(string2), "[VIP NAMECHANGES] %s has changed their name to %s.", GetPlayerNameEx(giveplayerid), name);
					Log("logs/vipnamechanges.log", string2);
				}

				format(string, sizeof(string), " Your name has been changed from %s to %s.", GetPlayerNameEx(giveplayerid), name);
				SendClientMessageEx(giveplayerid,COLOR_YELLOW,string);
				format(string, sizeof(string), " You have changed %s's name to %s.", GetPlayerNameEx(giveplayerid), name);
				SendClientMessageEx(playerid,COLOR_YELLOW,string);
				format(string, sizeof(string), "%s changed \"%s\"s name to \"%s\"",GetPlayerNameEx(playerid),GetPlayerNameEx(giveplayerid),name);
				Log("logs/stats.log", string);
				SetPlayerName(giveplayerid, name);
				OnPlayerStatsUpdate(giveplayerid);

				format(newname, sizeof(newname), "users/%s.ini", playername);
				fremove(newname);

				if(doesAccountExist(playername))  // If it doesn't get removed, blank the file with write io and check its length when a player attempts to authenticate (it'll be 0)
				{
					new File: BlankTheFile = fopen(newname, io_write);
					SendClientMessageEx(playerid, COLOR_GRAD2, "The old account couldn't be removed completely (it's been blanked for future use).");
					fclose(BlankTheFile);
				}
			}
			else
			{
				SendClientMessageEx(playerid, COLOR_WHITE, "This name is already registered.");
			}
		}
		else
		{
			SendClientMessageEx(playerid, COLOR_GRAD2, "You aren't authorised to use this command.");
		}
	}
	else
	{
		SendClientMessageEx(playerid, COLOR_GRAD2, "No Such Player");
	}
	return 1;
}
haha lol, you know what you are posting, xd, I need to get my error's fixed, i don't want use what u've suggested me since, I use Mysql db...
Reply
#6

first inputtext needs new inputtext[33];
second
name[MAX_PLAYER_NAME]
Reply
#7

thank you tanush, it got worked.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)