Changenick bug.. please help
#1

Hello!

I have a question,
i have a changenick command,

When i change my nickname, i get a new file. it will not destroy the other file,

So here is an example:

I join server with name: Rofl.
I change my nick in LMAO.

When i reconnect with LMAO, and change my nickname into lol. it makes the file: lol.user. but it does not destroy LMAO.

Here is my script code. Hope yall can help me

Код:
	if (strcmp(cmd, "/changenick", true) == 0)
	{
	    tmp = strtok(cmdtext, idx);
	    if(ChangenickAllowed[playerid] != 1 && PlayerInfo[playerid][pAdmin] == 0)
     	{
	        SendClientMessage(playerid, COLOR_GREY, "u bent niet bemachtigd om deze commando uit te voeren!");
	        return 1;
	    }
		if (PlayerLoggedIn[playerid] == 0)
		{
			SendClientMessage(playerid, COLOR_RED, "Truelife-RPG: U bent niet ingelogd! gebruik {CC0000}/login{FFFFFF} om in te loggen!");
			return 1;
		}
		if(!strlen(tmp))
		{
			SendClientMessage(playerid, COLOR_GREY, "GEBRUIK: /changenick om uw naam te veranderen!");
			return 1;
		}
	 	if (strlen(tmp) > 20 || strlen(tmp) < 3)
      	{
	         SendClientMessage(playerid, COLOR_RED, "Truelife-RPG: Gebruik niet meer dan 32 tekens.");
	         return 1;
      	}
      	if(!InvalidNickCharacters(tmp))
      	{
	         SendClientMessage(playerid, COLOR_RED, "Truelife-RPG: U gebruikt illigale tekens.");
	         return 1;
      	}
		format(string, sizeof(string), "/userfiles/%s.user", tmp);
		if(fexist(string))
		{
			SendClientMessage(playerid, COLOR_RED, "Truelife-RPG: Deze naam is al geregistreerd! kies een andere naam!");
			return 1;
		}
		format(string, sizeof(string),"Truelife-RPG: %s heeft zijn/haar naam veranderd in: %s", PlayerName[playerid], tmp);
		SendClientMessageToAll(COLOR_YELLOW, string);
		ChangenickAllowed[playerid] = 0;
		format(string, sizeof(string), "/userfiles/%s.user", PlayerName[playerid]);
		fremove(string);
  		SetPlayerName(playerid, tmp);
		GetPlayerName(playerid, PlayerName[playerid], MAX_PLAYER_NAME);
        format(string, sizeof(string), "/userfiles/%s.user", PlayerName[playerid]);
		PlayerInfo[playerid][pPocket] = GetPlayerMoney(playerid);
  		strmid(PlayerName[playerid], tmp, false, strlen(tmp), MAX_PLAYER_NAME);
		new File: hFile;
		hFile = fopen(string, io_append);
		new var[323];
		format(var, 35, "%s\n", PlayerInfo[playerid][pPassword]);fwrite(hFile, var);
		format(var, 35, "%d pLevel\n", PlayerInfo[playerid][pLevel]);fwrite(hFile, var);
		format(var, 35, "%d pGps\n", PlayerInfo[playerid][pGps]);fwrite(hFile, var);
		format(var, 35, "%d pJerry\n", PlayerInfo[playerid][pJerry]);fwrite(hFile, var);
		format(var, 35, "%d pExp\n", PlayerInfo[playerid][pExp]);fwrite(hFile, var);
		format(var, 35, "%d pHouseOwner\n", PlayerInfo[playerid][pHouseOwner]);fwrite(hFile, var);
		format(var, 35, "%d pBank\n", PlayerInfo[playerid][pBank]);fwrite(hFile, var);
		format(var, 35, "%d pPocket\n", PlayerInfo[playerid][pPocket]);fwrite(hFile, var);
		format(var, 35, "%d pHouseKey\n", PlayerInfo[playerid][pHouseKey]);fwrite(hFile, var);
		format(var, 35, "%d pPerMute\n", PlayerInfo[playerid][pPerMute]);fwrite(hFile, var);
		format(var, 35, "%d pJailedSec\n", PlayerInfo[playerid][pJailedSec]);fwrite(hFile, var);
		format(var, 35, "%d pLicenseA\n", PlayerInfo[playerid][pLicenseA]);fwrite(hFile, var);
		format(var, 35, "%d pLicenseB\n", PlayerInfo[playerid][pLicenseB]);fwrite(hFile, var);
		format(var, 35, "%d pLicenseC\n", PlayerInfo[playerid][pLicenseC]);fwrite(hFile, var);
		format(var, 35, "%d pLicenseH\n", PlayerInfo[playerid][pLicenseH]);fwrite(hFile, var);
		format(var, 35, "%.4f pPosX\n", PlayerInfo[playerid][pPosX]);fwrite(hFile, var);
		format(var, 35, "%.4f pPosY\n", PlayerInfo[playerid][pPosY]);fwrite(hFile, var);
		format(var, 35, "%.4f pPosZ\n", PlayerInfo[playerid][pPosZ]);fwrite(hFile, var);
		format(var, 35, "%d pInt\n", PlayerInfo[playerid][pInt]);fwrite(hFile, var);
		format(var, 35, "%d pVir\n", PlayerInfo[playerid][pVir]);fwrite(hFile, var);
		format(var, 35, "%d pSkin\n", PlayerInfo[playerid][pSkin]);fwrite(hFile, var);
		format(var, 35, "%d pTeam\n", PlayerInfo[playerid][pTeam]);fwrite(hFile, var);
		format(var, 35, "%d pWeapon1\n", PlayerInfo[playerid][pWeapon1]);fwrite(hFile, var);
		format(var, 35, "%d pAmmo1\n", PlayerInfo[playerid][pAmmo1]);fwrite(hFile, var);
		format(var, 35, "%d pWeapon2\n", PlayerInfo[playerid][pWeapon3]);fwrite(hFile, var);
		format(var, 35, "%d pAmmo2\n", PlayerInfo[playerid][pAmmo2]);fwrite(hFile, var);
		format(var, 35, "%d pWeapon3\n", PlayerInfo[playerid][pWeapon3]);fwrite(hFile, var);
		format(var, 35, "%d pAmmo3\n", PlayerInfo[playerid][pAmmo3]);fwrite(hFile, var);
		format(var, 35, "%d pRank\n", PlayerInfo[playerid][pRank]);fwrite(hFile, var);
		format(var, 35, "%.2f pArmour\n", PlayerInfo[playerid][pArmour]);fwrite(hFile, var);
		format(var, 35, "%.2f pHealth\n", PlayerInfo[playerid][pHealth]);fwrite(hFile, var);
		format(var, 35, "%d pBusinessKey\n", PlayerInfo[playerid][pBusinessKey]);fwrite(hFile, var);
		format(var, 35, "%d pVip\n", PlayerInfo[playerid][pVip]);fwrite(hFile, var);
		format(var, 35, "%d pWarnings\n", PlayerInfo[playerid][pWarnings]);fwrite(hFile, var);
		format(var, 35, "%d pDrugs\n", PlayerInfo[playerid][pDrugs]);fwrite(hFile, var);
		format(var, 35, "%s pIP\n", PlayerInfo[playerid][pIP]);fwrite(hFile, var);
		fclose(hFile);

		new houseid = PlayerInfo[playerid][pHouseKey];
		if(PlayerInfo[playerid][pHouseKey] != INVALID_HOUSE_ID && PlayerInfo[playerid][pHouseOwner] == 1)
		{
			strmid(HouseInfo[houseid][hOwner], PlayerName[playerid], false, strlen(PlayerName[playerid]), 25);
			OnHouseUpdate();
		}

		new businessid = PlayerInfo[playerid][pBusinessKey];
		if(PlayerInfo[playerid][pBusinessKey] != INVALID_BUSINESS_ID)
		{
			strmid(BusinessInfo[businessid][bOwner], PlayerName[playerid], false, strlen(PlayerName[playerid]), 25);
			OnBusinessUpdate();
		}
		return 1;
	}
Add me on xfire: Jeroenhulshof

- Jeroen
Reply
#2

Quote:
pawn Код:
format(string, sizeof(string), "/userfiles/%s.user", PlayerName[playerid]);
fremove(string);
If I see it right, you haven't defined PlayerName[playerid] yet, so the script actually deletes "/userfiles/.user"

Quote:
pawn Код:
GetPlayerName(playerid, PlayerName[playerid], MAX_PLAYER_NAME);
format(string, sizeof(string), "/userfiles/%s.user", PlayerName[playerid]);
PlayerInfo[playerid][pPocket] = GetPlayerMoney(playerid);
  strmid(PlayerName[playerid], tmp, false, strlen(tmp), MAX_PLAYER_NAME);
new File: hFile;
hFile = fopen(string, io_append);
This is the place where you define PlayerName[playerid], this is after you deleted the old file and before you create the new file.
Reply
#3

No, it saves as username.user. I already have defined PlayerName[playerid].
I put that on: Onplayercommandtext. See?

new PlayerName[MAX_SLOTS][MAX_PLAYER_NAME];
Reply
#4

pawn Код:
format(string, sizeof(string), "/userfiles/%s.user", PlayerName[playerid]); //Deletes file with string in "PlayerName"
fremove(string);
SetPlayerName(playerid, tmp);
GetPlayerName(playerid, PlayerName[playerid], MAX_PLAYER_NAME); //Saves user's name into "PlayerName"
If you get the player's name after the old file is deleted, then what file name are you deleting?
Or did you save the name BEFORE the player types /changenick?
Reply
#5

I have no idea .

When i come on account: lol. and i change my name to rofl. it needs to delete the account lol. and make a file called rofl.

Would you like to add me on xfire?: jeroenhulshof
Reply
#6

Try
pawn Код:
if (strcmp(cmd, "/changenick", true) == 0)
    {
        GetPlayerName(playerid, PlayerName[playerid], MAX_PLAYER_NAME);
        tmp = strtok(cmdtext, idx);
        if(ChangenickAllowed[playerid] != 1 && PlayerInfo[playerid][pAdmin] == 0)
        {
            SendClientMessage(playerid, COLOR_GREY, "u bent niet bemachtigd om deze commando uit te voeren!");
            return 1;
        }
        if (PlayerLoggedIn[playerid] == 0)
        {
            SendClientMessage(playerid, COLOR_RED, "Truelife-RPG: U bent niet ingelogd! gebruik {CC0000}/login{FFFFFF} om in te loggen!");
            return 1;
        }
        if(!strlen(tmp))
        {
            SendClientMessage(playerid, COLOR_GREY, "GEBRUIK: /changenick om uw naam te veranderen!");
            return 1;
        }
        if (strlen(tmp) > 20 || strlen(tmp) < 3)
        {
             SendClientMessage(playerid, COLOR_RED, "Truelife-RPG: Gebruik niet meer dan 32 tekens.");
             return 1;
        }
        if(!InvalidNickCharacters(tmp))
        {
             SendClientMessage(playerid, COLOR_RED, "Truelife-RPG: U gebruikt illigale tekens.");
             return 1;
        }
        format(string, sizeof(string), "/userfiles/%s.user", tmp);
        if(fexist(string))
        {
            SendClientMessage(playerid, COLOR_RED, "Truelife-RPG: Deze naam is al geregistreerd! kies een andere naam!");
            return 1;
        }
        format(string, sizeof(string),"Truelife-RPG: %s heeft zijn/haar naam veranderd in: %s", PlayerName[playerid], tmp);
        SendClientMessageToAll(COLOR_YELLOW, string);
        ChangenickAllowed[playerid] = 0;
        format(string, sizeof(string), "/userfiles/%s.user", PlayerName[playerid]);
        fremove(string);
        SetPlayerName(playerid, tmp);
        GetPlayerName(playerid, PlayerName[playerid], MAX_PLAYER_NAME);
        format(string, sizeof(string), "/userfiles/%s.user", PlayerName[playerid]);
        PlayerInfo[playerid][pPocket] = GetPlayerMoney(playerid);
        strmid(PlayerName[playerid], tmp, false, strlen(tmp), MAX_PLAYER_NAME);
        new File: hFile;
        hFile = fopen(string, io_append);
        new var[323];
        format(var, 35, "%s\n", PlayerInfo[playerid][pPassword]);fwrite(hFile, var);
        format(var, 35, "%d pLevel\n", PlayerInfo[playerid][pLevel]);fwrite(hFile, var);
        format(var, 35, "%d pGps\n", PlayerInfo[playerid][pGps]);fwrite(hFile, var);
        format(var, 35, "%d pJerry\n", PlayerInfo[playerid][pJerry]);fwrite(hFile, var);
        format(var, 35, "%d pExp\n", PlayerInfo[playerid][pExp]);fwrite(hFile, var);
        format(var, 35, "%d pHouseOwner\n", PlayerInfo[playerid][pHouseOwner]);fwrite(hFile, var);
        format(var, 35, "%d pBank\n", PlayerInfo[playerid][pBank]);fwrite(hFile, var);
        format(var, 35, "%d pPocket\n", PlayerInfo[playerid][pPocket]);fwrite(hFile, var);
        format(var, 35, "%d pHouseKey\n", PlayerInfo[playerid][pHouseKey]);fwrite(hFile, var);
        format(var, 35, "%d pPerMute\n", PlayerInfo[playerid][pPerMute]);fwrite(hFile, var);
        format(var, 35, "%d pJailedSec\n", PlayerInfo[playerid][pJailedSec]);fwrite(hFile, var);
        format(var, 35, "%d pLicenseA\n", PlayerInfo[playerid][pLicenseA]);fwrite(hFile, var);
        format(var, 35, "%d pLicenseB\n", PlayerInfo[playerid][pLicenseB]);fwrite(hFile, var);
        format(var, 35, "%d pLicenseC\n", PlayerInfo[playerid][pLicenseC]);fwrite(hFile, var);
        format(var, 35, "%d pLicenseH\n", PlayerInfo[playerid][pLicenseH]);fwrite(hFile, var);
        format(var, 35, "%.4f pPosX\n", PlayerInfo[playerid][pPosX]);fwrite(hFile, var);
        format(var, 35, "%.4f pPosY\n", PlayerInfo[playerid][pPosY]);fwrite(hFile, var);
        format(var, 35, "%.4f pPosZ\n", PlayerInfo[playerid][pPosZ]);fwrite(hFile, var);
        format(var, 35, "%d pInt\n", PlayerInfo[playerid][pInt]);fwrite(hFile, var);
        format(var, 35, "%d pVir\n", PlayerInfo[playerid][pVir]);fwrite(hFile, var);
        format(var, 35, "%d pSkin\n", PlayerInfo[playerid][pSkin]);fwrite(hFile, var);
        format(var, 35, "%d pTeam\n", PlayerInfo[playerid][pTeam]);fwrite(hFile, var);
        format(var, 35, "%d pWeapon1\n", PlayerInfo[playerid][pWeapon1]);fwrite(hFile, var);
        format(var, 35, "%d pAmmo1\n", PlayerInfo[playerid][pAmmo1]);fwrite(hFile, var);
        format(var, 35, "%d pWeapon2\n", PlayerInfo[playerid][pWeapon3]);fwrite(hFile, var);
        format(var, 35, "%d pAmmo2\n", PlayerInfo[playerid][pAmmo2]);fwrite(hFile, var);
        format(var, 35, "%d pWeapon3\n", PlayerInfo[playerid][pWeapon3]);fwrite(hFile, var);
        format(var, 35, "%d pAmmo3\n", PlayerInfo[playerid][pAmmo3]);fwrite(hFile, var);
        format(var, 35, "%d pRank\n", PlayerInfo[playerid][pRank]);fwrite(hFile, var);
        format(var, 35, "%.2f pArmour\n", PlayerInfo[playerid][pArmour]);fwrite(hFile, var);
        format(var, 35, "%.2f pHealth\n", PlayerInfo[playerid][pHealth]);fwrite(hFile, var);
        format(var, 35, "%d pBusinessKey\n", PlayerInfo[playerid][pBusinessKey]);fwrite(hFile, var);
        format(var, 35, "%d pVip\n", PlayerInfo[playerid][pVip]);fwrite(hFile, var);
        format(var, 35, "%d pWarnings\n", PlayerInfo[playerid][pWarnings]);fwrite(hFile, var);
        format(var, 35, "%d pDrugs\n", PlayerInfo[playerid][pDrugs]);fwrite(hFile, var);
        format(var, 35, "%s pIP\n", PlayerInfo[playerid][pIP]);fwrite(hFile, var);
        fclose(hFile);
        new houseid = PlayerInfo[playerid][pHouseKey];
        if(PlayerInfo[playerid][pHouseKey] != INVALID_HOUSE_ID && PlayerInfo[playerid][pHouseOwner] == 1)
        {
            strmid(HouseInfo[houseid][hOwner], PlayerName[playerid], false, strlen(PlayerName[playerid]), 25);
            OnHouseUpdate();
        }

        new businessid = PlayerInfo[playerid][pBusinessKey];
        if(PlayerInfo[playerid][pBusinessKey] != INVALID_BUSINESS_ID)
        {
            strmid(BusinessInfo[businessid][bOwner], PlayerName[playerid], false, strlen(PlayerName[playerid]), 25);
            OnBusinessUpdate();
        }
        return 1;
    }
Reply
#7

hmm...

It's not working,
I made an new account, did a changenick to the name rofl.
I reconnected the server with rofl. changed my name to hello.
Now i got rofl and hello.

So, when i first connect to the server, it works, it changed the save file.
But when i reconnect with the new name, and change my name again, it makes 2 files.

- Jeroen
Reply
#8

can somebody help me?
Reply
#9

no one?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)