rendered paste body#define FILTERSCRIPT#include <a_samp>#include <zcmd>#include <YSI/y_ini>#include <sscanf>new pIPcHeck [ 32 ];#define DIALOG_REG 1#define DIALOG_REG_REQ 2#define DIALOG_LOGIN 3#define DIALOG_LOGIN2 4//0.3c Colors, (not by me)#define COL_RED "{F81414}"#define COL_LIGHTBLUE "{00C0FF}"#define COL_LRED "{FFA1A1}"#define COL_GREEN "{6EF83C}"#define COL_GREY "{C3C3C3}"#define COL_YELLOW "{F3FF02}"#define COL_ORANGE "{FFAF00}"#define COL_WHITE "{FFFFFF}"public OnFilterScriptInit(){ print("\n--------------------------------------"); print(" Blank Filterscript by your name here"); print("--------------------------------------\n"); return 1;}public OnFilterScriptExit(){ return 1;}public OnPlayerConnect(playerid){ if ( !INI_Exist( pName( playerid ) ) ) ShowPlayerDialog(playerid, DIALOG_REG, DIALOG_STYLE_INPUT, "Register Request", "{FFFFFF}Please write your desired password.", "Register", ""); else { new filename[13 + MAX_PLAYER_NAME]; format(filename, sizeof(filename), "%s.ini", Encode(pName(playerid))); INI_ParseFile(filename, "checkIP"); new IP[32]; GetPlayerIp(playerid, IP, sizeof(IP)); if(!strcmp(IP, pIPcHeck, true)) { new PlayerFile[13 + MAX_PLAYER_NAME]; format( PlayerFile , sizeof PlayerFile, "%s.ini", Encode( pName( playerid ) ) ); new Pdata[8 + 15]; SetPVarInt( playerid, "Logged", 1 ); format( PlayerFile , sizeof PlayerFile, "%s.ini", Encode( pName( playerid ) ) ); INI_ParseFile( PlayerFile, "LoadUser", false, true, playerid, true, false ); GetPVarString( playerid, "Date", Pdata, 8 + 10 ); SendClientMessage(playerid, -1,"You have auto logged in."); } else ShowPlayerDialog(playerid, DIALOG_LOGIN2, DIALOG_STYLE_INPUT, ""COL_RED"Password",""COL_WHITE"Please write your current "COL_RED"password.","Login",""); } return 1;}public OnPlayerDisconnect(playerid, reason){ if (GetPVarInt(playerid,"Logged") == 1 && INI_Exist(pName(playerid))) { new PlayerFile[ 13 + MAX_PLAYER_NAME + 1]; format( PlayerFile , sizeof PlayerFile, "%s.ini", Encode(pName(playerid))); new INI:PlayerAcc = INI_Open(PlayerFile); INI_WriteInt(PlayerAcc,"MONEYS",GetPlayerMoney(playerid)); INI_WriteInt(PlayerAcc,"SCORE",GetPlayerScore(playerid)); INI_WriteInt(PlayerAcc,"KILLS",GetPVarInt(playerid, "Kills")); INI_WriteInt(PlayerAcc,"DEATHS",GetPVarInt(playerid, "Deaths")); INI_WriteInt(PlayerAcc,"LEVEL",GetPVarInt(playerid, "Level")); INI_Close(PlayerAcc); } SetPVarInt(playerid, "Logged", 0); return 1;}forward ParsePlayerPass(playerid, name[ ], value[ ]);public ParsePlayerPass(playerid, name[ ], value[ ]){ if (!strcmp(name,"PASSWORD")) { SetPVarString(playerid,"pPass",value); }}forward LoadUser(playerid, name[ ], value[ ]);public LoadUser(playerid, name[ ], value[ ]){ if(!strcmp(name, "MONEYS"))SetPVarInt(playerid, "Moneys",strval(value)); if(!strcmp(name, "SCORE"))SetPVarInt(playerid, "Score",strval(value)); if(!strcmp(name, "LEVEL"))SetPVarInt(playerid, "Level",strval(value)); if(!strcmp(name, "KILLS"))SetPVarInt(playerid, "Kills",strval(value)); if(!strcmp(name, "DEATHS"))SetPVarInt(playerid, "Deaths",strval(value));}CMD:register( playerid, params[ ] ){ if (GetPVarInt(playerid, "Logged") == 1) return SendClientMessage(playerid, -1, ""COL_RED"ERROR:{FFFFFF} You are already registered and logged in."); ShowPlayerDialog(playerid, DIALOG_REG, DIALOG_STYLE_INPUT, "{FFFFFF}Registering...", "{FFFFFF}Please write your desired password.", "Register", "Exit"); return 1;}CMD:login( playerid, params[ ] ){ if(GetPVarInt(playerid, "Logged") == 1) return SendClientMessage(playerid, -1, ""COL_RED"ERROR:{FFFFFF} You are already registered and logged in."); ShowPlayerDialog(playerid, DIALOG_LOGIN2, DIALOG_STYLE_INPUT, "{FFFFFF}Login", "{FFFFFF}Please write your current password", "Login", "Kick"); return 1;}public OnPlayerRequestSpawn(playerid){ SetTimerEx("LoadpData", 200, false , "i" ,playerid); //for auto logged in. if (GetPVarInt(playerid,"Logged") == 1 && INI_Exist(pName(playerid))) { new pIP[ 20 ]; GetPlayerIp( playerid, pIP, 20 ); new PlayerFile[ 13 + MAX_PLAYER_NAME + 1]; format( PlayerFile , sizeof PlayerFile, "%s.ini", Encode(pName(playerid))); new INI:PlayerAcc = INI_Open(PlayerFile); INI_WriteString(PlayerAcc,"IP",pIP); INI_Close(PlayerAcc); } return 1;}public OnPlayerDeath(playerid, killerid, reason){ return 1;}public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){ switch(dialogid) { case DIALOG_REG: { if (response) { if(sscanf(inputtext, "s", inputtext[0] || strlen(inputtext[0]) == 0)) return ShowPlayerDialog( playerid, DIALOG_REG, DIALOG_STYLE_INPUT, "{FFFFFF}Password", ""COL_RED"Error!\n\ {FFFFFF}Please write your desired password.\n","Register", "Exit"); if(strlen(inputtext[ 0 ] ) < 3 || strlen(inputtext[0]) > 20) return ShowPlayerDialog(playerid, DIALOG_REG, DIALOG_STYLE_INPUT, "{FFFFFF}Password", ""COL_RED"Error!\n\ {FFFFFF}Please write your desired password.\n\ "COL_RED"#{FFFFFF}Min. 3 Char. Max. 20 Char.", "Register", "Exit"); new PlayerFile[ 13 + MAX_PLAYER_NAME ],pDate[ 8 + 15 ],pYear,pMonth,pDay,pHour,pMinute,pSecond,pIP[ 20 ]; format( PlayerFile , sizeof PlayerFile, "%s.ini", Encode( pName( playerid ) ) ); getdate(pYear, pMonth, pDay ),gettime(pHour, pMinute, pSecond ); GetPlayerIp( playerid, pIP, 20 ); ShowPlayerDialog(playerid, DIALOG_LOGIN2, DIALOG_STYLE_INPUT, "{FFFFFF}Password", "{FFFFFF}Please write your current password.","Login","Quit"); new INI:PlayerAcc = INI_Open( PlayerFile ); INI_WriteString( PlayerAcc, "NAME", pName( playerid ) ); INI_WriteString( PlayerAcc, "IP", pIP ); INI_WriteString( PlayerAcc, "PASSWORD", inputtext ); INI_WriteInt( PlayerAcc, "MONEYS", 5000 ); INI_WriteInt( PlayerAcc, "SCORE", 15 ); INI_WriteInt( PlayerAcc, "KILLS", 0 ); INI_WriteInt( PlayerAcc, "DEATHS", 0 ); INI_WriteInt( PlayerAcc, "LEVEL", 0 ); INI_Close( PlayerAcc ); SetPVarString( playerid, "Date", pDate ); SetPVarInt( playerid, "Logged", 0 ); GivePlayerMoney( playerid, 5000 ); SetPlayerScore( playerid, GetPlayerScore( playerid ) + 15 ); } } case DIALOG_REG_REQ: { if ( response ) cmd_register( playerid, "");//ShowPlayerDialog(playerid, DIALOG_REG, DIALOG_STYLE_INPUT, "Register Request", "{FFFFFF}Please write your desired password.", "Register", "Exit"); if ( !response ) return 0; } case DIALOG_LOGIN: ShowPlayerDialog( playerid, DIALOG_LOGIN2, DIALOG_STYLE_INPUT, "Password","Please write your current password.","Login", "Kick"); case DIALOG_LOGIN2: { if (!response) return Kick(playerid); if (response) { if (strlen(inputtext) == 0) return ShowPlayerDialog(playerid, DIALOG_LOGIN2, DIALOG_STYLE_INPUT, "Password","Error!\n{FFFFFF}Please write your current password.","Login", "Kick"); new PlayerFile[13 + MAX_PLAYER_NAME], Password[20 + 1]; format( PlayerFile , sizeof PlayerFile, "%s.ini", Encode( pName( playerid ) ) ); INI_ParseFile( PlayerFile, "ParsePlayerPass", false, true, playerid ); GetPVarString( playerid, "pPass", Password, sizeof Password ); if (!strcmp (inputtext, Password, false ) ) { new Pdata[8 + 15]; SetPVarInt( playerid, "Logged", 1 ); format( PlayerFile , sizeof PlayerFile, "%s.ini", Encode( pName( playerid ) ) ); INI_ParseFile( PlayerFile, "LoadUser", false, true, playerid, true, false ); GetPVarString( playerid, "Date", Pdata, 8 + 10 ); SendClientMessage(playerid, -1,"You have been Logged in"); } else ShowPlayerDialog(playerid, DIALOG_LOGIN2, DIALOG_STYLE_INPUT, ""COL_RED"Wrong password...", ""COL_RED"Wrong password!\n{FFFFFF}Please try again.", "Login", "Kick"); } } } return 1;}forward checkIP(name[], value[]);public checkIP(name[], value[]){ INI_String("IP", pIPcHeck, sizeof(pIPcHeck)); return 1;}stock INI_Exist(nickname[]){ new tmp[255]; format(tmp,sizeof(tmp),"%s.ini",Encode(nickname)); return fexist(tmp);}stock pName(playerid){ new Name[MAX_PLAYER_NAME]; GetPlayerName(playerid, Name, sizeof(Name)); return Name;}//DracoBluestock Encode(nickname[]){ new tmp[255]; set(tmp,nickname); tmp=strreplace("_","_00",tmp); tmp=strreplace(";","_01",tmp); tmp=strreplace("!","_02",tmp); tmp=strreplace("/","_03",tmp); tmp=strreplace("\\","_04",tmp); tmp=strreplace("[","_05",tmp); tmp=strreplace("]","_06",tmp); tmp=strreplace("?","_07",tmp); tmp=strreplace(".","_08",tmp); tmp=strreplace("*","_09",tmp); tmp=strreplace("<","_10",tmp); tmp=strreplace(">","_11",tmp); tmp=strreplace("{","_12",tmp); tmp=strreplace("}","_13",tmp); tmp=strreplace(" ","_14",tmp); tmp=strreplace("\"","_15",tmp); tmp=strreplace(":","_16",tmp); tmp=strreplace("|","_17",tmp); tmp=strreplace("=","_18",tmp); return tmp;}stock set(dest[],source[]){ new count = strlen(source); new i=0; for (i=0;i<count;i++) { dest[i]=source[i]; } dest[count]=0;}stock strreplace(trg[],newstr[],src[]){ new f=0; new s1[255]; new tmp[255]; format(s1,sizeof(s1),"%s",src); f = strfind(s1,trg); tmp[0]=0; while (f>=0) { strcat(tmp,ret_memcpy(s1, 0, f)); strcat(tmp,newstr); format(s1,sizeof(s1),"%s",ret_memcpy(s1, f+strlen(trg), strlen(s1)-f)); f = strfind(s1,trg); } strcat(tmp,s1); return tmp;}ret_memcpy(source[],index=0,numbytes){ new tmp[255]; new i=0; tmp[0]=0; if (index>=strlen(source)) return tmp; if (numbytes+index>=strlen(source)) numbytes=strlen(source)-index; if (numbytes<=0) return tmp; for (i=index;i<numbytes+index;i++) { tmp[i-index]=source[i]; if (source[i]==0) return tmp; } tmp[numbytes]=0; return tmp;}