Rank: Moderator Status: Posturi : 1146 Reputatie : 36 Data de Inscriere : 09/02/2014 Oras : RGZ City Varsta : 25
| Subiect: [Tutorial-Rgz] Pawn scripting (include, define, new, plugin_init) Mar Iul 29, 2014 7:01 pm |
|
| Salut! De ceva timp vreau să încep o serie de tutoriale Pawn, care este limbajul de scripting al AMXX-ului. Nu sunt un om cu foarte mult timp liber, deci sunt câteva săptămâni de când vreau să fac asta şi nu-mi găsesc timpul. Ei bine, acum am nişte timp liber, deci m-am hotărât să încep. 1. Include-urile Include-urile sunt funcţiile care spun compilerului din ce fişiere .inc, adică module, să ia definiţiile funcţiilor folosite în pluginul respectiv. Include-urile arată cam aşa:
#include <amxmodx> #include <amxmisc> #include <cstrike> #include < modul >
2. Define-uri, new-uri Define-urile se folosesc după include-uri, pentru a face eventuale definiri suplimentare, pe lângă cele aflate în modulele incluse. De exemplu, cum se observă în multe pluginuri:
#define PLUGIN "Nume plugin" #define VERSIUNE "1.0" #define AUTOR "Nume autor"
public plugin_init() { register_plugin(PLUGIN, VERSIUNE, AUTOR) }
Acum, fiecare dintre cele trei variabile definite (PLUGIN, VERSIUNE, AUTOR) vor fi echivalente cu ce au fost definite. Aşadeci, compilerul va citi funcţia dată ca exemplu mai sus aşa:
#define PLUGIN "Nume plugin" #define VERSIUNE "1.0" #define AUTOR "Nume autor" public plugin_init() { register_plugin("Nume plugin", "1.0", "Nume autor") }
New-urile se folosesc pentru a defini o constanta, astfel:
new PLUG[] = "Nume plugin" new VERS[] = "Versiune plugin" new AUTH[] = "Autor plugin"
Fiind aceeaşi poveste ca şi cea de mai sus, cu define-urile. 3.Plugin_init Plugin_init este funcţia care înregistrează pluginul. Această funcţie conţine numele pluginului, versiunea pluginului, autorul pluginului şi comenzile administrative. Această funcţie se realizează cu ajutorul unui public, care este cea mai comuna funcţie. Ar trebuii să arate cam aşa:
public plugin_init() { register_plugin("Nume plugin", "Versiune plugin", "Autorul pluginului") register_concmd("amx_test", "testCmd", ADMIN_BAN, "Aceasta este o comanda data ca exemplu.") }
register_plugin - Înregistrează pluginul register_concmd - Aceasta este o comandă ce poate fi executată fie din consola serverului, fie din consola unui jucător, fiuncţionând astfel:
register_concmd("comanda ce va fi scrisa in consola", "functia public ce va fi executata la executarea comenzii", accesul_de_care_are_nevoie_un_admin_ca_sa_poata_executa_comanda, "Descrierea comenzii, ce va apărea în amx_help")
Se pot folosi şi alte funcţii în loc de register_concmd. Un exemplu comun este register_clcmd, care este exact ca şi register_concmd, doar că poate fi executată doar din consola jucătorului, nu şi din cea a serverului. Un exemplu de register_clcmd:
register_clcmd("say /rs", "cmdResetscore")
Nu este nevoie să mai adăugăm restul, dacă nu vrem. Parametrii sunt aceiaşi ca şi cei de la register_concmd şi pot fi adăugaţi la nevoie. Acest exemplu va executa publicul cmdResetscore când un jucător scrie în chat /rs. Se pot folosi, de altfel, şi funcţii care nu necesită executare manuală, ci care vor fi executate în mod automat, cum ar fi RegisterHam, funcţie pentru care trebuie inclus modulul Hamsandwich. Un exemplu de RegisterHam:
RegisterHam(Ham_Spawn, "player", "cmdSpawn", 1)
Această funcţie va executa publicul cmdSpawn pe jucătorul definit "player", automat, la spawn. Se mai pot adăuga în plugin_init şi eventuale cvar-uri, prin funcţia register_cvar, astfel:
register_cvar(test_cvar, "cmdTest", "1")
test_cvar este cvar-ul efectiv, cmdTest este publicul ce va fi executat, 1 este valoarea default a cvar-ului. Ei bine, cam asta a fost deocamdată. O sa mai postez când o să mai am timp! |
|
Rank: Moderator Global Status: Posturi : 140 Reputatie : 3 Data de Inscriere : 04/08/2014 Oras : Manchester City Varsta : 27
| Subiect: Re: [Tutorial-Rgz] Pawn scripting (include, define, new, plugin_init) Mar Aug 05, 2014 5:35 pm |
|
| Bun tutorial mersi BRAVO :bestpost: |
|
Rank: Moderator Status: Posturi : 537 Reputatie : 13 Data de Inscriere : 05/08/2014 Oras : ORAS RGZ Varsta : 27
| Subiect: Re: [Tutorial-Rgz] Pawn scripting (include, define, new, plugin_init) Lun Aug 11, 2014 9:17 pm |
|
| Multumim pentru tutorial. Pentru evitarea spamului , T.C |
|
Rank: Status:
| Subiect: Re: [Tutorial-Rgz] Pawn scripting (include, define, new, plugin_init) |
|
| |
|