ВНИМАНИЕ! Наша конференция посвящена космической тематике и компьютерным играм. Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!
|
» [СКРИПТЫ] Вторжение | страница 1 |
|
Страница 1 из 1 |
|
|
|
Канал X2: The Threat: «[СКРИПТЫ] Вторжение» |
|
|
Zeron-MK7 343 EGP
Рейтинг канала: 8(998) Репутация: 46 Сообщения: 574 Откуда: Latvia Зарегистрирован: 14.09.2008 |
|
Скрипты генерирует в случайных секторов случайную групу кораблей.
Пираты:
======
Каждые 10 минут в случайный сектор генерирует случайную группу кораблей из 1 - 5 кораблей M3, M4, M5, TS класса.
Каждые 18 минут в случайном Пиратском секторе генерируется случайная группа из 1 - 5 кораблей M3, M4, M5, TS класса - и они летят из Пиратского сектора в случайный сектор через врата.
Ксеноны:
=======
Каждые 15 минут в случайный сектор генерирует случайную группу кораблей из 1 - 3 кораблей M3, M4, M5 класса.
Каждые 20 минут в случайном Ксенонском секторе генерируется случайная группа из 1 - 3 кораблей M3, M4, M5 класса - и они летят из Ксенонского сектора в случайный сектор через врата.
Хааки:
=======
Каждый 1 час в случайном секторе генерируется случайный кластер корабля Хааков.
Важно - скрипты будут работать только в том случае, если в вашей карте галактики есть сектор в координатах: x = 1, y = 3 (местоположение сектора Аргон Прайм).
Установка:
В архиве есть папки - Xenon, Pirates, Khaak - вы можете выбрать, какие вражеские вторжения вы хотите больше или скопировать все - просто скопируйте необходимые скрипты из папки в каталог игры в папку scripts.
Очень важно - на всякий случай, прежде чем устанавливать скрипты, сделайте резервную копию вашей сохраненной игры (если у вас есть такая).
Если вы сохраните игру с установленными скриптами, вы больше не сможете удалить скрипты из вашей сохраненной игры - даже если вы удаляете скрипты из игры - ваша сохраненная игра после времени будет зависает из-за отсутствии скриптов.
Invasion V1.rar |
Описание: |
В архиве есть папки - Xenon, Pirates, Khaak |
|
Имя файла: |
Invasion V1.rar |
Размер файла: |
16.07 KB |
Скачано: |
557 раз(а) |
_________________ Веб-сайт http://thexgalaxy.ucoz.com/
Последний раз редактировалось: Zeron-MK7 (14:56 03-12-2017), всего редактировалось 1 раз |
|
|
Non 802 EGP
Рейтинг канала: 6(362) Репутация: 239 Сообщения: 801
Зарегистрирован: 27.06.2006 |
|
Поглядел я твои скрипты. Напомнило мне мои попытки писать скрипты в далёком 2006-ом. Намудрил короче.
Отвязываемся от x = 1, y = 3
Самый простой вариант (кликните здесь для просмотра)
Код: |
while 1
$sec = [PLAYERSHIP]->get sector
$sector = find a random sector: startsector=$sec, jumps=null, owner=null
$race = $sector -> get owner race
if $race != {Pirates} AND $race != {Khaak} AND $race != {Unknown} AND $race != {Xenon}
break
end
end
... $sector ... |
|
Намудрение (кликните здесь для просмотра)
Маленький скрипт, получающий все доступные на текущей карте сектора в массив и сохраняющий этот массив для последующего использования. Сэкономит игре ресурсов.
Получаем все сектора на карте (кликните здесь для просмотра)
Код: |
$all.sectors = get global variable: name= 'all.sectors'
if not $all.sectors
$all.sectors = array alloc: size=0
$x = 20
while $x
dec $x =
$y = 15
while $y
dec $y =
$sector = get sector from universe index: x=$x, y=$y
if $sector
append $sector to array $all.sectors
end
end
end
set global variable: name= 'all.sectors' value= $all.sectors
end
return $all.sectors |
|
Теперь можно запустить этот скрипт из другого скрипта, чтобы получить в любой нужный момент все сектора на текущей карте.
Выбираем случайный сектор (кликните здесь для просмотра)
Код: |
$all.sectors = [THIS] -> call script 'non.get.all.sectors':
$all.sectors.size = size of array $all.sectors
while 1
$random = random value from zero to $all.sectors.size - 1
$sector = $all.sectors[$random]
$race = $sector -> get owner race
if $race != {Pirates} AND $race != {Khaak} AND $race != {Unknown} AND $race != {Xenon}
break
end
end
* Используем случайный не Пиратский, не Хаакский, не Неизвестный и не Ксенонский сектор для своих задумок. |
|
|
Генерируем корабли красиво
При генерации нескольких кораблей нужно использовать упрощающие код уловки, мне очень понравился подход, замеченный в скриптах Grey Wolf'a.
Подход (кликните здесь для просмотра)
Код: |
* Создаем два массива для перебора
* Один содержит количество каждого корабля, другой корабли
* Количество кораблей случайно
* М5-ых будет от 1 до 4, M4-ых от 1 до 3, М3-их или 1 или не будет.
$m5c = random value from 2 to 5 - 1
$m4c = random value from 2 to 4 - 1
$m3c = random value from 1 to 2 - 1
$ships.amount = array alloc: size=3
$ships.class = array alloc: size=3
$ships.amount[0] = $m5c
$ships.amount[1] = $m4c
$ships.amount[2] = $m3c
$ships.class[0] = {Xenon N}
$ships.class[1] = {Xenon M}
$ships.class[2] = {Xenon L}
* Перебираем классы кораблей в цикле
$current.class = 3
while $current.class
dec $current.class =
$current.amount = $ships.amount[$current.class]
$current.ship = $ships.class[$current.class]
* Перебираем количество кораблей в цикле, их создастся столько, сколько укажешь вверху
while $current.amount
dec $current.amount =
$x = random value from -40000 to 40000 - 1
$y = random value from -20000 to 20000 - 1
$z = random value from -40000 to 40000 - 1
$ship = create ship: type=$current.ship owner={Xenon} addto=$sector x=$x y=$y z=$z
$ship -> add default items to ship
@ START = $ship -> call script '!fight.invasion' : the sector to invade=$random.sector
end
end |
|
Заботимся о пользователях своих скриптов
Вместо вешающих игру вечных циклов, застревающих в сохранёнках лучше используй AL Engine. Смотри мою болванку.
Самое большое преимущество - можно вырубить в любой момент прямо в игре, если не нравится что происходит. Или если что-то вдруг начало происходить не так как ты задумал.
Так что если быть в меру аккуратным, можно даже тестить на текущей сохранёнке.
Этот скрипт регистрирует другой скрипт как плагин в AL Engine.
al.plugin.khaak.agression (кликните здесь для просмотра)
Код: |
al engine: register script='al.khaak.aggression'
return null |
|
А это другой скрипт, который будет запускаться игрой периодически, как настроишь.
al.khaak.agression (кликните здесь для просмотра)
Код: |
* Попытка получить уже существующие параметры AL плагина по глобальной переменной
$plugin.Vars = get global variable: name=$plugin.ID
if not $plugin.Vars
* Создание массива параметров AL плагина
$plugin.Vars = array alloc: size=2
set global variable: name=$plugin.ID value=$plugin.Vars
* Версия скрипта, как по мне пофиг что ставить
$plugin.Vars[0] = 0
* Запущен ли плагин изначально, или нужно включить его в настройках вручную
$plugin.Vars[1] = [FALSE]
end
if $plugin.Event == 'init' OR $plugin.Event == 'reinit'
* При первом запуске или загрузке игры устанавливает текстовое описание, что будет видно в настройках
$desc = sprintf: pageid=2023 textid=300, null, null, null, null, null
al engine: set plugin $plugin.ID description to $desc
* Устанавливает таймер (как часто будет происходить событие скрипта, например создание вражеских кораблей в случайном секторе)
al engine: set plugin $plugin.ID timer interval to 120 s
else if $plugin.Event == 'isenabled'
* Возвращает статус включен/выключен каждый раз, когда открываются настройки AL плагинов в игре
$isenabled = $plugin.Vars[1]
return $isenabled
else if $plugin.Event == 'start'
* Устанавливает статус "Включено" в параметрах плагина
$plugin.Vars[1] = [TRUE]
else if $plugin.Event == 'stop'
* Устанавливает статус "Выключено" в параметрах плагина
$plugin.Vars[1] = [FALSE]
else if $plugin.Event == 'timer'
* Когда время таймера подходит, проверяет включен ли плагин в настройках, и если включен - запускает твоё событие
$plugin.Enabled = $plugin.Vars[1]
if $plugin.Enabled
* Проверяет время игры
$pltime = playing time
* Каждые полчаса добавляет по 1 единице Хаакской агрессии
$agrlevel = $pltime / 1800 + 50
* Устанавливает агрессию в 100, если получаемое значение больше 99.
skip if $agrlevel < 100
$agrlevel = 100
set Kha'ak aggression level to $agrlevel
else
* Если плагин не включен, устанавливает агрессию в 0 (Хааки перестают прыгать)
set Kha'ak aggression level to 0
end
end
return null |
|
Болванка для желающих как можно быстрее что-то сделать (кликните здесь для просмотра)
Код: |
$plugin.Vars = get global variable: name=$plugin.ID
if not $plugin.Vars
$plugin.Vars = array alloc: size=2
set global variable: name=$plugin.ID value=$plugin.Vars
$plugin.Vars[0] = 0
* Запущен ли плагин изначально, или нужно включить его в настройках вручную
$plugin.Vars[1] = [FALSE]
end
if $plugin.Event == 'init' OR $plugin.Event == 'reinit'
* Где искать текст, который будет показываться в настройках
$desc = sprintf: pageid=2023 textid=300, null, null, null, null, null
al engine: set plugin $plugin.ID description to $desc
* Таймер (интвервал происхождения твоего события в секундах)
al engine: set plugin $plugin.ID timer interval to 120 s
else if $plugin.Event == 'isenabled'
$isenabled = $plugin.Vars[1]
return $isenabled
else if $plugin.Event == 'start'
$plugin.Vars[1] = [TRUE]
else if $plugin.Event == 'stop'
$plugin.Vars[1] = [FALSE]
else if $plugin.Event == 'timer'
$plugin.Enabled = $plugin.Vars[1]
if $plugin.Enabled
* <<< Сюда пихать свой код, который будет происходить если плагин включен в настройках и таймер посчитал
end
end
return null |
|
Надеюсь что-то окажется полезным.
Приложил архив со скриптами и комментариями, с подсветкой в браузере читается явно легче, чем здесь.
Последний раз редактировалось: Non (04:53 04-12-2017), всего редактировалось 1 раз |
|
|
Zeron-MK7 343 EGP
Рейтинг канала: 8(998) Репутация: 46 Сообщения: 574 Откуда: Latvia Зарегистрирован: 14.09.2008 |
|
Я в скриптах понимаю не очень много поэтому смотрю на скрипты другых авторов как на примери и по кускам делаю свои скрипты .
Твои заметки очень помогут , теперь придется все мои скрипты переписать .
_________________ Веб-сайт http://thexgalaxy.ucoz.com/ |
|
|
inoplanet 50 EGP Репутация: 0 Сообщения: 1
Зарегистрирован: 15.07.2019 |
|
Zeron-MK7, есть ли свежие переписанные скрипты?
|
|
|
Zeron-MK7 343 EGP
Рейтинг канала: 8(998) Репутация: 46 Сообщения: 574 Откуда: Latvia Зарегистрирован: 14.09.2008 |
|
inoplanet : |
есть ли свежие переписанные скрипты?
|
Нету, сожалению вряд ли у меня будет время чтобы скрипты переписать .
_________________ Веб-сайт http://thexgalaxy.ucoz.com/ |
|
|
Zeron-MK7 343 EGP
Рейтинг канала: 8(998) Репутация: 46 Сообщения: 574 Откуда: Latvia Зарегистрирован: 14.09.2008 |
|
Работаю над версии V2, скоро должен закончить.
Спасибо пилоту Non, за примеры и разъяснения, без них, я сам бы никогда бы не переписал эты скрипты.
В версии V2 - скрипты будут полностью переписаны в AL plugin скрипты.
V2 - будет возможность включать или отключать любой скрипт в любой момент прямо в игре и также не будет привязка к сахраноный игре.
Тестовый скриншот:
_________________ Веб-сайт http://thexgalaxy.ucoz.com/ |
|
|
Zeron-MK7 343 EGP
Рейтинг канала: 8(998) Репутация: 46 Сообщения: 574 Откуда: Latvia Зарегистрирован: 14.09.2008 |
|
Закончил скрипты для Хенонов и Пиратов, остались Кhааки.
_________________ Веб-сайт http://thexgalaxy.ucoz.com/ |
|
|
Zeron-MK7 343 EGP
Рейтинг канала: 8(998) Репутация: 46 Сообщения: 574 Откуда: Latvia Зарегистрирован: 14.09.2008 |
|
Уже 3 раз меняю время генерации и количество кораблей, получилось так:
Код: |
<t id="899">\033RКсенонское вторжение #1\033R \033Y= Каждые 30 минут случайно генерируются корабли: M5: 0 - 1, M4: 0 - 1, M3: 0 - 1.\033Y</t>
<t id="900">\033RКсенонское вторжение #2\033R \033Y= Каждые 40 минут случайно генерируются корабли: M5: 1 - 2, M4: 1 - 2, M3: 0 - 1.\033Y</t>
<t id="901">\033RКсенонское вторжение #3\033R \033Y= Каждые 50 минут случайно генерируются корабли: M5: 1 - 3, M4: 1 - 2, M3: 0 - 1.\033Y</t>
<t id="902">\033RКсенонское вторжение #4\033R \033Y= Каждые 60 минут случайно генерируются корабли: M5: 1 - 4, M4: 1 - 3, M3: 0 - 2.\033Y</t>
<t id="903">\033RКсенонское вторжение #5\033R \033Y= Каждые 70 минут случайно генерируются корабли: M5: 1 - 5, M4: 1 - 4, M3: 0 - 3.\033Y</t>
<t id="904">\033CПиратское вторжение #1\033C \033Y= Каждые 25 минут случайно генерируются корабли: M5: 0 - 1, M4: 0 - 1, M3: 0 - 1.\033Y</t>
<t id="905">\033CПиратское вторжение #2\033C \033Y= Каждые 35 минут случайно генерируются корабли: M5: 1 - 2, M4: 1 - 2, M3: 0 - 1.\033Y</t>
<t id="906">\033CПиратское вторжение #3\033C \033Y= Каждые 45 минут случайно генерируются корабли: M5: 1 - 3, M4: 1 - 2, M3: 0 - 1.\033Y</t>
<t id="907">\033CПиратское вторжение #4\033C \033Y= Каждые 55 минут случайно генерируются корабли: M5: 1 - 4, M4: 1 - 3, M3: 0 - 2.\033Y</t>
<t id="908">\033CПиратское вторжение #5\033C \033Y= Каждые 65 минут случайно генерируются корабли: M5: 1 - 5, M4: 1 - 4, M3: 0 - 3.\033Y</t> |
Ещё несколько скриптов Пиратам добавлю, чтобы пиратские TS корабли тоже генерировались.
И ещё осталось Khaak сделать несколько скриптов.
_________________ Веб-сайт http://thexgalaxy.ucoz.com/ |
|
|
|
|
|
Канал X2: The Threat: «[СКРИПТЫ] Вторжение» |
|
К списку каналов | Наверх страницы |
Цитата не в тему: Обсуждать можно хоть розовых слоников, но вот доказывать ими что-то... (Trident об особенностях общения в КТВ)
|
» [СКРИПТЫ] Вторжение | страница 1 |
|