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

Doom Rate: 2

Posts quality: +90
Ссылка на пост №1 Отправлено: 01.01.19 21:01:41


Данное видео демонстрирует, как при помощи ZSCRIPT в сетевой-кооперативной игре можно воскрешать союзного игрока.

Огромную помощь в реализации этого (а если точнее - то полное написание) скрипта осуществлял думер ZZYZX, за что ему огромное спасибо!
Я конечно позволил себе несколько изменить сам код, а точнее ту часть, которая наиболее похожа на декорейт, дабы в точности получить то, что мне нужно. Но сам ЗСКРИПТ с его темным лесом естественно мне никак не по силам

Позже я хочу выложить сам код - но без соответствующего разрешения ZZYZX я делать этого не буду. Поэтому дождусь его ответа и если кому-то это понадобиться, то выложу...

Рейтинг сообщения: +3, отметил(и): klerk, MasterMind, Void Weaver
ZZYZX
- Commissar -
Next rank: = Commissar = after 322 pointsМодератор форума
5018

Doom Rate: 1.74

Posts quality: +1383
Ссылка на пост №2 Отправлено: 01.01.19 21:14:35
Да выкладывай ради б-га, если я не хочу чтобы кто-то видел код, я его не пишу :x

Рейтинг сообщения: +4, отметил(и): YURA_111, Zveraboy, Anto96WS, Void Weaver
2 2 1
Zveraboy
= 1st Lieutenant =
Next rank: - Captain - after 65 points
2025

Doom Rate: 1.1

Posts quality: +148
Ссылка на пост №3 Отправлено: 01.01.19 22:18:47
Кхм...
Значит в игре допустим в сурв можно будет оживить игрока?
А как это будет выглядеть?
1 2
YURA_111
- Sergeant Major -
Next rank: = Sergeant Major = after 26 points
574

Doom Rate: 2

Posts quality: +90
Ссылка на пост №4 Отправлено: 01.01.19 22:28:57
Zveraboy:
А как это будет выглядеть?


В задрочкуме я не уверен, а точнее почти уверен что работать не будет. Сам же тестировал в версии GZDOOM версии 3.6

Естественно то, что на видео - это еще не окончательный вариант. Там еще полировать надо. Но это уже, так сказать - визуальность...

Рейтинг сообщения: +1, отметил(и): klerk
Zveraboy
= 1st Lieutenant =
Next rank: - Captain - after 65 points
2025

Doom Rate: 1.1

Posts quality: +148
Ссылка на пост №5 Отправлено: 01.01.19 22:38:38
YURA_111
Очень сильно жду версию для Зандронума.
Она ох как бы пошла на пользу для многих модов....
Столько идей можно будет напридумывать..
1 2
YURA_111
- Sergeant Major -
Next rank: = Sergeant Major = after 26 points
574

Doom Rate: 2

Posts quality: +90
Ссылка на пост №6 Отправлено: 01.01.19 23:09:00
Zveraboy:
жду версию для Зандронума.


Ну, конкретно меня он вообще не интересует, т.к. на это есть ряд причин. Плюс ко всему, как объяснил мне сам ZZYZX, в задрочкуме нет возможности такого воскрешения.

Есть одна странность - "RESURRECTION_LIFE" опция не работает. Т.е. я хотел установить количество процентов жизни на 1 после воскрешения, но какое я бы значение не ставил - персонаж воскрешается со 100%.

Рейтинг сообщения: +1, отметил(и): klerk
ZZYZX
- Commissar -
Next rank: = Commissar = after 322 pointsМодератор форума
5018

Doom Rate: 1.74

Posts quality: +1383
Ссылка на пост №7 Отправлено: 02.01.19 03:37:17
Zveraboy:
Очень сильно жду версию для Зандронума.

Невозможно. Существующая схема с "тюрьмой" самое большее, что можно сделать.

YURA_111:
Есть одна странность - "RESURRECTION_LIFE" опция не работает.

А я её и не делал ) Лень разбираться было. Надо искать как добыть максимальное хп игрока, чтобы не хардкодить 100%.
В некоторых модах бывает 200, 999...

Рейтинг сообщения: +2, отметил(и): klerk, YURA_111
2 2 1
Void Weaver
= 1st Lieutenant =
Next rank: - Captain - after 110 points
1980

Doom Rate: 1.82

Posts quality: +608
Ссылка на пост №8 Отправлено: 02.01.19 04:13:40
YURA_111
Грац, только следующее видео запиши более информативным, а то даже не понятно что это игрок. )

ZZYZX:
YURA_111:
Есть одна странность - "RESURRECTION_LIFE" опция не работает. Т.е. я хотел установить количество процентов жизни на 1 после воскрешения, но какое я бы значение не ставил - персонаж воскрешается со 100%.

А я её и не делал ) Лень разбираться было. Надо искать как добыть максимальное хп игрока, чтобы не хардкодить 100%.
Пардоньте если чушь порю, но вроде GetMaxHealth() позволяет получить в процентах макс хп игрока. Найдено здесь - checks if player has the required health:

bool CheckHealth(int Amount, bool percentage = false)
	{
		if (CPlayer == null) return false;
		
		int phealth = percentage ? CPlayer.mo.health * 100 / CPlayer.mo.GetMaxHealth() : CPlayer.mo.health;
		return (phealth >= Amount);
	}

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

Doom Rate: 2

Posts quality: +90
Ссылка на пост №9 Отправлено: 02.01.19 08:21:07
Я думаю, что проще всего в стейте REVIVE самого игрока влепить A_SETHEALTH. Не пробовал, но мне кажется проблем быть не должно. Хотя конечно логичнее прямо там в ЗСКРИПТЕ

Void Weaver:
только следующее видео запиши более информативным


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

Рейтинг сообщения: +1, отметил(и): Void Weaver
Void Weaver
= 1st Lieutenant =
Next rank: - Captain - after 110 points
1980

Doom Rate: 1.82

Posts quality: +608
Ссылка на пост №10 Отправлено: 02.01.19 08:39:44
Но A_SETHEALTH же не возвращает проценты от макс\спаунхеалс... тогда уж лучше:

TNT1 A 0 A_SetHealth(0) //Воскрешается с 1 хп и...
TNT1 A 0 GiveBody(GetSpawnHealth\100-1) //... и тут же хилим на 1% от спаунхеалс. Олсо есть одноимённый аналог для зскрипта Сорри, она и так универсальна.

К сожалению и в этом случае расчёт идёт не по макс хп.

YURA_111:
Расспиши кокретно, как должно выглядеть видео по твоему мнению пожалуйста.
Эмм, ну чтобы "подопытный" подвигался (присел\прыгнул) для начала и\или пострелял бы в сторону например. Т. е. чтобы было очевидно что это игрок а не кастомный непись или моб.

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

Doom Rate: 2

Posts quality: +90
Ссылка на пост №11 Отправлено: 02.01.19 09:07:36
Void Weaver:
Эмм, ну чтобы "подопытный" подвигался (присел\прыгнул) для начала и\или пострелял бы в сторону например. Т. е. чтобы было очевидно что это игрок а не кастомный непись или моб.

Ок - сделаем так.

Void Weaver:
Но A_SETHEALTH же не возвращает проценты от макса

А зачем проценты от макса? Почему не выставлять конкретное\нужное значение? A_SetHealth это позволяет.
Void Weaver
= 1st Lieutenant =
Next rank: - Captain - after 110 points
1980

Doom Rate: 1.82

Posts quality: +608
Ссылка на пост №12 Отправлено: 02.01.19 09:18:01
YURA_111:
А зачем проценты от макса?
YURA_111:
я хотел установить количество процентов жизни на 1 после воскрешения
Хотя если у всех игроков в твоём моде макс хп это известное фиксированное значение, то офк можно обойтись одной A_SetHealth.
1 8 1
YURA_111
- Sergeant Major -
Next rank: = Sergeant Major = after 26 points
574

Doom Rate: 2

Posts quality: +90
Ссылка на пост №13 Отправлено: 02.01.19 09:41:47
Void Weaver:
в твоём моде макс хп это известное фиксированное значение

Не - я реально не понимаю. Даже если у каждого класса игроков будет разный максимум - то что мешает все равно через A_SetHealth установить нужное значение? В данном случае это 1. + У меня не у всех персов макс значения одинаковые...
Void Weaver
= 1st Lieutenant =
Next rank: - Captain - after 110 points
1980

Doom Rate: 1.82

Posts quality: +608
Ссылка на пост №14 Отправлено: 02.01.19 10:01:37
Возможно это я туплю, но вижу это так:

У "Васи" макс хп = 100;
у "Саши" макс хп = 200;
у "Пети" макс хп = 150;

Если поставить им всем ЕДИНОЕ значение A_SetHealth(1), то получится что "Вася" воскреснет с 1% макс хп, "Саша" с 0,5%, а "Петя" с 0,6(6)% от макс хп.

Ты же, ЕЯПП, собираешься выставить ИНДИВИДУАЛЬНЫЕ значения _СетХеалс соответствующие 1% хп, типа "Васе" A_SetHealth(1), "Саше" A_SetHealth(2), а "Пете" A_SetHealth(1.5).
Ну в принципе тоже норм, однако если же кто-то апнет макс хп (скиллом или пауэрапом), то действительные значения (1, 2, 1.5) перестанут соответствовать процентным пропорциям (1% хп). Ты же, повторюсь, сам пожелал что бы игроки ресались с 1% хп.
З. Ы.
В моём предыдущем посте ключевое слово - "фиксированное".
1 8 1
YURA_111
- Sergeant Major -
Next rank: = Sergeant Major = after 26 points
574

Doom Rate: 2

Posts quality: +90
Ссылка на пост №15 Отправлено: 02.01.19 10:30:05
Void Weaver:
Возможно это я туплю


Ты извини - но видимо так. A_SetHealth ставит именно то, что ты ставишь (функция не ставит процентные пропорции - а ставит именно числовое значение). Что за A_SetHealth(1.5) или A_SetHealth(2) - если ты хочешь 1? Пичем тут эти значения, да еще и 1.5 (такое вообще нельзя)?
Void Weaver
= 1st Lieutenant =
Next rank: - Captain - after 110 points
1980

Doom Rate: 1.82

Posts quality: +608
Ссылка на пост №16 Отправлено: 02.01.19 10:41:37
Процентные значения возвращает ГивБоди(-<#>).

YURA_111:
Что за A_SetHealth(1.5) или A_SetHealth(2) - если ты хочешь 1?
Так 1.5 и 2 это и есть 1% от хп Пети и Саши соответственно. И да, оперируются только целые значения, 1.5 брал просто для примера.
Но да, ты прав: вполне хватает A_SetHealth(GetSpawnHealth\100), как раз 1% от спаунхелс без всяких доп. ф-ций.
Соррян, походу не отошёл после пати.

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

Doom Rate: 2

Posts quality: +90
Ссылка на пост №17 Отправлено: 02.01.19 11:01:07
Void Weaver:
Соррян, походу не отошёл после пати


Фух - я то уже было подумал, что я совсем отупел. Не пугай так людей :bitsa: :ha:
Zveraboy
= 1st Lieutenant =
Next rank: - Captain - after 65 points
2025

Doom Rate: 1.1

Posts quality: +148
Ссылка на пост №18 Отправлено: 02.01.19 12:46:32
ZZYZX
Мм тогда не пойму другое.
Допустим есть возможность запустить скрипт на гоззе.
А толк от этого скрипта какой если мультиплеера на гоззе нет?
И играть можно только через хамачи вроде как?
Или я что то не знаю.
1 2
mars873
- Master Sergeant -
Next rank: = Master Sergeant = after 45 points
415

Doom Rate: 1.77

Posts quality: +115
Ссылка на пост №19 Отправлено: 02.01.19 13:14:37
Zveraboy
В смысле мультиплеера там нету? А видео по твоему как записали? Можно играть практически так же как и в зандронуме, но с некоторыми оговорками.

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

Doom Rate: 2

Posts quality: +90
Ссылка на пост №20 Отправлено: 02.01.19 13:40:37
Zveraboy:
А толк от этого скрипта какой если мультиплеера на гоззе нет?
И играть можно только через хамачи вроде как?


Ты издеваешься? Мультиплеер на 8 игроков присутствует. Как деасМатч так и Кооператив. И два режима соединения - Сервер-Клиент или как в старом ДУМ... Никакой хамачи не обязателен, хотя и через него тоже возможно, но опять-же - режим клиент-сервер. Я через локалку играю\тестирую.
https://zdoom.org/wiki/Multiplayer

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