SA-MP Forums Archive
/changename +REP - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: /changename +REP (/showthread.php?tid=504256)



/changename +REP - WhiteAngels - 03.04.2014

I'm Using SATDM_v9 Gamemode...
SATDM_v9 is using Dini Include

how to create Commands changename with Dini



I'll give you some +REP if you can help me !!
*Note:Sorry For My Little English*


Re: /changename +REP - forgottenkings - 03.04.2014

This May Work :P

For Players...
pawn Код:
CMD:changename(playerid,params[])
{
    if(isnull(params)) return SendClientMessage(playerid, red, "USAGE: /changename [new name]");
    if(strlen(length) < 3 || strlen(length) > MAX_PLAYER_NAME) return SendClientMessage(playerid,red,"ERROR: Incorrect Name Length");
    new string[128];
    SetPlayerHealth(playerid, 100);
    SetPlayerName(playerid, params);
    ForceClassSelection(playerid);
    OnPlayerConnect(playerid);
    format(string, sizeof(string),"ACCOUNT: You have successfully changed your name to \"%s\"",params);
    SendClientMessage(playerid,yellow,string);
    return 1;
}

For Admins
pawn Код:
CMD:setname(playerid,params[]) {
    if(PlayerInfo[playerid][Level] >= 2) {
        new tmp[128], tmp2[128], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
        if(isnull(tmp) || isnull(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setname [playerid] [new name]");
        new player1 = strval(tmp), length = strlen(tmp2), string[128];
        if(length < 3 || length > MAX_PLAYER_NAME) return SendClientMessage(playerid,red,"ERROR: Incorrect Name Length");
        if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
        if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
            CMDMessageToAdmins(playerid,"SETNAME");
            format(string, sizeof(string), "You have set \"%s's\" name to \"%s\" ", pName(player1), tmp2); SendClientMessage(playerid,blue,string);
            if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your name to \"%s\" ", pName(playerid), tmp2); SendClientMessage(player1,blue,string); }
            SetPlayerHealth(player1, 100);
            SetPlayerName(player1, tmp2);
            return OnPlayerConnect(player1);
        } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
    } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
}



Re: /changename +REP - RenovanZ - 03.04.2014

pawn Код:
CMD:changename(playerid, params[])
{
    new id, newname[MAX_PLAYER_NAME];
    if(sscanf(params, "us[24]", id, newname)) return SendClientMessage(playerid, -1, "USAGE: /changename [playerid] [new name]");

    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "You are not admin!"); //Change it to your admin enum or whatever
    if(IsPlayerConnected(id))
    {
        new pname[MAX_PLAYER_NAME];
        GetPlayerName(id, pname, MAX_PLAYER_NAME);
        if(strcmp(pname, newname))
        {
            SetPlayerName(id, newname);

            new string[64];
            format(string, sizeof(string), "users/%s.ini", pname); // Your user data folder
            fremove(string);
            //Then re-save the player
        }
        else return SendClientMessage(playerid, -1, "Oldname & Newname cannot same!");
    }
    else return SendClientMessage(playerid, -1, "Player not connected!");
        return 1;
}



Re: /changename +REP - WhiteAngels - 03.04.2014

Quote:
Originally Posted by Kiyozi_Mu
Посмотреть сообщение
pawn Код:
CMD:changename(playerid, params[])
{
    new id, newname[MAX_PLAYER_NAME];
    if(sscanf(params, "us[24]", id, newname)) return SendClientMessage(playerid, -1, "USAGE: /changename [playerid] [new name]");

    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "You are not admin!"); //Change it to your admin enum or whatever
    if(IsPlayerConnected(id))
    {
        new pname[MAX_PLAYER_NAME];
        GetPlayerName(id, pname, MAX_PLAYER_NAME);
        if(strcmp(pname, newname))
        {
            SetPlayerName(id, newname);

            new string[64];
            format(string, sizeof(string), "users/%s.ini", pname); // Your user data folder
            fremove(string);
            //Then re-save the player
        }
        else return SendClientMessage(playerid, -1, "Oldname & Newname cannot same!");
    }
    else return SendClientMessage(playerid, -1, "Player not connected!");
        return 1;
}
Why the changename isn't saving ??when i logout , and login back with the new name why i must register ?? I'm Checking in the Scriptfiles/User/%s.sav the name isn't change to the new name.


Re: /changename +REP - forgottenkings - 03.04.2014

is it just me or is my posts invisible


Re: /changename +REP - WhiteAngels - 03.04.2014

Quote:
Originally Posted by forgottenkings
Посмотреть сообщение
This May Work :P

For Players...
pawn Код:
CMD:changename(playerid,params[])
{
    if(isnull(params)) return SendClientMessage(playerid, red, "USAGE: /changename [new name]");
    if(strlen(length) < 3 || strlen(length) > MAX_PLAYER_NAME) return SendClientMessage(playerid,red,"ERROR: Incorrect Name Length");
    new string[128];
    SetPlayerHealth(playerid, 100);
    SetPlayerName(playerid, params);
    ForceClassSelection(playerid);
    OnPlayerConnect(playerid);
    format(string, sizeof(string),"ACCOUNT: You have successfully changed your name to \"%s\"",params);
    SendClientMessage(playerid,yellow,string);
    return 1;
}

For Admins
pawn Код:
CMD:setname(playerid,params[]) {
    if(PlayerInfo[playerid][Level] >= 2) {
        new tmp[128], tmp2[128], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
        if(isnull(tmp) || isnull(tmp2)) return SendClientMessage(playerid, red, "USAGE: /setname [playerid] [new name]");
        new player1 = strval(tmp), length = strlen(tmp2), string[128];
        if(length < 3 || length > MAX_PLAYER_NAME) return SendClientMessage(playerid,red,"ERROR: Incorrect Name Length");
        if(PlayerInfo[player1][Level] == ServerInfo[MaxAdminLevel] && PlayerInfo[playerid][Level] != ServerInfo[MaxAdminLevel]) return SendClientMessage(playerid,red,"ERROR: You cannot use this command on this admin");
        if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
            CMDMessageToAdmins(playerid,"SETNAME");
            format(string, sizeof(string), "You have set \"%s's\" name to \"%s\" ", pName(player1), tmp2); SendClientMessage(playerid,blue,string);
            if(player1 != playerid) { format(string,sizeof(string),"Administrator \"%s\" has set your name to \"%s\" ", pName(playerid), tmp2); SendClientMessage(player1,blue,string); }
            SetPlayerHealth(player1, 100);
            SetPlayerName(player1, tmp2);
            return OnPlayerConnect(player1);
        } else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
    } else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
}
it isn't saved when login back.
i want the /changename is saved when login back

if Somebody can help me ??


Re: /changename +REP - forgottenkings - 03.04.2014

(NOTE: you english sucks :P)


and after you get the new name you are redirected to OnPlayerConnect where you can register and login and then your account will get saved.. :P


Re: /changename +REP - WhiteAngels - 03.04.2014

Quote:
Originally Posted by forgottenkings
Посмотреть сообщение
(NOTE: you english sucks :P)


and after you get the new name you are redirected to OnPlayerConnect where you can register and login and then your account will get saved.. :P
hahaha...sorry for my little english


Re: /changename +REP - LocMax - 03.04.2014

What do you use? Y_INI, SQLite..?


Re: /changename +REP - forgottenkings - 03.04.2014

well SATDM uses dudb,dini :P