Acest tutorial este mai complex si putin mai greu...dar daca sunteti atenti veti invata repede
Ei bine,in acest tutorial veti invata,sper,cum sa trimiteti mesaje color catre toti jucatori.Vom face rosu,verde si galben
Pentru inceput avem asa :
Code:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "New Plugin"
#define VERSION "1.0"
#define AUTHOR "Anakin"
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
// Add your code here...
}
Pana aici stiti.Acum urmeaza creearea unei variabile la alegere...eu voi folosi "saytext" pe care o punem in afara publicului :
Code:
new saytext;
Apoi,in plugin_init,o egalam cu o functie pentru chat :
Code:
saytext = get_user_msgid("SayText");
Sunt mai multe functii cu get_user_msgid dar pe noi ne intereseaza doar asta acum
Acum depinde ce plugin vreti sa faceti,eu voi da doua exemple.
A).Exemplu unu consta in trimiterea unor mesaje color aleatoriu catre toti jucatorii...deci va trebui sa face o variabila,o lista cu mesajele,deci vom avea asa :
Code:
new listamesaje[][] = {
"Mesajul tau",
"Alt mesaj",
"Al treilea mesaj",
"Ce vrei tu:P"
};
Modifici dupa bunul plac,dar ai grija,dupa cum am observat ca unii primeau eroare la modificare,INTOTDEAUNA ultimul mesaj sa nu aiba dupa el , ( virgula ) !
Apoi vreti sa faceti ca mesajele sa apara la un interval de timp setat de dvs ? Simplu,aveti nevoie de task.Daca nu stiti ce este,cititi tutorialul facut de Cipy !
Pentru usurarea muncii ca sa nu modificati in .sma intervalul,am sa fac un exemplu cu cvar ! Adica intervalul il veti inchimba printr-un cvar.Deci :
Code:
interval = register_cvar("interval_mesaje","180");
numar_interval = get_pcvar_num(interval);
Desigur interval si numar_interval sunt variabile create in afara publicului !
Apoi task-ul,cu o functie noua : Float. Care pe engleza inseamna "plutire"...deci pluteste cum ar veni in functie de ceva :
Code:
set_task(float(numar_interval),"arata_mesaje",0,"",0,"b",0)
Apoi publicul...din nou,in inauntrul acestuia,vom creea o variabila...dupa cum ati vazut si la Alka :
Code:
new Buffer[128];
Si printarea mesajelor aleatoriu,vom face cu culoarea verde :
Code:
formatex(Buffer, sizeof Buffer - 1, "^x04%s", listamesaje[random(sizeof listamesaje)]);
^x04 - culoarea verde
^x03 - culoarea rosie
^x01 - culoarea galbena
Apoi,dupa cum ati vazut in tutorialul cu mai multi jucatori :
Code:
new players[32],num;
get_players(players,num);
new f,id;
for(f=0;f<num;++f){
id = players[f];
message_begin(MSG_ONE,saytext,_,id);
write_byte(id);
write_string(Buffer);
message_end();
}
*message_begin(MSG_ONE,saytext,_,id); - ineperea mesajului. saytext este variabila creata la inceput iar id jucatorii(cui se va printa mesajul)
id = players[f] - egalarea pentru usurare
write_byte(id) - jucatorii
write_string(Buffer) - variabila
message_end() - sfarsitul mesajului
Cam atat...daca ati facut ca si mai sus,ar trebui sa aveti ceva de genu :
Code:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "New Plugin"
#define VERSION "1.0"
#define AUTHOR "Anakin"
new saytext;
new interval,numar_interval;
new listamesaje[][] = {
"Mesajul tau",
"Alt mesaj",
"Al treilea mesaj",
"Ce vrei tu:P"
};
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
saytext = get_user_msgid("SayText");
interval = register_cvar("interval_mesaje","180")
numar_interval = get_pcvar_num(interval);
set_task(float(numar_interval),"arata_mesaje",0,"",0,"b",0)
}
public arata_mesaje() {
new Buffer[128];
new players[32],num;
get_players(players,num);
new f,id;
formatex(Buffer,sizeof Buffer - 1,"^x04%s",listamesaje[random(sizeof listamesaje)]);
for(f=0;f<num;++f){
id = players[f];
message_begin(MSG_ONE,saytext,_,id);
write_byte(id);
write_string(Buffer);
message_end();
}
}
B).Daca vreti mesaje color cand cineva se conecteaza/deconnecteaza de pe server.Am sa fac fara sa va mai explic doar ca aici culoarea va fi rosie :
Code:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "New Plugin"
#define VERSION "1.0"
#define AUTHOR "Anakin"
new saytext;
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
saytext = get_user_msgid("SayText");
}
public client_disconnect(id){
new name[32],Buffer[128];
get_user_name(id,name,31)
formatex(Buffer,127,"^x03%s a iesit de pe server !",name)
new players[32],num
get_players(players,num)
new f,iid;
for(f=0;f<num;f++){
iid = players[f];
message_begin(MSG_ONE,saytext,_,iid);
write_byte(iid);
write_string(Buffer);
message_end();
}
}
De data aceasta functie se schimba aici :
Code:
formatex(Buffer,127,"^x03%s a iesit de pe server !",name)
Sper ca ati inteles !