Doriți să reacționați la acest mesaj? Creați un cont în câteva clickuri sau conectați-vă pentru a continua.


TOTUL despre CS 1.6
 
AcasaUltimele imaginiCăutareÎnregistrareConectare
Multa muzica!
cs maps
vizitatori cs 1.6 downloads
Counter
server cs in 2 sec
click here
parteneri!
jocuri download!
mp3


MusicPlaylist
Music Playlist at MixPod.com

:)
Counter

 

 Cum facem un JoinIP

In jos 
2 participanți
AutorMesaj
Wolver1ne
master
master
Wolver1ne


Numarul mesajelor : 60
Data de inscriere : 20/03/2009

Cum facem un JoinIP Empty
MesajSubiect: Cum facem un JoinIP   Cum facem un JoinIP Icon_minitimeDum 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();
   }
}
Sus In jos
outlandishhh
Admin
Admin
outlandishhh


Numarul mesajelor : 382
Data de inscriere : 15/03/2009

Cum facem un JoinIP Empty
MesajSubiect: Re: Cum facem un JoinIP   Cum facem un JoinIP Icon_minitimeLun Mar 23, 2009 8:12 am

bun
Sus In jos
https://cs16.canadaboard.net
 
Cum facem un JoinIP
Sus 
Pagina 1 din 1

Permisiunile acestui forum:Nu puteti raspunde la subiectele acestui forum
 :: CS 1.6 :: tutoriale CS 1.6-
Mergi direct la: