Тема: [MS] Руководство по командам Модульки или header_operations  (Прочитано 30449 раз)

Ответ #50 07 Сентября, 2011, 08:02
0
Понял Leon473. Спасибо.
А есть ли возможность добавлять собственные функции? В каком файле храняться их коды?
Например, если взять код troop_is_hero, то его можно легко преобразовать в troop_is_female.
Это намного упростило бы озвучку разнополых юнитов.
Ответ #51 07 Сентября, 2011, 08:14
0
А есть ли возможность добавлять собственные функции? В каком файле храняться их коды?
Например, если взять код troop_is_hero, то его можно легко преобразовать в troop_is_female.
Это намного упростило бы озвучку разнополых юнитов.
Возможность то есть, но у нас нет возможности воспользоваться этой возможностью :) Все команды зарыты в движок игры, поэтому их могут изменять только те у кого есть исходники движка.
Ответ #52 08 Октября, 2011, 11:31
0
Подскажите пожалуйста. Есть ли функция, позволяющая приписывать к именам лордов приставки типа Count или Boyar. Если да, то в каком слоте потом хранится новое имя.
Когда лорд переходит из фракции во фракцию, ему каждый раз добавляются такие приставки. И их бывает по несколько сразу. Вот я и подумал, что можно самому давать разные титулы.
Ответ #53 19 Октября, 2011, 07:31
0
растолкуете пожалуйста операцию -
(party_set_extra_icon, <party_id>, <map_icon_id>, <up_down_distance_fixed_point>, <up_down_frequency_fixed_point>, <rotate_frequency_fixed_point>, <fade_in_out_frequency_fixed_point>) начиная с up_down_distance_fixed_point
откуда до куда дистанция?

зарание Спасибо за ответ
Ответ #54 14 Декабря, 2011, 11:50
0
Наконец-то нашел нужную тему. Я поначалу вообще не мог понять логики некоторых блоков, зная несколько разных языков программирования. Вроде условия, циклы, а работает иначе. Еще раз спасибо! :thumbup:

Но вопрос. Не могу найти рабочего способа получить текущие координаты партии игрока на глобальной карте (не стартовые). Как-то даже в списках команд об этом не говориться.

Пробовал
(party_get_position, reg3, "p_main_party"),
или
(position_get_x, reg3, "p_main_party"),
(position_get_y, reg4, "p_main_party"),
и еще некоторые команды вслепую
{reg3} и {reg4} выводятся в тексте в меню лагеря.
Но либо нули, либо ошибки, либо явно не координаты.
Ответ #55 14 Декабря, 2011, 15:10
0
YaLAS,
Цитировать (выделенное)
в лаунчире ставишь галочки напротив "включить режим редактирования" и "показывать частоту кадров", во время игры на глобальной карте нажимаешь ctrl+E
Ответ #56 14 Декабря, 2011, 21:53
0
(party_get_position, reg3, "p_main_party"),
эта команда, все правильно

только позицию нужно заносить не в reg а в pos
вот так
(party_get_position, pos3, "p_main_party"),
это специальный регистр для позиций, который может хранить сразу три координаты
чтобы получить какую то одну координату надо

(party_get_position, pos3, "p_main_party"),
(position_get_x, reg3, pos3),
(position_get_y, reg4, pos3),
(position_get_z, reg5, pos3),

т.е. извлекается координата уже из регистра позиций

но если просто посмотреть где партия игрока, то лучше как Van написал
Ответ #57 15 Декабря, 2011, 08:06
0
Цитировать (выделенное)
в лаунчире ставишь галочки напротив "включить режим редактирования" и "показывать частоту кадров", во время игры на глобальной карте нажимаешь ctrl+E
У вас правда это работает? Конечно же я это пробовал. Еще советуют Z удерживать, но это никаких мне координат не выводит. И вообще ничего не происходит. Пробовал и на Варбанде и на Истории героя.

(party_get_position, pos3, "p_main_party"),
(position_get_x, reg3, pos3),
(position_get_y, reg4, pos3),
(position_get_z, reg5, pos3),
Вот спасибо, а это то, что нужно. А то как-то вслепую угадываю.
Ответ #58 15 Декабря, 2011, 08:11
0
чтобы координаты показывало надо еще вроде в лаунчире поставить "показывать частоту кадров" =/
Ответ #59 15 Декабря, 2011, 13:14
0
У вас правда это работает? Конечно же я это пробовал.

Работает, если сделать все как написал shturmfogel
Ответ #60 17 Декабря, 2011, 07:48
0
Тут есть один момент, не очень понятный. На глобальной карте у всех объектов координаты дробные, а если считываешь, то они как бы умножаются на 100 и становятся целыми. Например:  у "p_town_1" х=-17,6, а когда
      (party_get_position, pos1, "p_town_1"),
      (position_get_x, reg0, pos1),     
      (display_message, "@{!}  {reg0}"),
На экран выводится -1760.    То есть, при расчётах надо орентироваться на     -1760 ?    =/
Ответ #61 20 Декабря, 2011, 09:18
0
FinGall, да это я уже заметил. Но мне и того хватило, это в основном для расположения новых объектов на карте, так что глазами "обрабатывается" отлично.
Ответ #62 20 Декабря, 2011, 10:31
0
Цитировать (выделенное)
они как бы умножаются на 100
Они умножаются на текущий fixed_point_multiplier.
Через WSE можно напрямую с дробными работать.
Ответ #63 20 Декабря, 2011, 14:08
0
RongarЭто, вот эта функция?
(set_fixed_point_multiplier, <value>),

Мне ещё не понятно, есть ли у партий идентификаторы? Вроде, должны быть. Но когда пытаешься вывести их на экран:
(troop_get_slot, ":party_no", "trp_x", slot_troop_leaded_party),
(assign, reg0, ":party_no"),
(display_message, "@{!} X = {reg0}"),
то всегда выдаёт 0.
Может регистры reg их не воспринимают? =/
« Последнее редактирование: 20 Декабря, 2011, 14:26 от FinGall »
Ответ #64 20 Декабря, 2011, 15:30
0
Это, вот эта функция?
(set_fixed_point_multiplier, <value>),
Да.

Мне ещё не понятно, есть ли у партий идентификаторы? Вроде, должны быть. Но когда пытаешься вывести их на экран:
(troop_get_slot, ":party_no", "trp_x", slot_troop_leaded_party),
trp_x — это чё? slot_troop_leaded_party прописывается только у лордов. У остальных он 0.
Ответ #65 20 Декабря, 2011, 20:04
0
trp_x — это собирательный образ всех трупсов.
Похоже, дело было в том, что я проверял №партии в скрипте "game_start". А лорды появляются в игре через 1-2 дня. Видно, партии ещё не загружены.
Потом, номера появляются. Они как бы продолжают номера партий из module_parties. Но распределяются немного странно. Не так, как лорды расписанны в module_troops. Вроде бы, в том порядке, как я их добавлял в игре. Хотя, может я и ошибаюсь.
Ответ #66 12 Августа, 2012, 19:38
0
Что означают эти операнды:

val_lshift
val_rshift
val_add
val_sub
val_mul
val_div
val_max
val_min
val_mod
Ответ #67 12 Августа, 2012, 19:48
0
val_lshift/val_rshift — побитовый сдвиг налево/направо (умножение/деление на два в степени)
val_add val_sub val_mul val_div — прибавить, вычесть, домножить, поделить
val_max/val_min — выбрать большее/меньше
val_mod — остаток от деления.
У всех команд первый аргумент  является первым операндом и результатом, второй аргумент является вторым операндом.

0 Пользователей и 1 Гость просматривают эту тему.

Теги: