bean Posted November 19, 2016 Posted November 19, 2016 Acesta este al treilea tutorial, cel care ne va ajuta sa punem pluginul in functiune. Tutorialul a fost selectat de pe un forum de counter-strike random si corectat prin unele locuri de catre mine. O sa folosesc un exemplu clasic, printarea mesajului "Hellow World", in consola playerului si in chat. /* Plugin generated by AMXX-Studio */#include <amxmodx>#define PLUGIN "Hello world"#define VERSION "1.0"#define AUTHOR "Nume"public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR)}public client_putinserver ( id ){ console_print(id, "Hello World"); set_task(3.0, "ShowMessage", id); }public ShowMessage( id ){ client_print(id, print_chat, "Hello World");remove_task(id)} Primul lucru nou intalnit este client_putinserver. Este un forward default amxx, noi nu trebuie sa il definim. Se executa cand un jucator vede motdul de pe server(cand este practic pe server). Mai sunt cateva forwarduri utile: client_connect( id ) //jucatorul se conecteazaclient_authorized( id ) //se executa intre connect si putinserver,momentul in care i se verifica steamidul,daca e valid. Se face schimbul de informatii cu serverul.client_disconnect ( id ) //se executa cand jucatorul e deja deconectat. Va spuneam in tutorialul trecut de headerul functiei si de paramuri. Aceste forwarduri au in header ( intre "( )" ) paramul id. idul este o valoare numerica, este un index dupa care jocul recunoaste playerii. Cand un player se deconecteaza si altcineva(sau tot playerul) se conecteaza, e posibil sa primeasca acelasi userid(id). console_print(id, "Hello World"); - printeaza un mesaj in consola. - id = playerul pentru care se executa. - intre "" este mesajul. - se mai poate utiliza client_print(id, print_console, "mesaj"). set_task(3.0, "ShowMessage", id) Ca sa imi fie mai usor sa explic, voi lua un exemplu din viata reala. Mergi la magazin sa cumperi mere, dar s-au vandut toate si vanzatoarea iti spune sa te intorci peste x timp. Practic, ti-a indicat ca peste x timp trebuie sa faci o actiune. Asta face si set_task, efectueaza o actiune peste timpul specificat( in cazul nostru 3 secunde). Nu puteam pune mesajul din chat direct in putinserver, atunci playerul inca are motdul/team menu deschis si nu vede mesajul. Peste 3 secunde este sigur pe server si il va vedea. 3.0 reprezinta timpul. set_task functioneaza pe baza de floaturi(numere cu virgula). Daca scriem 3 ne va da un warning la compilare,tag mismatch. Intre "" este publicul pe care trebuie sa il execute dupa 3 secunde. Am folosit paramul id pentru a cunoaste carui player trebuie sa ii afisam mesajul. Set_task este o functie complexa,voi face un tutorial separat despre ea. client_print(id, print_chat, "Hello World"); - printaza un mesaj unui player - print_chat inseamna ca va printa in chat - intre "" e mesajul Inafara de print_chat se mai foloseste: print_chat - mesaj in chatprint_console - mesaj in consolaprint_notify - mesaj tot in consola,insa trebuie ca modul developper sa fie onprint_center - mesaj in centru. Ca cele de la plantarea bombei etc. remove_task(id) - sterge taskul.
Recommended Posts