|
|
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_allr ... einfo.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 .
|
|