Filterscript request
#1

Hello dear scripters today im requesting a little filterscript.
So basicly I want a filterscript that changes the player name by using the command /setname
for admins rank 6.
Maybe this little script might give a hand:
Код:
CMD:setname(playerid, params[])
{
        if(PlayerInfo[playerid][Level] >= 6)	{
        new string[128], tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
		if(isnull(tmp) || isnull(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setname [playerid] [new name]");
		if (udb_Exists(tmp2)) return SendClientMessage(playerid,red,"This User Name Is Taken!");
		new player1 = strval(tmp);
		if(PlayerInfo[player1][LoggedIn] == 0) return SendClientMessage(playerid,red,"Player Must Have Account!");
		new OldName[24],str[128];
		GetPlayerName(player1,OldName,sizeof(OldName));
		format(str,sizeof(str),"ladmin/users/%s.sav",OldName);
		udb_RenameUser(OldName,tmp2);
		format(str,sizeof(str),"ladmin/users/%s.sav",params);
		SetPlayerName(player1,tmp2);
		PlayerPlaySound(player1,1057,0.0,0.0,0.0);
        format(string, sizeof(string),"Admin ''%s'' Has Changed Your Name To '%s'",PlayerName2(playerid), tmp2);
		return SendClientMessage(player1,yellow,string);
	}   else return SendClientMessage(playerid,red, "ERROR: Only Level 6 can Use This Command");
}
Alot of rep is included here so please help me out.
Reply
#2

try this i copied this command from my script

Quote:

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] >= 6)
{
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,stri ng);
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
#3

There really is now way of making a filterscript for changing a name because you need to understand, scripts are different.
Код:
CMD:setname(playerid, params[])
{
	new string[128], giveplayerid, name[MAX_PLAYER_NAME];
	new playername[MAX_PLAYER_NAME];

	if IsPlayerAdmin(playerid))
	{
		SetPlayerName(giveplayerid, name);
	}
	return 1;
}
Something I made quickly. But I also did this
Код:
format(newname, sizeof(newname), "users/%s.ini", playername);
				fremove(newname);
It all depends on your script, I also attempted to search for a Filterscript that someone made, none.
Reply
#4

pawn Код:
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] >= 6)
        {
            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

Max5 your script looks pretty good but im getting 1 error
setname.pwn(77) : warning 203: symbol is never used: "setname"
Reply
#6

Quote:
Originally Posted by Tomix
Посмотреть сообщение
Max5 your script looks pretty good but im getting 1 error
setname.pwn(77) : warning 203: symbol is never used: "setname"
Try put the codes in your gamemode not in a FS.
Reply
#7

I hope you know that this is an NGRP edit that Max posted.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)