[Plugin]Admin sef (admin_sef.amxx)

Forum rules
ImageImage


  • Pentru a posta un plugin trebuie sa respecti urmatorul model:

Code: Select all

Descriere: 
Descărcare: 
Nume plugin: 
Versiune: 
Cvar-uri (daca necesita):
Comenzi (daca necesita):
Module necesare (pentru rularea si activarea pluginului corect):
Instalare:
1. Fișierul nume_plugin.sma îl puneți in addons/amxmodx/scripting
2. Fișierul nume_plugin.amxx îl puneți in addons/amxmodx/plugins
3. Intrați în fișierul addons/amxmodx/configs/plugins.ini si adaugati la urma: nume_plugin.amxx
Aveti grija cand creati un topic puneti la titlu [Plugin] Numele plugin-ului.
Topicurile mai vechi de 15 zile se vor inchide fara post reply.
Nu posta plugin-uri care au mai fost postate, vei primi avertisment.
Nu da reply cu : gg , bv etc., vei primi avertisment.
Locked
User avatar
Every
Membru
Membru
Posts: 531
Joined: 8 years ago
Location: Bucuresti
Has thanked: 0
Been thanked: 0
Zodiac:
Age: 22
Contact:
Status: Offline

8 years ago

Descriere: 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:

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
SMA Plugin baza:

[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;
}
[/spoiler2]


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);
2. Folosim functia h_boss(id) in if-ul specific daca vreti sa poata fi folosita numai de restrictia admin
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
}
User avatar
GoKuSaN
Membru
Membru
Posts: 137
Joined: 6 years ago
Has thanked: 0
Been thanked: 0
Status: Offline

6 years ago

:tc: Topic Vechi
Locked

Return to “Plugin-uri”