Jump to content

Boss Arena Mod


Recommended Posts

Boss Arena Mod for Sacred 2 Ice & Blood +

 

CM Patch 0130

 

This mod will add a new NPC to the MP starter island near the arena. After talking to it, it will start a boss chain quest, which includes the following bosses in 4 waves, spawning each boss one after another:

 

Wave 1:

The White Griffin

Raging Boar

Harpy Queen

Holos

 

Wave 2:

Flame Lord

Ice Lord

Earth Lord

Poison Lord

 

Wave 3:

Daloriel the Depraved

Banshee

Bloodclaw

 

Wave 4:

Dark Prince

Thranak

Forest Guardian

 

 

After each wave a confirmation at the quest giver is needed. I included these "milestones" to give the players a chance to sort their inventory, sell or stuff items away etc.

 

Most of these mini bosses are encountered on the map via a quest npc which basically tells you to go kill it. Thats means on top of the kill experience you get the quest experience. Each of these bosses now give additional quest experience, that also includes the forest guardian and 3 of the lords, which dont have a quest. In concequence this arena is an easy spot to farm experience and items. I created it for multiplayer games, so that the server doesnt need to be restarted for those bosses to spawn again. Right now it stops after one round, but at least you dont need to go to their locations to farm them.

 

Possible future version may include (incase I get that to work):

- unlimited boss runs -> no more server restarts

- main bosses in the arena (those that can be farmed in MP games without questing)

 

DOWNLOAD

 

 

Since I have been asked how I did that I will include a short overview:

 

quest.txt:

This is where its all at. You can create new quest NPCs and new quest tasks. Tasks range from item collection to mob killing to just reaching a certain area. Here I will discuss the mini boss killing quests. The code I included is seperated in two parts:

1) the task definitions (here the mini bosses and one quest giver)

2) the quest definitions

 

The quest giver:

 

quest.createTaskCreature(11000, {
itemtype = 6637,
creature = 587,
faction_id = 66,
behaviour = "questCreatures",
ismortal = 0,
isfighting = 0,
persistent = 0,
position = { 7,14,0 , 1010.400,792.852,294.443 , 0.000 },
})

 

I simply copied the quest npc for the white griffin quest and placed himin front of the arena.

To get the coordinates, stand where you wann place it, open the console and type "print hero" (without the "), look for POS. you will get the sector (7,14,0) and the coordiantes (1010.400,792.852,294.443). As to what the last number does I am still unsure, it might refer to a 4th plane, but 0.000 worked just fine on the island :)

Its important to use and ID that is still unused. I started my NPCs at 11000, my mobs at 12000 and my quests at 10000.

 

Next is the mobs, e.g. the forest guardian:

 

quest.createTaskCreature(12130, {
itemtype = 10205,
creature = 1433, --Forest Guardian
ismortal = 0,
isfighting = 0,
persistent = 0,
position = { 7,14,0 , 1672.250,1714.352,224.929 , 0.000 },
})

 

Most mobs were already in the quest.txt and I just needed to change the id (here 12130), but this one wasn, so I created it myself by using a template (e.g. white griffin spawn, "creature = 1887" and edited the itemtype and creature, as well the id). Its also important change the position to where you want it, in my case the arena.

 

At last you still need the quest. In this case Ill use my first one, the white griffin. Since this is longer I will place notes inside the code tag with <-. In case you noticed, comment in that file are made with --comment.

 

quest.createQuest(10000, { <-unique id
id = 10000, <-same as above
name = "Boss Arena White Griffin", <-identifier, just name it
questtype = 1, <-type 1 = kill quest
silent=0, <-will you notice if you accept it?
ismainquest = 0,
mainquestchapter = 0,
questbookstrategy = 0, <-normally quest have a 1 here, but my quests lack a book entry so it doesnt matter
continues_quest_id = 0, <-important for quest chains, this is the starter, thus 0
continues_bookentry = 0, <-similar to above, but for the log
forpathnot = 0, <-not excalt sure, similar to below, maybe
reservedforpath = 0, <- restriction for light/dark
reservedforhero = 0, <- restriction for class
reservedforgod = 0, <-restriction for god
reward_exp=1, <-following are the rewards
reward_gold=0,
reward_drop=0,
reward_attr=0, <-didnt test yet
reward_skill=0, <-maybe a rune?
report_required = 0, <-do you need to get back to the npc? this one is auto complete
dangerclass=8, <-possibly defines rewards, 8 is for the griffin
author_ready = 0, <-not sure
qa_ready = 0, <-not sure
releasestage = 30, <-possibly needed for simple go and kill quests
progress = 0, <-not sure
autostart = 0, <-could be defined together with enetering a certain region
anyprequest = 0, <-important for quest chains
showdlgonwin = 0, <-shows dialogue on win
lostondecline = 0, <-if you decline you cannot take it again (doesnt apply here, since there is no dialogue at all)
questgiver = { <-here starts the quest npc
taskcreature = 11000, <-my defined NPC
ispersistent = 0, <-similar to the mobs
isproactive = 0, <-not sure
isrefusable = 0, <- option to decline, but entire dialogue is missing :/
position = { 7,14,0 , 1010.400,792.852,294.443 , 0.000 }, <-spawn position, needs to be the same as ion the definition of the npc
},
questKill = { <-quest condition start, here killquest
anyofthem = 0, <-amount to kill?
useprefightdlg = 0, <-propably as with the kobold chieftain quest, if you reach it, you will get a message
bodycount = 0, <-amount to kill?
kill0 = { <-first mob to kill
taskcreature = 12000, <-specific mob, as defined before, no doubles here!
},
},
})

 

It is possible to add more different mobs in one quest like this:

 

questKill = { <-quest conition start, here killquest
anyofthem = 0, 
useprefightdlg = 0, 
bodycount = 0, 
kill0 = { <-first mob to kill
taskcreature = 12000, <-specific mob, as defined before, no doubles here!
},
kill1 = { <-second mob to kill
taskcreature = 12001, <-specific mob, as defined before, no doubles here!
},
kill2 = { <-third mob to kill
taskcreature = 12002, <-specific mob, as defined before, no doubles here!
},
},

 

and so on.

 

Lets look at the quest chain, this is the next quest, its basically the same, I will comment the differences

 

quest.createQuest(10010, { <-new id
id = 10010, <-new id
name = "Boss Arena Raging Boar",
questtype = 1,
silent=0,
ismainquest = 0,
mainquestchapter = 0,
questbookstrategy = 0,
continues_quest_id = 10000, <-previous quest
continues_bookentry = 0,
forpathnot = 0,
reservedforpath = 0,
reservedforhero = 0,
reservedforgod = 0,
reward_exp=1,
reward_gold=0,
reward_drop=0,
reward_attr=0,
reward_skill=0,
report_required = 0,
dangerclass=8,
author_ready = 0,
qa_ready = 0,
releasestage = 30,
progress = 0,
autostart = 0,
anyprequest = 0,
showdlgonwin = 0,
lostondecline = 0,
precond_quest0 = { <-important, without this it doesnt care if youve finished the previous one and spawn the next
quest_dbid = 10000,
queststate = 9,
},
questKill = {
anyofthem = 0,
useprefightdlg = 0,
bodycount = 0,
kill0 = {
taskcreature = 12010, <-different mob
},
},
})

 

Last but not least to add a "milestone" exchange this

 

report_required = 0,

 

with this (11000 is my NPC)

 

report_required = 1,
reportcompletion_to = 11000,

 

creatures.txt:

This is where I get my new mobs that arent already added in the quest.txt. One example is the forest guardian. I will look up its name and get the itemtype and the id.

Edited by momomo
Link to comment

The download not work :(:(

 

Do you mean the mod itself or just the download. Cause I just tried and it worked. You might also try to navigate there yourself. Just go to downloads->community Patch

Link to comment

This work only for Multiplayer mode :D:P:mafia::drunkards:

 

Of course it does, the npc is on the MP island, as in the description stated xD

But if you really want it somewhere else here is the manual:

 

Get ingame, go where you want the NPC and type "PRINT HERO" in the console (without the "). Scroll up using Page Up and look for "Pos". Note down the numbers, they look similar to the positions in the mod files (read my explanation above).

Then go into the modded file and replace "7,14,0 , 1010.400,792.852,294.443 , 0.000" with "your new coordinates , 0.000".

Then look up the position for the mobs that are spawned, just stand there and print the hero info again. then replace all

"7,14,0 , 1672.250,1714.352,224.929 , 0.000" with "your new coordinates , 0.000"

 

No guarantee that it works everywhere. Also I am still not sure what the last number (0.000) does.

Edited by momomo
Link to comment
  • 3 weeks later...
  • 3 years later...

I've been examining this mod to try to better learn about how to script some simple "kill this boss" quests for my Diablo 2 Fallen mod. This lead me to consider updating this mod, as is, for CM Patch 1.50 so current players can enjoy it.

 

So I'll just repeat the question I posed in this post for another long-dead mod: is there any interest?

Link to comment
  • 2 weeks later...
  • 2 years later...
  • 1 year later...

If people havent figured it out yet, the last number in a position is most likely the azimuth.

Following example strenghtens this claim:

Quote

mgr.addMapPos {
    merchantType = 4,
    position = {
      x = 146300.00,
      y = 62350.00,
      z = 0.00,
      layer = 0,
      orientation = 1.000,
    },
}

 

Link to comment
6 hours ago, Charon117 said:

the last number in a position is most likely the azimuth

It is.  A value of 0 has the creature facing directly north.  Enter a positive or negative value in degrees to rotate it clockwise or counterclockwise.

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...
Please Sign In or Sign Up