Drevin's Vengeance
Submitted by volkan on Thu, 2007-10-25 14:18 | ||
Found a way to get Drevin as an NPC, then had to find a way to get him back into the regular game, just to find out he couldn't be saved. Did some more altering and got him to save as a regular NPC that can be dismissed and rehired from the Inn. Now to play test for a while and make sure everything I altered doesn't break the rest of the game. forums: |
||
» |
:idea:
Should be simple enough... create a new actor template based on the Drevin model, and then make a way for the new actor to be available for recruiting. To make the story a bit better fit, perhaps the new character could be the twin brother of Drevin.
I found a way (already in existing code) that allowed me to go back to Greilyn Beach to gather him up. Then I had to create a way to get away from the starting beach, and back to the towns. (Hey, we can resurrect everyone else if they die, why not him) :dance1:
Because you'd have to change all the conversations that assume he's (permanently) dead. I'm not even sure I could find them all if I wanted to.
That's the key word...assume. I can make it where you can't get him until late in the game as well.
I think your last reply answers that question, but how about putting him in BW? That sort of answers why he wasn't just resurrected by the Dryads - Valdis was preventing it.
I can't do complex things like new NPC's until I can teach myself more about C++. So I have to rely on simple fixes that are within my grasp. Actually, all I did was enable the dev_superstore teleporter, then altered existing objects and code to get me where I needed to go. That's also why I am testing what I changed to make sure it doesn't break anything. File size is a whopping 12 KB. ^^
New NPC's aren't complex at all, and you don't need C++ skills to do them. Check out "Buddy" in my_test_world.
As for adding a new NPC to BW, that would be tricky without being able to open up a BW region in SE2...
Will have to examine your mod some more. Even though I've learned a lot since last summer, I still have a lot more to learn. Don't know if you remember how lost I was when I first joined Siegecore, but you guys had to walk me through sending an E-Mail. ^^
Edit: This idea sprang up when I wanted to see if I could get to the dev_superstore. When I got there the teleporter lets you go to any startpoint in the game. When I went to Greilyn Beach, Drevin was automatically put back into the party. These are the files I changed to get to a testing stage that hopefully won't cause any game mishaps. "ds2_world_pm_hero_based" is also changed for DS2 Catmansion. http://www.mediafire.com/download.php?fwazzymmh2m
Did some more study of "Buddy", but my new NPC keeps ignoring me. Will try some other things, but may be back screaming "HELP".
There are a few little details that you need to get a new NPC to talk... conversations, a talk flick, references to the convo's / flick within the actor's template (often done within the instance template...).
@volkan: I recently left some notes on siegecore about talking actors.
http://www.dulacs.com/siegecore/index.php?name=Forums&file=viewtopic&p=2508#2508
Maybe it will help a bit to keep the overview.
Not sure if it's a naming problem, or a file tree problem, but the game won't recognize my talk flick. Maybe someone could take a look at what I have done and tell me where my errors are. Plan on adding a note drop from a chest telling to meet an old friend "At a location overlooking the world" later in the game and moving the teleporter activation to after Kalrathia. If I put the "auto joiner" in his template he will join, but would rather have the initial conversation. Core ZIP at http://www.mediafire.com/download.php?0dznmhcdvcn
Any help would be appreciated.
Looks like you're missing the SCID_Name (linking the Role pointer from the flick to the actor object on the map)... take a look at KG's linked thread for details.
OK finally figured out you're not referring to the template SCID but rather the external role SCID as defined by the talk flick. Next question: How do I make the NPC hire emitter with SE2? Cannot find it in the object properties. Will have to take a look at SU tutorial for DS2.
Edit: found what I was looking for. Have to add:
to the actor template.
A technique GPG seemed to use a lot was to have a separate emitter gizmo, and place the actor underneath it. Once the NPC is hired, you can destroy it and not have to worry about it getting set the wrong way later. You have to have a talk flick to run the hire/decline/view stats stuff, and the flick can do that sort of thing quire easily. Deru and Lothar both work that way, IIRC.
It seems to me that I set up Buddy's hire indicator that way too...
Got everything together....but he still ignores my talk flick. Gonna play around some more and see if I can find my errors.
That seems to hit the matter.
Respectively at least in the files to download there is no infromation available which SCID is assigned for role 'ds2_world_npc_drevin_indicator' - but flick will expect this SCID number to work correctly.
So either you take care that the SCID role is registered in index/scid_names.gas of that region (by any SE2 work step) or you can add the SCID number directly in the flick.
Thanks for all the replies and help guys. Think I know everything I have to do now, but must wait for a couple of days before I have access to SE2 to test it all. Going to do a completely fresh install.
Edit: Found this in my Dungeon Siege 2 Mod/Logs folder
+00:00:00.043 - Errors occured on SE startup. +00:00:00.045 - Please double check any content described in the error boxes. +00:04:32.567 - MISPLACED CONTENT: Could not initialize [agallan_giant_leader g:0x2c0001a6 s:0xf630012f] with position [0.625576,-2.95404,19.9344,0x7b901ef0]. +00:04:32.709 - Either it cannot stand at this location on the ground or the postion is outside the world entirely. +00:04:32.715 - You can expect to see error messages regarding this object if it is attacked or moved. +00:04:32.718 - It's in the [a3_04_06_agallanpeaks] region +00:04:33.024 - MISPLACED CONTENT: Could not initialize [agallan_giant_01 g:0x360001b0 s:0xf6300330] with position [12.495,-2.907,15.832,0x7b901ef0]. +00:04:33.029 - Either it cannot stand at this location on the ground or the postion is outside the world entirely. +00:04:33.035 - You can expect to see error messages regarding this object if it is attacked or moved. +00:04:33.038 - It's in the [a3_04_06_agallanpeaks] region +00:04:34.215 - MISPLACED CONTENT: Could not initialize [agallan_giant_02 g:0x370001b1 s:0xf6300331] with position [-12.1173,-3.039,15.138,0x7b901ef0]. +00:04:34.221 - Either it cannot stand at this location on the ground or the postion is outside the world entirely. +00:04:34.226 - You can expect to see error messages regarding this object if it is attacked or moved. +00:04:34.229 - It's in the [a3_04_06_agallanpeaks] region +00:09:29.422 - You're unloading a dirty block = , changes not saved to .gas file +00:09:47.409 - Assertions ignored during session:
High-lighted line says it all. That's why I couldn't find my SCID name.