Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 10 из 10
  1. #1
    Аватар для quinsaiz
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.03.2021
    Сообщений
    9
    Репутация:
    0 ±

    Моментальный спавн + смерть с задержкой спавна

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

  2. #2
    Аватар для punkochel
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.12.2018
    Адрес
    Россия
    Сообщений
    146
    Репутация:
    25 ±

  3. #3
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Вместо лички отвечу тут.

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

    Цитата Сообщение от quinsaiz Посмотреть сообщение
    И как добавить смерть c задержкой через таймер -> спавн?
    Игрок умер -> спавнишь его на координатах смерти в нужной тебе анимации -> запускаешь таймер и после отработки таймера респавнишь на нужную позицию.
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  4. #4
    Аватар для quinsaiz
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.03.2021
    Сообщений
    9
    Репутация:
    0 ±
    Во время использования "SetSpawnInfo" в "public OnPlayerSpawn" не загружает скин, только скин CJ, через SetPlayerPos все работает

  5. #5
    Аватар для quinsaiz
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.03.2021
    Сообщений
    9
    Репутация:
    0 ±

    Снял на OBS, как это выглядит. Моментальная смерть, плюс на милисекунду видно CJ.
    Например, если нажать F4 то есть заддержка и полет камеры вверх.

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

    Цитата Сообщение от DeimoS Посмотреть сообщение
    Вероятно, использовать SetSpawnInfo (желательно, вообще вместо SetPlayerPos при спавне, но можно и просто при смене скина), передавая в функцию актуальный скин. Тогда должен показываться он.
    Использовал SetSpawnInfo в public OnPlayerSpawn, но если нажать F4 и прописать /sethp будет переносить на координаты с Вашего фикса и спавнить его там (фикс 1) Обход стандартного выбора скина (скрыть кнопки "<<", ">>" и "Spawn"), ну и при первом появлении после авторизации кидает на координаты 0.0.0, я так понимаю нужно ещё прописать в стоке загрузки аккаунта SetSpawnInfo?
    Последний раз редактировалось quinsaiz; 18.01.2023 в 04:05.

  6. #6
    Аватар для Shaolinka
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.01.2020
    Сообщений
    69
    Репутация:
    8 ±
    Цитата Сообщение от quinsaiz Посмотреть сообщение
    Во время использования "SetSpawnInfo" в "public OnPlayerSpawn" не загружает скин, только скин CJ, через SetPlayerPos все работает
    В чём прикол устанавливать следующий спавн в автовызываемой функции, когда игрок уже заспавнен? Логично, что SetPlayerPos канает, ибо установит текущую позицию игроку. Когда игрок нажимает F4, то вызывается паблик OnPlayerRequestClass, следовательно все последующие будут происходить непосредственно в нём. Поэтому в твоём случае нужно установить SetSpawnInfo именно в нём, но кроме этого, придётся ещё инициировать спавн, посредством SpawnPlayer. При первом появлении, после окончания авторизации можешь написать функцию: SpawnPlayerEx и выполнять те действия, которые выше и тогда уж, если определишься её на постоянной основе, то вызывай её в OnPlayerRequestClass. Я лично шёл по такому пути

  7. #7
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от quinsaiz Посмотреть сообщение
    Во время использования "SetSpawnInfo" в "public OnPlayerSpawn" не загружает скин, только скин CJ, через SetPlayerPos все работает
    SetSpawnInfo нужно вызывать ДО спавна.
    Игрок зашёл на сервер -> ты определяешь ему координаты спавна и скин.
    Сменил игроку скин через SetPlayerSkin? Не забудь вызвать и SetSpawnInfo с новым скином и нужными координатами спавна
    Требуется, чтоб игрок заспавнился в новом месте(вступил во фракцию и т.п.)? Вызывай SetSpawnInfo с нужным скином и координатами спавна.

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

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  8. #8
    Аватар для quinsaiz
    Пользователь

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

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

  9. #9
    Аватар для punkochel
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.12.2018
    Адрес
    Россия
    Сообщений
    146
    Репутация:
    25 ±
    Цитата Сообщение от quinsaiz Посмотреть сообщение
    То-есть остаеться реализировать это через stock, и вызывать перед спавном, в стоке прописать проверки на фракцию например?
    Да, все верно. Так-же SetSpawnInfo сохраняет свои данные на протяжении всего процесса нахождения игрока на сервере, поэтому тебе не нужно перед тем как игрок умирает заново устанавливать данные. Просто перед принудительным спавном (SpawnPlayer, SetPlayerSpectating false) изменяй SetSpawnInfo в придачу.

  10. #10
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от quinsaiz Посмотреть сообщение
    То-есть остаеться реализировать это через stock, и вызывать перед спавном, в стоке прописать проверки на фракцию например?
    Не перед спавном, а в момент, когда данные о скине/координатах спавна изменяются. Функцией SetSpawnInfo ты сообщаешь клиенту (игроку) информацию о том, куда и с каким скином игра должна поместить игрока при последующих спавнах (не важно, после смерти или при SpawnPlayer).
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  11. Пользователь сказал cпасибо:
    quinsaiz (21.01.2023)
 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •