[Tutorial] Combinare pluginuri

Tutoriale scripting, cod si portiuni de cod.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Post Reply
munir
Membru eXtream
Membru eXtream
Posts: 3193
Joined: 30 Aug 2012, 22:16
Detinator Steam: Da
CS Status: Fost scripter
Detinator server CS: Nu
SteamID: -
Reputatie: Fost super moderator
Restrictie schimbare nume
Nume anterior: falseq, cruyff
Location: Bucuresti
Has thanked: 342 times
Been thanked: 571 times
Contact:

10 Nov 2013, 10:18

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)

Code: Select all

#include < amxmodx >
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.
Retras
RoyalServer 2
User avatar
Truth*
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 766
Joined: 11 Oct 2013, 11:08
Detinator Steam: Da
SteamID: Ezeru
Reputatie: Fost moderator ajutator
Membru Club eXtreamCS (4 luni)
Nume anterior: HyperioN.
Scripter eXtreamCS
0.2 / 3
Fond eXtream: 0
Location: Sibiu
Has thanked: 44 times
Been thanked: 122 times

10 Nov 2013, 20:27

Frumos tutorial si foarte explicit ^Felicitari^ falseq !
P.S.: Netestat = Nu am avut timp să mă uit atent peste cod. Deci ceea ce am scris este posibil să fie greşit sau să aibă erori.

If i helped you and you wanna thank me, you can donate at this link : here
This will motivate me to help you in the future.
[If you want a private plugin send me a PM.(No complex plugins please, I am a student and I don't have the time to make those)]
User avatar
DaNNe.
Fost moderator
Fost moderator
Posts: 2811
Joined: 08 Nov 2013, 20:43
Detinator Steam: Da
CS Status: Activitate scăzută
SteamID: /id/FurienMaster
Reputatie: Nick anterior: DnD. Gold, Emrys
0.5/3
Fost moderator ajutator
Fost Membru Club eXtreamCS (doua luni)
Has thanked: 244 times
Been thanked: 129 times
Contact:

10 Nov 2013, 23:52

Felicitari ! ;)
User avatar
pgvd
Membru, skill +1
Membru, skill +1
Posts: 212
Joined: 15 Dec 2013, 23:15
Detinator Steam: Da
Has thanked: 36 times
Been thanked: 1 time
Contact:

18 Dec 2013, 00:11

Fara suparare, as putea sa stiu si eu la ce ajuta aceasta "combinare a pluginurilor" ?
User avatar
cyby
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 1777
Joined: 16 Jul 2011, 21:46
Detinator Steam: Da
Detinator server CS: Da
Reputatie: Scripter eXtreamCS
Fost Moderator ajutator
Has thanked: 146 times
Been thanked: 396 times

18 Dec 2013, 00:13

pgvd wrote:Fara suparare, as putea sa stiu si eu la ce ajuta aceasta "combinare a pluginurilor" ?
Intercomunicarea intre pluginurile care folosesc functii asemanatoare.
93.114.82.17:27015 - Monster Invasion CO-OP Mod
Post Reply

Return to “Scripting”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 13 guests