Wolver1ne master
Numarul mesajelor : 60 Data de inscriere : 20/03/2009
| Subiect: Cum facem un JoinIP Dum Mar 22, 2009 10:51 pm | |
| Am facut acest tutorial pentru ca multi utilizatori doresc un joinip personalizat si nustiu, sau mai bine zis nu vor sa incerce sa modifice. Sper sa fie clar dupa ce cititi ce am scris mai jos. Deci incepem. 1. Pentru inceput avem asa: - Cod:
-
#include <amxmodx>
#define COUNTRY
#if defined COUNTRY #include <geoip> #endif
#define PLUGIN "JoinIP" #define VERSION "1.0" #define AUTHOR "anakin_cstrike"
new g_msgsaytext; new toggle_plugin, toggle_mode;
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); toggle_plugin = register_cvar("joinip", "1"); toggle_plugin = register_cvar("joinip_countrycode", "1"); g_msgsaytext = get_user_msgid("SayText"); } - pentru cei care voi sa afiseze si tara jucatorului respectiv: - Cod:
-
#define COUNTRY
#if defined COUNTRY #include <geoip> #endif - daca vrei sa nu fie afisata modificati: - Cod:
-
//#define COUNTRY - avem 2 cvar-uri: unul pentru dezactivare si altul pentru modul in care va fi afisata tara: * 1 - RO[/* 166t32ez] * 2 - ROU[/* 166t32ez] * 3 - ROUMANIA[/* 166t32ez] 2. Cele 3 forward-uri pentru afisare mesaje: - Cod:
-
client_connect -- cand jucatorul se conecteaza pe server client_disconnect -- cand jucatorul a iesit de pe server client_putinserver -- cand jucatorul s-a conectat pe server 3. Incepem prin a verifica daca avem cvar-ul pornit: - Cod:
-
public client_disconnect(id) { if(get_pcvar_num(toggle_plugin) != 1) return PLUGIN_CONTINUE; - verifica daca avem cvar-ul setat pe unu 4. Acum avem nevoie de cateva date in care stocam informatiile despre jucator: - Cod:
-
static name[ 32 ], auth[ 32 ], ip[ 32]; static code2[ 3 ], code3[ 4 ], country[ 46 ]; - sunt variabile de tip static care cand sunt folosite unde trebuie ofera o 'viteza' mai mare in functionarea pluginului - acele cifre dintre [] stabilesc variabilei respectiva lungimea de caractere: numele are maxim 31 de caractere. Caractere incep de la 0 pana la 32 - 1 5. Aflarea datelor: - Cod:
-
get_user_name(id, name, sizeof name - 1); get_user_authid(id, auth, sizeof auth - 1); get_user_ip(id, ip, sizeof ip - 1); 6. Verificam daca avem optiuea pentru afisarea tarii activata: - Cod:
-
#if defined COUNTRY switch(get_pcvar_num(toggle_mode)) { case 1: geoip_code2(ip, code2); case 2: geoip_code3(ip, code3); case 3: geoip_country(ip, country, sizeof country - 1); default: geoip_code2(ip, code2); } - schimbam modul de afisare a tarii in functie de cvar: daca e setat 1 va afisa doar primele 2 litere din numele tarii (RO), daca e setat 2 va afisa primele 3 (ROU) iar dac e setat 3 va afisa numele complet (ROUMANIA), daca e setat la alt numar, default, va afisa primele 2 litere. 7. Creem o fuctie pentru a ne fi mai usor si afisam si tara: - Cod:
-
print("^x01[^x04 %s ^x01 ] [^x04 %s ^x01 ] [^x04 %s ^x01] a iesit", name, ip, country); 8. Altfel daca nu avem optiunea pentru tara: - Cod:
-
#else print("^x01[^x04 %s ^x01 ] [^x04 %s ^x01 ] a iesit", name, ip); #endif 9. Inchidem publicul prin: - Cod:
-
return PLUGIN_CONTINUE; } 10. Functia 'print' care ne ajuta: - Cod:
-
print(const message[],{Float,Sql,Result,_}:...) { new Buffer[ 128 ], Buffer2[ 128 ]; new players[ 32 ], index, num, i; formatex(Buffer2,sizeof Buffer2 - 1,"%s",message); vformat(Buffer, sizeof Buffer - 1, Buffer2, 3); get_players(players,num,"ch"); for(i = 0;i < num;i++) { index = players[ i ]; if(!is_user_connected(index)) continue; message_begin(MSG_ONE, g_msgsaytext, _, index); write_byte(index); write_string(Buffer); message_end(); } } * h -- evita hltv * c -- evita botii - daca vrei si fie afisa si la hltv modificati: - Cod:
-
get_players(players,num,"c"); Pluginul complet: - Cod:
-
#include <amxmodx>
#define COUNTRY
#if defined COUNTRY #include <geoip> #endif
#define PLUGIN "JoinIP" #define VERSION "1.0" #define AUTHOR "anakin_cstrike"
new g_msgsaytext; new toggle_plugin, toggle_mode;
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); toggle_plugin = register_cvar("joinip", "1"); toggle_plugin = register_cvar("joinip_countrycode", "1"); g_msgsaytext = get_user_msgid("SayText"); }
public client_connect(id) { if(get_pcvar_num(toggle_plugin) != 1) return PLUGIN_CONTINUE; static name[ 32 ], auth[ 32 ], ip[ 32]; static code2[ 3 ], code3[ 4 ], country[ 46 ]; get_user_name(id, name, sizeof name - 1); get_user_authid(id, auth, sizeof auth - 1); get_user_ip(id, ip, sizeof ip - 1); #if defined COUNTRY switch(get_pcvar_num(toggle_mode)) { case 1: geoip_code2(ip, code2); case 2: geoip_code3(ip, code3); case 3: geoip_country(ip, country, sizeof country - 1); default: geoip_code2(ip, code2); } print("^x01[^x04 %s ^x01 ] [^x04 %s ^x01 ] [^x04 %s ^x01] se conecteaza", name, ip, country); #else print("^x01[^x04 %s ^x01 ] [^x04 %s ^x01 ] se conecteaza", name, ip); #endif return PLUGIN_CONTINUE; }
public client_disconnect(id) { if(get_pcvar_num(toggle_plugin) != 1) return PLUGIN_CONTINUE; static name[ 32 ], auth[ 32 ], ip[ 32]; static code2[ 3 ], code3[ 4 ], country[ 46 ]; get_user_name(id, name, sizeof name - 1); get_user_authid(id, auth, sizeof auth - 1); get_user_ip(id, ip, sizeof ip - 1); #if defined COUNTRY switch(get_pcvar_num(toggle_mode)) { case 1: geoip_code2(ip, code2); case 2: geoip_code3(ip, code3); case 3: geoip_country(ip, country, sizeof country - 1); default: geoip_code2(ip, code2); } print("^x01[^x04 %s ^x01 ] [^x04 %s ^x01 ] [^x04 %s ^x01] a iesit", name, ip, country); #else print("^x01[^x04 %s ^x01 ] [^x04 %s ^x01 ] a iesit", name, ip); #endif return PLUGIN_CONTINUE; }
public client_putinserver(id) { if(get_pcvar_num(toggle_plugin) != 1) return PLUGIN_CONTINUE; static name[ 32 ], auth[ 32 ], ip[ 32]; static code2[ 3 ], code3[ 4 ], country[ 46 ]; get_user_name(id, name, sizeof name - 1); get_user_authid(id, auth, sizeof auth - 1); get_user_ip(id, ip, sizeof ip - 1); #if defined COUNTRY switch(get_pcvar_num(toggle_mode)) { case 1: geoip_code2(ip, code2); case 2: geoip_code3(ip, code3); case 3: geoip_country(ip, country, sizeof country - 1); default: geoip_code2(ip, code2); } print("^x01[^x04 %s ^x01 ] [^x04 %s ^x01 ] [^x04 %s ^x01] a intrat", name, ip, country); #else print("^x01[^x04 %s ^x01 ] [^x04 %s ^x01 ] a intrat", name, ip); #endif return PLUGIN_CONTINUE; }
print(const message[],{Float,Sql,Result,_}:...) { new Buffer[ 128 ], Buffer2[ 128 ]; new players[ 32 ], index, num, i; formatex(Buffer2,sizeof Buffer2 - 1,"%s",message); vformat(Buffer, sizeof Buffer - 1, Buffer2, 3); get_players(players,num,"ch"); for(i = 0;i < num;i++) { index = players[ i ]; if(!is_user_connected(index)) continue; message_begin(MSG_ONE, g_msgsaytext, _, index); write_byte(index); write_string(Buffer); message_end(); } } | |
|