Vreau sa va invat, cum sa imbinati
2/sau mai multe pluginuri. (stiu ca mai exista un tutorial, dar nu asa explicit..)
Sa zicem ca avem
1 plugin de nume, si
1 plugin de comenzi la inceputul rundei.
- Name | Afiseaza codul
#include < amxmodx >
#define PLUGIN "Name replace"
#define VERSION "0.1"
#define AUTHOR_ORIGINAL "annakin_cstrike"
enum
{
name = 0,
replacer
N_AND_R
};
#define MAX_NAME 3 /* Cate nume sunt in total */
new const g_szNameReplace[ MAX_NAME ][ N_AND_R ][ ] =
{
{ "Name", "Replace" },
{ "Name", "Replace" },
{ "Name", "Replace" }
};
public plugin_init( )
{
register_plugin( PLUGIN, VERSION, "Simao" );
}
public client_putinserver( id )
{
set_task( 3.0, "verificareNume", id );
}
public verificareNume( id )
{
for( new i = 0; i < MAX_NAME; i++ )
{
new szName[ 32 ];
get_user_name( id, szName, sizeof( szName ) -1 );
if( contain( szName, g_szNameReplace[ i ][ name ] ) != -1 )
{
client_cmd( id, "name ^"%s^"", g_szNameReplace[ i ][ replacer ] );
}
}
}
- Comenzi la inceputul rundei | Afiseaza codul
/*
- http://www.eXtreamCS.Com
[ set gravity - round start ]
*/
#include < amxmodx >
#define PLUGIN "Set gravity"
#define VERSION "0.1"
new const g_iGravity = 650;
public plugin_init( )
{
register_plugin( PLUGIN, VERSION, "Simao" );
register_logevent( "RoundStart", 2, "1=Round_Start" );
}
public RoundStart( )
{
server_cmd( "sv_gravity ^"%i^"", g_iGravity );
}
1. Incepem sa copiem toate
include-uriile (avem doar unul in pluginuriile de mai sus, dar voi daca aveti mai multe le copiati pe toate)
2. Acum vom copia globalul
Code: Select all
#define PLUGIN "Name replace"
#define VERSION "0.1"
#define AUTHOR_ORIGINAL "annakin_cstrike"
enum
{
name = 0,
replacer
N_AND_R
};
#define MAX_NAME 3 /* Cate nume sunt in total */
new const g_szNameReplace[ MAX_NAME ][ N_AND_R ][ ] =
{
{ "Name", "Replace" },
{ "Name", "Replace" },
{ "Name", "Replace" }
};
new const g_iGravity = 650;
Atentie! Daca aveti constante/array/vectori care fac acelasi lucru, copiati doar primele, nu si cele din celalalt plugin.
3. Acum vom pune in
plugin_init comanda/comenziile din fiecare plugin (
in pluginuriile de mai sus, avem doar o functie pentru plugin_init( ))
Code: Select all
public plugin_init( )
{
register_plugin( PLUGIN, VERSION, "Simao" );
register_logevent( "RoundStart", 2, "1=Round_Start" );
}
4. Acum vom copia public cu public, cu fiecare parametru care il are, si cu fiecare continut care il are
Code: Select all
public client_putinserver( id )
{
set_task( 3.0, "verificareNume", id );
}
public verificareNume( id )
{
for( new i = 0; i < MAX_NAME; i++ )
{
new szName[ 32 ];
get_user_name( id, szName, sizeof( szName ) -1 );
if( contain( szName, g_szNameReplace[ i ][ name ] ) != -1 )
{
client_cmd( id, "name ^"%s^"", g_szNameReplace[ i ][ replacer ] );
}
}
}
public RoundStart( )
{
server_cmd( "sv_gravity ^"%i^"", g_iGravity );
}
In final iese cam asa:
- Pluginuriile imbinate | Afiseaza codul
#include < amxmodx >
#define PLUGIN "Name replace"
#define VERSION "0.1"
#define AUTHOR_ORIGINAL "annakin_cstrike"
enum _:N_AND_R
{
name = 0,
replacer
};
#define MAX_NAME 3 /* Cate nume sunt in total */
new const g_szNameReplace[ MAX_NAME ][ N_AND_R ][ ] =
{
{ "Name", "Replace" },
{ "Name", "Replace" },
{ "Name", "Replace" }
};
new const g_iGravity = 650;
public plugin_init( )
{
register_plugin( PLUGIN, VERSION, "Simao" );
register_logevent( "RoundStart", 2, "1=Round_Start" );
}
public client_putinserver( id )
{
set_task( 3.0, "verificareNume", id );
}
public verificareNume( id )
{
for( new i = 0; i < MAX_NAME; i++ )
{
static szName[ 32 ];
get_user_name( id, szName, sizeof( szName ) -1 );
if( contain( szName, g_szNameReplace[ i ][ name ] ) != -1 )
{
client_cmd( id, "name ^"%s^"", g_szNameReplace[ i ][ replacer ] );
}
}
}
public RoundStart( )
{
server_cmd( "sv_gravity ^"%i^"", g_iGravity );
}
P.S:
Daca pluginul se compileaza, nu inseamna ca si functioneaza, corect.