![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
![]()
Сообщение
#1
|
|
Level 1 Класс: Маг Характер: Chaotic Evil Раса: Человек ![]() |
Помогите кто сталкивался с подобным:
На onClientEnter вешаю скрипт перетряхивающий базу и либо пропускающий плеера либо нет, если игрок проходит в игру ему восстанавливаем некоторые переменные. А теперь вопрос: Пишу SetLocalInt(oPC,"bla",1), а локальная переменная не плеере не устанавливается :unsure: как это побороть? Сделал пока через базу, но мне жалко игроков которым придется жить с лагами от постоянного обращения к базе. |
![]() |
![]()
Сообщение
#2
|
|
Level 9 ![]() Класс: Волшебник Характер: Chaotic Good Раса: Дракон NWN: Скриптинг [PW] ![]() |
Давай весь код, переменные на PC без проблем всегда вешались.
|
![]()
Сообщение
#3
|
|||
Level 1 Класс: Маг Характер: Chaotic Evil Раса: Человек ![]() |
на OnClientEnter модуля висит следующая скриптина:
тут много мусора для проверок... |
||
![]()
Сообщение
#4
|
|||||||||
Level 9 ![]() Класс: Волшебник Характер: Chaotic Good Раса: Дракон NWN: Скриптинг [PW] ![]() |
Опасный код. sName надо проверять на вхождение символов `,' - смотря что ты используешь в ограничителях строк. Иначе игрок может создать хитрое имя, в котором есть такой символ, и выполнить SQL-запрос в твою базу. (такой вид уязвимости обычно называют SQL injection). Примеров приводить не буду, мало ли кто читает этот топик :) Далее,
и
В первом варианте OBJECT_SELF - объект-модуль, во втором oPC -игрок. Вешая переменную на модуль ты с игрока ее не прочитаешь. |
||||||||
![]()
Сообщение
#5
|
|
Level 1 Класс: Маг Характер: Chaotic Evil Раса: Человек ![]() |
Спасибо большое!
Про хитрые имена помню и знаю, то что есть это пока только для "внутреннего пользования", а вот с OBJECT_SELF прокололся :unsure: |
![]() ![]() |
Текстовая версия | Сейчас: 27th April 2025 - 00:20 |