First i would like to say credits to this go to me!
I. Ok go toWoW Vendetta - Wage Your War and create a npc vendor. Select some display id and entry id just writte anything i will be able to change it in sql file... And download thing u have made
II. Now open ur SQLyog/Navicat/heidisql w/e u use and execute stuff u made and save it... now go to your Creature_names in ascent stuff and find the npc u created
Code:
Entry: Put this w/e u want make 99999 mostly :D
Name: Here u put your main name like My server owns!
SubName: Here goes text under name put everything u want
Info_str: U best put 0 here
Flags1: This is stuff he will be beast, critter, humanoid... idk id's now
Type:This is the code you need to change, as we're doing a demon we put 3 over here.
Family: Sub category for type, i.e determinates if mob is spider,wolf etc. Leave it 0
Rank: Determinates is mob normal, rare,elite, world boss. As we like to have boss and it works this way we put number 3 here. (to spawn elite, boss is determinated later)
unk4: leave it as it is
spelldataid: Leave it as it is
male_displayid: To make a boss you need to know how it'll look like. As we're doing corrupted demon hunter we put Akielsh display ID here (16164 is the ID)
female_displayid: Use the same id as above, 16164
male_displayid2: leave it as it is
female_displayid2: leave it as it is
unkown_float1: put this 1
unkown_float2: put this 2
civilian: put this 0 as we don't want boss react as normal civilian
leader: put this 0. We don't make boss fight with several mobs now
Now close the creature_names after you've made sure everything is as it should be and you've saved your work.
Open up your creature_proto. This tab should be lcoated in same DB as the creature_names tab was.
First after you've opened the tab find your way to last page. Scroll down to bottom and make a new row (At navicat with + mark). Now start filling the lines:
Code:
Entry: The same entry you put on the creature_names tab
Minlevel: Minium level of the mob, as for bosses it's advised to put 2 levels more than the level cap is, so if we have level 70 lvl cap we put the boss as 72
Maxlevel: We don't want boss to scale the levels, put this as 72 too
Faction: Something with creatures is good here, put 14 as it's for normal creatures
Minhealth: This is important: Do not make too hard boss, use your brains! Because if one makes 20k mil. hp for boss and makes it hit hard and fast it's unstoppable. I putted 1,8 mil. hp as I want to create 5 man boss with t6 gearr.
Maxhealth:This can be equal to minhelath but can't be below, I putted 1,8 mil hp
Mana: This is needed if your boss casts spells, put something like 90k because we don't want the boss look like weak if he losess mana from single spell.
Scale: Determinates how big boss is, 1 is around the size of human, I put here 5,7
NPCFlags: Is same as in creature_names, leave it as 0
Attacktime: How fast you want your boss hit, the time is determinated in milliseconds so if you want the boss hit every 5th sec put 5000 or if you want him to hit every 1,5 min, put 90000
Attacktype: I don't know what this stands for, leave it as 0 if you want
mindamage: How high amount damage boss hits to the 0 armor minium, I put 3,4k
maxdamage: How high amount damage boss hits on the 0 armor maxium, I put
5K
From here to mountdsiplayid, leave them 0
Code:
equipmodel1: I want boss hit with twinblades, I put their display ID here (45479)
equipinfo1: I have no idea where these come from but if you want a boss to hit with 1h weapon put 50267138
equipslot1: No idea, jsut put 768
Now boss has 1h on his main hand, if you want it to hit with two weapons fill the equipslot2 lines.
Respawntime: INdicates when boss will spawn back after it's killed in milliseconds. I put 72000 (1 min 12 seconds)
Armor: This DOES NOT mean the armor, it indicates the agility of the boss, so leave it 0 if you want boss to be hittable
Resistance1: Holy resistance
Resistance2: Arcane resistance
Resistance3: Nature resistance
Resistance4: Fire resistance
Resistance5: Shdaow resistance
Combatreach: How far away the boss can attack you, put 1 as it's good for this size boss
bounding_radious: How far away the boss will spot you, leave it 1 (50 will make it spot you before you see it)
auras: put 0
Boss: Well, we're making a boss os let's put 1 here (0=not true, 1=true)
money: Amount of money boss carries and is lootable in the end, I put 10000 (1g)
Rest you can leave as they are. Well done we're done with SQL edit!
III: Spawning the boss and creating waypoints
This is small thing to add and doesn't really affect the gameplay anyhow. Spawn your boss with its entry (Did you remember to resttart your server or reload creature_names and creature_proto?) where you like it to appear. To add waypoints type .waypoint add while targeting the boss and standing there where you want the boss want to move.
Below list of commands you need to know to use this chapter:
.npc spawn #EntryID 1
.waypoint add
.waypoint remove
IV. Now creating lua the hard part
This is the script i made but i didnt wanted to make another so i just copied this. If u dont like spells i put you can change them. and fill text to your wish!
Code:
function phase_1(pUnit, Event)
if pUnit:GetHealthPct() < 99 then
pUnit:RemoveEvents();
pUnit:SendChatMessage(14, 0, "Ur text goes here")
pUnit:FullCastSpellOnTarget(47248,Unit:GetMainTank())
pUnit:PlaySoundToSet(12505)
pUnit:RegisterEvent("phase_2",1000, 0)
end
end
function phase_2(pUnit, Event)
if pUnit:GetHealthPct() < 98 then
pUnit:RemoveEvents();
pUnit:SendChatMessage(14, 0, "UR TEXT HERE")
pUnit:FullCastSpellOnTarget(39023,Unit:GetMainTank())
pUnit:PlaySoundToSet(12506)
pUnit:RegisterEvent("phase_3",1000, 0)
end
end
function phase_3(pUnit, Event)
if pUnit:GetHealthPct() < 97 then
pUnit:RemoveEvents();
pUnit:SendChatMessage(14, 0, "UR TEXT HERE!")
pUnit:PlaySoundToSet(12507)
pUnit:FullCastSpellOnTarget(28627,Unit:GetMainTank())
pUnit:FullCastSpellOnTarget(38533,Unit:GetMainTank())
pUnit:FullCastSpellOnTarget(38533,Unit:GetMainTank())
pUnit:FullCastSpellOnTarget(38533,Unit:GetMainTank())
pUnit:RegisterEvent("phase_4",1000, 0)
end
end
function phase_4(pUnit, Event)
if pUnit:GetHealthPct() < 50 then
pUnit:RemoveEvents();
pUnit:SendChatMessage(14, 0, "UR TEXT HERE!")
pUnit:PlaySoundToSet(12508)
pUnit:FullCastSpellOnTarget(45664,Unit:GetMainTank())
pUnit:RegisterEvent("phase_5",1000, 0)
end
end
function phase_5(pUnit, Event)
if pUnit:GetHealthPct() < 20 then
pUnit:RemoveEvents();
pUnit:SendChatMessage(14, 0, "UR TEXT HERE!")
pUnit:PlaySoundToSet(12509)
pUnit:FullCastSpellOnTarget(40343,Unit:GetMainTank())
pUnit:FullCastSpellOnTarget(48441,Unit:GetMainTank())
pUnit:FullCastSpellOnTarget(512,Unit:GetMainTank())
pUnit:FullCastSpellOnTarget(25442,Unit:GetMainTank())
pUnit:FullCastSpellOnTarget(17668,Unit:GetMainTank())
pUnit:FullCastSpellOnTarget(40876,Unit:GetMainTank())
pUnit:RegisterEvent("phase_6",1000, 0)
end
end
function phase_6(pUnit, Event)
if pUnit:GetHealthPct() < 01 then
pUnit:RemoveEvents();
pUnit:SendChatMessage(14, 0, "UR TEXT HERE")
pUnit:PlaySoundToSet(12510)
pUnit:FullCastSpellOnTarget(44998,Unit:GetMainTank())
pUnit:RegisterEvent("phase_7",1000, 0)
end
end
function phase_7(pUnit, Event)
if pUnit:GetHealthPct() < 100 then
pUnit:RemoveEvents();
pUnit:CastSpell(46474)
end
end
-- The OnKill and OnCombat stuff... Emerge is with this to...
function Kil_OnKill (pUnit, Event)
pUnit:SendChatMessage(14, 0, "UR TEXT HERE")
pUnit:PlaySoundToSet(12501)
end
function Kil_EnterCombat (pUnit, Event)
pUnit:SendChatMessage(14, 0, "UR TEXT HERE")
pUnit:PlaySoundToSet(12500)
pUnit:CastSpell(35177)
end
function boss_start(pUnit, Event)
pUnit:RegisterEvent("phase_1",1000, 0)
end
RegisterUnitEvent(25320, 1, "Kil_EnterCombat")
RegisterUnitEvent(25320, 1, "boss_start")
RegisterUnitEvent(25320, 3, "Kil_OnKill")