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

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

13 лет назад
С постерами самая красивая реализация и лучше всего воспринимается. К сожалению, никто не откликнулся на мою просьбу помочь на heroesleague, хотя в РТА играют многие :( придется самому заниматься
Аватар пользователя
13 лет назад
Да уж... Мою карту забросали ошибками и непонятками:D
Вот скрипт:
function VisitDeviltavern (heroname)
if heroname == 'Biara' then
if visiter_deviltavern == 0 then
BlockGame ();
GiveHeroSkill ('Biara', 98);
visiter_deviltavern = 1;
SetObjectiveState ('saobj', OBJECTIVE_COMPLETED, 1);
GiveExp ('Biara', 12000);
sleep (30);
UnblockGame ();
else MessageBox (map_path..'deviltavern-visited.txt');
end;
else MessageBox (map_path..'deviltavern-visiternobiara.txt');
end;
end;
Всё прекрасно работает, только вот навык не дают. Почему?
Аватар пользователя
13 лет назад
То есть, должны быть все навыки, необходимые для него? А как нибудь без этого сделать можно?
Аватар пользователя
13 лет назад
Подскажите, пожалуйста. У меня на карте множество однотипных объектов, в которых с помощью скрипта герой может покупать, существ. Имена объектов: "dw1","dw2","dw3" и т. д. Можно ли навесить на них один и тот же триггер, чтобы функция в качестве параметра выдавала номер объекта, в который герой зашел в виде числа. Тогда можно будет тип , кол-во и стоимость существ для каждого объекта задать массивом.
for i=1,15 do
Trigger(OBJECT_TOUCH_TRIGGER,"dw"..i,"dwellingF")
end;

cr_count={10,30,20.....20}
cr_type={92,94,96.....105}
cr_cost={20,40,80.....1000}

function dwellingF(hero, obj_name)
n=<как здесь получить номер объекта?>
AddHeroCreatures(hero,cr_type[n],cr_count[n])
SetPlayerResource(1,GOLD,GetPlayerResource(1,GOLD)-cr_count[n]*cr_cost[n]);
end;
В ответ пользователю Spectral
Аватар пользователя
13 лет назад
Spectral
Подскажите, пожалуйста. У меня на карте множество однотипных объектов, в которых с помощью скрипта герой может покупать, существ. Имена объектов: "dw1","dw2","dw3" и т. д. Можно ли навесить на них один и тот же триггер, чтобы функция в качестве параметра выдавала номер объекта, в который герой зашел в виде числа. Тогда можно будет тип , кол-во и стоимость существ для каждого объекта задать массивом.
for i=1,15 do
Trigger(OBJECT_TOUCH_TRIGGER,"dw"..i,"dwellingF")
end;

cr_count={10,30,20.....20}
cr_type={92,94,96.....105}
cr_cost={20,40,80.....1000}

function dwellingF(hero, obj_name)
n=<как здесь получить номер объекта?>
AddHeroCreatures(hero,cr_type[n],cr_count[n])
SetPlayerResource(1,GOLD,GetPlayerResource(1,GOLD)-cr_count[n]*cr_cost[n]);
end;
Вот это надо вставить туда, где определяется n.

for i=1,15 do
if obj_name=="dw"..i then
n=i
end
end


Добавлено через 4 минуты
Warrior777
То есть, должны быть все навыки, необходимые для него? А как нибудь без этого сделать можно?
Выход - "скрипточитерство":
consoleCmd('enable_cheats')
consoleCmd('add_skill 98')
Аватар пользователя
13 лет назад
Мне нужно в команды MessageBox и QuestionBox передать функции с параметром . Скажите, как это сделать?
В ответ пользователю Spectral
Аватар пользователя
13 лет назад
Spectral
Мне нужно в команды MessageBox и QuestionBox передать функции с параметром . Скажите, как это сделать?
Пример:
MessageBox(textPath.."vopros.txt", "function_ok('"..parametr1.."')");
Аватар пользователя
13 лет назад
Не получается отключить кружки под монстрами
Вот:
SetObjectEnabled("archer1",0)
SetMonsterSelectionType("archer1",0)

Консоль пишет:
ScriptError: Monster "archer1" is not disabled, cant change selection type
В ответ пользователю Spectral
Аватар пользователя
13 лет назад
Spectral
Не получается отключить кружки под монстрами
Вот:
SetObjectEnabled("archer1",0)
SetMonsterSelectionType("archer1",0)

Консоль пишет:
ScriptError: "archer1" is not disabled
Поставьте между ними sleep(1).
Да и второй аргумент в SetObjectEnabled должен быть nil.
В ответ пользователю Dyrman
Аватар пользователя
13 лет назад
Dyrman
Есть ли скрипт, который выставляет максимальное количество очков передвижения? Обязательно сверх номинала.
Например, стандартное 2500 стало бы 5000, но не заполнилось сразу зелёной полоской, то есть как бы сходил уже на пол хода, хотя, на самом деле, больше оков передвижения и не имел.

Попробуй вот этот

function movenext()
while GetHeroStat("Ossir",STAT_MOVE_POINTS)>1000 do
sleep(7)
end
print( 'movepoints<1000')
ChangeHeroStat("Ossir",STAT_MOVE_POINTS,1500)
end
function add_move_points()
startThread(movenext)
end

Trigger(NEW_DAY_TRIGGER,"add_move_points");
Добавляет 1500 очков каждый день
В ответ пользователю Spectral
Аватар пользователя
13 лет назад
Spectral
Попробуй вот этот

function movenext()
while GetHeroStat("Ossir",STAT_MOVE_POINTS)>1000 do
sleep(7)
end
print( 'movepoints<1000')
ChangeHeroStat("Ossir",STAT_MOVE_POINTS,1500)
end
function add_move_points()
startThread(movenext)
end

Trigger(NEW_DAY_TRIGGER,"add_move_points");
Добавляет 1500 очков каждый день
Это совсем не то(нет обязательного условия превышения допустимого значения МП). Абиссиду из NHF добавляется МП похожим образом, но это очень некрасиво - мы не можем заранее узнать, до куда у нас возможен ход.

Добавлено через 2 часа 33 минуты
Есть ли такая команда, которая очищает одну строчку в консоли?
В ответ пользователю Dyrman
Аватар пользователя
13 лет назад
Dyrman
Есть ли такая команда, которая очищает одну строчку в консоли?
В каком смысле "очищает"? Удаляет предыдущую что ли?
В ответ пользователю RedHeavenHero
Аватар пользователя
13 лет назад
RedHeavenHero
В каком смысле "очищает"? Удаляет предыдущую что ли?
Да.
Чтобы в консоли не отображалась.
Например, в консоли вывелась строчка "Гитлер капут".Я её хочу стереть, не затрагивая строчки До.

Статистика

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