Город Мастеров
IPB

Здравствуйте, гость ( Вход | Регистрация )

> Сохранение местоположения игрока, Как сохранить положение игрока ?
Raven
сообщение Oct 18 2004, 20:02
Сообщение #1


Level 8
***

Класс: Фея
Характер: Chaotic Evil
Раса: Фея



По ходу дела частенько приходится останавливать сервак, менять скрипты, добавлять чето, удалять... когда измененный модуль ставится на сервак и запускается - при заходе на серв все игроки оказываются в стартовой точке модуля. Всвязи с этим возникает вопрос - можно ли сделать так, чтобы игроки оставались на той же позиции, в которой дисконнектились и появлялись в той же позиции, несмотря на остановку сервака и изменение модуля? Я так понимаю, что это надо делать с помощью ДБ - сохранять местоположение игрока в скрипте OnClientLeave, но как именно - какими функциями зафиксировать местоположение игрока и как это в БД запихнуть ?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
 
Открыть новую тему
Ответов
Lazy Ranma
сообщение Oct 24 2004, 12:06
Сообщение #2


Level 3
*

Класс: Тайный Лучник
Характер: Neutral Good
Раса: Эльф
NWN: Скриптинг [PW]



Каа же написал, что SetCampaginLocation() пользоваться нельзя, ибо она неправильно локацию сохраняет. Поэтому сохранять вектор отдельно, а тэг отдельно - самое простое решение (я не говорю самое правильное).

Второй, более сложный вариант, - автоматически индексировать локации с базе данных. Тогда вместо тэга можно использовать ее индекс, а при изменении тэга локации нужно будет только отредактировать ее тэг в БД. Но это относится к MySQL базе.

А вообще, советую забыть про стандартную базу данных. Она большая, медленная, ее нужно периодичекси паковать (а под линуксом этого, на сколько я знаю, до сих пор сделать нельзя), в ней куча глюков (с числами на конце, с SetLocation()), она жутко неудобная по сравнению с SQL. Именно из-за глюка с числами на конце (а это означало невозможность реализации массивов - про буковку на конце я не догадался) я в январе или феврале сего года в очередной раз помянул недобрым словом биовару и заменил весь код, использующий стандартную БД. Нужно ли говорить, что то, что я писал под стандартную БД несколько дней, с использованием SQL я написал за несколько часов, а кода в результате получилось в разы меньше?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

Сообщений в этой теме


Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 27th April 2025 - 11:40