|
|
|
Канал X3: Reunion »
Модовый и скриптовый отсек X3: Reunion: «Скриптописание - делимся опытом, задаем вопросы» |
|
|
Аркаша Сапожков
1303 EGP
              Рейтинг канала: 3(37) Репутация: 193 Сообщения: 9144 Откуда: Курсы судебной психиатрии. Зарегистрирован: 03.08.2008
 |
|
Cкрытый текст (кликните здесь для просмотра)
Работаем!
|
флуд
добавлено спустя 6 минут:
Пробую...
_________________ Занавес! ;)
Последний раз редактировалось: Аркаша Сапожков (13:17 06-05-2009), всего редактировалось 2 раз(а) |
|
|
RangerMakar
444 EGP
   Рейтинг канала: 7(633) Репутация: 100 Сообщения: 821 Откуда: Самара Зарегистрирован: 12.01.2008
 |
|
Сапожковъ : |
Работаем!
|
Погодь. То что я в прошлом посте написал про настройки в ресурсном файле - их самостоятельно не надо добавлять. Я сам все добавлю. Тебе надо будет только менять числа в тех настройках. И эти настройки заработают только когда я скрипты поменяю.
Измененные скрипты вместе с ресурсными файлами выложу сюда вечером.
---
И вообще-то, в самом деле, здесь это все-таки не по теме...
Поэтому выложу вот сюда:
К скриптерам просьба
Последний раз редактировалось: RangerMakar (14:43 06-05-2009), всего редактировалось 1 раз |
|
|
Ander_Donetsk
100 EGP
 Рейтинг канала: 5(122) Репутация: 27 Сообщения: 256 Откуда: Украина, г. Донецк Зарегистрирован: 14.10.2007
 |
|
RangerMakar : |
Если глобально запускается скрипт. А затем делается попытка еще раз запустить глобально скрипт с таким же именем. Что произойдет при этом?
|
у меня отрабатывался дубликат скрипта, причем для созданных клонов объектов проверялись условия скрипта как для родных. т.е. условие запуска вызываемого скрипта в глобальном при достижении объектной точки кораблем не считалось выполненным до тех пор, пока и клон не выполнял условия запуска... - вот только не определил, какой именно корабль ставил флаг выполненного условия - клон или оригинал..
_________________ Верните космических мух в Х4 Фондюшницу!! |
|
|
RangerMakar
444 EGP
   Рейтинг канала: 7(633) Репутация: 100 Сообщения: 821 Откуда: Самара Зарегистрирован: 12.01.2008
 |
|
Патч на "Bank Account 2.2.0" положил здесь.
Ander_Donetsk : |
у меня отрабатывался дубликат скрипта, причем для созданных клонов объектов проверялись условия скрипта как для родных. т.е. условие запуска вызываемого скрипта в глобальном при достижении объектной точки кораблем не считалось выполненным до тех пор, пока и клон не выполнял условия запуска... - вот только не определил, какой именно корабль ставил флаг выполненного условия - клон или оригинал..
|
Спасибо. Написал только ты очень уж замудрено.
(Я хотел выяснить - можно ли глобально запустить несколько копий одного и того же скрипта. Ответ - можно.)
|
|
|
p2w
145 EGP
  Рейтинг канала: 1(2) Репутация: 47 Сообщения: 328 Откуда: Ростов - на - Дону Зарегистрирован: 08.12.2008
 |
|
Вопрос к специалистам.
Есть мод с новым корабликом, в TShips он прописан в самом низу, скажем в строке 400, теперь этот кораблик необходимо добавить в другой TShips у которого 450 строк. Добавляем вниз списка и теперь наш кораблик прописан в 451 строке нового TShips.
Вопрос - как "объяснить" установочному скрипту, что адрес в TShips уже не тот?
|
|
|
Ander_Donetsk
100 EGP
 Рейтинг канала: 5(122) Репутация: 27 Сообщения: 256 Откуда: Украина, г. Донецк Зарегистрирован: 14.10.2007
 |
|
p2w : |
Вопрос - как "объяснить" установочному скрипту, что адрес в TShips уже не тот?
|
да фиг его знает, не мог я добавить новый кораблик просто в cat\dat таким образом, чтобы можно было подкинуть в игру простым увеличением номера cat\dat-файла на единичку. приходится ставить новый кораблик через Plugin Manager - эта цобака знает как сделать такую фичу, но как этот плугин обрабатывает последний игровой TShips и правильно раскладывает адреса, мне не известно до сих пор .
_________________ Верните космических мух в Х4 Фондюшницу!! |
|
|
p2w
145 EGP
  Рейтинг канала: 1(2) Репутация: 47 Сообщения: 328 Откуда: Ростов - на - Дону Зарегистрирован: 08.12.2008
 |
|
Ander_Donetsk : |
p2w : |
Вопрос - как "объяснить" установочному скрипту, что адрес в TShips уже не тот?
|
да фиг его знает, не мог я добавить новый кораблик просто в cat\dat таким образом, чтобы можно было подкинуть в игру простым увеличением номера cat\dat-файла на единичку. приходится ставить новый кораблик через Plugin Manager - эта цобака знает как сделать такую фичу, но как этот плугин обрабатывает последний игровой TShips и правильно раскладывает адреса, мне не известно до сих пор .
|
Получается, что добавление корабля на верфь сильно отличается от добавления верфи в сектор?
В установочном скрипте верфи есть чёткое указание строки в TFactories, где зта самая верфь прописана. Изменяю это число на то, что получилось в новом TFactories и всё становиться на свои места.
Я думал, что и с тшипс тоже самое...
|
|
|
RangerMakar
444 EGP
   Рейтинг канала: 7(633) Репутация: 100 Сообщения: 821 Откуда: Самара Зарегистрирован: 12.01.2008
 |
|
p2w : |
Получается, что добавление корабля на верфь сильно отличается от добавления верфи в сектор?
В установочном скрипте верфи есть чёткое указание строки в TFactories, где зта самая верфь прописана. Изменяю это число на ...
|
С TShips аналогично должно быть - поменяй в скрипте subtype на новое значение. Если в более поздник cat-ах твой новый subtype не занят, то всё нормально должно быть.
|
|
|
sonic MK
56 EGP
 Рейтинг канала: 1(2) Репутация: 4 Сообщения: 66 Откуда: Донецк Зарегистрирован: 06.10.2007
 |
|
Доброй ночи. Загорелся идеей захватить всю вселенную X3 Аргоном
и Землянами поставил X3-2.02;XTM-074;Owned ship mod;Race Raspone Flets;Захват сектора;Ремонт обломков.
подскажите пожалуста:
1.как полностью убрать респавн хааков в секторах которые они захватили и в их родных секторах, чтоб их(родные сектора) можно было захватывать и они там не спавнились(после захвата).
2.иногда при уничтожении Ксенона или Хааков в секторах Землян репа слетает и очень сильно,в чём фича?
3.как можно заставить рассу использовать корабль, который продаётся у этой расы на верфи?
|
|
|
Alexmv
55 EGP
 Рейтинг канала: 1(5) Репутация: 2 Сообщения: 72
Зарегистрирован: 09.07.2009
 |
|
Помогите плз. хочу сделать скрипт зашиты дронами от ракет - есле в корабль, запустивший дроны летит ракета способная нанести серьёзный урон (больше 50% например), то дроны стреляют по ней как по приоритетной цели, а если ракета близко к цели, то дроны таранят ракету. Как сделать, подскажите...
|
|
|
RangerMakar
444 EGP
   Рейтинг канала: 7(633) Репутация: 100 Сообщения: 821 Откуда: Самара Зарегистрирован: 12.01.2008
 |
|
Alexmv : |
Помогите плз. хочу сделать скрипт зашиты дронами от ракет ... Как сделать, подскажите...
|
Я боевые скрипты не писал. Могу только предположить как надо действовать и предложить какие команды и в какой примерно последовательности можно использовать.
Сейчас до дома доберусь и отпишу сюда.
Последний раз редактировалось: RangerMakar (01:47 11-07-2009), всего редактировалось 2 раз(а) |
|
|
Alexmv
55 EGP
 Рейтинг канала: 1(5) Репутация: 2 Сообщения: 72
Зарегистрирован: 09.07.2009
 |
|
RangerMakar, заранее спасибо. И ещё обьясните, как редактировать разговор персонажей, не сами реплики в файле перевода, а последовательность их. И можно ли развернуть окно разговора на весь екран и поставить бекграунд - хочу добавить квесты как в КР
Последний раз редактировалось: Alexmv (17:07 10-07-2009), всего редактировалось 1 раз |
|
|
RangerMakar
444 EGP
   Рейтинг канала: 7(633) Репутация: 100 Сообщения: 821 Откуда: Самара Зарегистрирован: 12.01.2008
 |
|
Скрипт или часть скрипта атаки дрона на ракету, я думаю, будет выглядеть примерно так:
Cкрытый текст (кликните здесь для просмотра)
Код: |
* Скрипт атаки на вражескую ракету.
* Входные данные скрипта:
* $ship - ссылка на защищаемый корабль.
* $drone - Дрон, который защищает от ракет.
* Выбираем ближайшую ракету, запущенную по защищаемому корабю.
$missile = $ship -> find nearest missile aiming to me
if not $missile
return [TRUE]
end
* Исследуем парметры ракеты:
* Тип ракеты.
$missile.type = $missile -> get ware type code of object
* Максимально возможный ущерб, который может нанести ракета.
$missile.damage = get missile max damage of $missile.type
* Возможно, дальность полета ракеты.
$missile.damage.range = get range of missile type $missile.type
* Возможно, радиус поражения ракеты.
$missile.range = get missile range of $missile.type
* Исследуем обстановку:
* Расстояние от ракеты до защищаемого корабля:
$missile.distance = get distance between $ship and $missile
* Расстояние от ракеты до Дрона:
$missile.distance = get distance between $drone and $missile
* Выполняем анализ выше определенных параметров и принимаем решение: атаковать ее или нет.
* ...
* $doAttack = [FALSE]
$doAttack = [TRUE]
if not $doAttack
return [TRUE]
end
* Если решили атаковать:
* Выполняем 3 итерации с наведением на цель и стрельбой.
$i = 0
while $i < 3
inc $i =
if $i == 0
* В первой итерации выводим Дрона в позицию пригодную для ведения огня по цели.
* На эту операцию выделяем 5 секунд.
@ $res = $drone -> attack run on target $missile : timeout= 5000 ms
else
* Во второй и третьей итерациях выполняем донаводку на цель.
* На это действие выделяем 1 секунду.
@ $res = $drone -> attack run on target $missile : timeout= 1000 ms
end
if $res == FLRET_FIREFREE
* Ракета в зоне поражения.
* Выполняем 3 залпа по цели.
skip if not $missile -> exists
= $drone -> fire lasers on target $missile using turret 0
skip if not $missile -> exists
= $drone -> fire lasers on target $missile using turret 0
skip if not $missile -> exists
= $drone -> fire lasers on target $missile using turret 0
end
* Если ракета не существует, то прекращаем атаку.
skip if $missile -> exists
break
end
if $missile -> exists
return [FALSE]
else
return [TRUE]
end
return null
|
|
Возможно, 3 залпа в одной итерации, которые идут один за другим - это лишнее.
Еще в скрипте нужно учитывать радиус поражения ракеты при ее взрыве и расстояние от нее до защищаемого корабля. Например, если имеем радиус, примерно равный 1000 - 1500 метров (это Рыба-Молот), то нельзя атаковать, если дальность от неё до корабля меньше этого расстояния.
Время наведения Дрона на ракету, наверное, есть смысл задавать не жестко, а вычислять исходя из типа ракеты и расстояния от нее до Дрона.
Скорее всего не следует атаковать ракеты, которые не имеют самонаведения.
---
Что касается общения персонажей с Игроком, здесь лучше взять "Справочник команд" и посмотреть там в разделе "Аудио команды". Еще поищи в справочнике про работу с ББС движком - это для написания квеста. По идее, квесты можно и в виде глобальных скриптов реализовать.
---
Для предоставления Игроку вариантов выбора пользуйся командой:
send incoming question <Var/String> to player: callback=<Script Name>
|
|
|
Xenon J
1007 EGP
       Рейтинг канала: 11(1675) Репутация: 160 Сообщения: 3390 Откуда: Ксенонский сектор 472 Зарегистрирован: 30.03.2007
 |
|
Сапожковъ : |
Ссылочку бы...
|
Да вот он, никуда не прячется.
http://www.elite-games.ru/conference/viewtopic.php?t=44059
Сапожковъ : |
Xenon J! Ты скажи прямо - в коде что-то не то?
|
А ты для сравнения глянь какой-нить оригинальный скрипт
И в игровом редакторе такой скрипт написать проще, потому что там уже есть образец, называется galaxy.Example.initplayership. Его можно скопировать, поставить вместо Example имя твоей карты и внести изменить стартовый корабль и сектор, а все остальное удалить.
_________________ Последний раз редактировалось: Xenon J (23:23 23-03-2023), всего редактировалось 16 раз
Последний раз редактировалось: Xenon J (15:15 26-08-2009), всего редактировалось 1 раз |
|
|
Аркаша Сапожков
1303 EGP
              Рейтинг канала: 3(37) Репутация: 193 Сообщения: 9144 Откуда: Курсы судебной психиатрии. Зарегистрирован: 03.08.2008
 |
|
Cкрытый текст (кликните здесь для просмотра)
Код: |
$plship = create ship: type= UNDEFINED_WARE_MainType_7_SubType_261 owner= Player addto= $strt.sctr x= $X y= $Y z= $Z
= $plship -> call script "plugin.XTM.Lib.EquipShip.Full" :
= $plship -> install 1 units of Singularity Engine Time Accelerator_SS_WARE_TECH231_TWareT |
|
Да, в сравнении с фронтпейджем... Корабль в этом коде я так понимаю
Код: |
UNDEFINED_WARE_MainType_7_SubType_261 |
Где бы код скафандра надыбать?
_________________ Занавес! ;) |
|
|
Xenon J
1007 EGP
       Рейтинг канала: 11(1675) Репутация: 160 Сообщения: 3390 Откуда: Ксенонский сектор 472 Зарегистрирован: 30.03.2007
 |
|
Сапожковъ : |
Где бы код скафандра надыбать?
|
Во внешнем редакторе он будет выглядеть примерно так: Space Suit_SS_SH_ASTRON_TShips
_________________ Последний раз редактировалось: Xenon J (23:23 23-03-2023), всего редактировалось 16 раз |
|
|
Аркаша Сапожков
1303 EGP
              Рейтинг канала: 3(37) Репутация: 193 Сообщения: 9144 Откуда: Курсы судебной психиатрии. Зарегистрирован: 03.08.2008
 |
|
Cкрытый текст (кликните здесь для просмотра)
Код: |
set global variable: name= "XTM.CUSTOMSTART.CODE" value= 6
$null = null
$strt.sctr = find a random sector: startsector= x= 13, y= 3 , jumps= 0 , owner= Terran
* Spawn Player Ship
$X = = random value from 25000 to 50000 - 1
$rand = = random value from 0 to 2 - 1
skip if $rand == 1
$X = 0 - $X
$Y = = random value from 25000 to 50000 - 1
$rand = = random value from 0 to 2 - 1
skip if $rand == 1
$Y = 0 - $Y
$Z = = random value from 25000 to 50000 - 1
$rand = = random value from 0 to 2 - 1
skip if $rand == 1
$Z = 0 - $Z
$plship = create ship: type= Advanced Spacesuit_SS_SH_ADV_ASTRON_TShips owner= Player addto= $strt.sctr x= $X y= $Y z= $Z
= $plship -> call script "plugin.XTM.Lib.EquipShip.Full" :
= $plship -> install 1 units of Singularity Engine Time Accelerator_SS_WARE_TECH231_TWareT
return $plship
* Set notoriety
set notoriety of Argon -> Player to 1000 points
set notoriety of Boron -> Player to -42 points
set notoriety of Paranid -> Player to -3333 points
set notoriety of Split -> Player to -2290 points
set notoriety of Teladi -> Player to -820 points
set notoriety of Yaki -> Player to -820 points
set notoriety of Terran -> Player to 11821 points
set notoriety of Pirates -> Player to -10000 points
$HereticsEnd = get sector from universe index: x= 13 , y= 4
$HereticsEnd -> set owner race to Terran
START $null -> call script "plugin.XTM.Start.51.Cryptofloat" : arg0=$plship,
return $plship |
|
Ни рожна не получается! Может в синтаксисе напутал?
_________________ Занавес! ;)
Последний раз редактировалось: Аркаша Сапожков (15:48 26-08-2009), всего редактировалось 1 раз |
|
|
Xenon J
1007 EGP
       Рейтинг канала: 11(1675) Репутация: 160 Сообщения: 3390 Откуда: Ксенонский сектор 472 Зарегистрирован: 30.03.2007
 |
|
Сапожковъ : |
Ни рожна не получается! Может в синтаксисе напутал?
|
Может и напутал. На первый взгляд ничего смертельного не вижу. Попробуй запустить скрипт в игре и посмотреть, создастся корабли или нет. Проверь также еще раз название скрипта и карты.
Сапожковъ : |
return $plship
|
Кстати, это команда завершения скрипта, после нее ничего выполняться не будет.
Сапожковъ : |
$strt.sctr = find a random sector: startsector= x= 13, y= 3 , jumps= 0 , owner= Terran
|
Для определения стартового сектора лучше воспользоваться командой get sector from universe index.
добавлено спустя 1 минуту:
Сапожковъ : |
Берданку скафандру дать нельзя никак?
|
Можно, но это уже в моддинг. И после нового вылезания она исчезнет.
_________________ Последний раз редактировалось: Xenon J (23:23 23-03-2023), всего редактировалось 16 раз
Последний раз редактировалось: Xenon J (21:31 26-08-2009), всего редактировалось 1 раз |
|
|
Xenon J
1007 EGP
       Рейтинг канала: 11(1675) Репутация: 160 Сообщения: 3390 Откуда: Ксенонский сектор 472 Зарегистрирован: 30.03.2007
 |
|
Dimoun : |
Я загорелся идеей перевести Advanced Jump Drive из категории товара в категорию апгрейдов, но так и не смог.
Подскажите, как это делается.
|
Если не ошибаюсь, все апргрейды (то есть какой товар им является) прописаны в обже. А именно значение переменной global.ga_WareEquipmentFlags, определяемое в функции function _Init().
А вот еще, есть в TWareT готовые шаблоны товаров-апгрейдов (у них идентификатор типа SS_WARE_SW_NEW4), можешь им присвоить нужное название, описание и прочие свойства. Но они используются во многих скриптах, поэтому внимательно следи, какой именнно брать.
На худой конец можно изменить низвание уже существующих, но не используемых апгрейдов типа Системы анализа движения.
_________________ Последний раз редактировалось: Xenon J (23:23 23-03-2023), всего редактировалось 16 раз
Последний раз редактировалось: Xenon J (20:03 01-11-2009), всего редактировалось 1 раз |
|
|
dominus
55 EGP
 Репутация: 2 Сообщения: 70 Откуда: Киев Зарегистрирован: 02.12.2007
 |
|
Всем привет!
Ткните если было или в фак
Как и где посмотреть координаты секторов? Пытаюсь написать в игре скрипт по созданию пары врат...
Если надо пост потом потру
_________________ Не летайте дети в Хаафрику гулять.Там корветы и эсминцы,злые авианосцы будут вас кусать,бить и нарезать. |
|
|
|
|
|
Канал X3: Reunion ->
Модовый и скриптовый отсек X3: Reunion: «Скриптописание - делимся опытом, задаем вопросы» |
|