Playerinfo
#1

Hi all!

I got a question about my PlayerInfo. I want to make a job system, but i don't know how to store it in the userfile.
If I make a new variable in the PlayerInfo enum that is called pJob, it don't give any errors. But when I try to store it in the userfile at my registration form. It gives an error.

Now is my question: Can you store text in a user file, or only integers?

Here is my code if you need it:

Код:
#include <a_samp>
#include <dini>
#include <dudb>
#pragma unused ret_memcpy

#define COLOR_GREY 0xAFAFAFAA
#define COLOR_ACTIVEBORDER 0xB4B4B4FF
#define COLOR_ACTIVECAPTION 0x99B4D1FF
#define COLOR_ACTIVECAPTIONTEXT 0x000000FF
#define COLOR_ALICEBLUE 0xF0F8FFFF
#define COLOR_ANTIQUEWHITE 0xFAEBD7FF
#define COLOR_APPWORKSPACE 0xABABABFF
#define COLOR_AQUA 0x00FFFFFF
#define COLOR_AQUAMARINE 0x7FFFD4FF
#define COLOR_AZURE 0xF0FFFFFF
#define COLOR_BEIGE 0xF5F5DCFF
#define COLOR_BISQUE 0xFFE4C4FF
#define COLOR_BLACK 0x000000FF
#define COLOR_BLANCHEDALMOND 0xFFEBCDFF
#define COLOR_BLUE 0x0000FFFF
#define COLOR_BLUEVIOLET 0x8A2BE2FF
#define COLOR_BROWN 0xA52A2AFF
#define COLOR_BURLYWOOD 0xDEB887FF
#define COLOR_BUTTONFACE 0xF0F0F0FF
#define COLOR_BUTTONHIGHLIGHT 0xFFFFFFFF
#define COLOR_BUTTONSHADOW 0xA0A0A0FF
#define COLOR_CADETBLUE 0x5F9EA0FF
#define COLOR_CHARTREUSE 0x7FFF00FF
#define COLOR_CHOCOLATE 0xD2691EFF
#define COLOR_CONTROL 0xF0F0F0FF
#define COLOR_CONTROLDARK 0xA0A0A0FF
#define COLOR_CONTROLDARKDARK 0x696969FF
#define COLOR_CONTROLLIGHT 0xE3E3E3FF
#define COLOR_CONTROLLIGHTLIGHT 0xFFFFFFFF
#define COLOR_CONTROLTEXT 0x000000FF
#define COLOR_CORAL 0xFF7F50FF
#define COLOR_CORNFLOWERBLUE 0x6495EDFF
#define COLOR_CORNSILK 0xFFF8DCFF
#define COLOR_CRIMSON 0xDC143CFF
#define COLOR_CYAN 0x00FFFFFF
#define COLOR_DARKBLUE 0x00008BFF
#define COLOR_DARKCYAN 0x008B8BFF
#define COLOR_DARKGOLDENROD 0xB8860BFF
#define COLOR_DARKGRAY 0xA9A9A9FF
#define COLOR_DARKGREEN 0x006400FF
#define COLOR_DARKKHAKI 0xBDB76BFF
#define COLOR_DARKMAGENTA 0x8B008BFF
#define COLOR_DARKOLIVEGREEN 0x556B2FFF
#define COLOR_DARKORANGE 0xFF8C00FF
#define COLOR_DARKORCHID 0x9932CCFF
#define COLOR_DARKRED 0x8B0000FF
#define COLOR_DARKSALMON 0xE9967AFF
#define COLOR_DARKSEAGREEN 0x8FBC8BFF
#define COLOR_DARKSLATEBLUE 0x483D8BFF
#define COLOR_DARKSLATEGRAY 0x2F4F4FFF
#define COLOR_DARKTURQUOISE 0x00CED1FF
#define COLOR_DARKVIOLET 0x9400D3FF
#define COLOR_DEEPPINK 0xFF1493FF
#define COLOR_DEEPSKYBLUE 0x00BFFFFF
#define COLOR_DESKTOP 0x000000FF
#define COLOR_DIMGRAY 0x696969FF
#define COLOR_DODGERBLUE 0x1E90FFFF
#define COLOR_FIREBRICK 0xB22222FF
#define COLOR_FLORALWHITE 0xFFFAF0FF
#define COLOR_FORESTGREEN 0x228B22FF
#define COLOR_FUCHSIA 0xFF00FFFF
#define COLOR_GAINSBORO 0xDCDCDCFF
#define COLOR_GHOSTWHITE 0xF8F8FFFF
#define COLOR_GOLD 0xFFD700FF
#define COLOR_GOLDENROD 0xDAA520FF
#define COLOR_GRADIENTACTIVECAPTION 0xB9D1EAFF
#define COLOR_GRADIENTINACTIVECAPTION 0xD7E4F2FF
#define COLOR_GRAY 0x808080FF
#define COLOR_GRAYTEXT 0x808080FF
#define COLOR_GREEN 0x008000FF
#define COLOR_GREENYELLOW 0xADFF2FFF
#define COLOR_HIGHLIGHT 0x3399FFFF
#define COLOR_HIGHLIGHTTEXT 0xFFFFFFFF
#define COLOR_HONEYDEW 0xF0FFF0FF
#define COLOR_HOTPINK 0xFF69B4FF
#define COLOR_HOTTRACK 0x0066CCFF
#define COLOR_INACTIVEBORDER 0xF4F7FCFF
#define COLOR_INACTIVECAPTION 0xBFCDDBFF
#define COLOR_INACTIVECAPTIONTEXT 0x434E54FF
#define COLOR_INDIANRED 0xCD5C5CFF
#define COLOR_INDIGO 0x4B0082FF
#define COLOR_INFO 0xFFFFE1FF
#define COLOR_INFOTEXT 0x000000FF
#define COLOR_IVORY 0xFFFFF0FF
#define COLOR_KHAKI 0xF0E68CFF
#define COLOR_LAVENDER 0xE6E6FAFF
#define COLOR_LAVENDERBLUSH 0xFFF0F5FF
#define COLOR_LAWNGREEN 0x7CFC00FF
#define COLOR_LEMONCHIFFON 0xFFFACDFF
#define COLOR_LIGHTBLUE 0xADD8E6FF
#define COLOR_LIGHTCORAL 0xF08080FF
#define COLOR_LIGHTCYAN 0xE0FFFFFF
#define COLOR_LIGHTGOLDENRODYELLOW 0xFAFAD2FF
#define COLOR_LIGHTGRAY 0xD3D3D3FF
#define COLOR_LIGHTGREEN 0x90EE90FF
#define COLOR_LIGHTPINK 0xFFB6C1FF
#define COLOR_LIGHTSALMON 0xFFA07AFF
#define COLOR_LIGHTSEAGREEN 0x20B2AAFF
#define COLOR_LIGHTSKYBLUE 0x87CEFAFF
#define COLOR_LIGHTSLATEGRAY 0x778899FF
#define COLOR_LIGHTSTEELBLUE 0xB0C4DEFF
#define COLOR_LIGHTYELLOW 0xFFFFE0FF
#define COLOR_LIME 0x00FF00FF
#define COLOR_LIMEGREEN 0x32CD32FF
#define COLOR_LINEN 0xFAF0E6FF
#define COLOR_MAGENTA 0xFF00FFFF
#define COLOR_MAROON 0x800000FF
#define COLOR_MEDIUMAQUAMARINE 0x66CDAAFF
#define COLOR_MEDIUMBLUE 0x0000CDFF
#define COLOR_MEDIUMORCHID 0xBA55D3FF
#define COLOR_MEDIUMPURPLE 0x9370DBFF
#define COLOR_MEDIUMSEAGREEN 0x3CB371FF
#define COLOR_MEDIUMSLATEBLUE 0x7B68EEFF
#define COLOR_MEDIUMSPRINGGREEN 0x00FA9AFF
#define COLOR_MEDIUMTURQUOISE 0x48D1CCFF
#define COLOR_MEDIUMVIOLETRED 0xC71585FF
#define COLOR_MENU 0xF0F0F0FF
#define COLOR_MENUBAR 0xF0F0F0FF
#define COLOR_MENUHIGHLIGHT 0x3399FFFF
#define COLOR_MENUTEXT 0x000000FF
#define COLOR_MIDNIGHTBLUE 0x191970FF
#define COLOR_MINTCREAM 0xF5FFFAFF
#define COLOR_MISTYROSE 0xFFE4E1FF
#define COLOR_MOCCASIN 0xFFE4B5FF
#define COLOR_NAVAJOWHITE 0xFFDEADFF
#define COLOR_NAVY 0x000080FF
#define COLOR_OLDLACE 0xFDF5E6FF
#define COLOR_OLIVE 0x808000FF
#define COLOR_OLIVEDRAB 0x6B8E23FF
#define COLOR_ORANGE 0xFFA500FF
#define COLOR_ORANGERED 0xFF4500FF
#define COLOR_ORCHID 0xDA70D6FF
#define COLOR_PALEGOLDENROD 0xEEE8AAFF
#define COLOR_PALEGREEN 0x98FB98FF
#define COLOR_PALETURQUOISE 0xAFEEEEFF
#define COLOR_PALEVIOLETRED 0xDB7093FF
#define COLOR_PAPAYAWHIP 0xFFEFD5FF
#define COLOR_PEACHPUFF 0xFFDAB9FF
#define COLOR_PERU 0xCD853FFF
#define COLOR_PINK 0xFFC0CBFF
#define COLOR_PLUM 0xDDA0DDFF
#define COLOR_POWDERBLUE 0xB0E0E6FF
#define COLOR_PURPLE 0x800080FF
#define COLOR_RED 0xFF0000FF
#define COLOR_ROSYBROWN 0xBC8F8FFF
#define COLOR_ROYALBLUE 0x4169E1FF
#define COLOR_SADDLEBROWN 0x8B4513FF
#define COLOR_SALMON 0xFA8072FF
#define COLOR_SANDYBROWN 0xF4A460FF
#define COLOR_SCROLLBAR 0xC8C8C8FF
#define COLOR_SEAGREEN 0x2E8B57FF
#define COLOR_SEASHELL 0xFFF5EEFF
#define COLOR_SIENNA 0xA0522DFF
#define COLOR_SILVER 0xC0C0C0FF
#define COLOR_SKYBLUE 0x87CEEBFF
#define COLOR_SLATEBLUE 0x6A5ACDFF
#define COLOR_SLATEGRAY 0x708090FF
#define COLOR_SNOW 0xFFFAFAFF
#define COLOR_SPRINGGREEN 0x00FF7FFF
#define COLOR_STEELBLUE 0x4682B4FF
#define COLOR_TAN 0xD2B48CFF
#define COLOR_TEAL 0x008080FF
#define COLOR_THISTLE 0xD8BFD8FF
#define COLOR_TOMATO 0xFF6347FF
#define COLOR_TRANSPARENT 0xFFFFFF00
#define COLOR_TURQUOISE 0x40E0D0FF
#define COLOR_VIOLET 0xEE82EEFF
#define COLOR_WHEAT 0xF5DEB3FF
#define COLOR_WHITE 0xFFFFFFFF
#define COLOR_WHITESMOKE 0xF5F5F5FF
#define COLOR_WINDOW 0xFFFFFFFF
#define COLOR_WINDOWFRAME 0x646464FF
#define COLOR_WINDOWTEXT 0x000000FF
#define COLOR_YELLOW 0xFFFF00FF
#define COLOR_YELLOWGREEN 0x9ACD32FF
#define STEALTH_ORANGE 0xFF880000
#define STEALTH_OLIVE 0x66660000
#define STEALTH_GREEN 0x33DD1100
#define STEALTH_PINK 0xFF22EE00
#define STEALTH_BLUE 0x0077BB00

#define SERVER_USER_FILE "users/%s.ini"

new Float:x;
new Float:y;
new Float:z;
new Float:a;

enum pInfo
{
	pCash,
	pJob,
}
new PlayerInfo[MAX_PLAYERS][pInfo];
new gPlayerLogged[MAX_PLAYERS];

main()
{
}

public OnGameModeInit()
{
	DisableInteriorEnterExits();
	SetGameModeText("Roleplay");
	AddPlayerClass(0, 2398.354736, 110.890426, 28.441642, 180, 0, 0, 0, 0, 0, 0);
	
	AddStaticVehicleEx(422, 2402.731445, 105.518257, 27.092361, 0, random(100), random(100), 60);
	AddStaticVehicleEx(421, 2406.731445, 105.518257, 27.092361, 0, random(100), random(100), 60);
	AddStaticVehicleEx(509, 2397.682373, 102.456092, 26.615926, 270, random(100), random(100), 60);
	AddStaticVehicleEx(439, 2371.247558, -12.423617, 27.739408, 90, random(100), random(100), 60);
	AddStaticVehicleEx(566, 2409.227050, 11.284191, 26.380496, 90, random(100), random(100), 60);
	AddStaticVehicleEx(404, 2409.910888, 63.917804, 27.839368, 0, random(100), random(100), 60);
	AddStaticVehicleEx(462, 2384.549316, 69.395835, 25.994604, 180, random(100), random(100), 60);
	
	CreatePickup(1274, 1, 2334.478271, 75.030899, 26.484069, -1);
	return 1;
}

public OnGameModeExit()
{
	return 1;
}

public OnPlayerRequestClass(playerid, classid)
{
	SetPlayerPos(playerid, 2398.354736, 110.890426, 28.441642);
	SetPlayerCameraPos(playerid, 2398.354736, 106.890426, 30.441642);
	SetPlayerCameraLookAt(playerid, 2398.354736, 110.890426, 28.441642);
	SetPlayerFacingAngle(playerid, 180);
	return 1;
}

public OnPlayerConnect(playerid)
{
	gPlayerLogged[playerid] = 0;
	new name[MAX_PLAYER_NAME], file[256];
	GetPlayerName(playerid, name, sizeof(name));
	format(file, sizeof(file), SERVER_USER_FILE, name);
	if(!dini_Exists(file))
	{
	    ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Register", "Please register in order to play.\nPlease fill in a password.", "Register", "Cancel");
	}
	if(fexist(file))
	{
	    ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Login", "Please login in order to play", "Login", "Cancel");
	}
	return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
	new name[MAX_PLAYER_NAME], file[256];
	GetPlayerName(playerid, name, sizeof(name));
	format(file, sizeof(file), SERVER_USER_FILE, name);
	if(gPlayerLogged[playerid] == 1)
	{
	    PlayerInfo[playerid][pCash] = GetPlayerMoney(playerid);
	    dini_IntSet(file, "Money", PlayerInfo[playerid][pCash]);
	    dini_IntSet(file, "Job", PlayerInfo[playerid][pJob]);
	}
	gPlayerLogged[playerid] = 0;
	return 1;
}

public OnPlayerSpawn(playerid)
{
	return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
	GameTextForPlayer(playerid, "~w~Wasted",3000, 2);
	return 1;
}

public OnVehicleSpawn(vehicleid)
{
	return 1;
}

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

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

public OnPlayerCommandText(playerid, cmdtext[])
{
	GetPlayerPos(playerid, x, y, z);
 	GetPlayerFacingAngle(playerid, a);
	if(strcmp("/mycommand", cmdtext, true, 10) == 0)
	{
		// Do something here
		return 1;
	}
	
	if(strcmp("/position", cmdtext, true, 10) == 0)
	{
	    new string[64];
	    format(string, sizeof(string), "X: %f Y: %f Z: %f A: %f", x, y, z, a);
		SendClientMessage(playerid, COLOR_RED, string);
		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 OnRconLoginAttempt(ip[], password[], success)
{
	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 OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	if(dialogid == 1)
	{
	    new name[MAX_PLAYER_NAME], file[256], string[128];
	    GetPlayerName(playerid, name, sizeof(name));
	    format(file, sizeof(file), SERVER_USER_FILE, name);
	    if(response)
	    {
	        if(strlen(inputtext))
	        {
	            dini_Create(file);
	            dini_IntSet(file, "Password", udb_hash(inputtext));
	            dini_IntSet(file, "Money", PlayerInfo[playerid][pCash] = 50);
	            dini_IntSet(file, "Job", PlayerInfo[playerid][pJob] = none);
	            format(string, 128, "[SYSTEM] You succesfully registered the nickname %s with password %s. You have been auto logged in.", name, inputtext);
	            SendClientMessage(playerid, COLOR_YELLOW, string);
		    	GivePlayerMoney(playerid, dini_Int(file, "Money"));
		    	PlayerInfo[playerid][pJob] = dini_Int(file, "Job");
	            gPlayerLogged[playerid] = 1;
			}
			else
			{
			    ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Register", "Please register in order to play.\nPlease fill in a password.", "Register", "Cancel");
			}
		}
		else
		{
		    Kick(playerid);
		}
	}
	
	if(dialogid == 2)
	{
	    new name[MAX_PLAYER_NAME], file[256];
	    GetPlayerName(playerid, name, sizeof(name));
	    format(file, sizeof(file), SERVER_USER_FILE, name);
	    if(response)
	    {
	        if(strlen(inputtext))
	        {
	            new tmp;
	            tmp = dini_Int(file, "Password");
	            if(udb_hash(inputtext) != tmp)
	            {
	                SendClientMessage(playerid, COLOR_RED, "Wrong password.");
	                ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Login", "Please login in order to play", "Login", "Cancel");
				}
				else
				{
				    gPlayerLogged[playerid] = 1;
				    GivePlayerMoney(playerid, dini_Int(file, "Money"));
				    PlayerInfo[playerid][pJob] = dini_Int(file, "Job");
				    SendClientMessage(playerid, COLOR_YELLOW, "[SYSTEM] Succesfully logged in.");
				}
			}
			else
			{
			    ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Login", "Please login in order to play", "Login", "Cancel");
			}
		}
		else
		{
		    Kick(playerid);
		}
	}
	return 1;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
	return 1;
}
And here is the error:

Код:
F:\Games\GTA San Andreas\server\gamemodes\roleplay.pwn(455) : error 017: undefined symbol "none"
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


1 Error.
Thanks already!
Reply
#2

pawn Код:
dini_IntSet(file, "Job", PlayerInfo[playerid][pJob] = none);
to
pawn Код:
dini_IntSet(file, "Job", PlayerInfo[playerid][pJob] = 0);
Reply
#3

I know that, but how do I remind all the numbers if I want to make more jobs.

If I got like 20 jobs for example, how do I know what job is wich number?
Reply
#4

try this:

pawn Код:
PlayerInfo[playerid][pJob] = dini_Get(file,"job");
Reply
#5

Ok, but how do I know what job it is? I can't give it names.
Reply
#6

simple:
pawn Код:
//
    //put this in your Public onplayercommandtext if he did not have this
    new cmd[256];
    cmd = strtok(cmdtext, idx);
    //command:
    if(strcmp(cmd, "/jobs", true) == 0)
    {
        new jobs2[128];
        new string[128];
        if(PlayerInfo[playerid][pJob] == 1) { format(jobs2, sizeof(jobs2), "JobName1"); }
        else if(PlayerInfo[playerid][pJob] == 2) { format(jobs2, sizeof(jobs2), "JobName2"); }
        else if(PlayerInfo[playerid][pJob] == 3) { format(jobs2, sizeof(jobs2), "JobName3"); }
        else if(PlayerInfo[playerid][pJob] == 4) { format(jobs2, sizeof(jobs2), "JobName4"); }
        else if(PlayerInfo[playerid][pJob] == 5) { format(jobs2, sizeof(jobs2), "JobName5"); }
        format(string, sizeof(string), "Your Job: %s",jobs2);
        SendClientMessage(playerid, 0xB4B5B7FF, string);
        return 1;
    }
*Change the JobName1,JobName2,JobName3,JobName4 and JobName5 to the job names.
Reply
#7

Thx! I'm using it.
This thread is solved!
Reply
#8

change the tropic name to [solved]Playerinfo
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)