function OurTalkBox()
TalkBoxForPlayers( PLAYERFLT_1, nil,nil,'путь к тестовому файлу с описанием способности Вячеслава и вопросом, сколько существ конвертировать','путь к дополнительному текстовому файлу, не знаю, зачем нужен, поиграйтесь', 'callbackvamps', 1, 'путь к тексту заголовка окна','путь к тексту заголовка перед кнопками, тоже не знаю, зачем нужен, если не нужен, поставить nil', 0, 'путь к ответу один, рекомендую поставить там одно существо','путь ко второму ответу, в данном случае 5 существ','тут, например, 15 существ','тут, например, 50','наибольшее количество существ, которое можно конвертировать при данном количестве князей вампиров и данном количестве ресурсов у игрока' );
end;
function callbackvamp(nom)
if nom==1 then
if (((GetPlayerResource(1, GOLD)>=700) and (GetPlayerResource(1, MERCURY)>=1)) and (GetHeroCreatures('Visas', 155)>=1)) then
RemoveHeroCreatures('Visas',155,1);
AddHeroCreatures('Visas',89,1);
else
MessageBox('путь к файлу, где будет написано, что ресурсов не хватает');
end;
elseif nom==2 then
if (((GetPlayerResource(1, GOLD)>=3500) and (GetPlayerResource(1, MERCURY)>=5)) and (GetHeroCreatures('Visas', 155)>=5)) then
RemoveHeroCreatures('Visas',155,5);
AddHeroCreatures('Visas',89,5);
elseif ((GetPlayerResource(1, GOLD)<3500) or (GetPlayerResource(1, MERCURY)<5)) then
MessageBox('путь к файлу, где будет написано, что ресурсов не хватает');
elseif (GetHeroCreatures('Visas', 155)<5)
MessageBox('путь к файлу, где будет написано, что вампиров не хватает');
end;
elseif nom==3 then
if (((GetPlayerResource(1, GOLD)>=10500) and (GetPlayerResource(1, MERCURY)>=15)) and (GetHeroCreatures('Visas', 155)>=15)) then
RemoveHeroCreatures('Visas',155,15);
AddHeroCreatures('Visas',89,15);
elseif ((GetPlayerResource(1, GOLD)<10500) or (GetPlayerResource(1, MERCURY)<15)) then
MessageBox('путь к файлу, где будет написано, что ресурсов не хватает');
elseif (GetHeroCreatures('Visas', 155)<15)
MessageBox('путь к файлу, где будет написано, что вампиров не хватает');
end;
elseif nom==4 then
if (((GetPlayerResource(1, GOLD)>=35000) and (GetPlayerResource(1, MERCURY)>=50)) and (GetHeroCreatures('Visas', 155)>=50)) then
RemoveHeroCreatures('Visas',155,50);
AddHeroCreatures('Visas',89,50);
elseif ((GetPlayerResource(1, GOLD)<35000) or (GetPlayerResource(1, MERCURY)<50)) then
MessageBox('путь к файлу, где будет написано, что ресурсов не хватает');
elseif (GetHeroCreatures('Visas', 155)<50)
MessageBox('путь к файлу, где будет написано, что вампиров не хватает');
end;
elseif nom==5 then
max=GetPlayerResource(1, GOLD)/700 - mod(GetPlayerResource(1, GOLD),700)/700;
if max>GetPlayerResource(1, MERCURY) then
max=GetPlayerResource(1, MERCURY);
end;
if max>GetHeroCreatures('Visas', 155) then
max=GetHeroCreatures('Visas', 155);
end;
if max>0 then
RemoveHeroCreatures('Visas',155,max);
AddHeroCreatures('Visas',89,max);
else
MessageBox('путь к файлу, где Вы напишете, что игрок не может конвертировать ни одно существо');
end;
end;
if (GetHeroCreatures('Visas', 155)>0) then
QuestionBox('путь к текстовому файлу, где Вы спросите, не хочет ли игрок продолжить конвертацию оставшихся вампиров-князей', 'OurTalkBox', nil);
end;
end;
function vamps(hero)
if (hero=='Visas' and GetHeroCreatures('Visas', 155)>0 and GetDate(DAY_OF_WEEK)==1) then -- проверка выполнения всех условий
OurTalkBox;
end;
sleep(1); -- эта и последующая за ней строка не нужна, если Вы не включили строку, комментарий к которой дан ниже.
MakeHeroInteractWithObject('hero','имя_города');
end;
SetObjectEnabled('имя города',nil); -- эту строчку добавлять проблематично. Скажем так, лучше не стоит, не знаю, какие будут глюки. Она нужна, чтобы заход в город не предшествовал появлению окна конвертации, но ведь конвертировать можно и после посещения города, верно?
Trigger(OBJECT_TOUCH_TRIGGER,'имя города','vamps');
Rhenish, вот, с частичной конвертацией. Разбивка на отряды, конечно, гуд, но, во-первых, не совсем очевидно игрокам, во-вторых, не очевидна, мне, не уверен, что смогу написать скрипт на поиск слотов в войске ) А тут можно конвертировать вампиров по частям и сразу максимальное количество. Скрипт не проверял (!), нет возможности, но вроде нормально...