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

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

Аватар пользователя
#1277
как можно проверить скриптом - количество погибших в бою с конкретным героем существ и вывести в переменную?

Whatever
В ответ пользователю Heroist
Аватар пользователя
#1278
Heroist
как можно проверить скриптом - количество погибших в бою с конкретным героем существ и вывести в переменную?
Есть целая серия функций, заточенных под это. Пример их использования есть в скрипте кампании "Бегство к спасению" миссии "Дела и пути тьмы".
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Аватар пользователя
#1279
ладно, спасибо, посмотрю.

Добавлено через 1 час 24 минуты
и еще вопросик: А можно ли изменять прогресс задания, не пользуясь большим количеством прогресс-текстов?

Например, я хочу сделать 15-ти ходовое задание. Но при этом будет достаточно, если в его прогрессе просто будет показано число, меняющееся от 0 до 15 соотвественно. Неужели, мне обязательно создать 15 отдельных txt файлов внутри prоgressа, с наименованием соотв числа? Можно-ли обойтись одним прогрессом с <изменяющейся переменной> ?

Whatever
Аватар пользователя
#1280
Я ещё сегодня задавал вопрос о том, что Вас интересует, или это не то?
502 Bad Gateway
__________________________________
nginx/0.8.54
Аватар пользователя
#1281
Так нет, если я правильно Вас понял, то тут Вы спрашивали про flying sign, а там можно назначить переменную прямо внутри вызова функции, как показал уважаемый RedHeavenHero. А мне необходимо нечто подобное, но при написании задания. А создавать задания можно только прямо в редакторе, без помощи скрипта. Так что даже если я пишу в задании:

"Записок собрано" < value=zapiski > , это не поможет, ведь я вызываю после эту запись не через flying sign, а через SetObjectiveProgress...А там не куда вставить волшебную строчку {zapiski=zapiski} . Знаю, что пишу запутано, но как могу =)

Whatever
В ответ пользователю Dyrman
Аватар пользователя
#1282
Dyrman
Кто может предложить вариант определения скриптами, через какой режим игра запущена: мультиплеер или синглплеер?
function IsMultiplayer()
local p=0
for i=1,8 do
if IsAIPlayer(i) == 0 then
p=p+1
end
if p > 1 then
return 1
end
end
for i,hero in GetObjectNamesByType('HERO') do
if IsAIPlayer(GetObjectOwner(GetHeroTown(hero) or hero)) == 1 then
SetHeroCombatScript(hero, '/mult.xdb#xpointer(/Script)')
sleep()
local ind = GetLastSavedCombatIndex()
StartCombat(hero,nil,1,1,1)
repeat sleep() until ind ~= GetLastSavedCombatIndex()
ResetHeroCombatScript(hero)
if GetGameVar('single') ~= '1' then return 1 end
break
end
end
return nil
end
/mult.xdb содержит ссылку на файл /mult.lua. Оба находятся в корневом каталоге, без промежуточных папок.
Содержание /mult.lua:
SetGameVar('single', '1')


Добавлено через 23 минуты
Heroist
ладно, спасибо, посмотрю.

Добавлено через 1 час 24 минуты
и еще вопросик: А можно ли изменять прогресс задания, не пользуясь большим количеством прогресс-текстов?

Например, я хочу сделать 15-ти ходовое задание. Но при этом будет достаточно, если в его прогрессе просто будет показано число, меняющееся от 0 до 15 соотвественно. Неужели, мне обязательно создать 15 отдельных txt файлов внутри prоgressа, с наименованием соотв числа? Можно-ли обойтись одним прогрессом с <изменяющейся переменной> ?
Скорее всего нет. Во всяком случае, я о такой возможности не знаю.
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Аватар пользователя
#1283
Недавно через скрипты реализовал увеличение дальности обзора героям (через DefaultStats и types не работало). Это было сделано через скрипт OpenCircleFog, привязанный на эмулятор триггера на перемещение героев.

А теперь вопрос на засыпку:
Существует ли возможность скриптами закрывать часть карты от игрока?

И второй вопрос:
Существует ли возможность двойной отстройки города за ход? Т.е. существует ли разблокировка города?

И третий вопрос:
Можно ли как-то отследить прикосновение героя с караваном?
Разработчик Heroes 5.5 WarGame Edition.
Сайт проекта - пока неактивен
Автор Асимметричных шахмат
Аватар пользователя
#1284
Существует ли возможность скриптами закрывать часть карты от игрока?
Сам такой вещью интересовался, но вроде как нет, нельзя.
Существует ли возможность двойной отстройки города за ход? Т.е. существует ли разблокировка города?
Можно построить здание в городе насильно. По поводу разблокировки: специальной функции такой не видел, но кто знает, может блокировка его с помощью IsObjectEnabled и затем разблокировка этой же функцией сбросит какие-нибудь настройки и можно будет здание построить второй раз? Мне кажется, можно попробовать.
Можно ли как-то отследить прикосновение героя с караваном?
Это у нас РедХевен спец по получению имён объектов заданного типа. Если создавать караван скриптами, то можно выбрать ему имя и тогда совсем без проблем.
 

К А
Стикеры GBF в Telegram
Аватар пользователя
#1285
RedHeavenHero
Скорее всего нет. Во всяком случае, я о такой возможности не знаю.

Блин, печально. Неужели никак нельзя воздействовать на задание скриптами? Может быть, хотя бы на его описание или название? Я где-то видел, что можно изменять описание героя, хотя, с моим знанием английского, могу предположить, что неправильно перевел.

Я вообще думал, что это не сложно...Жаль. Ладно, пойду делать 100 прогрессов. =)

Whatever
Аватар пользователя
#1286
Героист, может, и можно. Во всяком случае мне казалось, что я видел такое на одной из карт разработчиков. Задания a-la собрать 100 крестьян точно так умеют.
 

К А
Стикеры GBF в Telegram
Аватар пользователя
#1287
кстати да. Но я уже сделал 50 =_)

кстати, как сделать так, чтоб несколько fly sign сразу не наплывало друг на друга?

Добавлено через 6 минут
[/U]насчет разработчиков - сейчас погляжу. Вчера по совету RedHeavenHero я нашел там отличный скрипт на определение кол погибших существ. Скорее всего, эта функция все-таки влияет на задание, т.к там было несколько переменных, типа assasins_dead, которые затем нигде больше не всплывали. Есть подозрение, что "всплывали" они уже не в скрипте, а в описании прогресса задания. В любом случае, спасибо за совет.

Добавлено через 33 минуты
нет, нигде не нашел обновления прогресса, увы. Даже в задании на 1000 голов =)

Whatever
В ответ пользователю Heroist
Аватар пользователя
#1288
Heroist
кстати, как сделать так, чтоб несколько fly sign сразу не наплывало друг на друга?

Поставить паузы между ними.
502 Bad Gateway
__________________________________
nginx/0.8.54
Аватар пользователя
#1289
да, пришлось так и сделать. ..

Добавлено через 15 минут
вот, еще возник вопрос:

я хочу обнулить ману герою. пишу так:
ChangeHeroStat ('Berein' , 8 , GetHeroStat ('Berein' , 8) - 1000)

1)
ChangeHeroStat ('Berein' , 8 , 0) -- не работает



2) а как убрать у героя 10 маны?
ChangeHeroStat ('Berein' , 8 , GetHeroStat ('Berein' , 8) - 10) -- не работает

Whatever
В ответ пользователю Heroist
Аватар пользователя
#1290
ChangeHeroStat не устанавливает характеристику а меняет её.
ChangeHeroStat('Berein', 8, -GetHeroStat('Berein', 8)) -- вся
ChangeHeroStat('Berein', 8, -10) -- десять
Карты для Героев Меча и Магии 5
Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога

Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
Аватар пользователя
#1291
ааа... блин, ступил. спасибо
Кстати, я тут немного переделал кампайную функцию по пересчету количества погибших врагов. Но она теперь работает странно. Не подскажите, что не так?

Trigger( COMBAT_RESULTS_TRIGGER, "combat_results" );

combat_result_last = -1;
c = 1
i = 0

function combat_results( c )
local we = -1
if GetSavedCombatArmyPlayer(c,1) == PLAYER_1 then
we = 1

if we == 1 then
if GetSavedCombatArmyHero(c,we) == 'Berein' then
local stackscount = GetSavedCombatArmyCreaturesCount(c,0);
creature,creaturescount,died = GetSavedCombatArmyCreatureInfo(c,0,i);
AddHeroCreatures('Berein' , 29 , died)
end;
end;

end
if GetSavedCombatArmyPlayer(c,0) == PLAYER_1 then
we = 0
end;
combat_result_last = c;
end;


--------

Whatever

Статистика

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