ВНИМАНИЕ! Наша конференция посвящена космической тематике и компьютерным играм. Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!
|
» Скрипты которые - ... от пилота Andrei [<>Ace] | страница 8 |
|
|
|
Канал X3: Reunion »
Модовый и скриптовый отсек X3: Reunion: «Скрипты которые - ... от пилота Andrei [<>Ace]» |
|
|
ULiX
320 EGP
      Рейтинг канала: 7(691) Репутация: 146 Сообщения: 573 Откуда: Комсомольск на-Амуре Зарегистрирован: 12.07.2005
 |
|
Pyromancer : |
Не все, в том же Xtended так ты не найдёшь драконов и жуков а также соненские корабли
|
Читай внимательней:
ULiX : |
Исключение:
Если мод добавит новую расу, то поиск по новой расе вестись не будет.
|
Это как раз к этому моменту и относится.
Для модов вводящих новую расу придётся немного править скрипты, добавлением всего четырёх строк для каждой расы. По две строки в каждый шаг поиска.
Можно, конечно, унифицировать скрипт и сразу учесть все из возможных рас. Но этот вопрос оставляю на попечение автору скриптов.
Pyromancer : |
И я раньше успел, см постом выше
|
Молодец, извини, что не заметил. Судя по всему мы использовали один и тот же алгоритм, только у меня не добавляет новые типы, а просто переписывает массив типов согласно текущему сканированию. Плюс я добавил сортировку по типу. Можно, конечно, сделать двойную сортировку: сначала по рассе владельца и внутри расы сортировать по типу, как это было сделано до внесения изменений.
Будем считать это твоим домашним заданием.
Я тоже в своё время (ещё для X2) начинал скриптование с расмотрения и правки чужих или стандартных скриптов. Возможно, в тебе вырастет новый скриптёр со свежими идеями. Я по началу думал, что уже ничего нового создать не получится, среди всеобилия числа различных скриптов других пилотов, но ухватился за одну "маленькую" идейку удобного интерфеса для задания параметров скриптов. Самым большим недостатком большенсва серьёзных скриптов пилотов, добавляющих команды в консолях кораблей и станций, я посчитал присутствие на столе распечатки с информацией о вводимых аргументах. Вот пример для настройки скриптов из бонус пака:
Модуль снабжения MK-2
Использование (планирование маршрута):
Выдержка из описания : |
Ввод - {0} {1} {X}
Пилот добавляет информацию к названию корабля. (X = 0 информационный сервис дезактивирован; X = 1 - 6 вариант представления информации)
Ввод - {0} {2} {X}
Пилот записывает номер своего корабля для информационного сервиса.
Ввод - {0} {3} {X}
Пилот записывает номер своей станции для информационного сервиса.
|
Вроде бы как скрипт довольно сильный, но без настольной книги-справочника использовать этот скрипт нереально.
Сначала запускаем команду из консоли.
И ничего не происходит. Корабль ждёт какого-то внешнего снабжения.
Мне и в голову не приходит, что после этого в слотах корабля появляются новые команды, для настроки дальнейших действий. И пока описалово не почитаешь, ни за что не догадаешься. А чтоб ещё и правильно настроить действия корабля, тоже обязательно должна присутствовать книга-справочник.
Все эти махинации меня не устраивали, и я создал демонстрационный вариант интерфейса, ака "Дроид". Это и была моя "маленькая идейка".
Первоначально он был создан для развития тенденций скриптописания в этом направлении, идею поддержал, развил и применил, судя по всему, только Andrei [<>Ace]. Пилотам использование таких скриптов понравилось и пришлось развить "маленькую идею" до "большого проекта". Теперь дроид стал не демонстрационным интерфейсом, а уникальным, многофункциональным, удобным средством разнообразия глухой космической жизни. Развитие дроида не прекращается и до сих пор. Всё больше новых функций, всё больший интерес к нему.
Сейчас у меня паралельно дроиду возникает ещё одна идея. Но для её реализации мне нужен человек, создающий интерфейсы, как к примеру Andrei [<>Ace].
ИТАК. Проект.
Вступление.
Вместо вступленния отправлю вас перичитать этот пост с момента, где я высказывал своё недовольство консольными скриптами.
Цель.
Создание удобного информативного интерфейса для задания параметров некоторых офицальных скриптов из BonusPak.
1. Порядок работы.
1.1. Расмотрение скриптов нуждающихся во вводе данных заранее не известных игроку без просмотра документации к сриптам.
1.2. Создание плана действий для каждого конкретного скрипта. А также планирование предоставляемой в интерфейсе информации для пилота.
Требования к информации:
Предоставляемая информация должна быть достаточной и полной для принятия решения пилотом без отвлечения от меню интерфейса.
Т.е., если выводится информация, к примеру, о фабриках назначения, в которых можно приобрести определенный товар, то также для пилота должна быть предоставлена дополнительная сопровождающая информация об этих фабриках. В нашем примере, это цена на целевой товар, и дистанция от объекта до фабрики. В этом случае пилот однозначно может выбрать цель из списка информации.
Для нашего примера можно ввести и сервисную информацию, которую пилот может оценить исключительно просмотрев сектор. Это к примеру, сколько времени остаётся до момента, когда конкурент (если таковой имеется) достигнет целевой фабрики. (дистанция от ближайшего к фабрике конкурента до самой фабрики поделённой на максимальную скорость конкурента)
1.3. Написание скриптов интерфейса управления конкретными командами.
Желательным условием является отсутствие в пакете интерфейса скриптов в одну две строчки. А то видел я у некоторых скрипты типо:
Код: |
001 play sound $arg
002 return null
|
Вынесение функций в библиотечные скрипты желательно делать только если функция вызывается неоднократно из разных скриптов.
Требования к внутренним процедурам gosub:
Вызываемые процедуры не должны принимать решения закрытия скрипта.
Неправильный пример : |
Код: |
$Object = $Station
gosub ObjectExists
...
...
return null
ObjectExists:
skip if $Object -> exists
return null
endsub |
|
Правильный пример : |
Код: |
$Object = $Station
gosub ObjectExists
skip if $ObjectExists
return null
...
...
return null
ObjectExists:
$ObjectExists = [TRUE]
skip if $Object -> exists
$ObjectExists = [FALSE]
endsub |
|
Это только демонстрация распространенной ошибки скриптёров. Блок проверки, конечночно, у пилотов не такой простой, это я для упрощения понимания.
Также вызываемая процедура gosub не должна иметь безусловных переходов вне блока:
Label:
endsub
Т.е. нельзя переходить по метке, находящейся вне этого блока командой goto label
Эти критерии нужно соблюдать из этических соображений программирования. Не забываем об устройстве стековой системы передачи параметров. Можно сильно захломить память, и, как следствие, увеличить размер сохранок не соблюдая этих этических правил.
1.4. Подмена вызываемых скриптов закрепленных за консольными командами новыми скриптами интерфейса, являющимися промежуточным звеном между не информативной консолью и пилотом.
Это действие выполняется командами:
global script map: set: key= $command , class= $Calss , race= Player , script= "New.interface.start" , prio= 0
global script map: ignore: key= $command , class= $IgnoreClass , race= Player
set script command upgrade: command= $command upgrade= $upgrade
Согласно прописаным в setup скриптах для данной команды.
И уже интерфейс будет вызывать замененый обработчик согласно выбранным в интерфейсе параметрам.
1.5. Стадия тестирования интерфейса.
2. Поддержка изменений в интерфейсе в случае выхода обновлений скриптов, если есть необходимость в этих изменениях.
Изменения можно также вносить исходя из пожеланий пилотов.
Вот вроде и весь план нового проекта.
to Pyromancer
Не хочешь заняться созданием таких интерфейсов?
Идея ещё никем не занята, и скрипты будут востребованы.
Если будут вопросы могу куррировать твои начинания.
А то что мы только с Andrei [<>Ace] интерфейсами занимаемся, нужно заманивать и других скриптёров. А начинающие скриптёры, самые активные скриптёры, полные интузиазма.
_________________ Новое ещё не значит лучшее |
|
|
Andrei [<>Ace]
303 EGP
   Рейтинг канала: 6(416) Репутация: 108 Сообщения: 766 Откуда: Беларусь, Салiгорск Зарегистрирован: 29.03.2006
 |
|
NightxXxLorD : |
Хотел спрасить - не замечали несовместимости своих скриптов с другими?
|
Несовместимость с другими скриптами? - может быть, скрипов ведь больше чем предоставленных Егософт шаблонов команд/товаров. Есть таблица совместимости для скриптов из БД Elite-Games тут (обновить надобно )
Похожая есть для забугорных. Смотри совмещай.
ULiX : |
мне нужен человек, создающий интерфейсы
|
Извините, но править чужие скрипты, после нескольких попыток я сразу отказался. Причины разные. Основные - Нужно каждый раз разбираться в стили написания каждого автора; После начала каждой правки возникает конфликт взглядов на идею, а идея чужая ; И вообще легче создать заново, чем исправить.
Последний раз редактировалось: Andrei [<>Ace] (13:44 28-08-2007), всего редактировалось 1 раз |
|
|
ULiX
320 EGP
      Рейтинг канала: 7(691) Репутация: 146 Сообщения: 573 Откуда: Комсомольск на-Амуре Зарегистрирован: 12.07.2005
 |
|
Andrei [<>Ace] : |
Извините, но править чужие скрипты, после нескольких попытак я сразу отказался. Причины разные. Основные - Нужно каждый раз разбираться в стили написания каждого автора; После начала каждой правки возникает конфликт взглядов на идею, а идея чужая ; И вообще легче создать заново, чем исправить.
|
Не нужно ничего править. Интерфейс будет лиш связующим звеном, между пилотом и консольным скриптом.
Я к примеру в проекте дроида не исправлял стандартных торговых скриптов. Но NPC с установленным дроидом используют эти скрипты более разумнно. Также можно внедряться во многие процессы, не меняя задумок автора.
Я знаю, как всё это сделать, но у меня ещё не завершенный до конца дроид. Если кто-то изъявит желание, я могу выступить в роли курратора, информационно поддерживая на всех шагах проекта.
Мне только облом текстовку делать и оформлением заниматься, а техническую часть я могу даже сам выполнить, и шаблон заготовить.
Конечно, если никто не возьмется, то снова всё ляжет на мои плечи, как собственно и дроид. В своё время я и для него искал соразработчиков, но никто не откликнулся.
Теперь я хочу новый проект полностью передать другому автору.
_________________ Новое ещё не значит лучшее |
|
|
Pyromancer
100 EGP
 Рейтинг канала: 4(99) Репутация: 21 Сообщения: 801 Откуда: lat=34.7&lon=33. 1 Зарегистрирован: 05.08.2007
 |
|
ULiX : |
Исключение:
Если мод добавит новую расу, то поиск по новой расе вестись не будет.
Это как раз к этому моменту и относится.
Для модов вводящих новую расу придётся немного править скрипты, добавлением всего четырёх строк для каждой расы. По две строки в каждый шаг поиска.
|
Всё-таки стоит включить все стандартные расы, в т.ч. дружественные, враждебные, неизвестные и даже Race1, Race2, Race3. Совсем уж новую расу вряд-ли какой-нибудь мод добавит, скорее использует одну из этих.
ULiX : |
to Pyromancer
Не хочешь заняться созданием таких интерфейсов?
Идея ещё никем не занята, и скрипты будут востребованы.
|
Идея интересная, но заняться я этим смогу никак не раньше чем месяца через полтора, у меня переезд в другую страну намечается
|
|
|
Andrei [<>Ace]
303 EGP
   Рейтинг канала: 6(416) Репутация: 108 Сообщения: 766 Откуда: Беларусь, Салiгорск Зарегистрирован: 29.03.2006
 |
|
Pyromancer : |
Я твой скрипт переделал слегка,
|
ULiX : |
Выкладываю немного (если так можно сказать) подправленный алгорит поиска кораблей по вселенной.
|
Спасибо за поддержку скрипта.
Вот мое обновление. У вас не подсматривал - честно
Но рассы некоторые добавил = Pyromancer
«Find Ships in Galaxy»
s0nicblast : |
А можно скрипт поиска кораблей дописать для XTended ?
|
Проверь .
|
|
|
Lit
|
|
У меня досадный баг какойто со скриптом Best routes for ship
После установки скрипт все отлично работает. Но стоит мне пристыковаться к Штабквартире Терракорп и закупить там батареек, скрипт вместо сообщения с маршрутами начинает присылать пустое сообщение с одной только кнопкой ОК. При вызове команды с других моих кораблей, тоже приходят пустые сообщения.
А вот в чем дело, видимо невнимательно прочитал, спасибо за поснение
|
|
|
Andrei [<>Ace]
303 EGP
   Рейтинг канала: 6(416) Репутация: 108 Сообщения: 766 Откуда: Беларусь, Салiгорск Зарегистрирован: 29.03.2006
 |
|
Lit : |
Но стоит мне пристыковаться к Штабквартире Терракорп и закупить там батареек,
|
Это не баг. Для работы скрипта "достаточно пустой трюм" одно из условий (смотри Readme_rus.doc к скрипту). Поэтому маршрут, после затаривания, уже не подтверждается.
|
|
|
Andrei [<>Ace]
303 EGP
   Рейтинг канала: 6(416) Репутация: 108 Сообщения: 766 Откуда: Беларусь, Салiгорск Зарегистрирован: 29.03.2006
 |
|
F I R S T : |
Вот и заветная просьба - хотелось бы, чтоб кто-нибудь из скриптописателей написал такой скрипт(ы): ситуация когда корабли игрока, атакуя станцию, бьются об нее и ничего с этим не поделаешь не устраивает никак. В итоге, улетает целым только игрок, да и станция вскоре восстановит свои щиты.
|
Вот тест-версия скрипта - вполне рабочая .
Для установки:
1. Сделайте копию файла !fight.attack.object.pck из папки "scripts" (для отката, если скрипт не понравится).
2. Файлы из архива (смотреть ниже) забросить в папку "scripts" игры Х3.
Ace_patch.rar |
Описание: |
|
Имя файла: |
Ace_patch.rar |
Размер файла: |
6.15 KB |
Скачано: |
480 раз(а) |
|
|
|
Andrei [<>Ace]
303 EGP
   Рейтинг канала: 6(416) Репутация: 108 Сообщения: 766 Откуда: Беларусь, Салiгорск Зарегистрирован: 29.03.2006
 |
|
Еще одна вариация на тему: "Атакуем станции без ущерба для себя "
1. Скрипт немного переделан.
2. Разделил команды кораблям с головными орудиями и без них.
Для установки:
1. Сделайте копию файла !fight.attack.object.pck из папки "scripts" (для отката, если скрипт не понравится).
2. Файлы из архива (смотреть ниже) забросить в папку "scripts" игры Х3.
Ace_patch.rar |
Описание: |
|
Имя файла: |
Ace_patch.rar |
Размер файла: |
6.55 KB |
Скачано: |
449 раз(а) |
|
|
|
|
|
|
Канал X3: Reunion ->
Модовый и скриптовый отсек X3: Reunion: «Скрипты которые - ... от пилота Andrei [<>Ace]» |
|
К списку каналов | Наверх страницы |
Цитата не в тему: Ты неправильно к модераторам подходишь, не с той стороны. Подкрался сзади, выскочил и такое вот предлагаешь. (Fry)
|
» Скрипты которые - ... от пилота Andrei [<>Ace] | страница 8 |
|