Одиночные: Завеса срывается, Посол, Последний рывок, Эхо Пустоты
Кампания: Империя Единорога
Существа NCF
Орден Порядка: 1
Нейтралы: 1 2 3 4
New here? I'm Roha — want a quick tour?
For example, I tested sleep() and sleep(0.1), and sleep(1).
The first one sometimes doesn't have enough time. The second one is fine, the third one takes too long.))
Does it really discard the decimal part? Something's not right here. Multithreading.
for i=1,1000 do
print(""..i)
sleep(1)
print(""..i)
sleep(.999)
endwhile 1 do
local effect = "/Effects/_(Effect)/Spells/Bloodlust.xdb#xpointer(/Effect)"
for i=1,20 do
PlayVisualEffect(effect, '', '', 24+i, 20)
sleep(.999)
end
for i=1,20 do
PlayVisualEffect(effect, '', '', 24+i, 24)
sleep(1)
end
sleep(20)
end
You'll have to do that after creating each one.
Why after each one? ) After you've added all the new names to the array, right? Or did you do it differently?
----------------KIINA---------------------
NHF_Kiina_week = 0;
--NHF_Kiina_mass = {};
NHF_Kiina_mass_i = 0;
NHF_Kiina_mass_i_bad = 0;
NHF_Kiina_mass_preserv_creature = {{{44,145},{46,146},{48,147},{50,148},{52,149},{54,150},{56,151}},{10,9,7,4,3,2,1}};
function error_NHF_Kiina_F ()
print("error:NHF_Kiina_F");
end;
function NHF_HERO_F.Kiina (hero, mob)
errorHook(error_NHF_Kiina_F);
if hero then
NHF_Kiina_frendly_F(hero, mob)
return
end
if NHF_Kiina_week < ceil(GetDate(ABSOLUTE_DAY)/7) then
NHF_Kiina_week = ceil(GetDate(ABSOLUTE_DAY)/7);
local SizeMap = GetTerrainSize();
local count_mob = NHF_Kiina_mass_i_bad + (GetHeroLevel("Kiina")*NHF_Kiina_persent);
local temp_name = NHF_tempName_F("Kiina")
NHF_Kiina_mass_i_bad = 0;
local new_mobs = {n=0}
for i = 0, count_mob do
local x = random(SizeMap);
local y = random(SizeMap);
local z = random(GetMaxFloor()+1);
if IsTilePassable(x,y,z) == true then
NHF_Kiina_mass_i = NHF_Kiina_mass_i + 1;
local lvl_creature = floor((GetHeroLevel("Kiina")/5)+1)+random(3);
if lvl_creature > 7 then
lvl_creature = 7;
end;
local ID_creature = NHF_Kiina_mass_preserv_creature[1][lvl_creature][random(2)+1];
local name = "NHF_Kiina_creatures_"..NHF_Kiina_mass_i;
new_mobs.n = new_mobs.n + 1
new_mobs[new_mobs.n] = name
CreateMonster(name, ID_creature, NHF_Kiina_mass_preserv_creature[2][lvl_creature],x,y,z, MONSTER_MOOD_AGGRESSIVE, MONSTER_COURAGE_ALWAYS_FIGHT,(random(360)));
else
NHF_Kiina_mass_i_bad = NHF_Kiina_mass_i_bad +1;
end;
end;
sleep()
for i = 1, new_mobs.n do
local name = new_mobs
PlayVisualEffect("/Effects/_(Effect)/Objects/Water/Siren.(Effect).xdb#xpointer(/Effect)", name, name.."_Effect_Tag");
SetObjectEnabled(name, nil);
SetTrigger(OBJECT_TOUCH_TRIGGER, name, "NHF_Touch_mobs_F");
end
ShowFlyingSign("/MapObjects/Preserve/NewHeroes/Kiina/Spawn_creatures.txt",temp_name,GetObjectOwner(temp_name), 5);
end;
end;
function NHF_Kiina_frendly_F(hero,mob)
local temp_name = NHF_tempName_F(hero);
if (IsAIPlayer(GetObjectOwner(temp_name)) ~= 1) and (hero == "Kiina") and mob > "NHF_Kiina_creatures_" and mob < "NHF_Kiina_creatures`" then
SetMonsterCourageAndMood(mob, GetObjectOwner(temp_name), MONSTER_MOOD_FRIENDLY, MONSTER_COURAGE_ALWAYS_JOIN);
end;
end;
NHF_mass_heroes_touch_mob = {"Hafad","Sandro","Fiona","Konstantin","Kiina"};
--Disabling and touching mobs
function NHF_Touch_mobs_F(hero,mob)
if (IsAIPlayer(GetObjectOwner(hero)) ~= 1) and (IsObjectExists(mob) == not nil) then
for i, hero_temp in NHF_mass_heroes_touch_mob do
if IsHeroAlive(hero_temp) == true then
if (hero == hero_temp) then
NHF_HERO_F[hero_temp](hero_temp,mob);
break;
end;
end;
end;
if mob > "NHF" and mob < "NHG" then
StopVisualEffects(mob.."_Effect_Tag");
end
Trigger(OBJECT_TOUCH_TRIGGER, mob, nil);
SetObjectEnabled(mob,true);
sleep(0.1);
MakeHeroInteractWithObject(hero,mob);
--sleep();
Trigger(OBJECT_TOUCH_TRIGGER, mob, "NHF_Touch_mobs_F");
end;
end;
function NHF_RemoveMobEffects(hero, mob)
while IsObjectExists(hero) and IsObjectExists(mob) do
sleep()
end
if not IsObjectExists(mob) then
StopVisualEffects(mob .. "_Effect_Tag")
end
end
function NHF_Touch_mobs_F(hero,mob)
-- ... --
if mob > "NHF" and mob < "NHG" then
startThread(NHF_RemoveMobEffects, hero, mob)
end
-- ... --
end