Comenzi asupra mai multor playery

 
Creaza un subiect nou   Raspunde la subiect    Pagina de start a forumului AllianceMU -> Tutoriale cs
Subiectul anterior :: Subiectul urmator  
Autor Mesaj
ecstazy
Administrator
Administrator


Data inscrierii: 17/Iun/2008
Mesaje: 6

MesajTrimis: 18/06/2008 13:16    Titlul subiectului: Comenzi asupra mai multor playery Raspunde cu citat (quote)

Probabil ca multi nu stit cum se da kick,slay,slap la toti jucatorii deodata...ei bine,in acest tutorial veti invata cum ! Fiti atenti,am sa combin alte functii din alte tutoriale si alte functii noi
Am sa fac prima parte a pluginului fara explicatii pentru ca deja le stiti.Deci voi face un plugin pentru slay la toata echipa,deci vom avea asa pentru inceput :


CODE
#include <amxmodx>
#include <amxmisc>

new const PLUGIN[] = "Slay Team"
new const VERSION[] = "1.0"
new const AUTHOR[] = "Anakin"

#define ACCESS ADMIN_SLAY

new show_act;


public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)

register_concmd ( "amx_slayteam" , "slayteam_cmd" , ACCESS , "amx_slayteam @T/@CT/@All" )

show_act = get_cvar_pointer ( "amx_show_activity" )

}


Cu siguranta ati observat ceva nou,asta :

CODE
new const PLUGIN[] = "Slay Team"
new const VERSION[] = "1.0"
new const AUTHOR[] = "Anakin"

Este alta metoda de a inregistra pluginul,doar ca prin "niste" variabile....
* Accesul necesar pentru a putea folosi comanda este ADMIN_SLAY !

Apoi in continuare vom avea asa :


CODE
public slayteam_cmd ( id , level , cid ) {

if ( ! ( get_user_flags ( id ) & ACCESS ) ) {

console_print ( id , "No Access !" )

return PLUGIN_HANDLED

}
Daca user-ul ce vrea sa folosesca comanda nu are accesul definit mai sus,ii va aparea in consola "No Access !" si operatia va fi blocata de "return PLUGIN_HANDLED"

In continuara urmeaza citirea argumentelor din consola si aflarea numelui adminului care foloseste comanda :


CODE
new arg[23]
new name[32]

read_argv ( 1 , arg , 23 )
get_user_name ( id , name , 31 )


Acum veti vedea o functie noua,equali :


CODE
if ( equali ( arg , "@T" ) )
-> deci daca argumentul din consola este @T
Acum vom avea trebuință de 2 variabile, sa zicem :


CODE
new players[32] , num
Puteti face doua variabile,sau mai multe,intr-o singura linie ,separandu-le prin , ( virgula :p )

Iar acum,din nou o functie,pentru echipa Terrorist :


CODE
get_players ( players , num , "ae" , "TERRORIST" )
Ati observat ca "players" si "num" sunt variabilele pe care le-am făcut mai sus.... Apoi creem inca doua variable :


CODE
new k , tplayers
...k il vom folosi mai jos,iar "tplayers" pentru a ne usura putin "munca" :p

Si acuma,o functie mai complexa,numita Foor - Loop :


CODE
for ( k = 0; k < num; k++ )
Din nou acel "num" creeat mai sus si "k" la fel.Si apoi egalam variabila care ne va ajuta ( tplayers ) cu rezultatul din functia Foor - Loop :


CODE
tplayers = players[k]

Si apoi comanda asupra echipei Terrorist :


CODE
user_kill ( tplayers )


In continuare,fara alte explicatii,schimbarea cazurilor :


CODE
switch ( get_pcvar_num ( show_act ) ) {

case 1: {

client_print ( 0 , print_chat , "[AMXX] An Admin Has Kill Team T !" )

}

case 2: {

client_print ( 0 , print_chat , "[AMXX] %s Has Kill Team T !" , name )

}

}


Si,dupa cum am vazut in numeroase cereri,un mic efect ca la adminmod cu sunet :


CODE
client_cmd ( 0 , "spk ambience/thunder-clap" )
Sunetul este din cstrike/sounds/ambience !

Si am terminat cu echipa Terrorist,urmeaza pentru CT si pentru toti jucatorii,pe care nu le mai explic deoarece am dat un exemplu pentru T,doar functiile se transforma :

Pentru CT :

CODE
get_players ( players , num , "ae" , "CT" );
Iar pentru toti jucatorii mai simplu

CODE
get_players ( players , num , "a")


Deci,daca ati urmarit pasi de mai sus,ar trebui sa aveti ceva de genu :


CODE
#include <amxmodx>
#include <amxmisc>

new const PLUGIN[] = "Slay Team"
new const VERSION[] = "1.0"
new const AUTHOR[] = "Anakin"

#define ACCESS ADMIN_SLAY

new show_act;


public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)

register_concmd ( "amx_slayteam" , "slayteam_cmd" , ACCESS , "amx_slayteam @T/@CT/@All" )

show_act = get_cvar_pointer ( "amx_show_activity" )

}


public slayteam_cmd ( id , level , cid ) {

if ( ! ( get_user_flags ( id ) & ACCESS ) ) {

console_print ( id , "No Access !" )

return PLUGIN_HANDLED

}

new arg[23]
new name[32]

read_argv ( 1 , arg , 23 )
get_user_name ( id , name , 31 )

if ( equali ( arg , "@T" ) ) {

new players[32] , num
new k , tplayers

get_players ( players , num , "ae" , "TERRORIST" );

for ( k = 0; k < num; k++ ) {

tplayers = players[k]

user_kill ( tplayers )

switch ( get_pcvar_num ( show_act ) ) {

case 1: {

client_print ( 0 , print_chat , "[AMXX] An Admin Has Kill Team T !" )

}

case 2: {

client_print ( 0 , print_chat , "[AMXX] %s Has Kill Team T !" , name )

}

}

client_cmd ( 0 , "spk ambience/thunder-clap" )

}

} else if ( equali ( arg , "@CT" ) ) {

new players[32] , num
new k , ctplayers

get_players ( players , num , "ae" , "CT" );

for ( k = 0; k < num; k++ ) {

ctplayers = players[k]

user_kill ( ctplayers )

switch ( get_pcvar_num ( show_act ) ) {

case 1: {

client_print ( 0 , print_chat , "[AMXX] An Admin Has Kill Team CT !" )

}

case 2: {

client_print ( 0 , print_chat , "[AMXX] %s Has Kill Team CT !" , name )

}

}

client_cmd ( 0 , "spk ambience/thunder-clap" )

}

} else if ( equal ( arg , "@All" ) ) {

new players[32] , num
new k , aplayers

get_players ( players , num , "a")

for ( k = 0; k < num; k++ ) {

aplayers = players[k]

user_kill ( aplayers )

switch ( get_pcvar_num ( show_act ) ) {

case 1: {

client_print ( 0 , print_chat , "[AMXX] An Admin Has Kill All Players !" )

}

case 2: {

client_print ( 0 , print_chat , "[AMXX] %s Has Kill All Players !" , name )

}

}

client_cmd ( 0 , "spk ambience/thunder-clap" )

}

}

return PLUGIN_HANDLED

}

by ecstazy :whistle:

_________________
[img] http://img380.imageshack.us/my.php?image=20080613focuspicex0.jpg [/img]
Sus
Vezi profilul utilizatorului Trimite mesaj privat
Zerich
Junior 2
Junior 2


Data inscrierii: 17/Iun/2008
Mesaje: 45
Localitate: White House

MesajTrimis: 18/06/2008 17:14    Titlul subiectului: Raspunde cu citat (quote)

GG! 8-)
_________________
Comenzi asupra mai multor playery Comenzi asupra mai multor playery
Sus
Vezi profilul utilizatorului Trimite mesaj privat
animalplanet2
Junior
Junior


Data inscrierii: 14/Iul/2012
Mesaje: 5
Localitate: Poland

MesajTrimis: 25/07/2012 10:14    Titlul subiectului: Raspunde cu citat (quote)

This information is unbelievable! I really cannot believe it is true!
Sus
Vezi profilul utilizatorului Trimite mesaj privat
animalplanet2
Junior
Junior


Data inscrierii: 14/Iul/2012
Mesaje: 5
Localitate: Poland

MesajTrimis: 31/07/2012 10:54    Titlul subiectului: Raspunde cu citat (quote)

I love how amazing and awesome this is.
Sus
Vezi profilul utilizatorului Trimite mesaj privat
misanchik
Junior
Junior


Data inscrierii: 24/Iul/2012
Mesaje: 5
Localitate: Bulgaria

MesajTrimis: 08/08/2012 02:49    Titlul subiectului: Raspunde cu citat (quote)

Thanks for taking the time to post. It's lifted the level of deatbe
Sus
Vezi profilul utilizatorului Trimite mesaj privat
misanchik
Junior
Junior


Data inscrierii: 24/Iul/2012
Mesaje: 5
Localitate: Bulgaria

MesajTrimis: 09/08/2012 15:00    Titlul subiectului: Raspunde cu citat (quote)

Thanks for the article! I'm from Ukraine we have a rather difficult to find useful interesting information.
Sus
Vezi profilul utilizatorului Trimite mesaj privat
Afiseaza mesajele pentru a le previzualiza:   
Creaza un subiect nou   Raspunde la subiect    Pagina de start a forumului AllianceMU -> Tutoriale cs Ora este GMT + 2 ore
Pagina 1 din 1

 
Mergi direct la:  
Nu puteti crea un subiect nou in acest forum
Nu puteti raspunde in subiectele acestui forum
Nu puteti modifica mesajele proprii din acest forum
Nu puteti sterge mesajele proprii din acest forum
Nu puteti vota in chestionarele din acest forum



Powered by phpBB © 2001, 2002 phpBB Group // DustyGreen Theme 1.0.2 By Gil
Fa-ti si tu propriul forum GRATUIT, pe www.myforum.ro