Случайная подборка модов
Пропавшая экспедиция
2.4
Doomed to Eternal Torment
3.9
Oblivion Lost Remake
4.1
Пространственная Аномалия 4.1
4.5
Another Zone Mod
4.3
Paradise Lost
3.7
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Модератор форума: Аdmin, Overfirst, Hardtmuth  
The FreeZone Project
Соединенные Штаты  Angry
Воскресенье, 25.09.2016, 07:23 | Сообщение # 1
Статус:
Зевака:
Сообщений: 10
Награды: 0
Регистрация: 06.12.2014


The FreeZone Project

Платформа: ЧН 1.5.10
Разработчик: FreeZone Team
Дата выхода: TBD, беты выходят по мере создания.











Сообщение отредактировал Angry - Воскресенье, 25.09.2016, 11:15
  Злобная реклама
Воскресенье, 25.09.2016, 07:23
Статус:
Сообщений: 666
Регистрация: 06.12.2014
Российская Федерация  drksnc
Четверг, 09.11.2017, 18:59 | Сообщение # 91
xrMPE
Статус:
Гость:
Сообщений: 30
Награды: 2
Регистрация: 23.10.2017

Вроде бы поправил, но все равно вылетает при попытке коннекта.
.h
Код
typedef unsigned int FZArchiveCompressionType;
FZArchiveCompressionType FZ_COMPRESSION_NO_COMPRESSION = 0;
FZArchiveCompressionType FZ_COMPRESSION_LZO_COMPRESSION = 1;
FZArchiveCompressionType FZ_COMPRESSION_CAB_COMPRESSION = 2;

#pragma pack(push, 1)
struct StructForCallBack {
    xrServer* srv;
    ClientID cl_id;
};
#pragma pack(pop)

struct FZSysMsgSendCallbackData {
    IPureServer* srv;
    ClientID cl_id;

};
using FZSysMsgsProcessClientModDll = void*;

void __stdcall FZSysMsgSender(void* msg, unsigned int len, StructForCallBack* userdata)
{
    userdata->srv->SendTo_LL(userdata->cl_id, msg, len, DPNSEND_IMMEDIATELLY + DPNSEND_GUARANTEED + DPNSEND_PRIORITY_HIGH, 0);
}
typedef void(__stdcall *PointerToFunc)(void* msg, unsigned int len, StructForCallBack* userdata);

#pragma pack(push, 1)
struct FZFileDownloadInfo {
  char* filename;
  char* url;
  unsigned int crc32;
  FZArchiveCompressionType compression;
  char* progress_msg;
  char* error_already_has_dl_msg;
};
#pragma pack(pop)

#pragma pack(push, 1)
struct FZReconnectInetAddrData {
  char* ip;
  unsigned int port;
};
#pragma pack(pop)

#pragma pack(push, 1)
struct FZDllDownloadInfo {
  FZFileDownloadInfo fileinfo;
  char* procname;
  char* procarg1;
  char* procarg2;
  char* dsign;
  FZReconnectInetAddrData reconnect_addr;
  unsigned int is_reconnect_needed;
  char* name_lock;
};
#pragma pack(pop)

typedef void(*FZSysMsgsSendSysMessage)(void*, FZDllDownloadInfo*, void*, FZSysMsgSendCallbackData*);
typedef bool(*FZSysMsgsInit)();

.cpp
Код
    if (GetClientByID(CL->ID) != GetServerClient()){
  FZSysMsgsProcessClientModDll* payload;

  FZDllDownloadInfo* moddllinfo;

  moddllinfo->fileinfo.filename = "ctz.mod";
  moddllinfo->fileinfo.url = "http://stalker.gamepolis.ru/mods_clear_sky/engine_1510/fz_mod_loader.dll";
  moddllinfo->fileinfo.crc32 = 0xBBBEF09F;
  moddllinfo->fileinfo.progress_msg = "fz_mod_downloading";
  moddllinfo->fileinfo.error_already_has_dl_msg = "fz_already_has_download";
  moddllinfo->fileinfo.compression = FZ_COMPRESSION_NO_COMPRESSION;
  moddllinfo->procname = "ModLoad";
  moddllinfo->procarg1 = "ctz";
  moddllinfo->procarg2 = "-srv 37.144.191.129 -srvport 5445 -binlist http://stalker.gamepolis.ru/mods_clear_sky/engine_1510/engine.txt";
  moddllinfo->dsign = "302D0214411F7831E892D25B13F357E7AAEB565B03E926F6021500F1658E9E1733C37BD183279F7C5B00D4AAA3C8F8";
  
  moddllinfo->is_reconnect_needed = 1;
  moddllinfo->reconnect_addr.ip = "37.144.191.129";
  moddllinfo->reconnect_addr.port = 5445;

  FZSysMsgSendCallbackData* userdata;

  userdata->srv = CL->server;
  userdata->cl_id = CL->ID;
  PointerToFunc sndr;
  sndr = &FZSysMsgSender;

  HINSTANCE hGetProcIDDLL = LoadLibrary("sysmsgs.dll");

  FZSysMsgsSendSysMessage myCppProc;
  FZSysMsgsInit myCppProc_;

  myCppProc_ = (FZSysMsgsInit)GetProcAddress(hGetProcIDDLL, "FZSysMsgsInit");
  myCppProc_(); //Надо ли вызывать?

  myCppProc = (FZSysMsgsSendSysMessage)GetProcAddress(hGetProcIDDLL, "FZSysMsgsSendSysMessage");
  myCppProc(payload, moddllinfo, sndr, userdata); // Пробовал и ссылками
  FreeLibrary(hGetProcIDDLL);
    }
Сообщение отредактировал drksnc - Четверг, 09.11.2017, 19:37
  Злобная реклама
Четверг, 09.11.2017, 18:59
Статус:
Сообщений: 666
Регистрация: 23.10.2017
Российская Федерация  Sin
Пятница, 10.11.2017, 03:28 | Сообщение # 92
Статус:
Отмычка:
Сообщений: 77
Награды: 1
Регистрация: 15.01.2014

Цитата drksnc ()
myCppProc_(); //Надо ли вызывать?

Надо. В следующей версии еще и Free появится, которую тоже надо будет дергать перед завершением работы с модулем.

Цитата drksnc ()
FZSysMsgsProcessClientModDll* payload;

FZDllDownloadInfo* moddllinfo;

Указатели в никуда smile Надо не указатель тут объявлять, а сам экземпляр структуры.
  Злобная реклама
Пятница, 10.11.2017, 03:28
Статус:
Сообщений: 666
Регистрация: 15.01.2014
Российская Федерация  drksnc
Пятница, 10.11.2017, 04:55 | Сообщение # 93
xrMPE
Статус:
Гость:
Сообщений: 30
Награды: 2
Регистрация: 23.10.2017

Цитата Sin ()
Надо не указатель тут объявлять, а сам экземпляр структуры.

Да, я делал так
Код
  FZDllDownloadInfo* pModdllinfo;
  pModdllinfo = &moddllinfo;

  FZSysMsgsProcessClientModDll* pPayload;
  pPayload = &payload;

  FZSysMsgSendCallbackData* pUserdata;
  pUserdata = &userdata;

Но все равно вылет sad
  Злобная реклама
Пятница, 10.11.2017, 04:55
Статус:
Сообщений: 666
Регистрация: 23.10.2017
Российская Федерация  Sin
Пятница, 10.11.2017, 17:48 | Сообщение # 94
Статус:
Отмычка:
Сообщений: 77
Награды: 1
Регистрация: 15.01.2014

drksnc, что-то не так значит. Вот тебе наколеночный пример, который не вылетает и что-то пытается отправлять, дергая колбэк. Адаптируй ко своим реалиям.
  Злобная реклама
Пятница, 10.11.2017, 17:48
Статус:
Сообщений: 666
Регистрация: 15.01.2014
Российская Федерация  drksnc
Пятница, 10.11.2017, 18:09 | Сообщение # 95
xrMPE
Статус:
Гость:
Сообщений: 30
Награды: 2
Регистрация: 23.10.2017

Спасибо большое, нашел косяк. biggrin
  Злобная реклама
Пятница, 10.11.2017, 18:09
Статус:
Сообщений: 666
Регистрация: 23.10.2017
Российская Федерация  Graff46
Вторник, 21.11.2017, 19:37 | Сообщение # 96
Новое Время
Статус:
Бывалый:
Сообщений: 867
Награды: 7
Регистрация: 02.05.2013

Кооператив на данном возможен?
  Злобная реклама
Вторник, 21.11.2017, 19:37
Статус:
Сообщений: 666
Регистрация: 02.05.2013
Российская Федерация  Hardtmuth
Вторник, 21.11.2017, 21:49 | Сообщение # 97
Статус:
Ветеран:
Сообщений: 5233
Награды: 37
Регистрация: 01.03.2012

Цитата Graff46 ()
Кооператив на данном возможен?

Думаю да, почему нет. Через FZ можно скачивать карты, моды. Этого достаточно.
Создаешь модецкий с кооперативом, и запускаешь сервер с этим модом, предварительно настроив и всё сделав в FZ. После запуска сервера игроки заходят на сервер и у них скачивается мод и стоящая карта на сервере.
Сообщение отредактировал Hardtmuth - Вторник, 21.11.2017, 21:51
  Злобная реклама
Вторник, 21.11.2017, 21:49
Статус:
Сообщений: 666
Регистрация: 01.03.2012
Российская Федерация  Hardtmuth
Воскресенье, 26.11.2017, 14:56 | Сообщение # 98
Статус:
Ветеран:
Сообщений: 5233
Награды: 37
Регистрация: 01.03.2012

Цитата Vojlok ()
Хорошие новости - FreeZone обновился!

Эх, ждём теперь чтобы sin для Теней сделал вкусняшек)
  Злобная реклама
Воскресенье, 26.11.2017, 14:56
Статус:
Сообщений: 666
Регистрация: 01.03.2012
Российская Федерация  Sin
Суббота, 09.12.2017, 17:18 | Сообщение # 99
Статус:
Отмычка:
Сообщений: 77
Награды: 1
Регистрация: 15.01.2014

Вышло обновление с возвращением поддержки загрузки контента в GoG и Steam версиях ЧН. У кого есть оные - просьба потестить работу загрузки карт и модов.

Добавлено (09.12.2017, 17:18)
---------------------------------------------
"Один FZ чтоб править всеми..."

Сообщение отредактировал Sin - Суббота, 09.12.2017, 17:13
  Злобная реклама
Суббота, 09.12.2017, 17:18
Статус:
Сообщений: 666
Регистрация: 15.01.2014
Коста Рика  Jargon
Суббота, 09.12.2017, 19:07 | Сообщение # 100
X-Ray Multiplayer Extension
Статус:
Бывалый:
Сообщений: 1078
Награды: 3
Регистрация: 24.06.2012

Цитата Sin ()
"Один FZ чтоб править всеми..."

Тоесть на версию не ругается если через мастерлист подключиться?
  Злобная реклама
Суббота, 09.12.2017, 19:07
Статус:
Сообщений: 666
Регистрация: 24.06.2012
Российская Федерация  Sin
Вторник, 01.05.2018, 16:54 | Сообщение # 101
Статус:
Отмычка:
Сообщений: 77
Награды: 1
Регистрация: 15.01.2014

Jargon, на неправильную версию естественно будет ругаться smile . Соль в том, что:
1) В принципе удается относительно малой кровью прикручивать к sysmsgs поддержку движка ЗП -пока что сделано для загрузчика карт. Отличия от ЧН есть, но они не столь существенны.
2) Решение получается кроссплатформенным - либу можно будет использовать с обоими движками. Собственно, на скрине показано, что при подключении клиента ЗП к ЧНовскому серверу (прямой IP никто не отменял) модуль исправно отрабатывает и стартует загрузку на клиенте ЗП.

Добавлено (01.05.2018, 16:54)
---------------------------------------------
Итак, выложен новый релиз FreeZone. Из вкусностей:
-Модули генератора системных сообщений (sysmsgs.dll) и загрузчика модов (fz_mod_loader.dll) теперь стали по-настоящему кроссплатформенными - поддерживается работа на ТЧ 1.0006, ЧН 1.5.10, ЗП 1.6.02. Благодаря этому автоматическую загрузку модов можно с легкостью реализовать в модах на всех 3х играх серии. Пример использования и класс-обертку можно найти в коде FreeZone, а также в проекте sysmsgs_cpp_wrap.
-Упрощена настройка сервера для работы с зарегистрированными в мастер-списке модами - теперь достаточно указать только желаемый mod_name и адрес/порт сервера в mod_params
-Анализ закупа игроков - использовать шопхаки теперь достаточно проблематично (особенно при включенной опции оповещения радминов)
-Исправление множества новых багов и глюков

Все желающие могут взять его по стандартному адресу: https://github.com/FreeZoneMods/freezone

  Злобная реклама
Вторник, 01.05.2018, 16:54
Статус:
Сообщений: 666
Регистрация: 15.01.2014
Украина  SEMFOX
Воскресенье, 06.05.2018, 13:52 | Сообщение # 102
Статус:
Зевака:
Сообщений: 11
Награды: 1
Регистрация: 05.05.2018

Хотелось бы мануальчик по работе с модами
  Злобная реклама
Воскресенье, 06.05.2018, 13:52
Статус:
Сообщений: 666
Регистрация: 05.05.2018
Российская Федерация  Sin
Воскресенье, 06.05.2018, 16:56 | Сообщение # 103
Статус:
Отмычка:
Сообщений: 77
Награды: 1
Регистрация: 15.01.2014

SEMFOX, какого именно плана? По установке FreeZone на сервер и настройке загрузчика на использование существующего мода? По добавлению нового мода в систему? По интеграции загрузчика в движок и API модуля sysmsgs?
Вообще, лучше всего на данный момент подходить к вопросу с практической стороны. Если есть желание поставить сервер с уже существующим модом- лучше всего попытаться это сделать и спрашивать про конкретные проблемы: хочу добиться того-то, делаю то-то, использую такой-то конфиг - не выходит, чего не хватает?
А мануалы - это штука очень хорошая, но вот на их написание нужно время. У меня давно уже в планах написать что-то подобное (ибо там много о чем можно рассказать), да только руки не доходят никак. Тут уж либо развитие кода, либо написание документации, третьего не дано... К счастью, конфиги откомментированы достаточно подробно - можно начать знакомство с FreeZone с них.
  Злобная реклама
Воскресенье, 06.05.2018, 16:56
Статус:
Сообщений: 666
Регистрация: 15.01.2014
Украина  SEMFOX
Четверг, 24.05.2018, 11:58 | Сообщение # 104
Статус:
Зевака:
Сообщений: 11
Награды: 1
Регистрация: 05.05.2018

Сделали сервер с модом и FZ. С интернета все работает. Но я захожу на сервер по локалке. Неверный хост. Что можно сделать?
Спасибо за ответ.
  Злобная реклама
Четверг, 24.05.2018, 11:58
Статус:
Сообщений: 666
Регистрация: 05.05.2018
Российская Федерация  Sin
Воскресенье, 27.05.2018, 17:33 | Сообщение # 105
Статус:
Отмычка:
Сообщений: 77
Награды: 1
Регистрация: 15.01.2014

Доступно очередное обновление с фиксом багов. Рекомендуется к всеобщей установке (впрочем, как и всегда).
Также в ТЧ запущен тестовый сервер с модом [stalker-life.ru] Mod. Объем загружаемых файлов (в запакованном виде) порядка 270Мб. Пока что модом поддерживается только RU-версия игры (обладатели WW-версии будутс высокой степенью вероятности получать вылет при старте мода).

Добавлено (27.05.2018, 17:33)
---------------------------------------------
SEMFOX, например, можно попробовать после получения "неверного хоста" зайти в меню сетевой игры и нажать на кнопку "Прямой IP", после чего указать для коннекта "серый" IP-адрес сервера в твоей локалке (или 127.0.0.1, если он на той же машине, что и клиент).

  Злобная реклама
Воскресенье, 27.05.2018, 17:33
Статус:
Сообщений: 666
Регистрация: 15.01.2014
Поиск: