/changename command HELP
#1

Hello!

I need help with my /changename command. Everything is working fine, but wheh I change my name and then leave game and come back, is still the same name.

CODE:

PHP код:
CMD:changename(playeridparams[])
{
    if(
gPlayerInfo[playerid][PLAYER_LEVEL] < 4) return SendClientMessage(playeridCOLOR_RED"You are not allowed to use this command!");
    new 
idnewname[24];
    if(
sscanf(params,"is[24]",idnewname))
        return 
SendClientMessage(playeridCOLOR_RED"Usage: /changename [player id] [new name]");
    if(!
IsPlayerConnected(id))
        return 
SendClientMessage(playeridCOLOR_RED"ERROR: This player is not connected.");
    
SetPlayerName(idnewname);
    
SendClientMessage(playeridCOLOR_YELLOW"You have successfuly changed his/her name.");
    return 
1;

Thanks for your help
Reply
#2

This command does not save the name of an player...
Reply
#3

Quote:
Originally Posted by venomlivno8
Посмотреть сообщение
This command does not save the name of an player...
Can you fix that?
Reply
#4

Do you have a saving system?
Reply
#5

Quote:
Originally Posted by venomlivno8
Посмотреть сообщение
Do you have a saving system?
Do you mean login/register system? Yes I have it.
Reply
#6

Anyone?
Reply
#7

Do you use Y_ini, MySQL, Dini, or what saving system do you use?
Reply
#8

Try this code

CMD:changename(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: /changename [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,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;
}


That should work for you
Reply
#9

That will 99% not work, as he is probably not using NGRP script! So, don't take things from that script and try and get some rep.

What saving system do you use?
Reply
#10

why would this command be useful? If you want to change your name, then just rename the .ini file of your account. Then open samp and write the new name in the name entering gap. Then, join your server.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)