PDA

Просмотр полной версии : [Вопрос] Моментальный спавн + смерть с задержкой спавна



quinsaiz
07.01.2023, 00:23
Вернулся к попыткам что то нарисовать в павно, и вот думаю, после смерти или спавна видно скин CJ, возможно убрать эту милисекунду?
И как добавить смерть c задержкой через таймер -> спавн?
Ради интереса скачал паблик мод, там через SpawnPlayer не видно миллисекундного перемещения по координатам 0.0.0, а после смерти, например через SetPlayerHealth на 0, моментальное возрождение, без задержки и полетом камеры.

punkochel
08.01.2023, 23:25
https://github.com/oscar-broman/samp-weapon-config

DeimoS
15.01.2023, 13:48
Вместо лички отвечу тут.


после смерти или спавна видно скин CJ, возможно убрать эту милисекунду?

Вероятно, использовать SetSpawnInfo (желательно, вообще вместо SetPlayerPos при спавне, но можно и просто при смене скина), передавая в функцию актуальный скин. Тогда должен показываться он.


И как добавить смерть c задержкой через таймер -> спавн?

Игрок умер -> спавнишь его на координатах смерти в нужной тебе анимации -> запускаешь таймер и после отработки таймера респавнишь на нужную позицию.

quinsaiz
18.01.2023, 01:03
Во время использования "SetSpawnInfo" в "public OnPlayerSpawn" не загружает скин, только скин CJ, через SetPlayerPos все работает

quinsaiz
18.01.2023, 03:44
https://www.youtube.com/watch?v=zT-0dwZiAuQ
Снял на OBS, как это выглядит. Моментальная смерть, плюс на милисекунду видно CJ.
Например, если нажать F4 то есть заддержка и полет камеры вверх.

- - - Добавлено - - -


Вероятно, использовать SetSpawnInfo (желательно, вообще вместо SetPlayerPos при спавне, но можно и просто при смене скина), передавая в функцию актуальный скин. Тогда должен показываться он.

Использовал SetSpawnInfo в public OnPlayerSpawn, но если нажать F4 и прописать /sethp будет переносить на координаты с Вашего фикса и спавнить его там (фикс 1) Обход стандартного выбора скина (скрыть кнопки "<<", ">>" и "Spawn") (https://pro-pawn.ru/showthread.php?13526-%D0%9E%D0%B1%D1%85%D0%BE%D0%B4-%D1%81%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D0%BD%D0%BE%D0%B3%D0%BE-%D0%B2%D1%8B%D0%B1%D0%BE%D1%80%D0%B0-%D1%81%D0%BA%D0%B8%D0%BD%D0%B0-%28%D1%81%D0%BA%D1%80%D1%8B%D1%82%D1%8C-%D0%BA%D0%BD%D0%BE%D0%BF%D0%BA%D0%B8-%D0%B8-Spawn-%29), ну и при первом появлении после авторизации кидает на координаты 0.0.0, я так понимаю нужно ещё прописать в стоке загрузки аккаунта SetSpawnInfo?

Shaolinka
18.01.2023, 07:01
Во время использования "SetSpawnInfo" в "public OnPlayerSpawn" не загружает скин, только скин CJ, через SetPlayerPos все работает

В чём прикол устанавливать следующий спавн в автовызываемой функции, когда игрок уже заспавнен? Логично, что SetPlayerPos канает, ибо установит текущую позицию игроку. Когда игрок нажимает F4, то вызывается паблик OnPlayerRequestClass, следовательно все последующие будут происходить непосредственно в нём. Поэтому в твоём случае нужно установить SetSpawnInfo именно в нём, но кроме этого, придётся ещё инициировать спавн, посредством SpawnPlayer. При первом появлении, после окончания авторизации можешь написать функцию: SpawnPlayerEx и выполнять те действия, которые выше и тогда уж, если определишься её на постоянной основе, то вызывай её в OnPlayerRequestClass. Я лично шёл по такому пути

DeimoS
19.01.2023, 20:55
Во время использования "SetSpawnInfo" в "public OnPlayerSpawn" не загружает скин, только скин CJ, через SetPlayerPos все работает

SetSpawnInfo нужно вызывать ДО спавна.
Игрок зашёл на сервер -> ты определяешь ему координаты спавна и скин.
Сменил игроку скин через SetPlayerSkin? Не забудь вызвать и SetSpawnInfo с новым скином и нужными координатами спавна
Требуется, чтоб игрок заспавнился в новом месте(вступил во фракцию и т.п.)? Вызывай SetSpawnInfo с нужным скином и координатами спавна.

Как итог: никакой мишуры в OnPlayerSpawn с различными проверками на фракции и вызовом SetPlayerPos/SetPlayerSkin. Сам процесс появления на координатах и смены скина происходит на стороне клиента благодаря SetSpawnInfo. Все счастливы.

quinsaiz
19.01.2023, 23:14
SetSpawnInfo нужно вызывать ДО спавна.
Игрок зашёл на сервер -> ты определяешь ему координаты спавна и скин.
Сменил игроку скин через SetPlayerSkin? Не забудь вызвать и SetSpawnInfo с новым скином и нужными координатами спавна
Требуется, чтоб игрок заспавнился в новом месте(вступил во фракцию и т.п.)? Вызывай SetSpawnInfo с нужным скином и координатами спавна.

Как итог: никакой мишуры в OnPlayerSpawn с различными проверками на фракции и вызовом SetPlayerPos/SetPlayerSkin. Сам процесс появления на координатах и смены скина происходит на стороне клиента благодаря SetSpawnInfo. Все счастливы.

То-есть остаеться реализировать это через stock, и вызывать перед спавном, в стоке прописать проверки на фракцию например?

punkochel
20.01.2023, 02:53
То-есть остаеться реализировать это через stock, и вызывать перед спавном, в стоке прописать проверки на фракцию например?

Да, все верно. Так-же SetSpawnInfo сохраняет свои данные на протяжении всего процесса нахождения игрока на сервере, поэтому тебе не нужно перед тем как игрок умирает заново устанавливать данные. Просто перед принудительным спавном (SpawnPlayer, SetPlayerSpectating false) изменяй SetSpawnInfo в придачу.

DeimoS
20.01.2023, 17:04
То-есть остаеться реализировать это через stock, и вызывать перед спавном, в стоке прописать проверки на фракцию например?

Не перед спавном, а в момент, когда данные о скине/координатах спавна изменяются. Функцией SetSpawnInfo ты сообщаешь клиенту (игроку) информацию о том, куда и с каким скином игра должна поместить игрока при последующих спавнах (не важно, после смерти или при SpawnPlayer).