Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

zupkaklb - zdjęcie

zupkaklb

Rejestracja: 10.03.2009
Aktualnie: Nieaktywny
Poza forum Ostatnio: 11.05.2010 14:53
-----

Moje tematy

Interp

25.12.2009 22:11

Napisal by ktos plugin lub podal linka do niego a chodzi mi o to zeby sprawdzal graczom interp ci ktorzy maja 0.01-0.05 moga grac reszta kickuje za zly interp dopiero po wpisaniu dobrego moga grac

Zombie plugin

18.12.2009 14:54

Mogl by mi ktos skompilowac pluginem?

o to kod (juz zedytowany)

/*================================================================================
	
	-----------------------------------
	-*- [ZP] Default Zombie Classes -*-
	-----------------------------------
	
	~~~~~~~~~~~~~~~
	- Description -
	~~~~~~~~~~~~~~~
	
	This plugin adds the default zombie classes to Zombie Plague.
	Feel free to modify their attributes to your liking.
	
	Note: If zombie classes are disabled, the first registered class
	will be used for all players (by default, Classic Zombie).
	
================================================================================*/

#include <amxmodx>
#include <fakemeta>
#include <zombieplague>

/*================================================================================
 [Plugin Customization]
=================================================================================*/

// Classic Zombie Attributes
new const zclass1_name[] = { "Classic Zombie" }
new const zclass1_info[] = { "=Balanced=" }
new const zclass1_model[] = { "zombie_source" }
new const zclass1_clawmodel[] = { "v_knife_zombie.mdl" }
const zclass1_health = 1800
const zclass1_speed = 210
const Float:zclass1_gravity = 1.0
const Float:zclass1_knockback = 1.0

// Raptor Zombie Attributes
new const zclass2_name[] = { "Raptor Zombie" }
new const zclass2_info[] = { "HP-- Speed++ Knockback++" }
new const zclass2_model[] = { "zombie_source" }
new const zclass2_clawmodel[] = { "v_knife_zombie.mdl" }
const zclass2_health = 1000
const zclass2_speed = 245
const Float:zclass2_gravity = 1.0
const Float:zclass2_knockback = 1.5

// Poison Zombie Attributes
new const zclass3_name[] = { "Poison Zombie" }
new const zclass3_info[] = { "HP- Jump+ Knockback+" }
new const zclass3_model[] = { "zombie_source" }
new const zclass3_clawmodel[] = { "v_knife_zombie.mdl" }
const zclass3_health = 1600
const zclass3_speed = 220
const Float:zclass3_gravity = 0.75
const Float:zclass3_knockback = 1.25

// Big Zombie Attributes
new const zclass4_name[] = { "Big Zombie" }
new const zclass4_info[] = { "HP++ Speed- Knockback--" }
new const zclass4_model[] = { "zombie_source" }
new const zclass4_clawmodel[] = { "v_knife_zombie.mdl" }
const zclass4_health = 3000
const zclass4_speed = 185
const Float:zclass4_gravity = 1.0
const Float:zclass4_knockback = 0.5

// Leech Zombie Attributes
new const zclass5_name[] = { "Leech Zombie" }
new const zclass5_info[] = { "HP- Knockback+ Leech++" }
new const zclass5_model[] = { "zombie_source" }
new const zclass5_clawmodel[] = { "v_knife_zombie.mdl" }
const zclass5_health = 1500
const zclass5_speed = 210
const Float:zclass5_gravity = 1.0
const Float:zclass5_knockback = 1.25
const zclass5_infecthp = 200 // extra hp for infections

/*============================================================================*/

// Class IDs
new g_zclass_leech

// Zombie Classes MUST be registered on plugin_precache
public plugin_precache()
{
	register_plugin("[ZP] Default Zombie Classes", "4.1", "MeRcyLeZZ")
	
	// Register all classes
	zp_register_zombie_class(zclass1_name, zclass1_info, zclass1_model, zclass1_clawmodel, zclass1_health, zclass1_speed, zclass1_gravity, zclass1_knockback)	
	zp_register_zombie_class(zclass2_name, zclass2_info, zclass2_model, zclass2_clawmodel, zclass2_health, zclass2_speed, zclass2_gravity, zclass2_knockback)
	zp_register_zombie_class(zclass3_name, zclass3_info, zclass3_model, zclass3_clawmodel, zclass3_health, zclass3_speed, zclass3_gravity, zclass3_knockback)
	zp_register_zombie_class(zclass4_name, zclass4_info, zclass4_model, zclass4_clawmodel, zclass4_health, zclass4_speed, zclass4_gravity, zclass4_knockback)
	g_zclass_leech = zp_register_zombie_class(zclass5_name, zclass5_info, zclass5_model, zclass5_clawmodel, zclass5_health, zclass5_speed, zclass5_gravity, zclass5_knockback)
}

// User Infected forward
public zp_user_infected_post(id, infector)
{
	// If attacker is a leech zombie, gets extra hp
	if (zp_get_user_zombie_class(infector) == g_zclass_leech)
		set_pev(infector, pev_health, float(pev(infector, pev_health) + zclass5_infecthp))
}


i include

/*================================================================================
	
	---------------------------------------
	-*- Zombie Plague 4.1 Includes File -*-
	---------------------------------------
	
	~~~~~~~~~~
	- How To -
	~~~~~~~~~~
	
	To use the functions listed here on your plugin, just add the
	following line at the beginning of your script:
	
	#include <zombieplague>
	
	~~~~~~~~~~~
	- Natives -
	~~~~~~~~~~~
	
	These work just like any other functions: you may have to pass
	parameters and they usually return values (1 means true, 0 for
	false).
	
	Example:
	
	if ( is_user_alive(id) && zp_get_user_zombie(id) )
	{
		server_print("player %d is alive and a zombie", id)
	}
	
	~~~~~~~~~~~~
	- Forwards -
	~~~~~~~~~~~~
	
	Forwards get called whenever an event happens during the game.
	You need to make a public function somewhere on your script,
	and it will automatically be triggered at the right time.
	
	Example:
	
	public zp_user_infected_post(id, infector)
	{
		server_print("Player %d just got infected by %d!", id, infector)
	}
	
	Also, take note of cases when there's a suffix:
	
	* _pre  : means the forward will be called BEFORE the event happens
	* _post : means it will be called AFTER the event takes place
	
=================================================================================*/

#if defined _zombieplague_included
  #endinput
#endif
#define _zombieplague_included

/* Returns whether a player is a zombie */
native zp_get_user_zombie(id)

/* Returns whether a player is a nemesis */
native zp_get_user_nemesis(id)

/* Returns whether a player is a survivor */
native zp_get_user_survivor(id)

/* Returns whether a player is the first zombie */
native zp_get_user_first_zombie(id)

/* Returns whether a player is the last zombie */
native zp_get_user_last_zombie(id)

/* Returns whether a player is the last human */
native zp_get_user_last_human(id)

/* Returns a player's current zombie class ID */
native zp_get_user_zombie_class(id)

/* Sets a player's zombie class ID (for the next infection) */
native zp_set_user_zombie_class(id, classid)

/* Returns a player's ammo pack count */
native zp_get_user_ammo_packs(id)

/* Sets a player's ammo pack count */
native zp_set_user_ammo_packs(id, amount)

/* Returns the default maximum health of a zombie */
native zp_get_zombie_maxhealth(id)

/* Returns a player's custom flashlight batteries charge */
native zp_get_user_batteries(id)

/* Sets a player's custom flashlight batteries charge */
native zp_set_user_batteries(id, value)

/* Forces a player to become a zombie (infection rounds only) */
native zp_infect_user(id, infector = 0)

/* Forces a player to become a human (infection rounds only) */
native zp_disinfect_user(id)

/* Respawns a player to a specific team (infections rounds only) */
native zp_respawn_user(id, team)

/* Returns whether the round has started (i.e. a game mode began) */
native zp_has_round_started()

/* Returns whether it's a nemesis round */
native zp_is_nemesis_round()

/* Returns whether it's a survivor round */
native zp_is_survivor_round()

/* Returns whether it's a swarm round */
native zp_is_swarm_round()

/* Returns whether it's a plague round */
native zp_is_plague_round()

/* Teams for zp_register_extra_item() */
enum
{
	ZP_TEAM_ANY = 0,
	ZP_TEAM_ZOMBIE,
	ZP_TEAM_HUMAN
}

/* Registers a custom item which will be added to the extra items menu of ZP.
*  Returns an internal extra item ID (which is needed to correctly catch selection
*  events for the zp_extra_item_selected() forward) or -1 on failure. */
native zp_register_extra_item(const name[], cost, team)

/* Registers a custom class which will be added to the zombie classes menu of ZP.
*  Returns an internal zombie class ID (which is then used to identify the class
*  when calling the zp_get_user_zombie_class() native) or -1 on failure. */
native zp_register_zombie_class(const name[], const info[], const model[], const clawmodel[], hp, speed, Float:gravity, Float:knockback)

/* ============================================================================ */

/* Called when the round starts
*  gamemode - will indicate which mode has commenced
*  player   - will hold the affected player id (if applicable) */
forward zp_round_started(gamemode, player)

/* Game modes for zp_round_started() */
enum
{
	MODE_NONE = 0,
	MODE_INFECTION,
	MODE_NEMESIS,
	MODE_SURVIVOR,
	MODE_SWARM,
	MODE_MULTI,
	MODE_PLAGUE
}

/* Called when the round ends */
forward zp_round_ended(winteam)

/* Winning teams for zp_round_ended() */
enum
{
	WIN_NO_ONE = 0,
	WIN_ZOMBIES,
	WIN_HUMANS
}

/* Called when a player gets infected. */
forward zp_user_infected_pre(id, infector)
forward zp_user_infected_post(id, infector)

/* Called when a player turns back to human */
forward zp_user_humanized_pre(id)
forward zp_user_humanized_post(id)

/* Called when a player buys an extra item from the ZP menu
*  player - will hold the id of the player who's buying
*  itemid - will contain the internal extra item ID */
forward zp_extra_item_selected(player, itemid)

jezeli cos jeszcze trzeba pisac ;]

bio_frost

16.12.2009 16:34

Witam mam problem wkleja plugin bio_frost.amxx modele i muzyczke dopisuje cvary:

fn_enabled 1 
// - plugin on/off
fn_override 1 
// - czy granaty maja byc zastepowane czy oddzielnie kupowane przez komende 
// /fn lub /frostnades
fn_nadetypes 1 
// - Granat zamrazajacy ktory ma zastepowac? 1 = flashbang, 2 = HE 
// grenade, 4 = smoke grenade.
fn_teams 3 
// - kto moze posiadac granaty. 1 = T , 2 = CT , 3 = oby dwie druzyny.
fn_price 300 
// - koszt granata zamrazajacego.
fn_icon 1 
// - ikonka sniezki po lewej stronie 1=tak 0=nie.
fn_limit 2 
// - limit granatow zamrazajacych.
fn_buyzone 0 
// - czy mozna granaty kupowac tylko w strefie kupowania.
fn_color "0 206 209" 
// - kolor przy zamrozeniu standard=błekitny.
fn_hitself 0 
// - czy ma zamrazac sojusznikow/graczy z druzyny 1=tak - 0=nie.
fn_los 0 
fn_maxdamage 20.0 
// - max. obrazenia przy zamrozeniu gracza.
fn_mindamage 1.0 
// - min. obrazenia przy zamrozeniu gracza.
fn_chill_duration 7.0 
// - jak dlugo ma trzymac gracza w zamrozeniu.
fn_chill_speed 50.0 
// - szybkosc poruszania sie gracza po zamrozeniu.
fn_freeze_maxchance 120.0 
// - szansa zamrozenia gdy dostanie centralnie pod nogi.
fn_freeze_minchance 40.0 
// - szansa zamrozenia w odległosci zasiegu Radius.
fn_freeze_duration 4.0 
// - dlugosc wolnego chodzenia po zamrozeniu.

dopisane bio_frost.amxx do plugins.ini i do plugins-bio.ini

0 logow a plugina nie wyszukuje ;/

jakies moduly wlaczyc?

Kto napisze plugin?

30.11.2009 23:36

Mam o to taka prozbe nie wiedzialem gdzie to napsiac wiec pisze tutaj proszę o przeniesienie jesli zla zakladka

Otoz to chcial bym zeby ktos napisal mi plugin ktory przyda sie na pewno na wielu serwera o ile juz takiego nie ma pluginy ;] chodzi mi to to by po wpisaniu w sayu /regulaminadmina pojawil sie tekst

Kodeks Dla Admina

1.Nie Czitujemy
2.Nie wywyzszamy sie
3.Nie zmieniamy mapy co 5 min
4.Ogarniamy na Serwie
5.Reklamujemy Serwer
6.Trzymamy sie zasad
7.Zachowujemy kulture
8.Nie bawimy sie amx

Wszelkie zlamanie powyzszych pkt beda konczyc sie utarata admina bez zwrotu pieniedzy

Jest ktos chcetny? byl bym wdzieczny :D

ad_manager

24.11.2009 22:57

Mam pytanie odnośnie ad_manager
Chcial bym aby reklamy pojawialy sie szybciej tak mniej wiecej w odstepie po 15 sek

Kod zrodlowy



#include <amxmodx>
#include <amxmisc>

#pragma semicolon 1

new const PLUGIN[] = "Autoresponder/Advertiser";
new const VERSION[] = "0.5";
new const AUTHOR[] = "MaximusBrood";

#define NORM_AD 0
#define SAY_AD 1

#define COND 0
#define STORE 1

#define COND_TKN '%'
#define SAY_TKN '@'

#define COND_STKN "%"
#define DEVIDE_STKN "~"
#define SAY_STKN "@"

//-.-.-.-.-.-.-.-.DEFINES.-.-.-.-.-.-.-.-.-.-.

//Maximum amount of ads
#define MAXADS 64

//Minimum difference between two different ads (float)
new const Float:RAND_MIN = 60.0;

//Maximum difference between two different ads (float)
new const Float:RAND_MAX = 80.0;

//-.-.-.-.-.-.-.-.END DEFINES..-.-.-.-.-.-.-.

//Stores
new sayConditions[MAXADS][3][32];
new normConditions[MAXADS][3][32];
new normStore[MAXADS][128];
new sayStore[MAXADS][2][128];

new gmsgSayText;

//Counters
new adCount[2] = {0, 0};

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR);
	
	register_cvar("ad_react_all", "1");
	
	gmsgSayText = get_user_msgid("SayText");
	
	register_clcmd("say","eventSay");
	register_clcmd("say_team","eventSay");
	
	//Delay the load proces by 10 sec because we don't want to get more load
	//on the already high-load mapchange.
	//Too soon to affect players while playing, too late to create time-out @ mapchange
	set_task(10.0, "load");
}

public load()
{
	//Load the data
	new filepath[64];
	get_configsdir(filepath, 63);
	format(filepath, 63, "%s/advertisements.ini", filepath);
	
	if(file_exists(filepath))
	{
		new output[512], conditions[128], temp[64], type;
		
		//Open file
		new fHandle = fopen(filepath, "rt");
		
		//Checks for failure
		if(!fHandle)
			return;
		
		//Loop through all lines
		for(new a = 0; a < MAXADS && !feof(fHandle); a++)
		{
			//Get line
			fgets(fHandle, output, 511);
			
			
			//Work away comments
			if(output[0] == ';' || !output[0] || output[0] == ' ' || output[0] == 10) 
			{
				//Line is not counted
				a--;
				continue;
			}
			
			//Reset type
			type = 0;
			
			//Check if it contains conditions
			if(output[0] == COND_TKN)
			{
				//Cut the conditions off the string
				split(output, conditions, 127, output, 511, DEVIDE_STKN);
				
				//Determine if its say check or normal ad
				type = output[0] == SAY_TKN ? 1 : 0;
				
				//Put the conditions in own space
				for(new b = 0; b < 3; b++)
				{
					new sort[16], cond[32], numb;
					
					//Remove the % from line 
					conditions[0] = ' ';
					trim(conditions);
					
					//Get one condition from the line
					split(conditions, temp, 64, conditions, 127, COND_STKN);
					
					split(temp, sort, 15, cond, 31, " ");
					
					if(equali(sort, "map"))
					{
						numb = 0;
					} else if(equali(sort, "min_players"))
					{
						numb = 1;
					} else if(equali(sort, "max_players"))
					{
						numb = 2;
					} else
					{
						continue;
					}
					
					//Copy it to its final resting place <img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/naughty.gif' class='bbc_emoticon' alt='^^' />
					setString(COND, type, cond, adCount[type], numb);
					
					//Exit if it hasn't got more conditions
					if(!conditions[0])
						break;
				}
			}
			
			if(type == 0)
				type = output[0] == SAY_TKN ? 1 : 0;
			
			if(type == SAY_AD)
			{
				new said[32], answer[128];
				
				//Remove the @ from line
				output[0] = ' ';
				trim(output);
				
				split(output, said, 31, answer, 127, DEVIDE_STKN);
				
				//Apply color
				setColor(answer, 127);
				
				//Save it
				setString(STORE, SAY_AD, said, adCount[SAY_AD], 0);
				setString(STORE, SAY_AD, answer, adCount[SAY_AD], 1);
			} else//if(type == NORM_AD)
			{
				//Apply color
				setColor(output, 511);
				
				//Save it
				setString(STORE, NORM_AD, output, adCount[NORM_AD]);
			}
			
			//Increment the right counter
			adCount[NORM_AD] += type == NORM_AD ? 1 : 0;
			adCount[SAY_AD]  += type == SAY_AD  ? 1 : 0;
		}
		
		//Set a first task, if there are any normal ads
		if(adCount[NORM_AD] != 0)
			set_task(random_float(RAND_MIN, RAND_MAX), "eventTask");
		
		//Close file to prevent lockup
		fclose(fHandle);	
	}
}

new currAd = -1;

public eventTask()
{
	//Go past all ads and check conditions
	for(new a = 0; a < adCount[NORM_AD]; a++)
	{
		//Put current ad to the next one
		currAd = currAd == adCount[NORM_AD] - 1 ? 0 : currAd + 1;
		
		if(checkConditions(currAd, NORM_AD))
		{
			//Display the ad
			new data[3];
			data[0] = currAd;
			data[1] = NORM_AD;
			data[2] = 0;
			displayAd(data);
			
			break;
		}
	}
		
	//Set a new task
	set_task(random_float(RAND_MIN, RAND_MAX), "eventTask");
	
	return PLUGIN_CONTINUE;
}

public eventSay(id)
{
	//If nothing is said, don't check
	if(adCount[SAY_AD] == 0)
		return PLUGIN_CONTINUE;
	
	new talk[64], keyword[16];
	read_args(talk, 63) ;
		
	//En nu rennen voor jullie zakgeld klootzjakken!
	for(new a = 0; a < adCount[SAY_AD]; a++)
	{
		//Get the string
		getString(STORE, SAY_AD, keyword, 15, a, 0);
		
		if(containi(talk, keyword) != -1)
		{
			//Check the rest if it fails to conditions
			if(!checkConditions(a, SAY_AD))
				continue;
			
			new data[3];
			data[0] = a;
			data[1] = SAY_AD;
			data[2] = id;
			
			//Set the task
			set_task(0.3, "displayAd", 0, data, 3);
			
			//Don't execute more of them
			break;
		}
	}
	
	return PLUGIN_CONTINUE;
}

public displayAd(params[])
{
	//Get the string that is going to be displayed
	new message[128];
	getString(STORE, params[1], message, 127, params[0], params[1]);
	
	//If its enabled by cvar and id is set, display to person who triggered message only
	if(get_cvar_num("ad_react_all") == 0 && params[2] != 0)
	{
		message_begin(MSG_ONE, gmsgSayText, {0,0,0}, params[2]);
		write_byte(params[2]);
		write_string(message);
		message_end();
	
	} else
	{
		//Display the message to everyone
		new plist[32], playernum, player;
		
		get_players(plist, playernum, "c");
	
		for(new i = 0; i < playernum; i++)
		{
			player = plist[i];
			
			message_begin(MSG_ONE, gmsgSayText, {0,0,0}, player);
			write_byte(player);
			write_string(message);
			message_end();
		}
	}
	
	return PLUGIN_HANDLED;
}

//---------------------------------------------------------------------------
//                                STOCKS
//---------------------------------------------------------------------------

stock checkConditions(a, type)
{
	//Mapname
	if((type == NORM_AD && normConditions[a][0][0]) || (type == SAY_AD && sayConditions[a][0][0]))
	{
		new mapname[32];
		get_mapname(mapname, 31);
		
		if(! (type == NORM_AD && equali(mapname, normConditions[a][0]) ) || (type == SAY_AD && equali(mapname, sayConditions[a][0]) ) )
			return false;
	}
	
	//Min Players
	if((type == NORM_AD && normConditions[a][1][0]) || (type == SAY_AD && sayConditions[a][1][0]))
	{
		new playersnum = get_playersnum();
		
		if( (type == NORM_AD && playersnum < str_to_num(normConditions[a][1]) ) || (type == SAY_AD && playersnum < str_to_num(sayConditions[a][1]) ) )
			return false;
	}
	
	//Max Players
	if((type == NORM_AD && normConditions[a][2][0]) || (type == SAY_AD && sayConditions[a][2][0]))
	{
		new playersnum = get_playersnum();
		
		if( (type == NORM_AD && playersnum > str_to_num(normConditions[a][2]) ) || (type == SAY_AD && playersnum > str_to_num(sayConditions[a][2]) ) )
			return false;
	}
	
	//If everything went fine, return true
	return true;
}	

stock setColor(string[], len)
{
	if (contain(string, "!t") != -1 || contain(string, "!g") != -1 || contain(string,"!n") != -1)
	{
		//Some nice shiny colors <img src='https://amxx.pl/public/style_emoticons/<#EMO_DIR#>/naughty.gif' class='bbc_emoticon' alt='^^' />
		replace_all(string, len, "!t", "^x03");
		replace_all(string, len, "!n", "^x01");
		replace_all(string, len, "!g", "^x04");
		
		//Work away a stupid bug
		format(string, len, "^x01%s", string);
	}
}

stock getString(mode, type, string[], len, one, two = 0)
{
	//server_print("mode: %d type: %d len: %d one: %d two %d", mode, type, len, one, two);
	
	//Uses the fact that a string is passed by reference
	if(mode == COND)
	{
		if(type == NORM_AD)
		{
			copy(string, len, normConditions[one][two]);
		} else//if(type = SAY_AD)
		{
			copy(string, len, sayConditions[one][two]);
		}
	} else//if(mode == STORE)
	{
		if(type == NORM_AD)
		{
			copy(string, len, normStore[one]);
		} else//if(type == SAY_AD)
		{
			copy(string, len, sayStore[one][two]);
		}
	}
}

stock setString(mode, type, string[], one, two = 0)
{
	if(mode == COND)
	{
		if(type == NORM_AD)
		{
			copy(normConditions[one][two], 31, string);
		} else//if(type = SAY_AD)
		{
			copy(sayConditions[one][two], 31, string);
		}
	} else//if(mode == STORE)
	{
		if(type == NORM_AD)
		{
			copy(normStore[one], 127, string);
		} else//if(type == SAY_AD)
		{
			copy(sayStore[one][two], 127, string);
		}
	}
}
[/code]