HELP with zcmd
#1

hi, i'm using zcmd and i do not know how to creat a perfect register/login system like a FS (using only zcmd)

i need it to save (name+password+cash+score+admin lvl)

HELP please
Reply
#2

Did I not give you a simple and easy solution already? And use YCMD. Much more features which can make tasks much easier.
Reply
#3

Use Kush's Register system tutorial
Reply
#4

i want tutorials how to do this with Zcmd(it is the better and easy) who can give me the tutorials? i can't found it..
Reply
#5

and to be sure , i want to know : what is the better and simple include to use? (i want an include can do evrything:Vip+admins+ranks+save factions....) HELP
Reply
#6

Quote:
Originally Posted by ServerScripter
Посмотреть сообщение
and to be sure , i want to know : what is the better and simple include to use? (i want an include can do evrything:Vip+admins+ranks+save factions....) HELP
Since your not understanding, I can tell you nothing more but to learn scripting basics.
Reply
#7

search for a good tutorial
here : http://forum.sa-mp.com/search.php?searchid=2911411
Reply
#8

i have a problem with DINI ^^
Код:
public OnPlayerConnect(playerid)
{
	PInfo[playerid][Logged] = 0;
	PInfo[playerid][Regged] = 0;
	PInfo[playerid][Level] = 0;
	new n[MAX_PLAYER_NAME], file[256];
	GetPlayerName(playerid,n,sizeof(n));
	format(file,sizeof(file),"scriptfiles/Users/%s.txt",n);
	if(dini_Exists(file))
	{
		SendClientMessage(playerid,LIGHTBLUE,"You are registered, Please /login!");
		PInfo[playerid][Regged] = 1;
		PInfo[playerid][Logged] = 0;
		return 1;
	}
	if(!dini_Exists(file))
	{
 		SendClientMessage(playerid,LIGHTBLUE,"You are not registered, Please /register!");
		PInfo[playerid][Regged] = 0;
		PInfo[playerid][Logged] = 0;
		return 1;
	}
	return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
	new n[MAX_PLAYER_NAME], file[256];
	GetPlayerName(playerid,n,sizeof(n));
	format(file,sizeof(file),"scriptfiles/Users/%s.txt",n);
	PInfo[playerid][Logged] = 0;
	dini_IntSet(file,"Logged",0);
	return 1;
}
dcmd_register(playerid,params[])
{
	new file[256],n[MAX_PLAYER_NAME];
	GetPlayerName(playerid,n,MAX_PLAYER_NAME);
 	format(file,sizeof(file),"scriptfiles/Users/%s.txt",n);
  	if(dini_Exists(file)) return SendClientMessage(playerid,YELLOW,"You are already registered!");
  	if(PInfo[playerid][Regged] == 1) return SendClientMessage(playerid,LIGHTBLUE,"You are already registered!");
  	if(PInfo[playerid][Logged] == 1) return SendClientMessage(playerid,ORANGE,"You are already registered, and logged in!");
	if(strlen(params))
	{
	    if(!dini_Exists(file))
	    {
	        dini_Create(file);
	        dini_Set(file,"Password",params);
	        dini_IntSet(file,"Regged",1);
	        dini_IntSet(file,"Logged",0);
	        dini_IntSet(file,"Level",0);
	        SendClientMessage(playerid,LIGHTBLUE,"Congratulations, you have just registered, please /login");
	        PInfo[playerid][Regged] = 1;
			return 1;
		}
	}
	else
	{
	    SendClientMessage(playerid,GREY,"USAGE: /register <Password>");
	    return 1;
	}
	return 1;
}
the problem is the accounts don't save to "Users" folder and whene i register and i use /login it say you are not registered

HELP
Reply
#9

Quote:
Originally Posted by ServerScripter
Посмотреть сообщение
i have a problem with DINI ^^
Код:
public OnPlayerConnect(playerid)
{
	PInfo[playerid][Logged] = 0;
	PInfo[playerid][Regged] = 0;
	PInfo[playerid][Level] = 0;
	new n[MAX_PLAYER_NAME], file[256];
	GetPlayerName(playerid,n,sizeof(n));
	format(file,sizeof(file),"scriptfiles/Users/%s.txt",n);
	if(dini_Exists(file))
	{
		SendClientMessage(playerid,LIGHTBLUE,"You are registered, Please /login!");
		PInfo[playerid][Regged] = 1;
		PInfo[playerid][Logged] = 0;
		return 1;
	}
	if(!dini_Exists(file))
	{
 		SendClientMessage(playerid,LIGHTBLUE,"You are not registered, Please /register!");
		PInfo[playerid][Regged] = 0;
		PInfo[playerid][Logged] = 0;
		return 1;
	}
	return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
	new n[MAX_PLAYER_NAME], file[256];
	GetPlayerName(playerid,n,sizeof(n));
	format(file,sizeof(file),"scriptfiles/Users/%s.txt",n);
	PInfo[playerid][Logged] = 0;
	dini_IntSet(file,"Logged",0);
	return 1;
}
dcmd_register(playerid,params[])
{
	new file[256],n[MAX_PLAYER_NAME];
	GetPlayerName(playerid,n,MAX_PLAYER_NAME);
 	format(file,sizeof(file),"scriptfiles/Users/%s.txt",n);
  	if(dini_Exists(file)) return SendClientMessage(playerid,YELLOW,"You are already registered!");
  	if(PInfo[playerid][Regged] == 1) return SendClientMessage(playerid,LIGHTBLUE,"You are already registered!");
  	if(PInfo[playerid][Logged] == 1) return SendClientMessage(playerid,ORANGE,"You are already registered, and logged in!");
	if(strlen(params))
	{
	    if(!dini_Exists(file))
	    {
	        dini_Create(file);
	        dini_Set(file,"Password",params);
	        dini_IntSet(file,"Regged",1);
	        dini_IntSet(file,"Logged",0);
	        dini_IntSet(file,"Level",0);
	        SendClientMessage(playerid,LIGHTBLUE,"Congratulations, you have just registered, please /login");
	        PInfo[playerid][Regged] = 1;
			return 1;
		}
	}
	else
	{
	    SendClientMessage(playerid,GREY,"USAGE: /register <Password>");
	    return 1;
	}
	return 1;
}
the problem is the accounts don't save to "Users" folder and whene i register and i use /login it say you are not registered

HELP
PHP код:
//Credits to ******, Dracoblue and Kush.
#include <a_samp>
#include <YSI\y_ini>
#include <YSI\y_commands>
#include <sscanf2>
#define PATH "/Users/%s.ini"
#define COL_WHITE "{FFFFFF}"
#define COL_RED "{F81414}"
#define COL_GREEN "{00FF22}"
#define COL_LIGHTBLUE "{00CED1}"
enum pInfo
{
    
pPass,
    
pCash,
    
pAdmin,
    
pKills,
    
pDeaths,
    
pReg
}
new 
PlayerInfo[MAX_PLAYERS][pInfo];
forward LoadUser_data(playerid,name[],value[]);
public 
LoadUser_data(playerid,name[],value[])
{
    
INI_Int("Password",PlayerInfo[playerid][pPass]);
    
INI_Int("Cash",PlayerInfo[playerid][pCash]);
    
INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
    
INI_Int("Kills",PlayerInfo[playerid][pKills]);
    
INI_Int("Deaths",PlayerInfo[playerid][pDeaths]);
    
INI_Int("Registered",PlayerInfo[playerid][pReg]);
    return 
1;
}
stock UserPath(playerid)
{
    new 
string[128],playername[MAX_PLAYER_NAME];
    
GetPlayerName(playerid,playername,sizeof(playername));
    
format(string,sizeof(string),PATH,playername);
    return 
string;
}
/*Credits to Dracoblue*/
stock udb_hash(buf[]) {
    new 
length=strlen(buf);
    new 
s1 1;
    new 
s2 0;
    new 
n;
    for (
n=0n<lengthn++)
    {
       
s1 = (s1 buf[n]) % 65521;
       
s2 = (s2 s1)     % 65521;
    }
    return (
s2 << 16) + s1;
}
main()
{
    print(
"\n----------------------------------");
    print(
" Blank Gamemode by your name here");
    print(
"----------------------------------\n");
}
public 
OnGameModeInit()
{
    
SetGameModeText("Blank Script");
    return 
1;
}
public 
OnGameModeExit()
{
    return 
1;
}
public 
OnPlayerRequestClass(playeridclassid)
{
    return 
1;
}
public 
OnPlayerConnect(playerid)
{
    if(
fexist(UserPath(playerid)))
    {
        
INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra true, .extra playerid);
        
SendClientMessage(playerid, -1"The account is registered. Type /login to login to your account!");
    }
    else
    {
        
SendClientMessage(playerid, -1"The account is NOT registered. Type /register to register the account!");
    }
    return 
1;
}
public 
OnPlayerDisconnect(playeridreason)
{
    new 
INI:File INI_Open(UserPath(playerid));
    
INI_SetTag(File,"data");
    
INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
    
INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
    
INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
    
INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
    
INI_WriteInt(File,"Registered",PlayerInfo[playerid][pReg]);
    
INI_Close(File);
    return 
1;
}
public 
OnPlayerSpawn(playerid)
{
    return 
1;
}
public 
OnPlayerDeath(playeridkilleridreason)
{
    
PlayerInfo[killerid][pKills]++;
    
PlayerInfo[playerid][pDeaths]++;
    return 
1;
}
public 
OnVehicleSpawn(vehicleid)
{
    return 
1;
}
public 
OnVehicleDeath(vehicleidkillerid)
{
    return 
1;
}
public 
OnPlayerText(playeridtext[])
{
    return 
1;
}
public 
OnPlayerCommandText(playeridcmdtext[])
{
    if (
strcmp("/mycommand"cmdtexttrue10) == 0)
    {
        
// Do something here
        
return 1;
    }
    return 
0;
}
public 
OnPlayerEnterVehicle(playeridvehicleidispassenger)
{
    return 
1;
}
public 
OnPlayerExitVehicle(playeridvehicleid)
{
    return 
1;
}
public 
OnPlayerStateChange(playeridnewstateoldstate)
{
    return 
1;
}
public 
OnPlayerEnterCheckpoint(playerid)
{
    return 
1;
}
public 
OnPlayerLeaveCheckpoint(playerid)
{
    return 
1;
}
public 
OnPlayerEnterRaceCheckpoint(playerid)
{
    return 
1;
}
public 
OnPlayerLeaveRaceCheckpoint(playerid)
{
    return 
1;
}
public 
OnRconCommand(cmd[])
{
    return 
1;
}
public 
OnPlayerRequestSpawn(playerid)
{
    return 
1;
}
public 
OnObjectMoved(objectid)
{
    return 
1;
}
public 
OnPlayerObjectMoved(playeridobjectid)
{
    return 
1;
}
public 
OnPlayerPickUpPickup(playeridpickupid)
{
    return 
1;
}
public 
OnVehicleMod(playeridvehicleidcomponentid)
{
    return 
1;
}
public 
OnVehiclePaintjob(playeridvehicleidpaintjobid)
{
    return 
1;
}
public 
OnVehicleRespray(playeridvehicleidcolor1color2)
{
    return 
1;
}
public 
OnPlayerSelectedMenuRow(playeridrow)
{
    return 
1;
}
public 
OnPlayerExitedMenu(playerid)
{
    return 
1;
}
public 
OnPlayerInteriorChange(playeridnewinterioridoldinteriorid)
{
    return 
1;
}
public 
OnPlayerKeyStateChange(playeridnewkeysoldkeys)
{
    return 
1;
}
public 
OnRconLoginAttempt(ip[], password[], success)
{
    return 
1;
}
public 
OnPlayerUpdate(playerid)
{
    return 
1;
}
public 
OnPlayerStreamIn(playeridforplayerid)
{
    return 
1;
}
public 
OnPlayerStreamOut(playeridforplayerid)
{
    return 
1;
}
public 
OnVehicleStreamIn(vehicleidforplayerid)
{
    return 
1;
}
public 
OnVehicleStreamOut(vehicleidforplayerid)
{
    return 
1;
}
public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    return 
1;
}
public 
OnPlayerClickPlayer(playeridclickedplayeridsource)
{
    return 
1;
}
YCMD:help(playeridparams[], help)
{
    if (
help)
    {
        
SendClientMessage(playerid, -1"Displays help about commands.");
    }
    else
    {
        if (
isnull(params))
        {
            new 
str[128];
            
format(strsizeof (str), "Type \"/%s [command]\" for more help on a command."Command_GetDisplayNamed("help"playerid));
            
SendClientMessage(playerid, -1str);
        }
        else
        {
            
Command_ReProcess(playeridparamstrue);
        }
    }
    return 
1;
}
YCMD:register(playeridparams[], help)
{
    if(
help)
    {
        
SendClientMessage(playerid, -1"This command is used to register a new account.");
    }
    else
    {
        if(
PlayerInfo[playerid][pReg] == 0)
        {
            if(
sscanf(params"s[128]"params)) return SendClientMessage(playerid, -1"USAGE: /register [password]");
              new 
INI:File INI_Open(UserPath(playerid));
            
INI_SetTag(File,"data");
             
INI_WriteInt(File,"Password",udb_hash(params));
              
INI_WriteInt(File,"Cash",0);
               
INI_WriteInt(File,"Admin",0);
            
INI_WriteInt(File,"Kills",0);
            
INI_WriteInt(File,"Deaths",0);
            
INI_WriteInt(File,"Registered",0);
            
INI_Close(File);
            
SendClientMessage(playerid, -1"Your account have successfully been registered. You have auto-logged in!");
            
PlayerInfo[playerid][pReg] = 1;
        }
        else
        {
            
SendClientMessage(playerid, -1"You are already registered!");
        }
    }
    return 
1;
}
YCMD:login(playeridparams[], help)
{
    if(
help)
    {
        
SendClientMessage(playerid, -1"This command is used to login to your account.");
    }
    else
    {
        if(
PlayerInfo[playerid][pReg] == 1)
        {
            if(
sscanf(params"s[128]"params)) return SendClientMessage(playerid, -1"USAGE: /login [password]");
            if(
udb_hash(params) == PlayerInfo[playerid][pPass])
              {
                
INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra true, .extra playerid);
                  
GivePlayerMoney(playeridPlayerInfo[playerid][pCash]);
                  
SendClientMessage(playerid, -1"You have successfully logged in!");
            }
            else
            {
                
SendClientMessage(playerid, -1"Incorrect Password!");
            }
        }
        else
        {
            
SendClientMessage(playerid, -1"You are not registered!");
        }
    }
    return 
1;

Your lucky I've done this.
Reply
#10

Thanx a lot man !! i will not forgot your work thanx again !
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)