|
|
|
Канал X3: Reunion »
Модовый и скриптовый отсек X3: Reunion: «X3 - External Script Editor» |
|
|
AlexV 555 EGP
Рейтинг канала: 7(561) Репутация: 182 Сообщения: 1157 Откуда: нискажу Зарегистрирован: 10.01.2006 |
|
ULiX : |
Теперь по делу. В чем это написано? (Перебирать версии лень)
|
обижаешь... какой дельфи? какой паскаль???
Microsoft C# 2.0
основной файл - с расширением SLN - солюшен
открывать из вижуал студии версии 2005
либо другой вариант - SharpDevelop последней версии
PS
по ошибкам...
начинаю заниматься конкретно, но мгновенных результатов не гарантирую
_________________ а хуже всего приходится программистам из Microsoft. Им в случае чего и обругать-то некого |
|
|
ULiX 320 EGP
Рейтинг канала: 7(691) Репутация: 146 Сообщения: 573 Откуда: Комсомольск на-Амуре Зарегистрирован: 12.07.2005 |
|
Это меня инструкция using сбила с толку.
Что обычно видишь в начале сишных файлов?
#include <...>
А тут using, который как раз используется в паскале.
Всё равно мой борладский си бюилдер отказался принимать исходники (первое ругательство на using), прийдётся искать микрософтный, хотя я их продукты до сих пор находил менее удобными чем борладские.
Если ещё и скините ссылку, где можно скачать дистриб, буду счастлив. Если эту ссылку нужно искать - можете этого не делать, сам найду.
_________________ Новое ещё не значит лучшее |
|
|
AlexV 555 EGP
Рейтинг канала: 7(561) Репутация: 182 Сообщения: 1157 Откуда: нискажу Зарегистрирован: 10.01.2006 |
|
ULiX : |
хотя я их продукты до сих пор находил менее удобными чем борладские.
|
Это было до выхода Visual Studio .Net
вот ссылка на то, что однозначно откроет
http://www.icsharpcode.net/opensource/sd/
студию от мелкомягких разве что на торрентах искать надо... там DVD полный
_________________ а хуже всего приходится программистам из Microsoft. Им в случае чего и обругать-то некого |
|
|
Jaa_CooL 320 EGP
Репутация: 116 Сообщения: 528 Заблокирован Откуда: Moscow Зарегистрирован: 13.04.2006 |
|
ULiX : |
А тут using, который как раз используется в паскале
|
Юзинг в заголовке объявляет подключенную сборку, чтобы не использовать расширение имен пространств, а в коде вынуждает утилизировать объект сразу после выхода из блока using
mutant : |
Код действительно не простой Мне после почти десятка лет дельфования и не верится, что столько руками накодить можно
|
Около 8 тыс. рукописного, остальное сгенерино конструктором форм - писал где-то полгода, но чистым временем не скажу, может около 2-3 всего по паре часов в день...
mutant : |
Сделаю в дельфи, но, плиз, поделитесь информацией по CodeArray.
|
Информация эксклюзив, можно просто посмотреть код, там 1-2 тыс строк всего - просто банально весь код помню без бумажек и структуру объектов...
aftermath : |
но вот при загрузке сейва с запуском этого скрипта игра вылетает в окошки
|
aftermath : |
в версии игры 1.4
|
Под 1.4 не тестил, только 1.3 - хотя не спорю, ошибки могут быть
_________________ CooL_SnipeR в отставке...
Мужик всегда добьётся того, что хочет женщина... |
|
|
ULiX 320 EGP
Рейтинг канала: 7(691) Репутация: 146 Сообщения: 573 Откуда: Комсомольск на-Амуре Зарегистрирован: 12.07.2005 |
|
Мммм... Кто пробовал сменить Description через ScE?
Сохранить, конечно можно, но вот как выйти из этого поля. Если взял фокус, то уже не отпускает... Даже закрыть легально приложение не получается, не то что, что-нибудь отредактировать. Что-то там намудрено в обрабочтчиках событий на редактирование описания скрипта.
System Override Software теперь в двух экземплярах начиная с версии 2.0.01. Приходится извращаться загрузкой по типу и субтипу нужного оборудования. Но это уже не проблемы ScE.
В версии 0.9.8.4 Проблема с Description исправлена.
А вот в с переходами goto gosub всё ещё проблема.
Выкладываю скрипт для тестирования.
Если просто открыть и попытаться компилировать, всё пройдёт пучком. Но попробуйте скомпилировать после внесения новой команды в любое место скрипта. (кроме коментария)
Droid.Menu.System.rar |
Описание: |
Скрипт для теста переходов по меткам командами goto и gosub |
|
Имя файла: |
Droid.Menu.System.rar |
Размер файла: |
23.54 KB |
Скачано: |
367 раз(а) |
_________________ Новое ещё не значит лучшее |
|
|
Jaa_CooL 320 EGP
Репутация: 116 Сообщения: 528 Заблокирован Откуда: Moscow Зарегистрирован: 13.04.2006 |
|
ULiX : |
Что-то там намудрено в обрабочтчиках событий на редактирование описания скрипта.
|
Для проверки дескрипшена используется паттерн regex - значиться нада добавить что-то этакое, что там было написано, ошибка была, я поэтому проверки полностью переделывал на regex...
_________________ CooL_SnipeR в отставке...
Мужик всегда добьётся того, что хочет женщина... |
|
|
AlexV 555 EGP
Рейтинг канала: 7(561) Репутация: 182 Сообщения: 1157 Откуда: нискажу Зарегистрирован: 10.01.2006 |
|
ULiX : |
А вот в с переходами goto gosub всё ещё проблема.
|
Нет, не в этом проблема...
там проблема в строке 1289
set player tracking aim to$x4 ->
..............................^^^^
Хорошая ошибка... поможет разобраться в преобразовании кодов в текст... где-то там закралося
ЗЫ
Начинаю заниматься приделкой окошка с ошибками...
_________________ а хуже всего приходится программистам из Microsoft. Им в случае чего и обругать-то некого |
|
|
AlexV 555 EGP
Рейтинг канала: 7(561) Репутация: 182 Сообщения: 1157 Откуда: нискажу Зарегистрирован: 10.01.2006 |
|
Исправил проблему, указанную в предыдущем посте...
Заодно заметил странное поведение при наличии START
Вроде как тоже исправил... во всяком случае надеюсь на это
_________________ а хуже всего приходится программистам из Microsoft. Им в случае чего и обругать-то некого |
|
|
ULiX 320 EGP
Рейтинг канала: 7(691) Репутация: 146 Сообщения: 573 Откуда: Комсомольск на-Амуре Зарегистрирован: 12.07.2005 |
|
Я нашёл способ как выкручиваться, чтоб все метки работали.
Пользуемся встроенным Replace
Заменяем все goto label на goto label
Потом все gosub на gosub
Команды перехода как бы набираются заного и попытка компилить выдаёт Succes при любых исправлениях.
Rebuild не канает, и снова выводит скрипт из строя, так что и компилить не получается.
Ладно, применяю новый способ путём автозамены без изменений.
Редактирую скрипт.
Пробую запустить в игре, что получилось.
Работает... НО... некоторые переходы работают не верно, вообще куда-то в тело скрипта посылают, при выборе некоторых пунктов меню результаты непредсказуемые (меню дроида).
Открываю во встроенном скриптредакторе, бегло просматриваю метки и переходы в тех местах, где был замечен глюк, метки правильные. Пересохраняю скрипт. Снова запускаю. Всё работает, переходы правильные.
Откатываюсь до версии 0.9.8.2
Там где Description проблематичный, зато строчки не скачут при редактировании.
Снова проделываю афёру с replace, делаю аналогичные исправления. (Я просто кусок кода переместил в другое место).
Проблема версии 0.9.8.2 - при вставке скопированого кода выдаётся ошибка с предложением прервать или продолжить, но любой вариант приводит к зависанию, но можно закрыть через панель и программа всё же предложит сохранить изменения. Изменения сохранил и в этом случае скрипт заработал в игре без проблем левых переходов.
НЕ зря я повторяю "Новое - ещё не значит лучшее". При переходе от старой версии к новой иногда теряется хорошее. А этого нужно избегать.
Ещё заметил странную фишку, но она не совсем относится к проблемам ScE, а скорее к проблемам перевода от НД.
Писал скрипт сразу в ScE сохранял, тестил в игре. Потом потянуло меня кое что исправить в этом скрипте с помощью встроенного редактора. Сохраняю. Работает. НО... если теперь перегрузиться, или загрузить сохранку игра вылетает. Удаляю скрипт - игра грузится. Подставляю скрипт обратно в папку загружаю его по команде L в игру - тут же вылет.
Снова пересохраняю в ScE и даю игре, принимает... Короче, пока текстовки в скрипте нет, а только коды, игра к нему нормально относится, а как появляется текстовка, так весится.
Тестирую дальше.
Меняю язык игры на английский. Загружаю игру со скриптом без текстовки (от ScE). Теперь пересохраняю скрипт с уже английской текстовкой и всё работает, вылетов не наблюдается. Но если переключиться на русскую игру и пересохранить данный скрипт, снова начнётся вылет.
Прикладываю этот скрипт. Забавное у него название... Ну это у него функция такая... А как в воду смотрит ещё и игру может на вылет отправлять просто присутствуя в папке скриптов.
Можете проанализировать. Пересохраните скрипт в русской версии и будете наблюдать глюки. У меня руки не дошли разобраться, какая именно команда такие глюки даёт.
Droid.Virus.Com.rar |
Описание: |
Злочастный скрипт. Сейчас с английской текстовкой. |
|
Имя файла: |
Droid.Virus.Com.rar |
Размер файла: |
3.17 KB |
Скачано: |
379 раз(а) |
_________________ Новое ещё не значит лучшее |
|
|
AlexV 555 EGP
Рейтинг канала: 7(561) Репутация: 182 Сообщения: 1157 Откуда: нискажу Зарегистрирован: 10.01.2006 |
|
в переводе от НД заметил, что они названия типов данных аргументов команд перевели... вполне возможно что-то и накосячили
ULiX : |
При переходе от старой версии к новой иногда теряется хорошее.
|
странно, ничего сильно не менял вроде бы
только мелкие ошибочки подправлял и несуразности
пока надеюсь, что окно с ошибками поможет прояснить некоторые вещи, т.к. при открытии скрипта ошибки (связанные с некорректным преобразованием) не подсвечиваются... в результате ребилд может и не прокатить при открытии даже заведомо правильного скрипта...
такие вещи надо вылавливать...
в общем понятно, что до идеала ещё работать и работать... но бум стремиться...
спасибо за развернутые сообщения о глюках
_________________ а хуже всего приходится программистам из Microsoft. Им в случае чего и обругать-то некого |
|
|
aftermath 685 EGP
Рейтинг канала: 1(9) Репутация: 234 Сообщения: 1316 Откуда: Нижний Новгород Зарегистрирован: 07.04.2006 |
|
ULiX : |
Меняю язык игры на английский. Загружаю игру со скриптом без текстовки (от ScE). Теперь пересохраняю скрипт с уже английской текстовкой и всё работает, вылетов не наблюдается. Но если переключиться на русскую игру и пересохранить данный скрипт, снова начнётся вылет.
|
играю и играл в английскую версию, переводом не пользовался и вообще все от него снес. вылет при сохранении во встроенном редакторе стабильный. пробовал с десяток редакченных в ScE скриптов. Так что язык, ихмо, никакой роли не играет.
_________________ В темном мире нет любви.
И в груди пусты сердца... (c) |
|
|
ULiX 320 EGP
Рейтинг канала: 7(691) Репутация: 146 Сообщения: 573 Откуда: Комсомольск на-Амуре Зарегистрирован: 12.07.2005 |
|
Кстати. Вы заметили, что init скрипт последнего бонуспака тоже написан на Extrn ScE, ну или ему подобном
Текстовки нет!
Я решил как-то посмотреть чего там нового в бонус паке открываю инит, чтоб узнать номера станичек текстовки, а там пусто... Загоняем в eScE и всё видим.
AlexV : |
спасибо за развернутые сообщения о глюках
|
Да не за что... Я тестю по полной...
Если изменения незначительные, то скажи, отчего при редактировании табулированых строк они автоматом смещаются к левому краю, причем сами потом не возвращаются, что несколько сбивает с толку в структуре программы, визуально уровни нарушаются. Чтоб вернуть табуляцию как надо, приходится шнырять в конец строки и жать Enter, что пораждает пустую строку между командами. Удаляем пустую строку и строка ниже снова прыгает к левому краю, и так до самого конца файла, чтоб не оставить лишних пустых строк и видеть верную структуру.
В версии 0.9.8.2 выравнивание происходило автоматом (почти), по крайней мере при жатии Enter выравнивалась структура всего скрипта а не одной строчки.
_________________ Новое ещё не значит лучшее |
|
|
Eric 100 EGP
Репутация: -3 Сообщения: 230 Откуда: Н. Тагил Зарегистрирован: 02.12.2002 |
|
у меня выдает такую ботву:
|
|
|
Jaa_CooL 320 EGP
Репутация: 116 Сообщения: 528 Заблокирован Откуда: Moscow Зарегистрирован: 13.04.2006 |
|
2Eric
Проблема не в самом редакторе, а в установленных паках модификации интерфейса винды - я запускал редактор под Vista b2 - все работает... как я понял у тебя стоит пак под WinXP который переделывает его интерфейс под висту.... трабла в нем...
_________________ CooL_SnipeR в отставке...
Мужик всегда добьётся того, что хочет женщина... |
|
|
Jaa_CooL 320 EGP
Репутация: 116 Сообщения: 528 Заблокирован Откуда: Moscow Зарегистрирован: 13.04.2006 |
|
aftermath : |
ULiX : |
Меняю язык игры на английский. Загружаю игру со скриптом без текстовки (от ScE). Теперь пересохраняю скрипт с уже английской текстовкой и всё работает, вылетов не наблюдается. Но если переключиться на русскую игру и пересохранить данный скрипт, снова начнётся вылет.
|
играю и играл в английскую версию, переводом не пользовался и вообще все от него снес. вылет при сохранении во встроенном редакторе стабильный. пробовал с десяток редакченных в ScE скриптов. Так что язык, ихмо, никакой роли не играет.
|
2AlexV
aftermath : |
Так что язык, ихмо, никакой роли не играет.
|
Еще как играет, распознавание If/While/ и прочих <RetVar/If> идет через Regex и прописаны в паттерне... смена языка приводит к тому, что она перестает распознавать параметры... в принципе паттерн можно сделать генерируемым из текстовика xx0001.xml и теоретически работать с любым языком... так как Regex нормально работает с русским, к примеру
_________________ CooL_SnipeR в отставке...
Мужик всегда добьётся того, что хочет женщина... |
|
|
Eric 100 EGP
Репутация: -3 Сообщения: 230 Откуда: Н. Тагил Зарегистрирован: 02.12.2002 |
|
угу, помогло
|
|
|
AlexV 555 EGP
Рейтинг канала: 7(561) Репутация: 182 Сообщения: 1157 Откуда: нискажу Зарегистрирован: 10.01.2006 |
|
Jaa_CooL : |
смена языка приводит к тому, что она перестает распознавать параметры.
|
к редактору это особого отношения не имеет, т.к. он работает пока с собственным 440001.xml
я пока ещё не проверял, почему падает в английской сохраненное в русской... пока только обратил внимание, что НД перевёл названия типов данных... и не исключаю пока, что при этом коцнули какой-нить идентификатор
add
торможу маленько... переделайте 440001 в 70001 и посмотрите будет вылетать или нет. токо внутри заголовок поправить не забудьте (LangID)
если не вылетит - значит однозначно надо корявость искать в НДшном 70001
ULiX : |
Если изменения незначительные, то скажи, отчего при редактировании табулированых строк они автоматом смещаются к левому краю
|
только так могу ответить
в этой части точно ниче не менял
буду разбираться
ЗЫ
планировал сегодня плотно этим позаниматься, но на работе припрягли позаниматься каналом связи с центром поддержки SAP...
когда заработает - фих знает... мож завтра, а мож через неделю... т.к. надо организовать связь по шифрованому каналу да еще и через VPN...
_________________ а хуже всего приходится программистам из Microsoft. Им в случае чего и обругать-то некого |
|
|
ULiX 320 EGP
Рейтинг канала: 7(691) Репутация: 146 Сообщения: 573 Откуда: Комсомольск на-Амуре Зарегистрирован: 12.07.2005 |
|
Заметил следующие глюки.
Собственно этот глюк и обеспечивал левые переходы.
Неправильно поддерживаются условные переходы.
Примеры ошибочных переходов:
Несколько end вподряд:
while 1
if (условие)
else
end
end
Операция skip перед end
while 1
if (условие)
else
end
skip if (услови2)
break
end
Во втором случае наблюдается выпрыгивание из цикла, без выполнения команды break
После пересохранения подобных структур во встроенном скрип редакторе, переходы становятся верными.
_________________ Новое ещё не значит лучшее |
|
|
Jaa_CooL 320 EGP
Репутация: 116 Сообщения: 528 Заблокирован Откуда: Moscow Зарегистрирован: 13.04.2006 |
|
Странно - я все скрипты что были проверял компиляцию на идентичность... все базовые скрипты компилились 1 в 1 со всеми переходами, в том числе и торговые (Dusk, там по 1200+ строк)
Дело в том, что команда Skip всегда переходит на строку +1 по стеку команд, так что ошибка тут исключена, для организзации и остслеживания переходов я использовал уровни вложенности команд и соотвественно анализ меток и переходов по этим уровням... если система уровней нарушена, то и переходы будут работать некорректно...
А то что уровни нарушаются - они будут нарушатся и при автоотступе набираемого кода...
Немного теории:
переходы While/ If/ Skip/ Else if содержат метку перехода в битах со смещением +16 кажется, а крайние правые это код отрицания с not команда или нет, крайние левые это код самой команды.
Переходы goto break continue и else не находятся напрямую в стеке, они выкидываються в информационный стек с комментариями и взамен них вставляется команда 112 hidden goto <label>
End вообще не находяться напрямую в стеке команд и выкидываются сразу в комментарии - они у меня вообще не анализируются. Там в коде есть функция, которая их замещает на 112 и потом только строит переходы по уровням переходов проходя по всему стеку команд.
Переходы бывают назад и вперед, соответственно пробегаемся по уровням и ищем на том же уровне или меньшем команду или метку перехода и анализируем ее...(поэтому при нарушении уровней идут глюки... метки будут на другие уровни и есстественно не будут найдены)
_________________ CooL_SnipeR в отставке...
Мужик всегда добьётся того, что хочет женщина... |
|
|
ULiX 320 EGP
Рейтинг канала: 7(691) Репутация: 146 Сообщения: 573 Откуда: Комсомольск на-Амуре Зарегистрирован: 12.07.2005 |
|
Jaa_CooL : |
Странно - я все скрипты что были проверял компиляцию на идентичность... все базовые скрипты компилились 1 в 1 со всеми переходами, в том числе и торговые (Dusk, там по 1200+ строк)
|
Я не спорю, если не вносить изменения, то по стечению обстоятельств получается почти один-к-одному... ПОЧТИ... например у меня некоторые переменные плавающие, по ходу проги меняют тип данных. Ну так раз в описании переменных часто бывают нестыковки между версиями компиляции exScE и ScE.
Когда же начинаешь редактировать код самостоятельно добавля или удаляя структуры if end или while end, вот тут начинаются странные переходы.
Jaa_CooL : |
поэтому при нарушении уровней идут глюки... метки будут на другие уровни и есстественно не будут найдены
|
Это признание того, что сложные вложеные структуры exScE ещё не поддерживает корректно?
Ну, собственно, и из этого выкрутиться можно, программируя паралельно в ScE и exScE.
Главное взять на заметку, что такая проблема существует.
_________________ Новое ещё не значит лучшее |
|
|
|
|
|
Канал X3: Reunion ->
Модовый и скриптовый отсек X3: Reunion: «X3 - External Script Editor» |
|