PAINKILLER: Cooperative mod Это не Альфа- и даже не Бета-версия,читаем внимательно описание!!! Цель: создание кооперативного режима по типу Serious Sam - прохождение сингловой кампании в мультиплеере. Создаю на базе Black Edition v1.64 Начало разработки: 28.09.2011
Меню Пейнкиллера видит новый режим и может загружать список карт. Игрок может реснуться на карте. Появляется золото, монстры видят и атакуют игрока. Музыка меняется на боевую и обратно, есть шепот вначале карты. Второй режим хлеборезки подкидывает противников. Колья исчезают позже, таким образом не будет фейла при убийстве врага с колострела, что кола нет, а тело пришпилено. Работает фонарик. Огнемет теперь все-таки огнемет))) А то раньше он огнем не стрелял) Работает комбо электропушки. Добавлены некоторые специальные консольные команды для облегчения тестирования (coopweapons,coopgod,coopammo,coopdemon - работают аналогично чит-кодам из сингла, coopdifficulty - позволяет менять сложность, coopnextmap - следующая карта, coopmap загружает карту с указанным индексом из маплиста) Игрок ресается на последнем чекпоинте
Важные: Клиент не может подключиться к серверу - ошибка "different client scripts". Проблема в загрузке сингловой карты на сервер. Из-за ошибки физики часть уровней непроходима, часть секретов недостижима. Из-за физики игра может неподетски тормозить в мультиплеере. Можно проходить сквозь предметы и мобов. При прохождении через моба возникает глюк отображения следа атаки и фриз (подтормаживание) На уровне Анклав игрок проходит сквозь землю. На уровне Аластор есть ОЧЕНЬ большой фэйл.... Будут исправлены позже: Список карт: если удалить карту из списка, то вернуть ее назад будет сложно (нужно будет менять конфиги вручную) поэтому просто перемещайте карты на нужную вам позицию. Исправлять не буду т.к. в настройках кооператива можно будет только выбрать начальную карту. Игрок ресается смотря куда-то в сторону (нет угла на который он должен быть повернут). Неисправимо (неоткуда брать оный угол, он разный для разных карт) Не открываются двери, таким образом после первой смерти карта становиться непроходимой. Некоторые проблемы с режимом Демона Морфа на уровне Ад. Мобы на некоторых уровнях ресаются раньше времени (возможно ошибка расчета "этажей" карты, пока замечено было только на снежном мосту). Мобы на некотором расстоянии "не видят" игрока. При достижении конца уровня игра выходит на карту. По завершении времени грузится следующая карта. Время, фраги, ресающиеся патроны\броня и прочие элементы дезматча. Не удается загрузить начальную конфигурацию оружия игрока для карты.
Придумать способ все-таки загрузить сингловые карты на сервер. Исправить ошибку физики. Помощь в работе со скриптами
Даже не альфа! Ссылка. Работает только у сервера! Установка: 1: распаковываем в папку игры 2: запускаем батник 3: играем Замена файлов не производится. Выделенный сервер: ссылка Установка и подготовка к тестированию мода: 1: распаковываем в папку /bin 2: создаем батник с текстом Bin\PainServer.exe -lscripts ..\COOP.pak 3: запускаем созданный батник, нажимаем кнопочку старт 4: для перехода в режим кооператива набираем в консоли \gamemode coop
Я люблю людей... особенно - убивать!^__^
Сообщение отредактировал ItramariN - Четверг, 20.06.2013, 18:42
ItramariN В общем попробовали кооператив, на скрине все видно что происходит когда пытаемся приконектиться к друг другу. То есть я делал сервер и он делал, результат ошибки присоединение клиента одинаковый.
Когда заходишь на Join Game в списке Internet видно создавшего кооператив. Да и еще когда выходишь из игры (являешься при этом сервером) игрок видит в списке тебя (то видно то не видно то есть при Refresh может не виден сервер или снова появится) до сих пор, пока по новой не сделаешь север с другим названием, только тогда старый исчезает.
Сообщение отредактировал Legion_Pheonix - Четверг, 19.01.2012, 22:56
Legion_Pheonix, Теоретически (по аналогии с PK++) это лечится созданием пака. Создаешь в папке с игрой бат файл (<название_файла>.bat) с текстом bin\Painkiller.exe -script FS.CreatePack('../Data/COOP.pak','../Data/LScripts', true) rmdir /s /q Data\LScripts pause Запускаешь. Он создаст пак и удалит папку LScripts. Затем меняешь текст на Bin\Painkiller.exe -lscripts COOP.pak Вот тебе и файлик запуска мода готов... Я люблю людей... особенно - убивать!^__^
К сожалению ни разу не делал паки и моды к painkiller'у. Делаю все как по вашей инструкции. Первый раз создается файл COOP.pak но он весит 1 кб (пытался открыть расспаковщиком сразу выдало ошибку и не открылось). Затем сделал второй батник Bin\Painkiller.exe -lscripts COOP.pak rmdir /s /q Data\LScripts pause После запуска выдает что не находит эту папку "LScripts".
Удалось решить проблему методом удаления из первого батника строчки: rmdir /s /q Data\LScripts pause То есть оставил только первую строку. Запустил первый батник COOP.pak весит 1 469 214 байт и открывается расспаковщиком, то есть содержимое видно. Затем второй батник запустил и игра запустилась без каких-либо ошибок. Выкл игру удалил папку LScripts и вкл снова игру, режим кооператив на месте.
Вечером уже с другом будем снова тестить присоединение к друг другу.
Сообщение отредактировал Legion_Pheonix - Пятница, 20.01.2012, 15:57
К этому посту я прикрепил: уже заархивированный LScripts мода (COOP.pak, кидаем в "папка с игрой/Data/"), батник (кидаем в папку с игрой, запускать только через него) и несколько уровней с уже валяющимися оружиями (по стандарту выдаётся только коломёт).
Вспомнил еще кое что благо друг напомнил, есть же известный сайт по модингу http://www.moddb.com/ очень рекомендую туда зарегистрироваться и создать свой раздел на тему коопа в пайне. Многие захотят участвовать в разработке и вам как раз помогут в реализации самостоятельного мода. Там многие моды до сих пор живы благодаря сообществу MODDB. Даже если ваш мод кустарный это не помешает сделать его адекватно работающим.
Добавлено (20.01.2012, 22:02) --------------------------------------------- Попробовали еще раз кооператив. Все тоже самое ничего не изменилось. То есть та же ошибка скрипта. Скрипт взяли выше постом.
Сообщение отредактировал Legion_Pheonix - Пятница, 20.01.2012, 22:16
Попробовали еще раз кооператив. Все тоже самое ничего не изменилось. То есть та же ошибка скрипта. Скрипт взяли выше постом.
Никак не могу понять, в чем проблема. Вернее, в чем проблема понятно, но почему она возникла - нет. Буду думать. Я люблю людей... особенно - убивать!^__^
Привет всем, так, скачал ваш архив со скриптами, совершенно не понимаю как что работает, но могу сказать следующее, сам занимался попытаками сделать кооператив на PK:BooH, и вот что вышло, я получил работающий целиком уровень, т.е. работающие чекпоинты, триггеры, спауны монстров, но появились следующие проблемы двери могли закрываться но не открываться а монстры появлялись но не нападали, что интересно Zombie и Zombie_Soldier при это между собой взаимодействовали, плюс ко всему не замечая игрока монстры шли в какую то одну точку, что позволяет утверждать что мультиплеер игнорирует waypoints. Оружие при правильной настройке скриптов работает нормально, монстры убиваются, но все это только на компьютере сервера. После того как ко мне подключился другой человек он не видел дверей, монстров и.т.д и вообще работа клиента была жестко глюченой.
Сообщение отредактировал JohnFerras - Воскресенье, 22.01.2012, 15:47
Клиент - Сервер - большая разница. даже на уровне Физики, у сервера в картах бьется допустим стекло, а у клиента его ваще нету ....
А монстры, скорее всего бегут на Нулевую точку координат уровня, за непониманием проимходящего.. Например как скелитон солдеры накиданные на карту за неимением игрока на ней .
На самом деле, я понимаю лишь частично))) Просто добавлял к условию "сингл" условие "или кооп", вот и получал правильную загрузку скриптов, и всего прочего пусть и кустарным способом. Только сейчас более-менее понимаю, как что работает) JohnFerras, Монстры бегут на нулевую точку уровня потому что только в сингле есть специальное дополнение к процедуре перемещения игрока по карте и в ней идет изменение переменных, на которые и ориентируются мобы. Я это исправил, но не тестил с несколькими игроками. Как ты пытался реализовать кооператив? Может какие-то решения пригодятся) Вообще, кто хотя бы пытался создавать модификации для пэйнкиллера? Я люблю людей... особенно - убивать!^__^
Сообщение отредактировал ItramariN - Четверг, 26.01.2012, 01:06
Я не знаю кто пытался, но я переименовывал уровень C1L4_Cemetery в DM_Cemetery с карта становилась доступной для загрузки из игры, возникали ошибки с монстрами так как игра не находила их, но я их запихнул в уровень локально.
я переименовывал уровень C1L4_Cemetery в DM_Cemetery с карта становилась доступной для загрузки из игры
Ну тогда ясно от чего у тебя были такие баги
Quote (ItramariN)
кто хотя бы пытался создавать модификации для пэйнкиллера?
На данный момент много людей делают модификации. Sviatoslav сейчас делает продолжение Supernatural'а, причем изменений скриптов там много, достаточно взглянуть на трейлер, на pkzone.org HV и GreenTechB делают маппак (с изменением скриптов там хз что будет), ну и я, Deemka (Vandal) и LexaR делаем мод, правда, изменять в скриптах вряд ли что будем. Также на форуме "Беседы у Камина" есть человек, который начал изменять скрипты, его ник theleo_ua.
На данный момент много людей делают модификации. Sviatoslav сейчас делает продолжение Supernatural'а, причем изменений скриптов там много, достаточно взглянуть на трейлер, на pkzone.org HV и GreenTechB делают маппак (с изменением скриптов там хз что будет), ну и я, Deemka (Vandal) и LexaR делаем мод, правда, изменять в скриптах вряд ли что будем. Также на форуме "Беседы у Камина" есть человек, который начал изменять скрипты, его ник theleo_ua.
Вот надо бы узнать, не сталкивался ли кто с подобной ошибкой скриптов как у меня...
Quote (Str_Ghost)
Ну тогда ясно от чего у тебя были такие баги
Только частично. Тормоза, двери и прочие баги у клиента несколько... настораживают) Я люблю людей... особенно - убивать!^__^
ItramariN, Насчёт физики в коопе, сегодня лазил в Game.lua и нашёл такую функцию:
Code
function Game:SwitchPlayerToPhysics(onlyEnable)
if not Player and self.GMode == GModes.SingleGame then self:CreatePlayerSP() end
if not Player then MOUSE.Lock( not MOUSE.IsLocked() ) return end
local po = ENTITY.PO_IsEnabled(Player._Entity) if onlyEnable and po then return end if not po and not Player._died then local x,y,z = CAM.GetPos() ENTITY.PO_SetPawnHeadPos(Player._Entity,x,y,z) ENTITY.SetVelocity(Player._Entity,0,0,0) if Player:GetCurWeapon() then WORLD.AddEntity(Player:GetCurWeapon()._Entity) end Player.Pos:Set(ENTITY.GetPosition(Player._Entity)) ENTITY.EnableDeathZoneTest(Player._Entity,true) else ENTITY.EnableDeathZoneTest(Player._Entity,false) PX,PY,PZ = 0,-400,0 ENTITY.SetPosition(Player._Entity,0,-400,0) if Player:GetCurWeapon() then WORLD.RemoveEntity(Player:GetCurWeapon()._Entity) end end ENTITY.PO_Enable(Player._Entity,not po) if( R3D.IsFullscreen() ) then INP.Reinit(true) else INP.Reinit(not po) end MOUSE.Lock(not po) end
Небольшой фикс, может быть исправит ошибку что клиент не может соединится с сервером, а может вообще ничего не изменитО_о Но все равно прошу протестить. ссылка Я люблю людей... особенно - убивать!^__^
Сообщение отредактировал ItramariN - Воскресенье, 19.02.2012, 04:02
Ой, тут нужно было что-то протестить? Вот блин, я к сожелению уже не могу быть сервом, поэтому придётся кого-то другого просить. А вообще, работа над модом идёт или приостановлено всё?