Kód:
/*
A scriptben a dupla per (//) jel csak kommentet jelez, az utána lévő dolgoknak nincs jelentősége, úgy ahogy ennek a résznek sem (per,csillag)
*/
#include <amxmodx>
#include <cstrike>
#include <amxmisc>
#include <fun>
// Az include-ban kiválasztjuk, hogy az amxx mely modul-jait használjuk, ugyanis ezekben vannak a funkciók (hogy melyik funkció hova tartozik amxmodx.org)
public plugin_init() // ez a rész minden pluginhoz kötelező, itt regisztráljuk a plugint, a parancsokat és a cvarokat, valamint ez lesz végrehajtva a szerver indításakor
{
register_plugin("Amx_Spawn", "0.5", "D@V3") // "Pluginnév", "verzió", "készítő" - az amx_plugins-ban lesznek listázva.
register_concmd("amx_spawn", "amx_spawn", ADMIN_KICK, "<name> - ujraelesztes") // egy parancs regisztrálása, a register_concmd engedélyezi az rcon (szerveren végrehajtott), valamint a játékos oldali használatot is (persze a jogok ellenében). "beírandó parancs", "végrehajtott funkció (lásd alulrébb), kellő_jog, "leírás (az amx_help-hez)"
return PLUGIN_CONTINUE
}
public amx_spawn(id, level, cid) // megalkotjuk a regisztrált parancshoz tartozó scripteket, hogy mégis mit csináljon.
{
if (!cmd_access(id, level, cid, 2)) //előszőr is ellenőrizzük, hogy van -e az illetőnek joga futtatni a parancsot.
return PLUGIN_HANDLED // egy soros if-eknél elhanyagolható a { } -jel. a handled funkció megszakítja a parancsot, mert mint kiderült nincs joga a játékosnak a parancshoz (nem admin..), hogyha ez a sciprt szerepel autoban kidobja a "nincs jogod" üzenetet
new arg[32] // létrehozzuk az értéket, amerre le akarjuk kérni majd a játékos nevét, amit a parancs mögé úrunk [32] - max 32 karakter lehet a neve (legalábbis enynit olvasunk be)
read_argv(1, arg, 31) // leolvassuk az előbb létrehozott arg-ra a beírt nevet (31 a maximum hosszúság, létrehozott érték hossza-1 -et szoktunk használni)
new player = cmd_target(id, arg, 2) // létrehozzuk a player értéket, és erre rögtön meg is keressük a beírt játékost
if (!player) // hogyha nincs ilyen játékos akkor:
return PLUGIN_HANDLED // megszakítjuk a futtatást (ilyenkor is autoban kidobja hogy nincs találat)
if(cs_get_user_team(player) == CS_TEAM_SPECTATOR ) { // még mindig fut a script, tehát megtaláltuka játékosunkat, és leelenőrizzük hogy spectatorban van-e
return PLUGIN_HANDLED // kiderült hogy spectatorban van, megint szakítjuk.
}
// most hogy leelenőriztünk mindent, és mindent rendben találtunk, elkezdhetjük csinálni amit szeretnénk:
new name2[32], name[32] // hozzunk létre 2 főre szóló értéket
get_user_name(id, name, 31) // és most olvassuk be előszőr is az admin nevét (id,érték,hossz) - a végrehajtó mindig az ID
get_user_name(player, name2, 31) // valamint a játékosét ugyanez, csak ugye az előbb megkeresett player nevét kérjük le
cs_user_spawn(player) // nincs más hátra, mint újraéleszteni hősünket
kieg: cs_user_spawn(player) // futtassuk le mégegyszer, hiszen mint kiderült elsőre nem mindig sikerül
log_amx("Admin %s: respawn %s. ", name, name2) // most jön az utómunka, mentsük el az esetet hogy történt ilyen (a log-ba), használva a lekért neveket (ha biztosra akarsz menni lekéred az ID-t, IP-t, meg amit még akarsz, bár ha nincs gáz a kutya se fogja kikeresni a logba (%s-t írj, ha később megadod az értéket, pl name, name2)
client_print(0, print_chat, "[AMXX] %s: %s ujraelesztve.", name, name2) // írjuk ki a játékosoknak hogy mittettünk, 0 <- az összes játékost jelenti, print_chat -> csetbe írjuk, "ide kell hogy mitis", és a behelyesítendő értékek
client_print(0, print_console, "[AMXX] %s: %s ujraelesztve.", name, name2) // ha enynire ráérünk, ne legyünk lusták írjuk ki a konzoljukba is.
return PLUGIN_HANDLED // ha minden rendben ment, itt a funkció vége.
}