|
wwA PlayCs
Membru
Membru din: Dum Noi 22, 2015 1:26 pm Mesaje: 301 Localitate: Sibiu
Steam ID: magenkyo17
Skype ID: sound_cstrike
Server Preferat: Respawn.Playcs.ro
|
Am creat un plugin care permite unui singur admin de un singur flag sa aibe acces la comenzi cand sunt si alti admini pe server , adminii cu flagu din cvar-ul unlimited beneficiaza de toate comenzile , orice admin inainte de a folosii functiile din plugin trebuie sa tasteze comanda de activare. PLUGINUL ESTE IN BETA , POSIBIL SA FIE BUG-URI.Nume: Admin Sef Autor: eNd. // skitaila03 Versiune: 0.1.rel Credite: claw Cvaruri: // tag-ul mesajelor // flag cu restrictie // flag fara restrictie Comenzi publice(se tasteaza in joc prin apasarea tastei Y):: // intri/iesi in/din sefie // intri/iesi in/din sefie Module Necesare: Instalare: - Fisierul boss.amxx il puneti in addons/amxmodx/plugins
- Fisierul boss.sma il puneti in addons/amxmodx/scripting
- Intrati in fisierul addons/amxmodx/configs/plugins.ini si adaugati la sfarsitul fisierului:
- | Show code
boss.amxx
SMA Plugin baza: - | Show code
/* Plugin generated by AMXX-Studio Credite: CLAW
*/ #include <amxmodx> #include <amxmisc> #pragma semicolon 1 #define get_bit(%1,%2) (%1 & 1<<(%2&31)) #define set_bit(%1,%2) %1 |= (1<<(%2&31)) #define clear_bit(%1,%2) %1 &= ~(1<<(%2&31))
new const g_Info[][] = { "Admin Sef", "0.1.rel", "eNd.", "skitaila03" }; enum _:g_Cvars { boss_tag, boss_acces_limited, boss_acces_unlimited };
new const cvar_name[g_Cvars][] = { "boss_tag", "boss_acces_limited", "boss_acces_unlimited" };
new const cvar_value[g_Cvars][] = { "[AS]", "b", "a" };
new g_Cvar[g_Cvars]; new g_Boss;
public plugin_precache() { for(new x = 0; x < g_Cvars; x++) g_Cvar[x] = register_cvar(cvar_name[x] , cvar_value[x]); }
public plugin_init() {
register_plugin(g_Info[0], g_Info[1], g_Info[random_num(2,3)] );
register_clcmd("say", "hook_say"); register_clcmd("say_team", "hook_say"); }
public hook_say(id) { static Said[ 192 ]; read_args( Said, sizeof ( Said ) -1 ); if( !Said[ 0 ] ) return 0; remove_quotes( Said );
if(equal( Said, "!as", 5) || equal( Said, "!adminsef", 10) ) { if(get_bit(g_Boss, id)) { clear_bit(g_Boss, id);
if(get_user_flags(id) & read_flags( g_sCvar( boss_acces_unlimited ))) client_print_color(0, print_team_default, "^4%s ^3%s^1 nu mai este admin sef^4 (flag %s)^1.", g_sCvar( boss_tag ), szName(id) ,g_sCvar( boss_acces_unlimited ));
else client_print_color(0, print_team_default, "^4%s ^3%s^1 nu mai este admin sef^1. (flag %s)", g_sCvar( boss_tag ), szName(id) ,g_sCvar( boss_acces_limited ));
return PLUGIN_HANDLED; } if(get_user_flags(id) & read_flags( g_sCvar( boss_acces_unlimited ))) { set_bit(g_Boss, id);
client_print_color(0, print_team_default, "^4%s ^3%s^1 este admin sef^4 (flag %s)^1.", g_sCvar( boss_tag ), szName(id) ,g_sCvar( boss_acces_unlimited ));
return PLUGIN_HANDLED; } else { if(get_user_flags(id) & read_flags( g_sCvar( boss_acces_limited ))) { if(fnGetAdmins() >= 1) { client_print_color(id, print_team_default, "^4%s ^3%s^1 exista deja un^4 admin sef^1.", g_sCvar( boss_tag ), szName(id)); return PLUGIN_HANDLED; } else { set_bit(g_Boss, id); client_print_color(0, print_team_default, "^4%s ^3%s^1 este noul admin sef^4 (flag %s)^1.", g_sCvar( boss_tag ), szName(id) ,g_sCvar( boss_acces_limited )); } } } return PLUGIN_HANDLED; }
return PLUGIN_CONTINUE; }
public plugin_natives() { register_native("h_boss", "native_h_boss"); } public native_h_boss(client) { new id = get_param(1); return get_bit(g_Boss, id); } public client_disconnect(id) { if(get_bit(g_Boss, id)) ResetAdmin(id); } public ResetAdmin(id) { clear_bit(g_Boss, id); } fnGetAdmins() { static iPlayers[32], iNum, i, iPlayer, Admins; Admins = 0; get_players(iPlayers, iNum, "a"); for( i=0; i<iNum; i++ ) { iPlayer = iPlayers[i]; if(get_bit(g_Boss, iPlayer) && !(get_user_flags(iPlayer) & read_flags( g_sCvar( boss_acces_unlimited ) ))) Admins++; } return Admins; } stock szName(id) { new sz_Name[MAX_PLAYERS + 1]; get_user_name(id, sz_Name, charsmax(sz_Name)); return sz_Name; }
stock g_sCvar( cvar ) { new sCvar[ 15 ]; get_pcvar_string( g_Cvar[ cvar ], sCvar, charsmax( sCvar ));
return sCvar; }
Exemplu native - | Show code
#include <amxmodx>
native h_boss(id);
new bool:g_Block = false; public plugin_init() { register_clcmd("say", "hook_say"); register_clcmd("say_team", "hook_say"); }
public hook_say(id) { static Said[ 192 ]; read_args( Said, sizeof ( Said ) -1 ); if( !Said[ 0 ] ) return 0; remove_quotes( Said );
if( (equal( Said, "!q", 5) || equal( Said, "!quit", 10)) && !h_boss(id) ) { client_print(id, print_chat, "%%s0"); return PLUGIN_HANDLED; }
if( (equal( Said, "!blocare", 10) || equal( Said, "!deblocare", 10) ) && h_boss(id) ) { if(g_Block) { g_Block = false; } else { g_Block = true; }
return PLUGIN_HANDLED; } if(g_Block) { client_print_color(id, print_team_default, "Chat Blocat."); return PLUGIN_HANDLED; } return PLUGIN_CONTINUE; }
Pasi: 1.Declaram 2. Folosim functia h_boss(id) in if-ul specific daca vreti sa poata fi folosita numai de restrictia admin Ex.
_________________ ș-am numa vorbe de aur,ingropama-ti in bvlgari!
|