AcasaAcasa  UMUM  FAQFAQ  CautareCautare  InregistrareInregistrare  MembriMembri  GrupuriGrupuri  Conectare  Radio CupsRadio Cups  

Distribuiți | 
 

 Advenced admin slots

In jos 
AutorMesaj
.thhhe1
------------------------
------------------------
avatar

Mesaje : 62
Data de înscriere : 20/01/2008

MesajSubiect: Advenced admin slots   Vin Apr 04, 2008 12:01 pm

Advanced Admin Slots [AMXMODX]
Advanced Admin Slots
Version 0.1.0

Va prezint un nou tip de AdminSlots care sper sa va ajute la server. Este mult mai evoluat decat AdminSlots normal si acum o sa va si dovedesc. Se poate seta printr-un simplu cvar, in functie de cum va fi deconectat un user de pe server cand intra un admin cu slot in acces. Se poate seta sa :
1) Primeasca kick cel care a jucat cel mai mult pe server
2) Kick celui care a jucat cel mai putin pe server
3) Kick celui care are lag-ul cel mai mare
4) Kick celui are lag cel mai mare cand intra unul cu steam ( In acest caz cel care are steam nu trebuie sa aica acces de slot)
5) Kick Celui care are numarul de fraguri mai mic decat cel dea death-uri.

* CVAR:
amx_rezervation <nr>
Puneti valoarea 1,2,3,4, sau 5 in functie de cum vreti sa fie administrat serverul
Daca puneti valoarea 6 atunci va fi slot pe server dar nimeni nu va pati nimic cand intra un admin pe server

Dezactivati pluginul "adminslots" daca folositi acesta

* Multumuri:
- Pluginului care este in pachetul de AMX pentru diverse lucruri
- Vidi pentru o sugestie
- Si catorva de pe acest forum care mi-au dat ideia despre faza cu slot la cei cu Steam

Isti sa vad acuma de unde l-am mai copiat


High Pinger Kicker [AMXX]

High Pinger Kicker AMX MOD X Plugin

° Detalii :
Acest plugin verifica userii cu ping mare pe server si le da kick .

• Cvars:
hpk_max (default 200) -> set maximal acceptable ping
hpk_time (default 15) -> set in seconds frequency of ping checking
hpk_tests (default 8 ) -> minimal number of checks before doing anything

UPDATE : 2.0beta -> 2.1
- Am adaugat cvar-uri noi pe care trebuie sa le setati in amxx.cfg, nu in sma si apoi compile
- Acum pluginul da kick si la jucatorii cu imunitate.


Tutorial Plugin[AdminMOd]


acest tutorial va ajute cum sa faceti un plugin pentru ADMINMoD.SI este facut pentru incepatori.

incepem? DA.
Pentru inceput,va recomand AMXx Studio,care este usor de folosit.(puteti folosi si notepad/wordpad dar e mai greu).


mai intai incepem cu includuri.

astea sunt includurile CELE MAI FOLOSITE in pluginuri adminmod.

code: #include <core>
#include <console>
#include <string>
#include <admin>
#include <adminlib>



Trebuie sa le bagati pe toate la inceput.



acum inregistram pluginu(numai versiunea,in uramtorul tut veti invatza cum inreg. si autor si nume icon_wink.gif)
deci scriem

code: new AM_VERSION_STRING[] = "NUMAR DE VERSIUNE";



inlocuiti NUMAR DE VERSIUNE(cu ghilimele)cu versiunea dvs. de exemplu

code: new AM_VERSION_STRING[] = "0.1";



(cu ; !)

acum de exemplu daca vreau sa stiu PRIN CHAT care este timpul ramas scriem asa.(si dupa cescriem includuri la inceput scriem si new MessageMode [MAX_PLAYERS] [MAX_DATA_LENGTH] ;

code: SayTimeleft() {
new Text[MAX_TEXT_LENGTH] ;
new Seconds = timeleft(0) ;

Seconds /= 60 ;
snprintf(Text, MAX_TEXT_LENGTH, "Timpul Ramas pe harta e %i de minute", Seconds) ;
say(Text);
{


(cand ati scris { si vreti sa faceti spatiul ala mare,apasati enter DOAR,si el se misca automat)

Ei,cam asta a fost pentru un simplu timeleft,pana la urma puteti adauga si publicuri ,invatzati asta in urmatorul tutorial,

Rezultatul Nostru e:

code: #include <core>
#include <string>
#include <admin>
#include <adminlib>

new AM_VERSION_STRING[] = "0.1" ;

new MessageMode[MAX_PLAYERS][MAX_DATA_LENGTH] ;

SayTimeleft() {
new Text[MAX_TEXT_LENGTH];
new Seconds = timeleft(0);

Seconds /= 60;
snprintf(Text, MAX_TEXT_LENGTH, "Timpul Ramas pe harta e %i de minute", Seconds);
say(Text);
}



Si apoi,dam save as,si numim pluginu

code: plugin_nume


inlocuiti nume cu numele pluginului dvs.
si alegem extensia small script(.sma)

(plugin_ la inceputul numelui este F.F.F. important)
apoi compilati.(nu va recomand web-compiler ci compileru admimodului, care se gaseste aici:
http://files.filefront.com/compile_allrar/;7016512;/fileinfo.html

il puneti unde ati dat save as la .sma)

@Moderatori:Acest tutorial a fost testat.

(si sa nu va fie frica daca va da WARINING la compilare,dar daca va da ERROR atunci nati facut ceva bine.Felicitari,Ati facut primul vostru Plugin AdminMoD!!!!!!!!!!



Simpla comanda de admin asupa clientului [AMXX]

In urmatorul tutorial am sa va explic cum sa faci o simpla comanda de admin, la care sa pui sa execute acea comanda catre client

In primul rand, stiti foarte bine ca, comanda se va face intr-un public. Dar va voi explica cum sa cititi argumentele etc

Deci, sa zicem ca vrem sa facem ca atunci cand folosim comanda "amx_ss" <nume> sa i se faca un screenshot jucatorului ales. Si incep asa:

code: public admin_screen(id,level,cid)
{
}


id,level,cid ne va ajuta in continuarea pluginului
Mai departe e bine sa verificam daca cel care foloseste comanda e admin
functia e:

code: if(!cmd_acces(id,level,cid,2))
return PLUGIN_HANDLED;


Totul arata asa:

code: public admin_screen(id,level,cid)
{
if(!cmd_access(id,level,cid,2) )
return PLUGIN_HANDLED;

}



Ei bine, sa zicem ca o sa inregistram acest public prin comanda "amx_screen" . Stiti foarte bine ca dupa "amx_screen" va trebuie sa adaugati numele jucatorului. Ca sa aflati numele acestuia, mai intai AMXX-ul trebuie sa citeasca ca ati scris dupa comanda "amx_screen"
Functia este :

code: read_argv(stuff)


Acuma trebuie sa declaram o variabila ; "argumente" sa-i zicem

code: new argumente[32]
read_argv(1,argumente,31)



Pana acuma totul arata asa:

code: public admin_screen(id,level,cid)
{
if(!cmd_access(id,level,cid,2))
return PLUGIN_HANDLED;

new argumente[32]
read_argv(1,argumente,31)
}



Mai departe trebuie sa setam ca acele "argumente" sa reprezinte cui sa execute comanda
Functia este:

code: cmd_target(stuff)


Ne trebuie o noua variabila, sa-i zicem "player"
Si punem:

code: new player = cmd_target(id,argumente,31)


In total arata asa:

code: public admin_screen(id,level,cid)
{
if(!cmd_access(id,level,cid,2))
return PLUGIN_HANDLED;

new argumente[32]
read_argv(1,argumente,31)

new player = cmd_target(id,argumente,31)
}



Mai departe e bine sa verificam daca jucatorul mai este pe server, ca sa nu faca probleme pluginul, nu ca ar fi mari dar e mai bine asa
Si adaugam asa:

code: if(!player)
return PLUGIN_HANDLED;



Totul arata asa:

code: public admin_screen(id,level,cid)
{
if(!cmd_access(id,level,cid,2))
return PLUGIN_HANDLED;

new argumente[32]
read_argv(1,argumente,31)

new player = cmd_target(id,argumente,31)

if(!player)
return PLUGIN_HANDLED;
}



Mai departe trebuie sa setam ce comanda sa execute si asupra cui. Daca am zis ca-i voi face un snapshot, eh hai s-o facem:
Functia e :

code: client_cmd(indexu,"snapshot")


Pentru ca noi am pus ca argumentele sa fie "player" deci lui player ii vom executa. Si va arata asa:

code: client_cmd(player,"snapshot")



Totul arata asa:

code: public admin_screen(id,level,cid)
{
if(!cmd_access(id,level,cid,2))
return PLUGIN_HANDLED;

new argumente[32]
read_argv(1,argumente,31)

new player = cmd_target(id,argumente,31)

if(!player)
return PLUGIN_HANDLED;

client_cmd(player,"snapshot")
}



Mai departe pluginul cere sa faca un return . Vom pune

code: return PLUGIN_HANDLED;



Totul arata asa:

code: public admin_screen(id,level,cid)
{
if(!cmd_access(id,level,cid,2))
return PLUGIN_HANDLED;

new argumente[32]
read_argv(1,argumente,31)

new player = cmd_target(id,argumente,31)

if(!player)
return PLUGIN_HANDLED;

client_cmd(player,"snapshot")

return PLUGIN_HANDLED
}



Pluginul complet:

code: #include <amxmodx>
#include <amxmisc>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "SAMURAI"


public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)

register_concmd("amx_screen","admin_screen",ADMIN_KICK,"message");
}


public admin_screen(id,level,cid)
{
if(!cmd_access(id,level,cid,2))
return PLUGIN_HANDLED;

new argumente[32]
read_argv(1,argumente,31)

new player = cmd_target(id,argumente,31)

if(!player)
return PLUGIN_HANDLED;

client_cmd(player,"snapshot")

return PLUGIN_HANDLED
}



Bafta



Inceputul de baza in crearea unui Plugin [AMXX]

Inceputul de baza in crearea unui Plugin

Ok , in acest Tutorial voi explica pas cu pas , tot ce trebuie facut pentru a crea un Plugin simplu (Inceputul) . Daca nu ai facut nici un Plugin pana acum si nu ai habar cum se face , casca bine ochii ; vei invata acum icon_smile.gif .

Plugin-urile , dupa cum cred ca ati vazut deja (Daca v-ati uitat in vreun .sma ) , sunt alcatuite din public-uri si din stock-uri (Ceea ce veti invata mai tarziu , deocamdata invatam public-uri ) .

Vom creea un fisier .txt , caruia ii modificam extensia in .sma . Sa spunem ca am creat fisierul plugin.sma . Il deschidem cu notepad (Puteti folosi si alte programe ajutatoare in scripting , dar nu recomand ; este bine sa invatati asa) .

Incepem prin niste include -uri . Ce sunt acestea ? Sunt niste linii de comanda care arata amxmodx-ului ce functii (utilitati) vor fi folosite in acest Plugin . Pentru inceput , ii aratam ca vom folosi amxmodx :

code: #include <amxmodx>



Lista de include -uri poate continua , dar deocamdata lasam asa . Veti invata mai tarziu si despre alte include-uri .

Apoi , intregistram Plugin-ul , printr-un public specific , numit public plugin_init() . Deci , apasam un enter si adaugam :

code: public plugin_init()
{
}



Intre cele 2 paranteze ( { si } ) , vom adauga codul public-ului respectiv . Aceste acolade reprezinta inceputul si sfarsitul unei anumite parti / a intregului public . Mai tarziu vom invata si partea cu mai multe parti ale unui public , dar deocamdata lasam asa . Intre paranteze , adaugam register_plugin("Numele Pluginului","versiunea","autorul") . Register_plugin este o functie a include-ului de mai sus ( amxmodx ) , iar celelalte sunt argumentele . Vom avea :

code: #include <amxmodx>

public plugin_init()
{
register_plugin("nume", "versiune", "autor")
}



Atentie ! Acel spatiu lasat de mine inaintea register_plugin este absolut necesar pentru a functiona Plugin-ul corect ! Acel spatiu NU va trebui sa-l lasati cu space , ci cu tasta TAB . Deasemenea intr-un Plugin NU va trebui sa folositi DELOC tasta space (Decat intre argumente) ! Inlocuim nume cu numele Plugin-ului , versiune cu versiunea autor cu autorul Plugin-ului (Numele dvs) . Atentie ! Lasam ghilimelele asa cum sunt ! Modificam doar cuvintele .
Tot in plugin_init , vom putea sa mai inregistram si niste comenzi . Vom inregistra una . Functia este urmatoarea :

code: register_concmd("comanda","public",accesul de admin,"Mesaj care apare cand dai amx_help")



La " accesul de admin " , putem pune :

code: ADMIN_RESERVATION
ADMIN_IMMUNITY
ADMIN_KICK
ADMIN_BAN
ADMIN_SLAY
ADMIN_MAP
ADMIN_CVAR
ADMIN_CFG
ADMIN_CHAT
ADMIN_VOTE
ADMIN_PASSWORD
ADMIN_RCON
ADMIN_LEVEL_A
ADMIN_LEVEL_B
ADMIN_LEVEL_C
ADMIN_LEVEL_D
ADMIN_LEVEL_E
ADMIN_LEVEL_F
ADMIN_LEVEL_G
ADMIN_LEVEL_H



Deci , adaugam in .sma :

code: register_concmd("amx_ss","admin_ss",ADMIN_LEVEL_C,"Take a snapshot to selected player")



La comanda amx_ss , se va executa public-ul admin_ss , doar daca are adminul care executa comanda litera " C " in acces .

Ok , acum sa facem public-ul .
Adaugam :

code: public admin_ss(id)
{
}



Dupa cum vedeti , am adaugat un id in acest public . Acest id reprezinta index-ul pe care va fi executata comanda .
Intre { si } , va trebui sa adaugam code-ul public-ului . Deobicei este o combinatie intre niste functii aici . De exemplu , daca vrem sa ii facem un snapshot unui Player , vom adauga intre { si } urmatoarea functie :

code: client_cmd(id, "snapshot")



Client_cmd reprezinta functia pentru executare a unei comenzi asupra unui client , iar id reprezinta cui sa executi comanda . Snapshot reprezinta comanda .
Adaugam niste tab-uri ca sa fie ordonat bine code-ul . Ok , pana acum ar trebui sa avem urmatoarele :

code: #include <amxmodx>

public plugin_init()
{
register_plugin("nume", "versiune", "autor")
register_concmd("amx_ss","admin_ss",ADMIN_LEVEL_C,"It takes a snapshot to the specified Player .")
}

public admin_ss(id)
{
client_cmd(id, "snapshot")
}



Salvam fisierul , apoi il compilam AICI , dupa care il punem pe Server . La executarea comenzii amx_ss <Player> , i se va face un snapshot Player-ului specificat .
Ei , cam asta a fost . Daca ati urmat toti pasii de mai sus FELICITARI ! Tocmai ati facut primul dvs Plugin icon_smile.gif . La mai multe icon_smile.gif .[/
Sus In jos
Vezi profilul utilizatorului
UnforGiveN
------------------------
------------------------
avatar

Mesaje : 69
Data de înscriere : 01/04/2008
Varsta : 23
Localizare : de_Dust2

MesajSubiect: Re: Advenced admin slots   Vin Apr 04, 2008 1:30 pm

BUn tutorialu dar se vede ca e copiat macar lai postat dar.....pune si u alea in cod :D:D:D restu gGG
Sus In jos
Vezi profilul utilizatorului http://www.tet.freetzi.com
 
Advenced admin slots
Sus 
Pagina 1 din 1

Permisiunile acestui forum:Nu puteti raspunde la subiectele acestui forum
Games Cup :: -- Games ONLINE -- :: Counter Strike :: Plugin-uri-
Mergi direct la: