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

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

> Система регистрации и защиты аккаунтов для шарда, Нужна помощь...
evil-SHADOW
сообщение Feb 7 2005, 13:32
Сообщение #1


Level 1


Класс: Обыватель
Характер: Lawful Good
Раса: Человек



Здравствуйте, господа и дамы девелоперы, то бишь разработчики! :)

Нужна ваша помощь в таком деле: есть небольшой шард, где отсутствует система регистрации аккаунтов игроков и система защиты этих аккаунтов. Естественно, есть люди, которые этим пользуются, раздевают чужих персонажей и этим не дают людям спокойно играть. Поэтому меня попросили узнать, как сделать сабж. Подробности будут.

Надеюсь на ответы :)

Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
 
Открыть новую тему
Ответов
_kaa_
сообщение Feb 17 2005, 10:30
Сообщение #2


Level 9
Иконки Групп

Класс: Волшебник
Характер: Chaotic Good
Раса: Дракон
NWN: Скриптинг [PW]



Собственно первая часть - проверенная информация, вторая - только предположение :)
Как я уже не раз говорил, встроенная БД - большой источник "веселостей".
Вот кратко, что вспомню.
1. Имя переменной (VarName) ограничено 32 символами.
2. Поиск имени переменной идет не точный! если есть два имени переменной типа name1 и name11 - на оба точных запроса найдется первое имя, т.е. GetCampaignString(db,"name11") вернет значение переменной "name1". такое поведение наблюдалось только для имен с цифрами на конце. если есть необходимость использовать такие имена - добавляйте в конце символ, скажем "name1z" и "name11z" уже не будут путаться.
Скорее всего это недокументированная "фича", но очень сложно было найти ошибку, когда нарвался на эту "фичу" :)
3. Из-за структуры БД (два файла, для данных что вмещаются в поле и для остальных) не все типы данных можно перезаписывать. Скажем если вы запишете SetCampaignInt() поверх старой информации - все нормально, размер базы не изменится. А если это будет SetCampaignString() - база просто вырастет на длину строки.Даже если вы удаляете переменную - реально размер не изменится и требуется перепаковка базы. Выход только один - удалить базу DestroyCampaignDatabase() и создать заново с новыми данными.
4. БД довольно тормазная на предмет записи большого количества данных. Принцип - "чем меньше используете - тем лучше" :) Хранить данные по игроку лучше всего на нодроп (галочка в тулсете на итеме) итемах в переменных, они сохраняются в .bic файле профиля игрока при выходе и командами ExportAllCharacters() и ExportSingleCharacter(oPC)



Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

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


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

 



Текстовая версия Сейчас: 28th April 2025 - 17:56