Julan Ashlander Companion

Post about your mods, learn about OpenMW mod compatibility, check for problematic mods, discuss issues, and give us feedback about your experience with modded OpenMW.
User avatar
sjek
Posts: 442
Joined: 22 Nov 2014, 10:51

Re: Problems with Julan Ashlander/Other companion mods

Post by sjek »

viewtopic.php?f=3&t=2932

hope that helps. i'm having proplem thinking what to test and how ;)

the outsidebanner as a side note seems like intentionally broken in vanilla as the scripting comment "placed as to make last animation play always" and the random is inaccurate in small numbers + not uniform random per se what have understood.
I'm seeing this like this all over the Julan mod
it's possibly that openmw somehow can't register the command after positioncell. would think it's related also to static casts?
extending the states and placing nogreet setting parts in it's own if block should figure that out moving it to separate frame.

testing tympany (if blocks maybe)
the execution is somehow nested inside if blocks with timer and say function, works, so blocking up is from sound file
Spoiler: Show
PlaySound "Door Heavy Close" works, but PlaySound3D "Door Heavy Open" doesn't. Any ideas?

it could be related to camera change. if recent git, there was fix for playing sounds at player location https://bugs.openmw.org/issues/3038
placing playsound triggered by distance to tseyda neen tridge with global sounds good and second one as local to cave entrance. otherwise it's related to getaipackagedone interfering, not allowing logic to jump right at player from local script.

playsound should play it in player's position and 3d on object's. placing to

Code: Select all

Begin sounds

short do

if do == 2
 if (getdistance "player" > 600)
 set do to 0
 endif
endif

if do == 0
 if (getdistance "player" < 600)
  playsound "Door Heavy Close"
  set do to 1
 endif
endif

if do == 1
 if (getdistance "player" < 200)
  playsound "Door Heavy open"
  set do to 2
 endif
endif

End sounds
both works from console and script and with targeting from global. the first found ingame can be found in cs with regex ID search the right one being the last in exterior cell (grouped by numbers)

good to have weekend.

rolling edits but thinking best when testing and documenting on the go. motivates and yes. using preview .p
Last edited by sjek on 05 Dec 2015, 23:14, edited 6 times in total.
User avatar
scrawl
Posts: 2152
Joined: 18 Feb 2012, 11:51

Re: Problems with Julan Ashlander/Other companion mods

Post by scrawl »

Under if ( state == 2 ), the PositionCell command moves Julan to a different cell, which then prevents noGreet and SetHello changes from being applied. Once you track down Julan in the South Wall Cornerclub, he doesn't give any greet messages, which totally breaks the mod.

Moving the PositionCell command down the list, as in the below code, (almost) restores expected functionality.
Sounds like a consequence of https://bugs.openmw.org/issues/1176. The scripting system can no longer correctly access objects via ""-> notation when they've been moved to a different cell.
User avatar
NatalieN
Posts: 43
Joined: 30 Nov 2015, 21:32

Re: Problems with Julan Ashlander/Other companion mods

Post by NatalieN »

I thought that might be the case. There are still some other issues that I can look into until it's fixed
User avatar
NatalieN
Posts: 43
Joined: 30 Nov 2015, 21:32

Re: Problems with Julan Ashlander/Other companion mods

Post by NatalieN »

Feature 1176 has been implemented (thanks Scrawl!), and Julan is now (mostly) playable! When played along with the .omwaddon from the first post, the only bugs I've encountered are minor and do not break quests.

The only way to be sure everything works is to use either the latest daily (might want to wait for tomorrow's daily, so you can get the fix for Bug 3077) or version 0.38.0 or later. You'll also have to start with a fresh play through of Julan, which means disabling the mod, saving your game, then re-enabling the mod and starting it over.

Speaking of .omwaddons, I've uploaded an updated version. Turns out, there are quite a few scripts in Julan which appear fine, but are broken in implementation. They're mostly cosmetic, but in the case of KS_JulanNight, it can affect your ability to play through the story. If you're playing with an older version of the .omwaddon, please use the new one.

If you come across any other bugs or issues with Julan Ashlander Companion, please post in this thread, and I'll try to help you figure it out. I'm still working on chasing down a few more minor issues.

And finally, could I get some help figuring out why the below script isn't working?

Code: Select all

Goodbye
cast "divine intervention" player
StartScript KS_Jul_DivInt
ModCurrentMagicka -7
The script is called by dialog, there are times when you can ask Julan to teleport you. In this case, the "cast" line doesn't execute. KS_Jul_Divint runs, and his Magicka is modded. I've tried chaning the line to "KS_Julan->Cast "divine intervention" player", and ensured that he has the spell. But it still doesn't cast.

Looking at the documentation for Cast hasn't proved to be helpful either. Everything appears to be properly formatted, and it works in Vanilla. Any idea what's going wrong in OpenMW?
User avatar
scrawl
Posts: 2152
Joined: 18 Feb 2012, 11:51

Re: Problems with Julan Ashlander/Other companion mods

Post by scrawl »

The "divine intervention" spell has the effect "Divine intervention on Self". That's why it does nothing when you ask an NPC to cast it on the player. Is the original engine behaving differently in this respect?
User avatar
NatalieN
Posts: 43
Joined: 30 Nov 2015, 21:32

Re: Julan Ashlander Companion

Post by NatalieN »

Youtube video of Vanilla behavior.

Looks like the NPC casts the spell on self, but the effect is applied to the player.

The script can be changed to player->cast "etc" and then the PC will teleport under the effect of the Intervention spell, but then we don't see the NPC cast the spell.

Maybe a work around would be to do something like

Code: Select all

short timer

KS_Julan-> Cast "some mysticism on self" KS_Julan
Set timer to timer+GetSecondsPassed
If timer > 2
 player-> cast "intervention" player
User avatar
scrawl
Posts: 2152
Joined: 18 Feb 2012, 11:51

Re: Julan Ashlander Companion

Post by scrawl »

The script can be changed to player->cast "etc" and then the PC will teleport under the effect of the Intervention spell, but then we don't see the NPC cast the spell.

Maybe a work around would be to do something like
The proper way to do it would be for the mod to include a new spell (call it julan_intervention_ontouch) with effect "Divine intervention On Touch", then have the NPC cast that spell with target = player.
Youtube video of Vanilla behavior.

Looks like the NPC casts the spell on self, but the effect is applied to the player.
Seems like OpenMW should behave this way too, to make mods compatible.

Does the same apply to Mark and Recall spells?
User avatar
scrawl
Posts: 2152
Joined: 18 Feb 2012, 11:51

Re: Julan Ashlander Companion

Post by scrawl »

Looks like the NPC casts the spell on self, but the effect is applied to the player.
That doesn't seem to work for me in MW.

Stand next to fargoth and do "Fargoth"->cast "Divine intervention" "Player"

The spell is cast and particles show but the player is not teleported, nor is fargoth.
User avatar
NatalieN
Posts: 43
Joined: 30 Nov 2015, 21:32

Re: Julan Ashlander Companion

Post by NatalieN »

Ah ha! Figured it out. Tried to get Mark and Recall to work vicariously in Vanilla to no effect. Tried to get Divine Intervention to work via console, also to no effect.

Took a closer look at the dialog script:

Code: Select all

Goodbye
cast "divine intervention" player
StartScript KS_Jul_DivInt
ModCurrentMagicka -7
Took a closer look at KS_Jul_DivInt

Code: Select all

Begin KS_Jul_DivInt

float timer
short state
float oldgamehour

If ( Menumode == 1 )
	return
elseif ( GameHour == oldgamehour )
	return
endif

set oldgamehour to GameHour


If ( state == 1 )
	player->removespell KS_DivIntPC
	set timer to 0
	set state to 0
	StopScript KS_Jul_DivInt
	return
endif

Set timer to ( timer + GetSecondsPassed )

If ( timer < 2 )
	return
endif

if ( state == 0 )
	player->addspell KS_DivIntPC
	set state to 1
endif
Turns out, Divine Intervention isn't applied vicariously. Behavior in Vanilla is that the NPC casts the spell (which has no effect) and then the script adds an ability (always active) to the player that has Intervention as an effect. Then, the ability is removed.

So there's still a bug in OpenMW behavior, NPCs should still try to cast the Interventions, and Mark and Recall, but those spell shouldn't effect the player.

[EDIT]Playing around with the cast command, I also noticed that in OpenMW, NPCs don't play the casting animation for ANY spell. Maybe that's the only bug here.
User avatar
scrawl
Posts: 2152
Joined: 18 Feb 2012, 11:51

Re: Julan Ashlander Companion

Post by scrawl »

Playing around with the cast command, I also noticed that in OpenMW, NPCs don't play the casting animation for ANY spell.
Yes, that's a missing feature.
the script adds an ability (always active) to the player that has Intervention as an effect. Then, the ability is removed.
I've pushed a new commit for this to (in theory) work correctly. Please test.
Post Reply