IPB

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

Reply to this topicStart new topicStart Poll
KnightL
post Понедельник, 06 Августа 2007, 14:58
Отправлено #1


Conjurer
Group Icon

Группа: Members
Сообщений: 204
Регистрация: 5-Июн-04
Пользователь №: 2,079



Первый файл -библиотека для текстового окна. Тому, кто загружал и работал с предыдущей версией их скачивать не надо.
Второй файл - библиотека для открытия диалоговых окон. У меня возникли какие-то проблеммы с API(программа просто вылетала при любых действиях после диалога). Раньше этот файл не использовался
Третий файл - сама программа.

Сообщение отредактировал KnightL - Вторник, 14 Декабря 2010, 18:29

Присоединённые файлы
Присоединённый файл  richtext.zip ( 198.67кб ) Кол-во скачиваний: 184
Присоединённый файл  comdlg32.zip ( 197.49кб ) Кол-во скачиваний: 194
Присоединённый файл  ScriptDebuger.zip ( 50.11кб ) Кол-во скачиваний: 198
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
KnightL
post Понедельник, 06 Августа 2007, 15:14
Отправлено #2


Conjurer
Group Icon

Группа: Members
Сообщений: 204
Регистрация: 5-Июн-04
Пользователь №: 2,079



Они действительно оказались там. Значит необходимо будет добавить после загрузки просьбу открыть mob зоны.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Sagrer
post Понедельник, 06 Августа 2007, 20:40
Отправлено #3


Wizard
Group Icon

Группа: Members
Сообщений: 304
Регистрация: 24-Дек-01
Из: Курска
Пользователь №: 16



QUOTE
ActiveX TextBox для Visual Basic


какой ужосс 0_0

И кста, по поводу "Script Debuger" - это действительно дебугер? %). В смысле что отслеживает выполнение скрипта во время работы ПЗ? wink.gif. Или это все-же что-то вроде syntax-checker ? %).


--------------------
Gipat Group
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Durane
post Понедельник, 06 Августа 2007, 20:57
Отправлено #4


Knight
Group Icon

Группа: Members
Сообщений: 143
Регистрация: 9-Ноя-04
Из: Ukraine, Kiev
Пользователь №: 2,839



имхо, просто проверка синтаксиса + проверка обьявлены переменные или нет, типа пре-линковка, или хз как назвать...

сделать дебаг во время выполнения, это ппц еще та работа ))


--------------------
user posted image

user posted image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
KnightL
post Понедельник, 06 Августа 2007, 21:09
Отправлено #5


Conjurer
Group Icon

Группа: Members
Сообщений: 204
Регистрация: 5-Июн-04
Пользователь №: 2,079



2Sagrer Вообще-то debuger - это слишком громко сказано. Но на самом деле, кроме ошибок, заложенных в самом начале скрипта, других причин для этих самых ошибок нет (кроме работы с глобальными переменными, добавлением предметов, т.е всего того, что указывает пользователь. Я это понимаю. Но просто со скриптами есть такая противная проблема: если есть хоть какая-то ошибка, то он без вопросов не выполняет весь скрипт. И попробуй в таких условиях исправит ошибку. Я написал программу, которая делает предварительную проверку текста для выявления таких вот ошибок. Другое название, кроме как "debuger" я не смог подобрать в отношении своей программы
QUOTE
какой ужосс

Согласен, но я никак не соберусь начать изучать C (хотя вроде уже собрался)

Сообщение отредактировал KnightL - Понедельник, 06 Августа 2007, 21:41
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
SnAIper
post Понедельник, 06 Августа 2007, 22:53
Отправлено #6


Wizard
Group Icon

Группа: Members
Сообщений: 316
Регистрация: 22-Апр-04
Из: Мытищи
Пользователь №: 1,805



А заценить мона? smile.gif


--------------------
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
KnightL
post Понедельник, 06 Августа 2007, 22:59
Отправлено #7


Conjurer
Group Icon

Группа: Members
Сообщений: 204
Регистрация: 5-Июн-04
Пользователь №: 2,079



Элемент я уже нашёл в стандартном комплекте программы smile.gif wink.gif

Сообщение отредактировал KnightL - Понедельник, 06 Августа 2007, 23:00
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
SnAIper
post Вторник, 07 Августа 2007, 14:48
Отправлено #8


Wizard
Group Icon

Группа: Members
Сообщений: 316
Регистрация: 22-Апр-04
Из: Мытищи
Пользователь №: 1,805



Эм... Можно багрепорты постить сюда? smile.gif

Короче вот что мне наобум пришло в голову:


CODE
//Превед!
GlobalVars
(
 Preved : object
)

DeclareScript Walker()

Script Walker
//Hello moto!
(
 if
 (
   IsEqual(HelloMoto,1)
 )
 then
 (
   ConsoleString("HelloMoto!")
   KillScript()
 )
)

WorldScript
(
 KillScript()
)


Что я ожидал увидеть:

CODE
Строка 7: Неправильное название скрипта. Имя скрипта типа "Стандартная функция"+"Некий текст" запрещено.
Строка 14: Необъявленная переменая типа float "HelloMoto"
Строка 18: КиллСкрипт может быть только на 1й строчке
Строка 25: КиллСкрипт не допустим в ворлдскрипте.
Предупреждение: Скрипт "Walker" объявлен, но не вызван ни разу.
Предупреждение: Скрипт "Walker" не содержит переменных, а это не всегда работает


Что я увидел:

CODE
Строки 2-14: "Вместо GlobalVars найдено %s".
Исключение на строке 02: Вместо GlobalVars ( найдено GlobalVars.

Строка 14: ожидалось выражение типа float
Строки 15-26: см. строки 2-14


То есть небольшая доработка всё-же нужна, не так ли? smile.gif

Edit: Поменял первые 2 строчки на одну "GlobalVars (". Ошибок осталось всего две:
Строка 14: ожидалось выражение типа float
Строка 14: непонятное выражение "HeloMoto"

Edit 2: После удаления нафиг всех переменных и условия скрипта, я удалил из ворлдскрипта киллскрипт, и сделал вызов Walker(1) (тогда как в декларации переменных не было). Программа вылетела с Run Time Error 9: subscript out of range. На этом пока прекращаю тестирование...

Edit 3: Да, и ещё. Первая версия валидатора работала по такому же принципу: шла по тексту, шота искала... Короче она была менее, конечно, завершена, чем этот Debugger - но тем не менее. Меня Сагрер вовремя предупредил, что нужно работать по другому принципу - считывание по символам и отслеживание своей позиции в коде... Ну не знаю, я сейчас вижу, что он прав...

Сообщение отредактировал SnAIper - Вторник, 07 Августа 2007, 15:10


--------------------
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Sagrer
post Вторник, 07 Августа 2007, 21:04
Отправлено #9


Wizard
Group Icon

Группа: Members
Сообщений: 304
Регистрация: 24-Дек-01
Из: Курска
Пользователь №: 16



QUOTE
Строка 18: КиллСкрипт может быть только на 1й строчке


насколько помню - может, может. Мну в Весне вроде писал пару скриптов таких - когда скрипт убивался не просто так а опционально, а так висел и свою работу делал что и было задумано.


--------------------
Gipat Group
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
SnAIper
post Среда, 08 Августа 2007, 00:33
Отправлено #10


Wizard
Group Icon

Группа: Members
Сообщений: 316
Регистрация: 22-Апр-04
Из: Мытищи
Пользователь №: 1,805



Jet, фокус работает, спасибо smile.gif

Сагрер, нет, я имел ввиду не написание сей строки в первом if'е скрипта, а то, что киллскрипт может идти сразу после Then'а. И никак иначе. А то игра вылетит.


--------------------
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Sagrer
post Среда, 08 Августа 2007, 08:52
Отправлено #11


Wizard
Group Icon

Группа: Members
Сообщений: 304
Регистрация: 24-Дек-01
Из: Курска
Пользователь №: 16



QUOTE
а то, что киллскрипт может идти сразу после Then'а. И никак иначе. А то игра вылетит.


гхм, не помню такого.... Уверен?


--------------------
Gipat Group
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
KnightL
post Среда, 08 Августа 2007, 12:53
Отправлено #12


Conjurer
Group Icon

Группа: Members
Сообщений: 204
Регистрация: 5-Июн-04
Пользователь №: 2,079



Я смотрю, баги находятся. В таком случае я думаю, что я лучше выложу свою программу, а те кто ей будут пользоваться отпишутся здесь по поводу некоторых ошибок. Сразу предупрежу, что не работают пункты меню Сохранить, Загрузить, Шрифт и Справка.


А теперь по поводу найденых ошибок...

О том, что нельзя использовать переменные и процедур в начале имена стандартных, я не знал. Как и о том, что нельзя писать KillScript не на первой строке процедуры (игра просто вылетает с ошибкой). Ту ошибку я еще в самом начале работы сделал. При работе я постоянно добавлял в функции опциональные параметры, чтоб не исправлять старых. Но теперь эта ошибка убрана. Сообщение на строке 14 так и предполагалось. Лично я это сообщение ошибкой не считаю.
Теперь о предположительных предупреждениях:
QUOTE
Предупреждение: Скрипт "Walker" объявлен, но не вызван ни разу.

Если ты отнес эту ошибку к предупреждениям, то она не критична. Может быть я добавлю ее позже.
QUOTE
Предупреждение: Скрипт "Walker" не содержит переменных, а это не всегда работает

А ты в этом уверен. Выложи мне хоть один скрипт, где были проблемы из-за отсутствия параметров у процедуры, предварительно проверив его моей программой. Могу тебя заверить, что ты увидишь в этом скрипте ошибку типа "найдено непонятное выражение 'this'" и "ожидалось увдеть переменную типа object"

2 SnAIper а ты точно уверен, что моя программа идет по строкам. Наверное ты просто так подумал из-за отсортированности списка. На самом деле программ идет отнюдь не по прямой.

Сообщение отредактировал KnightL - Среда, 08 Августа 2007, 12:58

Присоединённые файлы
Присоединённый файл  ScriptDebuger.zip ( 239.57кб ) Кол-во скачиваний: 198
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Serж
post Среда, 08 Августа 2007, 13:15
Отправлено #13


Henchman
Group Icon

Группа: Members
Сообщений: 24
Регистрация: 27-Мар-06
Пользователь №: 4,489



В общем скачал, затестил. Скажу сразу, что я использовал 100% рабочий скрипт.

QUOTE
Строка №127. На строке найдено непонятное выражение : 'ConsoleString("<---|||==|||--->")'
Странно, но это вполне нормальное 'выражение'

QUOTE
Строка №145. Слишком много параметров у процедуры.


Но на сторке 145 мы видим это:
ConsoleString("Vy uvideli ubitogo ohrannika, provalivaem podzadaniya")

QUOTE
Строка №513. Использование процедуры в самой себе
Строка №513. На строке найдено непонятное выражение dormidont_zone
Строка №513. На строке ожидалось увидеть процедуру
Строка №528. Использование процедуры в самой себе
Строка №528. На строке найдено непонятное выражение dormidont_zone
Строка №528. На строке ожидалось увидеть процедуру


Строка 513 выглядит так:
dormidont_zone(zakl,0)

Полный код:

CODE


DeclareScript dormidont_zone(zakl : string, ttt : float)

Script dormidont_zone
(
 if
 (
    //неинформативная часть вырезана
    IsEqual(ttt,0)
 )
 then
 (
   KillScript()
   //неинформативная часть вырезана
   dormidont_zone(zakl,0)
 )

 if
 (
   //неинформативная часть вырезана
   IsEqual(ttt,1)
 )
 then
 (
   KillScript()
   dormidont_zone(zakl,0)
 )
)

WorldScript
(
 sleep(2)
 dormidont_zone("teleport",0)
)


Тоже странно. Здесь обнуляется скрипт, что бы каждый раз при выполнении условия выполнялось действие.

На строке 593 аналогичные сообщения.

На этом "ошибки" закончились. Дебаггер в принципе хорош, но все же требует доработки.

[UPDATE]

А теперь я вбил туда заведомо подпорченый скрипт. Как ни странно, но практически все ошибки он выявил правильно . Это хорошо wink.gif Но опять же былили проблемы как и с первым скриптом, он указывал на те строчки где ошибок нет. Почему-то чаще всего в ConsoleString. Но уже от него есть большая польза. Он указывает на строку с ошибкой, а самому проверить не составит труда wink.gif

Сообщение отредактировал Serж - Среда, 08 Августа 2007, 13:25
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
KnightL
post Среда, 08 Августа 2007, 14:33
Отправлено #14


Conjurer
Group Icon

Группа: Members
Сообщений: 204
Регистрация: 5-Июн-04
Пользователь №: 2,079



Я буду исправленную версию выкладывать без dll. Слишком они много весят. Поэтому программу надо класть к предыдущей.

2 Sarger. Не мог бы ты выложить строку №127. Интересно было бы на нее посмотреть.
С вызовом своей процедуры я перестарался. Я просто забыл, что как раз на этом могут работать скрипты.
Ошибку с запятой я забыл исправить в отношении кавычек. Теперь все нормально.

P.S Двойное нажатие на ошибку выделит строку с этой ошибкой

Присоединённые файлы
Присоединённый файл  ScriptDebugger.zip ( 40.73кб ) Кол-во скачиваний: 203
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Sagrer
post Среда, 08 Августа 2007, 14:56
Отправлено #15


Wizard
Group Icon

Группа: Members
Сообщений: 304
Регистрация: 24-Дек-01
Из: Курска
Пользователь №: 16



QUOTE
2 Sarger. Не мог бы ты выложить строку №127.


какую ще строку? 0_0 %). Имхо ты во-первых ошибся ником, во вторых там в цитате так и написана та самая строка...

З.Ы. просто требуй у аффторов сообщений про баги полный текст скрипта - и отлаживай уже именно его у себя.


--------------------
Gipat Group
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
KnightL
post Среда, 08 Августа 2007, 14:59
Отправлено #16


Conjurer
Group Icon

Группа: Members
Сообщений: 204
Регистрация: 5-Июн-04
Пользователь №: 2,079



Да, точно ошибся. Да этот скрипт и не очень сложно отлаживать без скрипты, если знаешь причины вызова тех или иных ошибок.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Serж
post Среда, 08 Августа 2007, 16:03
Отправлено #17


Henchman
Group Icon

Группа: Members
Сообщений: 24
Регистрация: 27-Мар-06
Пользователь №: 4,489



KnightL, отлично, теперь прога работает нормально. Осталось поправить баг 127 строки %) . Спасиб, за нужную прогу) Пойду еще потестю.

[UPDATE]
Попробовал вбить в прогу скрипт Весны ( из файла SuslPrtlGip.mob )... Появилось множество сообщений об ошибке команды GroupAdd и выскачила мессага:

Сообщение отредактировал Serж - Среда, 08 Августа 2007, 16:09

Присоединённые эскизы
Присоединённое изображение
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
KnightL
post Среда, 08 Августа 2007, 16:15
Отправлено #18


Conjurer
Group Icon

Группа: Members
Сообщений: 204
Регистрация: 5-Июн-04
Пользователь №: 2,079



А можно мне посмотреть эту строчку

Сообщение отредактировал KnightL - Среда, 08 Августа 2007, 16:15
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Serж
post Среда, 08 Августа 2007, 16:17
Отправлено #19


Henchman
Group Icon

Группа: Members
Сообщений: 24
Регистрация: 27-Мар-06
Пользователь №: 4,489



Вот, в текстовике полный скрипт из моба SuslPrtlGip

Присоединённые файлы
Присоединённый файл  SuslPrtlGip.txt ( 130.44кб ) Кол-во скачиваний: 452
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
KnightL
post Среда, 08 Августа 2007, 17:17
Отправлено #20


Conjurer
Group Icon

Группа: Members
Сообщений: 204
Регистрация: 5-Июн-04
Пользователь №: 2,079



Ошибки исправил. Теперь буду цеплять новые версии к первому посту темы.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Reply to this topicTopic OptionsStart new topic
1 чел. читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
 

Упрощённая версия Сейчас: 16 Октября 2019 - 19:48