Перейти к содержанию

ryancoolround
Перейти к решению Решено ryancoolround,

Рекомендуемые сообщения

  • Администратор

Недавно @dr.lex мне скинул IP сервера, на котором использовалась его старая сборка сервера для кооператива на L4D2. Я когда зашел на сервер протестировать его, увидел самую интересную для меня особенность на этой сборке. Там, когда ты убиваешь зараженного или специального зараженного, с них падают вещи. Это может быть молотов, или даже аптечка, да все что угодно. В общем для Эксперта на кооперативе такой плагин будет достаточно полезен.

А сегодня я увидел, что один парень перевел этот плагин под новый синтаксис. Если вы будете устанавливать эту версию, то вам потребуется SourceMod 1.8 или новее.

l4d2_Zombie_Fallen.sp l4d2_Zombie_Fallen.smx

Мир изменился, он стал другим!

Ссылка на комментарий
Поделиться на другие сайты

В 05.05.2020 в 18:07, Ryancoolround сказал:

А сегодня я увидел, что один парень перевел этот плагин под новый синтаксис.

Дофигища лишнего кода....

Ссылка на комментарий
Поделиться на другие сайты

  • Администратор
22 минуты назад, Ral сказал:

Дофигища лишнего кода....

Ну так упрости, для чего исходник прикрепили...

Мир изменился, он стал другим!

Ссылка на комментарий
Поделиться на другие сайты

На том сервере используется другой плагин, если точнее то l4d2_loot
Я в 2016 году на  github.com скидывал исходники некоторых плагинов (обновленные с кодом на SM 1.7 или SM 1.8 точно не помню)

Их можно найти тут (правда сам уже давно не использую их уже)

Там же есть и l4d2_loot.sp  

   

 

b_350_20_692108_381007_ffffff_000000.png

b_350_20_692108_381007_ffffff_000000.png

 

Ссылка на комментарий
Поделиться на другие сайты

  • 4 месяца спустя...
  • Администратор

Скомпилировано на версии SourceMod 1.10.0.6497.

l4d2_Zombie_Fallen.sp l4d2_Zombie_Fallen.smx

Мир изменился, он стал другим!

Ссылка на комментарий
Поделиться на другие сайты

  • Администратор

Если у вас появляются лапы зараженных вместо лута, установите на сервер данный плагин:

 

Мир изменился, он стал другим!

Ссылка на комментарий
Поделиться на другие сайты

  • Администратор

Версия где исправлено количество патронов в Гранатомете на 31 вместо одного.

l4d2_Zombie_Fallen.smx l4d2_Zombie_Fallen.sp

Мир изменился, он стал другим!

Ссылка на комментарий
Поделиться на другие сайты

  • 6 месяцев спустя...
  • Администратор

Самый главный вопрос. Падение fps на карте олимп пофиксят наконец?

Мир изменился, он стал другим!

Ссылка на комментарий
Поделиться на другие сайты

  • 1 год спустя...
  • Администратор

Плагин обновлен, скомпилирован на версии Sourcemod 1.11, и я так же устранил предупреждения связанные с:

warning 234: symbol "FCVAR_PLUGIN" is marked as deprecated: No logic using this flag ever existed in a released game. It only ever appeared in the first hl2sdk.

Полностью код теперь выглядит следующим образом:

#include <sourcemod>
#include <sdktools>

#define CVAR_FLAGS FCVAR_NONE
#define PLUGIN_VERSION "1.1" 

#define MELEE_FIREAXE "fireaxe"
#define MELEE_FRYING_PAN "frying_pan"
#define MELEE_MACHETE "machete"
#define MELEE_BASEBALL_BAT "baseball_bat"
#define MELEE_CROWBAR "crowbar"
#define MELEE_CRICKET_BAT "cricket_bat"
#define MELEE_TONFA "tonfa"
#define MELEE_KATANA "katana"
#define MELEE_GUITAR "electric_guitar"
#define MELEE_KNIFE "knife"

new Handle:Dropkit = INVALID_HANDLE;
new Handle:DropPills = INVALID_HANDLE;
new Handle:DropFire = INVALID_HANDLE;
new Handle:DropM60 = INVALID_HANDLE;
new Handle:DropPipe_Bomb = INVALID_HANDLE;
new Handle:DropDefibrillator = INVALID_HANDLE;
new Handle:DropAdrenaline = INVALID_HANDLE;
new Handle:DropMolotov = INVALID_HANDLE;
new Handle:DropAutoshotgun = INVALID_HANDLE;
new Handle:DropHunting_rifle = INVALID_HANDLE;
new Handle:DropPistol_magnum = INVALID_HANDLE;
new Handle:DropPumpshotgun = INVALID_HANDLE;
new Handle:DropRifle = INVALID_HANDLE;
new Handle:DropAK47 = INVALID_HANDLE;
new Handle:DropRifle_desert = INVALID_HANDLE;
new Handle:DropShotgun_chrome = INVALID_HANDLE;
new Handle:DropShotgun_spas = INVALID_HANDLE;
new Handle:DropSmg = INVALID_HANDLE;
new Handle:DropSmg_silenced = INVALID_HANDLE;
new Handle:DropSniper_military = INVALID_HANDLE;
new Handle:DropGrenade_launcher = INVALID_HANDLE;
new Handle:DropRifle_sg552 = INVALID_HANDLE;
new Handle:DropSmg_mp5 = INVALID_HANDLE;
new Handle:DropSniper_awp = INVALID_HANDLE;
new Handle:DropSniper_scout = INVALID_HANDLE;
new Handle:DropUpgradepack_explosive = INVALID_HANDLE;
new Handle:DropUpgradepack_incendiary = INVALID_HANDLE;
new Handle:DropCricket_bat = INVALID_HANDLE;
new Handle:DropCrowbar = INVALID_HANDLE;
new Handle:DropElectric_guitar = INVALID_HANDLE;
new Handle:DropFireaxe = INVALID_HANDLE;
new Handle:DropFrying_pan = INVALID_HANDLE;
new Handle:DropKatana = INVALID_HANDLE;
new Handle:DropMachete = INVALID_HANDLE;
new Handle:DropChainsaw = INVALID_HANDLE;

public Plugin:myinfo = 
{
	name = "l4d2_Zombie_Fallen", 
	author = "Chi_Nai", 
	description = "Zombies can also drop items", 
	version = PLUGIN_VERSION, 
	url = "N/A"
}

public OnPluginStart()
{
	Dropkit = CreateConVar("Drop_kit", "0", "Zombie Drop First_Aid_Kit Probability(0~100)", FCVAR_NONE);
	DropPills = CreateConVar("Drop_Pills", "0", "Zombie Drop Pain_Pills Probability(0~100)", FCVAR_NONE);
	DropFire = CreateConVar("Drop_Fire", "0", "Zombie Drop Fire Probability(0~100)", FCVAR_NONE);
	DropPipe_Bomb = CreateConVar("Drop_Pipe_Bomb", "0", "Zombie Drop Pipe_Bomb Probability(0~100)", FCVAR_NONE);
	DropDefibrillator = CreateConVar("Drop_Defibrillator", "0", "Zombie Drop Defibrillator Probability(0~100)", FCVAR_NONE);
	DropAdrenaline = CreateConVar("Drop_Adrenaline", "0", "Zombie Drop Adrenaline Probability(0~100)", FCVAR_NONE);
	DropMolotov = CreateConVar("Drop_Molotov", "0", "Zombie Drop Molotov Probability(0~100)", FCVAR_NONE);
	DropM60 = CreateConVar("Drop_M60", "0", "Zombie Drop M60 Probability(0~100)", FCVAR_NONE);
	
	DropAutoshotgun = CreateConVar("Drop_Autoshotgun", "0", "Zombie Drop Autoshotgun Probability(0~100)", FCVAR_NONE);
	DropHunting_rifle = CreateConVar("Drop_Hunting_Rifle", "0", "Zombie Drop Hunting_rifle Probability(0~100)", FCVAR_NONE);
	DropPistol_magnum = CreateConVar("DropPistol_Magnum", "0", "Zombie Drop Pistol_magnum Probability(0~100)", FCVAR_NONE);
	DropPumpshotgun = CreateConVar("Drop_Pumpshotgun", "0", "Zombie Drop Pumpshotgun Probability(0~100)", FCVAR_NONE);
	DropRifle = CreateConVar("Drop_Rifle", "0", "Zombie Drop Rifle Probability(0~100)", FCVAR_NONE);
	DropAK47 = CreateConVar("Drop_AK47", "0", "Zombie Drop AK47 Probability(0~100)", FCVAR_NONE);
	DropRifle_desert = CreateConVar("Drop_Rifle_Desert", "0", "Zombie Drop Rifle_desert Probability(0~100)", FCVAR_NONE);
	DropShotgun_chrome = CreateConVar("Drop_Shotgun_Chrome", "10.0", "Zombie Drop Shotgun_chrome Probability(0~100)", FCVAR_NONE);
	DropShotgun_spas = CreateConVar("Drop_Shotgun_Spas", "0", "Zombie Drop Shotgun_spas Probability(0~100)", FCVAR_NONE);
	DropSmg = CreateConVar("Drop_Smg", "10.0", "Zombie Drop Smg Probability(0~100)", FCVAR_NONE);
	DropSmg_silenced = CreateConVar("Drop_Smg_Silenced", "0", "Zombie Drop Smg_silenced Probability(0~100)", FCVAR_NONE);
	DropSniper_military = CreateConVar("Drop_Sniper_Military", "0", "Zombie Drop Sniper_military Probability(0~100)", FCVAR_NONE);
	DropGrenade_launcher = CreateConVar("Drop_Grenade_Launcher", "0", "Zombie Drop Grenade_launcher Probability(0~100)", FCVAR_NONE);
	DropRifle_sg552 = CreateConVar("Drop_Rifle_Sg552", "0", "Zombie Drop Rifle_sg552 Probability(0~100)", FCVAR_NONE);
	DropSmg_mp5 = CreateConVar("Drop_Smg_Mp5", "0", "Zombie Drop Smg_mp5 Probability(0~100)", FCVAR_NONE);
	DropSniper_awp = CreateConVar("Drop_Sniper_Awp", "0", "Zombie Drop Sniper_awp Probability(0~100)", FCVAR_NONE);
	DropSniper_scout = CreateConVar("Drop_Sniper_Scout", "0", "Zombie Drop Sniper_scout Probability(0~100)", FCVAR_NONE);
	DropUpgradepack_explosive = CreateConVar("Drop_Upgradepack_Explosive", "0", "Zombie Drop Upgradepack_explosive Probability(0~100)", FCVAR_NONE);
	DropUpgradepack_incendiary = CreateConVar("Drop_Upgradepack_Incendiary", "0", "Zombie Drop Upgradepack_incendiary Probability(0~100)", FCVAR_NONE);
	
	DropCricket_bat = CreateConVar("DropCricket_Bat", "1.0", "Zombie Drop Cricket_bat Probability(0~100)", FCVAR_NONE);
	DropCrowbar = CreateConVar("Drop_Crowbar", "1.0", "Zombie Drop Crowbar Probability(0~100)", FCVAR_NONE);
	DropElectric_guitar = CreateConVar("DropElectric_Guitar", "1.0", "Zombie Drop Electric_guitar Probability(0~100)", FCVAR_NONE);
	DropFireaxe = CreateConVar("Drop_Fireaxe", "1.0", "Zombie Drop Fireaxe Probability(0~100)", FCVAR_NONE);
	DropFrying_pan = CreateConVar("Drop_Frying_Pan", "1.0", "Zombie Drop Frying_pan Probability(0~100)", FCVAR_NONE);
	DropKatana = CreateConVar("Drop_Katana", "1.0", "Zombie Drop Katana Probability(0~100)", FCVAR_NONE);
	DropMachete = CreateConVar("Drop_Machete", "1.0", "Zombie Drop Machete Probability(0~100)", FCVAR_NONE);
	DropChainsaw = CreateConVar("Drop_Chainsaw", "1.0", "Zombie Drop Chainsaw Probability(0~100)", FCVAR_NONE);
	
	AutoExecConfig(true, "l4d2_Zombie_Fallen");
	HookEvent("player_death", Event_PlayerDeath);
}
public Event_PlayerDeath(Handle:event, const String:name[], bool:dontBroadcast)
{
	new entity = GetEventInt(event, "entityid");
	if (entity)
	{
		decl Float:Pos[3];
		GetEntPropVector(entity, Prop_Data, "m_vecAbsOrigin", Pos);
		DropItem(Pos);
	}
	return;
}
public DropItem(Float:pos[3])
{
	new KitChance = GetRandomInt(1, 100);
	new PillsChance = GetRandomInt(1, 100);
	new FireChance = GetRandomInt(1, 100);
	new M60Chance = GetRandomInt(1, 100);
	new Pipe_BombChance = GetRandomInt(1, 100);
	new AdrenalineChance = GetRandomInt(1, 100);
	new DefibrillatorChance = GetRandomInt(1, 100);
	new MolotovChance = GetRandomInt(1, 100);
	new AutoshotgunChance = GetRandomInt(1, 100);
	new Hunting_rifleChance = GetRandomInt(1, 100);
	new Pistol_magnumChance = GetRandomInt(1, 100);
	new PumpshotgunChance = GetRandomInt(1, 100);
	new RifleChance = GetRandomInt(1, 100);
	new AK47Chance = GetRandomInt(1, 100);
	new Rifle_desertChance = GetRandomInt(1, 100);
	new Shotgun_chromeChance = GetRandomInt(1, 100);
	new Shotgun_spasChance = GetRandomInt(1, 100);
	new SmgChance = GetRandomInt(1, 100);
	new Smg_silencedChance = GetRandomInt(1, 100);
	new Sniper_militaryChance = GetRandomInt(1, 100);
	new Grenade_launcherChance = GetRandomInt(1, 100);
	new Rifle_sg552Chance = GetRandomInt(1, 100);
	new Smg_mp5Chance = GetRandomInt(1, 100);
	new Sniper_awpChance = GetRandomInt(1, 100);
	new Sniper_scoutChance = GetRandomInt(1, 100);
	new Upgradepack_explosiveChance = GetRandomInt(1, 100);
	new Upgradepack_incendiaryChance = GetRandomInt(1, 100);
	new Cricket_batChance = GetRandomInt(1, 100);
	new CrowbarChance = GetRandomInt(1, 100);
	new Electric_guitarChance = GetRandomInt(1, 100);
	new FireaxeChance = GetRandomInt(1, 100);
	new Frying_panChance = GetRandomInt(1, 100);
	new KatanaChance = GetRandomInt(1, 100);
	new MacheteChance = GetRandomInt(1, 100);
	new ChainsawChance = GetRandomInt(1, 100);
	
	switch (GetRandomInt(0, 34))
	{
		case 0:
		{
			if (KitChance <= GetConVarInt(Dropkit))
			{
				new entity = CreateEntityByName("weapon_first_aid_kit");
				if (IsValidEntity(entity))
				{
					pos[2] += 50.0;
					DispatchSpawn(entity);
					TeleportEntity(entity, pos, NULL_VECTOR, NULL_VECTOR);
					return;
				}
			}
		}
		case 1:
		{
			if (PillsChance <= GetConVarInt(DropPills))
			{
				new entity = CreateEntityByName("weapon_pain_pills");
				if (IsValidEntity(entity))
				{
					pos[2] += 50.0;
					DispatchSpawn(entity);
					TeleportEntity(entity, pos, NULL_VECTOR, NULL_VECTOR);
					return;
				}
			}
		}
		case 2:
		{
			if (M60Chance <= GetConVarInt(DropM60))
			{
				new entity = CreateEntityByName("weapon_rifle_m60");
				if (IsValidEntity(entity))
				{
					pos[2] += 50.0;
					DispatchSpawn(entity);
					TeleportEntity(entity, pos, NULL_VECTOR, NULL_VECTOR);
					return;
				}
			}
		}
		case 3:
		{
			if (Pipe_BombChance <= GetConVarInt(DropPipe_Bomb))
			{
				new entity = CreateEntityByName("weapon_pipe_bomb");
				if (IsValidEntity(entity))
				{
					pos[2] += 50.0;
					DispatchSpawn(entity);
					TeleportEntity(entity, pos, NULL_VECTOR, NULL_VECTOR);
					return;
				}
			}
			
		}
		case 4:
		{
			if (AdrenalineChance <= GetConVarInt(DropAdrenaline))
			{
				new entity = CreateEntityByName("weapon_adrenaline");
				if (IsValidEntity(entity))
				{
					pos[2] += 50.0;
					DispatchSpawn(entity);
					TeleportEntity(entity, pos, NULL_VECTOR, NULL_VECTOR);
					return;
				}
			}
			
		}
		case 5:
		{
			if (DefibrillatorChance <= GetConVarInt(DropDefibrillator))
			{
				new entity = CreateEntityByName("weapon_defibrillator");
				if (IsValidEntity(entity))
				{
					pos[2] += 50.0;
					DispatchSpawn(entity);
					TeleportEntity(entity, pos, NULL_VECTOR, NULL_VECTOR);
					return;
				}
			}
			
		}
		case 6:
		{
			if (MolotovChance <= GetConVarInt(DropMolotov))
			{
				new entity = CreateEntityByName("weapon_molotov");
				if (IsValidEntity(entity))
				{
					pos[2] += 50.0;
					DispatchSpawn(entity);
					TeleportEntity(entity, pos, NULL_VECTOR, NULL_VECTOR);
					return;
				}
			}
			
		}
		case 7:
		{
			if (AutoshotgunChance <= GetConVarInt(DropAutoshotgun))
			{
				new entity = CreateEntityByName("weapon_autoshotgun");
				if (IsValidEntity(entity))
				{
					pos[2] += 50.0;
					DispatchSpawn(entity);
					TeleportEntity(entity, pos, NULL_VECTOR, NULL_VECTOR);
					new Clip_Size = GetEntProp(entity, Prop_Send, "m_iClip1");
					SetEntProp(entity, Prop_Send, "m_iExtraPrimaryAmmo", Clip_Size * 3);
					return;
				}
			}
			
		}
		case 8:
		{
			if (Hunting_rifleChance <= GetConVarInt(DropHunting_rifle))
			{
				new entity = CreateEntityByName("weapon_hunting_rifle");
				if (IsValidEntity(entity))
				{
					pos[2] += 50.0;
					DispatchSpawn(entity);
					TeleportEntity(entity, pos, NULL_VECTOR, NULL_VECTOR);
					new Clip_Size = GetEntProp(entity, Prop_Send, "m_iClip1");
					SetEntProp(entity, Prop_Send, "m_iExtraPrimaryAmmo", Clip_Size * 3);
					return;
				}
			}
			
		}
		case 9:
		{
			if (Pistol_magnumChance <= GetConVarInt(DropPistol_magnum))
			{
				new entity = CreateEntityByName("weapon_pistol_magnum");
				if (IsValidEntity(entity))
				{
					pos[2] += 50.0;
					DispatchSpawn(entity);
					TeleportEntity(entity, pos, NULL_VECTOR, NULL_VECTOR);
					new Clip_Size = GetEntProp(entity, Prop_Send, "m_iClip1");
					SetEntProp(entity, Prop_Send, "m_iExtraPrimaryAmmo", Clip_Size * 3);
					return;
				}
			}
			
		}
		case 10:
		{
			if (PumpshotgunChance <= GetConVarInt(DropPumpshotgun))
			{
				new entity = CreateEntityByName("weapon_pumpshotgun");
				if (IsValidEntity(entity))
				{
					pos[2] += 50.0;
					DispatchSpawn(entity);
					TeleportEntity(entity, pos, NULL_VECTOR, NULL_VECTOR);
					new Clip_Size = GetEntProp(entity, Prop_Send, "m_iClip1");
					SetEntProp(entity, Prop_Send, "m_iExtraPrimaryAmmo", Clip_Size * 3);
					return;
				}
			}
			
		}
		case 11:
		{
			if (RifleChance <= GetConVarInt(DropRifle))
			{
				new entity = CreateEntityByName("weapon_rifle");
				if (IsValidEntity(entity))
				{
					pos[2] += 50.0;
					DispatchSpawn(entity);
					TeleportEntity(entity, pos, NULL_VECTOR, NULL_VECTOR);
					new Clip_Size = GetEntProp(entity, Prop_Send, "m_iClip1");
					SetEntProp(entity, Prop_Send, "m_iExtraPrimaryAmmo", Clip_Size * 3);
					return;
				}
			}
			
		}
		case 12:
		{
			if (AK47Chance <= GetConVarInt(DropAK47))
			{
				new entity = CreateEntityByName("weapon_rifle_ak47");
				if (IsValidEntity(entity))
				{
					pos[2] += 50.0;
					DispatchSpawn(entity);
					TeleportEntity(entity, pos, NULL_VECTOR, NULL_VECTOR);
					new Clip_Size = GetEntProp(entity, Prop_Send, "m_iClip1");
					SetEntProp(entity, Prop_Send, "m_iExtraPrimaryAmmo", Clip_Size * 3);
					return;
				}
			}
			
		}
		case 13:
		{
			if (Rifle_desertChance <= GetConVarInt(DropRifle_desert))
			{
				new entity = CreateEntityByName("weapon_rifle_desert");
				if (IsValidEntity(entity))
				{
					pos[2] += 50.0;
					DispatchSpawn(entity);
					TeleportEntity(entity, pos, NULL_VECTOR, NULL_VECTOR);
					new Clip_Size = GetEntProp(entity, Prop_Send, "m_iClip1");
					SetEntProp(entity, Prop_Send, "m_iExtraPrimaryAmmo", Clip_Size * 3);
					return;
				}
			}
			
		}
		case 14:
		{
			if (Shotgun_chromeChance <= GetConVarInt(DropShotgun_chrome))
			{
				new entity = CreateEntityByName("weapon_shotgun_chrome");
				if (IsValidEntity(entity))
				{
					pos[2] += 50.0;
					DispatchSpawn(entity);
					TeleportEntity(entity, pos, NULL_VECTOR, NULL_VECTOR);
					new Clip_Size = GetEntProp(entity, Prop_Send, "m_iClip1");
					SetEntProp(entity, Prop_Send, "m_iExtraPrimaryAmmo", Clip_Size * 3);
					return;
				}
			}
			
		}
		case 15:
		{
			if (Shotgun_spasChance <= GetConVarInt(DropShotgun_spas))
			{
				new entity = CreateEntityByName("weapon_shotgun_spas");
				if (IsValidEntity(entity))
				{
					pos[2] += 50.0;
					DispatchSpawn(entity);
					TeleportEntity(entity, pos, NULL_VECTOR, NULL_VECTOR);
					new Clip_Size = GetEntProp(entity, Prop_Send, "m_iClip1");
					SetEntProp(entity, Prop_Send, "m_iExtraPrimaryAmmo", Clip_Size * 3);
					return;
				}
			}
			
		}
		case 16:
		{
			if (SmgChance <= GetConVarInt(DropSmg))
			{
				new entity = CreateEntityByName("weapon_smg");
				if (IsValidEntity(entity))
				{
					pos[2] += 50.0;
					DispatchSpawn(entity);
					TeleportEntity(entity, pos, NULL_VECTOR, NULL_VECTOR);
					new Clip_Size = GetEntProp(entity, Prop_Send, "m_iClip1");
					SetEntProp(entity, Prop_Send, "m_iExtraPrimaryAmmo", Clip_Size * 3);
					return;
				}
			}
			
		}
		case 17:
		{
			if (Smg_silencedChance <= GetConVarInt(DropSmg_silenced))
			{
				new entity = CreateEntityByName("weapon_smg_silenced");
				if (IsValidEntity(entity))
				{
					pos[2] += 50.0;
					DispatchSpawn(entity);
					TeleportEntity(entity, pos, NULL_VECTOR, NULL_VECTOR);
					new Clip_Size = GetEntProp(entity, Prop_Send, "m_iClip1");
					SetEntProp(entity, Prop_Send, "m_iExtraPrimaryAmmo", Clip_Size * 3);
					return;
				}
			}
			
		}
		case 18:
		{
			if (Sniper_militaryChance <= GetConVarInt(DropSniper_military))
			{
				new entity = CreateEntityByName("weapon_sniper_military");
				if (IsValidEntity(entity))
				{
					pos[2] += 50.0;
					DispatchSpawn(entity);
					TeleportEntity(entity, pos, NULL_VECTOR, NULL_VECTOR);
					new Clip_Size = GetEntProp(entity, Prop_Send, "m_iClip1");
					SetEntProp(entity, Prop_Send, "m_iExtraPrimaryAmmo", Clip_Size * 3);
					return;
				}
			}
			
		}
		case 19:
		{
			if (Grenade_launcherChance <= GetConVarInt(DropGrenade_launcher))
			{
				new entity = CreateEntityByName("weapon_grenade_launcher");
				if (IsValidEntity(entity))
				{
					pos[2] += 50.0;
					DispatchSpawn(entity);
					TeleportEntity(entity, pos, NULL_VECTOR, NULL_VECTOR);
					return;
				}
			}
			
		}
		case 20:
		{
			if (Rifle_sg552Chance <= GetConVarInt(DropRifle_sg552))
			{
				new entity = CreateEntityByName("weapon_rifle_sg552");
				if (IsValidEntity(entity))
				{
					pos[2] += 50.0;
					DispatchSpawn(entity);
					TeleportEntity(entity, pos, NULL_VECTOR, NULL_VECTOR);
					new Clip_Size = GetEntProp(entity, Prop_Send, "m_iClip1");
					SetEntProp(entity, Prop_Send, "m_iExtraPrimaryAmmo", Clip_Size * 3);
					return;
				}
			}
			
		}
		case 21:
		{
			if (Smg_mp5Chance <= GetConVarInt(DropSmg_mp5))
			{
				new entity = CreateEntityByName("weapon_smg_mp5");
				if (IsValidEntity(entity))
				{
					pos[2] += 50.0;
					DispatchSpawn(entity);
					TeleportEntity(entity, pos, NULL_VECTOR, NULL_VECTOR);
					new Clip_Size = GetEntProp(entity, Prop_Send, "m_iClip1");
					SetEntProp(entity, Prop_Send, "m_iExtraPrimaryAmmo", Clip_Size * 3);
					return;
				}
			}
			
		}
		case 22:
		{
			if (Sniper_awpChance <= GetConVarInt(DropSniper_awp))
			{
				new entity = CreateEntityByName("weapon_sniper_awp");
				if (IsValidEntity(entity))
				{
					pos[2] += 50.0;
					DispatchSpawn(entity);
					TeleportEntity(entity, pos, NULL_VECTOR, NULL_VECTOR);
					new Clip_Size = GetEntProp(entity, Prop_Send, "m_iClip1");
					SetEntProp(entity, Prop_Send, "m_iExtraPrimaryAmmo", Clip_Size * 3);
					return;
				}
			}
			
		}
		case 23:
		{
			if (Sniper_scoutChance <= GetConVarInt(DropSniper_scout))
			{
				new entity = CreateEntityByName("weapon_sniper_scout");
				if (IsValidEntity(entity))
				{
					pos[2] += 50.0;
					DispatchSpawn(entity);
					TeleportEntity(entity, pos, NULL_VECTOR, NULL_VECTOR);
					new Clip_Size = GetEntProp(entity, Prop_Send, "m_iClip1");
					SetEntProp(entity, Prop_Send, "m_iExtraPrimaryAmmo", Clip_Size * 3);
					return;
				}
			}
			
		}
		case 24:
		{
			if (Upgradepack_explosiveChance <= GetConVarInt(DropUpgradepack_explosive))
			{
				new entity = CreateEntityByName("weapon_upgradepack_explosive");
				if (IsValidEntity(entity))
				{
					pos[2] += 50.0;
					DispatchSpawn(entity);
					TeleportEntity(entity, pos, NULL_VECTOR, NULL_VECTOR);
					return;
				}
			}
			
		}
		case 25:
		{
			if (Upgradepack_incendiaryChance <= GetConVarInt(DropUpgradepack_incendiary))
			{
				new entity = CreateEntityByName("weapon_upgradepack_incendiary");
				if (IsValidEntity(entity))
				{
					pos[2] += 50.0;
					DispatchSpawn(entity);
					TeleportEntity(entity, pos, NULL_VECTOR, NULL_VECTOR);
					return;
				}
			}
			
		}
		case 26:
		{
			if (Cricket_batChance <= GetConVarInt(DropCricket_bat))
			{
				new entity = CreateEntityByName("weapon_melee");
				if (IsValidEntity(entity))
				{
					pos[2] += 50.0;
					DispatchKeyValue(entity, "melee_script_name", "cricket_bat");
					DispatchSpawn(entity);
					TeleportEntity(entity, pos, NULL_VECTOR, NULL_VECTOR);
					return;
				}
			}
			
		}
		case 27:
		{
			if (CrowbarChance <= GetConVarInt(DropCrowbar))
			{
				new entity = CreateEntityByName("weapon_melee");
				if (IsValidEntity(entity))
				{
					pos[2] += 50.0;
					DispatchKeyValue(entity, "melee_script_name", "crowbar");
					DispatchSpawn(entity);
					TeleportEntity(entity, pos, NULL_VECTOR, NULL_VECTOR);
					return;
				}
			}
			
		}
		case 28:
		{
			if (Electric_guitarChance <= GetConVarInt(DropElectric_guitar))
			{
				new entity = CreateEntityByName("weapon_melee");
				if (IsValidEntity(entity))
				{
					pos[2] += 50.0;
					DispatchKeyValue(entity, "melee_script_name", "electric_guitar");
					DispatchSpawn(entity);
					TeleportEntity(entity, pos, NULL_VECTOR, NULL_VECTOR);
					return;
				}
			}
			
		}
		case 29:
		{
			if (FireaxeChance <= GetConVarInt(DropFireaxe))
			{
				new entity = CreateEntityByName("weapon_melee");
				if (IsValidEntity(entity))
				{
					pos[2] += 50.0;
					DispatchKeyValue(entity, "melee_script_name", "fireaxe");
					DispatchSpawn(entity);
					TeleportEntity(entity, pos, NULL_VECTOR, NULL_VECTOR);
					return;
				}
			}
			
		}
		case 30:
		{
			if (Frying_panChance <= GetConVarInt(DropFrying_pan))
			{
				new entity = CreateEntityByName("weapon_melee");
				if (IsValidEntity(entity))
				{
					pos[2] += 50.0;
					DispatchKeyValue(entity, "melee_script_name", "frying_pan");
					DispatchSpawn(entity);
					TeleportEntity(entity, pos, NULL_VECTOR, NULL_VECTOR);
					return;
				}
			}
			
		}
		case 31:
		{
			if (KatanaChance <= GetConVarInt(DropKatana))
			{
				new entity = CreateEntityByName("weapon_melee");
				if (IsValidEntity(entity))
				{
					pos[2] += 50.0;
					DispatchKeyValue(entity, "melee_script_name", "katana");
					DispatchSpawn(entity);
					TeleportEntity(entity, pos, NULL_VECTOR, NULL_VECTOR);
					return;
				}
			}
			
		}
		case 32:
		{
			if (MacheteChance <= GetConVarInt(DropMachete))
			{
				new entity = CreateEntityByName("weapon_melee");
				if (IsValidEntity(entity))
				{
					pos[2] += 50.0;
					DispatchKeyValue(entity, "melee_script_name", "machete");
					DispatchSpawn(entity);
					TeleportEntity(entity, pos, NULL_VECTOR, NULL_VECTOR);
					return;
				}
			}
			
		}
		case 33:
		{
			if (ChainsawChance <= GetConVarInt(DropChainsaw))
			{
				new entity = CreateEntityByName("weapon_chainsaw");
				if (IsValidEntity(entity))
				{
					pos[2] += 50.0;
					DispatchSpawn(entity);
					TeleportEntity(entity, pos, NULL_VECTOR, NULL_VECTOR);
					return;
				}
			}
			
		}
		case 34:
		{
			if (FireChance <= GetConVarInt(DropFire))
			{
				new entity = CreateEntityByName("prop_physics");
				if (IsValidEntity(entity))
				{
					pos[2] += 10.0;
					DispatchKeyValue(entity, "model", "models/props_junk/gascan001a.mdl");
					
					DispatchSpawn(entity);
					SetEntData(entity, GetEntSendPropOffs(entity, "m_CollisionGroup"), 1, 1, true);
					TeleportEntity(entity, pos, NULL_VECTOR, NULL_VECTOR);
					AcceptEntityInput(entity, "break");
					return;
				}
			}
		}
	}
} 

 

l4d2_Zombie_Fallen.sp l4d2_Zombie_Fallen.smx

Мир изменился, он стал другим!

Ссылка на комментарий
Поделиться на другие сайты

  • 1 год спустя...
  • Администратор
  • Решение

Zombie Fallen

Просмотр файла

Недавно @dr.lex мне скинул IP сервера, на котором использовалась его старая сборка сервера для кооператива на L4D2. Я когда зашел на сервер протестировать его, увидел самую интересную для меня особенность на этой сборке. Там, когда ты убиваешь зараженного или специального зараженного, с них падают вещи. Это может быть молотов, или даже аптечка, да все что угодно. В общем для Эксперта на кооперативе такой плагин будет достаточно полезен.

А сегодня я увидел, что один парень перевел этот плагин под новый синтаксис. Если вы будете устанавливать эту версию, то вам потребуется SourceMod 1.8 или новее.


 

Мир изменился, он стал другим!

Ссылка на комментарий
Поделиться на другие сайты

  • Лучшие авторы

    На этой неделе никто репутацию не получал

  • Последние достижения

    • Blacky получил значок
      Подмастерье
    • GAMADA повысил звание
      Lvl 1
    • Darya повысил звание
      Lvl 14
    • Mad.Eagle повысил звание
      Lvl 5
    • Mad.Eagle повысил звание
      Lvl 4
×
×
  • Создать...