PainkilleR

Фан-клуб

ОПРОС

Оцените этот сайт

menuleft3
menuleft4

Painkiller: кооператив by ItramariN

PAINKILLER: Cooperative mod
Это не Альфа- и даже не Бета-версия,читаем внимательно описание!!! 
Цель: создание кооперативного режима по типу Serious Sam - прохождение сингловой кампании в мультиплеере.
Создаю на базе Black Edition v1.64
Начало разработки: 28.09.2011





[signature]
--------------------
{signature}
[/signature]
[fast]Цитировать[/fast] Жалоба
#0
Str_Ghost
Посетители
  • публикации
  • комментария
ItramariN, Может, стоит ссылку в шапку темы добавить?
Цитировать Жалоба
ItramariN
Посетители +
  • публикаций
  • комментариев
Quote (Str_Ghost)
ItramariN, Может, стоит ссылку в шапку темы добавить?

Когда будет рабочая версия - добавлю)
Цитировать Жалоба
ItramariN
Посетители +
  • публикаций
  • комментариев
Мне пришла в голову свежая мысль - мобы же бочки исправно двигают у меня в моде, значит нужно покопаться в процедуре их инициализации, может смогу решить проблему)
Цитировать Жалоба
Str_Ghost
Посетители
  • публикации
  • комментария
Написал в ЛС следующим людям по поводу теста: Legion_Pheonix, Robin и Sith. Если есть ещё желающие протестить/побегать в коопе - пишите мне в личку, желательно также и приложить свои контакты, по которым с вами можно связаться в реальном времени (например, Skype, Steam и т.п.).
Quote (ItramariN)
Мне пришла в голову свежая мысль - мобы же бочки исправно двигают у меня в моде, значит нужно покопаться в процедуре их инициализации, может смогу решить проблему)

Ну и как, получилось реализовать? smile
Цитировать Жалоба
ItramariN
Посетители +
  • публикаций
  • комментариев
Quote (Str_Ghost)
Ну и как, получилось реализовать?

Пока нет, но появилась еще одна идея - если не получится с мобами, то можно просто прицепить к игроку какой-нить физический объект, который сымитирует наше влияние на предметы)
Цитировать Жалоба
Legion_Pheonix
Посетители
  • публикаций
  • комментариев
ItramariN
В общем попробовали кооператив, на скрине все видно что происходит когда пытаемся приконектиться к друг другу.
То есть я делал сервер и он делал, результат ошибки присоединение клиента одинаковый.

http://img.picsa.ru/pictures/0/000/105/495/105495.jpg

Когда заходишь на Join Game в списке Internet видно создавшего кооператив. Да и еще когда выходишь из игры (являешься при этом сервером) игрок видит в списке тебя (то видно то не видно то есть при Refresh может не виден сервер или снова появится) до сих пор, пока по новой не сделаешь север с другим названием, только тогда старый исчезает.
Цитировать Жалоба
ItramariN
Посетители +
  • публикаций
  • комментариев
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
Вот тебе и файлик запуска мода готов...
Цитировать Жалоба
Legion_Pheonix
Посетители
  • публикаций
  • комментариев
К сожалению ни разу не делал паки и моды к 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 и вкл снова игру, режим кооператив на месте.

Вечером уже с другом будем снова тестить присоединение к друг другу.
Цитировать Жалоба
Str_Ghost
Посетители
  • публикации
  • комментария
К этому посту я прикрепил: уже заархивированный LScripts мода (COOP.pak, кидаем в "папка с игрой/Data/"), батник (кидаем в папку с игрой, запускать только через него) и несколько уровней с уже валяющимися оружиями (по стандарту выдаётся только коломёт).
Цитировать Жалоба
Legion_Pheonix
Посетители
  • публикаций
  • комментариев
Вспомнил еще кое что благо друг напомнил, есть же известный сайт по модингу http://www.moddb.com/ очень рекомендую туда зарегистрироваться и создать свой раздел на тему коопа в пайне. Многие захотят участвовать в разработке и вам как раз помогут в реализации самостоятельного мода. Там многие моды до сих пор живы благодаря сообществу MODDB. Даже если ваш мод кустарный это не помешает сделать его адекватно работающим.

Добавлено (20.01.2012, 22:02)
---------------------------------------------
Попробовали еще раз кооператив. Все тоже самое ничего не изменилось. То есть та же ошибка скрипта. Скрипт взяли выше постом.
Цитировать Жалоба
ItramariN
Посетители +
  • публикаций
  • комментариев
Quote (Legion_Pheonix)
Попробовали еще раз кооператив. Все тоже самое ничего не изменилось. То есть та же ошибка скрипта. Скрипт взяли выше постом.

Никак не могу понять, в чем проблема. Вернее, в чем проблема понятно, но почему она возникла - нет. Буду думать.
Цитировать Жалоба
JohnFerras
Посетители +
  • публикаций
  • комментариев
Привет всем, так, скачал ваш архив со скриптами, совершенно не понимаю как что работает, но могу сказать следующее, сам занимался попытаками сделать кооператив на PK:BooH, и вот что вышло, я получил работающий целиком уровень, т.е. работающие чекпоинты, триггеры, спауны монстров, но появились следующие проблемы двери могли закрываться но не открываться а монстры появлялись но не нападали, что интересно Zombie и Zombie_Soldier при это между собой взаимодействовали, плюс ко всему не замечая игрока монстры шли в какую то одну точку, что позволяет утверждать что мультиплеер игнорирует waypoints. Оружие при правильной настройке скриптов работает нормально, монстры убиваются, но все это только на компьютере сервера. После того как ко мне подключился другой человек он не видел дверей, монстров и.т.д и вообще работа клиента была жестко глюченой.
Цитировать Жалоба
LexaR
Мастера
  • публикаций
  • комментариев
Клиент - Сервер - большая разница. даже на уровне Физики, у сервера в картах бьется допустим стекло, а у клиента его ваще нету ....

А монстры, скорее всего бегут на Нулевую точку координат уровня, за непониманием проимходящего.. Например как скелитон солдеры накиданные на карту за неимением игрока на ней .
Цитировать Жалоба
ItramariN
Посетители +
  • публикаций
  • комментариев
Quote (JohnFerras)
совершенно не понимаю как что работает

На самом деле, я понимаю лишь частично))) Просто добавлял к условию "сингл" условие "или кооп", вот и получал правильную загрузку скриптов, и всего прочего пусть и кустарным способом. Только сейчас более-менее понимаю, как что работает)
JohnFerras, Монстры бегут на нулевую точку уровня потому что только в сингле есть специальное дополнение к процедуре перемещения игрока по карте и в ней идет изменение переменных, на которые и ориентируются мобы. Я это исправил, но не тестил с несколькими игроками.
Как ты пытался реализовать кооператив? Может какие-то решения пригодятся)
Вообще, кто хотя бы пытался создавать модификации для пэйнкиллера?
Цитировать Жалоба
JohnFerras
Посетители +
  • публикаций
  • комментариев
Я не знаю кто пытался, но я переименовывал уровень C1L4_Cemetery в DM_Cemetery с карта становилась доступной для загрузки из игры, возникали ошибки с монстрами так как игра не находила их, но я их запихнул в уровень локально.
Цитировать Жалоба
Str_Ghost
Посетители
  • публикации
  • комментария
Quote (JohnFerras)
я переименовывал уровень C1L4_Cemetery в DM_Cemetery с карта становилась доступной для загрузки из игры

Ну тогда ясно от чего у тебя были такие баги biggrin
Quote (ItramariN)
кто хотя бы пытался создавать модификации для пэйнкиллера?

На данный момент много людей делают модификации. Sviatoslav сейчас делает продолжение Supernatural'а, причем изменений скриптов там много, достаточно взглянуть на трейлер, на pkzone.org HV и GreenTechB делают маппак (с изменением скриптов там хз что будет), ну и я, Deemka (Vandal) и LexaR делаем мод, правда, изменять в скриптах вряд ли что будем. Также на форуме "Беседы у Камина" есть человек, который начал изменять скрипты, его ник theleo_ua.
Цитировать Жалоба
ItramariN
Посетители +
  • публикаций
  • комментариев
Quote (Str_Ghost)
На данный момент много людей делают модификации. Sviatoslav сейчас делает продолжение Supernatural'а, причем изменений скриптов там много, достаточно взглянуть на трейлер, на pkzone.org HV и GreenTechB делают маппак (с изменением скриптов там хз что будет), ну и я, Deemka (Vandal) и LexaR делаем мод, правда, изменять в скриптах вряд ли что будем. Также на форуме "Беседы у Камина" есть человек, который начал изменять скрипты, его ник theleo_ua.

Вот надо бы узнать, не сталкивался ли кто с подобной ошибкой скриптов как у меня...
Quote (Str_Ghost)
Ну тогда ясно от чего у тебя были такие баги

Только частично. Тормоза, двери и прочие баги у клиента несколько... настораживают)
Цитировать Жалоба
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
Посетители +
  • публикаций
  • комментариев
Quote (Str_Ghost)
Это случайно не то что нужно?

Это то, что уже известно)

Небольшой фикс, может быть исправит ошибку что клиент не может соединится с сервером, а может вообще ничего не изменитО_о Но все равно прошу протестить.
ссылка
Цитировать Жалоба
Str_Ghost
Посетители
  • публикации
  • комментария
Ой, тут нужно было что-то протестить? blink Вот блин, я к сожелению уже не могу быть сервом, поэтому придётся кого-то другого просить. А вообще, работа над модом идёт или приостановлено всё?
Цитировать Жалоба
ItramariN
Посетители +
  • публикаций
  • комментариев
Пока в универе небольшая напряженка с лабами, так что покопатся в коде серьезно не могу. Зато потестил несколько уровней, исправил не замеченный ранее (и собственноручно созданный) баг с огнеметом, побаловался с Пэйнэдитором и все. Есть некоторые теоретические наработки (например, про карты Таро и патроны\броню\здоровье и т.д.) но пока физику не включу или не пойму, в чем фэйл у клиента со скриптами - даже лезть не буду.
Так что моду хотя бы до альфа-версии еще ой как далеко.
Цитировать Жалоба
Vandal
Посетители +
  • публикаций
  • комментариев
Может лучше начать пытаться пейнкиллер на некровижен переносить? ;)
Цитировать Жалоба

Добавить комментарий

Автору будет очень приятно узнать обратную связь о своей новости.

Мы в ВК

***
Фан группа по игре
Большая группа по игре
Первая группа по игре
menuright2
menuright3
menuright4
Сайт работает под управлением DataLife Engine.
© PainkillerClub.ru 2011-2023 | © Design by Мария Андрюшечкина.