Модостроение (вопросы и ответы)

Модераторы: by.@ztek, Постигший истину, Модераторы

Re: Модостроение (вопросы и ответы)

Сообщение ritchie » 16 июн 2016, 16:45

Подскажите плиз - как найти скрипты добавленые в консоль корабля? Интересует "Ракетный шквал" (он у M7M в доп коммандах). Нужно имя скрипта...

Добавлено спустя 27 секунд:
А еще лучше - как вообще искать...
ritchie
Trainee
Trainee
 
Сообщений: 106
Зарегистрирован: 14 окт 2015, 18:53
DSP: 1
Благодарил (а): 6 раз.
Поблагодарили: 6 раз.

Re: Модостроение (вопросы и ответы)

Сообщение by.@ztek » 16 июн 2016, 18:21

ritchie писал(а):Интересует "Ракетный шквал"

Там много скриптов перевязано. Собственно, команда "Ракетный шквал" как таковая инициализируется в скрипте !init.ship.commandpreload.pck, в строке "set ship command preload script: command={COMMAND_MISSILE_ATTACK} script='!ship.cmd.missile.attack.pre'". А сам обработчик (где выбираем цель, количество пусков и пуск) - !ship.cmd.missile.attack.std.pck (пуск ракет вот - = [THIS]->fire missile $best.miss from turret $i on $target)
.Лазим по скриптам, и смотрим, какие скрипты вызывает текущий скрипт, и что они возвращают (входящие переменные, и возвращаемые: arguments/return).
ritchie писал(а):А еще лучше - как вообще искать...

Смотря что хотим найти. Глобальные команды корабля прописываются в !init.ship.globalscriptmap, а дальше уже идут вызовы тех или иных скриптов... ;)
п.с. все, интернет кончился, позже зайду. :)
Совершенству нет предела...

За это сообщение автора by.@ztek поблагодарил:
ritchie
Рейтинг: 1.89%
 
Аватар пользователя
by.@ztek
Admin
Admin
 
Сообщений: 1813
Изображения: 2
Зарегистрирован: 06 фев 2011, 00:24
DSP: 196
Откуда: Минск, Беларусь
Благодарил (а): 193 раз.
Поблагодарили: 637 раз.

Re: Модостроение (вопросы и ответы)

Сообщение Gvozdoyatel » 16 июн 2016, 20:23

А как тогда сделать что бы 5000 микросхем появились на атмосферном лифте игрока, когда у игрока появляется атмосферный лифт, тогда на него добавляется 5000 микросхем?
Аватар пользователя
Gvozdoyatel
Skilled pilot
Skilled pilot
 
Сообщений: 315
Зарегистрирован: 31 май 2016, 11:01
DSP: 4
Благодарил (а): 4 раз.
Поблагодарили: 16 раз.

Re: Модостроение (вопросы и ответы)

Сообщение by.@ztek » 16 июн 2016, 20:57

Проверять в цикле, например, каждые 20 минут, есть ли у игрока хоть 1 Лифт. Если есть - давать и выход, нету - опять ждать. Тот же самый скрипт, что я показывал, только расу=игрок выставить, ну и добавить все в цикл с таймингом 20-30 минут. В Доп. Цикл все связать.
Совершенству нет предела...
Аватар пользователя
by.@ztek
Admin
Admin
 
Сообщений: 1813
Изображения: 2
Зарегистрирован: 06 фев 2011, 00:24
DSP: 196
Откуда: Минск, Беларусь
Благодарил (а): 193 раз.
Поблагодарили: 637 раз.

Re: Модостроение (вопросы и ответы)

Сообщение ritchie » 16 июн 2016, 21:06

by.@ztek писал(а):Проверять в цикле, например, каждые 20 минут, есть ли у игрока хоть 1 Лифт. Если есть - давать и выход, нету - опять ждать. Тот же самый скрипт, что я показывал, только расу=игрок выставить, ну и добавить все в цикл с таймингом 20-30 минут. В Доп. Цикл все связать.
А проверку - получал или не получал? так каждые 20 минут будет добавляться по 5к чипов.
ritchie
Trainee
Trainee
 
Сообщений: 106
Зарегистрирован: 14 окт 2015, 18:53
DSP: 1
Благодарил (а): 6 раз.
Поблагодарили: 6 раз.

Re: Модостроение (вопросы и ответы)

Сообщение by.@ztek » 16 июн 2016, 21:17

ritchie писал(а):А проверку - получал или не получал? так каждые 20 минут будет добавляться по 5к чипов.

:D Читаем внимательно:
by.@ztek писал(а):Если есть - давать и выход,


Добавлено спустя 2 минуты 35 секунд:
Вообще, надо бы добавить проверку на свободный трюм, и пихать туда уже либо сколько влезет (если занят трюм), либо 5 000 схем. Так правильно будет вообще. ;)
Совершенству нет предела...
Аватар пользователя
by.@ztek
Admin
Admin
 
Сообщений: 1813
Изображения: 2
Зарегистрирован: 06 фев 2011, 00:24
DSP: 196
Откуда: Минск, Беларусь
Благодарил (а): 193 раз.
Поблагодарили: 637 раз.

Re: Модостроение (вопросы и ответы)

Сообщение Gvozdoyatel » 16 июн 2016, 22:13

Я не знаю как правильно написать пока у игрока есть ......

Добавлено спустя 8 минут 29 секунд:
как считать время?

Добавлено спустя 1 минуту 32 секунды:
by.@ztek ты каждый час заходишь? Когда лучше писать что бы не получать ответ за час?
Аватар пользователя
Gvozdoyatel
Skilled pilot
Skilled pilot
 
Сообщений: 315
Зарегистрирован: 31 май 2016, 11:01
DSP: 4
Благодарил (а): 4 раз.
Поблагодарили: 16 раз.

Re: Модостроение (вопросы и ответы)

Сообщение by.@ztek » 16 июн 2016, 22:28

Завтра напишу скрипт. Проверку на трюм надо? Это еще сложнее будет - там математика работает ужо :D : берем товар, берем его класс, проверяем на возможность нести этот класс груза нашим кораблем...если все соотв. - берем свободный трюм у текущего корабля и сравниваем с 5000*Объем нашего товара. Это я делаю в идеале, под любой корабль, под любой товар. Если объем трюма позволяет - пихаем туда груз, нет - вычисляем, сколько можно груза пихнуть в трюм. Да-Нет - пихаем. Работать должно разово: пока скрипт не запущен - у игрока может быть 1-200 кораблей. Если 0 кораблей - ждем 20-30 минут (к примеру), ищем опять корабль...Если в момент запуска скрипта у игрока было 100 таких кораблей - на каждом корабле такую процедуру проводим. Кажется сложным, на самом деле - просто. ;)

Добавлено спустя 46 секунд:
Gvozdoyatel писал(а):by.@ztek ты каждый час заходишь? Когда лучше писать что бы не получать ответ за час?

Захожу, когда минутка есть. :D

Добавлено спустя 9 минут 52 секунды:
Gvozdoyatel писал(а):by.@ztek ты каждый час заходишь? Когда лучше писать что бы не получать ответ за час?

Нормальный наезд :D Пиши каждые 2 часа в четные дни. Это пока намек. ;)
Совершенству нет предела...
Аватар пользователя
by.@ztek
Admin
Admin
 
Сообщений: 1813
Изображения: 2
Зарегистрирован: 06 фев 2011, 00:24
DSP: 196
Откуда: Минск, Беларусь
Благодарил (а): 193 раз.
Поблагодарили: 637 раз.

Re: Модостроение (вопросы и ответы)

Сообщение Gvozdoyatel » 16 июн 2016, 22:40

by.@ztek писал(а):Проверку на трюм надо?

Да
Аватар пользователя
Gvozdoyatel
Skilled pilot
Skilled pilot
 
Сообщений: 315
Зарегистрирован: 31 май 2016, 11:01
DSP: 4
Благодарил (а): 4 раз.
Поблагодарили: 16 раз.

Re: Модостроение (вопросы и ответы)

Сообщение by.@ztek » 16 июн 2016, 23:03

В скриптописании главное - логика. :bv: Блин, подумай сам. Учебник же есть там у тебя, читал?
п.с. Намечаются завтра дела, могу и не написать скрипт... :av:
Совершенству нет предела...
Аватар пользователя
by.@ztek
Admin
Admin
 
Сообщений: 1813
Изображения: 2
Зарегистрирован: 06 фев 2011, 00:24
DSP: 196
Откуда: Минск, Беларусь
Благодарил (а): 193 раз.
Поблагодарили: 637 раз.

Re: Модостроение (вопросы и ответы)

Сообщение Gvozdoyatel » 17 июн 2016, 07:50

by.@ztek писал(а):читал?

Читал, только некоторые команды из учебника не соответствуют командам из эксскриптора, по этому я открываю уже готовые скрипты и с яндекс переводчиком разбираю что и как
Аватар пользователя
Gvozdoyatel
Skilled pilot
Skilled pilot
 
Сообщений: 315
Зарегистрирован: 31 май 2016, 11:01
DSP: 4
Благодарил (а): 4 раз.
Поблагодарили: 16 раз.

Re: Модостроение (вопросы и ответы)

Сообщение by.@ztek » 17 июн 2016, 08:48

Набросал скрипт на коленке :D
Разберешь, что и как там, или подсказать?
Код: выделить все
* find all ships class Terran Atmospheric Lifter
label:
$massiv = get ship array: of race {Player} class/type={Terran Atmospheric Lifter}
* count ships
if $massiv
  $count = size of array $massiv
  $ware={Microchips}
  $count.ware=5000
  $volume = get volume of ware $ware
  $ware.volume=$count.ware*$volume
  * cycle. added ship wares
  while $count
    dec $count =
    $ship = $massiv[$count]
    if $ship -> can transport ware $ware
      $cargobay= $ship-> get free volume of cargo bay
      if $cargobay>=$ware.volume
        = $ship->add $count.ware units of $ware
      else
        $count.ware=$cargobay/$volume
        = $ship->add $count.ware units of $ware
      end
      * wait
      = wait 200 ms
    end
  end
else
  = wait 1200000 ms
  goto label label
end
return null
Совершенству нет предела...
Аватар пользователя
by.@ztek
Admin
Admin
 
Сообщений: 1813
Изображения: 2
Зарегистрирован: 06 фев 2011, 00:24
DSP: 196
Откуда: Минск, Беларусь
Благодарил (а): 193 раз.
Поблагодарили: 637 раз.

Re: Модостроение (вопросы и ответы)

Сообщение Gvozdoyatel » 17 июн 2016, 08:50

by.@ztek писал(а):Разберешь, что и как там, или подсказать?

Сам попробую, яндекс в помощь

Добавлено спустя 45 минут 57 секунд:
А как на счёт генерации объекта который ты хочешь что бы появился и принадлежал какой то расе и у него было своё имя
Аватар пользователя
Gvozdoyatel
Skilled pilot
Skilled pilot
 
Сообщений: 315
Зарегистрирован: 31 май 2016, 11:01
DSP: 4
Благодарил (а): 4 раз.
Поблагодарили: 16 раз.

Re: Модостроение (вопросы и ответы)

Сообщение by.@ztek » 17 июн 2016, 09:48

Gvozdoyatel писал(а):А как на счёт генерации объекта который ты хочешь что бы появился и принадлежал какой то расе и у него было своё имя

Не пробовал ни разу. Хотя можно поэкспериментировать. Посмотри скрипты чит-пака, там есть такое.
Совершенству нет предела...
Аватар пользователя
by.@ztek
Admin
Admin
 
Сообщений: 1813
Изображения: 2
Зарегистрирован: 06 фев 2011, 00:24
DSP: 196
Откуда: Минск, Беларусь
Благодарил (а): 193 раз.
Поблагодарили: 637 раз.

Re: Модостроение (вопросы и ответы)

Сообщение Gvozdoyatel » 17 июн 2016, 09:58

сохранить не получилось, пишет - Индекс находился вне границ массива. что не так?
label:
$massiv = get ship array: of race {Player} class/type={Terran Atmospheric Lifter}
if $massiv
$count = size of array $massiv
$Microchips={Microchips}
$count.Microchips=5000
$volume = get volume of ware $Microchips
$Microchips.volume=$count.Microchips*$volume
while $count
dec $count =
$ship = $massiv[$count]
if $ship -> can transport ware $Microchips
$cargobay= $ship-> get free volume of cargo bay
if $cargobay>=$Microchips.volume
= $ship->add $count.Microchips units of $Microchips
else
$count.Microchips=$cargobay/$volume
= $ship->add $count.Microchips units of $Microchips
end
= wait 200 ms
end
end
else
= wait 1200000 ms
goto label
end
return null

Добавлено спустя 2 минуты 32 секунды:
Я не много изменил названия переменных и ещё там было перейти к метке метке
Аватар пользователя
Gvozdoyatel
Skilled pilot
Skilled pilot
 
Сообщений: 315
Зарегистрирован: 31 май 2016, 11:01
DSP: 4
Благодарил (а): 4 раз.
Поблагодарили: 16 раз.

Re: Модостроение (вопросы и ответы)

Сообщение ritchie » 17 июн 2016, 12:44

Gvozdoyatel писал(а):А как на счёт генерации объекта который ты хочешь что бы появился и принадлежал какой то расе и у него было своё имя

<RefObj> spawn NPC personal ship: rank=<Var/Number>


engine v. 32
• Команда создаёт или заменяет корабль NPC. Тип корабля и его вооружение будут зависеть от указания ранга rank=<Var/Number>.
• Ранг задаётся от 0 до 1000000. Фактически это боевой ранг персонажа. Вы можете передавать в качестве этого параметра боевой ранг игрока, чтобы создать персонажа с соразмерной силой. Таким образом по ходу игры персонаж будет усиливаться. Созданные данной командой корабли имеют уникальные имена. Очень даже красивые, например "Центурион", "Быстрая Смерть", "Быстрый Убийца" и другие.
• В случае создания нового корабля, корабль создается абстрактно. Т.е. корабль не будет физически присутствовать ни в одном окружении, ни на станции, ни в каком либо секторе. Для этого вам потребуется самим переместить корабль в нужное окружение командой <RefObj> put into environment <RefObj>.
• При пересоздании корабля старый не уничтожается.



Отсюда

За это сообщение автора ritchie поблагодарил:
by.@ztek
Рейтинг: 1.89%
 
ritchie
Trainee
Trainee
 
Сообщений: 106
Зарегистрирован: 14 окт 2015, 18:53
DSP: 1
Благодарил (а): 6 раз.
Поблагодарили: 6 раз.

Re: Модостроение (вопросы и ответы)

Сообщение by.@ztek » 17 июн 2016, 13:19

Gvozdoyatel писал(а):сохранить не получилось, пишет - Индекс находился вне границ массива. что не так?

Почему-то у меня получилось всё. Я вечером порверю в игре, конечно, на коленке-то писал. Вот мой тот скрипт.
[Для просмотра изображения необходимо включить JavaScript]
и с goto label label все правильно. Верхнюю метку можно было обозвать, например, starting: , тогда команда выглядела бы goto label starting.
У вас нет доступа для просмотра вложений в этом сообщении.
Совершенству нет предела...
Аватар пользователя
by.@ztek
Admin
Admin
 
Сообщений: 1813
Изображения: 2
Зарегистрирован: 06 фев 2011, 00:24
DSP: 196
Откуда: Минск, Беларусь
Благодарил (а): 193 раз.
Поблагодарили: 637 раз.

Re: Модостроение (вопросы и ответы)

Сообщение Gvozdoyatel » 17 июн 2016, 14:23

А когда скрипт будет готов его надо просто в папку Scripts перенести?

Добавлено спустя 3 минуты 39 секунд:
зачем нужны строки со звёздочками, они же не читаются ексскриптором?

Добавлено спустя 37 минут 58 секунд:
Как создать перса который слоняется по заданым секторам, к нему враждебно относятся только 3 расы, даёт задания, с именем Винтерс? (при игре за него дожна повышаться репа у ксенов)
Аватар пользователя
Gvozdoyatel
Skilled pilot
Skilled pilot
 
Сообщений: 315
Зарегистрирован: 31 май 2016, 11:01
DSP: 4
Благодарил (а): 4 раз.
Поблагодарили: 16 раз.

Re: Модостроение (вопросы и ответы)

Сообщение by.@ztek » 17 июн 2016, 16:01

Gvozdoyatel писал(а):А когда скрипт будет готов его надо просто в папку Scripts перенести?

Да, потом запустить его в игре. Активируем встроенный скрипт-редактор (сменить имя пилота на Thereshallbewings), заходим в список скриптов, находим наш, выбираем наш скрипт и запускаем его кнопкой R. Далее "enter", "enter". Все, если есть нужный корабль, добавится груз, нету - через 20 минут снова опрос собственности игрока.
Gvozdoyatel писал(а):зачем нужны строки со звёздочками, они же не читаются ексскриптором?

Это просто комментарии, для облегчения написания (для тебя :D ).
Gvozdoyatel писал(а):Как создать перса который слоняется по заданым секторам, к нему враждебно относятся только 3 расы, даёт задания, с именем Винтерс? (при игре за него дожна повышаться репа у ксенов)

Это проще сделать из MD скрипта.
Совершенству нет предела...
Аватар пользователя
by.@ztek
Admin
Admin
 
Сообщений: 1813
Изображения: 2
Зарегистрирован: 06 фев 2011, 00:24
DSP: 196
Откуда: Минск, Беларусь
Благодарил (а): 193 раз.
Поблагодарили: 637 раз.

Re: Модостроение (вопросы и ответы)

Сообщение Gvozdoyatel » 17 июн 2016, 16:12

by.@ztek писал(а):Это проще сделать из MD скрипта.

Уже поздно, процесс пошёл :) И ещё кое что, как создать новый объект, привязать к нему текстуру, сменить имя и задать параметры, например где будет тусить владыка Ксенонов конечно на мамка-шипе, тогда как создать мамка-шип?

Добавлено спустя 5 минут 56 секунд:
Мамка-шип это тот летающий дом который был ещё в X-Tension, только тсс это секрет :al:
Аватар пользователя
Gvozdoyatel
Skilled pilot
Skilled pilot
 
Сообщений: 315
Зарегистрирован: 31 май 2016, 11:01
DSP: 4
Благодарил (а): 4 раз.
Поблагодарили: 16 раз.

Пред.След.

Вернуться в X3: Time Of The Truth

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2