SA-MP Forums Archive
NEED HELP with money save in reg system :( - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+---- Forum: Help Archive (https://sampforum.blast.hk/forumdisplay.php?fid=89)
+---- Thread: NEED HELP with money save in reg system :( (/showthread.php?tid=167746)



NEED HELP with money save in reg system :( - vakhtang - 13.08.2010

Hey again I am using deather`s smthing and it uses dialog system but not with money save Here is code:
Код:
////////////////////////////////////////////////////////////////////////////////
#include <a_samp>
#include <dini>
#include <dudb>
#include <dutils>
#pragma unused strtok
////////////////////////////////////////////////////////////////////////////////
#define COLOR_MESSAGE 0x00C7FFAA
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_BLUE 0x0000BBAA
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_RED 0xFF0000FF
#define COLOR_YELLOW 0xFFFF0088
#define COLOR_ORANGE 0xFF9900AA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_LIGHTRED 0xFF6347AA
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOUR_LIGHTBLUE 0x33CCFFAA
#define COLOR_LIGHTGREEN 0x9ACD32AA
#define COLOR_GREEN2 0x33FF33AA
#define COLOR_ERROR 0xFF0000AA
#define COLOR_MSG 0x00FFFFFF
#define COLOR_PINK 0xFF66FFAA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_GREEN1 0x33AA33AA
#define COLOR_BROWN 0xA52A2AAA
#define COLOR_PURPLE 0x800080AA
#define COLOR_BLACK 0x000000AA
#define COLOR_GREEN1 0x33AA33AA
////////////////////////////////////////////////////////////////////////////////
#define REGISTERDIALOG 500
#define LOGINDIALOG 501
#define STATS 502
#define AUTOLOGIN 503
////////////////////////////////////////////////////////////////////////////////
#define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
////////////////////////////////////////////////////////////////////////////////
enum PlayerData
{
	Name[MAX_PLAYER_NAME],
	IP[16],
	Registered,
	Password,
	LoggedIn,
	Autologin,
	Kills,
 	Deaths,
};
////////////////////////////////////////////////////////////////////////////////
new PlayerInfo[MAX_PLAYERS][PlayerData];
////////////////////////////////////////////////////////////////////////////////
public OnFilterScriptInit()
{
	return 1;
}
////////////////////////////////////////////////////////////////////////////////
public OnPlayerConnect(playerid)
{
    new playername[MAX_PLAYER_NAME];
    new string1[64];
    GetPlayerName(playerid, playername, sizeof(playername));
    format(string1, sizeof(string1), "--%s (ID: %d) has joined the server--", playername, playerid);
    SendClientMessageToAll(COLOR_LIGHTBLUE, string1);

    new file[128];
	format(file, sizeof(file), "register/%s.ini", pName(playerid));

    PlayerInfo[playerid][Name] = playername;
 	PlayerInfo[playerid][IP] = 0;
	PlayerInfo[playerid][Registered] = 0;
	PlayerInfo[playerid][LoggedIn] = 0;
	PlayerInfo[playerid][Autologin] = 0;
	PlayerInfo[playerid][Password] = 0;
	PlayerInfo[playerid][Password] = dini_Int(file,"Password");
    PlayerInfo[playerid][Kills] = dini_Int(file,"Kills");
    PlayerInfo[playerid][Deaths] = dini_Int(file,"Deaths");
    if(userfile(playerid))
	{
		new RegIP_hash;
		RegIP_hash = num_hash(dini_Get(file,"Ip"));
		new playerIp[16];
		GetPlayerIp(playerid,playerIp,sizeof(playerIp));
		new playerIP_hash;
		playerIP_hash = num_hash(playerIp);

		if(PlayerInfo[playerid][Autologin] == 1)
	    {
			if(playerIP_hash == RegIP_hash)
			{
			    Autolog(playerid);
                new autolog[128];
	            ShowPlayerDialog(playerid, AUTOLOGIN, DIALOG_STYLE_MSGBOX,"AutoLogin",autolog,"Ok","Cancel");
			    format(autolog, sizeof(autolog), "Welcome back %s. You have been automatically logged in.", pName(playerid));
			    GivePlayerMoney(playerid, dini_Int(file, "money")-GetPlayerMoney(playerid));
			}
		}
		else
		{
		ShowPlayerDialog(playerid, LOGINDIALOG, DIALOG_STYLE_INPUT, " Login", "Enter your Password to login to your account", "Login", "Cancel");
		new msg2[128];
	 	format(msg2, sizeof(msg2), "Welcome back. Your account is registered. Please Login.");
	    SendClientMessage(playerid, COLOR_LIGHTGREEN, msg2);
  		}
  	}
	else
		{
	    ShowPlayerDialog(playerid, REGISTERDIALOG ,DIALOG_STYLE_INPUT, "Registration", "Please enter a New Password and Register with our server.\n And do remember this password for your future Logins","Register","Cancel");
		new msg3[128];
   	 	format(msg3, sizeof(msg3), "Welcome to our server %s. You are not registered yet. Please reigster before you continue.", pName(playerid));
        SendClientMessage(playerid, COLOR_LIGHTGREEN, msg3);
	}
	return 1;
}
////////////////////////////////////////////////////////////////////////////////
public OnPlayerDisconnect(playerid, reason)
{

    new playerName[MAX_PLAYER_NAME], string[56];
    GetPlayerName(playerid, playerName, sizeof(playerName));
    switch(reason)
    {
        case 0: format(string, sizeof(string), "%s has left the server. (Ping Timeout)", playerName);
        case 1: format(string, sizeof(string), "%s has left the server. (Leaving)", playerName);
        case 2: format(string, sizeof(string), "%s has left the server. (Kicked)", playerName);
    }
    SendClientMessageToAll(COLOR_GREY, string);
	new pfile[256];
	format(pfile,sizeof(pfile),"register/%s.ini", pName(playerid));
	dini_IntSet(pfile,"Kills",PlayerInfo[playerid][Kills]);
	dini_IntSet(pfile,"Deaths",PlayerInfo[playerid][Deaths]);
	return 1;
}
////////////////////////////////////////////////////////////////////////////////
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	new playername[MAX_PLAYERS];
	GetPlayerName(playerid, playername, sizeof(playername));
    if(dialogid == REGISTERDIALOG)
    {
        if(response == 1)
		{
			if(!inputtext[0])
			{
				ShowPlayerDialog(playerid, REGISTERDIALOG ,DIALOG_STYLE_INPUT, " Registration", "Enter the password for your account.","Register","Cancel");
				return 1;
			}

            new pfile[128];
			format(pfile, sizeof(pfile), "register/%s.ini", pName(playerid));

			new Ip[16];
			GetPlayerIp(playerid,Ip,sizeof(Ip));
			new password = num_hash(inputtext);
    		PlayerInfo[playerid][Password] = password;
    		PlayerInfo[playerid][Registered] = 1;
			PlayerInfo[playerid][LoggedIn] = 1;
			dini_Create(pfile);
			dini_IntSet(pfile,"Password",PlayerInfo[playerid][Password]);
			dini_Set(pfile,"Ip",Ip);
   			PlayerInfo[playerid][Kills] = 0;
    		PlayerInfo[playerid][Deaths] = 0;
    		dini_IntSet(pfile,"Kills",0);
			dini_IntSet(pfile,"Deaths",0);
			SendClientMessage(playerid, COLOR_GREY, "Registration Done");
  			SendClientMessage(playerid, COLOR_GREY, "Welcome to the server.");

			new string[256];
			format(string, sizeof(string), "Your New Password is: \'%s\'.", inputtext);
			SendClientMessage(playerid, COLOR_LIGHTGREEN, string);
			}
		if(response == 0)
		{
		    Kick(playerid);
		    new string[256];
			format(string, sizeof(string),"%s hasn't registered and so have been kicked from the server",playername);
			SendClientMessageToAll(COLOR_RED, string);
		}
		}

	if(dialogid == LOGINDIALOG)
    {
        if(response == 1)
		{
            new password = num_hash(inputtext);
	 		if(PlayerInfo[playerid][Password] == password)
			Autolog(playerid);
			SendClientMessage(playerid, COLOR_LIGHTGREEN, "Welcome back to the server. You have successfully been logged in.");
			}
			else
			{
			Kick(playerid);
			new string1[256];
			format(string1, sizeof(string1),"%s hasn't logged in and so have been kicked from the server",playername);
			SendClientMessageToAll(COLOR_RED, string1);
			}
		}
		if(response == 0)
		{
			Kick(playerid);
		    new string1[256];
			format(string1, sizeof(string1),"%s hasn't logged in and so have been kicked from the server",playername);
			SendClientMessageToAll(COLOR_RED, string1);
   		}
		return 1;
}
////////////////////////////////////////////////////////////////////////////////
public OnPlayerDeath(playerid, killerid, reason)
{
	new pname[24], kfile[50], pfile[50], kname[24];
	GetPlayerName(playerid, pname, sizeof(pname));
	GetPlayerName(killerid, kname, sizeof(kname));
 	format(kfile, sizeof(kfile), "register/%s.ini", kname);
 	format(pfile, sizeof(pfile), "register/%s.ini", pname);

	if(killerid == INVALID_PLAYER_ID)
	{
    	SendDeathMessage(INVALID_PLAYER_ID, playerid, reason);
    	PlayerInfo[playerid][Deaths]++;
    	dini_IntSet(pfile, "Deaths", PlayerInfo[playerid][Deaths]);
	}
	else
	{
	    SendDeathMessage(killerid, playerid, reason);
	   	PlayerInfo[killerid][Kills]++;
	   	PlayerInfo[playerid][Deaths]++;
	   	dini_IntSet(pfile, "Deaths", PlayerInfo[playerid][Deaths]);
   		dini_IntSet(pfile, "Kills", PlayerInfo[killerid][Kills]);
	}
	return 1;
}
////////////////////////////////////////////////////////////////////////////////
public OnPlayerClickPlayer(playerid,clickedplayerid,source)
{
	if(clickedplayerid == playerid)
	{
	new statstr[500];
	format(statstr, sizeof(statstr), "Name: %s\nIP: %d\nKills: %d\nDeaths: %d",PlayerInfo[playerid][Name],PlayerInfo[playerid][IP],PlayerInfo[playerid][Kills],PlayerInfo[playerid][Deaths]);
	ShowPlayerDialog(playerid, STATS, DIALOG_STYLE_MSGBOX,"Player Stats", statstr, "Ok", "Cancel");
	}
	return 1;
}
////////////////////////////////////////////////////////////////////////////////
stock pName(playerid)
{
	new name[MAX_PLAYER_NAME];
	GetPlayerName(playerid, name, sizeof(name));
	return name;
}
////////////////////////////////////////////////////////////////////////////////
stock userfile(playerid)
{
	new FilePath[128];
	format(FilePath, sizeof(FilePath), "register/%s.ini", pName(playerid));

	if(dini_Exists(FilePath)) return 1;

	return 0;
}
////////////////////////////////////////////////////////////////////////////////
stock Autolog(playerid)
{
	new file[128];
	format(file, sizeof(file), "register/%s.ini", pName(playerid));

	PlayerInfo[playerid][LoggedIn] = 1;
	PlayerInfo[playerid][Registered] = 1;
 	PlayerInfo[playerid][Kills] = dini_Int(file,"Kills");
    PlayerInfo[playerid][Deaths] = dini_Int(file,"Deaths");
 }
////////////////////////////////////////////////////////////////////////////////



Re: NEED HELP with money save in reg system :( - 0ne - 13.08.2010

Did you even read the thread:

READ THIS BEFORE POSTING! (RULES TO FOLLOW)

Hm?

Well you should have, because there is alot of scripts which saves money, there is tutorials, and there is alot of topics about it.