How to hash the passwords
#1

I want the password to be hidden when typing it.
Код:
/*
														________________________________________
														
														Basic Roleplay :: Red County :: Aprezt
														________________________________________

	Map:
	>> Red County
	Scripter(s):
	>> Aprezt
	Script Version:
	>> U1
	
	Thanks to Kush'is. Y_INI Tutorial :)
*/

/* Server Includes */
#include <a_samp>
#include <streamer>
#include <zcmd>
#include <foreach>
#include <sscanf2>
#include <YSI\y_ini>

/* Server Colors */
#define COLOR_PURPLE    0xC2A2DAAA
#define COLOR_GRAD2  	0xBFC0C2FF
#define COLOR_GRAD1 	0xB4B5B7FF
#define COLOR_GRAD2 	0xBFC0C2FF
#define COLOR_GREY 		0xAFAFAFAA
#define COLOR_GRAD3 	0xCBCCCEFF
#define COLOR_LIGHTBLUE 0x006FDD96
#define COLOR_GRAD4 	0xD8D8D8FF
#define COLOR_FADE 		0xC8C8C8C8
#define COLOR_FADE2 	0xC8C8C8C8
#define COLOR_FADE3 	0xAAAAAAAA
#define COLOR_FADE4 	0x8C8C8C8C
#define COLOR_YELLOW 	0xDABB3E00
#define COLOR_FADE5 	0x6E6E6E6E
#define COLOR_GRAD5 	0xE3E3E3FF
#define COLOR_FADE1 	0xE6E6E6E6
#define COLOR_GRAD6 	0xF0F0F0FF
#define TEAM_HIT_COLOR 	0xFFFFFF00

/* Server Defines */
#define PATH "Accounts/%s.ini"
#define SECONDS(%1) ((%1)*(1000))
#define ALTCOMMAND:%1->%2;           \
COMMAND:%1(playerid, params[])   \
return cmd_%2(playerid, params);
#define function%0(%1) forward%0(%1); public%0(%1)

/* SERVER SIDE CASH */
#define GivePlayerCash(%0,%1) SetPVarInt(%0,"Money",GetPlayerCash(%0)+%1),GivePlayerMoney(%0,%1)
#define ResetPlayerCash(%0) SetPVarInt(%0,"Money",0), ResetPlayerMoney(%0)
#define GetPlayerCash(%0) GetPVarInt(%0,"Money")

/* DIALOGS */
#define DIALOG_REGISTER   1
#define DIALOG_LOGIN      2
#define	DIALOG_AGE        3
#define DIALOG_SEX        4

/* ENUMS */
enum pInfo
{
    pPass,
    pCash,
    pAdmin,
    pSex,
    pAge,
   	Float:pPos_x,
	Float:pPos_y,
	Float:pPos_z,
	pSkin,
	pTeam,
	pAccent
}
new PlayerInfo[MAX_PLAYERS][pInfo];
/* <--------------------------------------------> */

main()
{
    print(" ");
    print(" ");
    print("- Basic Roleplay GameMode Loaded -");
    print(" ");
    print(" Script: Aprezt");
}

new
	noooc = 0,
	Logged[ MAX_PLAYERS ],
	gOoc[ MAX_PLAYERS ]
;

public OnPlayerConnect(playerid)
{
    gOoc[ playerid ] = 0; Logged[ playerid ] = 0;
    // Reset stats!
    PlayerInfo[ playerid ][ pCash ] = 0;
    PlayerInfo[ playerid ][ pAdmin ] = 0;
    PlayerInfo[ playerid ][ pSex ] = 0;
    PlayerInfo[ playerid ][ pAge ] = 0;
    PlayerInfo[ playerid ][ pPos_x ] = 0.0;
    PlayerInfo[ playerid ][ pPos_y ] = 0.0;
    PlayerInfo[ playerid ][ pPos_z ] = 0.0;
    PlayerInfo[ playerid ][ pSkin ] = 0;
    PlayerInfo[ playerid ][ pTeam ] = 0;
    PlayerInfo[ playerid ][ pAccent ] = 0;

    if(fexist(UserPath(playerid)))
    {
        INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
        ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,"Basic Roleplay","Type your password below to login:","Login","Quit");
    }
    else
    {
        ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,"Basic Roleplay","Type your password below to register a new account:","Register","Quit");
    }
    return 1;
}

public OnGameModeInit()
{
	/* <-------------------------------------------> */
	AddPlayerClass(21,-2382.0168,-582.0441,132.1172,125.2504,0,0,0,0,0,0);
	AddPlayerClass(59,-2382.0168,-582.0441,132.1172,125.2504,0,0,0,0,0,0);
	/* <-------------------------------------------> */
	ShowPlayerMarkers(0);
	ShowNameTags(1);
	DisableInteriorEnterExits();
	EnableStuntBonusForAll(0);
	SetNameTagDrawDistance(10.0);
	// =========== TIMERS ===========
	SetTimer("MoneyUpdate",1000,1);
	SetTimer("SaveAccounts", SECONDS(13), 1);
	return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
   	if(dialogid == DIALOG_AGE)
	{
	    if(!response)
       	{
         	Kick(playerid);
       	}
       	else
       	{
		    if(strlen(inputtext))
		    {
		        new age = strval(inputtext);
		        if(age > 100 || age < 16)
				{
                    ShowPlayerDialog(playerid, DIALOG_AGE, DIALOG_STYLE_INPUT, "- Age -","How old are you??\n{FF0000}(( 16 - 100 ))","Answer","Quit");
				}
				else
				{
					PlayerInfo[playerid][pAge] = age;
					new
						string[ 64 ]
					;
					format(string, sizeof(string), "INFO: You're {3BB9FF}%d years old.",age);
					SendClientMessage(playerid, -1, string);
     				GivePlayerCash(playerid, 600);
					SaveAccountStats(playerid);
					SpawnPlayer(playerid);
				}
			}
			else
			{
			    return 0;
			}
		}
	}
	if(dialogid == DIALOG_SEX)
	{
        if(response)
		{
  			PlayerInfo[playerid][pSex] = 1;
			SendClientMessage(playerid, -1, "INFO: You are {3BB9FF}male.");
			SetPlayerSkin(playerid, 60);
			PlayerInfo[playerid][pSkin] = 60;
			ShowPlayerDialog(playerid, DIALOG_AGE, DIALOG_STYLE_INPUT, "- Age -","How old are you??\n{FF0000}(( 16 - 100 ))","Answer","Quit");
		}
		else
		{
			PlayerInfo[playerid][pSex] = 2;
			SendClientMessage(playerid, -1, "INFO: You are {3BB9FF}female.");
			SetPlayerSkin(playerid, 233);
			PlayerInfo[playerid][pSkin] = 233;
			ShowPlayerDialog(playerid, DIALOG_AGE, DIALOG_STYLE_INPUT, "- Age -","How old are you??\n{FF0000}(( 16 - 100 ))","Answer","Quit");
		}
	}
    switch( dialogid )
    {
        case DIALOG_REGISTER:
        {
            if (!response) return Kick(playerid);
            if(response)
            {
                if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Registering...","You have entered an invalid password.\nType your password below to register a new account.","Register","Quit");
                new INI:File = INI_Open(UserPath(playerid));
                INI_SetTag(File,"data");
                INI_WriteInt(File,"Password",udb_hash(inputtext));
                INI_WriteInt(File,"Cash",0);
                INI_WriteInt(File,"Admin",0);
                INI_WriteInt(File,"Sex",0);
                INI_WriteInt(File,"Age",0);
                INI_WriteFloat(File,"Pos_x",0);
    			INI_WriteFloat(File,"Pos_y",0);
    			INI_WriteFloat(File,"Pos_z",0);
   			 	INI_WriteInt(File,"Skin",0);
   			 	INI_WriteInt(File,"Team",0);
   			 	INI_WriteInt(File,"Accent",0);
                INI_Close(File);
                
                ShowPlayerDialog(playerid, DIALOG_SEX, DIALOG_STYLE_MSGBOX, "- Sex -","What gender are you?","Male","Female");
            }
        }
        case DIALOG_LOGIN:
        {
            if ( !response ) return Kick ( playerid );
            if( response )
            {
                if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
                {
                    INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
                    new
                        tmp2[ 256 ],
                        playername2[ MAX_PLAYER_NAME ]
					;
	    			GetPlayerName(playerid, playername2, sizeof(playername2));
   					format(tmp2, sizeof(tmp2), "~w~Welcome ~n~~g~%s", playername2);
					GameTextForPlayer(playerid, tmp2, 5000, 1);
					SetTimerEx("UnsetFirstSpawn", 5000, false, "i", playerid);
                    GivePlayerCash(playerid, PlayerInfo[playerid][pCash]);
   					SetSpawnInfo(playerid, PlayerInfo[playerid][pTeam], PlayerInfo[playerid][pSkin], PlayerInfo[playerid][pPos_x], PlayerInfo[playerid][pPos_y], PlayerInfo[playerid][pPos_z], 1.0, -1, -1, -1, -1, -1, -1);
				}
                else
                {
                    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,"Login","You have entered an incorrect password.\nType your password below to login.","Login","Quit");
                }
                return 1;
            }
        }
    }
    return 1;
}

public OnPlayerSpawn(playerid)
{
   	if(IsPlayerConnected(playerid))
	{
    	SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
    	SetPlayerToTeamColor(playerid);
    	Logged[playerid] = 1;
	}
	if(PlayerInfo[playerid][pPos_x] == 0 && PlayerInfo[playerid][pPos_y] == 0)
    {
        SetPlayerPos(playerid, 1271.3654,181.0756,19.4705);
        Logged[playerid] = 1;
    }
    else
	{
		SetPlayerPos(playerid, PlayerInfo[playerid][pPos_x], PlayerInfo[playerid][pPos_y], PlayerInfo[playerid][pPos_z]);
		Logged[playerid] = 1;
 	}
    return 1;
}

public OnPlayerText(playerid, text[])
{
	new
		realchat = 1,
		string[ 128 ]
	;
	if(IsPlayerConnected(playerid))
	{
		if(realchat)
		{
			if(PlayerInfo[playerid][pAccent] == 0)
			{
				format(string, sizeof(string), "%s says: %s", RPName(playerid), text);
				ProxDetector(20.0, playerid, string,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
			}
			else
			{
				new
					accent[20]
				;
				switch(PlayerInfo[playerid][pAccent])
				{
					case 1: accent = "Russian";
					case 2: accent = "Italian";
					case 3: accent = "Germany";
					case 4: accent = "Japanese";
					case 5: accent = "French";
					case 6: accent = "Spain";
					case 7: accent = "China";
					case 8: accent = "British";
				}
				format(string, sizeof(string), "%s says: [%s Accent] %s", RPName(playerid), accent, text);
				ProxDetector(20.0, playerid, string,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
			}
			return 0;
		}
	}
	return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
	SaveAccountStats(playerid);
    return 1;
}

function SetPlayerToTeamColor(playerid)
{
	if(IsPlayerConnected(playerid))
	{
	    SetPlayerColor(playerid,TEAM_HIT_COLOR);
	}
}

function OOCOff(color,const string[])
{
	foreach (Player,i)
	{
		if(!gOoc{i})
		{
			SendClientMessage(i, color, string);
		}
	}
}

function SaveAccountStats(playerid)
{
	if(Logged[playerid] == 1)
	{
	new
		INI:File = INI_Open(UserPath(playerid))
	;
    INI_SetTag(File,"data");
    
   	PlayerInfo[playerid][pSkin] = GetPlayerSkin(playerid);
    PlayerInfo[playerid][pCash] = GetPlayerCash(playerid);
   	new
	   	Float:x,
	    Float:y,
		Float:z
	;
	GetPlayerPos(playerid,x,y,z);
	PlayerInfo[playerid][pPos_x] = x;
	PlayerInfo[playerid][pPos_y] = y;
	PlayerInfo[playerid][pPos_z] = z;
	
    INI_WriteInt(File,"Cash",PlayerInfo[playerid][pCash]);
    INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
    INI_WriteInt(File,"Sex",PlayerInfo[playerid][pSex]);
    INI_WriteInt(File,"Age",PlayerInfo[playerid][pAge]);
    INI_WriteFloat(File,"Pos_x",PlayerInfo[playerid][pPos_x]);
    INI_WriteFloat(File,"Pos_y",PlayerInfo[playerid][pPos_y]);
    INI_WriteFloat(File,"Pos_z",PlayerInfo[playerid][pPos_z]);
    INI_WriteInt(File,"Skin",PlayerInfo[playerid][pSkin]);
    INI_WriteInt(File,"Team",PlayerInfo[playerid][pTeam]);
    INI_WriteInt(File,"Accent",PlayerInfo[playerid][pAccent]);
    
    INI_Close(File);
    }
    return 1;
}

function SaveAccounts()
{
    for(new i = 0; i < MAX_PLAYERS; i++)
	{
		if(IsPlayerConnected(i))
		{
			SaveAccountStats(i);
  		}
	}
}

function GameModeExitFunc()
{
 	GameModeExit();
	return 1;
}

function 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("Sex",PlayerInfo[playerid][pSex]);
    INI_Int("Age",PlayerInfo[playerid][pAge]);
    INI_Float("Pos_x",PlayerInfo[playerid][pPos_x]);
    INI_Float("Pos_y",PlayerInfo[playerid][pPos_y]);
    INI_Float("Pos_z",PlayerInfo[playerid][pPos_z]);
    INI_Int("Skin",PlayerInfo[playerid][pSkin]);
    INI_Int("Team",PlayerInfo[playerid][pTeam]);
    INI_Int("Accent",PlayerInfo[playerid][pAccent]);
    return 1;
}

function MoneyUpdate(playerid)
{
	if(GetPlayerCash(playerid) < GetPlayerMoney(playerid))
	{
		foreach(Player, i)
		{
  			new const old_money = GetPlayerCash(playerid);
    		ResetPlayerCash(playerid), GivePlayerCash(playerid, old_money);
   		}
	}
 	return 1;
}

function ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5)
{
	if(IsPlayerConnected(playerid))
	{
		new Float:posx, Float:posy, Float:posz;
		new BigEar[MAX_PLAYERS];
		new Float:oldposx, Float:oldposy, Float:oldposz;
		new Float:tempposx, Float:tempposy, Float:tempposz;
		GetPlayerPos(playerid, oldposx, oldposy, oldposz);
		for(new i = 0; i < MAX_PLAYERS; i++)
		{
			if(IsPlayerConnected(i) && (GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i)))
			{
				if(!BigEar[i])
				{
					GetPlayerPos(i, posx, posy, posz);
					tempposx = (oldposx -posx);
					tempposy = (oldposy -posy);
					tempposz = (oldposz -posz);
					if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16)))
					{
						SendClientMessage(i, col1, string);
					}
					else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8)))
					{
						SendClientMessage(i, col2, string);
					}
					else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4)))
					{
						SendClientMessage(i, col3, string);
					}
					else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2)))
					{
						SendClientMessage(i, col4, string);
					}
					else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
					{
						SendClientMessage(i, col5, string);
					}
				}
				else
				{
					SendClientMessage(i, col1, string);
				}
			}
		}
	}
	return 1;
}

// ============ STOCKS ============
stock SendAdminMessage( color, string[] )
{
    foreach (Player,i)
    {
		if( PlayerInfo[ i] [ pAdmin ] > 1 )
		{
		    SendClientMessage( i, color, string );
		}
    }
}

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=0; n<length; n++)
    {
       s1 = (s1 + buf[n]) % 65521;
       s2 = (s2 + s1)     % 65521;
    }
    return (s2 << 16) + s1;
}

stock RPName(playerid)
{
    new string[24];
    GetPlayerName(playerid,string,24);
    new str[24];
    strmid(str,string,0,strlen(string),24);
    for(new i = 0; i < MAX_PLAYER_NAME; i++)
    {
        if (str[i] == '_') str[i] = ' ';
    }
    return str;
}
// =================================

/* LOGS */

function OOCLog(string[])
{
	new
		entry[ 128 ],
		year,
		month,
		day,
		hour,
		minute,
		second
	;
	getdate(year, month, day);
	gettime(hour, minute, second);

	format(entry, sizeof(entry), "%s | (%d-%d-%d) (%d:%d:%d)\n",string, day, month, year, hour, minute, second);
	new File:hFile;
	hFile = fopen("Basic/logs/OOCLog.log", io_append);
	fwrite(hFile, entry);
	fclose(hFile);
}

/* COMMANDS */

CMD:stats(playerid, params[])
{
	if(IsPlayerConnected(playerid))
	{
		new
			string[ 128 ],
			Age = PlayerInfo[ playerid ][ pAge ],
			Money = GetPlayerCash( playerid )
		;

		new Sex[20];
		if(PlayerInfo[ playerid ][ pSex ] == 1) { Sex = "Male"; }
		else if(PlayerInfo[ playerid ][ pSex ] == 2) { Sex = "Female"; }

		SendClientMessage(playerid, COLOR_LIGHTBLUE, "------------------------------------------------------------------------");
		format(string, sizeof(string), "Name: %s | Money: %d | Age: %d | Sex: %s", RPName(playerid), Money, Age, Sex);
		SendClientMessage(playerid, COLOR_GRAD2, string);
	}
	return 1;
}

CMD:ahelp(playerid, params[])
{
 	if(PlayerInfo[playerid][pAdmin] == 0) return SendClientMessage(playerid, -1,"You are not admin!");
 	SendClientMessage(playerid, -1, "____________________________________________________________________");
	if(PlayerInfo[playerid][pAdmin] >= 1)
	{
        SendClientMessage(playerid, COLOR_FADE, "Level 1: No commands yet!");
    }
   	if(PlayerInfo[playerid][pAdmin] >= 2)
	{
        SendClientMessage(playerid, COLOR_FADE, "Level 2: No commands yet!");
    }
   	if(PlayerInfo[playerid][pAdmin] >= 3)
	{
        SendClientMessage(playerid, COLOR_FADE, "Level 3: No commands yet!");
    }
   	if(PlayerInfo[playerid][pAdmin] >= 4)
	{
        SendClientMessage(playerid, COLOR_FADE, "Level 4: No commands yet!");
    }
   	if(PlayerInfo[playerid][pAdmin] >= 5)
	{
        SendClientMessage(playerid, COLOR_FADE, "Level 5: No commands yet!");
    }
   	if(PlayerInfo[playerid][pAdmin] >= 6)
	{
        SendClientMessage(playerid, COLOR_FADE, "Level 6: No commands yet!");
    }
   	if(PlayerInfo[playerid][pAdmin] >= 1337)
	{
        SendClientMessage(playerid, COLOR_FADE, "Level 1337: /givemoney -");
    }
 	SendClientMessage(playerid, -1, "____________________________________________________________________");
 	return 1;
}

CMD:help(playerid, params[])
{
    SendClientMessage(playerid, COLOR_LIGHTBLUE,"------------------------------------------------------------");
    SendClientMessage(playerid, COLOR_GRAD2,"/do - /me - /accent - /ooc - /b");
    SendClientMessage(playerid, COLOR_LIGHTBLUE,"------------------------------------------------------------");
    return 1;
}

ALTCOMMAND:o->ooc;
CMD:ooc(playerid, params[])
{
	new
		string[ 186 ]
	;
	if((noooc) && PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, COLOR_GRAD2, "OOC Chat closed by administrator!");
	if(isnull(params)) return SendClientMessage(playerid, COLOR_GRAD2, "USAGE: {FFFFFF}(/o)oc [ooc chat]");

	format(string, sizeof(string), "(( OOC: %s: %s ))", RPName(playerid), params);
	OOCOff(0xCCFFFF00, string);
	OOCLog(string);
	printf("%s", string);
	return 1;
}

CMD:b(playerid, params[])
{
	new
		string[ 128 ]
	;
	if(isnull(params)) return SendClientMessage(playerid, COLOR_GRAD2, "USAGE: {FFFFFF} /b [ooc chat]");
	format(string, sizeof(string), "(( OOC: %s[%i]: %s ))", RPName( playerid ), playerid, params);
	printf("%s", string);
	ProxDetector(30.0, playerid, string, COLOR_FADE,COLOR_FADE,COLOR_FADE,COLOR_FADE,COLOR_FADE);
	return 1;
}

CMD:do(playerid, params[])
{
	new
		result[ 128 ],
		string[ 128 ]
 	;
	if(sscanf(params, "s[128]", result)) return SendClientMessage(playerid, COLOR_GRAD2, "USAGE: {FFFFFF}/do [action]");
	format(string, sizeof(string), "* %s (( %s ))", result, RPName(playerid));
	ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
	printf("%s", string);
	return 1;
}

CMD:me(playerid, params[])
{
	new
		result[ 128 ],
		string[ 128 ]
 	;
	if(sscanf(params, "s[128]", result)) return SendClientMessage(playerid, COLOR_GRAD2, "USAGE: {FFFFFF}/do [action]");
	format(string, sizeof(string), "* %s %s", RPName(playerid), result);
	ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
	printf("%s", string);
	return 1;
}

CMD:accent(playerid, params[])
{
	if(isnull(params)) return SendClientMessage(playerid, COLOR_GRAD1, "USAGE: {FFFFFF}/accent [russian | italian | germany | japanese | french | spain | china | british | none]");
	if(!strcmp(params,"russian",true))
	{
		PlayerInfo[playerid][pAccent] = 1;
		SendClientMessage(playerid, COLOR_GRAD1, "Your accent is now Russian!");
	}
	else if(!strcmp(params,"italian",true))
	{
		PlayerInfo[playerid][pAccent] = 2;
		SendClientMessage(playerid, COLOR_GRAD1, "Your accent is now Italian!");
	}
	else if(!strcmp(params,"germany",true))
	{
		PlayerInfo[playerid][pAccent] = 3;
		SendClientMessage(playerid, COLOR_GRAD1, "Your accent is now Germany!");
	}
	else if(!strcmp(params,"japanese",true))
	{
		PlayerInfo[playerid][pAccent] = 4;
		SendClientMessage(playerid, COLOR_GRAD1, "Your accent is now Japanese!");
	}
	else if(!strcmp(params,"french",true))
	{
		PlayerInfo[playerid][pAccent] = 5;
		SendClientMessage(playerid, COLOR_GRAD1, "Your accent is now French!");
	}
	else if(!strcmp(params,"spain",true))
	{
		PlayerInfo[playerid][pAccent] = 6;
		SendClientMessage(playerid, COLOR_GRAD1, "Your accent is now Spain!");
	}
	else if(!strcmp(params,"china",true))
	{
		PlayerInfo[playerid][pAccent] = 7;
		SendClientMessage(playerid, COLOR_GRAD1, "Your accent is now China!");
	}
	else if(!strcmp(params,"british", true))
	{
		PlayerInfo[playerid][pAccent] = 8;
		SendClientMessage(playerid, COLOR_GRAD1, "Your accent is now British!");
	}
	else if(!strcmp(params,"none",true))
	{
		PlayerInfo[playerid][pAccent] = 0;
		SendClientMessage(playerid, COLOR_GRAD1, "You removed the accent!");
	}
	else return SendClientMessage(playerid, COLOR_GREY, "Invalid name accent!");
	return 1;
}

CMD:givemoney(playerid, params[])
{
	new targetid,type,string[128];
	if(sscanf(params, "ui", targetid, type)) return SendClientMessage(playerid, COLOR_GRAD2, "USAGE: {FFFFFF}/givemoney [playerid] [amount]");
	if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, COLOR_GREY, "* This player is not in server..");
	if(type < 0 || type > 99999999) return SendClientMessage(playerid, COLOR_GREY, "* Cannot go under 0 or above 99999999.");
	if(PlayerInfo[playerid][pAdmin] < 1337) return SendClientMessage(playerid, COLOR_GRAD1, "You are not ADMIN!");

	GivePlayerCash(targetid, type);
	format(string, sizeof(string),"AdmCmd: %s give player %s %d SAK", RPName( playerid ), RPName( targetid ), type);
	SendAdminMessage(COLOR_YELLOW,string);
	return 1;
}
Reply
#2

This will help you https://sampwiki.blast.hk/wiki/Hash
Reply
#3

I still don't know how to include it in my script Never did it.
Reply
#4

Hash has nothing to do with it. You just need to use "DIALOG_STYLE_PASSWORD" style in the dialogs to hide the password when the player types in the input. More here: https://sampwiki.blast.hk/wiki/Dialog_Styles

As for the script, don't use udb_hash but SHA256_PassHash or Whirlpool + salt.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)