Problem With my registration system !
#1

Hello.

I have some errors making the /register command. I had some errors. Here!

Код:
CMD:register(playerid,params[])
{
    if (PlayerInfo[playerid][LoggedIn] == 1) return SendClientMessage(playerid,COLOR_RED,"ACCOUNT: You are already registered and logged in.");
    if (udb_Exists(PlayerName2(playerid))) return SendClientMessage(playerid,COLOR_RED,"ACCOUNT: This account already exists, please use '/login [password]'.");
    if (strlen(params) == 0) return SendClientMessage(playerid,COLOR_RED,"ACCOUNT: Correct usage: '/register [password]'");
    if (strlen(params) < 4 || strlen(params) > 20) return SendClientMessage(playerid,COLOR_RED,"ACCOUNT: Password length must be greater than three characters");
    if (udb_Create(PlayerName2(playerid),params))
	{
    	new file[256],rname[MAX_PLAYER_NAME], tmp3[100];
    	new strdate[20], year,month,day;
		getdate(year, month, day);
		GetPlayerName(playerid,rname,sizeof(rname));
		format(file,sizeof(file),"/ladmin/users/%s.sav",udb_encode(rname));
     	GetPlayerIp(playerid,tmp3,100);
		dini_Set(file,"ip",tmp3);
//    	dini_Set(file,"password",params);
	    dUserSetINT(PlayerName2(playerid)).("registered",1);
   		format(strdate, sizeof(strdate), "%d/%d/%d",day,month,year);
		dini_Set(file,"RegisteredDate",strdate);
		dUserSetINT(PlayerName2(playerid)).("loggedin",1);
		dUserSetINT(PlayerName2(playerid)).("banned",0);
		dUserSetINT(PlayerName2(playerid)).("level",0);
	    dUserSetINT(PlayerName2(playerid)).("LastOn",0);
    	dUserSetINT(PlayerName2(playerid)).("money",0);
    	dUserSetINT(PlayerName2(playerid)).("kills",0);
	   	dUserSetINT(PlayerName2(playerid)).("deaths",0);
		dUserSetINT(PlayerName2(playerid)).("Bank",PlayerInfo[playerid][bank]);
		dUserSetINT(PlayerName2(playerid)).("weed",PlayerInfo[playerid][weed]);
		dUserSetINT(PlayerName2(playerid)).("Gang",PlayerInfo[playerid][gang]);
		dUserSetINT(PlayerName2(playerid)).("Condoms",PlayerInfo[playerid][condoms]);
		dUserSetINT(PlayerName2(playerid)).("inalcatraz",PlayerInfo[playerid][inalcatraz]);
	    PlayerInfo[playerid][LoggedIn] = 1;
	    PlayerInfo[playerid][Registered] = 1;
	    SavePlayer(playerid);
		dUserSetINT(PlayerName2(playerid)).("bowner",0);
		dUserSetINT(PlayerName2(playerid)).("bowned",0);
	   	dUserSetINT(PlayerName2(playerid)).("vowned",0);
	   	dUserSetINT(PlayerName2(playerid)).("vowner",0);
	   	dUserSetINT(PlayerName2(playerid)).("vowned2",0);
	   	dUserSetINT(PlayerName2(playerid)).("vowner2",0);
	   	dUserSetINT(PlayerName2(playerid)).("vowned3",0);
	   	dUserSetINT(PlayerName2(playerid)).("vowner3",0);
	   	dUserSetINT(PlayerName2(playerid)).("vowned4",0);
	   	dUserSetINT(PlayerName2(playerid)).("vowner4",0);
	   	dUserSetINT(PlayerName2(playerid)).("vowned5",0);
	   	dUserSetINT(PlayerName2(playerid)).("vowner5",0);
	   	dUserSetINT(PlayerName2(playerid)).("Houseid", -255);
		dUserSetINT(PlayerName2(playerid)).("Rentid", -255);
		dUserSetINT(PlayerName2(playerid)).("SpawnX", 0);
		dUserSetINT(PlayerName2(playerid)).("SpawnY", 0);
		dUserSetINT(PlayerName2(playerid)).("SpawnZ", 0);
		dUserSetINT(PlayerName2(playerid)).("SpawnInt", 0);
		LoginPlayer(playerid);
		LoadPlayer(playerid);
	    SendClientMessage(playerid, green, "ACCOUNT: You are now registered, and have been automaticaly logged in");
		PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
		return 1;
	}
    return 1;
}
The error:

Код:
C:\Users\ўггелпт\Desktop\samp037_svr_R2-1-1_win32\samp037_svr_R2-1-1_win32\filterscripts\RegistrationSystem.pwn(341) : error 012: invalid function call, not a valid address
C:\Users\ўггелпт\Desktop\samp037_svr_R2-1-1_win32\samp037_svr_R2-1-1_win32\filterscripts\RegistrationSystem.pwn(341) : warning 215: expression has no effect
C:\Users\ўггелпт\Desktop\samp037_svr_R2-1-1_win32\samp037_svr_R2-1-1_win32\filterscripts\RegistrationSystem.pwn(341) : error 001: expected token: ";", but found ")"
C:\Users\ўггелпт\Desktop\samp037_svr_R2-1-1_win32\samp037_svr_R2-1-1_win32\filterscripts\RegistrationSystem.pwn(341) : error 029: invalid expression, assumed zero
C:\Users\ўггелпт\Desktop\samp037_svr_R2-1-1_win32\samp037_svr_R2-1-1_win32\filterscripts\RegistrationSystem.pwn(341) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


4 Errors.
The 341 Line:


Код:
if (udb_Exists(PlayerName2(playerid))) return SendClientMessage(playerid,COLOR_RED,"ACCOUNT: This account already exists, please use '/login [password]'.");
Can you help me fixing these errors? Thanks!
Reply
#2

PlayerName2 is a function? it might be a variable i think.Replace it rname (make sure you put it before this line and also the GetPlayerName(..) too)
Reply
#3

Can you give me the right code for it ?
Reply
#4

Can you give the right code Please? If so, please send me.
Reply
#5

Someone can reply to my question, Please?

Thanks!
Reply
#6

I think that I've already told you this but i haven't explained it well.

You can't use PlayerName2(playerid) if you don't have it defined so you should either define/stock it or start replacing it with GetPlayerName .

If you decide to replace it this is how to make a stock do this:

pawn Код:
stock PlayerName2(id) // so you have an id argument where you put the wanted players ID when calling the function
{
    new name[16]; // here you're making the empty string where you'll store a players name
    GetPlayerName(id, name, sizeof(name)); // here you're storing it
    return name; // sending player's name as a return
}
and i've already explained replacing it: http://forum.sa-mp.com/showpost.php?...88&postcount=4

Reply
#7

Fixed by myself and you too. Thanks !
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)