Quick Questions, Quick Answers Thread #8

Post » Mon Nov 19, 2012 5:00 am

I'm having issues with what appears to be corruptions occurring with my exterior world spaces. What happens is when I use the coc command to go to one of the interior cells, and then go out into the custom exterior world space, the terrain is broken apart into floating separated pieces, making navigation through the environment impossible, and if it is observed in the CK, there doesn't seem to be any way to correct the separated segments. Has anyone seen something like this happen before, and if so, is there any way to remedy the situation?

I should also mention that the terrain is showing up fine in the CK, and with saves that are in a cell directly connected to the new world space.

It shows basically as each cell having a completely flat terrain, but each with different heights? I've had the problem before but I do not remember how to fix it (or maybe I was not able to?)... I will tell you if I remember.
User avatar
Sophh
 
Posts: 3381
Joined: Tue Aug 08, 2006 11:58 pm

Post » Mon Nov 19, 2012 6:25 am

Hey guys not at home so can't test. I need to script an item to delete its old container when removed.

Would it just be

OldContainer.Delete()

In the event script?

Thanks for your help :)
User avatar
Jessie Butterfield
 
Posts: 3453
Joined: Wed Jun 21, 2006 5:59 pm

Post » Mon Nov 19, 2012 4:53 pm

Hey guys not at home so can't test. I need to script an item to delete its old container when removed.

Would it just be

OldContainer.Delete()

In the event script?

Thanks for your help :smile:
Be careful with that and make sure akOldContiner is what you think it is. Wouldn't want to delete just any container as that could cause ...issues.
User avatar
Crystal Clarke
 
Posts: 3410
Joined: Mon Dec 11, 2006 5:55 am

Post » Mon Nov 19, 2012 6:44 am

Be careful with that and make sure akOldContiner is what you think it is. Wouldn't want to delete just any container as that could cause ...issues.

It's ok mate lol I know it's dangerous :P

Basically made a new item, Wolf Carcass. All I want is when removed from old container (the wolf) it gets deleted. The object itself is a quest item to, so the player has only 1 way to control it; remove it from the wolf. Ill use ifs etc to make it safe :)
User avatar
Emily Jeffs
 
Posts: 3335
Joined: Thu Nov 02, 2006 10:27 pm

Post » Mon Nov 19, 2012 5:51 pm



It's ok mate lol I know it's dangerous :P

Basically made a new item, Wolf Carcass. All I want is when removed from old container (the wolf) it gets deleted. The object itself is a quest item to, so the player has only 1 way to control it; remove it from the wolf. Ill use ifs etc to make it safe :)
Cool, then:
Spoiler
Bool bDoOnceActor Property WolfACHR AutoEvent OnContainerChanged(ObjectReference akNewContainer, ObjectReference akOldContainer)	If !bDoOnce		If akOldContainer == WolfACHR			bDoOnce = True			WolfACHR.Disable()			WolfACHR.Delete()		EndIf	EndIfEndEvent
Note that http://www.creationkit.com/Delete_-_ObjectReference is intended for dynamically created references via, for instance, http://www.creationkit.com/ObjectReference.PlaceAtMe_(Papyrus).
User avatar
Roisan Sweeney
 
Posts: 3462
Joined: Sun Aug 13, 2006 8:28 pm

Post » Mon Nov 19, 2012 3:15 pm

Hi guys, I've been following the quest tutorial on the wiki and I've hit an issue that I am trying to resolve, but having no luck so far. I've set up the dialogue for Bendu Olo, but the "Do you need any help..." option does not show up initially (just get ordinary greetings, with no options).

However, if I load the game, the option will appear. This isn't really a fix though, because if I start a new character and do the same, the option is gone again until I go through the menu and re-load.

It seems that others have had this problem (can't post links yet, but this is on creationkit .com): Talk:Bethesda_Tutorial_Dialogue#Bendu_Olo_will_not_enter_conversation.2C_only_speaking_.22passerby.22_greetings

But it seems there has been no solution yet... ? Any ideas?
User avatar
Stephanie Kemp
 
Posts: 3329
Joined: Sun Jun 25, 2006 12:39 am

Post » Mon Nov 19, 2012 12:31 pm

Sounds like the dialogue bug. Check out http://www.gamesas.com/topic/1413287-dialoguequest-bug-thread-3/ thread for more details.
User avatar
Anna Watts
 
Posts: 3476
Joined: Sat Jun 17, 2006 8:31 pm

Post » Mon Nov 19, 2012 1:13 pm

Cool, then:
Spoiler
Bool bDoOnceActor Property WolfACHR AutoEvent OnContainerChanged(ObjectReference akNewContainer, ObjectReference akOldContainer)	If !bDoOnce		If akOldContainer == WolfACHR			bDoOnce = True			WolfACHR.Disable()			WolfACHR.Delete()		EndIf	EndIfEndEvent
Note that http://www.creationkit.com/Delete_-_ObjectReference is intended for dynamically created references via, for instance, http://www.creationkit.com/ObjectReference.PlaceAtMe_(Papyrus).

Thanks mate but that won't work I don't think, the dead wolf is an alias, chosen by the SM event actor killed. The item is an alias created in the wolf alias :) that quest also completes and is started again on the next kill. It'll have to be an old container jobby with a keyword condition or something :)
User avatar
saharen beauty
 
Posts: 3456
Joined: Wed Nov 22, 2006 12:54 am

Post » Mon Nov 19, 2012 9:04 am

Sounds like the dialogue bug. Check out http://www.gamesas.com/topic/1413287-dialoguequest-bug-thread-3/ thread for more details.

Ah okay :) Was trying to figure out if I had done something wrong (or if it was bugged). Yeah, this definitely looks like it is that dialogue bug. :( Thanks for the help.
User avatar
candice keenan
 
Posts: 3510
Joined: Tue Dec 05, 2006 10:43 pm

Post » Mon Nov 19, 2012 4:27 pm

Hello, I want to apply the dirt textures on the player through script, but I noticed they're not selectable in the CK nor is there a papyrus command for it, right?

I unpacked the textures and created a shader effect with them, but I'm having trouble getting it to show in game just like when selected through the character creation screen. Does anybody know a nice tutorial for effect shaders or where I could get which settings to apply in the effect shader screen?
User avatar
Blackdrak
 
Posts: 3451
Joined: Thu May 17, 2007 11:40 pm

Post » Mon Nov 19, 2012 7:21 pm

Any way to find out if the player is dual wielding? Other than iterating through (for each hand) http://www.creationkit.com/GetEquippedItemType_-_Actor for all applicable things that can be dual wielded?
User avatar
Jessica Stokes
 
Posts: 3315
Joined: Fri Jul 28, 2006 11:01 am

Post » Mon Nov 19, 2012 8:13 pm

...Deleted. I'm making a new thread about it instead.
User avatar
marie breen
 
Posts: 3388
Joined: Thu Aug 03, 2006 4:50 am

Post » Mon Nov 19, 2012 10:05 am

How do I move all the items from an actors inventory, and put them into the player's inventory? Kind of how TAKE ALL works.

Here is the script that the function will be called in. The Carcass is an alias, and the Wolf is an alias. I would like to take all the items in the Wolf's inventory, and add it to the player's, when they take the Carcass.

Spoiler

Scriptname HISWHGH1Carcass1 extends ReferenceAlias  ReferenceAlias Property wolf  Auto  Event OnContainerChanged(ObjectReference akNewContainer, ObjectReference akOldContainer)  if akOldContainer == Wolf.GetReference() && akNewContainer == Game.GetPlayer()	Debug.MessageBox("Changed container properly")	akOldContainer.Delete()else;  endIfendEvent
User avatar
kitten maciver
 
Posts: 3472
Joined: Fri Jun 30, 2006 2:36 pm

Post » Mon Nov 19, 2012 3:34 pm

I think http://www.creationkit.com/RemoveAllItems_-_ObjectReference is what your looking for.
User avatar
Kara Payne
 
Posts: 3415
Joined: Thu Oct 26, 2006 12:47 am

Post » Mon Nov 19, 2012 6:41 pm

I think http://www.creationkit.com/RemoveAllItems_-_ObjectReference is what your looking for.

Ok so it works :) Here is my script. The wolf gets deleted fine when you take the carcass, and when you close the inventory menu the other items (Wolf pelt etc) get added to your inventory as well.

Spoiler

Scriptname HISWHGH1Carcass1 extends ObjectReference ReferenceAlias Property wolf  Auto Quest Property HISWHGH1  Auto  Event OnContainerChanged(ObjectReference akNewContainer, ObjectReference akOldContainer)  if akNewContainer == Game.GetPlayer() && HISWHGH1.GetStage() == 10    Debug.MessageBox("Changed container properly")       akOldContainer.RemoveAllItems(akTransferTo = Game.GetPlayer())    akOldContainer.Delete()else;  endIfendEvent

Now lastly, how do I force the inventory menu to close also, like when you do TAKE ALL? :)

Cheers guys!
User avatar
Natasha Biss
 
Posts: 3491
Joined: Mon Jul 10, 2006 8:47 am

Post » Mon Nov 19, 2012 7:52 pm

Any way to find out if the player is dual wielding? Other than iterating through (for each hand) http://www.creationkit.com/GetEquippedItemType_-_Actor for all applicable things that can be dual wielded?

Can't you just do this?

int left = yourActor.GetEquippedItemType(0)int right = yourActor.GetEquippedItemType(1)if ( left > 0 && left < 5 && right > 0 && right < 5 )   ;//Dual wielding with melee weaponselse  ;//Add more conditions if you wantendif
User avatar
Bonnie Clyde
 
Posts: 3409
Joined: Thu Jun 22, 2006 10:02 pm

Post » Mon Nov 19, 2012 8:19 pm

It shows basically as each cell having a completely flat terrain, but each with different heights? I've had the problem before but I do not remember how to fix it (or maybe I was not able to?)... I will tell you if I remember.
That is exactly the issue. If anyone else knows anything, let me know.
User avatar
Richard Dixon
 
Posts: 3461
Joined: Thu Jun 07, 2007 1:29 pm

Post » Mon Nov 19, 2012 9:37 am



Can't you just do this?

int left = yourActor.GetEquippedItemType(0)int right = yourActor.GetEquippedItemType(1)if ( left > 0 && left < 5 && right > 0 && right < 5 )   ;//Dual wielding with melee weaponselse  ;//Add more conditions if you wantendif
Or:
Spoiler
ScriptName YourPlayerAliasScript Extends ReferenceAliasActor Property PlayerREF AutoBool Property bIsDualWielding AutoEvent OnObjectEquipped(Form akBaseObject, ObjectReference akReference)	bIsDualWielding = IsDualWielding(PlayerREF)EndEventEvent OnObjectUnequipped(Form akBaseObject, ObjectReference akReference)	bIsDualWielding = IsDualWielding(PlayerREF)EndEventBool Function IsDualWielding(Actor akActor) Global	Int iLeftType = akActor.GetEquippedItemType(0)	Int iRightType = akActor.GetEquippedItemType(1)	If iLeftType && iRightType		If iLeftType > 8 || iRightType > 8			Return False		Else			Return True		EndIf 	Else		Return False	EndIfEndFunction
User avatar
Elle H
 
Posts: 3407
Joined: Sun Aug 06, 2006 3:15 am

Post » Mon Nov 19, 2012 4:02 pm

About my little terrain issue...
Never save your mod after generating LOD with the CK. There's a bug somewhere that sometimes messes up your mod (in the manner you describe) and is irreversible. If you're lucky, there may be a backup in the Skyrim\Backup\ folder with the naming format -
YourMod.esp.0.bak
YourMod.esp.1.bak
YourMod.esp.2.bak...etc

Also note that the highest number may not be the latest backup, so sort the folder by date. To use the backups, just remove the .1.bak or .2.bak from the end of the filename.

Good luck.
Apparently it's irreversible damage caused by the CK, which is stupid because it's apparently generating LOD without my knowledge (I certainly haven't been generating LOD data for the terrain through the World Menu, the worldspace in question has had no alterations made to the terrain itself). If it's apparently automatically generating and potentially corrupting all my worldspaces, then how am I supposed to work on anything in a worldspace? I guess I should just create the basic structures I need in an Interior cell and then just cut and paste it into a worldspace later, and then constantly create backups before touching anything in the worldspace.

Then again, there is no terrain LOD data in the Data folder, so that may not even be the cause, either. It probably just breaks the terrain whenever it feels like or something. So much for the theory that this is caused by bad LOD generation. :swear:
User avatar
Sian Ennis
 
Posts: 3362
Joined: Wed Nov 08, 2006 11:46 am

Post » Mon Nov 19, 2012 10:00 am

Justin, I should have listened to you earlier... :dry:

Just wasted probably 3 hours of my life trying to make it safe for the script to delete the old container. Was trying my hardest in every way possible to make the object a quest item so the player couldn't drop it. Because it's created in another quest that starts/stops each time you kill a wolf, it wasn't going my way.

In the end I tried your DoOnce script, thinking it wouldn't work because the Carcass is born each time you kill a wolf during this quest, and with the script being on the Base Object of the carcass, I thought it would only work once. Well, nope. It works for each iteration of the item. I had no idea lol, yet it seems obvious now.

Also, side note, I realised today you can double-click a word in the script editor in the CK (for example, a property name, or Function) and it'll select the whole thing. Makes it much easier to delete HISWHGH1WolfAliasProperty and stuff like that lol. Anywho, final script:

Spoiler

Scriptname HISWHGH1Carcass1 extends ObjectReferenceQuest Property HISWHGH1  Auto  Actor Property Player  Auto  Bool bDoOnceEvent OnContainerChanged(ObjectReference akNewContainer, ObjectReference akOldContainer)		If !bDoOnce  if akNewContainer == Player && HISWHGH1.GetStage() == 10	  Debug.MessageBox("Changed container properly")		 akOldContainer.RemoveAllItems(akTransferTo = Player)						bDoOnce = True							   akOldContainer.Delete()					else;  endIfEndIfendEvent

Goodnight, and thanks again brother :smile:
User avatar
cassy
 
Posts: 3368
Joined: Mon Mar 05, 2007 12:57 am

Post » Mon Nov 19, 2012 12:32 pm

Okay, I think I may have just solved my problem with the terrain. I made a few edits with the terrain in the worldspace, and now I no longer appear to be having the issue I had before.
User avatar
Dan Scott
 
Posts: 3373
Joined: Sun Nov 11, 2007 3:45 am

Post » Mon Nov 19, 2012 3:16 pm

I made a thread for my question, and then found this thread, so I decided to post here too to see if anyone can help.



I noticed NPC's have two different names.

Full Name

Short Name


Full Name is used when your cursor is pointing at them, to show their name.

Short Name is used as their names in subtitles.


Is their anyway to change subtitles to use their Full Name, instead of their Short Name? Or use something else besides their Short Name?


Thanks to all
User avatar
Jessica Colville
 
Posts: 3349
Joined: Wed Oct 18, 2006 6:53 pm

Post » Mon Nov 19, 2012 4:43 pm

About my little terrain issue...Apparently it's irreversible damage caused by the CK, which is stupid because it's apparently generating LOD without my knowledge (I certainly haven't been generating LOD data for the terrain through the World Menu, the worldspace in question has had no alterations made to the terrain itself). If it's apparently automatically generating and potentially corrupting all my worldspaces, then how am I supposed to work on anything in a worldspace? I guess I should just create the basic structures I need in an Interior cell and then just cut and paste it into a worldspace later, and then constantly create backups before touching anything in the worldspace.

Then again, there is no terrain LOD data in the Data folder, so that may not even be the cause, either. It probably just breaks the terrain whenever it feels like or something. So much for the theory that this is caused by bad LOD generation. :swear:

Haha, that's almost a disappointment, because LOD generated automatically as you're working would actually be an awesome improvement if it worked.
User avatar
Jesus Lopez
 
Posts: 3508
Joined: Thu Aug 16, 2007 10:16 pm

Post » Mon Nov 19, 2012 5:17 am

Is it possible to attach an activator object through NifScope to a dynamic movable object and access it through script? I guess not, but just in case...
User avatar
Sophie Miller
 
Posts: 3300
Joined: Sun Jun 18, 2006 12:35 am

Post » Mon Nov 19, 2012 7:10 am

Spoiler
Or:
Spoiler
ScriptName YourPlayerAliasScript Extends ReferenceAliasActor Property PlayerREF AutoBool Property bIsDualWielding AutoEvent OnObjectEquipped(Form akBaseObject, ObjectReference akReference)	bIsDualWielding = IsDualWielding(PlayerREF)EndEventEvent OnObjectUnequipped(Form akBaseObject, ObjectReference akReference)	bIsDualWielding = IsDualWielding(PlayerREF)EndEventBool Function IsDualWielding(Actor akActor) Global	Int iLeftType = akActor.GetEquippedItemType(0)	Int iRightType = akActor.GetEquippedItemType(1)	If iLeftType && iRightType		If iLeftType > 8 || iRightType > 8			Return False		Else			Return True		EndIf	Else		Return False	EndIfEndFunction

Thanks for the replies, I only need to check once so no need for a function.

Now, my next question. How do I stop the menu to choose to put points into Health, Magicka and Stamina from appearing??
User avatar
LittleMiss
 
Posts: 3412
Joined: Wed Nov 29, 2006 6:22 am

PreviousNext

Return to V - Skyrim