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

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

#1456 Сообщение 31.03.2013, 13:48

voker писал(а):умные люди лучше сбору выложите для тех у кого нет опыта в sm
Умные люди и выложат потом. Я вроде как завязал с выкладыванием сборок, чтобы не было лексозависимости. Надо вить лечить наркоманов от этой заразы =)
Изображение

stark765
Нович0к
Нович0к
Сообщения: 26
Зарегистрирован: 24.03.2013
Поблагодарили: 4 раза

#1457 Сообщение 31.03.2013, 16:45

leks19 писал(а):У тебя какая вообще версия OC linux? Хотя не важно.
Попробуй потом эту версию если версия andreiii не поможет.
http://rghost.ru/44902607
Gentoo хотя это действительно не важно. Помог твой events. Значит в коде есть какие-то различия.
Можешь скинуть исходник этого файла? Я сравню код плагинов. Потому-что events скомпилированный из исходников Джонни тоже не грузит map_start.
Присутствует какая-то ошибка возможно даже из-за неправильно поставленного символа или опечатки в коде. Только непонятно почему на вин сервере все нормально.
leks19 писал(а):Умные люди и выложат потом. Я вроде как завязал с выкладыванием сборок, чтобы не было лексозависимости. Надо вить лечить наркоманов от этой заразы =)
=) В который раз завязываеш? Помню ты тут говорил что серверов на ХМ всего 7 и нет смысла делать дальше сборки. Но ты же все еще тут)
Нужно больше рассчитывать на свои силы. Теперь это особо важно когда исходники выложили. А ведь там все просто если внимательно посмотреть код в папке sources.
Если человек не может закинуть новый сорсмод и нажать на create_release_linux/windows получив архив со сборкой, то стоит ли ждать каких-то подвижек (которые ты хочешь) перед новым сорсмодом? Надо лечить от такой зависимости (об ней и говорил тогда).

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

#1458 Сообщение 31.03.2013, 17:49

stark765
Andreiii уже выложил исходник l4d2_events.sp но раз надо вот смотри.
l4d2_events.sp

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

#include <sourcemod>
#include <sdktools>

#define PLAYERS_ENABLED false
#define L4D_MAXPLAYERS	32

#define PLUGIN_NAME "L4D2 Events"
#define PLUGIN_AUTHOR "Jonny (edited Dr.leks)"
#define PLUGIN_DESCRIPTION "L4D2 Events"
#define PLUGIN_VERSION "1.0.5"
#define PLUGIN_URL ""

new bool:First_Player_Transitioned;

public Plugin:myinfo =
{
	name = PLUGIN_NAME,
	author = PLUGIN_AUTHOR,
	description = PLUGIN_DESCRIPTION,
	version = PLUGIN_VERSION,
	url = PLUGIN_URL
}

#include "hardmod/basic.inc"

new Handle:Plugin_Mode;
new Handle:Configs_Dir;

public OnPluginStart()
{
	new String:cvar_sm_logfile_events[256] = "logs/events.log";
	if (StrEqual(cvar_sm_logfile_events, "", false) != true)
	{
		decl String:file[PLATFORM_MAX_PATH];
		BuildPath(Path_SM, file, sizeof(file), cvar_sm_logfile_events);	
		LogToFileEx(file, "OnPluginStart()");
	}
	new String:moddir[64];
	GetGameFolderName(moddir, sizeof(moddir));
	if (!StrEqual(moddir, "left4dead2", false)) SetFailState("Use this plugin for Left 4 Dead 2 only.");
	CreateConVar("l4d2_advanced", PLUGIN_VERSION, "[L4D2] Events Version", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_UNLOGGED|FCVAR_DONTRECORD|FCVAR_REPLICATED|FCVAR_NOTIFY);
	Plugin_Mode = CreateConVar("l4d2_advanced_mode", "2", "", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_NOTIFY);
	Configs_Dir = CreateConVar("l4d2_config_dir", "events", "", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_NOTIFY);
//	HookSourceServerEvents();
	HookL4D2Events();

	HookEvent("round_start", Event_RoundStart);
}

public Action:Event_RoundStart(Handle:hEvent, const String:strName[], bool:DontBroadcast)
{
	ServerCommand("exec events\\map_start.cfg");
}

public HookSourceServerEvents()
{
	HookEvent("server_spawn", Event_ExecConfig);
	HookEvent("server_shutdown", Event_ExecConfig);
	HookEvent("server_cvar", Event_ExecConfig);
//	HookEvent("server_msg", Event_ExecConfig); // Native "HookEvent" reported: Game event "server_msg" does not exist
	HookEvent("server_addban", Event_ExecConfig);
	HookEvent("server_removeban", Event_ExecConfig);
	HookEvent("player_connect", Event_ExecConfig);
	HookEvent("player_info", Event_ExecConfig);
	HookEvent("player_disconnect", Event_ExecConfig);
	HookEvent("player_activate", Event_ExecConfig);
	HookEvent("player_say", Event_ExecConfig);
}

public HookL4D2Events()
{
	HookEvent("round_freeze_end", Event_ExecConfig);
	HookEvent("round_start_pre_entity", Event_ExecConfig);
	HookEvent("round_start_post_nav", Event_ExecConfig);
//	HookEvent("nav_blocked", Event_ExecConfig);
	HookEvent("nav_generate", Event_ExecConfig);
	HookEvent("round_end_message", Event_ExecConfig);
	HookEvent("round_end", Event_ExecConfig);
	HookEvent("difficulty_changed", Event_ExecConfig);
	HookEvent("finale_start", Event_ExecConfig);
	HookEvent("finale_rush", Event_ExecConfig);
	HookEvent("finale_escape_start", Event_ExecConfig);
	HookEvent("finale_vehicle_incoming", Event_ExecConfig);
	HookEvent("finale_vehicle_ready", Event_ExecConfig);
	HookEvent("finale_vehicle_leaving", Event_ExecConfig);
	HookEvent("finale_win", Event_ExecConfig);
	HookEvent("mission_lost", Event_ExecConfig);
	HookEvent("finale_radio_start", Event_ExecConfig);
	HookEvent("finale_radio_damaged", Event_ExecConfig);
	HookEvent("final_reportscreen", Event_ExecConfig);
	HookEvent("map_transition", Event_ExecConfig);
	HookEvent("player_transitioned", Event_PlayerTransitioned);
	HookEvent("player_left_start_area", Event_ExecConfig);
	HookEvent("witch_spawn", Event_ExecConfig);
	HookEvent("witch_killed", Event_ExecConfig);
	HookEvent("tank_spawn", Event_ExecConfig);
	HookEvent("create_panic_event", Event_ExecConfig);
	HookEvent("weapon_spawn_visible", Event_ExecConfig);
	HookEvent("gameinstructor_draw", Event_ExecConfig);
	HookEvent("gameinstructor_nodraw", Event_ExecConfig);
	HookEvent("request_weapon_stats", Event_ExecConfig);
	HookEvent("player_talking_state", Event_ExecConfig);
	HookEvent("weapon_pickup", Event_ExecConfig);
	HookEvent("hunter_punched", Event_ExecConfig);
	HookEvent("tank_killed", Event_ExecConfig);
	HookEvent("gauntlet_finale_start", Event_ExecConfig);
	HookEvent("mounted_gun_start", Event_ExecConfig);
	HookEvent("mounted_gun_overheated", Event_ExecConfig);
	HookEvent("punched_clown", Event_ExecConfig);
	HookEvent("charger_killed", Event_ExecConfig);
	HookEvent("spitter_killed", Event_ExecConfig);
	HookEvent("jockey_killed", Event_ExecConfig, EventHookMode_Post);
//+	HookEvent("vomit_bomb_tank", Event_ExecConfig);
	HookEvent("triggered_car_alarm", Event_ExecConfig);
	HookEvent("panic_event_finished", Event_ExecConfig);
	HookEvent("song_played", Event_ExecConfig);
}

public OnMapStart()
{
	First_Player_Transitioned = false;
	PrintToAdmins("l4d2_events ( map_start )");
	ExecuteCFG("map_start");
}

public ExecuteCFG(const String:FileName[])
{
	if (GetConVarInt(Plugin_Mode) < 1) return;
	else if (GetConVarInt(Plugin_Mode) == 2)
	{
		new count = 0;
		for (new i = 1; i <= L4D_MAXPLAYERS; i++) if (IsValidClient (i) && IsClientInGame(i) && !IsFakeClient(i)) count++;
		if (!count) return;
	}
	new String:cvar_l4d2_config_dir[256];
	GetConVarString(Configs_Dir, cvar_l4d2_config_dir, sizeof(cvar_l4d2_config_dir));
	new String:CfgFileName[256];
	Format(CfgFileName, sizeof(CfgFileName), "%s/%s.cfg", cvar_l4d2_config_dir, FileName);
	new String:CfgFullFileName[256];
	Format(CfgFullFileName, sizeof(CfgFullFileName), "cfg/%s/%s.cfg", cvar_l4d2_config_dir, FileName);
	PrintToServer("exec %s", CfgFileName);
	if (FileExists(CfgFullFileName, false)) ServerCommand("exec %s", CfgFileName);
}

public Action:Event_PlayerTransitioned(Handle:event, const String:name[], bool:dontBroadcast)
{
	if (!First_Player_Transitioned)
	{
		First_Player_Transitioned = true;
		PrintToAdmins("l4d2_events ( first_player_transitioned )");
		ExecuteCFG("first_player_transitioned");
	}
	else Event_ExecConfig(event, name, dontBroadcast);
}

public Action:Event_ExecConfig(Handle:event, const String:name[], bool:dontBroadcast)
{
	PrintToAdmins("l4d2_events ( %s )", name);
	ExecuteCFG(name);
}
Изображение

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

#1459 Сообщение 31.03.2013, 20:09

хук "player_transitioned" не работает. чтобы в этом убедиться достаточно небольшого плагина.
а вот хук "round_start" прекрасно работает. о чем и сообщит в консоль сервера.
код
#include <sourcemod>
#include <sdktools>

public Plugin:myinfo =
{
name = "test",
author = "test",
description = "test",
version = "test",
url = "test",
}


public OnPluginStart()
{
HookEvent("player_transitioned", Event_playertransitioned);
HookEvent("round_start", Event_RoundStart);
}


public Action:Event_playertransitioned(Handle:Event, const String:strName[], bool:DontBroadcast)
{
ServerCommand("echo player_transitioned");
}

public Action:Event_RoundStart(Handle:Event, const String:strName[], bool:DontBroadcast)
{
ServerCommand("echo round_start");
}

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

#1460 Сообщение 31.03.2013, 21:02

playertransitioned работает, на нем важные функции хардмода висят вроде
или я это дело обходил через map_transitioned
Никакого отношения к нацистским группам и направлениям не имею.

theCHAMP
Сержант
Сержант
Сообщения: 72
Зарегистрирован: 15.12.2011

#1461 Сообщение 31.03.2013, 23:25

stark765 писал(а):не может закинуть новый сорсмод и нажать на create_release_linux/windows
Не надо думать что тут дебилы собрались,уж я смог ,и соурсмод новый закинуть и (внимание)........даже запустил файл create_release_windows ....все как Jonny писал так и сделал, суть не в том чтоб создать архив а в том что не работает у меня на сорсмоде 1.5 админка,статистика,оружка не сохраняется при смене карты,если слить раунд тогда появляется,ну может еще что не заметил.

stark765
Нович0к
Нович0к
Сообщения: 26
Зарегистрирован: 24.03.2013
Поблагодарили: 4 раза

#1462 Сообщение 01.04.2013, 02:10

theCHAMP писал(а):не работает у меня на сорсмоде 1.5 админка
Если виндовс то в - addons/sourcemod/configs/core.cfg попробуй поправить SteamAuthstringValidation переключив на "no". На пингвиноОС вроде работает что с включенным что без.

Сам пока использую SourceMod (1.5.0-dev+3777) для рабочего сервера. А под новые версии можно подстроиться постепенно.

sambuk
Лейтенант
Лейтенант
Сообщения: 132
Зарегистрирован: 25.05.2012
Поблагодарили: 7 раз

#1463 Сообщение 01.04.2013, 11:29

А я возьму и не уйду ,leks19 выложи новую сборку плиз,а то старая лагает .

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

#1464 Сообщение 01.04.2013, 13:46

sambuk писал(а):А я возьму и не уйду ,leks19 выложи новую сборку плиз,а то старая лагает .
В сборке есть изменения которые вам возможно не понравяться. И она не совместима с старым hardmod и некоторыми плагинами.
Теперь вопрос она вам надо?
Изображение

sambuk
Лейтенант
Лейтенант
Сообщения: 132
Зарегистрирован: 25.05.2012
Поблагодарили: 7 раз

#1465 Сообщение 01.04.2013, 14:33

leks19
я буду рад любым измененияМ .так как я потребитель без претензии .Сам я как Малевич черный квадрат,могу нарисовать.
Последний раз редактировалось sambuk 01.04.2013, 17:17, всего редактировалось 1 раз.

theCHAMP
Сержант
Сержант
Сообщения: 72
Зарегистрирован: 15.12.2011

#1466 Сообщение 01.04.2013, 15:41

stark765,ты реально помог,спасибо,все работает !!!
leks19 писал(а):Теперь вопрос она вам надо?
Надо !!! Я кстати твою сборку и юзаю последнее время,статистика мне там нравится ну и ......еще чтото ))) правда что б ктото допилил автоочистку статистики было б круто,а то она не корректно работает,с топ15 постоянных игроков чистит которые играют каждый день,и ето всегда так было еще при jonny,но он так и не сделал

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

#1467 Сообщение 01.04.2013, 17:29

Jonny писал(а):playertransitioned работает, на нем важные функции хардмода висят вроде
или я это дело обходил через map_transitioned
jonny, этот хук уже давно не работает. писал об этом но мне сказали что это только у меня. как оказалось не только у меня.
В коде который выложил выше в консоль сервера не пишет "player_transitioned" а вот "round_start" пишет.
на win сервере тоже не робит "player_transitioned".

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

#1468 Сообщение 01.04.2013, 20:13

Короче вот сборка
Изменения:
1.Добавлен рендом вещей на картах, пример: пулемет меняет положения на карте или вообще не появляется. (это, тестовая вещь, лень её доделать.)
2.Добавлена реалистичная перезарядка (как в BF2, патроны вылетают быстро, если не экономить)
3.Добавлена возможность sm_drop (нельзя выкидывать: рукопашное оружие, пистолеты и пилу)
4.Добавлена коробка Ammobox – кучка патрон (по умолчанию отключено)
Остальное не помню.

Скачать:
1.L4D2_Coop-16_Dr_leks_01.04.2013_windows
2.L4D2_Coop-16_Dr_leks_01.04.2013_linux
Изображение

sambuk
Лейтенант
Лейтенант
Сообщения: 132
Зарегистрирован: 25.05.2012
Поблагодарили: 7 раз

#1469 Сообщение 01.04.2013, 20:27

спасибос leks19

denzel515
Лейтенант
Лейтенант
Сообщения: 143
Зарегистрирован: 01.11.2007
Благодарил (а): 3 раза
Поблагодарили: 2 раза

#1470 Сообщение 01.04.2013, 21:17

ЕЕЕ leks19 спасибо!
Изображение

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