Add a function (select gender) for register system
#1

Hi everybody. This is codes use for my register and login system:

Код:
#include <a_samp>
    #include <Double-O-Files_2>

    #define DIALOG_REGISTER 1
    #define DIALOG_LOGIN 2
    main()
    {
            print("\n----------------------------------");
            print(" Blank Gamemode DOF2");
            print("----------------------------------\n");
    }

    public OnGameModeInit()
    {
            SetGameModeText("Blank Script DOF2");
            return 1;
    }
    enum pInfo
    {
            pKills,
            pDeaths,
            pMoney,
            pAdmin
    }
    new PlayerInfo[MAX_PLAYERS][pInfo];
    //----------------------

    public OnGameModeExit()
    {
            DOF2_Exit();
            return 1;
    }

    public OnPlayerRequestClass(playerid, classid)
    {
            return 1;
    }

    public OnPlayerConnect(playerid)
    {
            new file[64];
        GetPlayerName(playerid,file,sizeof(file));
        format(file,sizeof(file),DOF2_File(file));// Here we get the path from DOF2_File (/Users)
            if(DOF2_FileExists(file)) // We check if the player is registered
            {
                    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,"Welcome.Please log-in","{FFFFFF}Type your {00FF22}password {FFFFFF}here to log-in","Log-in","Quit");
            }
            else // If not registered
            {
                    ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,"Please register!","{FFFFFF}Type your {00FF22}password {FFFFFF}here to register.","Register","Quit");
            }
            return 1;
    }
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
            switch(dialogid) // We switch the dialogs
            {
                    case DIALOG_REGISTER: // If dialog_register (id 1) shows up
                    {
                            if(!response) Kick(playerid); // If he click on Quit, he will get kicked
                            if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,"Please register!","{FFFFFF}Type your {00FF22}password {FFFFFF}here to register.","Register","Quit");
                            // If he doesn't type anything, the dialog will show again.
                            if(response) // If he click on Register
                            {
                                    new file[64]; // We declare the size of the file
                                    GetPlayerName(playerid,file,sizeof(file)); // We get the file name
                                    format(file,sizeof(file),DOF2_File(file)); // We get the path name from DOF2_File, that means from Users folder.
                                    DOF2_CreateFile(file, inputtext); // Creates the file and the password.
                                    DOF2_SetInt(file, "Kills",PlayerInfo[playerid][pKills] = 0); // When the player register his kills will be set to 0, you can change
                                    DOF2_SetInt(file, "Deaths",PlayerInfo[playerid][pDeaths] = 0); // His deaths will be set to 0, you can change
                                    DOF2_SetInt(file, "Money",PlayerInfo[playerid][pMoney] = 1000); // His money will be set to 1000, you can change
                                    DOF2_SetInt(file, "AdminLevel",PlayerInfo[playerid][pAdmin] = 0); // His Admin Level will be set to 0, you can change
                                    DOF2_SaveFile(); // Saves the file.
                                    SetSpawnInfo(playerid, 0, 0, 1722.5123, -1912.7931, 13.5647, 269.15, 0, 0, 0, 0, 0, 0); // Sets where the player will spawn, this coordinates are from the Unity Station in Los Santos
                                    SpawnPlayer(playerid); // After registering, the player will spawn.
                            }
                    }
                    case DIALOG_LOGIN: // If dialog_login (id 2) shows up
                    {
                            if(!response) Kick(playerid); // If he click on Quit, he will get kicked.
                            if(response) // If he click on Log-in
                            {
                                    new file[64]; // We declare the size of the file
                                    GetPlayerName(playerid,file,sizeof(file)); // We get the file name
                                    format(file,sizeof(file),DOF2_File(file)); // We get the user path from DOF2_File ( folder Users )
                                    if(DOF2_FileExists(file)) // If he is registered
                                    {
                                            if(DOF2_CheckLogin(file,inputtext)) // We check if the password match
                                            {
                                                    PlayerInfo[playerid][pKills] = DOF2_GetInt(file,"Kills"); // We load our settings
                                                    PlayerInfo[playerid][pDeaths] = DOF2_GetInt(file,"Deaths");
                                                    PlayerInfo[playerid][pMoney] = DOF2_GetInt(file,"Money");
                                                    PlayerInfo[playerid][pAdmin] = DOF2_GetInt(file,"AdminLevel");
                                                    SetSpawnInfo(playerid, 0, 0, 1722.5123, -1912.7931, 13.5647, 269.15, 0, 0, 0, 0, 0, 0); // We set the spawn (Unity Station)
                                                    SpawnPlayer(playerid); // The player spawns after log-in
                                                    return 1;
                                            }
                                            else // If the password don't match, they will get an error
                                            {
                                                    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,"Wrong Password!","{F81414}You have typed a wrong password\n{FFFFFF}Type your password here to log-in!","Log-in","Quit");
                                                    return 1;
                                            }
                                    }
                            }
                    }
            }
            return 1;
    }
    public OnPlayerDisconnect(playerid, reason)
    {
            new file[64]; // We declare the size of the file
        GetPlayerName(playerid,file,sizeof(file)); // We get the file name
        format(file,sizeof(file),DOF2_File(file));// We get the user path from DOF2_File (folder Users)
            DOF2_SetInt(file, "Kills",PlayerInfo[playerid][pKills]); // We set/update the players settings.
            DOF2_SetInt(file, "Deaths",PlayerInfo[playerid][pDeaths]);
            DOF2_SetInt(file, "Money",PlayerInfo[playerid][pMoney]);
            DOF2_SetInt(file, "AdminLevel",PlayerInfo[playerid][pAdmin]);
            return 1;
    }

    public OnPlayerSpawn(playerid)
    {
            GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
            return 1;
    }

    public OnPlayerDeath(playerid, killerid, reason)
    {
            PlayerInfo[killerid][pKills]++;
        PlayerInfo[playerid][pDeaths]++;
            return 1;
    }

    public OnVehicleSpawn(vehicleid)
    {
            return 1;
    }

    public OnVehicleDeath(vehicleid, killerid)
    {
            return 1;
    }

    public OnPlayerText(playerid, text[])
    {
            return 1;
    }

    public OnPlayerCommandText(playerid, cmdtext[])
    {
            if (strcmp("/mycommand", cmdtext, true, 10) == 0)
            {
                    // Do something here
                    return 1;
            }
            return 0;
    }

    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
            return 1;
    }

    public OnPlayerExitVehicle(playerid, vehicleid)
    {
            return 1;
    }

    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
            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(playerid, objectid)
    {
            return 1;
    }

    public OnPlayerPickUpPickup(playerid, pickupid)
    {
            return 1;
    }

    public OnVehicleMod(playerid, vehicleid, componentid)
    {
            return 1;
    }

    public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
    {
            return 1;
    }

    public OnVehicleRespray(playerid, vehicleid, color1, color2)
    {
            return 1;
    }

    public OnPlayerSelectedMenuRow(playerid, row)
    {
            return 1;
    }

    public OnPlayerExitedMenu(playerid)
    {
            return 1;
    }

    public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
    {
            return 1;
    }

    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
            return 1;
    }


    public OnPlayerUpdate(playerid)
    {
            return 1;
    }

    public OnPlayerStreamIn(playerid, forplayerid)
    {
            return 1;
    }

    public OnPlayerStreamOut(playerid, forplayerid)
    {
            return 1;
    }

    public OnVehicleStreamIn(vehicleid, forplayerid)
    {
            return 1;
    }

    public OnVehicleStreamOut(vehicleid, forplayerid)
    {
            return 1;
    }

    public OnPlayerClickPlayer(playerid, clickedplayerid, source)
    {
            return 1;
    }
Now, I want to add a function (select gender): If I choose female, my skin ID is: xxx, if I choose male, my skin ID is: yyy. How can I do? Please help me. Thank so much!

__________________________________________________ _______________________________________________

TRƯỜNG SA & HOАNG SA LА CỦA VIỆT NAM / PARACEL & SPRATLY BELONG TO VIET NAM
Reply
#2

You mean you need it in the dialog or command?
Reply
#3

dialog
Reply
#4


pawn Код:
ShowPlayerDialog(playerid, DIALOG_GENDER, DIALOG_STYLE_MSGBOX, "Gender selection", "Select your gender:", "Male", "Female");
// under OnDialogResponse()
if(dialogid == DIALOG_GENDER)
{
     if(response) {SetPlayerSkin(playerid, your_yyy);}
     else {SetPlayerSkin(playerid, your_xxx);}
}
Reply
#5

but I must specifically located?
Reply
#6

This is my code after use your code. when I type password to register and I select my gender, the dialog show I type wrong password. Maybe I have put codes wrong place? How can I do? Please help me!

Код:
#include <a_samp>
    #include <Double-O-Files_2>

    #define DIALOG_REGISTER 1
    #define DIALOG_LOGIN 2
    #define DIALOG_GENDER 2
    main()
    {
            print("\n----------------------------------");
            print(" Blank Gamemode DOF2");
            print("----------------------------------\n");
    }

    public OnGameModeInit()
    {
            SetGameModeText("Blank Script DOF2");
            return 1;
    }
    enum pInfo
    {
            pKills,
            pDeaths,
            pMoney,
            pAdmin
    }
    new PlayerInfo[MAX_PLAYERS][pInfo];
    //----------------------

    public OnGameModeExit()
    {
            DOF2_Exit();
            return 1;
    }

    public OnPlayerRequestClass(playerid, classid)
    {
            return 1;
    }

    public OnPlayerConnect(playerid)
    {
            new file[64];
        GetPlayerName(playerid,file,sizeof(file));
        format(file,sizeof(file),DOF2_File(file));// Here we get the path from DOF2_File (/Users)
            if(DOF2_FileExists(file)) // We check if the player is registered
            {
                    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,"Welcome.Please log-in","{FFFFFF}Type your {00FF22}password {FFFFFF}here to log-in","Log-in","Quit");
            }
            else // If not registered
            {
                    ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,"Please register!","{FFFFFF}Type your {00FF22}password {FFFFFF}here to register.","Register","Quit");
            }
            return 1;
    }
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    



if(dialogid == DIALOG_GENDER)
{
     if(response) {SetPlayerSkin(playerid, 171);}
     else {SetPlayerSkin(playerid, 172);}
}




            switch(dialogid) // We switch the dialogs
            {
                    case DIALOG_REGISTER: // If dialog_register (id 1) shows up
                    {
                            if(!response) Kick(playerid); // If he click on Quit, he will get kicked
                            if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,"Please register!","{FFFFFF}Type your {00FF22}password {FFFFFF}here to register.","Register","Quit");
                            // If he doesn't type anything, the dialog will show again.
                            if(response) // If he click on Register
                            {
                                    new file[64]; // We declare the size of the file
                                    GetPlayerName(playerid,file,sizeof(file)); // We get the file name
                                    format(file,sizeof(file),DOF2_File(file)); // We get the path name from DOF2_File, that means from Users folder.
                                    DOF2_CreateFile(file, inputtext); // Creates the file and the password.
                                    DOF2_SetInt(file, "Kills",PlayerInfo[playerid][pKills] = 0); // When the player register his kills will be set to 0, you can change
                                    DOF2_SetInt(file, "Deaths",PlayerInfo[playerid][pDeaths] = 0); // His deaths will be set to 0, you can change
                                    DOF2_SetInt(file, "Money",PlayerInfo[playerid][pMoney] = 1000); // His money will be set to 1000, you can change
                                    DOF2_SetInt(file, "AdminLevel",PlayerInfo[playerid][pAdmin] = 0); // His Admin Level will be set to 0, you can change
                                    DOF2_SaveFile(); // Saves the file.
                                    //SetSpawnInfo(playerid, 0, 0, 1722.5123, -1912.7931, 13.5647, 269.15, 0, 0, 0, 0, 0, 0); // Sets where the player will spawn, this coordinates are from the Unity Station in Los Santos


ShowPlayerDialog(playerid, DIALOG_GENDER, DIALOG_STYLE_MSGBOX, "Gender selection", "Select your gender:", "Male", "Female");

									SpawnPlayer(playerid); // After registering, the player will spawn.
                            }
                    }
                    case DIALOG_LOGIN: // If dialog_login (id 2) shows up
                    {
                            if(!response) Kick(playerid); // If he click on Quit, he will get kicked.
                            if(response) // If he click on Log-in
                            {
                                    new file[64]; // We declare the size of the file
                                    GetPlayerName(playerid,file,sizeof(file)); // We get the file name
                                    format(file,sizeof(file),DOF2_File(file)); // We get the user path from DOF2_File ( folder Users )
                                    if(DOF2_FileExists(file)) // If he is registered
                                    {
                                            if(DOF2_CheckLogin(file,inputtext)) // We check if the password match
                                            {
                                                    PlayerInfo[playerid][pKills] = DOF2_GetInt(file,"Kills"); // We load our settings
                                                    PlayerInfo[playerid][pDeaths] = DOF2_GetInt(file,"Deaths");
                                                    PlayerInfo[playerid][pMoney] = DOF2_GetInt(file,"Money");
                                                    PlayerInfo[playerid][pAdmin] = DOF2_GetInt(file,"AdminLevel");
                                                    //SetSpawnInfo(playerid, 0, 0, 1722.5123, -1912.7931, 13.5647, 269.15, 0, 0, 0, 0, 0, 0); // We set the spawn (Unity Station)
                                                    SpawnPlayer(playerid); // The player spawns after log-in
                                                    return 1;
                                            }
                                            else // If the password don't match, they will get an error
                                            {
                                                    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,"Wrong Password!","{F81414}You have typed a wrong password\n{FFFFFF}Type your password here to log-in!","Log-in","Quit");
                                                    return 1;
                                            }
                                    }
                            }
                    }
            }
            return 1;
    }
    public OnPlayerDisconnect(playerid, reason)
    {
            new file[64]; // We declare the size of the file
        GetPlayerName(playerid,file,sizeof(file)); // We get the file name
        format(file,sizeof(file),DOF2_File(file));// We get the user path from DOF2_File (folder Users)
            DOF2_SetInt(file, "Kills",PlayerInfo[playerid][pKills]); // We set/update the players settings.
            DOF2_SetInt(file, "Deaths",PlayerInfo[playerid][pDeaths]);
            DOF2_SetInt(file, "Money",PlayerInfo[playerid][pMoney]);
            DOF2_SetInt(file, "AdminLevel",PlayerInfo[playerid][pAdmin]);
            return 1;
    }

    public OnPlayerSpawn(playerid)
    {
            GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
            return 1;
    }

    public OnPlayerDeath(playerid, killerid, reason)
    {
            PlayerInfo[killerid][pKills]++;
        PlayerInfo[playerid][pDeaths]++;
            return 1;
    }

    public OnVehicleSpawn(vehicleid)
    {
            return 1;
    }

    public OnVehicleDeath(vehicleid, killerid)
    {
            return 1;
    }

    public OnPlayerText(playerid, text[])
    {
            return 1;
    }

    public OnPlayerCommandText(playerid, cmdtext[])
    {
            if (strcmp("/mycommand", cmdtext, true, 10) == 0)
            {
                    // Do something here
                    return 1;
            }
            return 0;
    }

    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
            return 1;
    }

    public OnPlayerExitVehicle(playerid, vehicleid)
    {
            return 1;
    }

    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
            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(playerid, objectid)
    {
            return 1;
    }

    public OnPlayerPickUpPickup(playerid, pickupid)
    {
            return 1;
    }

    public OnVehicleMod(playerid, vehicleid, componentid)
    {
            return 1;
    }

    public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
    {
            return 1;
    }

    public OnVehicleRespray(playerid, vehicleid, color1, color2)
    {
            return 1;
    }

    public OnPlayerSelectedMenuRow(playerid, row)
    {
            return 1;
    }

    public OnPlayerExitedMenu(playerid)
    {
            return 1;
    }

    public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
    {
            return 1;
    }

    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
            return 1;
    }


    public OnPlayerUpdate(playerid)
    {
            return 1;
    }

    public OnPlayerStreamIn(playerid, forplayerid)
    {
            return 1;
    }

    public OnPlayerStreamOut(playerid, forplayerid)
    {
            return 1;
    }

    public OnVehicleStreamIn(vehicleid, forplayerid)
    {
            return 1;
    }

    public OnVehicleStreamOut(vehicleid, forplayerid)
    {
            return 1;
    }

    public OnPlayerClickPlayer(playerid, clickedplayerid, source)
    {
            return 1;
    }
Reply
#7

OnPlayerSpawn check if the gender is NULL aka 0 if yes then show a dialog for a player to select his gender.

EDIT:
Код:
#include <a_samp>
#include <Double-O-Files_2>

#define DIALOG_REGISTER 1
#define DIALOG_LOGIN 2
main()
{
	print("\n----------------------------------");
	print(" Blank Gamemode DOF2");
	print("----------------------------------\n");
}

public OnGameModeInit()
{
	SetGameModeText("Blank Script DOF2");
	return 1;
}
enum pInfo
{
	pKills,
	pDeaths,
	pMoney,
	pAdmin,
	pGender
}
new PlayerInfo[MAX_PLAYERS][pInfo];
//----------------------

public OnGameModeExit()
{
	DOF2_Exit();
	return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
	return 1;
}

public OnPlayerConnect(playerid)
{
	new file[64];
	GetPlayerName(playerid,file,sizeof(file));
	format(file,sizeof(file),DOF2_File(file));// Here we get the path from DOF2_File (/Users)
	if(DOF2_FileExists(file)) // We check if the player is registered
	{
		ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,"Welcome.Please log-in","{FFFFFF}Type your {00FF22}password {FFFFFF}here to log-in","Log-in","Quit");
	}
	else // If not registered
	{
		ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,"Please register!","{FFFFFF}Type your {00FF22}password {FFFFFF}here to register.","Register","Quit");
	}
	return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	switch(dialogid) // We switch the dialogs
	{
		case DIALOG_REGISTER: // If dialog_register (id 1) shows up
		{
			if(!response) Kick(playerid); // If he click on Quit, he will get kicked
			if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,"Please register!","{FFFFFF}Type your {00FF22}password {FFFFFF}here to register.","Register","Quit");
			// If he doesn't type anything, the dialog will show again.
			if(response) // If he click on Register
			{
				new file[64]; // We declare the size of the file
				GetPlayerName(playerid,file,sizeof(file)); // We get the file name
				format(file,sizeof(file),DOF2_File(file)); // We get the path name from DOF2_File, that means from Users folder.
				DOF2_CreateFile(file, inputtext); // Creates the file and the password.
				DOF2_SetInt(file, "Kills",PlayerInfo[playerid][pKills] = 0); // When the player register his kills will be set to 0, you can change
				DOF2_SetInt(file, "Deaths",PlayerInfo[playerid][pDeaths] = 0); // His deaths will be set to 0, you can change
				DOF2_SetInt(file, "Money",PlayerInfo[playerid][pMoney] = 1000); // His money will be set to 1000, you can change
				DOF2_SetInt(file, "AdminLevel",PlayerInfo[playerid][pAdmin] = 0); // His Admin Level will be set to 0, you can change
                DOF2_SetInt(file, "Gender",PlayerInfo[playerid][pGender] = 0);
				DOF2_SaveFile(); // Saves the file.
				SetSpawnInfo(playerid, 0, 0, 1722.5123, -1912.7931, 13.5647, 269.15, 0, 0, 0, 0, 0, 0); // Sets where the player will spawn, this coordinates are from the Unity Station in Los Santos
				SpawnPlayer(playerid); // After registering, the player will spawn.
			}
		}
		case DIALOG_LOGIN: // If dialog_login (id 2) shows up
		{
			if(!response) Kick(playerid); // If he click on Quit, he will get kicked.
			if(response) // If he click on Log-in
			{
				new file[64]; // We declare the size of the file
				GetPlayerName(playerid,file,sizeof(file)); // We get the file name
				format(file,sizeof(file),DOF2_File(file)); // We get the user path from DOF2_File ( folder Users )
				if(DOF2_FileExists(file)) // If he is registered
				{
					if(DOF2_CheckLogin(file,inputtext)) // We check if the password match
					{
						PlayerInfo[playerid][pKills] = DOF2_GetInt(file,"Kills"); // We load our settings
						PlayerInfo[playerid][pDeaths] = DOF2_GetInt(file,"Deaths");
						PlayerInfo[playerid][pMoney] = DOF2_GetInt(file,"Money");
						PlayerInfo[playerid][pAdmin] = DOF2_GetInt(file,"AdminLevel");
						PlayerInfo[playerid][pGender] = DOF2_GetInt(file,"Gender");
						SetSpawnInfo(playerid, 0, 0, 1722.5123, -1912.7931, 13.5647, 269.15, 0, 0, 0, 0, 0, 0); // We set the spawn (Unity Station)
						SpawnPlayer(playerid); // The player spawns after log-in
						return 1;
					}
					else // If the password don't match, they will get an error
					{
						ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,"Wrong Password!","{F81414}You have typed a wrong password\n{FFFFFF}Type your password here to log-in!","Log-in","Quit");
						return 1;
					}
				}
			}
		}
	}
	if(dialogid == DIALOG_GENDER_SELECTION)
	{
		if(!response)
		{
			PlayerInfo[playerid][pGender] == 2; // 2 stands for female, 1 for male.
			SendClientMessage(playerid,-1,"Okay, you're a female.");
		}
		else
		{
			PlayerInfo[playerid][pGender] == 1; // 2 stands for female, 1 for male.
			SendClientMessage(playerid,-1,"Okay, you're a male.");
		}
	}
	return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
	new file[64]; // We declare the size of the file
	GetPlayerName(playerid,file,sizeof(file)); // We get the file name
	format(file,sizeof(file),DOF2_File(file));// We get the user path from DOF2_File (folder Users)
	DOF2_SetInt(file, "Kills",PlayerInfo[playerid][pKills]); // We set/update the players settings.
	DOF2_SetInt(file, "Deaths",PlayerInfo[playerid][pDeaths]);
	DOF2_SetInt(file, "Money",PlayerInfo[playerid][pMoney]);
	DOF2_SetInt(file, "AdminLevel",PlayerInfo[playerid][pAdmin]);
	return 1;
}

public OnPlayerSpawn(playerid)
{
	GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
	if(PlayerInfo[playerid][pGender] == 0)
	{
	    ShowPlayerDialog(playerid,DIALOG_SELECT_GENDER,DIALOG_STYLE_MSGBOX,"Gender Selection","Male","Female");
	}
	return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
	PlayerInfo[killerid][pKills]++;
	PlayerInfo[playerid][pDeaths]++;
	return 1;
}

public OnVehicleSpawn(vehicleid)
{
	return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
	return 1;
}

public OnPlayerText(playerid, text[])
{
	return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
	if (strcmp("/mycommand", cmdtext, true, 10) == 0)
	{
		// Do something here
		return 1;
	}
	return 0;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
	return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
	return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
	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(playerid, objectid)
{
	return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
	return 1;
}

public OnVehicleMod(playerid, vehicleid, componentid)
{
	return 1;
}

public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
	return 1;
}

public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
	return 1;
}

public OnPlayerSelectedMenuRow(playerid, row)
{
	return 1;
}

public OnPlayerExitedMenu(playerid)
{
	return 1;
}

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
	return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
	return 1;
}


public OnPlayerUpdate(playerid)
{
	return 1;
}

public OnPlayerStreamIn(playerid, forplayerid)
{
	return 1;
}

public OnPlayerStreamOut(playerid, forplayerid)
{
	return 1;
}

public OnVehicleStreamIn(vehicleid, forplayerid)
{
	return 1;
}

public OnVehicleStreamOut(vehicleid, forplayerid)
{
	return 1;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
	return 1;
}
Untested.
Reply
#8

i want to add dialogs : age gender and email
Reply
#9

Check my edit above.
Reply
#10

Quote:
Originally Posted by DaniceMcHarley
Посмотреть сообщение
OnPlayerSpawn check if the gender is NULL aka 0 if yes then show a dialog for a player to select his gender.

EDIT:
Код:
#include <a_samp>
#include <Double-O-Files_2>

#define DIALOG_REGISTER 1
#define DIALOG_LOGIN 2
main()
{
	print("\n----------------------------------");
	print(" Blank Gamemode DOF2");
	print("----------------------------------\n");
}

public OnGameModeInit()
{
	SetGameModeText("Blank Script DOF2");
	return 1;
}
enum pInfo
{
	pKills,
	pDeaths,
	pMoney,
	pAdmin,
	pGender
}
new PlayerInfo[MAX_PLAYERS][pInfo];
//----------------------

public OnGameModeExit()
{
	DOF2_Exit();
	return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
	return 1;
}

public OnPlayerConnect(playerid)
{
	new file[64];
	GetPlayerName(playerid,file,sizeof(file));
	format(file,sizeof(file),DOF2_File(file));// Here we get the path from DOF2_File (/Users)
	if(DOF2_FileExists(file)) // We check if the player is registered
	{
		ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,"Welcome.Please log-in","{FFFFFF}Type your {00FF22}password {FFFFFF}here to log-in","Log-in","Quit");
	}
	else // If not registered
	{
		ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,"Please register!","{FFFFFF}Type your {00FF22}password {FFFFFF}here to register.","Register","Quit");
	}
	return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	switch(dialogid) // We switch the dialogs
	{
		case DIALOG_REGISTER: // If dialog_register (id 1) shows up
		{
			if(!response) Kick(playerid); // If he click on Quit, he will get kicked
			if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,"Please register!","{FFFFFF}Type your {00FF22}password {FFFFFF}here to register.","Register","Quit");
			// If he doesn't type anything, the dialog will show again.
			if(response) // If he click on Register
			{
				new file[64]; // We declare the size of the file
				GetPlayerName(playerid,file,sizeof(file)); // We get the file name
				format(file,sizeof(file),DOF2_File(file)); // We get the path name from DOF2_File, that means from Users folder.
				DOF2_CreateFile(file, inputtext); // Creates the file and the password.
				DOF2_SetInt(file, "Kills",PlayerInfo[playerid][pKills] = 0); // When the player register his kills will be set to 0, you can change
				DOF2_SetInt(file, "Deaths",PlayerInfo[playerid][pDeaths] = 0); // His deaths will be set to 0, you can change
				DOF2_SetInt(file, "Money",PlayerInfo[playerid][pMoney] = 1000); // His money will be set to 1000, you can change
				DOF2_SetInt(file, "AdminLevel",PlayerInfo[playerid][pAdmin] = 0); // His Admin Level will be set to 0, you can change
                DOF2_SetInt(file, "Gender",PlayerInfo[playerid][pGender] = 0);
				DOF2_SaveFile(); // Saves the file.
				SetSpawnInfo(playerid, 0, 0, 1722.5123, -1912.7931, 13.5647, 269.15, 0, 0, 0, 0, 0, 0); // Sets where the player will spawn, this coordinates are from the Unity Station in Los Santos
				SpawnPlayer(playerid); // After registering, the player will spawn.
			}
		}
		case DIALOG_LOGIN: // If dialog_login (id 2) shows up
		{
			if(!response) Kick(playerid); // If he click on Quit, he will get kicked.
			if(response) // If he click on Log-in
			{
				new file[64]; // We declare the size of the file
				GetPlayerName(playerid,file,sizeof(file)); // We get the file name
				format(file,sizeof(file),DOF2_File(file)); // We get the user path from DOF2_File ( folder Users )
				if(DOF2_FileExists(file)) // If he is registered
				{
					if(DOF2_CheckLogin(file,inputtext)) // We check if the password match
					{
						PlayerInfo[playerid][pKills] = DOF2_GetInt(file,"Kills"); // We load our settings
						PlayerInfo[playerid][pDeaths] = DOF2_GetInt(file,"Deaths");
						PlayerInfo[playerid][pMoney] = DOF2_GetInt(file,"Money");
						PlayerInfo[playerid][pAdmin] = DOF2_GetInt(file,"AdminLevel");
						PlayerInfo[playerid][pGender] = DOF2_GetInt(file,"Gender");
						SetSpawnInfo(playerid, 0, 0, 1722.5123, -1912.7931, 13.5647, 269.15, 0, 0, 0, 0, 0, 0); // We set the spawn (Unity Station)
						SpawnPlayer(playerid); // The player spawns after log-in
						return 1;
					}
					else // If the password don't match, they will get an error
					{
						ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,"Wrong Password!","{F81414}You have typed a wrong password\n{FFFFFF}Type your password here to log-in!","Log-in","Quit");
						return 1;
					}
				}
			}
		}
	}
	if(dialogid == DIALOG_GENDER_SELECTION)
	{
		if(!response)
		{
			PlayerInfo[playerid][pGender] == 2; // 2 stands for female, 1 for male.
			SendClientMessage(playerid,-1,"Okay, you're a female.");
		}
		else
		{
			PlayerInfo[playerid][pGender] == 1; // 2 stands for female, 1 for male.
			SendClientMessage(playerid,-1,"Okay, you're a male.");
		}
	}
	return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
	new file[64]; // We declare the size of the file
	GetPlayerName(playerid,file,sizeof(file)); // We get the file name
	format(file,sizeof(file),DOF2_File(file));// We get the user path from DOF2_File (folder Users)
	DOF2_SetInt(file, "Kills",PlayerInfo[playerid][pKills]); // We set/update the players settings.
	DOF2_SetInt(file, "Deaths",PlayerInfo[playerid][pDeaths]);
	DOF2_SetInt(file, "Money",PlayerInfo[playerid][pMoney]);
	DOF2_SetInt(file, "AdminLevel",PlayerInfo[playerid][pAdmin]);
	return 1;
}

public OnPlayerSpawn(playerid)
{
	GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
	if(PlayerInfo[playerid][pGender] == 0)
	{
	    ShowPlayerDialog(playerid,DIALOG_SELECT_GENDER,DIALOG_STYLE_MSGBOX,"Gender Selection","Male","Female");
	}
	return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
	PlayerInfo[killerid][pKills]++;
	PlayerInfo[playerid][pDeaths]++;
	return 1;
}

public OnVehicleSpawn(vehicleid)
{
	return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
	return 1;
}

public OnPlayerText(playerid, text[])
{
	return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
	if (strcmp("/mycommand", cmdtext, true, 10) == 0)
	{
		// Do something here
		return 1;
	}
	return 0;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
	return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
	return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
	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(playerid, objectid)
{
	return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
	return 1;
}

public OnVehicleMod(playerid, vehicleid, componentid)
{
	return 1;
}

public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
	return 1;
}

public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
	return 1;
}

public OnPlayerSelectedMenuRow(playerid, row)
{
	return 1;
}

public OnPlayerExitedMenu(playerid)
{
	return 1;
}

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
	return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
	return 1;
}


public OnPlayerUpdate(playerid)
{
	return 1;
}

public OnPlayerStreamIn(playerid, forplayerid)
{
	return 1;
}

public OnPlayerStreamOut(playerid, forplayerid)
{
	return 1;
}

public OnVehicleStreamIn(vehicleid, forplayerid)
{
	return 1;
}

public OnVehicleStreamOut(vehicleid, forplayerid)
{
	return 1;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
	return 1;
}
Untested.
I have some problems. Please help me
Код:
C:\Users\HOME\Desktop\bita\filterscripts\dof2.pwn(110) : error 017: undefined symbol "DIALOG_GENDER_SELECTION"
C:\Users\HOME\Desktop\bita\filterscripts\dof2.pwn(114) : warning 215: expression has no effect
C:\Users\HOME\Desktop\bita\filterscripts\dof2.pwn(119) : warning 215: expression has no effect
C:\Users\HOME\Desktop\bita\filterscripts\dof2.pwn(142) : error 017: undefined symbol "DIALOG_SELECT_GENDER"
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


2 Errors.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)