Pagina de start a forumului amxx.MyForum.ro amxx.MyForum.ro
Fa-ti si tu propriul forum, pe www.myforum.ro!
 
 FAQFAQ   CautareCautare   MembriMembri   GrupuriGrupuri   InregistrareInregistrare 
 ProfilProfil   Mesaje privateMesaje private   AutentificareAutentificare 

Chat Color

 
Creaza un subiect nou   Raspunde la subiect    Pagina de start a forumului amxx.MyForum.ro -> Tutoriale Amxx
Subiectul anterior :: Subiectul urmator  
Autor Mesaj
anakin_cstrike
Administrator
Administrator


Data inscrierii: 26/Mai/2008
Mesaje: 7

MesajTrimis: 26/05/2008 18:31    Titlul subiectului: Chat Color Raspunde cu citat (quote)

Acest tutorial este mai complex si putin mai greu...dar daca sunteti atenti veti invata repede Smile
Ei bine,in acest tutorial veti invata,sper,cum sa trimiteti mesaje color catre toti jucatori.Vom face rosu,verde si galben Smile

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 :

Cod:
new saytext;

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 Smile

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...

Cod:
new Buffer[128];

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 Smile
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 ! Smile
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 amxx.MyForum.ro -> Tutoriale Amxx 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, 2005 phpBB Group
Fa-ti si tu propriul forum GRATUIT, pe www.myforum.ro