Comunitate Ryū
Onoare Samurai
Reflexe Shinobi
Online cs_assault 9/32 1ms
52 🔥 Subiecte
55 💬 Postări
3 👤 Membri
- 🟢 Online

【竜】 Primul tău Plugin AMX ModX – De la Zero la Compilare

Started by ReapBit, Jul 31, 2026, 11:36 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

📚 竜 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 plugin
Orice 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 venit
Vrem 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 complet
Pune 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 — 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
Rating: No ratings yet