📚 竜 PRIMUL TĂU PLUGIN AMX MODX 竜 📚
"Un maestru nu s-a născut maestru — a scris primul rând de cod cândva."
🔹 Titlu tutorial: Primul tău Plugin AMX ModX – Mesaj de Bun Venit + Comandă de Chat
🔹 Nivel: 🟢 Începător
🔹 Timp estimat: ⏱️ 15-20 minute
⚙️ Cerințe prealabile- 🖥� Un server CS 1.6 cu AMX ModX 1.10+ instalat și funcțional
- 📝 Un editor de text simplu (Notepad++, VS Code, sau chiar Notepad)
- 🧠 Zero experiență de programare necesară — explicăm fiecare linie
📦 Pasul 1 – Ce este un plugin AMX ModX?Un plugin AMX ModX este scris în limbajul
Pawn (fișier
.sma), apoi
compilat într-un fișier
.amxx pe care serverul îl poate rula efectiv. Gândește-te la
.sma ca la "rețeta" și la
.amxx ca la "mâncarea gata făcută" — serverul mănâncă doar .amxx.
💻 Pasul 2 – Structura de bază a unui pluginOrice plugin pornește cu aceleași 3 linii esențiale:
#include <amxmodx>
public plugin_init() {
register_plugin("Nume Plugin", "1.0", "AutorulTau")
}
- #include <amxmodx> → "importă" funcțiile de bază AMX ModX
- plugin_init() → se rulează automat când pluginul pornește (ca un "buton de start")
- register_plugin() → înregistrează numele, versiunea și autorul (apare în amxx plugins din consolă)
👋 Pasul 3 – Adăugăm un mesaj de bun venitVrem ca fiecare jucător care intră pe server să primească un mesaj. Folosim forward-ul
client_putinserver, care se declanșează automat când un jucător intră pe hartă:
public client_putinserver(id) {
client_print(id, print_chat, "[RyuZone] Bine ai venit pe server, samurai!")
}
- client_putinserver(id) → "id" e numărul unic al jucătorului (1, 2, 3...)
- client_print(id, print_chat, "...") → trimite un mesaj în chat, doar către acel jucător
💬 Pasul 4 – Adăugăm o comandă de chat (!info)Acum adăugăm o comandă pe care jucătorii o pot scrie în chat:
!info. Pentru asta avem nevoie de 2 lucruri:
înregistrarea comenzii (în plugin_init) și
funcția care rulează când comanda e folosită.
public plugin_init() {
register_plugin("Nume Plugin", "1.0", "AutorulTau")
register_clcmd("say /info", "cmd_info")
}
public cmd_info(id) {
client_print(id, print_chat, "[RyuZone] Server CS 1.6 | Discord: discord.gg/DW56X8xuTN")
return PLUGIN_HANDLED
}
- register_clcmd("say /info", "cmd_info") → leagă textul "/info" scris în chat de funcția "cmd_info"
- return PLUGIN_HANDLED → spune serverului "am procesat comanda, nu o mai trimite mai departe în chat public"
🧩 Exemplu de cod – Pluginul completPune tot ce am învățat împreună într-un singur fișier
bunvenit.sma:
#include <amxmodx>
public plugin_init() {
register_plugin("RyuZone Bun Venit", "1.0", "AutorulTau")
register_clcmd("say /info", "cmd_info")
}
public client_putinserver(id) {
client_print(id, print_chat, "[RyuZone] Bine ai venit pe server, samurai!")
}
public cmd_info(id) {
client_print(id, print_chat, "[RyuZone] Server CS 1.6 | Discord: discord.gg/DW56X8xuTN")
return PLUGIN_HANDLED
}
🔧 Pasul 5 – Compilarea pluginului- Salvează fișierul ca bunvenit.sma în folderul scripting/ al serverului
- Rulează compiler.exe (Windows) sau comanda amxxpc bunvenit.sma (Linux) din același folder
- Dacă totul e corect, apare un fișier nou: bunvenit.amxx în folderul compiled/
- Dacă apare o eroare, compilatorul îți spune exact linia și motivul — citește mesajul cu atenție!
📤 Pasul 6 – Instalarea pe server- Copiază bunvenit.amxx din compiled/ în folderul plugins/
- Deschide fișierul plugins.ini (din același folder) și adaugă la final o linie nouă: bunvenit.amxx
- Repornește serverul (sau folosește comanda amxx reload din consolă, dacă e disponibilă)
✅ Pasul 7 – Testare- Intră pe server → ar trebui să primești mesajul de bun venit instant
- Scrie /info în chat → ar trebui să apară mesajul cu informații
- În consolă, scrie amxx plugins → pluginul tău trebuie să apară în listă, cu status running
🚀 Idei de continuare (temă pentru acasă)- Adaugă o a doua comandă, ex. !reguli, care afișează un mesaj cu regulile serverului
- Schimbă client_print cu set_hudmessage + show_hudmessage pentru un mesaj pe ecran, nu doar în chat
- Explorează register_event pentru a reacționa la evenimente din joc (ex: cineva moare, cineva plantează bomba)
📎 Resurse suplimentare- 📖 AMX ModX API Documentation (https://www.amxmodx.org/api) — lista completă de funcții native
- 💬 Secțiunea Ajutor de pe forum, dacă te blochezi la compilare sau instalare
- 🧵 Secțiunea Cereri Pluginuri, dacă vrei să comanzi ceva mai avansat
⚠️ NotăAcest tutorial e gândit ca punct de plecare, nu ca soluție finală de producție — pentru un plugin folosit pe un server live, gândește-te și la validări suplimentare (ex: verificare
is_user_connected, limitare spam pe comandă etc.), lucruri pe care le vom acoperi într-un tutorial viitor.
🐉 Codul tău, prima ta armă — Echipa RyuZone