Перейти к содержанию

Сообщения от Скрипты

В ответ пользователю antonag07
antonag07
это я понял - просто для того , чтобы команда эта(MarkObjectAsVisited) работала объект должен быть выключен - вот и другие герои с ним не могут взаимодействовать
Ну а че пишу - обьект выключен если че. :confused:
:smile33:. Скриптами выключен он - иначе работает не так как надо. Взаимодействие через TOUCH_TRIGGER
В ответ пользователю JonnyP
JonnyP
Ну а че пишу - обьект выключен если че. :confused:
:smile33:. Скриптами выключен он - иначе работает не так как надо. Взаимодействие через TOUCH_TRIGGER

пробуй другой сопособ- выключение путем region_enter_and_stop_trigger
В ответ пользователю antonag07
antonag07
пробуй другой сопособ- выключение путем enter_and_stop_trigger
Другие способы не подойдут. Перепробовал уже. Просто не ясно че такая функция геморная :smile48: - не хочет правильно работать
а не может быть заковыкой с именем ? (т.е. игра считает ' geroy' весь массив героев под управлением игрока )
В ответ пользователю antonag07
antonag07
а не может быть заковыкой с именем ? (т.е. игра считает ' geroy' весь массив героев под управлением игрока )
Ну вот, гляди, часть скрипта:
num_stone=3; --kol-vo demon. kamnei
for i=1,num_stone do
SetObjectEnabled ('stone_'..i,nil);
Trigger (OBJECT_TOUCH_TRIGGER,'stone_'..i,'up_herolider');
end;

function up_herolider(geroi,object)
if geroi==Larion then
................
MarkObjectAsVisited (object,geroi);
.................
else
if geroi==Derin then
.................
MarkObjectAsVisited (object,geroi);
end;end;
end; ..............

Derin и Larion - константы(имена героев), там еще мног чего, но основа есть. При 'контакте' любого из героев, для второго героя при нажатии на обьект 'stone' ПКМ пишет 'уже посещалось', но если подойти то бонус дается нормально. Визуально не углядишь - был у обьекта один герой, или оба - неясно пол-ся.
Я и хотел сразу у тебя спросить про сообщение при наведенном курсоре ; ибо так получается не слишком играбельно.

А если запускать потоки на предмет проверки посещения объекта тем или иным героем ?
В ответ пользователю antonag07
antonag07
Я и хотел сразу у тебя спросить про сообщение при наведенном курсоре ; ибо так получается не слишком играбельно.

А если запускать потоки на предмет проверки посещения объекта тем или иным героем ?
думаю не стоит - таких обьектов минимум 50 будет, слишком затармаживать игру будет. Помимо этого будут и другие потоки. Ну ты вообщем не знаешь в чем дело?
В ответ пользователю JonnyP
JonnyP
думаю не стоит - таких обьектов минимум 50 будет, слишком затармаживать игру будет. Помимо этого будут и другие потоки. Ну ты вообщем не знаешь в чем дело?


не знаю - могу только предполагать ;

пробовал записывать такое значение - MarkObjectAsVisited(sObjectID,true);
где sObjectID - скриптовое имя объекта
?
Аватар пользователя
for i=1,num_stone do
SetObjectEnabled ('stone_'..i,nil);
Trigger (OBJECT_TOUCH_TRIGGER,'stone_'..i,'up_herolider');
end;

в циклах чтото не чисто, поробуйте иначе объект отрубать, например все три камня назвать по разному: stone01, stone02, stone03 и затем в скрипте выбрать их:

stone = {'stone01', 'stone02', 'stone03'};
stone.n = length(stone);
...
for i=1, stone.n do
SetObjectEnabled (stone,nil);
Trigger (OBJECT_TOUCH_TRIGGER,stone,'up_herolider');
end;
...
Карты для Heroes V: Повелители орды:
Multiplayer: Господство, Извечное противостояние, Война за Магию, Торговая империя, Анатомия войны, Эксперимент
SingleScenario: Последний Рубеж, Трон, Элиралис, Вернуться домой!, Лабиринты разума
Campaign: Колонизация
В ответ пользователю antonag07
antonag07
не знаю - могу только предполагать ;

пробовал записывать такое значение - MarkObjectAsVisited(sObjectID,true);
где sObjectID - скриптовое имя объекта
?
да - соответственно выдает ошибку что нет героя '1' на карте. и третим параметром true ставил - думал может в мануале ошибка. Эффект то в принципе и так достигается, но не для отдельного героя.

Добавлено через 2 минуты
KioM
в циклах чтото не чисто, поробуйте иначе объект отрубать, например все три камня назвать по разному: stone01, stone02, stone03 и затем в скрипте выбрать их:

stone = {'stone01', 'stone02', 'stone03'};
stone.n = length(stone);
...
for i=1, stone.n do
SetObjectEnabled (stone,nil);
Trigger (OBJECT_TOUCH_TRIGGER,stone,'up_herolider');
end;
...

этот цикл вполне рабочий - уже не раз проверено. Ты предлагаешь сделать то же самое, но более долгим способом. (а если у меня 1000 'stone' будет? ;) )
Аватар пользователя
я возможно не верно понял MarkObjectAsVisited работает но не для конкретного героя а для всех?
Карты для Heroes V: Повелители орды:
Multiplayer: Господство, Извечное противостояние, Война за Магию, Торговая империя, Анатомия войны, Эксперимент
SingleScenario: Последний Рубеж, Трон, Элиралис, Вернуться домой!, Лабиринты разума
Campaign: Колонизация
В ответ пользователю KioM
KioM
я возможно не верно понял MarkObjectAsVisited работает но не для конкретного героя а для всех?
да. Чуть выше постами я уже писал про это
В ответ пользователю JonnyP
JonnyP
да - соответственно выдает ошибку что нет героя '1' на карте. и третим параметром true ставил - думал может в мануале ошибка. Эффект то в принципе и так достигается, но не для отдельного героя.

)


а ошибка с именем героя всегда выдавалась или только после MarkObjectAsVisited(sObjectID,true);
?

( ибо в сообщ. 379 я выдвыинул и такое предположение )
В ответ пользователю antonag07
antonag07
а ошибка с именем героя всегда выдавалась или только после MarkObjectAsVisited(sObjectID,true);
?

( ибо в сообщ. 379 я выдвыинул и такое предположение )
конечно после того, как изменяешь параметры функции. Все ошибки ж легко print'ами ловятся. :)
Дааа, нехорошая будет проблема у игроков - не знать, какой обелиск посещен :smile13:
Аватар пользователя
а тогда сори не правильно понял (сонный уже :)), вот так делайте:

Trigger (OBJECT_TOUCH_TRIGGER,'stone_'..i,'up_herolider');

function up_herolider(geroi,object)
if geroi ==Larion then
................
-MarkObjectAsVisited (object,geroi);
+MarkObjectAsVisited (object,Larion);
.................
и т.п. т.е. напрямую на конкретного героя ссылайтесь
Карты для Heroes V: Повелители орды:
Multiplayer: Господство, Извечное противостояние, Война за Магию, Торговая империя, Анатомия войны, Эксперимент
SingleScenario: Последний Рубеж, Трон, Элиралис, Вернуться домой!, Лабиринты разума
Campaign: Колонизация

Статистика

Приветствуем новейшего участника: Emil