Oddity. Copy of actor in inventory.

Post » Wed Jun 20, 2012 7:30 pm

I was tinkering with a script and noticed a form show up in the MISC section of my inventory named "http://i.imgur.com/XKBGc.jpg", so I dropped it and lo and behold, there was a http://i.imgur.com/2ydF6.jpg of the default Player you are if COC'ing from the main menu. I then tried with other characters and was able to create more copies. Anyhow, I've discerned it's an http://www.creationkit.com/EquipItem_-_Actor#Notes anomaly. Not sure why it works, but it might come in handy for someone's cloning lab...

The below will add an Alduin _NPC form to the MISC section of the player's inventory that, when dropped, will be a full-sized Alduin actor.
Game.GetPlayer().EquipItem(MQ101AlduinREF.GetBaseObject())

[ACHR:00032DB7] is MQ101AlduinREF
User avatar
sexy zara
 
Posts: 3268
Joined: Wed Nov 01, 2006 7:53 am

Post » Thu Jun 21, 2012 2:24 am

i smell an action figure mod coming soon
User avatar
Danii Brown
 
Posts: 3337
Joined: Tue Aug 22, 2006 7:13 am

Post » Wed Jun 20, 2012 11:18 pm

Ha! Gotta catch 'em all?

http://i.imgur.com/yXQyv.jpg
User avatar
Georgia Fullalove
 
Posts: 3390
Joined: Mon Nov 06, 2006 11:48 pm

Post » Thu Jun 21, 2012 8:58 am

http://www.youtube.com/watch?v=KhnIqgTEBS8
User avatar
JAY
 
Posts: 3433
Joined: Fri Sep 14, 2007 6:17 am

Post » Thu Jun 21, 2012 12:10 am

Ha! Gotta catch 'em all?

Now THERE's an idea for a hit mod.

We just need somebody to script a soul gem to capture a creature when their health is low, an arena to battle NPC's creatures, and a creature exp system. I think you've just stumbled onto a gold mine! :P

- Hypno
User avatar
Kelly James
 
Posts: 3266
Joined: Wed Oct 04, 2006 7:33 pm

Post » Wed Jun 20, 2012 10:52 pm

http://www.youtube.com/watch?v=KhnIqgTEBS8
*starts a Mel Brooks marathon*
Now THERE's an idea for a hit mod.

We just need somebody to script a soul gem to capture a creature when their health is low, an arena to battle NPC's creatures, and a creature exp system. I think you've just stumbled onto a gold mine! :P

- Hypno
There's bound to be something it could be handy for. Isn't that odd though? I'll try to figure out how to capture the reference made when the actor is dropped. From there it could be scripted to do whatever. The actor MISC forms can be stowed in containers too. The Player copy had weight, but Alduin was weightless.
User avatar
Sammygirl
 
Posts: 3378
Joined: Fri Jun 16, 2006 6:15 pm

Post » Wed Jun 20, 2012 7:54 pm

Interesting finding.This deserves some research...
User avatar
carley moss
 
Posts: 3331
Joined: Tue Jun 20, 2006 5:05 pm

Post » Thu Jun 21, 2012 8:25 am

Interesting finding.This deserves some research...
At some point, someone was asking about Oblivion's http://cs.elderscrolls.com/index.php/CreateFullActorCopy. I tried to find the thread to post this in but couldn't find it, but this could serve as a jury rig for that.

Copies of a character have the actor's base items/stats it seems. I'm very curious to see what others find.
User avatar
Tiff Clark
 
Posts: 3297
Joined: Wed Aug 09, 2006 2:23 am

Post » Wed Jun 20, 2012 7:08 pm

About curiosities (and knowing you are also interested in ways to create onload checks), I think you will like this: http://www.gamesas.com/topic/1368850-setav-does-not-stick-past-saveload/
User avatar
Saul C
 
Posts: 3405
Joined: Wed Oct 17, 2007 12:41 pm

Post » Wed Jun 20, 2012 7:37 pm

Yeah. Saw that and couldn't help but think it'd make for another bootleg GetGameLoaded() if ever LeveledItem.AddForm() is made to persist.

'GetGameLoaded(3.01, MaiqTheLiarREF)'
Edit:
Spoiler
Bool Function GetGameLoaded(Float afModifiedValue = http://forums.bethsoft.com/topic/1368835-oddity-copy-of-actor-in-inventory/0.0, Actor akActor = None) 	If akActor.GetActorValue("MagickaRate") == afModifiedValue		Return False	Else		akActor.SetActorValue("MagickaRate", afModifiedValue)		Return True	EndIfEndFunction 
User avatar
Leah
 
Posts: 3358
Joined: Wed Nov 01, 2006 3:11 pm

Post » Thu Jun 21, 2012 4:57 am

Whittled it down to a one-liner:
Game.GetPlayer().EquipItem((Game.GetForm(0x00032DB7) As ObjectReference).GetBaseObject())
So far, I've not been able to get it to work with anything but an ACHR, nor have I been able to set an ObjectReference/Actor variable/property to the dropped _NPC*.

*Good call, RandomNoob
User avatar
Ryan Lutz
 
Posts: 3465
Joined: Sun Sep 09, 2007 12:39 pm

Post » Thu Jun 21, 2012 8:21 am

In regards to getting an Actor variable for the dropped NPC, how about putting a script like this on the player?

Actor MyPokemon;;;Event OnItemRemoved(Form akBaseItem, int aiItemCount, ObjectReference akItemReference, ObjectReference akDestContainer)	if (akBaseItem as ActorBase)		Utility.Wait(1)		MyPokemon = Game.FindClosestReferenceOfTypeFromRef(akBaseItem, Game.GetPlayer(), 512.0)	endifEndEvent

EDIT: Or I guess you can actually just use akItemReference.
User avatar
Laura Hicks
 
Posts: 3395
Joined: Wed Jun 06, 2007 9:21 am

Post » Wed Jun 20, 2012 9:16 pm

The question is akbaseitem will return the base ID of the actor or the base ID of the fork?
User avatar
Shirley BEltran
 
Posts: 3450
Joined: Wed Jul 26, 2006 4:14 pm

Post » Wed Jun 20, 2012 6:32 pm

What does the fork have to do with anything? :blink:

"0x00032DB7" is the reference ID of the Alduin npc, not a fork.
User avatar
R.I.P
 
Posts: 3370
Joined: Sat Dec 01, 2007 8:11 pm

Post » Wed Jun 20, 2012 11:07 pm

What does the fork have to do with anything? :blink:

"0x00032DB7" is the reference ID of the Alduin npc, not a fork.
Oh! The fork base ID was used in the previous version and I assumed it was the same ID.
User avatar
Greg Cavaliere
 
Posts: 3514
Joined: Thu Nov 01, 2007 6:31 am

Post » Wed Jun 20, 2012 11:33 pm

In regards to getting an Actor variable for the dropped NPC, how about putting a script like this on the player?

Actor MyPokemon;;;Event OnItemRemoved(Form akBaseItem, int aiItemCount, ObjectReference akItemReference, ObjectReference akDestContainer)	if (akBaseItem as ActorBase)		Utility.Wait(1)		MyPokemon = Game.FindClosestReferenceOfTypeFromRef(akBaseItem, Game.GetPlayer(), 512.0)	endifEndEvent

EDIT: Or I guess you can actually just use akItemReference.
Will plug that into a PlayerAliasScript and see. :smile:

Edit: Yep. That caught him. Good call.
Oh! The fork base ID was used in the previous version and I assumed it was the same ID.
Yeah, the fork ended up being irrelevant, as did the ObjectReference array.


Edit: Provided an ObjectReference script is attached to the base actor, OnContainerChanged, OnEquipped, and all the other events seem to work.
User avatar
Kelly Tomlinson
 
Posts: 3503
Joined: Sat Jul 08, 2006 11:57 pm


Return to V - Skyrim