All pastes #1034842 Raw Edit

Jemand

public c v1 · immutable
#1034842 ·published 2008-05-31 10:44 UTC
rendered paste body
#include <a_samp>#include <dini>enum SETTINGS_MAIN {    POCKET_MONEY,    JAIL_COMMANDS,    ANNOUNCE_SECONDS,    PASS_MIN,    PASS_MAX}enum PLAYER_MAIN {	PLAYER_NAME[MAX_PLAYER_NAME],	PLAYER_IP[16],	PLAYER_REGGED,	PLAYER_PASS,	PLAYER_LOGGED,	PLAYER_LEVEL,	PLAYER_WIRED,	PLAYER_JAILED}enum COMMANDS_MAIN {    AKILL,    ANNOUNCE,    ARMOURALL,    BAN,    CARHP,    EXPLODE,    FLIP,    GOTO,    GETHERE,    GIVEARMOUR,    GIVEHEALTH,    GIVEWEAPON,    GOD,    HEALALL,    IMITATE,    IP,    KICK,    MAXAMMO,    PING,    SETLEVEL,    SETWANTED,    TBAN,    TIME,    WEATHER}new gCommands[COMMANDS_MAIN];new gPlayerInfo[MAX_PLAYERS][PLAYER_MAIN];new gSettings[SETTINGS_MAIN];#define FILTERSCRIPT#if defined FILTERSCRIPT#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1#define COLOUR_GREEN           0x33AA33AA#define COLOUR_RED             0xAA3333AA#define COLOUR_YELLOW          0xFFFF00AA#define COLOUR_LIGHTBLUE       0x33CCFFAA#define COLOUR_ORANGE          0xFF9900AA#define PlayerFile 	       "AdminScript/Users/%s.ini"#define SettingFile            "AdminScript/Settings/MainSettings.ini"#define CommandFile            "AdminScript/Settings/Commands.ini"public OnFilterScriptInit(){ 	print("\n****************************************");	print("* Admin Filterscript by your name here *");	print("****************************************\n");        if(!fexist(SettingFile))	{		dini_Create(SettingFile);		dini_IntSet(SettingFile, "PocketMoney", 3000);		dini_IntSet(SettingFile, "JailCommands", 0);		dini_IntSet(SettingFile, "AnnounceSeconds", 3);		dini_IntSet(SettingFile, "PassMin", 3);		dini_IntSet(SettingFile, "PassMax", 15);	}	gSettings[POCKET_MONEY] 		= dini_Int(SettingFile, "PocketMoney");	gSettings[JAIL_COMMANDS] 		= dini_Int(SettingFile, "JailCommands");	gSettings[ANNOUNCE_SECONDS] 	        = dini_Int(SettingFile, "AnnounceSeconds");	gSettings[PASS_MIN] 			= dini_Int(SettingFile, "PassMin");	gSettings[PASS_MAX] 			= dini_Int(SettingFile, "PassMax");	if(!fexist(CommandFile))	{		dini_Create(CommandFile);		dini_IntSet(CommandFile, "Akill", 6);		dini_IntSet(CommandFile, "Announce", 5);		dini_IntSet(CommandFile, "Armourall", 3);		dini_IntSet(CommandFile, "Ban", 9);		dini_IntSet(CommandFile, "Carhp", 4);		dini_IntSet(CommandFile, "Explode", 5);		dini_IntSet(CommandFile, "Goto", 4);		dini_IntSet(CommandFile, "Gethere", 5);		dini_IntSet(CommandFile, "Givearmour", 6);		dini_IntSet(CommandFile, "Givehealth", 6);		dini_IntSet(CommandFile, "Giveweapon", 7);		dini_IntSet(CommandFile, "God", 10);		dini_IntSet(CommandFile, "Healall", 7);		dini_IntSet(CommandFile, "Imitate", 8);		dini_IntSet(CommandFile, "Ip", 2);		dini_IntSet(CommandFile, "Kick", 7);		dini_IntSet(CommandFile, "Maxammo", 8);		dini_IntSet(CommandFile, "Ping", 1);		dini_IntSet(CommandFile, "Setlevel", 10);		dini_IntSet(CommandFile, "Setwanted", 6);		dini_IntSet(CommandFile, "Tban", 9);		dini_IntSet(CommandFile, "Time", 3);		dini_IntSet(CommandFile, "Weather", 3);        }	gCommands[AKILL] 			= dini_Int(CommandFile, "Akill");	gCommands[ANNOUNCE] 		        = dini_Int(CommandFile, "Announce");	gCommands[ARMOURALL] 			= dini_Int(CommandFile, "Armourall");	gCommands[BAN] 				= dini_Int(CommandFile, "Ban");	gCommands[CARHP] 			= dini_Int(CommandFile, "Carhp");	gCommands[EXPLODE] 			= dini_Int(CommandFile, "Explode");	gCommands[GOTO] 			= dini_Int(CommandFile, "Goto");	gCommands[GETHERE] 			= dini_Int(CommandFile, "Gethere");	gCommands[GIVEARMOUR] 			= dini_Int(CommandFile, "Givearmour");	gCommands[GIVEHEALTH] 			= dini_Int(CommandFile, "Givehealth");	gCommands[GIVEWEAPON] 			= dini_Int(CommandFile, "Giveweapon");	gCommands[GOD] 				= dini_Int(CommandFile, "God");	gCommands[HEALALL] 			= dini_Int(CommandFile, "Healall");	gCommands[IMITATE] 			= dini_Int(CommandFile, "Imitate");	gCommands[IP] 				= dini_Int(CommandFile, "Ip");	gCommands[KICK] 			= dini_Int(CommandFile, "Kick");	gCommands[MAXAMMO] 			= dini_Int(CommandFile, "Maxammo");	gCommands[SETLEVEL] 			= dini_Int(CommandFile, "Setlevel");	gCommands[SETWANTED] 			= dini_Int(CommandFile, "Setwanted");	gCommands[TBAN] 			= dini_Int(CommandFile, "Tban");	gCommands[TIME] 			= dini_Int(CommandFile, "Time");	gCommands[WEATHER] 			= dini_Int(CommandFile, "Weather"); 	return 1;}    #endifpublic OnPlayerConnect(playerid){ 	new file[100],Name[MAX_PLAYER_NAME],Ip[16]; GetPlayerName(playerid,Name,sizeof(Name)); GetPlayerIp(playerid,Ip,sizeof(Ip)); format(file,sizeof(file),PlayerFile,Name);	if(!dini_Exists(file)) {		dini_Create(file);		dini_Set(file,"Name",Name);		dini_Set(file,"Ip",Ip);		dini_IntSet(file,"Registered",-1);		dini_IntSet(file,"Password",0);		dini_IntSet(file,"Level",0);		dini_IntSet(file,"Wired",0);		dini_IntSet(file,"Jailed",0);		SendClientMessage(playerid,COLOUR_ORANGE,"You're username is not recognized on this server. Please /register to continue.");	}	strcat(gPlayerInfo[playerid][PLAYER_NAME],			dini_Get(file,"Name"));	strcat(gPlayerInfo[playerid][PLAYER_IP],			dini_Get(file,"Ip"));	gPlayerInfo[playerid][PLAYER_REGGED] 			      = dini_Int(file,"Registered");	gPlayerInfo[playerid][PLAYER_PASS]                            = dini_Int(file,"Password");	gPlayerInfo[playerid][PLAYER_LEVEL] 			      = dini_Int(file,"Level");	gPlayerInfo[playerid][PLAYER_WIRED]                           = dini_Int(file,"Wired");	gPlayerInfo[playerid][PLAYER_JAILED] 			      = dini_Int(file,"Jailed");	if(gPlayerInfo[playerid][PLAYER_REGGED] == 0) 	                SendClientMessage(playerid,COLOUR_ORANGE,"You're username is recognised on this server, but you have not registered. Please /register to continue.");	else if(gPlayerInfo[playerid][PLAYER_REGGED] == 1)              SendClientMessage(playerid,COLOUR_ORANGE,"You're username is recognised on this server. Please /login to continue.");        gPlayerInfo[playerid][PLAYER_REGGED]                          = 0;	return 1;}public OnPlayerDisconnect(playerid, reason){	new file[100];        format(file,sizeof(file),PlayerFile,gPlayerInfo[playerid][PLAYER_NAME]);	dini_Set(file,"Name",gPlayerInfo[playerid][PLAYER_NAME]);	dini_Set(file,"Ip",gPlayerInfo[playerid][PLAYER_IP]);	dini_IntSet(file,"Registered",gPlayerInfo[playerid][PLAYER_REGGED]);	dini_IntSet(file,"Password",gPlayerInfo[playerid][PLAYER_PASS]);	dini_IntSet(file,"Level",gPlayerInfo[playerid][PLAYER_LEVEL]);	dini_IntSet(file,"Wired",gPlayerInfo[playerid][PLAYER_WIRED]);	dini_IntSet(file,"Jailed",gPlayerInfo[playerid][PLAYER_JAILED]);	gPlayerInfo[playerid][PLAYER_NAME]   = 0;	gPlayerInfo[playerid][PLAYER_IP]     = 0;	gPlayerInfo[playerid][PLAYER_REGGED] = 0;	gPlayerInfo[playerid][PLAYER_LOGGED] = 0;	gPlayerInfo[playerid][PLAYER_PASS]   = 0;	gPlayerInfo[playerid][PLAYER_LEVEL]  = 0;	gPlayerInfo[playerid][PLAYER_WIRED]  = 0;	gPlayerInfo[playerid][PLAYER_JAILED] = 0;    	return 1;}public OnPlayerCommandText(playerid, cmdtext[]){    dcmd(aregister, 9, cmdtext);    dcmd(alogin, 6, cmdtext);    dcmd(alogout, 7, cmdtext);    dcmd(ainfo,5, cmdtext);    return 0;}dcmd_aregister(playerid, params[]){    if(gPlayerInfo[playerid][PLAYER_REGGED] == 1)	return SendClientMessage(playerid, COLOUR_ORANGE, "ERROR: You have already registered!");    else if(!params[0])	return SendClientMessage(playerid, COLOUR_ORANGE, "USAGE: /register [password]");    /*else if(strlen(params) < gSettings[PASS_MIN] || strlen(params) > gSettings[PASS_MAX])    {	new string[200];        format(string, sizeof(string), "ERROR: Password must be between %d and $d characters long!", gSettings[PASS_MIN], gSettings[PASS_MAX]);	return SendClientMessage(playerid, COLOUR_ORANGE, string);    }*/    else    {	new password = num_hash(params);	gPlayerInfo[playerid][PLAYER_PASS] = password;	gPlayerInfo[playerid][PLAYER_REGGED] = 1;        gPlayerInfo[playerid][PLAYER_LOGGED] = 1;	GetPlayerIp(playerid, gPlayerInfo[playerid][PLAYER_IP], 16);	new string[256]; format(string, sizeof(string), "You have successfully registered your account with the password \'%s\'. You have been automatically logged in.", params);	return SendClientMessage(playerid, COLOUR_LIGHTBLUE, string);    }}dcmd_alogin(playerid, params[]){    if(gPlayerInfo[playerid][PLAYER_REGGED] != 1)	return SendClientMessage(playerid, COLOUR_ORANGE, "ERROR: You must register first to do that! Use /register [password] to register and login.");    else if(gPlayerInfo[playerid][PLAYER_LOGGED] == 1)	return SendClientMessage(playerid, COLOUR_ORANGE, "ERROR: You are already logged-in.");    else if(!params[0])	return SendClientMessage(playerid, COLOUR_ORANGE, "USAGE: /login [password]");    else    {	new password = num_hash(params);	if(gPlayerInfo[playerid][PLAYER_PASS] == password)	{	    gPlayerInfo[playerid][PLAYER_LOGGED] = 1;            GetPlayerIp(playerid, gPlayerInfo[playerid][PLAYER_IP], 16);	    return SendClientMessage(playerid, COLOUR_LIGHTBLUE, "You have successfully logged in to your account.");	}	else	    return SendClientMessage(playerid, COLOUR_ORANGE, "ERROR: Incorrect password.");    }}dcmd_alogout(playerid, params[]){#pragma unused params    if(gPlayerInfo[playerid][PLAYER_REGGED] != 1)	return SendClientMessage(playerid, COLOUR_ORANGE, "ERROR: You must register first to do that! Use /register [password] to register.");    else if(gPlayerInfo[playerid][PLAYER_LOGGED] == 0)	return SendClientMessage(playerid, COLOUR_ORANGE, "ERROR: You are already logged-out.");    else    {	gPlayerInfo[playerid][PLAYER_LOGGED] = 0;	return SendClientMessage(playerid, COLOUR_LIGHTBLUE, "You have successfully logged out of your account.");    }}dcmd_ainfo(playerid, params[]){    if(gPlayerInfo[playerid][PLAYER_LEVEL] > gCommands[AKILL])    {        new string[100];        format(string, sizeof(string), "Level %s Befehle: /arc /info", gCommands[AKILL]);        return SendClientMessage(playerid, COLOUR_ORANGE, string);    }    	else	    return SendClientMessage(playerid, COLOUR_ORANGE, "ERROR: Du bist nicht in der Army");}