Welcome to U.A.C. [O.S.A.]
login / register
Status: Guest
Архивы форума | iddqd.ru
Wolf 3D
ПравилаПравила ПоискПоиск
18+
Воскрешение игрока-союзника в кооператив при помощи ZSCRIPT Пред.  1, 2, 3  След.
   Список разделов - Местечко мапперов и моддеров - Воскрешение игрока-союзника в кооператив при помощи ZSCRIPTОтветить
АвторСообщение
ZZYZX
= Colonel =
Next rank: - Commissar - after 16 pointsМодератор форума
4874

Doom Rate: 1.74

Posts quality: +1312
Ссылка на пост №21 Отправлено: 02.01.19 13:55:24
YURA_111 пишет:
И два режима соединения - Сервер-Клиент или как в старом ДУМ...

Насколько я знаю, эта фича недопилена, иначе бы зандронум не нужен был. Нормально работает там только P2P, который такой себе по интернету.
Причём, чем больше игроков играет, тем больше он "такой себе". Не зря ограничение на 8 стоит )
2 2 1
YURA_111
- Sergeant Major -
Next rank: = Sergeant Major = after 32 points
568

Doom Rate: 2.01

Posts quality: +89
Ссылка на пост №22 Отправлено: 02.01.19 14:23:29
ZZYZX пишет:
эта фича недопилена,


Не знаю о чем идет речь. Мой мод сейчас больше чем даже АЕОД и мы играем минимум втроем постоянно. Режим - "NETMODE-0". Проблем нет. Иногда, очень редко бывает "Out of синхронизэйшен". Если начать Скриптить на ACS - тогда полный пизнес, хотя и они не помеха если их ОЧЕНЬ осторожно использвать и они у меня имеются (в уровнях которые ДУМ64).

Что же касается P2P - то максимум 3 игрока...

P.S. И я слышал что уже пилят новый мультиплеер для гоззы
ZZYZX
= Colonel =
Next rank: - Commissar - after 16 pointsМодератор форума
4874

Doom Rate: 1.74

Posts quality: +1312
Ссылка на пост №23 Отправлено: 02.01.19 15:08:31
YURA_111 пишет:
P.S. И я слышал что уже пилят новый мультиплеер для гоззы

Я и говорю что недопилена. Про новый мультиплеер. Вот он будет идеален )

YURA_111 пишет:
Иногда, очень редко бывает "Out of синхронизэйшен". Если начать Скриптить на ACS - тогда полный пизнес

С моей точки зрения мультиплеер в котором нельзя скриптить — ниоч.
А с зскриптом думаю тоже будет писос )

Рейтинг сообщения: +1, отметил(и): MasterMind
2 2 1
YURA_111
- Sergeant Major -
Next rank: = Sergeant Major = after 32 points
568

Doom Rate: 2.01

Posts quality: +89
Ссылка на пост №24 Отправлено: 02.01.19 15:14:25
ZZYZX пишет:
Вот он будет идеален


Я понимаю что оффтоп, но у тебя есть некая информация?

ZZYZX пишет:
С моей точки зрения мультиплеер в котором нельзя скриптить — ниоч.


Скриптить можно, просто нужно знать, что можно пихать используя ACS, а что нельзя... Это только методом долгих изысканий (мне удалось весь ДУМ64 засунуть в свой мод без вредя мультиплееру)
ZZYZX
= Colonel =
Next rank: - Commissar - after 16 pointsМодератор форума
4874

Doom Rate: 1.74

Posts quality: +1312
Ссылка на пост №25 Отправлено: 02.01.19 15:16:12
Я знаю примерно как должен работать этот мультиплеер. Там есть жёсткое разделение на клиент и сервер, на клиенте почти не выполняется логика, присутствуют только "куклы" акторов с серверной стороны.
Но это довольно сильно недопилено, о точном состоянии кода знает только dpJudas на форуме здума.
Он недавно перестал сидеть в дискорде, так что я хз по текущему прогрессу )
2 2 1
mars873
- Master Sergeant -
Next rank: = Master Sergeant = after 51 points
409

Doom Rate: 1.76

Posts quality: +108
Ссылка на пост №26 Отправлено: 02.01.19 17:17:31
Помню на этот счёт как-то веточку нашел в репозитории - https://github.com/coelckers/gzdoom/commits/clientserver
Даже качал, собирал и запускал, но мягко говоря там на тот момент происходил лютый треш, а так ждем нормальный МП в гоззе :)
1 1
Zveraboy
= 1st Lieutenant =
Next rank: - Captain - after 69 points
2021

Doom Rate: 1.1

Posts quality: +145
Ссылка на пост №27 Отправлено: 02.01.19 18:34:35
Таак тогда извините.
Лично я был не в курсе что можно так играть.
Просто я слышал как бы что есть проблемы с дикой рассинхронизацией сервака при игре.
А режимов там только 2 да?
ДЕзматч и кооператив?
1 2
YURA_111
- Sergeant Major -
Next rank: = Sergeant Major = after 32 points
568

Doom Rate: 2.01

Posts quality: +89
Ссылка на пост №28 Отправлено: 02.01.19 19:09:34
Game modes
ZDoom supports three different multiplayer game modes. Multiplayer source ports may also implement additional game modes, such as Capture The Flag or Domination.

Deathmatch
Deathmatch is a multiplayer game style pioneered by Doom in which players face off against each other, connected to a common area via a network.

A point, called a frag, is granted to a player whenever he or she kills an opponent.
Upon death, players restart at a random deathmatch start.
Players spawn with all keys, and keys are never placed on the map (there is currently no clean way to circumvent this).
Team deathmatch
Team deathmatch is a variant of deathmatch where players are placed into two or more teams. Players score frags by killing members of opposing teams. Gameplay options allow to reduce or remove friendly fire damage.

Cooperative
Cooperative gameplay, often referred to as co-op or coop, is a multiplayer game mode in which human players cooperate against a given game's monsters. Cooperative play is the default game mode if the -deathmatch parameter is not specified at the command line.

Network modes
ZDoom provides two networking modes to change how nodes connect to each-other. Depending on networking conditions, one may be more favorable then the other. You can force a netmode using the '-Netmode #' command line parameter.

Peer-to-Peer
Netmode 0, the default, is the traditional netmode. The faster of the two, each node talks to each other node directly, and the game is only slowed down by the slowest connection between two nodes. In Internet games, this does require all nodes to be able to contact all other nodes, or the game will appear to lock up when it starts (this only applies if you have 3 or more players). Hole punching is used by all guest nodes to connect to other nodes.

Packet Server
Netmode 1, which must be forced on, is an alternate mode added to ZDoom. The slowest of the two (depending on networking conditions), each node talks to the arbitrator (typically the first player), and the arbitrator then routes the info to each other node. As you are adding the time it takes the arbitrator to route the information to each node, Internet games can be slowed down significantly by this netmode, but with the advantage of a simpler network setup (only the host needs to be contactable). It's recommended that you do not force this netmode in 2 player games, as it's not needed (nothing changes about how the connection is initiated and maintained) and just results in larger packets.

Все это можно прочесть вот тут:
https://zdoom.org/wiki/Multiplayer
ZZYZX
= Colonel =
Next rank: - Commissar - after 16 pointsМодератор форума
4874

Doom Rate: 1.74

Posts quality: +1312
Ссылка на пост №29 Отправлено: 02.01.19 19:36:12
YURA_111 пишет:
Packet Server
Netmode 1, which must be forced on, is an alternate mode added to ZDoom. The slowest of the two (depending on networking conditions), each node talks to the arbitrator (typically the first player), and the arbitrator then routes the info to each other node. As you are adding the time it takes the arbitrator to route the information to each node, Internet games can be slowed down significantly by this netmode, but with the advantage of a simpler network setup (only the host needs to be contactable). It's recommended that you do not force this netmode in 2 player games, as it's not needed (nothing changes about how the connection is initiated and maintained) and just results in larger packets.

Судя по описанию это тот же P2P, только арбитратор используется как прокси. Чтобы не нужно хамачи было. Но это не полноценный c/s.

Я-то думал, пропустил что-то важное :o
2 2 1
YURA_111
- Sergeant Major -
Next rank: = Sergeant Major = after 32 points
568

Doom Rate: 2.01

Posts quality: +89
Ссылка на пост №30 Отправлено: 03.01.19 18:40:36
Труп погибшего игрока, но еще НЕ респавнившегося, в коде чем отличается от трупа, того же погибшего игрока, который уже респавнился? Я имею ввиду есть различие во флагах или пропертиях?
Void Weaver
- 1st Lieutenant -
Next rank: = 1st Lieutenant = after 168 points
1672

Doom Rate: 1.83

Posts quality: +494
Ссылка на пост №31 Отправлено: 03.01.19 21:03:24
Если ты о технической разнице между "живой"\"мёртвый", то при нормальных условиях минимальные отличия это флаги CORPSE и SOLID.
SHOOTABLE же вроде не отключается хотя именно он и говорит игре о том что актор может быть убит. При этом воскрешающие ф-ции реагируют непосредственно на CORPSE флаг, т. е. без флага этого воскрешён "труп" не может быть.
1 7 1
YURA_111
- Sergeant Major -
Next rank: = Sergeant Major = after 32 points
568

Doom Rate: 2.01

Posts quality: +89
Ссылка на пост №32 Отправлено: 03.01.19 21:45:55
Void Weaver
Вылезай уже из пати-пьянки... :ha:


YURA_111 пишет:
Труп погибшего игрока, но еще НЕ респавнившегося


и

YURA_111 пишет:
трупа, того же погибшего игрока, который уже респавнился
Void Weaver
- 1st Lieutenant -
Next rank: = 1st Lieutenant = after 168 points
1672

Doom Rate: 1.83

Posts quality: +494
Ссылка на пост №33 Отправлено: 03.01.19 21:57:17
Да я трезв как стёклышко, просто мне казалось что после успешного воскрешения труп перестаёт быть таковым. Если же "воскресший труп" это не какая-то исключительно скриптинговая специфика, то не мог бы ты более развёрнуто пояснить что сие значит в твоём определении?
1 7 1
YURA_111
- Sergeant Major -
Next rank: = Sergeant Major = after 32 points
568

Doom Rate: 2.01

Posts quality: +89
Ссылка на пост №34 Отправлено: 03.01.19 22:18:13
ДА не воскрешения - а RESPAWN. Ты ведь знаешь что это такое? Просто прочитай внимательно мой вопрос...
Void Weaver
- 1st Lieutenant -
Next rank: = 1st Lieutenant = after 168 points
1672

Doom Rate: 1.83

Posts quality: +494
Ссылка на пост №35 Отправлено: 04.01.19 15:15:25
Ок, понял тебя.

Возможно этот тест не отображает истинную картину процесса респауна в мультике, но результат следующий:

Запустил сингл гоззы в режиме эмуляции мультика (с параметрами -host 1 -respawn) =>
~ myinfo =>
сдох =>
~ myinfo =>
отреспился =>
~ info собственного трупа после респа =>

----------------------------
myinfo живого DoomPlayer
Скрытый текст:


flags: a000c46 SOLID SHOOTABLE DROPOFF PICKUP NOTDMATCH FRIENDLY
flags2: 441442 WINDTHRUST FLOORCLIP SLIDESONWALLS CANPASS TELESTOMP CANPUSHWALLS
flags3: 100000 NOBLOCKMONST //Шифрованный флаг MF3_NOBLOCKMONST
flags4: 0
flags5: 0
flags6: 0
flags7: 0
flags8: 0
<...>
special1: 0 special2: 0


----------------------------
myinfo до респа
Скрытый текст:


flags: a100c40 JUSTHIT DROPOFF PICKUP CORPSE NOTDMATCH FRIENDLY
flags2: 441442 WINDTHRUST FLOORCLIP SLIDESONWALLS CANPASS TELESTOMP CANPUSHWALLS
flags3: 300000 NOBLOCKMONST (unknown) //Неизвестная шифровка
flags4: 0
flags5: 0
flags6: 40000 (unknown) //Шифрованный флаг MF6_KILLED
flags7: 0
flags8: 0
<...>
special1: 12 special2: 0


----------------------------
info после респа
Скрытый текст:


flags: a100c40 JUSTHIT DROPOFF PICKUP CORPSE NOTDMATCH FRIENDLY
flags2: 441442 WINDTHRUST FLOORCLIP SLIDESONWALLS CANPASS TELESTOMP CANPUSHWALLS
flags3: 300000 NOBLOCKMONST (unknown)
flags4: 0
flags5: 0
flags6: 40000 (unknown)
flags7: 0
flags8: 0
<...>
special1: 0 special2: 0

Т. е. в info трупы до и после респа отличаются только в special1, по флагам же они идентичны.

Рейтинг сообщения: +1, отметил(и): YURA_111
1 7 1
YURA_111
- Sergeant Major -
Next rank: = Sergeant Major = after 32 points
568

Doom Rate: 2.01

Posts quality: +89
Ссылка на пост №36 Отправлено: 04.01.19 15:44:29
Спасибо!
Есть возможность чекать этот спейшел при помощи функции например A_JumpIf("") ?
Void Weaver
- 1st Lieutenant -
Next rank: = 1st Lieutenant = after 168 points
1672

Doom Rate: 1.83

Posts quality: +494
Ссылка на пост №37 Отправлено: 04.01.19 16:05:50
Скажем так, я вообще сомневаюсь что special1 вообще относится к процессу респа, ибо его значение не постоянно при каждой смерти. И как я писал выше не исключено что:
а) (my)info не отображают детали всех изменений; и
б) эмуляция респа в сингле отличается от таковой в мультике.
1 7 1
ZZYZX
= Colonel =
Next rank: - Commissar - after 16 pointsМодератор форума
4874

Doom Rate: 1.74

Posts quality: +1312
Ссылка на пост №38 Отправлено: 04.01.19 16:16:10
Итем прикрутите какой-нибудь который будет даваться при респавне. Чё за извращения со спешиалами )

Рейтинг сообщения: +1, отметил(и): Void Weaver
2 2 1
YURA_111
- Sergeant Major -
Next rank: = Sergeant Major = after 32 points
568

Doom Rate: 2.01

Posts quality: +89
Ссылка на пост №39 Отправлено: 04.01.19 22:23:19
ZZYZX
Т.е. игрок респавнился, оказавшись на точке старта и должен каким-то образом давать предмет своему оставшемуся где-то там в уровне трупу. ?КАК?
ZZYZX
= Colonel =
Next rank: - Commissar - after 16 pointsМодератор форума
4874

Doom Rate: 1.74

Posts quality: +1312
Ссылка на пост №40 Отправлено: 05.01.19 20:08:24
аааа, ты про это

Если тебе нужно отличать оставшийся труп от настоящего, то проверяешь
if (actor.Player && actor.Player.mo == actor)
  ...

У игрока есть переменная mo, в которую записан текущий актор который его представляет.
В моём коде собственно эта проверка есть.

Рейтинг сообщения: +2, отметил(и): YURA_111, Void Weaver
2 2 1
Страница 2 из 3Перейти наверх Пред.  1, 2, 3  След.
   Список разделов - Местечко мапперов и моддеров - Воскрешение игрока-союзника в кооператив при помощи ZSCRIPT