Player statue, still possible?

Post » Thu Jun 21, 2012 1:16 am

ow about Mini-me servants?

Small clones as high as a bottle?
hilarious idea! and easy to do. just lower their scale.
User avatar
[ becca ]
 
Posts: 3514
Joined: Wed Jun 21, 2006 12:59 pm

Post » Thu Jun 21, 2012 9:38 am

I finally got to the point in my mod where i've actually started work on this feature and unfortunately things arent going well.

The way i have it set up so far is as follows:

1. Created a new cell called "StatueWaitCell" which is just four walls, ceiling, floor, navmesh and xmarker (Editor id: "WaitMarker")
2. Added a XMarkerHeading (Editor id: "StatueMarker") to where i want the statue to be
3. Created a new quest called "StatueQuest") which only contains 2 statges (0 & 500)
4. In stage 500 i have the following code in the fragment section:

ObjectReference PlayerStatueRef = WaitMarker.PlaceAtMe(PlayerRef)PlayerStatueRef.SetScale(3.0)PlayerStatueRef.MoveTo(PlayerStatueMarker)(PlayerStatueRef as Actor).EnableAI(False)Debug.Messagebox("Statue should be there")

WaitMarker, PlayerRef & PlayerStatueMarker are all in the properties section as ObjectReference's


When i go in game, i type "setstage StatueQuest 500" into the console and i get my debug message "Statue should be there" but it isn't. I am coc-ing to WhiterunBanneredMare from the main menu before i set the stage so it isn't an old save problem. Any body got any ideas??

Any help will be greatly appreciated

- Hypno
User avatar
Maya Maya
 
Posts: 3511
Joined: Wed Jul 05, 2006 7:35 pm

Post » Thu Jun 21, 2012 4:00 am

Oh yay! This thread is back. Amethyst was talking about her Mini-Me's a few days ago in fact.

As to your problem... initially I'm confused. Are you still in the Bannered Mare when you bump your quest? If so, you'd need to "coc StatueWaitCell" to see it, right? Hehe. Sorry, seems obvious but first thing I noticed.

Next there's the "PlayerStatueRef.SetScale(3.0)" ... my god! All you'd be able to see is his toes! *lol* Kidding aside, an actor that large might hit collision planes oddly. Not sure but it might spawn "under the world" or on top of a roof.

You could always trim a few things out and slowly add code back in to see what's causing the difficulty. Maybe start with:

ObjectReference PlayerStatueRef = Game.GetPlayer().PlaceAtMe(Game.GetPlayer())(PlayerStatueRef as Actor).EnableAI(False)Debug.Messagebox("Statue should be ON TOP OF YOU")

Then see what happens...
User avatar
Solina971
 
Posts: 3421
Joined: Thu Mar 29, 2007 6:40 am

Post » Thu Jun 21, 2012 8:34 am

the problem is that you cannot create a placeatme ref using an existing ref (player's ref)

you need to use a base actor.


get rid of your playerref property and use this instead:


PlayerBase = Game.GetPlayer.GetActorBase()


then Placeatme(PlayerBase)


or if you dont want to use any variables just PlaceAtMe(Game.GetPlayer().GetActorBase())

i can confirm this works because this is what i have in my script for my Manny-Me's (sorry i led you astray by accidentally posting PlayerRef in the first response)
User avatar
Kyra
 
Posts: 3365
Joined: Mon Jan 29, 2007 8:24 am

Post » Thu Jun 21, 2012 8:12 am

Never got around to trying this so I threw together a quick spell. Sure enough, eeriely enough, it works. Just had the magic effect do:

(akCaster.PlaceAtMe(Game.GetPlayer().GetActorBase()) AS Actor).EnableAI(False)

The game does throw up the "[E] Talk Prisoner" which plays the taunts from the Throw Voice Shout. "Hey cheese brain!" and such. Good times. :disco:
User avatar
victoria johnstone
 
Posts: 3424
Joined: Sat Oct 14, 2006 9:56 am

Post » Thu Jun 21, 2012 2:16 am

Cheers for the help guys. Unfortunately I'm not going to be able to try out the changes as I'm going on holiday today for a week. Just to try and be a bit productive, would the following code work?


ObjectReference PlayerStatueRef = WaitMarker.PlaceAtMe(Game.GetPlayer().GetActorBase())PlayerStatueRef.SetScale(3.0)PlayerStatueRef.MoveTo(PlayerStatueMarker)(PlayerStatueRef as Actor).EnableAI(False)Debug.Messagebox("Statue should be there")

- Hypno
User avatar
Rex Help
 
Posts: 3380
Joined: Mon Jun 18, 2007 6:52 pm

Post » Thu Jun 21, 2012 11:54 am

that should do it
User avatar
Music Show
 
Posts: 3512
Joined: Sun Sep 09, 2007 10:53 am

Post » Thu Jun 21, 2012 1:19 pm

Cheers mate. Can't wait to try this out when I get back, I've got a nice fountain statue base set up for it. Now it's just a case of figuring out the stone texture shader

- Hypno
User avatar
clelia vega
 
Posts: 3433
Joined: Wed Mar 21, 2007 6:04 pm

Post » Thu Jun 21, 2012 2:31 pm

if you figure out a way to get a nice pose to work consistently, let me know. otherwise it's just the default t-pose most of the time.
User avatar
sally R
 
Posts: 3503
Joined: Mon Sep 25, 2006 10:34 pm

Post » Thu Jun 21, 2012 11:38 am

Yeh no probs mate. When I get back I'll have a little dig around the player manniquin script and see how Beth achieved it. I still have a couple of questions tho:

1. Will the statue actor generated from the above script have the same items equipped as the player at the time of generation?
2. If the answer to the above is yes, then does that mean that the statue actor will have a copy of the players inventory? And if so, is there a way to make the statue un-pickpocket-able?

- Hypno

EDIT: I have just been poking around at what I'll do if the answer to no.1 is "no". Turns out there isn't a vanilla function to find out what an actor is wearing. I think I'll have to use the skse function "GetWornForm" and make the statue an optional add on.
User avatar
Josh Lozier
 
Posts: 3490
Joined: Tue Nov 27, 2007 5:20 pm

Post » Thu Jun 21, 2012 12:28 pm

Re: mannequin script poses - the vanilla script has all the poses commented out, i'm assuming because they couldn't get it to work properly. you can re-activate it and there are a couple mods that restore this feature, but it's rough at best. it doesn't always play the pose consistently.

1. the clone will have the "default" inventory. this is the same inventory as when you COC from the main menu (iron armor set, weapons + bunch of potions)
- you can use PlayerStatueRef.RemoveAllItems() and then (PlayerStatueRef as Actor).SetOutfit(YourOutfit). if you want your statue naked, you can just make an outfit with no clothing in it. if you want it to have specific weapons, you can use the EquipItem() command and specify the weapon as a property (EquipItem will automatically give the actor the weapon if it doesnt already have it)

2. If you still want the statue Non-Interactive (recommended or else it will say some very strange things around you), you may want to consider using an alias so that you can add a special AI package that disables any conversation or world-interaction (you dont want your statue to talk back every time you pick up an item or swing your weapon)

you will also need to use PlayerStatueRef.SetGhost() so that you cannot hit it and make it bleed when the player swings their weapon at it.


if you want i can post a mini-tutorial on how i got my Manny-Me working (minus the functional mannequin part). it has quite a few essential steps you might need to make your statue less "alive"
User avatar
suniti
 
Posts: 3176
Joined: Mon Sep 25, 2006 4:22 pm

Post » Thu Jun 21, 2012 2:11 pm

That would be great Amethyst Deciever, any tutorials are more then welcome.

Would the following "CopyEquipped" function work so the statue will be wearing whatever the player is at the time it gets called? (Newb question: If the player doesn't have anything equipped in a certain slot, would the script still continue to check the rest of the slots or does it stop?)

Spoiler
Function CopyWornItems()PlayerStatue.RemoveAllItems()(PlayerStatue as Actor).EquipItem((Game.GetPlayer().GetEquippedWeapon() as Weapon).GetBaseObject())(PlayerStatue as Actor).EquipItem((Game.GetPlayer().GetEquippedShield() as Armor).GetBaseObject())(PlayerStatue as Actor).EquipItem((Game.getPlayer().GetWornForm(0x00000001) as Armor).GetBaseObject())(PlayerStatue as Actor).EquipItem((Game.getPlayer().GetWornForm(0x00000002) as Armor).GetBaseObject())(PlayerStatue as Actor).EquipItem((Game.getPlayer().GetWornForm(0x00000004) as Armor).GetBaseObject())(PlayerStatue as Actor).EquipItem((Game.getPlayer().GetWornForm(0x00000008) as Armor).GetBaseObject())(PlayerStatue as Actor).EquipItem((Game.getPlayer().GetWornForm(0x00000010) as Armor).GetBaseObject())(PlayerStatue as Actor).EquipItem((Game.getPlayer().GetWornForm(0x00000020) as Armor).GetBaseObject())(PlayerStatue as Actor).EquipItem((Game.getPlayer().GetWornForm(0x00000040) as Armor).GetBaseObject())(PlayerStatue as Actor).EquipItem((Game.getPlayer().GetWornForm(0x00000080) as Armor).GetBaseObject())(PlayerStatue as Actor).EquipItem((Game.getPlayer().GetWornForm(0x00000100) as Armor).GetBaseObject())(PlayerStatue as Actor).EquipItem((Game.getPlayer().GetWornForm(0x00000200) as Armor).GetBaseObject())(PlayerStatue as Actor).EquipItem((Game.getPlayer().GetWornForm(0x00000400) as Armor).GetBaseObject())(PlayerStatue as Actor).EquipItem((Game.getPlayer().GetWornForm(0x00000800) as Armor).GetBaseObject())(PlayerStatue as Actor).EquipItem((Game.getPlayer().GetWornForm(0x00001000) as Armor).GetBaseObject())(PlayerStatue as Actor).EquipItem((Game.getPlayer().GetWornForm(0x00002000) as Armor).GetBaseObject())(PlayerStatue as Actor).EquipItem((Game.getPlayer().GetWornForm(0x00004000) as Armor).GetBaseObject())(PlayerStatue as Actor).EquipItem((Game.getPlayer().GetWornForm(0x00008000) as Armor).GetBaseObject())(PlayerStatue as Actor).EquipItem((Game.getPlayer().GetWornForm(0x00010000) as Armor).GetBaseObject())(PlayerStatue as Actor).EquipItem((Game.getPlayer().GetWornForm(0x00020000) as Armor).GetBaseObject())(PlayerStatue as Actor).EquipItem((Game.getPlayer().GetWornForm(0x00040000) as Armor).GetBaseObject())(PlayerStatue as Actor).EquipItem((Game.getPlayer().GetWornForm(0x00080000) as Armor).GetBaseObject())(PlayerStatue as Actor).EquipItem((Game.getPlayer().GetWornForm(0x00100000) as Armor).GetBaseObject())(PlayerStatue as Actor).EquipItem((Game.getPlayer().GetWornForm(0x00200000) as Armor).GetBaseObject())(PlayerStatue as Actor).EquipItem((Game.getPlayer().GetWornForm(0x00400000) as Armor).GetBaseObject())(PlayerStatue as Actor).EquipItem((Game.getPlayer().GetWornForm(0x00800000) as Armor).GetBaseObject())(PlayerStatue as Actor).EquipItem((Game.getPlayer().GetWornForm(0x01000000) as Armor).GetBaseObject())(PlayerStatue as Actor).EquipItem((Game.getPlayer().GetWornForm(0x02000000) as Armor).GetBaseObject())(PlayerStatue as Actor).EquipItem((Game.getPlayer().GetWornForm(0x04000000) as Armor).GetBaseObject())(PlayerStatue as Actor).EquipItem((Game.getPlayer().GetWornForm(0x08000000) as Armor).GetBaseObject())(PlayerStatue as Actor).EquipItem((Game.getPlayer().GetWornForm(0x10000000) as Armor).GetBaseObject())(PlayerStatue as Actor).EquipItem((Game.getPlayer().GetWornForm(0x20000000) as Armor).GetBaseObject())(PlayerStatue as Actor).EquipItem((Game.getPlayer().GetWornForm(0x40000000) as Armor).GetBaseObject())(PlayerStatue as Actor).EquipItem((Game.getPlayer().GetWornForm(0x80000000) as Armor).GetBaseObject())EndFunction

(that was fun writing that on an iPhone! :P)

- Hypno
User avatar
Averielle Garcia
 
Posts: 3491
Joined: Fri Aug 24, 2007 3:41 pm

Post » Thu Jun 21, 2012 6:54 am

it would still cycle through the whole function block


as for the mini-tut - now essentially, what you are doing is a mannequin without the interactivity, so bear with me if this is a bit lengthy of a process:



1. In the Messages section of the object window, right click and create new. Name this something like StatueName. uncheck Message Box if its already checked. leave everything blank, and do not enter any text in the message area. click ok to save. (this message is what we will use to override the statues name so that nothing appears when the player mouses over it, otherwise it will say "Talk Prisoner", and the statue will actually say something wierd back to you - usually some form of shout, most oftenly "Hey Skeever-Butt!!"... dont ask lol)

2. In the Packages section, right click and create new. Name it whatever. For Package Template, choose StayAtCurrentLocation. Go to the Flags tab, uncheck EVERYTHING, but leave Ignore Combat and No Combat Alert checked. (what this does is it makes your mannequin ignore all actions or any opportunity to pvssyr back to the player)

3. In the Outfits section, right click and create new. Name it something like StatueOutfit and dont add any apparel to it.

3. Create a Quest and call it something like PlayerStatueClone or whatever. you can leave pretty much everything at default settings, but make sure start game enabled is active. save and close. then reopen the quest edit window

4. Go to Quest Aliases tab, create a new reference alias. Give this alias a name like PlayerStatueAlias. under Display Name choose the blank message you created in step 1. check the following checkboxes, leave the rest unchecked:
Optional
Uses Stored Text
Fill Type is Forced Reference, leave it as None (dont select anything in the render window)
Under Alias Package Data select your package you made in step 2.
Under Scripts, create a new script (make sure it extends ReferenceAlias) and name it something like PlayerStatueAliasScript. the script should contain the following code (which you can adjust to suit your needs)
Spoiler

ObjectReference Property PlayerStatueMarker  AutoForm[] Property ArmorSlot  Auto HiddenEvent OnCellAttach()   PlayCurrentPose()EndEventFunction StatueInit()   ArmorSlot = New Form[34]   PlayCurrentPose()EndFunctionFunction PlayCurrentPose()   Actor PlayerStatue = GetActorReference()   PlayerStatue.MoveTo(PlayerStatueMarker)   PlayerStatue.EnableAI(False)   EquipCurrentArmor()EndFunctionFunction EquipCurrentArmor()   Actor PlayerStatue = GetActorReference()   Int i = 0   While (i < 34)	  If (ArmorSlot[i] != None)		 PlayerStatue.EquipItem(ArmorSlot[i])	  EndIf	  i += 1   EndWhileEndFunction


(if you're going to mess with poses, go ahead and place the code in the PlayCurrentPose function)


5. using the existing script you have now where you create your statue, add the following code inside the same event block after the "placeatme" part. (make sure you add the statue ReferenceAlias as a property to your script, as well as your StatueOutfit)

Spoiler

PlayerStatueAlias.ForceRef(PlayerStatueRef)(PlayerStatueAlias as PlayerStatueAliasScript).StatueInit()Actor PlayerStatue = PlayerStatueAlias.GetActorRef()PlayerStatue.RemoveAllItems()PlayerStatue.BlockActivation()PlayerStatue.SetGhost()PlayerStatue.SetOutfit(StatueOutfit)



you can use the SKSE function you posted above to copy the player's current apparel onto the statue, but need to add it to the statue's armorslot array so that it will keep the items equipped (or else it will strip naked each time you visit it)


Spoiler

Actor Player = Game.GetPlayer()(PlayerStatueAlias as PlayerStatueAliasScript).ArmorSlot[0] = Player.GetEquippedWeapon().GetBaseObject()(PlayerStatueAlias as PlayerStatueAliasScript).ArmorSlot[1] = Player.GetEquippedShield().GetBaseObject()(PlayerStatueAlias as PlayerStatueAliasScript).ArmorSlot[2] = Player.GetWornForm(0x00000001).GetBaseObject(); etc etc until you populate the entire array with all the worn forms(PlayerStatueAlias as PlayerStatueAliasScript).PlayCurrentPose()
User avatar
Alina loves Alexandra
 
Posts: 3456
Joined: Mon Jan 01, 2007 7:55 pm

Post » Wed Jun 20, 2012 10:06 pm

Thank you very much for all the help. When I get back from my holiday I'll give it a go and let you know how it turns out

- Hypno
User avatar
Stat Wrecker
 
Posts: 3511
Joined: Mon Sep 24, 2007 6:14 am

Post » Thu Jun 21, 2012 3:02 am

5. you can use the SKSE function you posted above to copy the player's current apparel onto the statue, but need to add it to the statue's armorslot array so that it will keep the items equipped (or else it will strip naked each time you visit it)


Spoiler

Actor Player = Game.GetPlayer()(PlayerStatueAlias as PlayerStatueAliasScript).ArmorSlot[0] = Player.GetEquippedWeapon().GetBaseObject()(PlayerStatueAlias as PlayerStatueAliasScript).ArmorSlot[1] = Player.GetEquippedShield().GetBaseObject()(PlayerStatueAlias as PlayerStatueAliasScript).ArmorSlot[2] = Player.GetWornForm(0x00000001).GetBaseObject(); etc etc until you populate the entire array with all the worn forms(PlayerStatueAlias as PlayerStatueAliasScript).PlayCurrentPose()

Where exactly do i add this code?

The way i have things set up so far is as follows:

At stage 400 of my quest i have the following code
Spoiler
objectReference PlayerStatueRef = waitMarker.placeAtMe(game.getPlayer().getActorBase())playerStatueRef.SetScale(3.0)(playerStatueRef as Actor).EnableAI(False)Alias_PlayerStatueAlias.ForceRefTo(PlayerStatueRef)Actor PlayerStatue = Alias_PlayerStatueAlias.GetActorRef()PlayerStatue.RemoveAllItems()PlayerStatue.BlockActivation()PlayerStatue.SetGhost()PlayerStatue.SetOutfit(HWEStatueOutfit)Debug.Messagebox("Statue should be waiting")

I have followed all the steps from your tutorial above except for no5 and have the following attached to the statue alias
Spoiler
Scriptname HWEPlayerStatueAliasScript extends ReferenceAlias  ObjectReference Property PlayerStatueMarker  AutoForm[] Property ArmorSlot  Auto HiddenEvent OnCellAttach()   PlayCurrentPose()EndEventFunction StatueInit()   ArmorSlot = New Form[34]   PlayCurrentPose()EndFunctionFunction PlayCurrentPose()   Actor PlayerStatue = GetActorReference()   PlayerStatue.MoveTo(PlayerStatueMarker)   PlayerStatue.EnableAI(False)   EquipCurrentArmor()EndFunctionFunction EquipCurrentArmor()   Actor PlayerStatue = GetActorReference()   Int i = 0   While (i < 34)		  If (ArmorSlot[i] != None)				 PlayerStatue.EquipItem(ArmorSlot[i])		  EndIf		  i += 1   EndWhileEndFunction

As far as i can tell, what i have so far should create a naked statue which is waiting at the waitMarker inside my StatueWaitCell.

Now what i want to happen is when the quest is set to stage 450 the statue equips the same items as the player. Then at stage 500 the statue is moved to the statue marker, not before. If you could outline what i need to amend to accommodate this, as always i'll be very grateful

- Hypno

EDIT: I have written the CopyPlayerItems function but am unsure whether or not i should place it in the HWEPlayerStatueAliasScript itself?
Spoiler
Function CopyPlayerItems()Actor Player = Game.GetPlayer()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[00] = Player.GetEquippedWeapon().GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[01] = Player.GetEquippedShield().GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[03] = Player.GetWornForm(0x00000001).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[04] = Player.GetWornForm(0x00000002).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[05] = Player.GetWornForm(0x00000004).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[06] = Player.GetWornForm(0x00000008).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[07] = Player.GetWornForm(0x00000010).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[08] = Player.GetWornForm(0x00000020).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[09] = Player.GetWornForm(0x00000040).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[10] = Player.GetWornForm(0x00000080).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[11] = Player.GetWornForm(0x00000100).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[12] = Player.GetWornForm(0x00000200).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[13] = Player.GetWornForm(0x00000400).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[14] = Player.GetWornForm(0x00000800).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[15] = Player.GetWornForm(0x00001000).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[16] = Player.GetWornForm(0x00002000).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[17] = Player.GetWornForm(0x00004000).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[18] = Player.GetWornForm(0x00008000).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[19] = Player.GetWornForm(0x00010000).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[20] = Player.GetWornForm(0x00020000).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[21] = Player.GetWornForm(0x00040000).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[22] = Player.GetWornForm(0x00080000).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[23] = Player.GetWornForm(0x00100000).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[24] = Player.GetWornForm(0x00200000).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[25] = Player.GetWornForm(0x00400000).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[26] = Player.GetWornForm(0x00800000).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[27] = Player.GetWornForm(0x01000000).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[28] = Player.GetWornForm(0x02000000).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[29] = Player.GetWornForm(0x04000000).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[30] = Player.GetWornForm(0x08000000).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[31] = Player.GetWornForm(0x10000000).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[32] = Player.GetWornForm(0x20000000).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[33] = Player.GetWornForm(0x40000000).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[34] = Player.GetWornForm(0x80000000).GetBaseObject()EndFunction
User avatar
DAVId MArtInez
 
Posts: 3410
Joined: Fri Aug 10, 2007 1:16 am

Post » Wed Jun 20, 2012 9:57 pm

you can put the SKSE stuff in a function on your quest's main script and call the function in your fragment. if you do not have a script attached to your quest, and are only using fragments, you place all of it in the stage 450 fragment if you want

for the quest fragment at stage 500 you would use this:

(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).PlayCurrentPose()


since you are splitting the "equip player armor" and "moveto statue marker" into separate stages, do not have that last line included in your stage 450 fragment (even though i put it in the tutorial right after the SKSE stuff, disregard it and only call that line in stage 500)
User avatar
Alyesha Neufeld
 
Posts: 3421
Joined: Fri Jan 19, 2007 10:45 am

Post » Thu Jun 21, 2012 11:47 am

I just tried adding the following to the stage 450 fragment but i get this compiler error
Spoiler
Actor Player = Game.GetPlayer()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[00] = Player.GetEquippedWeapon().GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[01] = Player.GetEquippedShield().GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[03] = Player.GetWornForm(0x00000001).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[04] = Player.GetWornForm(0x00000002).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[05] = Player.GetWornForm(0x00000004).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[06] = Player.GetWornForm(0x00000008).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[07] = Player.GetWornForm(0x00000010).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[08] = Player.GetWornForm(0x00000020).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[09] = Player.GetWornForm(0x00000040).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[10] = Player.GetWornForm(0x00000080).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[11] = Player.GetWornForm(0x00000100).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[12] = Player.GetWornForm(0x00000200).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[13] = Player.GetWornForm(0x00000400).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[14] = Player.GetWornForm(0x00000800).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[15] = Player.GetWornForm(0x00001000).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[16] = Player.GetWornForm(0x00002000).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[17] = Player.GetWornForm(0x00004000).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[18] = Player.GetWornForm(0x00008000).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[19] = Player.GetWornForm(0x00010000).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[20] = Player.GetWornForm(0x00020000).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[21] = Player.GetWornForm(0x00040000).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[22] = Player.GetWornForm(0x00080000).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[23] = Player.GetWornForm(0x00100000).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[24] = Player.GetWornForm(0x00200000).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[25] = Player.GetWornForm(0x00400000).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[26] = Player.GetWornForm(0x00800000).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[27] = Player.GetWornForm(0x01000000).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[28] = Player.GetWornForm(0x02000000).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[29] = Player.GetWornForm(0x04000000).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[30] = Player.GetWornForm(0x08000000).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[31] = Player.GetWornForm(0x10000000).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[32] = Player.GetWornForm(0x20000000).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[33] = Player.GetWornForm(0x40000000).GetBaseObject()(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).ArmorSlot[34] = Player.GetWornForm(0x80000000).GetBaseObject()

Spoiler
Starting 1 compile threads for 1 files...Compiling "QF_HWEStatue_0100E65E"...c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_HWEStatue_0100E65E.psc(14,70): required (...)+ loop did not match anything at input '='c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_HWEStatue_0100E65E.psc(15,70): required (...)+ loop did not match anything at input '='c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_HWEStatue_0100E65E.psc(16,70): required (...)+ loop did not match anything at input '='c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_HWEStatue_0100E65E.psc(17,70): required (...)+ loop did not match anything at input '='c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_HWEStatue_0100E65E.psc(18,70): required (...)+ loop did not match anything at input '='c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_HWEStatue_0100E65E.psc(19,70): required (...)+ loop did not match anything at input '='c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_HWEStatue_0100E65E.psc(20,70): required (...)+ loop did not match anything at input '='c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_HWEStatue_0100E65E.psc(21,70): required (...)+ loop did not match anything at input '='c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_HWEStatue_0100E65E.psc(22,70): required (...)+ loop did not match anything at input '='c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_HWEStatue_0100E65E.psc(23,70): required (...)+ loop did not match anything at input '='c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_HWEStatue_0100E65E.psc(24,70): required (...)+ loop did not match anything at input '='c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_HWEStatue_0100E65E.psc(25,70): required (...)+ loop did not match anything at input '='c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_HWEStatue_0100E65E.psc(26,70): required (...)+ loop did not match anything at input '='c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_HWEStatue_0100E65E.psc(27,70): required (...)+ loop did not match anything at input '='c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_HWEStatue_0100E65E.psc(28,70): required (...)+ loop did not match anything at input '='c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_HWEStatue_0100E65E.psc(29,70): required (...)+ loop did not match anything at input '='c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_HWEStatue_0100E65E.psc(30,70): required (...)+ loop did not match anything at input '='c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_HWEStatue_0100E65E.psc(31,70): required (...)+ loop did not match anything at input '='c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_HWEStatue_0100E65E.psc(32,70): required (...)+ loop did not match anything at input '='c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_HWEStatue_0100E65E.psc(33,70): required (...)+ loop did not match anything at input '='c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_HWEStatue_0100E65E.psc(34,70): required (...)+ loop did not match anything at input '='c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_HWEStatue_0100E65E.psc(35,70): required (...)+ loop did not match anything at input '='c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_HWEStatue_0100E65E.psc(36,70): required (...)+ loop did not match anything at input '='c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_HWEStatue_0100E65E.psc(37,70): required (...)+ loop did not match anything at input '='c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_HWEStatue_0100E65E.psc(38,70): required (...)+ loop did not match anything at input '='c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_HWEStatue_0100E65E.psc(39,70): required (...)+ loop did not match anything at input '='c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_HWEStatue_0100E65E.psc(40,70): required (...)+ loop did not match anything at input '='c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_HWEStatue_0100E65E.psc(41,70): required (...)+ loop did not match anything at input '='c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_HWEStatue_0100E65E.psc(42,70): required (...)+ loop did not match anything at input '='c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_HWEStatue_0100E65E.psc(43,70): required (...)+ loop did not match anything at input '='c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_HWEStatue_0100E65E.psc(44,70): required (...)+ loop did not match anything at input '='c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_HWEStatue_0100E65E.psc(45,70): required (...)+ loop did not match anything at input '='c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_HWEStatue_0100E65E.psc(46,70): required (...)+ loop did not match anything at input '='c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\QF_HWEStatue_0100E65E.psc(47,70): required (...)+ loop did not match anything at input '='No output generated for QF_HWEStatue_0100E65E, compilation failed.Batch compile of 1 files finished. 0 succeeded, 1 failed.Failed on QF_HWEStatue_0100E65E

Did i mistype or something?

Also, in the HWEPlayerStatueAliasScript i deleted the PlayCurrentPose() from the StatueInit() function because i didn't wan't it to move the statue to the statuemarker just yet.

While i was typing i just thought, do you think it would be better to just include my CopyPlayerItems function inside the StatueInit() function? That way all i would have to do in stage 450 would be:

(Alias_PlayerStatueAlias as HWEPlayerStatueAliasScript).StatueInit()

Also (last question i promise :P)), regarding the fact that i want to have the statue hidden to begin with, would it be a problem that playCurrentPose() is in the oncellattach event in the statue alias script

- Hypno
User avatar
adam holden
 
Posts: 3339
Joined: Tue Jun 19, 2007 9:34 pm

Post » Thu Jun 21, 2012 4:17 am

thats my fault. it should be

Actor Player == Game.GetPlayer()



and yes, actually now that i think of it, the whole player armor cloning should actually be in the Alias script.

you can create a function like this:


Function ArmorCloning()   Actor Player == Game.GetPlayer()   ArmorSlot[00] = Player.GetEquippedWeapon().GetBaseObject()   ArmorSlot[01] = Player.GetEquippedShield().GetBaseObject()   ArmorSlot[03] = Player.GetWornForm(0x00000001).GetBaseObject();etc etcEndFunction

then call the function ArmorCloning() directly after the ArmorSlot = New Form[34]


regarding your last question, as long as the player never visits your statue's holding cell, the oncellattach will never fire prematurely. but the playcurrentpose in the cellattach block is necessary to prevent your statue from wandering around on its own every time you visit your interior
User avatar
M!KkI
 
Posts: 3401
Joined: Sun Jul 16, 2006 7:50 am

Post » Thu Jun 21, 2012 8:42 am

Ok, there are still compiler errors:

Spoiler
Scriptname HWEPlayerStatueAliasScript extends ReferenceAlias  ObjectReference Property PlayerStatueMarker  AutoForm[] Property ArmorSlot  Auto HiddenEvent OnCellAttach()   PlayCurrentPose()EndEventFunction StatueInit()   ArmorSlot = New Form[34]   ArmorCloning()EndFunctionFunction PlayCurrentPose()   Actor PlayerStatue = GetActorReference()   PlayerStatue.MoveTo(PlayerStatueMarker)   PlayerStatue.EnableAI(False)   EquipCurrentArmor()EndFunctionFunction EquipCurrentArmor()   Actor PlayerStatue = GetActorReference()   Int i = 0   While (i < 34)		  If (ArmorSlot[i] != None)				 PlayerStatue.EquipItem(ArmorSlot[i])		  EndIf		  i += 1   EndWhileEndFunctionFunction ArmorCloning()   Actor Player == Game.GetPlayer()   ArmorSlot[00] = Player.GetEquippedWeapon().GetBaseObject()   ArmorSlot[01] = Player.GetEquippedShield().GetBaseObject()   ArmorSlot[03] = Player.GetWornForm(0x00000001).GetBaseObject()   ArmorSlot[04] = Player.GetWornForm(0x00000002).GetBaseObject()   ArmorSlot[05] = Player.GetWornForm(0x00000004).GetBaseObject()   ArmorSlot[06] = Player.GetWornForm(0x00000008).GetBaseObject()   ArmorSlot[07] = Player.GetWornForm(0x00000010).GetBaseObject()   ArmorSlot[08] = Player.GetWornForm(0x00000020).GetBaseObject()   ArmorSlot[09] = Player.GetWornForm(0x00000040).GetBaseObject()   ArmorSlot[10] = Player.GetWornForm(0x00000080).GetBaseObject()   ArmorSlot[11] = Player.GetWornForm(0x00000100).GetBaseObject()   ArmorSlot[12] = Player.GetWornForm(0x00000200).GetBaseObject()   ArmorSlot[13] = Player.GetWornForm(0x00000400).GetBaseObject()   ArmorSlot[14] = Player.GetWornForm(0x00000800).GetBaseObject()   ArmorSlot[15] = Player.GetWornForm(0x00001000).GetBaseObject()   ArmorSlot[16] = Player.GetWornForm(0x00002000).GetBaseObject()   ArmorSlot[17] = Player.GetWornForm(0x00004000).GetBaseObject()   ArmorSlot[18] = Player.GetWornForm(0x00008000).GetBaseObject()   ArmorSlot[19] = Player.GetWornForm(0x00010000).GetBaseObject()   ArmorSlot[20] = Player.GetWornForm(0x00020000).GetBaseObject()   ArmorSlot[21] = Player.GetWornForm(0x00040000).GetBaseObject()   ArmorSlot[22] = Player.GetWornForm(0x00080000).GetBaseObject()   ArmorSlot[23] = Player.GetWornForm(0x00100000).GetBaseObject()   ArmorSlot[24] = Player.GetWornForm(0x00200000).GetBaseObject()   ArmorSlot[25] = Player.GetWornForm(0x00400000).GetBaseObject()   ArmorSlot[26] = Player.GetWornForm(0x00800000).GetBaseObject()   ArmorSlot[27] = Player.GetWornForm(0x01000000).GetBaseObject()   ArmorSlot[28] = Player.GetWornForm(0x02000000).GetBaseObject()   ArmorSlot[29] = Player.GetWornForm(0x04000000).GetBaseObject()   ArmorSlot[30] = Player.GetWornForm(0x08000000).GetBaseObject()   ArmorSlot[31] = Player.GetWornForm(0x10000000).GetBaseObject()   ArmorSlot[32] = Player.GetWornForm(0x20000000).GetBaseObject()   ArmorSlot[33] = Player.GetWornForm(0x40000000).GetBaseObject()   ArmorSlot[34] = Player.GetWornForm(0x80000000).GetBaseObject()EndFunction
Spoiler
Starting 1 compile threads for 1 files...Compiling "HWEPlayerStatueAliasScript"...c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(39,16): no viable alternative at input '=='c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(39,16): required (...)+ loop did not match anything at input '=='No output generated for HWEPlayerStatueAliasScript, compilation failed.Batch compile of 1 files finished. 0 succeeded, 1 failed.Failed on HWEPlayerStatueAliasScript

So i tried:
Spoiler
Function ArmorCloning()   ArmorSlot[00] = Game.GetPlayer().GetEquippedWeapon().GetBaseObject()   ArmorSlot[01] = Game.GetPlayer().GetEquippedShield().GetBaseObject()   ArmorSlot[03] = Game.GetPlayer().GetWornForm(0x00000001).GetBaseObject()   ArmorSlot[04] = Game.GetPlayer().GetWornForm(0x00000002).GetBaseObject()   ArmorSlot[05] = Game.GetPlayer().GetWornForm(0x00000004).GetBaseObject()   ArmorSlot[06] = Game.GetPlayer().GetWornForm(0x00000008).GetBaseObject()   ArmorSlot[07] = Game.GetPlayer().GetWornForm(0x00000010).GetBaseObject()   ArmorSlot[08] = Game.GetPlayer().GetWornForm(0x00000020).GetBaseObject()   ArmorSlot[09] = Game.GetPlayer().GetWornForm(0x00000040).GetBaseObject()   ArmorSlot[10] = Game.GetPlayer().GetWornForm(0x00000080).GetBaseObject()   ArmorSlot[11] = Game.GetPlayer().GetWornForm(0x00000100).GetBaseObject()   ArmorSlot[12] = Game.GetPlayer().GetWornForm(0x00000200).GetBaseObject()   ArmorSlot[13] = Game.GetPlayer().GetWornForm(0x00000400).GetBaseObject()   ArmorSlot[14] = Game.GetPlayer().GetWornForm(0x00000800).GetBaseObject()   ArmorSlot[15] = Game.GetPlayer().GetWornForm(0x00001000).GetBaseObject()   ArmorSlot[16] = Game.GetPlayer().GetWornForm(0x00002000).GetBaseObject()   ArmorSlot[17] = Game.GetPlayer().GetWornForm(0x00004000).GetBaseObject()   ArmorSlot[18] = Game.GetPlayer().GetWornForm(0x00008000).GetBaseObject()   ArmorSlot[19] = Game.GetPlayer().GetWornForm(0x00010000).GetBaseObject()   ArmorSlot[20] = Game.GetPlayer().GetWornForm(0x00020000).GetBaseObject()   ArmorSlot[21] = Game.GetPlayer().GetWornForm(0x00040000).GetBaseObject()   ArmorSlot[22] = Game.GetPlayer().GetWornForm(0x00080000).GetBaseObject()   ArmorSlot[23] = Game.GetPlayer().GetWornForm(0x00100000).GetBaseObject()   ArmorSlot[24] = Game.GetPlayer().GetWornForm(0x00200000).GetBaseObject()   ArmorSlot[25] = Game.GetPlayer().GetWornForm(0x00400000).GetBaseObject()   ArmorSlot[26] = Game.GetPlayer().GetWornForm(0x00800000).GetBaseObject()   ArmorSlot[27] = Game.GetPlayer().GetWornForm(0x01000000).GetBaseObject()   ArmorSlot[28] = Game.GetPlayer().GetWornForm(0x02000000).GetBaseObject()   ArmorSlot[29] = Game.GetPlayer().GetWornForm(0x04000000).GetBaseObject()   ArmorSlot[30] = Game.GetPlayer().GetWornForm(0x08000000).GetBaseObject()   ArmorSlot[31] = Game.GetPlayer().GetWornForm(0x10000000).GetBaseObject()   ArmorSlot[32] = Game.GetPlayer().GetWornForm(0x20000000).GetBaseObject()   ArmorSlot[33] = Game.GetPlayer().GetWornForm(0x40000000).GetBaseObject()   ArmorSlot[34] = Game.GetPlayer().GetWornForm(0x80000000).GetBaseObject()EndFunction

EDIT: (ignore this, i hadn't installed skse properly)
But still...
Spoiler
Starting 1 compile threads for 1 files...Compiling "HWEPlayerStatueAliasScript"...c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(39,56): GetBaseObject is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(40,56): GetBaseObject is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(41,36): GetWornForm is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(41,60): none is not a known user-defined typec:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(42,36): GetWornForm is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(42,60): none is not a known user-defined typec:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(43,36): GetWornForm is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(43,60): none is not a known user-defined typec:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(44,36): GetWornForm is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(44,60): none is not a known user-defined typec:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(45,36): GetWornForm is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(45,60): none is not a known user-defined typec:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(46,36): GetWornForm is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(46,60): none is not a known user-defined typec:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(47,36): GetWornForm is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(47,60): none is not a known user-defined typec:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(48,36): GetWornForm is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(48,60): none is not a known user-defined typec:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(49,36): GetWornForm is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(49,60): none is not a known user-defined typec:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(50,36): GetWornForm is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(50,60): none is not a known user-defined typec:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(51,36): GetWornForm is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(51,60): none is not a known user-defined typec:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(52,36): GetWornForm is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(52,60): none is not a known user-defined typec:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(53,36): GetWornForm is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(53,60): none is not a known user-defined typec:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(54,36): GetWornForm is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(54,60): none is not a known user-defined typec:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(55,36): GetWornForm is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(55,60): none is not a known user-defined typec:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(56,36): GetWornForm is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(56,60): none is not a known user-defined typec:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(57,36): GetWornForm is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(57,60): none is not a known user-defined typec:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(58,36): GetWornForm is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(58,60): none is not a known user-defined typec:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(59,36): GetWornForm is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(59,60): none is not a known user-defined typec:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(60,36): GetWornForm is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(60,60): none is not a known user-defined typec:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(61,36): GetWornForm is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(61,60): none is not a known user-defined typec:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(62,36): GetWornForm is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(62,60): none is not a known user-defined typec:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(63,36): GetWornForm is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(63,60): none is not a known user-defined typec:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(64,36): GetWornForm is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(64,60): none is not a known user-defined typec:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(65,36): GetWornForm is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(65,60): none is not a known user-defined typec:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(66,36): GetWornForm is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(66,60): none is not a known user-defined typec:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(67,36): GetWornForm is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(67,60): none is not a known user-defined typec:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(68,36): GetWornForm is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(68,60): none is not a known user-defined typec:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(69,36): GetWornForm is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(69,60): none is not a known user-defined typec:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(70,36): GetWornForm is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(70,60): none is not a known user-defined typec:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(71,36): GetWornForm is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(71,60): none is not a known user-defined typec:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(72,36): GetWornForm is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(72,60): none is not a known user-defined typeNo output generated for HWEPlayerStatueAliasScript, compilation failed.Batch compile of 1 files finished. 0 succeeded, 1 failed.Failed on HWEPlayerStatueAliasScript

Is there an extra step i need to do before papyrus recognises skse functions?

Here is the proper compiler error
Spoiler
Starting 1 compile threads for 1 files...Compiling "HWEPlayerStatueAliasScript"...c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(39,56): GetBaseObject is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(40,56): GetBaseObject is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(41,60): GetBaseObject is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(42,60): GetBaseObject is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(43,60): GetBaseObject is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(44,60): GetBaseObject is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(45,60): GetBaseObject is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(46,60): GetBaseObject is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(47,60): GetBaseObject is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(48,60): GetBaseObject is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(49,60): GetBaseObject is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(50,60): GetBaseObject is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(51,60): GetBaseObject is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(52,60): GetBaseObject is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(53,60): GetBaseObject is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(54,60): GetBaseObject is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(55,60): GetBaseObject is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(56,60): GetBaseObject is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(57,60): GetBaseObject is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(58,60): GetBaseObject is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(59,60): GetBaseObject is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(60,60): GetBaseObject is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(61,60): GetBaseObject is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(62,60): GetBaseObject is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(63,60): GetBaseObject is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(64,60): GetBaseObject is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(65,60): GetBaseObject is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(66,60): GetBaseObject is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(67,60): GetBaseObject is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(68,60): GetBaseObject is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(69,60): GetBaseObject is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(70,60): GetBaseObject is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(71,60): GetBaseObject is not a function or does not existc:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\temp\HWEPlayerStatueAliasScript.psc(72,60): GetBaseObject is not a function or does not existNo output generated for HWEPlayerStatueAliasScript, compilation failed.Batch compile of 1 files finished. 0 succeeded, 1 failed.Failed on HWEPlayerStatueAliasScript

EDIT 2: OK, is .getBaseObject() necessary? When i delete it from the end of the line the script compiles...

- Hypno
User avatar
brenden casey
 
Posts: 3400
Joined: Mon Sep 17, 2007 9:58 pm

Post » Thu Jun 21, 2012 7:29 am

it works!!!

Thank you for all the help Amethyst Deciever. Now it's just a case of figuring out a good stone shader, and then possibly poses

- Hypno
User avatar
saxon
 
Posts: 3376
Joined: Wed Sep 19, 2007 2:45 am

Post » Thu Jun 21, 2012 11:52 am

sorry, my head is in the clouds today.

i should have never told you to change it to Actor Player == Game.GetPlayer()

it really should be Actor Player = Game.GetPlayer() like how i originally had it, for some reason i was thinking it was part of the condition.

i suggest changing it back to this, instead of calling GetPlayer() that many times (getplayer is a function call and it will slow down your script significantly enough since it is used so many times in a row unnecessarily.


the reason why it didnt compile the first time, was because the ArmorSlot array was not initialized, but since it is not in the alias script as a function called after the array is initialized, it should work.


I dont know much about those SKSE functions, but if GetWornForm returns a base value and not a reference, GetBaseObject() is not needed
User avatar
Wane Peters
 
Posts: 3359
Joined: Tue Jul 31, 2007 9:34 pm

Post » Thu Jun 21, 2012 11:39 am

ok i have changed it back to the player = game.getplayer().

http://img826.imageshack.us/img826/3598/screenshot62.png is a screenshot of the (nearly) finished product

- Hypno
User avatar
Casey
 
Posts: 3376
Joined: Mon Nov 12, 2007 8:38 am

Post » Thu Jun 21, 2012 2:07 am

HAHA nice. looking good
User avatar
Jonny
 
Posts: 3508
Joined: Wed Jul 18, 2007 9:04 am

Post » Wed Jun 20, 2012 11:36 pm

This is such an amazing thread. I'm going to try using this to make a 'Dragon Statue'!
User avatar
Madison Poo
 
Posts: 3414
Joined: Wed Oct 24, 2007 9:09 pm

Previous

Return to V - Skyrim