[Left 4 Dead 1, 2] Кооп на 16-20 игроков

Обсуждаем все, что относится к выделенным серверам *NIX (Unix, Linux) и Windows
Сообщение
Автор
theCHAMP
Сержант
Сержант
Сообщения: 72
Зарегистрирован: 15.12.2011

#676 Сообщение 02.05.2012, 01:02

Я 3 раза за сегодня заходил к себе на серв когда проходили карту c11m3_garage, нету такой проблемы :)

Аватара пользователя
Jonny
Полковник
Полковник
Сообщения: 1371
Зарегистрирован: 30.05.2008
Благодарил (а): 23 раза
Поблагодарили: 54 раза

#677 Сообщение 02.05.2012, 09:17

Я вчера тоже играл на олимпусе на карте c11m3_garage, нас было больше 8 человек, и сервер не упал, пинг не подскакивал. Я не отрицаю, я просто не видел ни разу такой проблемы

Добавлено спустя 2 часа 59 минут 25 секунд:
Хотя вообще на олимпусе немножко другие файлы, может в этом дело. ждем обновления :)
Никакого отношения к нацистским группам и направлениям не имею.

DaN1k
Лейтенант
Лейтенант
Сообщения: 100
Зарегистрирован: 05.11.2011

#678 Сообщение 02.05.2012, 15:51

Я буду долго смеяться над тобой, когда разработчики закроют этот баг.
на steam форуме уже обсуждают проблему с переносом оружия на другую компанию. Так что радоваться тебе не долго!
Пиздешь и провокация...провокация на что мне не известно, если хочешь посраться пиши мне в личку я с удовольствием тебе отвечу =)

Добавлено спустя 3 часа 42 минуты 34 секунды:
Кст сделал панику сам без харда просто выдернул строчки из плагина jonny и вписал в свой плагин двери я думаю если есть у кого руки и мозги то сделают тоже самое на ARS и на прочие плаги с дверями или ждите обновления харда =)
new Director = CreateEntityByName("info_director", -1);
DispatchSpawn(Director);
AcceptEntityInput(Director, "ForcePanicEvent", -1, -1, 0);
AcceptEntityInput(Director, "Kill", -1, -1, 0);
Изображение

Аватара пользователя
leks19
Капитан
Капитан
Сообщения: 376
Зарегистрирован: 10.02.2011
Откуда: Беларусь
Благодарил (а): 12 раз
Поблагодарили: 15 раз
Контактная информация:

#679 Сообщение 02.05.2012, 19:26

Последний раз редактировалось leks19 25.06.2013, 23:05, всего редактировалось 1 раз.
Изображение

Аватара пользователя
Jonny
Полковник
Полковник
Сообщения: 1371
Зарегистрирован: 30.05.2008
Благодарил (а): 23 раза
Поблагодарили: 54 раза

#680 Сообщение 03.05.2012, 14:17

L4D2_Coop-16_02.05.2012_windows.zip (5.0 МБ)
L4D2_Coop-16_02.05.2012_linux.zip (6.5 МБ)

добавлена команда !serverinfo, так же можно просто два раза подряд набрать !info

Добавлено спустя 16 часов 43 минуты 19 секунд:
Кстати.

Можно заметить (если быть очень наблюдательным), что в конфигах появилась переменная hm_config_name
например в cfg/fun/hardcore.cfg

Код: Выделить всё

hm_config_name "HardCore"
Эта переменная в текущей версии не делает ничего, кроме информирования игрока о конфиге, включенном на сервере. Увидеть её можно набрав !serverinfo
То есть если вы предпочли использовать свои настройки, не поленитесь, обзовите их как нибудь по-своему в переменной hm_config_name. В идеале со временем привыкания игрокам легче будет ориентироваться какой конкретно режим игры на _вашем_ сервере. Некая стандартизация. Именно из соображений стандартизации, например, я не дал возможности изменять распределение очков в статистике. Потому что часть игроков играет не только на одном вашем сервере.

Добавлено спустя 22 минуты 20 секунд:
Да и еще. Я тут почитал откровения ноющих детишек на соседнем форуме, что меня естественно не могло не порадовать.
В общем эти борцы за опенсорсность и как следствие - развитие (можно подумать я со своим систематическим обновлением за стагнацию и деградацию) страдают от закрытости "некоторых закрытых сборок" хе хе. В общем их призывы растопили мое холодное сердце робота и посему я решил дать возможность "внести вклад в развитие" всем желающим. И так, выкладываю мою переделку функции airstrike, реализованной в плагине [L4D & L4D2] New custom commands
Это самый большой кусок заимствованного кода, который уже давно отключен из-за его влияния на стабильность работы сервера и клиентов игры. Этот кусок кода отвечает за работу самого веселого бокса - хеллбокса, ранее известного как бигбумбокс.
airstrike.inc

Код: Выделить всё

// © http://forums.alliedmods.net/showthread.php?p=1251446

#include <sdktools_functions>

#define FIRE_PARTICLE "gas_explosion_ground_fire"
#define EXPLOSION_PARTICLE "FluidExplosion_fps"
#define EXPLOSION_PARTICLE2 "weapon_grenade_explosion"
#define EXPLOSION_PARTICLE3 "explosion_huge_b"
#define EXPLOSION_SOUND "ambient/explosions/explode_1.wav"

new bool:g_bStrike = false;
new Float:g_cvarRainRadius = 300.0;
new g_cvarRadius = 500;
new g_cvarPower = 500;
new g_cvarDuration = 15;

new Handle:sdkCallPushPlayer = INVALID_HANDLE;
new Handle:g_hGameConf = INVALID_HANDLE;

public AirStrikeOnPluginStart()
{
	g_hGameConf = LoadGameConfigFile("l4d2customcmds");
	if (g_hGameConf == INVALID_HANDLE)
	{
		SetFailState("Couldn't find the offsets and signatures file. Please, check that it is installed correctly.");
	}
	
	StartPrepSDKCall(SDKCall_Player);
	PrepSDKCall_SetFromConf(g_hGameConf, SDKConf_Signature, "CTerrorPlayer_Fling");
	PrepSDKCall_AddParameter(SDKType_Vector, SDKPass_ByRef);
	PrepSDKCall_AddParameter(SDKType_PlainOldData, SDKPass_Plain);
	PrepSDKCall_AddParameter(SDKType_CBasePlayer, SDKPass_Pointer);
	PrepSDKCall_AddParameter(SDKType_Float, SDKPass_Plain);
	sdkCallPushPlayer = EndPrepSDKCall();
	if (sdkCallPushPlayer == INVALID_HANDLE)
	{
		SetFailState("Unable to find the 'CTerrorPlayer_Fling' signature, check the file version!");
	}
}
	
public AirStrikeOnMapStart()
{
	PrecacheSound(EXPLOSION_SOUND);
	PrefetchSound(EXPLOSION_SOUND);
	BBBPrecacheParticle(FIRE_PARTICLE);
	BBBPrecacheParticle(EXPLOSION_PARTICLE);
	BBBPrecacheParticle(EXPLOSION_PARTICLE2);
	BBBPrecacheParticle(EXPLOSION_PARTICLE3);
}

stock BBBPrecacheParticle(String:ParticleName[])
{
	new Particle = CreateEntityByName("info_particle_system");
	if (IsValidEntity(Particle) && IsValidEdict(Particle))
	{
		DispatchKeyValue(Particle, "effect_name", ParticleName);
		DispatchSpawn(Particle);
		ActivateEntity(Particle);
		AcceptEntityInput(Particle, "start");
		CreateTimer(0.3, BBBtimerRemovePrecacheParticle, Particle);
	}
}

public Action:BBBtimerRemovePrecacheParticle(Handle:timer, any:Particle)
{
	if (IsValidEntity(Particle) && IsValidEdict(Particle))
	{
		AcceptEntityInput(Particle, "Kill");
	}
}

Airstrike(client)
{
	g_bStrike = true;
	CreateTimer(8.0, timerStrikeTimeout);
	CreateTimer(0.9, timerStrike, client, TIMER_REPEAT);
}

public Action:timerStrikeTimeout(Handle:timer)
{
	g_bStrike = false;
}

public Action:timerStrike(Handle:timer, any:client)
{
	if (!g_bStrike)
	{
		return Plugin_Stop;
	}
	decl Float:position[3];
	GetClientAbsOrigin(client, position);
	new Float:radius = g_cvarRainRadius;
	position[0] += GetRandomFloat(radius*-1, radius);
	position[1] += GetRandomFloat(radius*-1, radius);
	Boom(position);
	CreateExplosion(position);
//	Fire(position);
	return Plugin_Continue;
}

CreateExplosion(Float:position[3])
{
	decl String:sRadius[256];
	decl String:sPower[256];
	new Float:flMaxDistance = g_cvarRadius * 1.0;
	new Float:power = g_cvarPower * 1.0;
	IntToString(g_cvarRadius, sRadius, sizeof(sRadius));
	IntToString(g_cvarPower, sPower, sizeof(sPower));
	new exParticle = CreateEntityByName("info_particle_system");
	new exParticle2 = CreateEntityByName("info_particle_system");
	new exParticle3 = CreateEntityByName("info_particle_system");
	new exTrace = CreateEntityByName("info_particle_system");
	new exEntity = CreateEntityByName("env_explosion");
	new exPhys = CreateEntityByName("env_physexplosion");
	new exHurt = CreateEntityByName("point_hurt");
	/*new exPush = CreateEntityByName("point_push");*/
	
	//Set up the particle explosion
	DispatchKeyValue(exParticle, "effect_name", EXPLOSION_PARTICLE);
	DispatchSpawn(exParticle);
	ActivateEntity(exParticle);
	TeleportEntity(exParticle, position, NULL_VECTOR, NULL_VECTOR);
	
	DispatchKeyValue(exParticle2, "effect_name", EXPLOSION_PARTICLE2);
	DispatchSpawn(exParticle2);
	ActivateEntity(exParticle2);
	TeleportEntity(exParticle2, position, NULL_VECTOR, NULL_VECTOR);
	
	DispatchKeyValue(exParticle3, "effect_name", EXPLOSION_PARTICLE3);
	DispatchSpawn(exParticle3);
	ActivateEntity(exParticle3);
	TeleportEntity(exParticle3, position, NULL_VECTOR, NULL_VECTOR);
	
	DispatchKeyValue(exTrace, "effect_name", FIRE_PARTICLE);
	DispatchSpawn(exTrace);
	ActivateEntity(exTrace);
	TeleportEntity(exTrace, position, NULL_VECTOR, NULL_VECTOR);
	
	
	//Set up explosion entity
	DispatchKeyValue(exEntity, "fireballsprite", "sprites/muzzleflash4.vmt");
	DispatchKeyValue(exEntity, "iMagnitude", sPower);
	DispatchKeyValue(exEntity, "iRadiusOverride", sRadius);
	DispatchKeyValue(exEntity, "spawnflags", "828");
	DispatchSpawn(exEntity);
	TeleportEntity(exEntity, position, NULL_VECTOR, NULL_VECTOR);
	
	//Set up physics movement explosion
	DispatchKeyValue(exPhys, "radius", sRadius);
	DispatchKeyValue(exPhys, "magnitude", sPower);
	DispatchSpawn(exPhys);
	TeleportEntity(exPhys, position, NULL_VECTOR, NULL_VECTOR);
	
	//Set up hurt point
	DispatchKeyValue(exHurt, "DamageRadius", sRadius);
	DispatchKeyValue(exHurt, "DamageDelay", "0.1");
	DispatchKeyValue(exHurt, "Damage", "1");
	DispatchKeyValue(exHurt, "DamageType", "8");
	DispatchSpawn(exHurt);
	TeleportEntity(exHurt, position, NULL_VECTOR, NULL_VECTOR);
	
	EmitSoundToAll(EXPLOSION_SOUND, exParticle);
	
	//BOOM!
	AcceptEntityInput(exParticle, "Start");
	AcceptEntityInput(exParticle2, "Start");
	AcceptEntityInput(exParticle3, "Start");
	AcceptEntityInput(exTrace, "Start");
	AcceptEntityInput(exEntity, "Explode");
	AcceptEntityInput(exPhys, "Explode");
	AcceptEntityInput(exHurt, "TurnOn");
	
	new Handle:pack = CreateDataPack();
	WritePackCell(pack, exTrace);
	WritePackCell(pack, exHurt);
	CreateTimer(g_cvarDuration * 1.0, timerStopFire, pack);
	
	decl Float:distance[3], Float:tpos[3], Float:ratio[3], Float:addVel[3], Float:tvec[3];
	for(new i = 1; i <= L4D_MAXPLAYERS; i++)
	{
		if (i == 0 || !IsValidEntity(i) || !IsClientInGame(i) || !IsPlayerAlive(i))
		{
			continue;
		}
		if (GetClientTeam(i) != TEAM_SURVIVORS)
		{
			continue;
		}
		GetEntPropVector(i, Prop_Data, "m_vecOrigin", tpos);
		distance[0] = (position[0] - tpos[0]);
		distance[1] = (position[1] - tpos[1]);
		distance[2] = (position[2] - tpos[2]);
		
		new Float:realdistance = SquareRoot(FloatMul(distance[0], distance[0]) + FloatMul(distance[1], distance[1]));
		if (realdistance <= flMaxDistance)
		{			
			GetEntPropVector(i, Prop_Data, "m_vecVelocity", tvec);
			ratio[0] =  FloatDiv(distance[0], SquareRoot(distance[1] * distance[1] + distance[0] * distance[0])); //Ratio x/hypo
			ratio[1] =  FloatDiv(distance[1], SquareRoot(distance[1] * distance[1] + distance[0] * distance[0])); //Ratio y/hypo
			
			addVel[0] = FloatMul(ratio[0] * -1, power);
			addVel[1] = FloatMul(ratio[1] * -1, power);
			addVel[2] = power;
			FlingPlayer(i, addVel, i);
		}
	}
}

public Action:timerStopFire(Handle:timer, Handle:pack)
{
	ResetPack(pack);
	new particle = ReadPackCell(pack);
	new hurt = ReadPackCell(pack);
	if (IsValidEntity(particle))
	{
		AcceptEntityInput(particle, "Stop");
	}
	if (IsValidEntity(hurt))
	{
		AcceptEntityInput(hurt, "TurnOff");
	}
}

stock FlingPlayer(target, Float:vector[3], attacker, Float:stunTime = 3.0)
{
	SDKCall(sdkCallPushPlayer, target, vector, 96, attacker, stunTime);
}
Никакого отношения к нацистским группам и направлениям не имею.

DaN1k
Лейтенант
Лейтенант
Сообщения: 100
Зарегистрирован: 05.11.2011

#681 Сообщение 03.05.2012, 16:51

И такс отпишемся по новой cборке linux:

1. (Не заябись) Не знаю какова хуя но какого то точно больше 15 патронов нельзя взять в охотнючюю винтовку или ет у меня проблемы хотя такой раньше не было просьба проверить)

2. (Заябись) Паника рубит как положено не то что в старых сборках (Я про дверь)

3. (Заябись) Не знаю как у всех но у меня ведьмы стали норм набрасываться на игроков =)

4. (Не заябись) StopTK Самая проблематичная вещь на данный момент ее решил старой версией по прежднему в новой версии есть какая то ошибка так как с пуликом та же самая фигня что и раньше

5. (Заябись) Вылетов ни каких не заметил сервер не падал с момента выкладывания данной сборки на форуме)
Да и еще. Я тут почитал откровения ноющих детишек на соседнем форуме, что меня естественно не могло не порадовать.
В общем эти борцы за опенсорсность и как следствие - развитие (можно подумать я со своим систематическим обновлением за стагнацию и деградацию) страдают от закрытости "некоторых закрытых сборок" хе хе. В общем их призывы растопили мое холодное сердце робота и посему я решил дать возможность "внести вклад в развитие" всем желающим. И так, выкладываю мою переделку функции airstrike, реализованной в плагине [L4D & L4D2] New custom commands
Это самый большой кусок заимствованного кода, который уже давно отключен из-за его влияния на стабильность работы сервера и клиентов игры. Этот кусок кода отвечает за работу самого веселого бокса - хеллбокса, ранее известного как бигбумбокс.
Обычный авиоудар зачем он кому либо сдался ? 0_o
Изображение

andreiii
Лейтенант
Лейтенант
Сообщения: 228
Зарегистрирован: 24.11.2011
Благодарил (а): 1 раз
Поблагодарили: 8 раз

#682 Сообщение 03.05.2012, 18:12

leks19 писал(а):L4D2_Coop-16_02.05.2012_linux.zip (6.5 МБ)
Поставил сборку.

1) Вылазит попытка соединения с сервером на несколько секунд при проигрыше компании(надпись дисконект на 2-3 сек) после 6 часов работы сервер упал при проигрыше карты.
2) Паника работает не на всех картах, точный список отпишу чуть позже.
3) Модели игроков из первой части. Это для стабильности ?
4) Можно ли запретить команду sm_kicktarget ?

Аватара пользователя
Jonny
Полковник
Полковник
Сообщения: 1371
Зарегистрирован: 30.05.2008
Благодарил (а): 23 раза
Поблагодарили: 54 раза

#683 Сообщение 03.05.2012, 18:22

3 не понял что про что
4. sm_kicktarget вызывает стандартную команду движка игры callvote. запрещай ее.
Никакого отношения к нацистским группам и направлениям не имею.

DaN1k
Лейтенант
Лейтенант
Сообщения: 100
Зарегистрирован: 05.11.2011

#684 Сообщение 03.05.2012, 18:34

3) Модели игроков из первой части. Это для стабильности ?
Тоже такая фишечка есть только я думал ет все изза моего csm но теперь подозрения упали на ---

----------HARDMOD
Изображение

andreiii
Лейтенант
Лейтенант
Сообщения: 228
Зарегистрирован: 24.11.2011
Благодарил (а): 1 раз
Поблагодарили: 8 раз

#685 Сообщение 03.05.2012, 18:53

Jonny писал(а):3 не понял что про что
4. sm_kicktarget вызывает стандартную команду движка игры callvote. запрещай ее.
1) Почему происходит дисконект при проигрыше карты? (на 2 - 3 сек)
3) Отсутствуют модели из второй части игры. Почему?
4) hm_blockvote_kick 1 запретил, но увы не спасает.

Аватара пользователя
Jonny
Полковник
Полковник
Сообщения: 1371
Зарегистрирован: 30.05.2008
Благодарил (а): 23 раза
Поблагодарили: 54 раза

#686 Сообщение 03.05.2012, 18:57

1) Почему происходит дисконект при проигрыше карты? (на 2 - 3 сек)
у меня не происходит
3) Отсутствуют модели из второй части игры. Почему?
чего? у меня не отсутствуют
4) hm_blockvote_kick 1 запретил, но увы не спасает.
попробуй hm_blockvote_difference 50 (а вообще ИЗУЧАЙТЕ КОМАНДЫ И ПЕРЕМЕННЫЕ)
Никакого отношения к нацистским группам и направлениям не имею.

DaN1k
Лейтенант
Лейтенант
Сообщения: 100
Зарегистрирован: 05.11.2011

#687 Сообщение 03.05.2012, 19:09

Ммм...чет единственное что у меня совпадает с описанием andreiii это пунктик с модельками а больше проблем неть ну кроме новых версий stopTK)

Кст jonny как насчет того чтоб сделать в харде так чтоб танка нельзя было легко убить с АВП или с других оружек которым предписан дополнительный урончик ото уж чет быстро танк убиваеться не смотря на кол-во HP =)
Изображение

andreiii
Лейтенант
Лейтенант
Сообщения: 228
Зарегистрирован: 24.11.2011
Благодарил (а): 1 раз
Поблагодарили: 8 раз

#688 Сообщение 03.05.2012, 19:28

Jonny писал(а):чего? у меня не отсутствуют
Пример: Иконка нарисована "ника" c хр и картинкой а вместо него бегает моделька "билл". Также остальные персонажи.
В игре не встретить модельку из второй части игры.



Jonny писал(а):попробуй hm_blockvote_difference 50 (а вообще ИЗУЧАЙТЕ КОМАНДЫ И ПЕРЕМЕННЫЕ)
С радостью изучим, когда обновишь первый пост данной темы.
Последний раз редактировалось andreiii 05.05.2012, 12:29, всего редактировалось 1 раз.

Аватара пользователя
Jonny
Полковник
Полковник
Сообщения: 1371
Зарегистрирован: 30.05.2008
Благодарил (а): 23 раза
Поблагодарили: 54 раза

#689 Сообщение 03.05.2012, 19:32

об этом и в старом почитать можно, только вместо hm_ там l4d2_
на иконки мне глубоко посрать :)
Никакого отношения к нацистским группам и направлениям не имею.

andreiii
Лейтенант
Лейтенант
Сообщения: 228
Зарегистрирован: 24.11.2011
Благодарил (а): 1 раз
Поблагодарили: 8 раз

#690 Сообщение 03.05.2012, 19:40

Jonny писал(а):на иконки мне глубоко посрать :)
Раз ты все таки признал это =) так вот.

Почему ты так сделал ?

1) дисконект вылазит не на всех картах.
2) Отпишусь о картах на которых не работает паника при входе в безопасную комнату.
На каких именно отпишусь в выходные.

спс за поддержку сборки и хардмода!

Ответить Вложения 3