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

  » [ДИСКУС]: Скриптописание. Проблемы и их решение. | страница 54
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

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

   Страница 54 из 61
На страницу: Пред.  1, 2, 3 ... 53, 54, 55 ... 59, 60, 61  След.    Перейти:   Все страницы
Поиск в этой теме:
Канал X3: Terran Conflict » Модовый и скриптовый отсек X3: Terran Conflict: «[ДИСКУС]: Скриптописание. Проблемы и их решение.»
za4ot
 476 EGP


Рейтинг канала: 5(187)
Репутация: 15
Сообщения: 3251
Откуда: Яма Изобилия
Зарегистрирован: 08.08.2012
bi0nik, спасибо. На один вопрос ответ получен, осталось три. Улыбка Жаль, что так мало людей посещает эту ветку - игра-то хорошая. Расстроен
_________________
Пираты - наше всё!
    Добавлено: 14:51 09-07-2017   
by.@ztek
 315 EGP


Рейтинг канала: 5(218)
Репутация: 50
Сообщения: 795
Откуда: Минск, Беларусь
Зарегистрирован: 21.04.2010
za4ot :
Вопрос 4-й:
Где-то тут проскакивала информация, что есть скрипт по защите земных секторов, т. е. если прыгнуть в земной какой-либо сектор без разрешения, то к тебе прыгает большое войско и разносит тебя вдребезги пополам. Меня интересует можно ли безболезненно отключить/удалить этот скрипт, чтоб в земных секторах остались просто полиция и патрули, как и в секторах других рас? И где этот скрипт вообще найти, чтобы код почитать?

За это и кое-что другое отвечает МД-скрипт 3.08 Sector Management.xml. Вообще, мониторится ранг ATF и происходит событие.
п.с. кое-что - это и создание в секторе несф.прыжка кааков/ксенов, там же брошенного Арана, и всякое прочее.

добавлено спустя 33 минуты:
Да, надо помнить, что в земной сюжетке скриптово удерживается репа ATF.
_________________
Совершенству нет предела...

Последний раз редактировалось: by.@ztek (16:29 09-07-2017), всего редактировалось 1 раз
    Добавлено: 16:29 09-07-2017   
za4ot
 476 EGP


Рейтинг канала: 5(187)
Репутация: 15
Сообщения: 3251
Откуда: Яма Изобилия
Зарегистрирован: 08.08.2012
by.@ztek :
МД-скрипт 3.08 Sector Management.xml

Нужно будет посмотреть как удалить этот защитный флот нафиг, а то хочется поозоровать в земных секторах, а он не дает. Хы...

добавлено спустя 6 минут:
by.@ztek :
Да, надо помнить, что в земной сюжетке скриптово удерживается репа ATF.

Я вот этого не знал и жил спокойно, а теперь знаю и какие из этого следствия понять не могу.
Моя цель, чтобы земные сектора, ну кроме сектора с торусом, были так же доступны для разбоя как и сектора других рас. Если же в земных секторах все держится на жестких скриптах, то даже не знаю получится ли у меня. Я всегда думал, что отличие земного сектора от сектора любой другой расы состоит именно в этом защитном скрипте, а восстановление станций после уничтожения и всякие патрули и трафик регулируются так же как и в других секторах. Как-то так.
_________________
Пираты - наше всё!

Последний раз редактировалось: za4ot (19:40 09-07-2017), всего редактировалось 1 раз
    Добавлено: 19:40 09-07-2017   
XXXL
 77 EGP


Рейтинг канала: 4(67)
Репутация: 7
Сообщения: 271

Зарегистрирован: 12.12.2010
za4ot :
...
Я вот этого не знал и жил спокойно, а теперь знаю и какие из этого следствия понять не могу.
Моя цель, чтобы земные сектора, ну кроме сектора с торусом, были так же доступны для разбоя как и сектора других рас. Если же в земных секторах все держится на жестких скриптах, то даже не знаю получится ли у меня. Я всегда думал, что отличие земного сектора от сектора любой другой расы состоит именно в этом защитном скрипте, а восстановление станций после уничтожения и всякие патрули и трафик регулируются так же как и в других секторах. Как-то так.

скрипт 3.08 Sector Management.xml(11.cat-?)
<find_sector name="this.Belt" x="11" y="3" race="terran" exact="0"/>
<set_value name="{sector@this.Belt} ATF Rank" exact="2"/>
Первая строка отвечает за выбор сектора. Вторая за минимальную репутация для нахождения в этом секторе без последствий. Цифру "2" заменить на "0". Аналогично поступить с другими секторами.
    Добавлено: 08:21 11-07-2017   
za4ot
 476 EGP


Рейтинг канала: 5(187)
Репутация: 15
Сообщения: 3251
Откуда: Яма Изобилия
Зарегистрирован: 08.08.2012
XXXL, спасибо большое. Созрел еще вопрос. Когда корабль игрока обстреливают и начинает уничтожаться оборудование сопровождаемое голосом типа: Щит 25 МДж уничтожен, то какой скрипт отвечает за вывод этого сообщения? Чего-то я ищу ищу и никак найти не могу.
Хочу прицепить к этому сообщению катапультирование игрока на спасательной капсуле, потому как если уже начали уничтожать оборудование, то кораблю игрока явный капец и пора спасаться. )))
_________________
Пираты - наше всё!

Последний раз редактировалось: za4ot (11:05 11-07-2017), всего редактировалось 2 раз(а)
    Добавлено: 10:48 11-07-2017   
by.@ztek
 315 EGP


Рейтинг канала: 5(218)
Репутация: 50
Сообщения: 795
Откуда: Минск, Беларусь
Зарегистрирован: 21.04.2010
za4ot :
Когда корабль игрока обстреливают и начинает уничтожаться оборудование сопровождаемое голосом типа: Щит 25 МДж уничтожен, то какой скрипт отвечает за вывод этого сообщения? Чего-то я ищу ищу и никак найти не могу.

Сдается мне, что это функции в обже NotifyEquipmentDestroyed и NotifyEquipmentDamaged:
 Cкрытый текст   (кликните здесь для просмотра)
; === NotifyEquipmentDestroyed ==================================
; function CLIENT.NotifyEquipmentDestroyed(arg1, arg2);
;
CLIENT.NotifyEquipmentDestroyed:
enter 2, 6
begin_critical
if SP[0]<>0 then jump L00017257
pushb 20d ; 14h
push 1
pushw 200d ; 0C8h
call86 X_AUDIO.WaitForEndOfSpeakPriority
pop
pushb 20d ; 14h
pushb 29d ; 1Dh
pushb 13d ; 0Dh
push SP[7] ; arg2
push SP[7] ; arg1
push 2
callasm SA_GetTypeTextID
pushb 17d ; 11h
create_array 4
push 2
pushw 200d ; 0C8h
call86 X_AUDIO.SpeakArrayWithPriority
pop
end_critical
L00017257: push 0
ret

;
; === NotifyEquipmentDamaged ====================================
; function CLIENT.NotifyEquipmentDamaged(arg1, arg2);
;
CLIENT.NotifyEquipmentDamaged:
enter 2, 6
begin_critical
if SP[0]<>0 then jump L00017290
pushb 20d ; 14h
push 1
pushw 200d ; 0C8h
call86 X_AUDIO.WaitForEndOfSpeakPriority
pop
pushb 20d ; 14h
pushb 30d ; 1Eh
pushb 13d ; 0Dh
push SP[7] ; arg2
push SP[7] ; arg1
push 2
callasm SA_GetTypeTextID
pushb 17d ; 11h
create_array 4
push 2
pushw 200d ; 0C8h
call86 X_AUDIO.SpeakArrayWithPriority
pop
end_critical
L00017290: push 0
ret

Хы...

добавлено спустя 26 минут:
Причем в функции NotifyEquipmentDestroyed именно "pushb 29d ; 1Dh" - это фраза "уничтожено", а в функции NotifyEquipmentDamaged "pushb 30d ; 1Eh" - повреждено.
_________________
Совершенству нет предела...

Последний раз редактировалось: by.@ztek (13:11 11-07-2017), всего редактировалось 1 раз
    Добавлено: 13:11 11-07-2017   
za4ot
 476 EGP


Рейтинг канала: 5(187)
Репутация: 15
Сообщения: 3251
Откуда: Яма Изобилия
Зарегистрирован: 08.08.2012
by.@ztek :
Причем в функции NotifyEquipmentDestroyed именно "pushb 29d ; 1Dh" - это фраза "уничтожено", а в функции NotifyEquipmentDamaged "pushb 30d ; 1Eh" - повреждено.

А как туда вписать фразу:
[THIS] -> call script 'Capsula.xml'
_________________
Пираты - наше всё!
    Добавлено: 15:31 11-07-2017   
za4ot
 476 EGP


Рейтинг канала: 5(187)
Репутация: 15
Сообщения: 3251
Откуда: Яма Изобилия
Зарегистрирован: 08.08.2012
В общем написал скрипт автокатапультирования. Сначала пытался ввести проверку на атаку плеершипа:
Враг = плеершип гет аттакер
если Враг не существует то на начало цикла
если существует, то проверяем корпус
В общем не взлетел и на эту проверку я забил попутно подумав, что можно и об станцию разбится ненароком и об биг шип при выходе из трансорбитального ускорителя - да мало ли вокруг сумасшедших пилотов Хы... .
Поставил в цикле задержку в 1000 мс и уровень корпуса 10% - корабль разобрали скрипт не успел сработать. Поставил задержку в 250 мс - успел сработать.
Как проверял:
1-й тест: Отдал свой Огненный коготь на растерзание хаакскому кластеру.
2-й тест: Прыгнул в середину ксенонского сектора и подставился под стаю истребителей.
Все работает, учитывая, что у меня стоит скрипт by.@ztek-а на применение неписями ракет, т. е. разбирали корабль довольно шустро. По ощущениям никаких дополнительных тормозов в игру скрипт не добавил (чего я опасался), все движется с той же скоростью, что и раньше. Заметил, что оборудование начинает вылетать чуть ли не с 60% хула - слишком высокое, как по мне, значение. Кстати, скрипт вызвывал так: @ =[PLAYERSHIP]->call script 'Capsula' не разбираюсь в тонкостях, но в справочнике от Chem-а вычитал, что с префиксо START может и скрипт не запуститься и игра подвиснуть. Правильно я сделал?
Под прямое попадание бигшипов на М3+ решил не подставляться. Хы... Что интересно, когда уже переместился в капсулу, все еще слышал голос бортового компьютера: НПМ-1 уничтожен, Сканер С-3 уничтожен..., а потом стало тихо - прощай корабль, прощай родимый дом. Хы...

Теперь снова переходим к нерешенным вопросам. Есть идея скрипта - игроку нужно обеспечить безопасное передвижение торговых кораблей, через транзитные ксенонские сектора, коих как известно существует три штуки. (типа сюжетка такая)
Для этого нужно отслеживать уничтожение грузовых кораблей в ксенонских секторах. Что планирую сделать:
1. Из скрипта сигнал_киллед вызывать свой скрипт и передавать в него аргумент киллер.
2. Проверять киллера на расу=ксенон и на сектор=одному из трех заданных секторов.
В общем интересует можно ли из аргумента Киллер выудить расу и сектор с помощью раса=киллер гет раса и сектор=киллер гет сектор?

Еще вопрос вспомнил, если я изменю какой-либо оригинальный скрипт и он будет у меня лежать в папке скриптов с расширением .xml, то какой скрипт будет использовать игра запакованный оригинальный или с расширением .xml? А то я на всякий случай оригинальные скрипты удаляю если использую их измененные версии.


Capsula+.zip
 Описание:
Пока выложу тут для ознакомления. Свой скрипт и скрипт Rusa,который используется для создания спасательной капсулы.
 Имя файла:  Capsula+.zip
 Размер файла:  8.31 KB
 Скачано:  301 раз(а)

_________________
Пираты - наше всё!

Последний раз редактировалось: za4ot (23:42 11-07-2017), всего редактировалось 5 раз(а)
    Добавлено: 21:44 11-07-2017   
by.@ztek
 315 EGP


Рейтинг канала: 5(218)
Репутация: 50
Сообщения: 795
Откуда: Минск, Беларусь
Зарегистрирован: 21.04.2010
1. Может работать с SIGNAL_ATTACKED?
2. Да, расу и корабли можно получить из этих сигналов.
3. Приоритет на выполнение у распакованных скриптов.
_________________
Совершенству нет предела...
    Добавлено: 14:04 12-07-2017   
za4ot
 476 EGP


Рейтинг канала: 5(187)
Репутация: 15
Сообщения: 3251
Откуда: Яма Изобилия
Зарегистрирован: 08.08.2012
by.@ztek :
Может работать с SIGNAL_ATTACKED?

Вроде все слова знакомые, а о чем речь понять не могу. Сбивает с толку вопросительный знак. Улыбка
_________________
Пираты - наше всё!
    Добавлено: 14:15 12-07-2017   
by.@ztek
 315 EGP


Рейтинг канала: 5(218)
Репутация: 50
Сообщения: 795
Откуда: Минск, Беларусь
Зарегистрирован: 21.04.2010
za4ot :
by.@ztek :
Может работать с SIGNAL_ATTACKED?

Вроде все слова знакомые, а о чем речь понять не могу. Сбивает с толку вопросительный знак. Улыбка

Хы... Я делал для ТОТТ:
Скрипт обработчик сигнала, например, init.signal.preload.xml с кодом
Код:
global script map: set: key={SIGNAL_ATTACKED}, class={Station 2016}, race=null, script='TOTT.station.attacked.pl', prio=100
return null

В вызываемом скрипте TOTT.station.attacked.pl собственно и есть (нужно воспользоваться) встроенные входные аргументы attacker и target. Сигнал SIGNAL_ATTACKED асинхронный, т.е. работает "сам себе", с учетом стека. Вот во втором скрипте и делаем, что хотим. Подмигиваю

добавлено спустя 5 минут:
Могу два этих скрипта скинуть на разборку, если что. Эта фича была написана для: когда игрок атакует станцию, на него ругаются "если вы не прекратите, мы высылаем флот защиты"...никто ничего не высылает. это было исправлено Улыбка
_________________
Совершенству нет предела...

Последний раз редактировалось: by.@ztek (19:58 12-07-2017), всего редактировалось 1 раз
    Добавлено: 19:58 12-07-2017   
za4ot
 476 EGP


Рейтинг канала: 5(187)
Репутация: 15
Сообщения: 3251
Откуда: Яма Изобилия
Зарегистрирован: 08.08.2012
by.@ztek :
Могу два этих скрипта скинуть на разборку, если что.

Скидывай. Надо же мне по чему-то учиться.
Я так понимаю, что ты в скрипте init.signal.preload.xml назначаешь свой обработчик TOTT.station.attacked.pl сигнала SIGNAL_ATTACKED для станций. Возникает вопрос будет ли стандартный обработчик выполнять свою работу параллельно с твоим или твой заменит стандартный? Мне нужно перехватить SIGNAL_KILLED для TS есть два пути либо назначить свой обработчик как у тебя, либо вызвать свой скрипт из !ship.signal.killed и в нем уже проверить TS был убит или нет. Как я понимаю убийца это аргумент: 1: killer , Value , 'killer' , а убитый это аргумент: 2: cmd , Object Command , 'cmd' ?

У меня сейчас в разработке несколько идей для скриптов:
1. Торговые маршруты (идея уже готова, но есть вопросы по реализации)
2. Охотники за головами (хватит игроку безнаказанно уничтожать чужую собственность, когда НПС начнут действовать по принципу глаз за глаз, то игроку придется не сладко - идея пока только обдумывается, но примерно механику уже представляю.)
3. Линия фронта. (постоянные боевые действия рас с ксенонами хааками и яками в отдаленных секторах (типа сдерживание агрессии) для которых игрок выступает в роли снабженца боеприпасами, кораблями, оружием и пр. - идея на стадии обдумывания)
Цель такая, чтобы после прохождения сюжета игроку было чем заняться, причем если игрок будет тупить, то его развитие будет идти не до бесконечности вверх, а может скатится к единственному оставшимуся у игрока плеершипу и ему придется начинать развитие заново. Пока идеи в разработке приветствуются мысли как и чем еще можно занять игрока. А то в одиночку у меня иногда творческий кризис случается. Пока из реализованных у меня только сюжетка "Гильдия археологов" - довольно длительная по времени, где нужно собрать 94 редких корабля.
При воплощении этих идей появляется куча разных вопросов по скриптам, возможно банальных, но мне неизвестных.

_________________
Пираты - наше всё!
    Добавлено: 20:43 12-07-2017   
by.@ztek
 315 EGP


Рейтинг канала: 5(218)
Репутация: 50
Сообщения: 795
Откуда: Минск, Беларусь
Зарегистрирован: 21.04.2010
za4ot :
Возникает вопрос будет ли стандартный обработчик выполнять свою работу параллельно с твоим или твой заменит стандартный?

Будет.
2-3. Я немного в другом русле работал, для ТОТТ всё, но по окончанию всех сюжетов сделал глобальное наступление ксенонов (и хааков можно включить), и если игрок не участвует в обороне сектора - то "зараза" распространяется несмотря на принадлежность секторов.
п.с. лови. там и пару скрипту вложил на события...

signal.rar
 Описание:
 Имя файла:  signal.rar
 Размер файла:  31.05 KB
 Скачано:  280 раз(а)

_________________
Совершенству нет предела...
    Добавлено: 21:26 12-07-2017   
za4ot
 476 EGP


Рейтинг канала: 5(187)
Репутация: 15
Сообщения: 3251
Откуда: Яма Изобилия
Зарегистрирован: 08.08.2012
XXXL :
скрипт 3.08 Sector Management.xml(11.cat-?)
<find_sector name="this.Belt" x="11" y="3" race="terran" exact="0"/>
<set_value name="{sector@this.Belt} ATF Rank" exact="2"/>
Первая строка отвечает за выбор сектора. Вторая за минимальную репутация для нахождения в этом секторе без последствий. Цифру "2" заменить на "0". Аналогично поступить с другими секторами.

Попробовал не сработало. Сработало когда поставил нули еще и в этих строках (чтобы не гадать поставил во всех, которые нашел, да и куски кода с ними выглядели идентично Улыбка ):
<check_value value="{player.notoriety.atf.rank}" min="0"/>
<check_value value="{player.notoriety.atf.rank}" max="0"/>
С рейтингом у АОГ +3 и у Землян +3 (Доступ Марса) залетал спокойно в сектора Венера и Луна. Сбил пару корабликов у землян рейтиг опустился до -2, а у АОГ не изменился - остался такой же как и был. Кораблей АОГ не нашел, чтоб напасть может поэтому их рейтинг не изменился, а может сломалось что-то? (Земную сюжетку не начинал, репу до +3 на обычных миссиях поднял)

Появилась идея скрипта "Плата за содержание имущуства".
Каждый корабль и каждая станция требует затрат на содержание - топливо, воздух, еда, наемные рабочие или экипаж, тех. обслуживание, медицинские расходы, налоги с казино в котором постоянно теряется девочка и т. д. и т. п. Игрок ясен пень ни за что не платит. Идея скрипта проста:
Каждый час/день считается количество кораблей по типам, количество станций и умножается на стоимость содержания (для кораблей разных типов разная, для станций одинаковая, чтоб сильно не заморачиваться) и найденная сумма списывается со счета игрока. Если нужной суммы нет, то списывается все, а разница запоминается и списывается по мере поступления денег на счет. Каждый отчетный период игроку приходит сообщение типа финансовый отчет (сколько и за что было списано, есть ли долг). В принципе реализацию уже продумал осталось определится с временными промежутками (час как бы нормально, но на сете будет слишком часто отчет приходить, а день кажется долго, ибо за день можно успеть много собственности приобрести и перепродать, естесственно, не заплатив налогов Хы... ) и ценой содержания (у кого какие мысли сколько назначить для кораблей разных классов и станций?) Еще была мысль вместо/вместе расчета цены содержания имущества ввести подоходный налог - оцениваем общую стоимость всех активов игрока, через время оцениваем еще раз, если увеличилась, то от разницы берем 20% и списываем со счета игрока. Но я там в формулах запутался поэтому пока эту идею оставлю про запас. Улыбка

_________________
Пираты - наше всё!

Последний раз редактировалось: za4ot (03:18 14-07-2017), всего редактировалось 7 раз(а)
    Добавлено: 22:24 13-07-2017   
za4ot
 476 EGP


Рейтинг канала: 5(187)
Репутация: 15
Сообщения: 3251
Откуда: Яма Изобилия
Зарегистрирован: 08.08.2012
Со стоимостью содержания кораблей определился будет 0,1% от цены корабля. для станций, наверное, будет 1% от цены. В общем создаем один массив со стоимостью обслуживания, второй с количеством собственности игрока, перемножаем элементы массивов по индексам 1-й на 1-й и т. д. и произведения складываем получаем искомую сумму. Можно каждый час высчитывать стоимость содержания, а списывать каждый день общую сумму за 24 часа с предоставлением отсчета. Прикинул только что количество разных кораблей и станций в игре - это ж сколько кода нужно будет написать? Тысяч несколько строк. Хы...

С налогами сложнее. Допустим у игрока с начала игры 1000 кр.
ТОЧКА ОТСЧЕТА = СЧЕТ ИГРОКА = 1000
Продаем две импульсные пушки с корабля получаем
Устанавливаем ТОЧКА ОТСЧЕТА = 1000
Проверяем СЧЕТ ИГРОКА = 9000
Вычисляем ДЕЛЬТА = СЧЕТ ИГРОКА - ТОЧКА ОТСЧЕТА = 9000 - 1000 = 8000
ЕСЛИ ДЕЛЬТА < 0 ТО
НАЛОГ = 0
ИНАЧЕ
Вычисляем НАЛОГ = 0,2*ДЕЛЬТА -> НАЛОГ = 0,2*8000 = 1600
Устанавливаем ТОЧКА ОТСЧЕТА = СЧЕТ ИГРОКА = 9000
Покупаем тут же улучшение скорости на все деньги
Проверяем ТОЧКА ОТСЧЕТА = 9000
Проверяем СЧЕТ ИГРОКА = 672 (остаток после закупки)
Вычисляем ДЕЛЬТА = СЧЕТ ИГРОКА - ТОЧКА ОТСЧЕТА = 672 - 9000 = -8328
ЕСЛИ ДЕЛЬТА < 0 ТО
Вычисляем НАЛОГ = 0 -> НАЛОГ = 0
ИНАЧЕ
НАЛОГ = 0,2*ДЕЛЬТА
Устанавливаем ТОЧКА ОТСЧЕТА = СЧЕТ ИГРОКА = 672
А нужно еще учесть переводы со станций, награды за миссии, секторных торговцев, приписанных к станциям торговцев. Задница чувствую, что где-то есть засада. Хы... В общем над математикой еще покумекать нужно - все ли учтено и будет ли оно работать в игре, также как на бумаге.

_________________
Пираты - наше всё!

Последний раз редактировалось: za4ot (16:14 14-07-2017), всего редактировалось 2 раз(а)
    Добавлено: 15:44 14-07-2017   
DIMOSUS.X
 995 EGP


Рейтинг канала: 8(921)
Репутация: 188
Сообщения: 3252
Откуда: Vilnius/Minsk
Зарегистрирован: 06.08.2008
Подскажите — как принудительно запустить сюжетные линии, если текущий старт их не предполагает? В частности для Albion Prelude, для земного старта включить сюжетки от аргона.
_________________
Даже ежики ежиков могут с трудом,
Иначе бы ежики были кругом.
    Добавлено: 13:36 29-12-2017   
za4ot
 476 EGP


Рейтинг канала: 5(187)
Репутация: 15
Сообщения: 3251
Откуда: Яма Изобилия
Зарегистрирован: 08.08.2012
Остался на день без интернета и этого хватило, чтоб забыть о танках и вернуться в х3. Долго думал над идеей скрипта по обложению игрока подоходным налогом и понял, что совершенно невозможно посчитать точную прибыль игрока в кредитах. Не исключаю, что я чего-то недопонимаю и если кто-то сможет помочь с написанием алгоритма то буду рад помощи.
Чтоб посчитать точную прибыль нужно учесть:
Продажу товаров с корабля игрока и продажу кораблей, вознаграждения миссий (любые поступления на счет игрока), прибыдь от секторных и галоторговцев, прибыль от станций (переведенную на счет игрока, непереведенная прибыль должна учитываться при переводе) за исключением денег переданных станции игроком и возвращенных на счет игрока. Также следует учесть, что поступления прибыли от разных источников и списание денег на разные траты может происходить одновременно (даже если запускать скрипт каждые несколько секунд) и распознать и учесть эти транзакции нет никакой технической возможности.

Еще вопрос:
В случайном неизвестном секторе создаем небольшой флот расы враждебная раса/нейтральная раса с приказом атаковать конкретный корабль или станцию игрока. Вопрос как этот флот себя поведет? Полетит атаковать заданный объект? Как он будет себя вести при встрече с кораблями других рас, при встрече с другими кораблями игрока. Как корабли других рас/корабли игрока поведут себя при встрече с этим флотом? Если на флот нападут скажем хааки, то станет ли он защищаться и после того как уничтожит агрессоров продолжит ли он выполнение задания?
_________________
Пираты - наше всё!

Последний раз редактировалось: za4ot (18:15 19-01-2018), всего редактировалось 1 раз
    Добавлено: 18:08 19-01-2018   
za4ot
 476 EGP


Рейтинг канала: 5(187)
Репутация: 15
Сообщения: 3251
Откуда: Яма Изобилия
Зарегистрирован: 08.08.2012
Появилась пара вопросов:
1. Как скриптом создать корабль не в определенных координатах, а чтоб он вылетал из ближайших к игроку ворот? Ну как в миссиях, только без использования MD.
2. Есть ли кто-либо свободно владеющий MD и желающий написать одну миссию по доставке 95 кораблей? Хотелось бы переписать сюжетку Гильдия археологов на MD, но тямы не хватает.
_________________
Пираты - наше всё!
    Добавлено: 20:22 28-08-2018   
DNA78
 420 EGP


Рейтинг канала: 9(1060)
Репутация: 70
Сообщения: 1193
Откуда: Кыргызстан
Зарегистрирован: 12.11.2008
za4ot :
1. Как скриптом создать корабль не в определенных координатах, а чтоб он вылетал из ближайших к игроку ворот? Ну как в миссиях, только без использования MD.

 1   (кликните здесь для просмотра)
Код:

$sector = [PLAYERSHIP]-> get sector
$x = [PLAYERSHIP]-> get x position
$y = [PLAYERSHIP]-> get y position
$z = [PLAYERSHIP]-> get z position
$x.temp = $x
$y.temp = $z
$sector.temp = $sector
$Vx = [FALSE]
$Vy = [FALSE]
if $x.temp < 0
 $x.temp = 0 - $x.temp
 $Vx = [TRUE]
end

if $y.temp < 0
 $y.temp = 0 - $y.temp
 $Vy = [TRUE]
end

if $y.temp > $x.temp
 if $Vy
  $gate = $sector-> get south warp gate
  skip if $gate -> exists
   gosub Vx:

 else
  $gate = $sector-> get north warp gate
  skip if $gate -> exists
   gosub Vx:
 end

else
 if $Vx
  $gate = $sector-> get west warp gate
  skip if $gate -> exists
   gosub Vy:

 else
  $gate = $sector-> get east warp gate
  skip if $gate -> exists
   gosub Vy:
 end
end

skip if $gate -> exists
 return null

$sector.create = $gate -> get gate destination: return sector=1
$gate.create = $gate -> get gate destination: return sector=0
$x.create = $gate.create -> get x position
$y.create = $gate.create -> get y position
$z.create = $gate.create -> get z position
$ship = create ship: type={Xenon J} owner=[Xenon] addto=$sector.create x=$x.create y=$y.create z=$z.create
$ship -> add default items to ship
$ship -> set race logic control enabled to [FALSE]
$ret = $ship -> fly to sector $sector
do if $ret == [FLRET_NOCOMMANDS]
 $ship -> set race logic control enabled to [TRUE]
return null

Vx:
 if $Vx
  $gate = $sector-> get west warp gate
 else
  $gate = $sector-> get east warp gate
 end
endsub

Vy:
 if $Vy
  $gate = $sector-> get south warp gate
 else
  $gate = $sector-> get north warp gate
 end
endsub
return null

 2   (кликните здесь для просмотра)
Код:
$sector = [PLAYERSHIP]-> get sector
$x = [PLAYERSHIP]-> get x position
$y = [PLAYERSHIP]-> get y position
$z = [PLAYERSHIP]-> get z position
$x.temp = $x
$y.temp = $z
$sector.temp = $sector
$Vx = [FALSE]
$Vy = [FALSE]
if $x.temp < 0
 $x.temp = 0 - $x.temp
 $Vx = [TRUE]
end

if $y.temp < 0
 $y.temp = 0 - $y.temp
 $Vy = [TRUE]
end

if $y.temp > $x.temp
 if $Vy
  $gate = $sector-> get south warp gate
  skip if $gate-> exists
   gosub Vx:

 else
  $gate = $sector-> get north warp gate
  skip if $gate-> exists
   gosub Vx:
 end

else
 if $Vx
  $gate = $sector-> get west warp gate
  skip if $gate-> exists
   gosub Vy:

 else
  $gate = $sector-> get east warp gate
  skip if $gate-> exists
   gosub Vy:
 end
end

skip if $gate-> exists
 return null

$ship = create ship: type={Xenon J} owner=[Xenon] addto=null x=null y=null z=null
$ship-> add default items to ship
$ship-> set race logic control enabled to [FALSE]
$ret = $ship-> use jump drive: target=$gate
do if $ret == [FLRET_WARPED]
 $ship-> set race logic control enabled to [TRUE]
return null

Vx:
 if $Vx
  $gate = $sector-> get west warp gate
 else
  $gate = $sector-> get east warp gate
 end
endsub

Vy:
 if $Vy
  $gate = $sector-> get south warp gate
 else
  $gate = $sector-> get north warp gate
 end
endsub
return null

второй вариант даже более предпочтителен, так как не нужно ждать появление корабля из ворот, он появляется сразу.
_________________
Очевидное-невероятное

Последний раз редактировалось: DNA78 (12:25 29-08-2018), всего редактировалось 1 раз
    Добавлено: 11:18 29-08-2018   
za4ot
 476 EGP


Рейтинг канала: 5(187)
Репутация: 15
Сообщения: 3251
Откуда: Яма Изобилия
Зарегистрирован: 08.08.2012
Спасибо за отзывчивость. Будет время попробую оба варианта. Хочу уже дописать скрипт охотников за головами, чтоб они вылетали из ближайших ворот и делали игроку бо-бо. Они конечно и своим ходом могут до игрока долететь от какой-нибудь пиратской станции, но вот сколько им лететь придется, учитывая, что игрок на месте не сидит, а постоянно перемещается.
_________________
Пираты - наше всё!
    Добавлено: 17:59 29-08-2018   
Канал X3: Terran Conflict -> Модовый и скриптовый отсек X3: Terran Conflict: «[ДИСКУС]: Скриптописание. Проблемы и их решение.»
На страницу: Пред.  1, 2, 3 ... 53, 54, 55 ... 59, 60, 61  След.    Перейти:   Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Главное - успеть на вечерний клев - чтоб рыба потом не ''рассосалась'' по всем неклевым местам. (предупредил gavr17)

  » [ДИСКУС]: Скриптописание. Проблемы и их решение. | страница 54
Каналы: Новости | 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