You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
SigFiesta/LuaScript/AIScript/BH_Helga.lua

702 lines
20 KiB

--[[
<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <EFBFBD>
9Data/Here/World/FineScript.txt <EFBFBD>ʿ<EFBFBD>
9Data/Hero/Script/BH_Helga.txt <EFBFBD>ʿ<EFBFBD>
]]
-- <EFBFBD><EFBFBD>Ͼ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ų<EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<EFBFBD>Ͼ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ִ<EFBFBD>)
-- <EFBFBD><EFBFBD>ũ<EFBFBD><EFBFBD>Ʈ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ϰ<EFBFBD>
ReturnAI = {}
ReturnAI.END = 1 -- Return_AI_END = 1;// -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> AI<EFBFBD><EFBFBD>ƾ <EFBFBD><EFBFBD>
ReturnAI.CPP = 2 -- Return_AI_CPP = 2;// -- <EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD> <EFBFBD>Ϻ<EFBFBD> ó<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> cpp<EFBFBD><EFBFBD> AI<EFBFBD><EFBFBD>ƾ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
--[[ TODO
<EFBFBD>÷<EFBFBD><EFBFBD>̾ <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> Ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>Ҿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD><EFBFBD> DuringReturn2Regen()<EFBFBD><EFBFBD>ƾ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ȭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
- ó<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ʿ<EFBFBD>
]]
HelgaIndex = "BH_Helga"
KarasianIndex = {}
KarasianIndex[1] = "BH_KaraTemplerAC"
KarasianIndex[2] = "BH_KaraTemplerMR"
BijouIndex = "BH_HelgaBall"
HelgaReadyAbstate = "StaBH_Helga_Idle01" -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ũ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ִ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̻<EFBFBD>
HelgaBuffByBijou = "StaBH_HelgaAPU01" -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ɸ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ߺ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
HelgaBufByKarasian = "StaBH_HelgaDRT01" -- ī<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȿ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ɸ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BijouBuffByKarasian = "StaHelgaBall" -- ī<EFBFBD><EFBFBD><EFBFBD>þ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŵ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
KarasianSelfBuff = "StaBH_KaraTempler_None" -- ī<EFBFBD><EFBFBD><EFBFBD>þ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
HelgaRaiseSkill = "BH_Helga_Skill_N_None" -- <EFBFBD><EFBFBD><EFBFBD> <EFBFBD>Ͼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ִϸ<EFBFBD><EFBFBD>̼<EFBFBD>
KarasianRegenSec = 60
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ī<EFBFBD><EFBFBD><EFBFBD>þȵ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ
BijouLoc = {}
KarasianLocate = {}
-- ù° <EFBFBD>׷<EFBFBD>
BijouLoc[1] = {}
BijouLoc[1].X = 2483
BijouLoc[1].Y = 870
BijouLoc[1].D = 0
KarasianLocate[ 1] = {}
KarasianLocate[ 1].X = 2539
KarasianLocate[ 1].Y = 852
KarasianLocate[ 1].D = -89
KarasianLocate[ 2] = {}
KarasianLocate[ 2].X = 2442
KarasianLocate[ 2].Y = 833
KarasianLocate[ 2].D = 38
KarasianLocate[ 3] = {}
KarasianLocate[ 3].X = 2477
KarasianLocate[ 3].Y = 929
KarasianLocate[ 3].D = 165
-- <EFBFBD><EFBFBD>°<EFBFBD>׷<EFBFBD>
BijouLoc[2] = {}
BijouLoc[2].X = 681
BijouLoc[2].Y = 879
BijouLoc[2].D = 0
KarasianLocate[ 4] = {}
KarasianLocate[ 4].X = 733
KarasianLocate[ 4].Y = 852
KarasianLocate[ 4].D = -76
KarasianLocate[ 5] = {}
KarasianLocate[ 5].X = 635
KarasianLocate[ 5].Y = 849
KarasianLocate[ 5].D = 50
KarasianLocate[ 6] = {}
KarasianLocate[ 6].X = 677
KarasianLocate[ 6].Y = 935
KarasianLocate[ 6].D = -172
-- <EFBFBD><EFBFBD>°<EFBFBD>׷<EFBFBD>
BijouLoc[3] = {}
BijouLoc[3].X = 2503
BijouLoc[3].Y = 2290
BijouLoc[3].D = 0
KarasianLocate[ 7] = {}
KarasianLocate[ 7].X = 2556
KarasianLocate[ 7].Y = 2268
KarasianLocate[ 7].D = -79
KarasianLocate[ 8] = {}
KarasianLocate[ 8].X = 2457
KarasianLocate[ 8].Y = 2251
KarasianLocate[ 8].D = 52
KarasianLocate[ 9] = {}
KarasianLocate[ 9].X = 2507
KarasianLocate[ 9].Y = 2345
KarasianLocate[ 9].D = -177
-- <EFBFBD><EFBFBD>°<EFBFBD>׷<EFBFBD>
BijouLoc[4] = {}
BijouLoc[4].X = 670
BijouLoc[4].Y = 2275
BijouLoc[4].D = 0
KarasianLocate[10] = {}
KarasianLocate[10].X = 725
KarasianLocate[10].Y = 2247
KarasianLocate[10].D = -75
KarasianLocate[11] = {}
KarasianLocate[11].X = 621
KarasianLocate[11].Y = 2244
KarasianLocate[11].D = 41
KarasianLocate[12] = {}
KarasianLocate[12].X = 667
KarasianLocate[12].Y = 2329
KarasianLocate[12].D = 177
----------------------------------------------------------------------
-- Mantis 8164
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ȯ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BH_HelgaBox =
{
{ Index = "BH_Helga_X", ItemDropMobIndex = "BH_Helga_O", x = 1605, y = 1638, Radius = 1032 },
{ Index = "BH_Helga_X", ItemDropMobIndex = "BH_Helga_O_02", x = 1605, y = 1638, Radius = 1032 },
}
----------------------------------------------------------------------
MemBlock = {}
HelgaHandle = 0
function ViewHandle()
cExecCheck "ViewHandle"
local Var = MemBlock[HelgaHandle]
local x, y = cObjectLocate(Var.Handle)
cDebugLog("Helga : " .. Var.Handle .. '(' .. x .. ',' .. y .. ')')
for b = 1, 4 do
local BVar = Var.BijouInfo[b]
local x, y = cObjectLocate(BVar.Handle)
cDebugLog(" Bijou : " .. BVar.Handle .. '(' .. x .. ',' .. y .. ')')
for k = 1, 3 do
local KVar = BVar.KarasianInfo[k]
local x, y = cObjectLocate(KVar.Handle)
cDebugLog(" Karasian : " .. KVar.Handle .. '(' .. x .. ',' .. y .. ')')
end
end
end
--[[
function MainRoutine(Handle, MapIndex) -- ī<EFBFBD><EFBFBD><EFBFBD>þȿ<EFBFBD><EFBFBD><EFBFBD> ȣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cExecCheck "MainRoutine"
if MobID == Karasian1ID or MobID == Karasian2ID then
Karasian_Main(Handle, MobID, MapIndex)
return ReturnAI.END
elseif MobID == BijouID then -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ȣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Bijou_Main(Handle, MobID, MapIndex)
return ReturnAI.END
elseif MobID == HelgaID then -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<EFBFBD>ﰡ)<EFBFBD><EFBFBD><EFBFBD><EFBFBD> ȣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
return Helga_Main(Handle, MobID, MapIndex)
end
return ReturnAI.END
end
]]
---------------------------------------------------------------------
------------------------ Common Part ---------------------------
---------------------------------------------------------------------
function Common_Nothing() -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cExecCheck "Common_Nothing"
return ReturnAI.END -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> AI<EFBFBD><EFBFBD>ƾ <EFBFBD><EFBFBD>
end
function Common_Wait(Var) -- Var.Wait.Second<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ٸ<EFBFBD> <EFBFBD><EFBFBD> StepFunc<EFBFBD><EFBFBD> WaitFunction<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cExecCheck "Common_Wait"
-- ----cDebugLog("Common_Wait " .. Var.Me)
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̹Ƿ<EFBFBD> <EFBFBD>ﰡ, <EFBFBD><EFBFBD><EFBFBD><EFBFBD>, ī<EFBFBD><EFBFBD><EFBFBD>þ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> Var<EFBFBD><EFBFBD> Wait.Second, Wait.NextFunc, StepFunc<EFBFBD><EFBFBD> <EFBFBD>־<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
if cCurSec() >= Var.Wait.Second then
Var.StepFunc = Var.Wait.NextFunc
end
return Var.Wait.Rtn
end
function Common_RemoveTreasure(MapIndex)
cExecCheck "Common_RemoveTreasure"
cDebugLog "Common_RemoveTreasure"
cRegenGroupActiv("BH_Helga", "BH_HelgaBox", 0) -- <EFBFBD><EFBFBD><EFBFBD>ڰ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD><EFBFBD><EFBFBD>° <EFBFBD>μ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϰų<EFBFBD> 1<EFBFBD≯<EFBFBD> activ)
-- cVanishAll(MapIndex, "BH_Helga_O")
-- cVanishAll(MapIndex, "BH_Helga_O_02")
cVanishAll(MapIndex, "BH_Helga_X")
end
---------------------------------------------------------------------
-------------------------- Helga Part ----------------------------
---------------------------------------------------------------------
function BH_Helga(Handle, MapIndex)
cExecCheck "BH_Helga"
-- ----cDebugLog "Helga_Main"
local Var = MemBlock[Handle]
if cIsObjectDead(Handle) == nil and Var == nil then
HelgaHandle = Handle
if MapIndex ~= "BH_Helga" then -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>߸<EFBFBD><EFBFBD>Ǿ<EFBFBD><EFBFBD><EFBFBD>
cAIScriptSet(Handle) -- AI<EFBFBD><EFBFBD>ũ<EFBFBD><EFBFBD>Ʈ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
return ReturnAI.END
end
-- <EFBFBD><EFBFBD><EFBFBD> ó<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>ڽ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>޸<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ʱ<EFBFBD>ȭ
-- <EFBFBD>ؿ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD>׾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>޸<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <EFBFBD>κ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ֱ⿡,
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>Ҵ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǵ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>׾<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(cIsObjectDead)<EFBFBD><EFBFBD> Ȯ<EFBFBD><EFBFBD>
------cDebugLog("Helga Initialize")
MemBlock[Handle] = {}
Var = MemBlock[Handle]
Var.Me = "Helga" -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Var.Handle = Handle
Var.MapIndex = MapIndex
Var.BuffCharge = 0 -- <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> 40<EFBFBD><EFBFBD> <EFBFBD>Ǹ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Var.TargetLostSec = 0 -- Ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ÿ<EFBFBD><EFBFBD> ã<EFBFBD><EFBFBD> <EFBFBD>ð<EFBFBD>)
cSetAbstate(Var.Handle, HelgaReadyAbstate, 1, 2000000000)
cSetAbstate(Var.Handle, "StaImmortal", 1, 2000000000)
Var.StepFunc = Helga_BijouRegen -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ƾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
end
if cIsObjectDead(Handle) ~= nil
then
if Var ~= nil then
-----cDebugLog "Helga Dead"
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΰ<EFBFBD> <EFBFBD><EFBFBD>ȯ - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
local InvisibleHandle = cMobRegen_Obj("InvisibleMan", Handle)
if InvisibleHandle ~= nil
then
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ũ<EFBFBD><EFBFBD>Ʈ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cAIScriptSet(InvisibleHandle, Handle)
MemBlock[InvisibleHandle] = {}
MemBlock[InvisibleHandle].Handle = InvisibleHandle
MemBlock[InvisibleHandle].MapIndex = MapIndex
MemBlock[InvisibleHandle].StepFunc = Invisible_Init
end
-- <EFBFBD><EFBFBD><EFBFBD> <EFBFBD>׾<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>, ī<EFBFBD><EFBFBD><EFBFBD>þȵ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɶ<EFBFBD> <EFBFBD>ٽ<EFBFBD> ó<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
for b = 1, 4
do
local BijouInfo = Var.BijouInfo[b]
if BijouInfo ~= nil
then
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҵ<EFBFBD><EFBFBD><EFBFBD> ī<EFBFBD><EFBFBD><EFBFBD>þ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
for k = 1, 3
do
local KaraInfo = BijouInfo.KarasianInfo[k]
if KaraInfo ~= nil
then
cNPCVanish(KaraInfo.Handle)
-- ī<EFBFBD><EFBFBD><EFBFBD>þȿ<EFBFBD> <EFBFBD>Ҵ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>޸<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>޸𸮰<EFBFBD> Var.BijouInfo.KaraInfo<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>޸𸮻<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ȵ<EFBFBD>
MemBlock[KaraInfo.Handle] = nil
end
end
cNPCVanish(BijouInfo.Handle)
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҵ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>޸<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<EFBFBD>̶<EFBFBD> Bijou.KarasianInfo<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>޸𸮰<EFBFBD> Var.BijouInfo<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>޸𸮻<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ȵ<EFBFBD>
MemBlock[BijouInfo.Handle] = nil
end
end
-- <EFBFBD><EFBFBD><EFBFBD> <EFBFBD>Ҵ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>޸<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<EFBFBD>̶<EFBFBD> Var.BijouInfo<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
MemBlock[Var.Handle] = nil
Var = nil
end
return ReturnAI.END
end
return Var.StepFunc(Var)
end
function Helga_BijouRegen(Var) -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŵ
cExecCheck "Helga_BijouRegen"
----cDebugLog("Bijou Regen from " .. Var.Handle)
Var.BijouInfo = {}
for b = 1, 4 do
local BijouHandle = cMobRegen_XY(Var.MapIndex, BijouIndex, BijouLoc[b].X, BijouLoc[b].Y, BijouLoc[b].D)
cDebugLog("Bijou Regen : " .. BijouHandle)
local BijouInfo = {}
MemBlock[BijouHandle] = BijouInfo -- <EFBFBD>ڵ鿡 <EFBFBD><EFBFBD><EFBFBD>߾<EFBFBD> <EFBFBD>޸𸮺<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Var.BijouInfo[b] = BijouInfo
BijouInfo.Me = "Bijou" -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BijouInfo.Handle = BijouHandle
BijouInfo.HelgaInfo = Var
BijouInfo.MapIndex = Var.MapIndex
BijouInfo.KarasianOffset = b * 3 - 2 -- <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҵ<EFBFBD><EFBFBD><EFBFBD> ī<EFBFBD><EFBFBD><EFBFBD>þȵ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>Թ<EFBFBD>ȣ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
-- <EFBFBD><EFBFBD><EFBFBD>̽<EFBFBD><EFBFBD><EFBFBD> 1<EFBFBD>̹Ƿ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 -> ī<EFBFBD><EFBFBD><EFBFBD>þ<EFBFBD> 1, 2, 3
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2 -> ī<EFBFBD><EFBFBD><EFBFBD>þ<EFBFBD> 4, 5, 6
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> 3 -> ī<EFBFBD><EFBFBD><EFBFBD>þ<EFBFBD> 7, 8, 9
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4 -> ī<EFBFBD><EFBFBD><EFBFBD>þ<EFBFBD> 10, 11, 12
cAIScriptSet(BijouHandle, Var.Handle) -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> AI<EFBFBD><EFBFBD>ũ<EFBFBD><EFBFBD>Ʈ<EFBFBD><EFBFBD> Var.Handle(<EFBFBD>ﰡ)<EFBFBD><EFBFBD> AI<EFBFBD><EFBFBD>ũ<EFBFBD><EFBFBD>Ʈ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
BijouInfo.StepFunc = Bijou_KarasianRegen -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>׼<EFBFBD><EFBFBD><EFBFBD> ī<EFBFBD><EFBFBD><EFBFBD>þ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
end
Var.StepFunc = Helga_TreasureVanish
return ReturnAI.END
end
function Helga_TreasureVanish(Var)
cExecCheck "Helga_TreasureVanish"
cDebugLog "Helga_TreasureVanish"
Common_RemoveTreasure(Var.MapIndex)
-- 10<EFBFBD>ʿ<EFBFBD> <EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<EFBFBD>ٸ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ڰ<EFBFBD> <EFBFBD><EFBFBD>Ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>...)
Var.Wait = {}
Var.Wait.Second = cCurSec() + 10
Var.Wait.NextFunc = Helga_TreasureVanish
Var.Wait.Rtn = ReturnAI.END
Var.StepFunc = Common_Wait
cDebugLog("Common_Wait - Helga_TreasureVanish")
-- <EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ٽ<EFBFBD> ä<EFBFBD><EFBFBD>
local HP, MaxHP = cObjectHP(Var.Handle)
cSetNPCParam(Var.Handle, "HP", MaxHP)
end
function Helga_Awake(Var) -- ī<EFBFBD><EFBFBD><EFBFBD>þȵ鿡 <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> ó<EFBFBD><EFBFBD>
cExecCheck "Helga_Awake"
----cDebugLog("Awake - Skill Blast") -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ų <EFBFBD>ߵ<EFBFBD>
cResetAbstate(Var.Handle, HelgaReadyAbstate)-- <EFBFBD><EFBFBD><EFBFBD>ݹ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ʱ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̻<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cResetAbstate(Var.Handle, "StaImmortal") -- <EFBFBD><EFBFBD><EFBFBD>ݹ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ʱ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̻<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
------cDebugLog("Awake - Skill Blast") -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ų <EFBFBD>ߵ<EFBFBD>
cNPCSkillUse(Var.Handle, Var.Handle, HelgaRaiseSkill) -- <EFBFBD>Ͼ<EFBFBD><EFBFBD> <EFBFBD>ִϸ<EFBFBD><EFBFBD>̼<EFBFBD>
-- <EFBFBD><EFBFBD>ų<EFBFBD>ߵ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> 3<EFBFBD>ʰ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> Helga_Attack<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ٲ<EFBFBD>(<EFBFBD>Լ<EFBFBD> Common_Wait <EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
Var.Wait = {}
Var.Wait.Second = cCurSec() + 3
Var.Wait.NextFunc = Helga_PreAttack -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD> <EFBFBD><EFBFBD> <EFBFBD>غ<EFBFBD>
Var.Wait.Rtn = ReturnAI.END
Var.StepFunc = Common_Wait
cDebugLog("Common_Wait - Helga_Awake")
Var.BuffCharge = 0 -- <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> Bijou_BuffToHelga()<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>, 40<EFBFBD><EFBFBD> <EFBFBD>Ǹ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
return ReturnAI.END
end
function Helga_PreAttack(Var)
cExecCheck "Helga_PreAttack"
Var.TargetLostSec = cCurSec() -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>Ҿ<EFBFBD><EFBFBD><EFBFBD>
Var.StepFunc = Helga_Attack
----cDebugLog("Helga_PreAttack " .. Var.TargetLostSec)
end
function Helga_Attack(Var)
cExecCheck "Helga_Attack"
if LastWrite ~= cCurSec() then
cDebugLog("Helga_Attack " .. Var.TargetLostSec .. " " .. cCurSec())
LastWrite = cCurSec()
end
-- <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if Var.BuffCharge >= 240 then
----cDebugLog("HelgaBuff")
if cTargetHandle(Var.Handle) ~= nil then
cMessage(Var.Handle, "BH_Helga_Buff")
cSetAbstate(Var.Handle, HelgaBuffByBijou, 1, 200000000)
end
Var.BuffCharge = Var.BuffCharge - 240
end
local TargetHandle = cTargetHandle(Var.Handle)
if TargetHandle ~= nil and cObjectType(TargetHandle) == 2 then -- Ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ְ<EFBFBD> <EFBFBD>÷<EFBFBD><EFBFBD>̾<EFBFBD><EFBFBD><EFBFBD> (SHINEOBJECT_PLAYER == 2)
Var.TargetLostSec = cCurSec()
elseif Var.TargetLostSec + 10 < cCurSec() then -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 10<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>
cResetAbstate(Var.Handle, KarasianSelfBuff) -- <EFBFBD><EFBFBD>ȭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cResetAbstate(Var.Handle, HelgaBuffByBijou) -- <EFBFBD><EFBFBD>ȭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Var.BuffCharge = 0 -- <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> 40<EFBFBD><EFBFBD> <EFBFBD>Ǹ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
-- Ÿ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>, ī<EFBFBD><EFBFBD><EFBFBD>þ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
for b = 1, 4 do
cNPCVanish(Var.BijouInfo[b].Handle)
for k = 1, 3 do
cNPCVanish(Var.BijouInfo[b].KarasianInfo[k].Handle)
end
end
MemBlock = {} --><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>޸<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> - ó<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ٽ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
end
return ReturnAI.CPP -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> CPP<EFBFBD><EFBFBD> AI<EFBFBD><EFBFBD>ƾ <EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> üũ<EFBFBD><EFBFBD> Helga_Main<EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
end
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
function Helga_AllBijouStepFunc(Var, func) -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> StepFunc<EFBFBD><EFBFBD> <EFBFBD>ϰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ٲ<EFBFBD>
cExecCheck "Helga_AllBijouStepFunc"
----cDebugLog("Helga_AllBijouStepFunc")
for b = 1, 4 do
----cDebugLog(" " .. Var.BijouInfo[b].Me)
Var.BijouInfo[b].StepFunc = func
end
end
function Helga_AllKarasianStepFunc(Var, func) -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> ī<EFBFBD><EFBFBD><EFBFBD>þȵ<EFBFBD><EFBFBD><EFBFBD> StepFunc<EFBFBD><EFBFBD> <EFBFBD>ϰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ٲ<EFBFBD>
cExecCheck "Helga_AllKarasianStepFunc"
----cDebugLog("Helga_AllKarasianStepFunc")
for b = 1, 4 do
for k = 1, 3 do
----cDebugLog(" " .. Var.BijouInfo[b].KarasianInfo[k].Me)
Var.BijouInfo[b].KarasianInfo[k].StepFunc = func
end
end
end
---------------------------------------------------------------------
------------------------- Bijou Part ---------------------------
---------------------------------------------------------------------
function BH_HelgaBall(Handle, MapIndex)
cExecCheck "BH_HelgaBall"
-- ----cDebugLog "Bijou_Main"
local Var = MemBlock[Handle] -- <EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>޸𸮺<EFBFBD><EFBFBD><EFBFBD> ã<EFBFBD><EFBFBD>
if Var == nil then
----cDebugLog("Bijou Handle Error:" .. Handle)
return
end
Var.StepFunc(Var)
end
function Bijou_KarasianRegen(Var) -- ī<EFBFBD><EFBFBD><EFBFBD>þ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD> <EFBFBD>Լ<EFBFBD>
cExecCheck "Bijou_KarasianRegen"
----cDebugLog "Bijou_KarasianRegen"
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ī<EFBFBD><EFBFBD><EFBFBD>þȵ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؾ<EFBFBD> <EFBFBD>ϹǷ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Bijou_SummonKarasian(Var, Karasian_WaitInvader)
-- <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҵ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ī<EFBFBD><EFBFBD><EFBFBD>þȵ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ű<EFBFBD><EFBFBD> <EFBFBD>׵<EFBFBD><EFBFBD><EFBFBD> Karasian_WaitInvader<EFBFBD>ൿ<EFBFBD><EFBFBD> <EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Var.StepFunc = Common_Nothing -- <EFBFBD>ƹ<EFBFBD><EFBFBD>͵<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD><EFBFBD><EFBFBD> ī<EFBFBD><EFBFBD><EFBFBD>þȵ鿡 <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>)
end
function Bijou_BuffToHelga(Var) -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> ī<EFBFBD><EFBFBD><EFBFBD>þȿ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cExecCheck "Bijou_BuffToHelga"
--cDebugLog("Bijou[" .. Var.Handle .. "] Buff To Helga")
-- <EFBFBD><EFBFBD> ī<EFBFBD><EFBFBD><EFBFBD>þȵ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD><EFBFBD><EFBFBD> Ȯ<EFBFBD><EFBFBD>
local karanum = 0
for k = 1, 3 do
if cIsObjectDead(Var.KarasianInfo[k].Handle) == nil then -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> karanum <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
karanum = karanum + 1
end
end
if karanum > 0 then -- <EFBFBD>ϳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
local HelgaInfo = Var.HelgaInfo -- <EFBFBD><EFBFBD><EFBFBD>ΰ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>
HelgaInfo.BuffCharge = HelgaInfo.BuffCharge + 1 -- <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> 40<EFBFBD><EFBFBD> <EFBFBD>Ǹ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> 10<EFBFBD><EFBFBD>)
--cDebugLog("Bijou_BuffToHelga : Buffing " .. HelgaInfo.BuffCharge)
-- 1<EFBFBD>ʿ<EFBFBD> <EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Var.Wait = {}
Var.Wait.Second = cCurSec() + 1
Var.Wait.NextFunc = Bijou_BuffToHelga
Var.Wait.Rtn = ReturnAI.END
Var.StepFunc = Common_Wait
--cDebugLog("Common_Wait - Bijou_BuffToHelga")
else -- 60<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ٽ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ŵ
--cDebugLog("Bijou_BuffToHelga : Regen " .. Var.Handle)
-- 60<EFBFBD><EFBFBD> <EFBFBD><EFBFBD> ī<EFBFBD><EFBFBD><EFBFBD>þȵ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ٽ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ű<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Var.Wait = {}
Var.Wait.Second = cCurSec() + KarasianRegenSec
Var.Wait.NextFunc = Bijou_KarasianReRegen
Var.Wait.Rtn = ReturnAI.END
Var.StepFunc = Common_Wait
--cDebugLog("Common_Wait - Bijou_BuffToHelga")
end
end
function Bijou_KarasianReRegen(Var)
cExecCheck "Bijou_KarasianReRegen"
--cDebugLog("Bijou_KarasianReRegen " .. Var.Handle)
Bijou_SummonKarasian(Var, Karasian_BuffToBijou)
-- <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҵ<EFBFBD><EFBFBD><EFBFBD> ī<EFBFBD><EFBFBD><EFBFBD>þȵ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ű<EFBFBD><EFBFBD> Karasian_BuffToBijouȰ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Var.StepFunc = Bijou_WaitBuffing -- ī<EFBFBD><EFBFBD><EFBFBD>þȵ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϹǷ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
end
function Bijou_WaitBuffing(Var)
cExecCheck "Bijou_WaitBuffing"
--cDebugLog("Bijou_WaitBuffing " .. Var.Handle)
if cAbstateRestTime(Var.Handle, BijouBuffByKarasian) ~= nil then -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ð<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>, nil<EFBFBD≯<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̻<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Var.StepFunc = Bijou_BuffToHelga
end
end
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
function Bijou_SummonKarasian(Var, Func)
cExecCheck "Bijou_SummonKarasian"
----cDebugLog("Karasian Regen from " .. Var.Handle)
-- ī<EFBFBD><EFBFBD><EFBFBD>þȵ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>޸<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϱ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if Var.KarasianInfo ~= nil then
for k = 1, 3 do
local OldKarahnd = Var.KarasianInfo[k].Handle
MemBlock[OldKarahnd] = nil -- <EFBFBD>޸𸮴<EFBFBD> Var.KarasianInfo<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>Ҵ<EFBFBD><EFBFBD>Ǿ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>޸<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ȵ<EFBFBD>
end
end
Var.KarasianInfo = {} -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>޸<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
local type = cRandomInt(1, 2)
for k = 1, 3 do
local slot = Var.KarasianOffset + k - 1
local locate = KarasianLocate[slot]
local KHnd = cMobRegen_XY(Var.MapIndex, KarasianIndex[type], locate.X, locate.Y, locate.D)
----cDebugLog("Karasian Regen : " .. KHnd)
local KInfo = {}
MemBlock[KHnd] = KInfo
Var.KarasianInfo[k] = KInfo
KInfo.Me = "Karasian"
KInfo.Handle = KHnd
KInfo.BijouInfo = Var
KInfo.StepFunc = Func
cAIScriptSet(KHnd, Var.Handle) -- ī<EFBFBD><EFBFBD><EFBFBD>þ<EFBFBD><EFBFBD><EFBFBD> AI<EFBFBD><EFBFBD>ũ<EFBFBD><EFBFBD>Ʈ<EFBFBD><EFBFBD> Var.Handle(<EFBFBD><EFBFBD><EFBFBD><EFBFBD>)<EFBFBD><EFBFBD> AI<EFBFBD><EFBFBD>ũ<EFBFBD><EFBFBD>Ʈ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cSetAbstate(KHnd, KarasianSelfBuff, 1, 2000000000)
end
end
---------------------------------------------------------------------
----------------------- Karasian Part --------------------------
---------------------------------------------------------------------
function BH_KaraTemplerAC(Handle, MapIndex)
return Karasian_Main(Handle, MapIndex)
end
function BH_KaraTemplerMR(Handle, MapIndex)
return Karasian_Main(Handle, MapIndex)
end
function Karasian_Main(Handle, MapIndex)
cExecCheck "Karasian_Main"
local Var = MemBlock[Handle]
if Var == nil then
----cDebugLog("Karasian Handle Error:" .. Handle)
return
end
Var.StepFunc(Var)
return ReturnAI.END
end
function Karasian_WaitInvader(Var)
cExecCheck "Karasian_WaitInvader"
------cDebugLog("Karasian_WaitInvader")
-- <EFBFBD>ڽ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if cIsObjectDead(Var.Handle) ~= nil or cTargetHandle(Var.Handle) ~= nil then
------cDebugLog("Warn")
Var.StepFunc = Karasian_Warning1 -- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD>ø<EFBFBD>
end
end
function Karasian_Warning1(Var)
cExecCheck "Karasian_Warning1"
----cDebugLog("Karasian_Warning1")
if cIsObjectDead(Var.Handle) ~= nil then
Karasian_BattleStart(Var)
else
Helga_AllKarasianStepFunc(Var.BijouInfo.HelgaInfo, Common_Nothing)
cNPCChat(Var.Handle, "BH_Helga_Alert")
Var.Wait = {}
Var.Wait.Second = cCurSec() + 2
Var.Wait.NextFunc = Karasian_Warning2
Var.Wait.Rtn = ReturnAI.END
Var.StepFunc = Common_Wait
cDebugLog("Common_Wait - Karasian_Warning1")
end
end
function Karasian_Warning2(Var)
cExecCheck "Karasian_Warning2"
------cDebugLog("Karasian_Warning2")
cNPCChat(Var.Handle, "BH_Helga_Wake")
Karasian_BattleStart(Var)
end
function Karasian_BuffToBijou(Var)
cExecCheck "Karasian_BuffToBijou"
Var.Wait = {}
Var.Wait.Second = cCurSec() + 1
Var.Wait.NextFunc = Karasian_BuffToBijou2
Var.Wait.Rtn = ReturnAI.END
Var.StepFunc = Common_Wait
--cDebugLog("Common_Wait - Karasian_BuffToBijou")
end
function Karasian_BuffToBijou2(Var)
cExecCheck "Karasian_BuffToBijou2"
if cIsObjectDead(Var.Handle) == nil then
cSetAbstate(Var.BijouInfo.Handle, BijouBuffByKarasian, 1, 1500)
cSetAbstate(Var.BijouInfo.HelgaInfo.Handle, HelgaBufByKarasian, 1, 1500)
----cDebugLog("Karasian[" .. Var.Handle .. "] Buff Bijou[" .. Var.BijouInfo.Handle .. "] at " .. cCurSec())
end
Var.StepFunc = Karasian_BuffToBijou
end
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
function Karasian_BattleStart(Var)
cExecCheck "Karasian_BattleStart"
----cDebugLog "Karasian_BattleStart"
Var.BijouInfo.HelgaInfo.StepFunc = Helga_Awake
----cDebugLog "Karasian_BattleStart 1"
Helga_AllKarasianStepFunc(Var.BijouInfo.HelgaInfo, Karasian_BuffToBijou)
----cDebugLog "Karasian_BattleStart 2"
Helga_AllBijouStepFunc(Var.BijouInfo.HelgaInfo, Bijou_WaitBuffing)
----cDebugLog "Karasian_BattleStart 3"
end
-------------------------------------------------------------------------
----------------------- InvisibleMan Part --------------------------
-------------------------------------------------------------------------
-- <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ
function InvisibleMan(Handle, MapIndex)
cExecCheck "InvisibleMan"
local Var = MemBlock[Handle]
if Var == nil then
----cDebugLog("InvisibleMan Handle Error:" .. Handle)
return
end
Var.StepFunc(Var)
return ReturnAI.END
end
function Invisible_Init(Var)
cExecCheck "Invisible_Init"
cDebugLog "Invisible_Init"
----------------------------------------------------------------------
-- Mantis 8164
-- <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ȯ <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۵<EFBFBD><EFBFBD><EFBFBD><EFBFBD>׷<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD>
for i = 1, #BH_HelgaBox
do
local BoxHandle = cMobRegen_Circle( Var["MapIndex"], BH_HelgaBox[i]["Index"], BH_HelgaBox[i]["x"], BH_HelgaBox[i]["y"], BH_HelgaBox[i]["Radius"] )
if BoxHandle ~= nil
then
cSetItemDropMobID( BoxHandle, BH_HelgaBox[i]["ItemDropMobIndex"] )
end
end
----------------------------------------------------------------------
cGroupRegen("BH_Helga", "BH_HelgaBox") -- <EFBFBD><EFBFBD><EFBFBD>ڰ<EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Var.Wait = {}
Var.Wait.Second = cCurSec() + 60
Var.Wait.NextFunc = Invisible_AllVanish
Var.Wait.Rtn = ReturnAI.END
Var.StepFunc = Common_Wait
cDebugLog("Common_Wait - Invisible_Init")
end
function Invisible_AllVanish(Var)
cExecCheck "Invisible_AllVanish"
cDebugLog "Invisible_AllVanish"
Common_RemoveTreasure(Var.MapIndex)
cNPCVanish(Var.Handle)
Var.StepFunc = Common_Nothing
end