Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » Внешний редактор скриптов - пока только режим чтения :) | страница 6
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 6 из 6
На страницу: Пред.  1, 2, 3, 4, 5, 6 | Все страницы
Поиск в этой теме:
Канал X2: The Threat: «Внешний редактор скриптов - пока только режим чтения :)»
Бум или не бум?
Да :super:
77%
 77%  [ 80 ]
Нет :(
2%
 2%  [ 3 ]
Пох...
19%
 19%  [ 20 ]
Всего проголосовало : 103
CooL_SnipeR
 615 EGP


Рейтинг канала: 1(2)
Репутация: 214
Сообщения: 4050 Заблокирован
Откуда: Ясный-Москва
Зарегистрирован: 19.03.2004
akm :
А так Grey Wolf все верно сказал. Обеими руками за Улыбка Еще хотелось бы чтобы сам скрипт в редакторе выглядел как дерево, в котором циклы и проверки были бы в нодах и их содержимое можно было бы сворачивать. А от команд end вовсе избавиться. Жмем клавиши Ctrl + <- или Ctrl + -> и подсвеченная строка/нод смещаются на 1 уровень. Вот Улыбка

Хммм сделать вроде несложно, но как быть с подсветкой синтаксиса, ведь TreeView не имеет возможности менять параметры шрифта для отдельных нодов Озадачен Есть мысли или подсветка пох?
У меня пока идет просто текст с табуляцией для разных уровней, фактически сам текст в RTF (RichTextBox) - тут и с подсветкой проблем нет, насчет скрытия кода нужно подумать, пока не сообразил толком, как делать отступ недоступный для редактирования и иметь возможность вставлять туда что-то (пока только отслеживанием положения курсора (SelectionStart) и ограничения его движения первыми т символами в строке, но имхо это уже в RC Улыбка

Насчет End - гы Хы... незнаю, незнаю, имхо удобней End чем выделение блока и табуляция(смена уровней)
_________________
Никогда не бывает так плохо, после чего не может быть еще хуже...
    Добавлено: 09:40 01-11-2004   
Romeo-must-die
 271 EGP


Репутация: 37
Сообщения: 1054
Откуда: не с Бетельгейзе
Зарегистрирован: 04.01.2004
Цитата:
ведь TreeView не имеет возможности менять параметры шрифта для отдельных нодов Есть мысли или подсветка пох?

Заменить процедуру, которая рисует treeview
_________________
Смотри сквозь кретина
    Добавлено: 11:54 01-11-2004   
CheckerTwo
 550 EGP


Рейтинг канала: 4(96)
Репутация: 103
Сообщения: 412
Откуда: Tomsk
Зарегистрирован: 18.08.2004
Цитата:
TreeView не имеет возможности менять параметры шрифта для отдельных нодов


Э-э, почему нельзя? Подмигиваю
Можно попробовать в OnCustomDrawItem
with TreeView1.Canvas do begin
Font.Assign(...);
Brush.Color := BkgColor;
end;

Кажется даже в примере было. А вот - CustomDraw.
Посмотри, может подойдет.
Или ты про выделение кусков текста в одном ноде?
    Добавлено: 13:07 01-11-2004   
CooL_SnipeR
 615 EGP


Рейтинг канала: 1(2)
Репутация: 214
Сообщения: 4050 Заблокирован
Откуда: Ясный-Москва
Зарегистрирован: 19.03.2004
Опять накрылось время Повесишся тут с вами...

Требуется
Кодер со знанием скриптов, желательно C# и .Net (что бы по мере возможности поучаствовал) - способный реализовать технически идеи, но способный дополнить их, т.е. не просто исполнитель Да..
Готов поделится мыслями по формированию команд операторов (маркировки If, skip, while и производных, описание типов и т.п.)

Кто готов подхватить флаг?
_________________
Никогда не бывает так плохо, после чего не может быть еще хуже...
    Добавлено: 13:59 01-11-2004   
CheckerTwo
 550 EGP


Рейтинг канала: 4(96)
Репутация: 103
Сообщения: 412
Откуда: Tomsk
Зарегистрирован: 18.08.2004
Цитата:
желательно C# и .Net


О, извини, пропустил предпочтения языку...
В таком случае нужно перехватывать события NM_CUSTOMDRAW
которые возникают при перерисовке каждого итема.
И в момент, когда dwDrawStage будет равно CDDS_ITEMPREPAINT,
можно менять фонты и цвет у итема. Увы, давно не работаю
с С++ и напрямую с с винапи, мог и подзабыть изрядно. Но копать где-то здесь.
    Добавлено: 18:01 01-11-2004   
serg-314159
 97 EGP


Репутация: 6
Сообщения: 50

Зарегистрирован: 08.06.2004
Начал долбаться с описателями statement's, в связи с чем несколько вопросов к АЛЛ.
1)В командах if/while(104) в обязательном порядке присутствует (обычно вторым элементом)
идентификатор в фомате:
Код:

ZZYYYYXXh, где
XX - номер команды (440001:pgid=2007)
YYYY - индекс следующей команды в массиве команд
ZZ - ???? собственно, вопрос

Я наблюдал применение ZZ=A0h || ZZ=E0h, при чем
if/skipifnot/while = 0xA0
skipif/ifnot/whilenot = 0xE0
Вроде значения привязаны к операторам и не изменяются.
Что знает по этому поводу АЛЛ?

2) при разборе выражения типы элементов в нем заявляются как
Код:

20002h - DATATYP_VAR (440001:pgid=2013)
20003h - DATATYP_CONST
00004h - DATATYP_INT
0000Fh - DATATYP_OP

НО: массив типов 440001:pgid=2013 заявляет типы в диапазоне [0,21]
Что тогда означает старший WORD типа?

3) Почти то же: при описании системных констант (440001:pgid=2002)
заявлен диапазон [0,11],[100,116]...[2075,2077]
Однако, константы в скрипте фигурируют в виде
Код:

10000h - [THIS]
10004h - [HOMEBASE]

Соответственно, что означает старший WORD констант?
И вообще, имеет ли это значение?
_________________
mail-to: serg-314159@mail.ru
    Добавлено: 17:27 02-11-2004   
CooL_SnipeR
 615 EGP


Рейтинг канала: 1(2)
Репутация: 214
Сообщения: 4050 Заблокирован
Откуда: Ясный-Москва
Зарегистрирован: 19.03.2004
2serg-314159
Все приставки в командах (If и пр..) и типах(var/.., const) служат для идентификации типа, к примеру у тебя разные типы подпадают под описатели (типа 131074 и 131075), к-е указывают, что аргумент команды состоит из какого-либо значения (константы 0х100ХХ или товары и пр., что бы путаницы не возникло

Цитата:
ZZYYYYXXh, где
XX - номер команды (440001:pgid=2007)
YYYY - индекс следующей команды в массиве команд
ZZ - ???? собственно, вопрос

ZZ - указывает тип логической операции - через отрицание или прямое условие
YYYY - это не индекс следующей команды, а индек команды в кодэаррэй, куда перейдет выполнение команд в случае невыполнения условия!!!
_________________
Никогда не бывает так плохо, после чего не может быть еще хуже...
    Добавлено: 07:27 03-11-2004   
serg-314159
 97 EGP


Репутация: 6
Сообщения: 50

Зарегистрирован: 08.06.2004
Цитата:

ZZ - указывает тип логической операции - через отрицание или прямое условие

skipifnot - это надо понимать отрицание отрицания? Улыбка
Цитата:

YYYY - это не индекс следующей команды, а индек команды в кодэаррэй, куда перейдет выполнение команд в случае невыполнения условия!!!

угу. мне надо было скзать не "команды" а "statement" - а то сам запутался. Действительно, в случае наличия else отрабатывает переход на первый statement в else.
Биг сенкс! Улыбка
С константами - не понял. Ты хочешь сказать что
0x200xx - переменные
0x100xx - ???
0x000xx - числовые значения ?
_________________
mail-to: serg-314159@mail.ru
    Добавлено: 11:48 03-11-2004   
CooL_SnipeR
 615 EGP


Рейтинг канала: 1(2)
Репутация: 214
Сообщения: 4050 Заблокирован
Откуда: Ясный-Москва
Зарегистрирован: 19.03.2004
serg-314159 :
Цитата:

ZZ - указывает тип логической операции - через отрицание или прямое условие

skipifnot - это надо понимать отрицание отрицания? Улыбка

Зачем, отрицание у тебя ifnot, а skip означает что переход будет на команду через следующую и все, т.е. наличие end не нужно

Цитата:

С константами - не понял. Ты хочешь сказать что
0x200xx - переменные
0x100xx - ???
0x000xx - числовые значения ?

Бррр что-то ты не то написал, я не пойму, если у тебя идет значение большее 0xffff то это говорит о том, что параметр состаит из 2, а не одного значений
причем 0x2002 - это числа, 0x2003 - это константы, у тех у которых есть минусовой бит, то это либо условия (есть в теле команд параметр retvar/if) либо товары или сектора и пр..., кодировку на вскидку не скажу, но я думаю мысль понял Да.
_________________
Никогда не бывает так плохо, после чего не может быть еще хуже...
    Добавлено: 12:02 03-11-2004   
serg-314159
 97 EGP


Репутация: 6
Сообщения: 50

Зарегистрирован: 08.06.2004
Цитата:

SERG>> skipifnot - это надо понимать отрицание отрицания?
Зачем, отрицание у тебя ifnot, а skip означает что переход будет

if = while = skipifnot = 0xA0
skipif = ifnot = whilenot = 0xE0
Цитата:

если у тебя идет значение большее 0xffff то это говорит о том, что параметр состаит из 2, а не одного значений

Все приведенные параметры состоят из двух значений: описателя и значения/ссылки
под тип в резервируется 1 младший байт (WORD???), вопрос собственно, что представляет собой старший WORD

Код:

440001:          carray       carray
pgid=2013        int  [n]    int [n+1]
----------------------------------------------
DATATYP_VAR      0x20002   <var index>
DATATYP_CONST    0x20003   <reserved constant>
DATATYP_INT      0x00004   <integer value>
DATATYP_OP       0x0000F   <opearation code>


примеры (!move.returntohomebase):
Код:

// 0002:skip if $homebase -> exists
<sval type="array" size="4">
   <sval type="int" val="706" />       // command code pg2003:%1%0->exists
   <sval type="int" val="131074" />    //0x20002  DATATYP_VAR
   <sval type="int" val="0" />         //var[0]
   <sval type="int" val="-536869881"/> //0xE0000407 skipif
 </sval>
// 000B:$dockedat = [THIS] -> is docked
<sval type="array" size="4">
   <sval type="int" val="745" />
   <sval type="int" val="131075" />    //0x20003 DATATYP_CONST
   <sval type="int" val="65536" />     //0x10000
   <sval type="int" val="2" />         //var[2]=$dockedat
</sval>
// 0011:= [THIS] -> move around 60000 ms
<sval type="array" size="6">
   <sval type="int" val="507" />
   <sval type="int" val="131075" />    //0x20003 DATATYP_CONST
   <sval type="int" val="65536" />     //0x10000
   <sval type="int" val="-2147483647"/>//0x80000001 //noretvalue
   <sval type="int" val="4" />         //DATATYP_INT
   <sval type="int" val="60000" />
</sval>
// 000C:if $homebase == $dockedat
<sval type="array" size="13">
   <sval type="int" val="104" />       // statement code pg2003:%0%1
   <sval type="int" val="-1610609149"/>//0xA0000E03  if
///// список аргументов выражения
   <sval type="int" val="3" />
   <sval type="int" val="131074" />    //0x20002 DATATYP_VAR
   <sval type="int" val="0" />         //var[0]=$homebase
   <sval type="int" val="131074" />    //0x20002 DATATYP_VAR
   <sval type="int" val="2" />         //var[2]=$dockedat
   <sval type="int" val="15" />        // DATATYP_OP
   <sval type="int" val="0" />         // ==
//////последовательность операций
   <sval type="int" val="3" />
   <sval type="int" val="-1" />
   <sval type="int" val="0" />
   <sval type="int" val="-2" />
</sval>


_________________
mail-to: serg-314159@mail.ru
    Добавлено: 14:48 03-11-2004   
CooL_SnipeR
 615 EGP


Рейтинг канала: 1(2)
Репутация: 214
Сообщения: 4050 Заблокирован
Откуда: Ясный-Москва
Зарегистрирован: 19.03.2004
2serg-314159
Да.
Вот тебе еще хелп
Второй параметр в команде 104
<sval type="int" val="104" />
<sval type="int" val="-1610609149"/>
///// список аргументов выражения
<sval type="int" val="3" /> // это количество параметров перед указанием массива операторов - про сами массивы операторов в самом низу ты и так понял, он берет параметры и применяет к ним операцию по коду (верхний sval)
_________________
Никогда не бывает так плохо, после чего не может быть еще хуже...
    Добавлено: 15:03 03-11-2004   
serg-314159
 97 EGP


Репутация: 6
Сообщения: 50

Зарегистрирован: 08.06.2004
дык все-таки: что есть старший WORD?
можно ли брать типы данных из 440001:pgid=2013 (это значение 0-21) или нужно применять именно такие, как в скриптах?
_________________
mail-to: serg-314159@mail.ru
    Добавлено: 15:47 03-11-2004   
CooL_SnipeR
 615 EGP


Рейтинг канала: 1(2)
Репутация: 214
Сообщения: 4050 Заблокирован
Откуда: Ясный-Москва
Зарегистрирован: 19.03.2004
Нужна парочка альфа тестеров - для проверки работоспостобности проекта
http://www.elite-games.ru/downloads/x2/x2%20-%20script%20writer%20alpha.zip (450 кб zip)

Исходники пока не прилагаю - т.к. многие части еще просто не переделаны, т.к. вначале я делал интерпретатор - однако возникли трудности - поэтому перевожу все на текстовый компилятор - с этим и связано наличия пока только режима открытия.
Компиляция пока в неудобоваримом виде - посему отключил - поэтому часть подсветки не работает или работает некорректно (т.к. ранее они были разделены), в том числе вставки строк и drag-n-drop - т.к. табуляция будет реализовано через свойства Indent.

Требуется - проверить коректность дерева команд и всех параметров <ParDef> - проверить открытие самописных скриптов (стандартные скрипты открываются все), правда без пары DATATYPE Поддержки переменных DATATYPE_SECTOR пока нет - планирую подцеплять файл с картами и также DATATYPE_ARRAY - поэтому скрипты содержащие их (вернее последний DATATYPE не будут открываться полностью)

Редактор открывает скрипты, анализируя секцию <codearrey> - в чем можно убедиться если убрать секцию <sourcetext>. Открывает signed скрипты - правда поддержки pck пока нет.

В всех ошибка просьба писать сюда с указание функции и желательно выслать мне скрипт на coolsniper@elite-games.ru, к-й не открывается (но внимательно!!! - пока не открываются скрипты с прямым объявлением массивов типа {1,2,3,4} - с обращением к елементам через [] и т.п. все работет

З.Ы. написано на C# и NET framework (поэтому у кого нет, нужно поставить помоему в SP2 под ХП он есть Озадачен)
_________________
Никогда не бывает так плохо, после чего не может быть еще хуже...
    Добавлено: 13:16 20-06-2005   
PLEIR
 100 EGP


Рейтинг канала: 1(2)
Репутация: 15
Сообщения: 459
Откуда: Новосибирск
Зарегистрирован: 01.11.2004
Ошибка при инициализации приложения (0xc0000135) …..и прочие бла-бла-бла
Чегой то для правильной работы нужон монстроподобный NET framework?Расстроен

Распакованная игра от НД 1.4
Вин ХР SP1
_________________
Нельзя служить свободе, создавая законы и запреты…....
    Добавлено: 14:18 20-06-2005   
Kamizeka
 370 EGP


Репутация: 136
Сообщения: 1037
Откуда: Калуга - родина космонавтики
Зарегистрирован: 14.06.2005
в SP2 тоже нет по дефолту .NET'а. Нафиг было C#? Из-за XML только? TinyXML можно было взять или что-нить типа того...
_________________
Something's rotten in the state of Denmark.
    Добавлено: 14:28 20-06-2005   
AlexYar
 1916 EGP


Рейтинг канала: 6(445)
Репутация: 325
Сообщения: 32768

Зарегистрирован: 26.10.2003
В менюхе "Browse for Folder" написано "Choose path to the directory "X2 - The Return"

У кого, интересно, он есть вообще? Улыбка

Из того, что пока нашел -
1. Если идут подряд несколько закомментированных строк, то показывается только первая, а у остальных проставляется только "cmd comment". Скрипт самописный.
2. Программа выдаёт сообщение об "invalid hexadecimal parameter" при попытке загрузить самописный скрипт, в котором указан объект или параметр из раскрашенного файла русификации (с подсвеченными названиями разными цветами). Т.о. эти самописные скрипты не открыть.
3. Не понял, как стирать строчки, а так же не нашел, где задаются аргументы, версия и описание скрипта.
    Добавлено: 15:58 20-06-2005   
CooL_SnipeR
 615 EGP


Рейтинг канала: 1(2)
Репутация: 214
Сообщения: 4050 Заблокирован
Откуда: Ясный-Москва
Зарегистрирован: 19.03.2004
2AlexYar
Это все будет - частично работает
AlexYar :
. Программа выдаёт сообщение об "invalid hexadecimal parameter" при попытке загрузить самописный скрипт, в котором указан объект или параметр из раскрашенного файла русификации (с подсвеченными названиями разными цветами). Т.о. эти самописные скрипты не открыть.

Вышли скриптик на мыло - с комментариями я уже тоже заметил Ой, ходу отседова...
AlexYar :
У кого, интересно, он есть вообще?

Первоначально планировалось брать ресы с Х2 - но для этого нужна распакованная версия, поэтому я все вытащил в папку data - если указать путь к Х2 - то при открытии скриптов будет автоматом брпться папка Х2/scripts
AlexYar :
Не понял, как стирать строчки, а так же не нашел, где задаются аргументы, версия и описание скрипта

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

Строчки пока ен стираются - там стоит защита Подмигиваю

PLEIR :
Ошибка при инициализации приложения (0xc0000135) …..и прочие бла-бла-блаЧегой то для правильной работы нужон монстроподобный NET framework?

У тебя не стоит framework
el-kamikaze :
Нафиг было C#? Из-за XML только?

Дело не c# - можно на нет писать и на с++ Подмигиваю - вообще с формами и т.п. работать проще - можно сосредоточиться конкретно на реализации того, что нужно, а не того, чтоб еще отслеживать работоспособности формы
_________________
Никогда не бывает так плохо, после чего не может быть еще хуже...
    Добавлено: 11:27 21-06-2005   
AlexYar
 1916 EGP


Рейтинг канала: 6(445)
Репутация: 325
Сообщения: 32768

Зарегистрирован: 26.10.2003
CooL_SnipeR :
Вышли скриптик на мыло


Ушло.

CooL_SnipeR :
Первоначально планировалось брать ресы с Х2


Я не про то Улыбка При установки путей к конфигам в одной менюшке говорится- укажите путь к папке с игрой "X2-The Threat", а в другой -к "X2-The Return". Похоже на описку либо специальный прикол Гы-гы
    Добавлено: 13:00 21-06-2005   
CooL_SnipeR
 615 EGP


Рейтинг канала: 1(2)
Репутация: 214
Сообщения: 4050 Заблокирован
Откуда: Ясный-Москва
Зарегистрирован: 19.03.2004
AlexYar :
Похоже на описку либо специальный прикол

Упссс - очепятка гыгы - о чем думали, о том и делали Ой, не могу!.. - подправлю Гы-гы - скриптик сегодня отдебагрю - благо в студии NET средства огого
_________________
Никогда не бывает так плохо, после чего не может быть еще хуже...
    Добавлено: 13:54 21-06-2005   
Пассажир
 

Пассажир




Цитата:
У тебя не стоит framework

А без него никак? Подозрение.
    Добавлено: 20:02 30-07-2005   
Канал X2: The Threat: «Внешний редактор скриптов - пока только режим чтения :)»
На страницу: Пред.  1, 2, 3, 4, 5, 6 | Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Может, хватит ночью такое писать?! (Kish) - Может, хватит ночью такое читать?! (Alone)

  » Внешний редактор скриптов - пока только режим чтения :) | страница 6
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18