SA-MP Forums Archive
Changenick bug.. please help - 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: Changenick bug.. please help (/showthread.php?tid=331369)



Changenick bug.. please help - JeroenX - 04.04.2012

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


AW: Changenick bug.. please help - Drebin - 04.04.2012

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.


Re: Changenick bug.. please help - JeroenX - 04.04.2012

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];


AW: Changenick bug.. please help - Drebin - 04.04.2012

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?


Re: Changenick bug.. please help - JeroenX - 04.04.2012

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


AW: Changenick bug.. please help - Drebin - 04.04.2012

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;
    }



Re: Changenick bug.. please help - JeroenX - 04.04.2012

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


Re: Changenick bug.. please help - JeroenX - 04.04.2012

can somebody help me?


Re: Changenick bug.. please help - JeroenX - 04.04.2012

no one?