24.06.2014, 04:52
Quote:
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; } |
Код:
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.