PLUGINUL ESTE IN BETA , POSIBIL SA FIE BUG-URI.
Nume: Admin Sef
Autor: eNd. // skitaila03
Versiune: 0.1.rel
Credite: claw
Cvaruri:
boss_tag
// tag-ul mesajelor
boss_acces_limited
// flag cu restrictie
boss_acces_unlimited
// flag fara restrictie
Comenzi publice(se tasteaza in joc prin apasarea tastei Y):
!as
// intri/iesi in/din sefie
!adminsef
// 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:
Code: Select all
boss.amxx
[spoiler2]
Code: Select all
/* 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
[spoiler2]#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;
}[/spoiler2]
Pasi:
1.Declaram
Code: Select all
native h_boss(id);
Ex.
Code: Select all
if(h_boss(id)
{
//codul tau are restrictia admin
}
Code: Select all
if(!h_boss(id)
{
//codul tau nu are restrictia admin
}