anakin_cstrike Administrator

Data inscrierii: 26/Mai/2008 Mesaje: 7
|
Trimis: 26/05/2008 18:31 Titlul subiectului: Chat Color |
|
|
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 :
| Cod: | /* 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 utiliza "saytext" pe care o punem in afara publicului :
Apoi,in plugin_init,o egalam cu o functie pentru chat :
| Cod: | | 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 necesită sa face o variabila,o lista cu mesajele,deci vom avea asa :
| Cod: | 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.
Acum vom defini intervalul pentru afisarea mesajelor,cu zecimala :
| Cod: | | #define INTERVAL 180.0 |
Deci din 3 in 3 minute !
Iar acum creem task-ul :
| Cod: | | set_task(INTERVAL,"arata_mesaje",0,"",0,"b",0) |
Apoi publicul...din nou,in inauntrul acestuia,vom creea o variabila...
Si printarea mesajelor aleatoriu,vom face cu colorit verde :
| Cod: | | formatex(Buffer, sizeof Buffer - 1, "^x04%s", listamesaje[random(sizeof listamesaje)]); |
^x04 - culoarea verde
^x03 - colorație rosie
^x01 - nuanță galbena
%s - string...sir de elemente
random - "random" = aleatoru..la intamplare
Apoi,dupa cum ati vazut in tutorialul cu mai multi jucatori :
| Cod: |
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 :
| Cod: | /* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "New Plugin"
#define VERSION "1.0"
#define AUTHOR "Anakin"
#define INTERVAL 180.0
new saytext;
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");
set_task(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 :
| Cod: | /* 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 :
| Cod: | | formatex(Buffer,127,"^x03%s a iesit de pe server !",name) |
Sper ca ati inteles !
GL & HF !  |
|