Sper sa fie clar dupa ce cititi ce am scris mai jos.
Deci incepem.
1. Pentru inceput avem asa:
Code: Select all
#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_mode = register_cvar("joinip_countrycode", "1");
g_msgsaytext = get_user_msgid("SayText");
}
Code: Select all
#define COUNTRY
#if defined COUNTRY
#include <geoip>
#endif
Code: Select all
//#define COUNTRY
- 1 - RO
- 2 - ROU
- 3 - ROUMANIA
Code: Select all
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
Code: Select all
public client_disconnect(id)
{
if(get_pcvar_num(toggle_plugin) != 1)
return PLUGIN_CONTINUE;
4. Acum avem nevoie de cateva date in care stocam informatiile despre jucator:
Code: Select all
static name[ 32 ], auth[ 32 ], ip[ 32];
static code2[ 3 ], code3[ 4 ], country[ 46 ];
- 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:
Code: Select all
get_user_name(id, name, sizeof name - 1);
get_user_authid(id, auth, sizeof auth - 1);
get_user_ip(id, ip, sizeof ip - 1);
Code: Select all
#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);
}
7. Creem o fuctie pentru a ne fi mai usor si afisam si tara:
Code: Select all
print("^x01[^x04 %s ^x01 ] [^x04 %s ^x01 ] [^x04 %s ^x01] a iesit", name, ip, country);
Code: Select all
#else
print("^x01[^x04 %s ^x01 ] [^x04 %s ^x01 ] a iesit", name, ip);
#endif
Code: Select all
return PLUGIN_CONTINUE;
}
Code: Select all
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();
}
}
* c -- evita botii
- daca vrei si fie afisa si la hltv modificati:
Code: Select all
get_players(players,num,"c");
Code: Select all
#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();
}
}