![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
![]()
Сообщение
#1
|
|
Level 8 ![]() ![]() ![]() Класс: Фея Характер: Chaotic Evil Раса: Фея ![]() |
По ходу дела частенько приходится останавливать сервак, менять скрипты, добавлять чето, удалять... когда измененный модуль ставится на сервак и запускается - при заходе на серв все игроки оказываются в стартовой точке модуля. Всвязи с этим возникает вопрос - можно ли сделать так, чтобы игроки оставались на той же позиции, в которой дисконнектились и появлялись в той же позиции, несмотря на остановку сервака и изменение модуля? Я так понимаю, что это надо делать с помощью ДБ - сохранять местоположение игрока в скрипте OnClientLeave, но как именно - какими функциями зафиксировать местоположение игрока и как это в БД запихнуть ?
|
![]() |
![]()
Сообщение
#2
|
|
Level 9 ![]() Класс: Волшебник Характер: Chaotic Good Раса: Дракон NWN: Скриптинг [PW] ![]() |
Все совсем не просто :(
Сохранять положение игрока на onClientLeave - не получится, координаты всегда будут нулевые (вроде я где-то в прикрепленном топике расписывал почему) Варианты решение: 1. Сохранять положение на OnEnter для любой локации. Локация будет та-же, но место нет 2. На onHeartBeat модуля поставить несложный скрипт, который будет перебирать всех игроков и запоминать в _локальной_ переменной вектор с месторасположением игрока. А на событие onClientLeave записывать месторасположение в базу. Только тут скрыта еще одна проблема :) Месторасположение храниться как Номер локации, коорд.X,Y,Z. Номер локации - число, которое _меняется_ после сборки модуля в тулсете при добавлении\удалинии локаций. Так что нужно использовать свои функции, вот тут есть вариант http://www.wrg.ru/forums/index.php?showtopic=241 |
![]() ![]() |
Текстовая версия | Сейчас: 27th April 2025 - 11:47 |