|
|
Модератор форума: Dimitro |
Форум ArcEmu ArcEmu Frozen Halls (Скрипты на Lua) |
Frozen Halls |
Занялся разработкой скриптов Луа для Ледяных Залов. Начал с Залов Отражений, предлагаю вашему вниманию скрипт первого босса - Фалрика. Нужны ваши советы, а также результаты тестов на работоспособность.
Текущая работоспособность ~20% по оффу. Добавлено (10.04.2011, 21:53) Добавлено (10.04.2011, 22:03) Тестовая версия (с начальной фазой, спаун пока 1 раз). Работоспособность по оффу ~35%. Code --Falric, Halls of Reflection, Normal Mode local FALRIC_ID = 38112 --Falric spells local QUIVERING_STRIKE = 72422 local IMPENDING_DESPAIR = 72426 local DEFILING_HORROR = 72435 local HOPELESSNESS = 72395 --Falric minions local GHOSTLY_PRIEST = 38175 local PHANTOM_MAGE = 38172 local PHANTOM_HALLUCINATION = 38567 local SHADOWY_MERCINARY = 38177 local SPECTRAL_FOOTMAN = 38173 local TORTURED_RIFLEMAN = 38176 --Falric quotes local SAY_GAUNTLET = "Солдаты Лордерона, восстаньте по зову своего господина!" --Not official translate local SAY_AGGRO = "Мужчины, женщины и дети... Никто не избежал гнева господина. Вы разделите их участь." local SAY_IMPENDING_DESPAIR = "Как сладостно отчаяние..." local SAY_DEFILING_HORROR = "Как приятен страх..." local SAY_KILLING_PLAYER_1 = "Сопливый червяк..." local SAY_KILLING_PLAYER_2 = "Стратхольмские детишки, и те сражались отчаяннее..." local SAY_DEATH = "Марвин, добей их..." function Falric_On_Enter_Combat(pUnit,event,player)` pUnit:SendChatMessage(12,0,SAY_GAUNTLET) pUnit:RegistryEvent("Falric_Spawn_Lordaeron_Soldiers_ Test",2000,1) pUnit:RegistryEvent("Falric_Hopelessness",0,0) pUnit:RegistryEvent("Falric_Quivering_Strike",11000,0) pUnit:RegistryEve n t (" Falric_Impending_Despair",14000,0) pUnit:RegistryEvent("Falric_Defiling_Horror",15000,0) end function Falric_On_Target_Died(pUnit,event,player) local x = math.random(1,2) if x = 1 then pUnit:SendChatMessage(12,0,SAY_KILLING_PLAYER_1) if x = 2 then pUnit:SendChatMessage(12,0,SAY_KILLING_PLAYER_2) end function Falric_On_Died(pUnit,event) pUnit:RemoveAllEvents() pUnit:SendChatMessage(12,0,SAY_DEATH) end function Falric_On_Leave_Combat(pUnit,event) pUnit:RemoveAllEvents() end function Falric_Quivering_Strike(pUnit,event) local target = pUnit:GetRandomPlayer(1) --For melee classes if target ~= nil then pUnit:FullCastSpellOnTarget(QUIVERING_STRIKE,target) end end function Falric_Impending_Despair(pUnit,event) local target = pUnit:GetRandomPlayer(2) --Mid-range if target ~= nil then pUnit:SendChatMessage(12,0,SAY_IMPENDING_DESPAIR) pUnit:FullCastSpellOnTarget(IMPENDING_DESPAIR,target) end end functi on Falric_Defiling_Horror(pUnit,event) local target = GetRandomPlayer(0) if target ~= nil then pUnit:SendChatMessage(12,0,SAY_DEFILING_HORROR) pUnit:FullCastSpellOnTarget(DEFILING_HORROR,target) end end function Falric_Hopelessness(pUnit,event) local AllPlayers = pUnit:GetInRangePlayers() for a,players in pairs (AllPlayers) do players:CastSpell(HOPELESSNESS) end end function Falric_Spawn_Lordaeron_Soldiers_Test(pUnit,event) pUnit:DisableCombat(true) local i = 1, d = 1 local count = 0 local x = pUnit:GetX() local y = pUnit:GetY() local z = pUnit:GetZ() local o = pUnit:GetO() while d ~= 7 count = math.random(1,3) i = 1 while i ~= count if d = 1 then pUnit:SpawnCreature(GHOSTLY_PRIEST,x+math.random(1,6),y-math.random(1,6),z,o,15,0) if d = 2 then pUnit:SpawnCreature(PHANTOM_MAGE,x-math.random(1,6),y+math.random(1,6),z,o,15,0) if d = 3 then pUnit:SpawnCreature(PHANTOM_HALLUCINATION,x-math.random(1,6),y-math.random(1,6),z,o,15,0) if d = 4 then pUnit:SpawnCreature(SHADOWY_MERCINARY,x+math.random(1,6),y+math.random(1,6),z,o,15,0) if d = 5 then pUnit:SpawnCreature(SPECTRAL_FOOTMAN,x-math.random(1,6),y+math.random(1,6),z,o,15,0) if d = 6 then pUnit:SpawnCreature(TORTURED_RIFLEMAN,x+math.random(1,6),y-math.random(1,6),z,o,15,0) i = i + 1 end d = d + 1 end RegistryEvent("Falric_Start_Combat",15000,1) end function Falric_Start_Combat(pUnit,event) pUnit:DisableCombat(false) pUnit:SendChatMessage(12,0,SAY_AGGRO) end RegisterUnitEvent(FALRIC_ID,1,"F alric_On_Enter_Combat") RegisterUnitEvent(FALRIC_ID,2,"Falric_On_Leave_Combat") RegisterUnitEvent(FALRIC_ID,3,"Falric_On_Target_Died") Re gisterUnitEvent(FALRIC_ID,4,"Falric_On_Died") |
Да, писал я. Отпишись как работает пожалуйста.
Добавлено (11.04.2011, 12:47) Добавлено (11.04.2011, 13:49) Добавлено (12.04.2011, 01:06)
Сообщение # 3 написано 12.04.2011 в 01:06
|
| |||
| |||