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

    Статус
    Оффлайн
    Регистрация
    31.03.2016
    Сообщений
    257
    Репутация:
    3 ±

    Реализация системы спавна и несколько вопросов

    Привет всем. Сразу перейду к самим вопросам.
    Я не знаю, как реализовать систему спавна на сервере. Решил я посмотреть несколько исходных кодов других серверов, чтобы как-то понять это всё дело и увидел три разных реализации системы:
    • Все координаты, уровень, уровень HP и внешность устанавливаются в OnPlayerSpawn.
    • Создаётся массив, в котором записаны все координаты для спавна игроков (простых и состоящих в организации) и stock, в котором сервер получает информацию об организации игрока, ну а дальше с помощью этой системы устанавливаются координаты через SetSpawnInfo.
    • (newstate == PLAYER_STATE_SPAWNED) - тут, думаю, всё понятно.

    Какой из этих способов лучше всего использовать?

    И ещё несколько вопросов:
    1. В чём отличие между (newstate == PLAYER_STATE_SPAWNED) от (oldstate == PLAYER_STATE_SPAWNED)?
    2. После смерти (OnPlayerDeath) вызывается OnPlayerStateChange или сразу OnPlayerSpawn?

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

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

    Статус
    Оффлайн
    Регистрация
    13.07.2016
    Сообщений
    29
    Репутация:
    2 ±
    1. newstate - новое состояние, oldstate - старое.
    2. OnPlayerSpawn
    3. Какой способ тебе удобнее такой и используй, но я бы посоветовал 1 или 2.

  3. Пользователь сказал cпасибо:
    PawnoNoob (06.08.2016)
  4. #3
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Когда игрок спавнится, то в первую очередь ему задаются координаты заданные через SetSpawnInfo, затем вызывается OnPlayerSpawn и меняется состояние. Это значит, что установка позиции спавна через SetSpawnInfo не вызывает проблем у игроков с медленным компьютером, ибо если у таковых игроков задавать позицию в OnPlayerSpawn, то они, иногда, на доли секунды видят другую локацию спавна (как правило это нулевые координаты), что довольно неприятно.

  5. 2 пользователя(ей) сказали cпасибо:
    PawnoNoob (06.08.2016) VVWVV (06.08.2016)
  6. #4
    Аватар для PawnoNoob
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.03.2016
    Сообщений
    257
    Репутация:
    3 ±
    А когда вызываются (newstate == PLAYER_STATE_SPAWNED) и (oldstate == PLAYER_STATE_SPAWNED)?

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

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    Цитата Сообщение от PawnoNoob Посмотреть сообщение
    А когда вызываются (newstate == PLAYER_STATE_SPAWNED) и (oldstate == PLAYER_STATE_SPAWNED)?
    newstate когда заспавнился, oldstate когда после спавна принял другое любое новое положение
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

  8. Пользователь сказал cпасибо:
    PawnoNoob (06.08.2016)
  9. #6
    Аватар для PawnoNoob
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.03.2016
    Сообщений
    257
    Репутация:
    3 ±
    Цитата Сообщение от vovandolg Посмотреть сообщение
    newstate когда заспавнился, oldstate когда после спавна принял другое любое новое положение
    То есть сразу после авторизации я могу в (newstate == PLAYER_STATE_SPAWNED) добавить прогрузку анимационных библиотек? (или как это правильно называется)

  10. #7
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от PawnoNoob Посмотреть сообщение
    А когда вызываются (newstate == PLAYER_STATE_SPAWNED) и (oldstate == PLAYER_STATE_SPAWNED)?
    Сначала данные из SetSpawnInfo, затем изменение состояния (newstate == PLAYER_STATE_SPAWNED), затем OnPlayerSpawn в FS, потом OnPlayerSpawn в GM.

  11. Пользователь сказал cпасибо:
    PawnoNoob (06.08.2016)
  12. #8
    Аватар для vovandolg
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    Аммм, вопрос ziggi, SetSpawnInfo можно при коннекте указывать или надо минимум как при выборе класса его задавать?
    (если для корретной работы с модом)
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

  13. #9
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от vovandolg Посмотреть сообщение
    Аммм, вопрос ziggi, SetSpawnInfo можно при коннекте указывать или надо минимум как при выборе класса его задавать?
    (если для корретной работы с модом)
    Не важно где, главное чтобы игрок был подключён к серверу.

  14. 2 пользователя(ей) сказали cпасибо:
    PawnoNoob (06.08.2016) vovandolg (07.08.2016)
  15. #10
    Аватар для PawnoNoob
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.03.2016
    Сообщений
    257
    Репутация:
    3 ±
    То есть я могу в (newtate == PLAYER_STATE_SPAWNED) добавить прогрузку анимаций, а после в OnPlayerSpawn добавить SetSpawnInfo, так?

 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

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

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

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

Ваши права

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