![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#1
|
|
Level 1 Класс: Некромант Характер: Lawful Evil Раса: Человек ![]() |
Субж. Почему-то качается какой-то "index" весом 52 кб...
Качал отсюда: http://www.wrg.ru/index.php?method=files.o...d=19&sub=do |
![]()
Сообщение
#2
|
|
Level 5 ![]() Класс: Обыватель Характер: Lawful Neutral Раса: Человек NWN: Модмейкер Проклятие Левора Порядок Времени ![]() |
- скачай файл
- сделай его разширением *.rar - распаковывай, там все будет пока так, сейчас этот баг со скачиванием исправляется. |
![]()
Сообщение
#3
|
|
![]() Класс: Пьяный Мастер Характер: Lawful Good Раса: Тварь MySQL, PHP, JavaScript Порядок Времени ![]() |
QUOTE(Ilrilan @ Aug 14 2006, 17:59) [snapback]89590[/snapback] Субж. Почему-то качается какой-то "index" весом 52 кб... вес правильный, имя файла неверное (IMG:style_emoticons/kolobok_light/wink3.gif) поправил, качай нормально |
![]()
Сообщение
#4
|
|
Level 9 ![]() Класс: Друид Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] Амен ![]() |
Хотелось бы увидеть более подробное описание всех возможностей этой системы. То, что описано в файле помощи, далеко не все понятно. Зачем отслеживать глобальные события? Что это дает? В логах создается непонятная строчка. Для чего она?
|
![]()
Сообщение
#5
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
Zirrex, там в принцепе написано, прям в первых предложениях. Типо, система создавалась для отслеживания всех глобальных событий в одном месте, отслеживания новых глобальных событий, а так же реализвации таймеров. Как-то так, точно уже не помню.
Стандартные глобальные события отслеживаются для простоты работы с ними, чтобы скрипты для всех глобальных событий можно было указать в одном месте, так же новые события добавляются. ИМХО, вроде понятно, для чего это может пригодится, если же не пригождается, значит не пригождается. (IMG:style_emoticons/kolobok_light/pardon.gif) А что за строчка? Сообщение отредактировал -fenix- - Aug 28 2006, 13:02 |
![]()
Сообщение
#6
|
|
Level 9 ![]() Класс: Друид Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] Амен ![]() |
-fenix-, да у меня с этой системой стала ошибка "Слишком много инструкций" из скрипта "default" вылезать. У меня там обрабатывалась запись заклинаний и умений на предмет. Без системы ошибки не было. То ли она так "свирепо" гоняет скрипт, что он начинает лагать, то ли, и правда, из-за слишком длинного цикла происходит сложная обработка.
Как я понял, эта система больше для создания различных таймеров, и для объединения всех глобальных эвентов в одном месте. Мне это особо не нужно, а вот систему проверки на ошибки и лаги в скриптах очень бы даже пригодилась. Строчка исчезла, стоило закомментировать обработку заклинаний и умений. Но раз полезли такого рода ошибки, значит надо думать, как облегчить скрипт. |
![]()
Сообщение
#7
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
Zirrex, ну я как дома буду, пасмотрю че там может быть.
А что за "систему проверки на ошибки и лаги в скриптах"?? Есть еще система дебага от бюро, ты про нее??? |
![]()
Сообщение
#8
|
|
Level 9 ![]() Класс: Друид Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] Амен ![]() |
-fenix-, бывают случаи, когда скрипты не успевают обработать те или иные события. Причиной тому может служить отсутствие объекта обработки. В нашем случае, персонажа игрока. Не секрет, что клиент с не очень хорошей системой впускает персонажа на сервер не за 5-6 сек., а за все 20-30 сек. И что в итоге? В скрипте входа на сервер есть проверка на какие-то параметры или события. Игрок входит, скрипт запускается, и некоторые события срабатывают впустую, не затрагивая при этом персонажа.
Для примера. На входе стоит скрипт проверки, живой персонаж или мертвый. Если мертвый, то убить и переправить в фугу (старый скрипт). Не всегда срабатывает такая тактика. Вообще, я уже давно понял, что чем меньше скриптов на входе, тем выше вероятность, что они все сработают. Если есть скрипты, которые нужны только для первого входа после рестарта, то лучше их кидать на эвент входа стартовой локации, а если есть скрипты, которые нужны всегда, то оставить их на эвенте входа. И вот тут возникает тупиковая ситуация, то ли подобные скрипты кидать только на эвенты входа в локацию, то ли оставлять лишь на входе в модуль. Но получается иногда то, что я описал. Если кидать скрипты на эвенты входа, то придется для каждой локации заполнять поле скрипта. Дебаггер или обработчик невыполненных скриптов очень бы мог помочь с оптимизацией и распределением кода скрипта на иные места в модуле, чтобы они действительно работали, а не пролагивали. |
![]()
Сообщение
#9
|
|
Level 17 ![]() Класс: Волшебник Характер: Neutral Good Раса: Человек NWN: Скриптинг [PW] Axistown SR 1.9 NWNX ![]() |
QUOTE(Zirrex @ Aug 28 2006, 15:11) [snapback]90613[/snapback] -fenix-, бывают случаи, когда скрипты не успевают обработать те или иные события. Причиной тому может служить отсутствие объекта обработки. В нашем случае, персонажа игрока. Не секрет, что клиент с не очень хорошей системой впускает персонажа на сервер не за 5-6 сек., а за все 20-30 сек. И что в итоге? В скрипте входа на сервер есть проверка на какие-то параметры или события. Игрок входит, скрипт запускается, и некоторые события срабатывают впустую, не затрагивая при этом персонажа. Для примера. На входе стоит скрипт проверки, живой персонаж или мертвый. Если мертвый, то убить и переправить в фугу (старый скрипт). Не всегда срабатывает такая тактика. Вообще, я уже давно понял, что чем меньше скриптов на входе, тем выше вероятность, что они все сработают. Если есть скрипты, которые нужны только для первого входа после рестарта, то лучше их кидать на эвент входа стартовой локации, а если есть скрипты, которые нужны всегда, то оставить их на эвенте входа. И вот тут возникает тупиковая ситуация, то ли подобные скрипты кидать только на эвенты входа в локацию, то ли оставлять лишь на входе в модуль. Но получается иногда то, что я описал. Если кидать скрипты на эвенты входа, то придется для каждой локации заполнять поле скрипта. Дебаггер или обработчик невыполненных скриптов очень бы мог помочь с оптимизацией и распределением кода скрипта на иные места в модуле, чтобы они действительно работали, а не пролагивали. Может, ты вешал много скриптов, и происходил TMI? |
![]()
Сообщение
#10
|
|
Level 19 ![]() Класс: Воин Характер: Lawful Good Раса: Человек NWN: Скриптинг [Sn] ![]() |
Ну само собой, такие моменты бывают, да ж в сингле, не говоря уже о шарде.
Сама система всеж писалась для синглов и проверялась в них, вполне возможно, что добавление еще и ее циклов и обработчиков в условиях шарда в корне все загружает и этот скрипт не срабатывает Сообщение отредактировал -fenix- - Aug 28 2006, 15:14 |
![]()
Сообщение
#11
|
|
Level 9 ![]() Класс: Друид Характер: True Neutral Раса: Эльф NWN: Скриптинг [PW] Амен ![]() |
virusman, все верно. Только тут есть одна тонкость. Объект входит на локацию, и пока у игрока происходит загрузка локации, эвент локации не выполняется. Скрипт, который проверяет статус "живой мертвый", убивает персонажа, если он был, конечно же, мертвый. Запускается модульный эвент смерти, где выполняется другой скрипт, и делает с персонажем то, что там написано. Как только у игрока загружается первая локация, тут же начинает загружаться другая локация, куда переносит его персонажа после смерти. Это в идеале. Но бывают моменты, когда персонажа переносит в фугу, и тут же кидает на ту локацию, на которую он загружался в момент входа. Как такое объяснить? Пытался делать небольшие задержки перед срабатыванием скриптов, получается где-то 50%, что скрипт сработает верно. Поэтому я решил убрать такую проверку на эвент локации. Т.е. скрипт выполнится только тогда, когда игрок реально увидит локацию, а не будет срабатывать в фоновом режиме, пока игрок еще видит экран загрузки. Кстати, пока загружается локация, она для персонажа всегда остается неопределенной, что накладывает некоторые ограничения на условия в скрипте. Т.е. в скрипте входа в модуль нельзя ставить проверку на локацию, ибо скрипт ее проигнорирует, и соответственно, не выполнит условие.
|
![]() ![]() |
Текстовая версия | Сейчас: 29th April 2025 - 07:48 |