PDA

View Full Version : Tutorial ! Plugin (Kick, Slay, SS) !



Power.
04-07-2012, 12:11 AM
In acest totorial va voi arata cum sa inregistrati cateva comenzi pentru admin
Cred ca va e mai usor sa invatati , dintr-un plugin complet, cum se face exact, bine explicat, decat din bucati mici

Pentru inceput includem filele de baza, unde sunt definite cateva functii, fara de care nu putem vorbi de AMXX Scripting. So

#include <amxmodx> // pluginul va contine functii amx , deci includem acest fisier
#include <amxmisc> // if-uri si elseuri, name, id , accese admini , sunt definite in amxmisc

In urmatorul pas, vom inregistra pluginul si comenzile acestuia in plugin_init . So



public plugin_init()
{
register_plugin("Nume Plugin", "Versiune Plugin", "Autor Plugin") // Inregistreaza pluginul atribuindu-i un nume,versiune si autor.


register_concmd("amx_kick", "KickCmd", ADMIN_KICK, "<nume> - [motiv]") // inregistreaza comanda amx_kick
// ADMIN_KICK defineste gradul de acces de care poate fi folosita comanda
// KickCmd este functia ce va face posibil kick`ul, si va fi definita mai jos separat


register_concmd("amx_slay", "SlayCmd", ADMIN_SLAY, "<nume>") // inregistreaza comanda amx_slay
// ADMIN_SLAY defineste gradul de acces de care poate fi folosita comanda
// SlayCmd functia ce va face posibil slay`ul, si va fi definita mai jos separat


register_concmd("amx_poza", "PozaCmd", ADMIN_SLAY, "<nume>") // inregistreaza comanda amx_poza
// ADMIN_SLAY defineste gradul de acces de care poate fi folosita comanda , adica cei care au acces la amx_slay, au acces si la amx_poza
// PozaCmd functia ce va face posibila capturarea unei poze si va fi definita mai jos separat

}


mai departe definim KickCmd , pentru a putea face posibil kick`ul


public KickCmd(id, level, cid)
{
if (!cmd_access(id, level, cid, 2)) // Verifica daca cel ce foloseste comanda "amx_kick" este admin, si are acces la comanda ->
return PLUGIN_HANDLED // -> Daca nu are acces, va opri functia, si nu se va intampla nimic



new arg[32] // Definim un argument
read_argv(1, arg, 31) // Citim argumentu
new player = cmd_target(id, arg, CMDTARGET_OBEY_IMMUNITY | CMDTARGET_ALLOW_SELF) // Face posibila aplicarea functiei pe tine insuti cu / fara imunitate


new name2[32], name[32] //
get_user_name(player, name2, 31) // Definim , si citim name1 si name2
get_user_name(id, name, 31) //


server_cmd("kick #%d", get_user_userid(player)) // kick-ul propriu zis, daca s-au indeplinit conditiile de mai sus
client_print(0, print_chat, "[AMXX] %s i-a dat kick lui %s", name , name2) // arata un mesaj in chat cum ca un player a luat kick de la un admin
// client_print - afiseaza userului un mesaj
// 0 - Afiseaza tuturor userilor conectati ( Daca ar fi fost 1, afisa doar userului cu authid`u 1 , etc. )
// %s - sunt stringuri , si sunt in relatie cu name si name2 in cazul nostru
// primul string %s, ii va fi atrubuit adminului care a aplicat comanda, name
// al doilea string %s, ii va fi atribuit playerului pe care s-a aplicat comanda , tinta , adica name2

return PLUGIN_HANDLED
}


Mai departe definim SlayCmd , pentru a face posibil slay`ul


public SlayCmd(id, level, cid)
{
if (!cmd_access(id, level, cid, 2)) // Verifica daca cel ce foloseste comanda "amx_slay" este admin, si are acces la comanda ->
return PLUGIN_HANDLED // -> Daca nu are acces, va opri functia, si nu se va intampla nimic



new arg[32] // Definim un argument
read_argv(1, arg, 31) // Citim argumentu
new player = cmd_target(id, arg, CMDTARGET_OBEY_IMMUNITY | CMDTARGET_ALLOW_SELF) // Face posibila aplicarea functiei pe tine insuti cu / fara imunitate


new name2[32], name[32] //
get_user_name(player, name2, 31) // Definim , si citim name1 si name2
get_user_name(id, name, 31) //


user_kill(player) // slay-ul propriu zis ( il omoara )
client_print(0, print_chat, "[AMXX] %s i-a dat slay lui %s", name , name2) // arata un mesaj in chat cum ca un player a luat slay de la un admin
// client_print - afiseaza userului un mesaj
// 0 - Afiseaza tuturor userilor conectati ( Daca ar fi fost 1, afisa doar userului cu authid`u 1 , etc. )
// %s - sunt stringuri , si sunt in relatie cu name si name2 in cazul nostru
// primul string %s, ii va fi atrubuit adminului care a aplicat comanda, name
// al doilea string %s, ii va fi atribuit playerului pe care s-a aplicat comanda , tinta , adica name2

return PLUGIN_HANDLED
}


Si acum definim Pozacmd , sa facem poze


public PozaCmd(id, level, cid)
{
if (!cmd_access(id, level, cid, 2)) // Verifica daca cel ce foloseste comanda "amx_poza" este admin, si are acces la comanda ->
return PLUGIN_HANDLED // -> Daca nu are acces, va opri functia, si nu se va intampla nimic



new arg[32] // Definim un argument
read_argv(1, arg, 31) // Citim argumentu
new player = cmd_target(id, arg, CMDTARGET_OBEY_IMMUNITY | CMDTARGET_ALLOW_SELF) // Face posibila aplicarea functiei pe tine insuti cu / fara imunitate


new name2[32], name[32] //
get_user_name(player, name2, 31) // Definim , si citim name1 si name2
get_user_name(id, name, 31) //


client_cmd("snapshot") // Face jucatorului 1 poza

client_print(0, print_chat, "[AMXX] %s i-a dat facut o poza lui %s", name , name2) // arata un mesaj in chat cum ca un admin i-a facut o poza unui jucator
// client_print - afiseaza userului un mesaj
// 0 - Afiseaza tuturor userilor conectati ( Daca ar fi fost 1, afisa doar userului cu authid`u 1 , etc. )
// %s - sunt stringuri , si sunt in relatie cu name si name2 in cazul nostru
// primul string %s, ii va fi atrubuit adminului care a aplicat comanda, name
// al doilea string %s, ii va fi atribuit playerului pe care s-a aplicat comanda , tinta , adica name2

return PLUGIN_HANDLED
}

Aici este pluginul fara explicatii :


#include <amxmodx>
#include <amxmisc>

public plugin_init()
{
register_plugin("Nume Plugin", "Versiune Plugin", "Autor Plugin")
register_concmd("amx_kick", "KickCmd", ADMIN_KICK, "<nume> - [motiv]")
register_concmd("amx_slay", "SlayCmd", ADMIN_SLAY, "<nume>")
register_concmd("amx_poza", "PozaCmd", ADMIN_SLAY, "<nume>")
}

public KickCmd(id, level, cid)
{
if (!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED

new arg[32]
read_argv(1, arg, 31)
new player = cmd_target(id, arg, CMDTARGET_OBEY_IMMUNITY | CMDTARGET_ALLOW_SELF)


new name2[32], name[32]
get_user_name(player, name2, 31)
get_user_name(id, name, 31)


server_cmd("kick")
client_print(0, print_chat, "[AMXX] %s i-a dat kick lui %s", name , name2)

return PLUGIN_HANDLED
}

public SlayCmd(id, level, cid)
{
if (!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED

new arg[32]

read_argv(1, arg, 31)

new player = cmd_target(id, arg, CMDTARGET_OBEY_IMMUNITY | CMDTARGET_ALLOW_SELF | CMDTARGET_ONLY_ALIVE)

user_kill(player)

new name2[32], name[32]

get_user_name(id, name, 31)
get_user_name(player, name2, 31)
client_print(0, print_chat, "Adminul %s i-a dat slay lui %s ", name, name2)

return PLUGIN_HANDLED
}

public PozaCmd(id, level, cid)
{
if (!cmd_access(id, level, cid, 2))
return PLUGIN_HANDLED

new arg[32]

read_argv(1, arg, 31)
new player = cmd_target(id, arg, CMDTARGET_OBEY_IMMUNITY | CMDTARGET_ALLOW_SELF)


new name2[32], name[32]
get_user_name(player, name2, 31)
get_user_name(id, name, 31)

server_cmd("snapshot")

client_print(0, print_chat, "Adminul %s i-a facut o poza lui %s ", name, name2)

return PLUGIN_HANDLED
}





La cerere pot adauga si alte comenzi, care pot fi complet diferite de acestea.

Sursa: mNx

ExTaZzY
07-08-2012, 10:46 PM
Multumesc!GJ

gbz
12-08-2012, 04:35 PM
Poti sa bagi si tu un plugin de team spec?

Tiger
12-08-2012, 10:13 PM
Poti sa bagi si tu un plugin de team spec?

La ce team spec te referi ?
Asta: <b>You have to register to ba able to see this link</b>(amx_spec-amx_ct-amx_t)-! sau <b>You have to register to ba able to see this link</b> ?

gbz
12-08-2012, 10:25 PM
Am gasit lasa... oricum ms.!

Power.
13-08-2012, 12:08 AM
Poti sa bagi si tu un plugin de team spec?

Faceti cererile de plugin-uri la sectia acestora NU in alte topicuri.