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

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

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

   Страница 3 из 8
На страницу: Пред.  1, 2, 3, 4, 5, 6, 7, 8  След. | Все страницы
Поиск в этой теме:
Канал X2: The Threat: «Скрипты - это легко...»
Нужен ли этот проект?
Да
96%
 96%  [ 215 ]
Нет
0%
 0%  [ 1 ]
Мне все равно
2%
 2%  [ 6 ]
Всего проголосовало : 222
DragonP
 281 EGP


Рейтинг канала: 3(27)
Репутация: 108
Сообщения: 527
Откуда: Новосибирск
Зарегистрирован: 18.12.2004
RAider :
искал гдебы в виже архивчика скачать целиком информацию. не нашел...или плохо искал?...уже думаю - а не выкачать ли целиком все твои странички с народа.кстати, сколько такой архивчик весить будет - с той инфой,что есть на данный момент?


На сегодня в архиве 2.44 мб, не выкладываю архив потому, что проект не завершен. Как закончу, есть договоренность со Starck, он оформит под распечатку и под просмотр, а Виталий выложит на ЕГ готовый учебник.
Но если надо, могу выложить в архиве то, что есть. Но все же, лучше не торопиться. Если в январе конца не было видно (сори, за не правильные асоциации Хы... ), то сейчас сделано не меньше 70%. Думаю к концу месяца завершить. Улыбка
_________________
Звезды зовут...
    Добавлено: 18:54 09-03-2005   
DragonP
 281 EGP


Рейтинг канала: 3(27)
Репутация: 108
Сообщения: 527
Откуда: Новосибирск
Зарегистрирован: 18.12.2004
Все поправки, что обсуждались выше внесены в проект. Улыбка
_________________
Звезды зовут...
    Добавлено: 21:36 09-03-2005   
XenonTomb
 250 EGP


Рейтинг канала: 2(16)
Репутация: 66
Сообщения: 867
Откуда: Николаев, Украина
Зарегистрирован: 17.03.2004
akm :
DragonP Молодец!

Поддерживаю! Улыбка

2DragonP
Намылил тебе небольшую статейку для новичков "Использование циклов".
_________________
Будут предложения - присылайте на расчетный счет :)
    Добавлено: 10:19 10-03-2005   
XenonTomb
 250 EGP


Рейтинг канала: 2(16)
Репутация: 66
Сообщения: 867
Откуда: Николаев, Украина
Зарегистрирован: 17.03.2004
Уточнение для команды create flying ware. Если указать время существования null, то контейнер будет существовать неограниченно долго (если ему не помешают Улыбка)
_________________
Будут предложения - присылайте на расчетный счет :)
    Добавлено: 14:13 10-03-2005   
XenonTomb
 250 EGP


Рейтинг канала: 2(16)
Репутация: 66
Сообщения: 867
Откуда: Николаев, Украина
Зарегистрирован: 17.03.2004
Важное уточнение для торговых команд find station: product/resource/sells. Эти команды не могут найти верфь, продающую определенный корабль или станцию. Это либо баг, либо так задумано.
_________________
Будут предложения - присылайте на расчетный счет :)
    Добавлено: 15:52 10-03-2005   
DragonP
 281 EGP


Рейтинг канала: 3(27)
Репутация: 108
Сообщения: 527
Откуда: Новосибирск
Зарегистрирован: 18.12.2004
Антон спасибо за такое кол-во инфы. Огромный респект !!! Сегодня все поправлю. В статье, взял на себя смелость немного подправить, для сохранения стиля. Надеюсь ты не в обиде.

Akm, очень рад что ты опять с нами !!! Надеюсь ты тоже подключишся к работе. Еще раз, очень рад, что ты вернулся.
_________________
Звезды зовут...
    Добавлено: 16:56 10-03-2005   
akm
 470 EGP


Рейтинг канала: 1(4)
Репутация: 173
Сообщения: 1638
Откуда: Паразит Прайм
Зарегистрирован: 23.10.2002
Чем на дольше уходишь, тем больше рады Хы...
Тут меня General уже попросил по AL-плагинам доку написать. Если там через недельку еще надо будет, то напишу.
Пока что не было времени почитать текущую версию пособия, но обязательно посмотрю его в будущем и тоже поправки/дополнения дам.
    Добавлено: 20:13 10-03-2005   
XenonTomb
 250 EGP


Рейтинг канала: 2(16)
Репутация: 66
Сообщения: 867
Откуда: Николаев, Украина
Зарегистрирован: 17.03.2004
2DragonP
Вчера обнаружил ловкий баг команды <RetVar/IF> <station> trades with ware <ware>. Оказывается, если применить эту команду при проверке, торгует ли верфь определенным кораблем, то команда возвращает [TRUE] в ЛЮБОМ случае, даже если реально верфь не торгует таким кораблем! Если проверять, торгует ли верфь такой-то станцией, то результат корректный. Что-то тут ЭГОСОФТ недоглядел... Ламо!
akm :
General уже попросил по AL-плагинам доку написать. Если там через недельку еще надо будет, то напишу.

В любом случае было бы неплохо. Подмигиваю
_________________
Будут предложения - присылайте на расчетный счет :)
    Добавлено: 09:42 11-03-2005   
DragonP
 281 EGP


Рейтинг канала: 3(27)
Репутация: 108
Сообщения: 527
Откуда: Новосибирск
Зарегистрирован: 18.12.2004
Отчет о изменениях от 11\3\2005

1. Внесены поправки в описание "Команды работы с объектами"
2. Добавлено в приложение «Сводная таблица Типов и Субтипов товаров и объектов.»
3. Добавлено в приложение описание типов специальных объектов (create special).
4. Поправки в описании Торговых команд
5. Добавлена статья XenonTomb’a «Принципы использования циклов»
6. Исправлены ошибки в описании команд add product, create station, set pilot speaker
___________________________________________________________________

Страница проекта «Скрипты- это легко» http://www.Ссылки на narod.ru запрещены! Используйте пожалуйста другие, более нормальные хостинги./
_________________
Звезды зовут...
    Добавлено: 10:33 11-03-2005   
XenonTomb
 250 EGP


Рейтинг канала: 2(16)
Репутация: 66
Сообщения: 867
Откуда: Николаев, Украина
Зарегистрирован: 17.03.2004
2DragonP

Вот у тебя еще маленькая неточность (вернее в MSCI Handbook Улыбка)

<ship> -> set pilot speaker: voice=<voic1e>, face=<face>, Pirate subrace=[TRUE]|[FALSE], Argon female=[TRUE]|[FALSE]

Здесь надо указать <race> - это именно псевдо-раса пирата. Реально у него раса "Пират", но сам пилот внешне будет расы <race>, и соответственно у него будет имя, характерное для указанной расы.
_________________
Будут предложения - присылайте на расчетный счет :)
    Добавлено: 11:06 11-03-2005   
Shadowman
 265 EGP


Рейтинг канала: 1(1)
Репутация: 42
Сообщения: 1392
Откуда: Альфа Центавра
Зарегистрирован: 03.12.2003
2DragonP
Отличное дело делаешь! Респект Супер!

Могу помочь с хтмл-кодированием. Очень уж ФронтПэйдж тяжеловесный код делает. Я бы взял ДримВэвер для этих целей - у него на выходе код почти идеальный (конечно, вручную все равно лучше можно сделать Подмигиваю). Хотя, должен признать, что текстовые вставки с форматированием (как в игровом редакторе) и графические диаграммы просто бесподобны. Остальной код можно облегчить раза в 3 как минимум.
Если интересует - пиши в ПМ (заодно можно будет потом и chm-версию забацать, когда проект завершится).
    Добавлено: 14:43 11-03-2005   
XenonTomb
 250 EGP


Рейтинг канала: 2(16)
Репутация: 66
Сообщения: 867
Откуда: Николаев, Украина
Зарегистрирован: 17.03.2004
Поправка к торговым командам

<RetVar/IF> <ship> buy [sell,load,unload] <count> units of <ware>

Они не работают для больших кораблей, пристыкованных снаружи станции.
_________________
Будут предложения - присылайте на расчетный счет :)
    Добавлено: 12:00 14-03-2005   
XenonTomb
 250 EGP


Рейтинг канала: 2(16)
Репутация: 66
Сообщения: 867
Откуда: Николаев, Украина
Зарегистрирован: 17.03.2004
Поправка к навигационной команде

у тебя :
<RetVar>=<ship> find nearest missile aiming to me
Возвращает ближайшую ракету <ship>, наведённую на объект <RefObj> или null если таких ракет нет. Инструкцию можно использовать только для поиска ракет.


Надо: возвращает в <RetVar> ближайшую ракету, наведённую на объект <ship>... Кстати, <ship> здесь не обязательно корабль, лучше написать <RefObj>.
_________________
Будут предложения - присылайте на расчетный счет :)
    Добавлено: 13:45 18-03-2005   
DragonP
 281 EGP


Рейтинг канала: 3(27)
Репутация: 108
Сообщения: 527
Откуда: Новосибирск
Зарегистрирован: 18.12.2004
XenonTomb :
Поправка к навигационной команде


Ок. Сегодня поправлю. Улыбка
_________________
Звезды зовут...
    Добавлено: 14:28 19-03-2005   
DragonP
 281 EGP


Рейтинг канала: 3(27)
Репутация: 108
Сообщения: 527
Откуда: Новосибирск
Зарегистрирован: 18.12.2004
Отчет о изменениях от 19\3\2005

1. Написана статья в раздел «Интерпретатор скриптовых команд «Сигналы»»

Xenon и akm жду ваших комментариев. Никакой инфы не нашел, кроме статьи в MSCI, копал сам. Скорее всего, что нибудь упустил.
___________________________________________________________________

Страница проекта «Скрипты- это легко» http://www.Ссылки на narod.ru запрещены! Используйте пожалуйста другие, более нормальные хостинги./
_________________
Звезды зовут...
    Добавлено: 19:50 19-03-2005   
akm
 470 EGP


Рейтинг канала: 1(4)
Репутация: 173
Сообщения: 1638
Откуда: Паразит Прайм
Зарегистрирован: 23.10.2002
Первый абзац:
Цитата:
Данный сигнал прервет скрипт выполняемый на атакуемом корабле в данный момент и передаст управление специальному скрипту обработчику сигнала.

Лучше так:
"Данный сигнал прервет скрипт выполняемый в нулевом стеке на атакуемом корабле в данный момент и передаст управление специальному скрипту обработчику сигнала, который в свою очередь будет выполняться в этом же стеке. Прерывание произойдет только при условии, что приоритет прерывающего скрипта выше приоритета текущего выполняемого на корабле скрипта."

Про приоритеты ты рассказываешь в самом низу, думаю все же не лишним будет упоминание в основном описании.

Цитата:
Изначально, в игре за назначение обработчиков сигналов, отвечает служебный скрипт !init.ship.globalscriptmap.std.xml

Лучше ссылаться на скрипт "!init.ship.globalscriptmap" Подмигиваю Из него пу сути вызов целого ряда инициализирующих скриптов.

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

Еще бы добавить к статье:
Будте предельно аккуратны при вызове каких-либо скриптов из скрипта-обработчика сигнала! Если вы выполните вызов с префиксом START на [THIS], то вероятнее всего произойдет зависание игры. Если решили использовать START - лучше запускайте скрипт глобально, т.е. на null. Или же не используйте префикс START, но тогда выполнение скрипта-обработчика сигнала (а следовательно и всех до этого прерванных им скриптов) будет приостановлено вплоть до завершения этого дополнительного вызванного скрипта.

Цитата:
Теперь, в стек добавился еще один скрипт. Это назначенный нами обработчик сигнала SIGNAL_ATTACKED и т.к. его приоритет выше всех остальных скриптов находящихся в нулевом стеке объекта, то все остальные скрипты находящиеся в стеке будут приостановлены до того момента пока signal.ATTACKED не закончит свою работу.

Не совсем верное утверждение. Выполняться будет не тот скрипт, приоритет которого выше, а тот, что в самом низу стека! Приоритеты в ScE управляют лишь добавлением в этот самый низ стека Подмигиваю И если нижний скрипт вдруг снизит свой приоритет, то для остальных скриптов в стеке ничего не извенится. Зачем это надо? - Позволить прервать весь стек скриптам с определенными приоритетами. Можно даже было бы разобрать стандартный обработчик SIGANL_ATTACKED для ТС. Там такая интересная штука заложена:
1) Почти при каждом попадании в ТС запускается этот скрипт и производится проверка уровня щитов и корпуса. При определенных условиях корабль производит запуск дронов и защитный маневр.
2) Если дело совсем дрянь, прямо в этом обработчике, запускается (5) бегство на ближайшую станцию.
Пока "бегство" не завершено, скрипт-обработчик естественно все еще выполняется и блокирует запуск п.1 при каждом попадании по кораблю и корабль прекратил бы маневрировать и очень скоро был бы добит, если бы не:
4) понижается приоритет текущего скрипта обработчика с 100 до 50
А чтобы "бегство" не запустилось повторно:
3) используется проверка "if not is script with prio 50 on stack"
И вот только затем:
5) бегство на ближайшую станцию

Т.е. даже если где-то вверху или в середине стека есть скрипт с приоритетом 90, он все равно не возобновит свое выполнение, даже если нижний скрипт вдруг сменит свой приоритет на 50 Подмигиваю

И еще, начал было читать с самого начала про "Многозадачность", наверное стоит упоминуть ряд багов встроенного редактора:
Цитата:
Когда вы открываете встроенный в игру редактор скриптов и нажимаете PgDn, перед вами появляется длинный список скриптов - в нем присутствуют все скрипты, хотя бы один раз исполнявшиеся с начала игры.

Эх, хорошо если там хотя бы половина запускавшихся скриптов будет отображаться. Даже выполняемые в данный момент скрипты не все отображаются Подмигиваю

Цитата:
Их имена - в первой колонке списка. Во второй и третьей колонке вы видите некие числа. Они показывают - сколько экземпляров этого скрипта исполняется в данный момент.

И тут есть весьма серьезный глюк.
Если в скрипте "С1" производится запуск скрипта "С2" в текущем стеке с вытеснением текущего скрипта, т.е. командой:
START [THIS]-> call script 'C2'
или
START [THIS] -> command ...
в этом случае счетчики количества запусков скрипта во всех колонках 2, 3 и 4 как бы не заметят, что скрипт "С2" вовсе запускался, более того, будут показывать, что все еще выполняется "С1" Совсем запутался...

Ну на сегодня хватит Хы...

ЗЫ. Я тут подумал. Наверное не стоит заграмождать те или иные статьи описанием всех известных багов (как бы не получилось что текста про баги будет больше Гы-гы чем основного содержания статьи) и у человека, читающего будет кружиться голова Совсем запутался... (или еще хуже - испугается и плюнет на все это скриптописание Aaaaaaaa! ) Лучше сделать отдельную статейку про известные баги и там их пронумеровать и расставить метки. Далее в тематических статьях просто вставлять ссылки.
Более того, заграмождать статью лишними деталями тоже дурной тон. Тяжело читать будет даже профессионалу. Надо в полной мере использовать HTML/CHM Подмигиваю и просто вставлять нужные ссылки на эти "детали", т.к. скорее всего эти детали уже подробно объяснялись в какой-то другой статье.
    Добавлено: 21:14 19-03-2005   
DragonP
 281 EGP


Рейтинг канала: 3(27)
Репутация: 108
Сообщения: 527
Откуда: Новосибирск
Зарегистрирован: 18.12.2004
akm :
Более того, заграмождать статью лишними деталями тоже дурной тон. Тяжело читать будет даже профессионалу. Надо в полной мере использовать HTML/CHM и просто вставлять нужные ссылки на эти "детали", т.к. скорее всего эти детали уже подробно объяснялись в какой-то другой статье.


Согласен. А правила почитать?
Между работой над разделом и последней статьей большой промежуток по времени получился и следствие - развал информативной целостности и повтор того о чем говорилось в предыдущей статье.

Поправки по статье учел, статью подредактирую Писатель.
_________________
Звезды зовут...
    Добавлено: 10:27 21-03-2005   
akm
 470 EGP


Рейтинг канала: 1(4)
Репутация: 173
Сообщения: 1638
Откуда: Паразит Прайм
Зарегистрирован: 23.10.2002
Статейка хорошая получилась Круто! С примерами, и вроде доступно все расписано. Убирать ничего не надо из нее. Это я по отношению к некоторым своим дополненим говорил, что эти детали лучше в других местах изложить, а в статье делать сноски Подмигиваю

Вот еще пока не забыл. Касательно wait. Есть такой пожалуй наиболее мерзский баг: если какой-то непрерывно выполняющийся кусок скрипта (т.е. между двумя ближайшими прерываемыми командами @) выполняется на протяжении более 200 мс, то игра необратимо повиснет Разозлен Это одна из основных причин повисания казалось бы идеально написанного скрипта. Причем, если на быстром проце скрипт может отмолотить за 50 мс, это не гарантирует, что на компе с более слабым процом этот же скрипт не подвесит игру. Но это еще не самое страшное. Как известно, весь движек игры есть один единственный процесс, где графика, экономика, скрипты и многое другое выполняется поочередно Расстроен Итог - стоит проглючить анимации в интенсивном бою и это незамедлительно отражается на скорости исполнения скриптов. Не вместились в окно 200 мс - и кранты игре Рыдая, стреляется нафиг И этот баг фиг отловишь, т.к. он может иметь место 1 раз за 20 часов игры.
Так что не экономьте на командах wait! Даже "wait 1 ms" здорово помогает избегать подобных инцидентов. Т.е. обязательно внутри любого цикла должен быть "wait 1 ms", если только этот цикл не велик и вы абсолютно уверены, что он завершится при любых обстоятельствах.
    Добавлено: 11:52 21-03-2005   
DragonP
 281 EGP


Рейтинг канала: 3(27)
Репутация: 108
Сообщения: 527
Откуда: Новосибирск
Зарегистрирован: 18.12.2004
Выложил новый вариант статьи "Сигналы", да так еще по разделу кое что поправил. Улыбка
_________________
Звезды зовут...
    Добавлено: 12:40 22-03-2005   
XenonTomb
 250 EGP


Рейтинг канала: 2(16)
Репутация: 66
Сообщения: 867
Откуда: Николаев, Украина
Зарегистрирован: 17.03.2004
XenonTomb :
баг команды <RetVar/IF> <station> trades with ware <ware>

Это стоит упомянуть Подмигиваю
_________________
Будут предложения - присылайте на расчетный счет :)
    Добавлено: 16:55 30-03-2005   
Канал X2: The Threat: «Скрипты - это легко...»
На страницу: Пред.  1, 2, 3, 4, 5, 6, 7, 8  След. | Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Да исправьте ж наконец правильные каналы на соответствующие!! (потребовала SunnyGale)

  » Скрипты - это легко... | страница 3
Каналы: Новости | 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