• Страница 1 из 1
  • 1
Модератор форума: Dimitro  
Frozen Halls
AKQJT
Скаут
Занялся разработкой скриптов Луа для Ледяных Залов. Начал с Залов Отражений, предлагаю вашему вниманию скрипт первого босса - Фалрика. Нужны ваши советы, а также результаты тестов на работоспособность.
Текущая работоспособность ~20% по оффу.

Добавлено (10.04.2011, 21:53)
---------------------------------------------
Обновил, работоспособность ~30% (нужен тест)

Добавлено (10.04.2011, 22:03)
---------------------------------------------
В процессе разработки - начальная фаза (с вызовом слуг)

Тестовая версия (с начальной фазой, спаун пока 1 раз). Работоспособность по оффу ~35%.
Что нужно: добавить еще 4 спауна; найти саундсеты и эмоты; протестировать.
ТЕСТОВАЯ ВЕРСИЯ, ВОЗМОЖНЫ ОШИБКИ!

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")

Сообщение # 1 отредактировано AKQJT - Понедельник, 11.04.2011, 13:08
LOrdas
ƉỜṪḀ ƇǒӎӎɥȠȊțy
AKQJT, Ты писал?
А так спасибо, как раз искал...
Сообщение # 2 написано 11.04.2011 в 04:08
AKQJT
Скаут
Да, писал я. Отпишись как работает пожалуйста.

Добавлено (11.04.2011, 12:47)
---------------------------------------------
Добавил перевод.

Добавлено (11.04.2011, 13:49)
---------------------------------------------
Скрипты переписаны, ушел доделывать, вернусь с готовым паком.

Добавлено (12.04.2011, 01:06)
---------------------------------------------
Репозиторий для скриптов
Кто хочет помочь - пишите в ЛС.


Сообщение # 3 написано 12.04.2011 в 01:06
  • Страница 1 из 1
  • 1
Поиск: