Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <sscanf>
- #include <zcmd>
- #include <dudb>
- #include <dini>
- #pragma unused ret_memcpy
- //Files
- #define USER_FILE "Accounts\\%s.ini"
- //Colors
- #define COLOR_YELLOW 0xFFFF00AA
- #define COLOR_RED 0xFF0000AA
- #define COLOR_WHITE 0xFFFFFFFF
- #define COLOR_REPORT 0xFFCC66AA
- #define COLOR_GRAY 0x999999AA
- #define COLOR_LIGHTBLUE 0x33CCFFAA
- //Variables
- new PlayerMuted[MAX_PLAYERS];
- public OnFilterScriptInit()
- {
- print("\n--------------------------------------------");
- print(" Login/Admin System By austin070 Loaded");
- print("--------------------------------------------\n");
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- new file[128];
- format(file, sizeof(file), USER_FILE, GetPName(playerid));
- if(dini_Int(file, "Banned")== 1) {
- SendClientMessage(playerid, COLOR_RED, "You are BANNED from this server.");
- }
- if(fexist(file)) {
- ShowLogin(playerid);
- }else {
- ShowRegister(playerid);
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- new Float:X, Float:Y, Float:Z;
- new file[128]; format(file, 128, USER_FILE, GetPName(playerid));
- if(fexist(file)) {
- GetPlayerPos(playerid, X, Y, Z);
- dini_FloatSet(file, "LastX", X);
- dini_FloatSet(file, "LastY", Y);
- dini_FloatSet(file, "LastZ", Z);
- dini_IntSet(file, "Cash", GetPlayerMoney(playerid));
- }
- return 1;
- }
- public OnPlayerUpdate(playerid)
- {
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- new file[128];
- format(file, sizeof(file), USER_FILE, GetPName(playerid));
- if(fexist(file)) {
- SetPlayerPos(playerid, dini_Float(file, "LastX"),dini_Float(file, "LastY"),dini_Float(file, "LastZ"));
- SetCameraBehindPlayer(playerid);
- GivePlayerMoney(playerid, dini_Int(file, "Cash"));
- }
- return 1;
- }
- public OnRconLoginAttempt(ip[], password[],success)
- {
- if(success)
- {
- new eyep[16];
- for(new i=0; i<MAX_PLAYERS; i++)
- {
- GetPlayerIp(i, eyep, sizeof(eyep));
- if(strcmp(ip, eyep, true) == 0)
- {
- SetAdminLevel(i, 5);
- }
- }
- }
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- switch(dialogid)
- {
- case 1:
- {
- if(!response) return Kick(playerid);
- new file[128];
- format(file, 128, USER_FILE, GetPName(playerid));
- if(!strlen(inputtext)) return ShowLogin(playerid);
- if(udb_hash(inputtext) !=dini_Int(file, "Password")) {
- ShowLogin(playerid);
- SendClientMessage(playerid, COLOR_RED, "You have entered an incorrect password.");
- return ShowLogin(playerid);
- }
- SendClientMessage(playerid, COLOR_YELLOW, "You have successfully logged in!");
- SetPlayerColor(playerid, COLOR_WHITE);
- }
- case 2:
- {
- if(!response) return Kick(playerid);
- new file[128];
- format(file, 128, USER_FILE, GetPName(playerid));
- if(!strlen(inputtext)) return ShowRegister(playerid);
- dini_Create(file);
- dini_Set(file, "Name", GetPName(playerid));
- dini_IntSet(file, "Password", udb_hash(inputtext));
- dini_IntSet(file, "LastInt", 0);
- dini_IntSet(file, "AdminLevel", 0);
- SendClientMessage(playerid, COLOR_YELLOW, "You have successfully registered and have logged in!");
- SetPlayerColor(playerid, COLOR_WHITE);
- }
- }
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- if(PlayerMuted[playerid] == 1) {
- SendClientMessage(playerid, COLOR_RED, "You are muted!");
- return 0;
- }
- return 1;
- }
- ShowLogin(playerid)
- {
- ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Login", "Please type your password below to log in.", "Log In", "Leave");
- return 1;
- }
- ShowRegister(playerid)
- {
- ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Register", "Please type in a password to register your account", "Register", "Leave");
- return 1;
- }
- GetPName(playerid)
- {
- new PlayerName[MAX_PLAYER_NAME];
- GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
- return PlayerName;
- }
- GetAdminLevel(playerid)
- {
- new file[128]; format(file, 128, USER_FILE, GetPName(playerid));
- return dini_Int(file, "AdminLevel");
- }
- stock SetAdminLevel(playerid, level)
- {
- new file[128];
- format(file, sizeof(file), USER_FILE, GetPName(playerid));
- return dini_IntSet(file, "AdminLevel", level);
- }
- /* ADMIN SYSTEM
- LEVELS GO FROM 1-5
- */
- CMD:report(playerid, params[])
- {
- new str[50];
- if(sscanf(params, "s[50]", str)== 0) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /report [text]");
- SendClientMessage(playerid, COLOR_YELLOW, "Your report has been sent to any online admins.");
- for(new i=0; i<MAX_PLAYERS; i++)
- {
- if(GetAdminLevel(i)>= 1 || IsPlayerAdmin(i))
- {
- format(str, sizeof(str), "[REPORT] %s: %s", GetPName(playerid), params);
- SendClientMessage(i, COLOR_REPORT, str);
- }
- }
- return 1;
- }
- CMD:ahelp(playerid, params[])
- {
- if(GetAdminLevel(playerid) >=1 || IsPlayerAdmin(playerid))
- {
- SendClientMessage(playerid, COLOR_WHITE, "LEVEL 1");
- SendClientMessage(playerid, COLOR_GRAY, "/respawncar /goto /gethere /apm /repair /freeze /unfreeze /mute /unmute");
- }
- if(GetAdminLevel(playerid) >=2 || IsPlayerAdmin(playerid))
- {
- SendClientMessage(playerid, COLOR_WHITE, "LEVEL 2");
- SendClientMessage(playerid, COLOR_GRAY, "/disarm /respawnallcars /veh /kick /givemoney");
- }
- if(GetAdminLevel(playerid) >=3 || IsPlayerAdmin(playerid))
- {
- SendClientMessage(playerid, COLOR_WHITE, "LEVEL 3");
- SendClientMessage(playerid, COLOR_GRAY, "/ban /akill");
- }
- if(GetAdminLevel(playerid) >=4 || IsPlayerAdmin(playerid))
- {
- SendClientMessage(playerid, COLOR_WHITE, "LEVEL 4");
- SendClientMessage(playerid, COLOR_GRAY, "/sethp");
- }
- if(GetAdminLevel(playerid) >=5 || IsPlayerAdmin(playerid))
- {
- SendClientMessage(playerid, COLOR_WHITE, "LEVEL 5");
- SendClientMessage(playerid, COLOR_GRAY, "/adminlevel /restart");
- }
- return 1;
- }
- //LEVEL 1
- CMD:spectate(playerid, params[])
- {
- new giveplayerid, str[128];
- if(GetAdminLevel(playerid) >=1) {
- if(sscanf(params, "u", giveplayerid)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /spectate [playerid]");
- PlayerSpectatePlayer(playerid, giveplayerid);
- format(str, 128, "You are now spectating %s.", GetPName(giveplayerid));
- }
- return 1;
- }
- CMD:respawncar(playerid, params[])
- {
- new vid;
- if(GetAdminLevel(playerid) >= 1) {
- if(sscanf(params, "i", vid)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /respawncar [VIN]");
- new bool:unwanted[MAX_VEHICLES];
- for(new player=0; player<MAX_PLAYERS; player++)
- {
- if(IsPlayerInAnyVehicle(player)) { unwanted[GetPlayerVehicleID(player)]=true; }
- }
- for(new i = 1; i <MAX_VEHICLES; i++)
- {
- if(!unwanted[i]) SetVehicleToRespawn(i);
- }
- }
- return 1;
- }
- CMD:goto(playerid, params[])
- {
- if(GetAdminLevel(playerid) >= 1) {
- new Float:x, Float:y, Float:z, Float:a, giveplayerid;
- if(sscanf(params, "u", giveplayerid)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /goto [playerid]");
- if(!IsPlayerConnected(giveplayerid)) return 1;
- GetPlayerPos(giveplayerid, x, y, z);
- GetPlayerFacingAngle(giveplayerid, a);
- SetPlayerPos(playerid, x-1, y-1, z);
- SetPlayerFacingAngle(playerid, a);
- }
- return 1;
- }
- CMD:gethere(playerid, params[])
- {
- if(GetAdminLevel(playerid) >= 1) {
- new Float:x, Float:y, Float:z, Float:a, giveplayerid;
- if(sscanf(params, "u", giveplayerid)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /gethere [playerid]");
- if(!IsPlayerConnected(giveplayerid)) return 1;
- GetPlayerPos(playerid, x, y, z);
- GetPlayerFacingAngle(playerid, a);
- SetPlayerPos(giveplayerid, x-1, y-1, z);
- SetPlayerFacingAngle(giveplayerid, a);
- }
- return 1;
- }
- CMD:apm(playerid, params[])
- {
- if(GetAdminLevel(playerid) >= 1) {
- new str1[128],str[128], giveplayerid;
- if(sscanf(params, "us[50]", giveplayerid, str)== 0) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /apm [playerid] [text]");
- if(!IsPlayerConnected(giveplayerid)) return 1;
- format(str1, sizeof(str1), "PM from Administration: %s", params[2]);
- format(str, sizeof(str), "(ADMININFO) {FFFF00}Your admin PM was sent to %i", strval(params));
- SendClientMessage(giveplayerid, COLOR_REPORT, str1);
- SendClientMessage(playerid, COLOR_WHITE, str);
- }
- return 1;
- }
- CMD:repair(playerid, params[])
- {
- if(GetAdminLevel(playerid) >= 1) {
- if(IsPlayerInAnyVehicle(playerid)) {
- SetVehicleHealth(GetPlayerVehicleID(playerid), 1000);
- RepairVehicle(GetPlayerVehicleID(playerid));
- SendClientMessage(playerid, COLOR_YELLOW, "You have repaired your vehicle.");
- }
- }
- return 1;
- }
- CMD:freeze(playerid, params[])
- {
- new giveplayerid, str[128];
- if(GetAdminLevel(playerid) >=1 || IsPlayerAdmin(playerid)) {
- if(sscanf(params, "u", giveplayerid)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /freeze [playerid]");
- if(!IsPlayerConnected(giveplayerid)) return 1;
- format(str, 128, "You have frozen %s.", GetPName(giveplayerid));
- SendClientMessage(playerid, COLOR_LIGHTBLUE, str);
- SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, "You have been frozen by an administrator.");
- TogglePlayerControllable(giveplayerid, 0);
- }
- return 1;
- }
- CMD:unfreeze(playerid, params[])
- {
- new giveplayerid, str[128];
- if(GetAdminLevel(playerid) >=1 || IsPlayerAdmin(playerid)) {
- if(sscanf(params, "u", giveplayerid)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /unfreeze [playerid]");
- if(!IsPlayerConnected(giveplayerid)) return 1;
- format(str, 128, "You have unfrozen %s.", GetPName(giveplayerid));
- SendClientMessage(playerid, COLOR_LIGHTBLUE, str);
- SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, "You have been unfrozen by an administrator.");
- TogglePlayerControllable(giveplayerid, 1);
- }
- return 1;
- }
- CMD:mute(playerid, params[])
- {
- new giveplayerid, str[128];
- if(GetAdminLevel(playerid) >=1 || IsPlayerAdmin(playerid)) {
- if(sscanf(params, "u", giveplayerid)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /mute [playerid]");
- if(!IsPlayerConnected(giveplayerid)) return 1;
- if(PlayerMuted[giveplayerid] == 0) {
- PlayerMuted[giveplayerid] = 1;
- format(str, 128, "You have muted %s.", GetPName(giveplayerid));
- SendClientMessage(playerid, COLOR_LIGHTBLUE, str);
- SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, "You have been muted by an administrator.");
- }else {
- SendClientMessage(playerid, COLOR_RED, "Player is already muted!");
- }
- }
- return 1;
- }
- CMD:unmute(playerid, params[])
- {
- new giveplayerid, str[128];
- if(GetAdminLevel(playerid) >=1 || IsPlayerAdmin(playerid)) {
- if(sscanf(params, "u", giveplayerid)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /unmute [playerid]");
- if(!IsPlayerConnected(giveplayerid)) return 1;
- if(PlayerMuted[giveplayerid] == 1) {
- PlayerMuted[giveplayerid] = 0;
- format(str, 128, "You have unmuted %s.", GetPName(giveplayerid));
- SendClientMessage(playerid, COLOR_LIGHTBLUE, str);
- SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, "You have been unmuted by an administrator.");
- }else {
- SendClientMessage(playerid, COLOR_RED, "Player is not muted!");
- }
- }
- return 1;
- }
- CMD:a(playerid, params[])
- {
- new str[50];
- if(GetAdminLevel(playerid) >=1 || IsPlayerAdmin(playerid)) {
- if(sscanf(params, "s[50]", str)== 0) SendClientMessage(playerid, COLOR_WHITE, "USAGE: /a [announcement]");
- SendClientMessageToAll(COLOR_RED, params);
- }
- return 1;
- }
- //LEVEL 2
- CMD:disarm(playerid, params[])
- {
- new giveplayerid, str[128];
- if(GetAdminLevel(playerid) >=2 || IsPlayerAdmin(playerid)) {
- if(sscanf(params, "u", giveplayerid)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /disarm [playerid]");
- if(!IsPlayerConnected(giveplayerid)) return 1;
- format(str, 128, "You have disarmed %s.", GetPName(giveplayerid));
- SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, "Your weapons have been reset by an administrator.");
- ResetPlayerWeapons(giveplayerid);
- }
- return 1;
- }
- CMD:respawnallcars(playerid, params[])
- {
- if(GetAdminLevel(playerid) >= 2) {
- new bool:unwanted[MAX_VEHICLES];
- for(new player=0; player<MAX_PLAYERS; player++)
- {
- if(IsPlayerInAnyVehicle(player)) { unwanted[GetPlayerVehicleID(player)]=true; }
- }
- for(new v = 1; v <= MAX_VEHICLES; v++)
- {
- if(!unwanted[v]) SetVehicleToRespawn(v);
- }
- }
- return 1;
- }
- CMD:veh(playerid, params[])
- {
- if(GetAdminLevel(playerid) >= 2) {
- new car;
- if(IsPlayerInAnyVehicle(playerid)) return 1;
- if(sscanf(params, "i", car)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /veh [vehid]");
- if(strval(params) >611 || strval(params) <400) return SendClientMessage(playerid, COLOR_RED, "Invalid model id!");
- new Float:x, Float:y, Float:z, Float:a;
- GetPlayerPos(playerid, x,y,z);
- GetPlayerFacingAngle(playerid, a);
- car = CreateVehicle(strval(params), x, y, z,a, -1, -1, 60);
- PutPlayerInVehicle(playerid, car, 0);
- }
- return 1;
- }
- CMD:kick(playerid, params[])
- {
- new giveplayerid;
- if(GetAdminLevel(playerid) >=2 || IsPlayerAdmin(playerid)) {
- if(sscanf(params, "u", giveplayerid)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /kick [playerid]");
- if(!IsPlayerConnected(giveplayerid)) return 1;
- new str[128], str2[128];
- format(str, 128, "You have kicked %s from the server.", GetPName(giveplayerid));
- format(str2, 128, "You have been kicked from the server by %s.", GetPName(playerid));
- SendClientMessage(playerid, COLOR_RED, str);
- SendClientMessage(giveplayerid, COLOR_RED, str2);
- Kick(giveplayerid);
- }
- return 1;
- }
- CMD:givemoney(playerid, params[])
- {
- if(GetAdminLevel(playerid) >= 2) {
- new giveplayerid, money;
- if(sscanf(params, "ui", giveplayerid, money)) SendClientMessage(playerid, COLOR_WHITE, "USAGE: /givemoney [playerid] [amount]");
- if(!IsPlayerConnected(giveplayerid)) return 1;
- GivePlayerMoney(playerid, money);
- }
- return 1;
- }
- //LEVEL 3
- CMD:akill(playerid, params[])
- {
- new giveplayerid, str[128];
- if(GetAdminLevel(playerid >=3)) {
- if(sscanf(params, "u", giveplayerid)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /akill [playerid]");
- if(!IsPlayerConnected(giveplayerid)) return 1;
- SetPlayerHealth(giveplayerid, 0);
- format(str, 128, "You have admin-killed %s.", GetPName(giveplayerid));
- SendClientMessage(playerid, COLOR_LIGHTBLUE, str);
- SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, "You have been killed by an administrator.");
- }
- return 1;
- }
- CMD:ban(playerid, params[])
- {
- if(GetAdminLevel(playerid) >= 3) {
- new reason[50], giveplayerid, sendername[24], year, month, day, date[128], str[128], str2[128], str3[128], PlayerName[24], file[128];
- if(sscanf(params, "us", giveplayerid, reason)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /ban [playerid] [reason]");
- if(!IsPlayerConnected(giveplayerid)) return 1;
- getdate(year, month, day);
- format(date, sizeof(date), "Date: %02d/%02d/%d", month, day, year);
- GetPlayerName(playerid, sendername, 20);
- GetPlayerName(giveplayerid, PlayerName, sizeof(PlayerName));
- format(file, 128, USER_FILE, PlayerName);
- dini_IntSet(file, "Banned", 1);
- dini_Set(file, "BannedReason", reason);
- dini_Set(file, "BannedBy", sendername);
- dini_Set(file, "DateBanned", date);
- format(str, 128, "You have banned %s. Reason: %s.",PlayerName, reason);
- format(str2, 128, "You have been banned from this server. Reason: %s", reason);
- format(str3, 128, "Banned by: %s", sendername);
- SendClientMessage(playerid, COLOR_RED, str);
- SendClientMessage(giveplayerid, COLOR_RED, str2);
- SendClientMessage(giveplayerid, COLOR_RED, str3);
- SendClientMessage(giveplayerid, COLOR_RED, date);
- SendClientMessage(giveplayerid, COLOR_RED, "Make a ban appeal via the forums.");
- Kick(giveplayerid);
- }
- return 1;
- }
- //LEVEL 4
- CMD:sethp(playerid, params[])
- {
- new Float:health, giveplayerid, str[128], str2[128];
- if(GetAdminLevel(playerid) >=4 || IsPlayerAdmin(playerid)) {
- if(sscanf(params, "ud", giveplayerid, health)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /sethp [playerid] [health]");
- if(!IsPlayerConnected(giveplayerid)) return 1;
- SetPlayerHealth(giveplayerid, health);
- format(str, 128, "You have set the health of %s to %d.", GetPName(giveplayerid), health);
- format(str2, 128, "Your health has been set to %d by an administrator.", health);
- SendClientMessage(playerid, COLOR_LIGHTBLUE, str);
- SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, str2);
- }
- return 1;
- }
- //LEVEL 5
- CMD:restart(playerid, params[])
- {
- if(GetAdminLevel(playerid) >=5) {
- SendRconCommand("gmx");
- }
- return 1;
- }
- CMD:adminlevel(playerid, params[])
- {
- new giveplayerid, level, str[128], str2[128];
- if(GetAdminLevel(playerid) >= 5) {
- new file[128]; format(file, 128, USER_FILE, GetPName(giveplayerid));
- if(sscanf(params, "ud", giveplayerid, level)) return SendClientMessage(playerid, COLOR_WHITE, "USAGE: /adminlevel [playerid] [level 1-5]");
- if(!IsPlayerConnected(giveplayerid)) return 1;
- if(0 > strval(params[2]) > 5) return SendClientMessage(playerid, COLOR_RED, "Invalid admin level! (1-5)");
- dini_IntSet(file, "AdminLevel", level);
- format(str, 128, "You have set the admin level of %s to %d!", GetPName(giveplayerid), level);
- format(str2, 128, "%s has set your admin level to %d!", GetPName(playerid), level);
- SendClientMessage(playerid,COLOR_LIGHTBLUE, str);
- SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, str2);
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment