ВНИМАНИЕ! Наша конференция посвящена космической тематике и компьютерным играм. Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!
|
» Добавляем новые команды в скрипт редактор | страница 9 |
|
|
|
Канал X3: Reunion »
Модовый и скриптовый отсек X3: Reunion: «Добавляем новые команды в скрипт редактор» |
|
|
AlexYar
1916 EGP
               Рейтинг канала: 13(2096) Репутация: 325 Сообщения: 32766
Зарегистрирован: 26.10.2003
 |
|
Есть спецы по составлению хелпов (файлов hlp или chm с поиском и удобным содержанием) ? Надо бы для Ext-патча сделать удобный хелпер по новым командам и опциям, а то сам перечитал свой ридмишник - и ничего не понял
Как-то там скомкано всё, в кучу малу.
|
|
|
AlexYar
1916 EGP
               Рейтинг канала: 13(2096) Репутация: 325 Сообщения: 32766
Зарегистрирован: 26.10.2003
 |
|
По поводу новой денежной системы в патче...
Cкрытый текст (кликните здесь для просмотра)
Начиная со следующей версии, как я уже говорил, игрок сможет иметь на своём счету до 4-ёх квинтилионов кредитов, т.е. потолок увеличивается в 2 млрд.раз. Вследствие чего появятся некоторые изменения в денежной системе и дополнительные команды для крупных переводов.
Новая система денег позволит моддерам увеличить цены на корабли и станции, а так же некоторые товары, позволяя масштабировать у игрока ощущение, что он строит именно империю, а не какой-то захудалый кооператив "умелые руки"
Всё-таки 2 млрд. денег в наше время это сущие копейки, тем более для олигарха.
Вцелом, совместимость со старыми скриптами останется, так как миллиардные денежные переводы в стандартной игре и известных мне модах не производятся. Будут и некоторые нововведения.
Главное помнить, что все станции (нпс и игрока), а так же сумма одного денежного перевода между игроком и ними, по прежнему имеют ограничение в 2 млрд, поэтому нет смысла задирать цены на товар так сильно, что игроку придётся покупать нужное количество в несколько приёмов (а это сделать легко, так как возможность увеличения складов станций так же будет в новом патче). Проблемы могут быть, если неписи повезут товар игроку (я не помню, в скриптах неписей есть проверка на кол-во денег на станции игрока перед тем, как считать кол-во товара, которые они ему повезут, или нет? Если есть, тогда проблем не будет, потому что более 2 млрд. они не увидят).
Вобщем, размеры денежных переводов вырастут по-любому, если моддер решит увеличить размеры станционных складов. Простой пример: увеличиваем склад дока оборудования в 100 раз или делаем его постоянным для всех типов товаров (зависит от настроек в файле конфигурации, можно увеличить в N раз, оставив зависимость от релвала, а можно сделать поровну на все товары, как в штабквартире игрока) в размере 50.000. Представим, что склад пустой, а у игрока на станции есть 10.000 штук Г-ППЦ  Теперь представим, что непись полетел закупать у игрока все его пушки (повёз игроку деньги). Считаем сумму сделки... Если стоимость товара до двух млрд. - хорошо (если на счету станции ноль руб.), если стоимость товара более 2 млрд. - значит излишек денег улетит в трубу (осядет в кормане неписёвого пилота  ), если не поправить стандартные скрипты торговли, дополнив к проверке пустого места на складе проверку остатка на счёте станции средств до 2 млрд. Это, кстати, актуально и для оригинальной игры, там тоже деньги улетают в трубу, если на станции переполнен счёт, такая проверка тоже бы не помешала.
Надеюсь тут понятно.
Вобщем, можно вообще не учитывать новую систему средств в скриптах, если так хочется, от этого ничего не изменится.
Но если моддер захочет написать скрипты свои, например - "bank of universe", где у игрока будет принимать миллиарды на хранение под проценты, то для этого сделаны дополнительные команды, которые позволяют переводить средства сразу целыми миллиардами (чтобы в цикле не переводить 1.000.000 раз по 2 млрд., завесив игру, можно просто дать команду "AddBillion 2.000.000", т.е. переведём сразу 2 миллиона миллиардов  ).
Как всё выглядит в механике.
У игрока теперь не один счёт, а три:
1. Обычный счёт.
2. Буферный счёт.
3. Резервный счёт.
Обычный счёт - это обычный стандартный, который используется для стандартных денежных переводов (например - в меню торговли верфи или станции). Так же все неписи видят, как и раньше, только его.
Этот счёт имеет планку в 2 млрд.
Чтобы узнать кол-во денег на этом счету - пользуемся стандартной скриптовой командой get player money.
Разница со старой системой в том, что при добавлении на него денег сверх 2 млрд-ов эти деньги не пропадут.
Буферный счёт - на него переводятся все излишки с основного счёта. Как только набирается полный миллиард - он переводится с буферного счёта на резервный счёт.
Буферный счёт служит для того, чтобы при наличии денег у игрока более 2 млрд - на основном счёте всегда лежало 2 млрд. для максимальной возможности закупок.
Резервный счёт - на нём хранятся полные миллиарды. Очередной миллиард сюда переведётся только тогда, когда на основном и буферном счету игрока будет 3 миллиарда в сумме (2 основной, 1 буферный). Отсюда будет взят миллиард и переведён на буферный счёт, если средств на буферном не хватит для поддержания на основном ровно 2 млрд.
Пример:
Основной - 2.000.000.000
Буфер - 0
Резервный - 100.000.000.000
Игрок купил белые тапочки за 100 рублей.
На основном стало: 1.999.999.900
Компенсируем счёт, добавив на основной обратно 100 рублей.
Для этого берём с буферного, но на нём ноль, поэтому с резервного переводим в буферный 1 млрд., затем с буферного 100 руб. на основной. В итоге получается:
Основной: 2.000.000.000
Буферный: 999.999.900
Резервный: 99.000.000.000
Всё это игра сделает автоматически. Я это написал только для того, чтобы скриптеры и моддеры понимали принцип работы системы, если хотят ввести расширенные денежные переводы своими скриптами. Для этого будут команды (три, одна старая, две новые), позволяющие узнать кол-во средств на каждом из трёх счетов, а так же команды (две, одна старая, одна новая), позволяющие работать с основным и резервным счетами напрямую (одна для стандартных сделок суммами до 2 млрд., вторая для переводов целых миллиардов).
В меню игрока сумма средств показывается как есть по факту (все его средства в сумме на основном, буферном и резервном счетах), с цветовой подсветкой целых квинтилионов, целых миллионов, тысяч и единиц миллиардов. Т.е. примерно так:
Player Account = 4.000.000.000.000.000.000 Cr.
Расцветку каждый моддер может изменить на такую, какую захочет, либо вообще её убрать.
|
В будущем, возможно, наделю так же и неписёвые расы расширенной денежной системой (когда протестируем эту), что позволит моддерам в полной мере реализовать реальную экономику в игре (все станции одной расы будут иметь общий бюджет, можно будет реально разорить целую расу или наоборот - помочь ей средствами для развития, реализуется очень легко).
зыж Если чего непонятно - спрашивайте сразу, потом в описание включу актуальные вопросы.
|
|
|
Ark
50 EGP
 Рейтинг канала: 2(18) Репутация: 0 Сообщения: 25 Откуда: Омск Зарегистрирован: 08.04.2010
 |
|
Ить... Пока поезд не ушёл )
А можно в активном секторе при формировании SIGNAL_ATTACKED "сообщать кораблю", чем это его приложили? Лучший способ, на мой взгляд, локальная переменная с фиксированным именем, в которую помещается ware type оружия или ракеты. Таран = null.
...Это я думал над алгоритмом боевого маневрирования (в данном случае определения, когда стоит уходить в маневр уклонения, а когда нет) и столкнулся с тем, что такое определение более-менее адекватно возможно лишь когда у врага одна - носовая - турель, и в предположении, что это именно пушечное попадание. Ведь у меня нет значений щита и хулла ДО попадания. А выстрел AIRE от торпеды в борт вообще не отличить...
Тогда скриптёр попутно сможет задействовать этот же сигнал, чтоб корабли крутило и валяло в стороны при очень мощных ударах, соответствующие "команды механики" в 2.5Ext есть.
|
|
|
AlexYar
1916 EGP
               Рейтинг канала: 13(2096) Репутация: 325 Сообщения: 32766
Зарегистрирован: 26.10.2003
 |
|
Ark : |
соответствующие "команды механики" в 2.5Ext есть.
|
В 2.5Ext есть и команды стрейфа для неписей, но их почему-то никто до сих пор не увидел Они есть там ещё со времён патчей DarthRevan`а (set glide).
Т.е. в некоторых случаях логичнее не крутить корабль дефенсмувом, а просто "сместить" его стрейфом в сторону, перепендикулярную линии между этим кораблём и врагом, который стреляет (attacker), тогда остальные снаряды очереди пройдут мимо.
Ещё можно научить корабль стрейфом болтаться в разные стороны, если враг близко и висит на хвосте, тогда враг не сможет прицелиться (а если будет стрелять - промахнётся).
Ark : |
Лучший способ, на мой взгляд, локальная переменная с фиксированным именем, в которую помещается ware type оружия или ракеты
|
Можно добавить аргумент, передаваемый в скрипт сигнала SIGNAL_ATTACKED (если его там нет до сих пор), можно и через локальную сделать. Сейчас мельком глянул - передачу субтипа пушки сделать можно, насчёт ракет и тарана - не уверен. Не помню какого формата второй аргумент в ф-ии TSHIP.AttackedBy().
добавлено спустя 44 минуты:
Кстати, проверить легко - можно-ли определить попадание ракеты и тарана, или нельзя. Для этого задаёмся вопросом - можно-ли захватить врага ударом корпуса или попаданием ракеты, или нет.
Обработка идёт в одной ф-ии за счёт одних и тех же данных.
Я, кстати, сам не помню, ракетой можно захватить в х3 или нет?
В ХТ точно можно было
Последний раз редактировалось: AlexYar (15:45 12-06-2010), всего редактировалось 3 раз(а) |
|
|
Ark
50 EGP
 Рейтинг канала: 2(18) Репутация: 0 Сообщения: 25 Откуда: Омск Зарегистрирован: 08.04.2010
 |
|
Про добавление аргумента подумал, но хз, как с совместимостью будет. Существующие-то скрипты-обработчики 2 аргумента получают:
Код: |
1: attacker , Var/Ship/Station , 'the attacker'
2: action , Var/Number , 'action'
|
Проигнорируют ли они "лишний" 3-й полученный аргумент? Если да, то лучше через аргумент. Если нет, то через переменную.
Насчёт сдачи врага после ракеты или тарана - не встречал такого (хотя я во-первых, мало пользуюсь ракетами, во-вторых, мало дерусь "своими руками" - масштабные сражения либо покадрово смотрю, либо они проходят в удалёнке. "Экономист", короче).
С другой стороны, NPC агрятся и от тарана, и от попадания ракеты, и от попадания снаряда. То есть скорее всего можно всё перехватить.
upd
Именно. На встречных курсах и при убегании больше решает стрейф, при погоне - стрейф + "зигзаг" (хотя, я хотел бы боковые двигатели сильно ослабить... какого... они придают ускорение многим кораблям в разы больше, чем маршевые? нехорошо это...), бочку надо крутить при общем истощении щитов, если враг гораздо маневреннее тебя или не может пробить твой щит, уклоняться вообще смысла нет, на встречных вместо уклонения, бывает, имеет смысл жать на все гашетки (кроме ракетной, естественно) - это касается больше боя энергетическим оружием против силового, лучевого и ионного, стрелять с максимальной дальности по мелким целям не обязательно - лучше сократить дистанцию...
Последний раз редактировалось: Ark (16:25 12-06-2010), всего редактировалось 1 раз |
|
|
Xenon J
1007 EGP
       Рейтинг канала: 11(1675) Репутация: 160 Сообщения: 3390 Откуда: Ксенонский сектор 472 Зарегистрирован: 30.03.2007
 |
|
AlexYar : |
Ещё можно научить корабль стрейфом болтаться в разные стороны, если враг близко и висит на хвосте, тогда враг не сможет прицелиться (а если будет стрелять - промахнётся).
|
Все эти ухищрения пойдут густым лесом, если у игрока будет лучевое оружие типа КЕ И рулить будет только оно(или типа него - силовухи или РВЕ), а всё остальное уйдет в хлам
AlexYar : |
Я, кстати, сам не помню, ракетой можно захватить в х3 или нет?
|
Дык глянь анализ захвата Уликсом в БД - вроде нельзя.
_________________ Последний раз редактировалось: Xenon J (23:23 23-03-2023), всего редактировалось 16 раз |
|
|
AlexYar
1916 EGP
               Рейтинг канала: 13(2096) Репутация: 325 Сообщения: 32766
Зарегистрирован: 26.10.2003
 |
|
Ark : |
Проигнорируют ли они "лишний" 3-й полученный аргумент?
|
Да, скрипты игнорируют. Обычно в служебные скрипты х3 передаётся больше аргументов, чем используется в скриптах.
Попробую сделать передачу числа майнтайпа и субтайпа "ударившего объекта".
В теории должно работать и для ракет и для лазеров. Насчёт таранов сомневаюсь, но всё может быть, надо тестировать.
Наверное сделаю через лок.переменные, которые будут записываться перед сигналом и очищаться после сигнала. Т.е. "взять" их можно будет внутри скрипта сигнала атаки.
Xenon J : |
Все эти ухищрения пойдут густым лесом, если у игрока будет лучевое оружие типа КЕ И рулить будет только оно
|
Во-первых, силовухи и КЕ с ПБЕ рулят и так. В этом плане ничего не изменится.
Во-вторых, алгоритм упреждения на прицеле игрока не учитывает стрейф непися.... Поэтому игроку придётся отключать автоупреждение и целить вручную, иначе он будет лупить в пустоту
|
|
|
AlexYar
1916 EGP
               Рейтинг канала: 13(2096) Репутация: 325 Сообщения: 32766
Зарегистрирован: 26.10.2003
 |
|
Всё обсуждение переносится в новую тему.
|
|
|
Executor
1860 EGP
  Рейтинг канала: 6(308) Репутация: 522 Сообщения: 9024 Откуда: Менск. Беларусь. Зарегистрирован: 09.05.2001
 |
|
Тогда эту тему закрываю. Если она кому-нибудь понадобится, пишите в приват модераторам канала.
_________________ Император Всея Галактики, Прилегающих Туманностей, Комет И Астероидов, А Также Планеты Ракксла, Буде Она Все-Таки Обнаружится :) |
|
|
|
|
|
Канал X3: Reunion ->
Модовый и скриптовый отсек X3: Reunion: «Добавляем новые команды в скрипт редактор» |
|
К списку каналов | Наверх страницы |
Цитата не в тему: Самое интересное - посмотрел на квоту, понял, что опечатался я, но никак не могу вспомнить, где я такое мог писать? (Pet)
|
» Добавляем новые команды в скрипт редактор | страница 9 |
|