Galcyon Posted May 13, 2014 Share Posted May 13, 2014 Having a bit of an issue here. I'm trying to transfer some scripts from FO3 to FONV for a mod (the slave raider one). Problem? The two damn scripts from the mod aren't compiling, and the Geck Powerup isn't showing the error messages! Tried the Script Validator... but it's not helping much either. I have no clue what the issue is, as I'm literally copy/pasting the scripts (and altering slightly to remove specific cell references.) I have the NPC and home marker already added, the leave/died messages, special weapon, and the specific faction added. I've hit a brick wall, since I can't move further without those two scripts. The GECK questing won't let me Can someone else with working error messages on their FONV GECK figure out what I'm doing wrong, and how to solve it? Link to comment Share on other sites More sharing options...
jazzisparis Posted May 13, 2014 Share Posted May 13, 2014 Make sure all the game objects you reference in the script exist, and that their editor/reference IDs are typed in correctly.If that doesn't help, post the scripts here. Link to comment Share on other sites More sharing options...
Galcyon Posted May 14, 2014 Author Share Posted May 14, 2014 Yeah, double and triple checked the references. Gonna post the Scripts. ORIGINAL Quest Script (From the FO3 mod) SCN 1SlaveRaiderQuestSCRIPT short SlaveRaiderHired short SlaveRaiderFired short SlaveRaiderSaved short UnlimitedAmmo float SlaveRaiderWaitingLeaveDay short doFire BEGIN GameMode if ( SlaveRaiderHired == 1 ) if ( SlaveRaiderREF1.HasBeenHired == 1 ) ; Always follow into interiors if ( SlaveRaiderREF1.Waiting == 0 && SlaveRaiderREF1.WaitingHome == 0 ) if ( Player.IsInInterior == 1 && SlaveRaiderREF1.IsInInterior == 0 ) SlaveRaiderREF1.MoveTo Player 50,50,0 endif endif ; Autofire when entering Vault87 if ( player.GetInCell Vault87c && GetQuestRunning MQ08 ) set doFire to 1 endif ; Fire SlaveRaider and send her home after waiting 7 days if ( SlaveRaiderREF1.Waiting == 1 ) && ( SlaveRaiderREF1.GetInCell SpringvaleSchool01 == 0 ) if ( SlaveRaiderWaitingLeaveDay <= GameDaysPassed ) if ( SlaveRaiderREF1.GetInSameCell Player == 0 ) set doFire to 1 endif endif endif endif if ( doFire == 1 ) set SlaveRaiderQuest.SlaveRaiderHired to 0 set SlaveRaiderQuest.SlaveRaiderFired to 1 set SlaveRaiderREF1.HasBeenHired to 0 set SlaveRaiderREF1.Waiting to 0 set SlaveRaiderREF1.IsFollowingDefault to 1 set SlaveRaiderREF1.IsFollowingLong to 0 set SlaveRaiderREF1.IsFollowingShort to 0 SlaveRaiderREF1.SetCombatStyle FollowersCombatStyleMelee set SlaveRaiderREF1.CombatStyleRanged to 0 set SlaveRaiderREF1.CombatStyleMelee to 1 SlaveRaiderREF1.AddToFaction 1SlaveRaiderFaction 0 SlaveRaiderREF1.SetPlayerTeammate 0 SlaveRaiderREF1.RemoveFromFaction FollowerFaction SlaveRaiderREF1.evp ShowMessage FollowerMessageLeave1SlaveRaider SlaveRaiderREF1.MoveTo SlaveRaiderHomeMarker1 set SlaveRaiderWaitingLeaveDay to 0 set doFire to 0 endif endif END MODIFIED Quest Script (For use in FONV) SCN 1SlaveRaiderQuestSCRIPT short SlaveRaiderHired short SlaveRaiderFired short SlaveRaiderSaved short UnlimitedAmmo float SlaveRaiderWaitingLeaveDay short doFire BEGIN GameMode if ( SlaveRaiderHired == 1 ) if ( SlaveRaiderREF1.HasBeenHired == 1 ) ; Always follow into interiors if ( SlaveRaiderREF1.Waiting == 0 && SlaveRaiderREF1.WaitingHome == 0 ) if ( Player.IsInInterior == 1 && SlaveRaiderREF1.IsInInterior == 0 ) SlaveRaiderREF1.MoveTo Player 50,50,0 endif endif ; Fire SlaveRaider and send her home after waiting 7 days if ( SlaveRaiderREF1.Waiting == 1 ) && ( SlaveRaiderREF1.GetInCell BCKhanHideout == 0 ) if ( SlaveRaiderWaitingLeaveDay <= GameDaysPassed ) if ( SlaveRaiderREF1.GetInSameCell Player == 0 ) set doFire to 1 endif endif endif endif if ( doFire == 1 ) set SlaveRaiderQuest.SlaveRaiderHired to 0 set SlaveRaiderQuest.SlaveRaiderFired to 1 set SlaveRaiderREF1.HasBeenHired to 0 set SlaveRaiderREF1.Waiting to 0 set SlaveRaiderREF1.IsFollowingDefault to 1 set SlaveRaiderREF1.IsFollowingLong to 0 set SlaveRaiderREF1.IsFollowingShort to 0 SlaveRaiderREF1.SetCombatStyle FollowersCombatStyleMelee set SlaveRaiderREF1.CombatStyleRanged to 0 set SlaveRaiderREF1.CombatStyleMelee to 1 SlaveRaiderREF1.AddToFaction 1SlaveRaiderFaction 0 SlaveRaiderREF1.SetPlayerTeammate 0 SlaveRaiderREF1.RemoveFromFaction FollowerFaction SlaveRaiderREF1.evp ShowMessage FollowerMessageLeave1SlaveRaider SlaveRaiderREF1.MoveTo SlaveRaiderHomeMarker1 set SlaveRaiderWaitingLeaveDay to 0 set doFire to 0 endif endif END And the OTHER Script that won't save from the mod. scn 1SlaveRaiderSCRIPT ;Follower Variables short HasBeenHired short CombatStyleRanged short CombatStyleMelee short IsFollowingDefault short IsFollowingShort short IsFollowingLong short IsSlave short Waiting short WaitingHome short GoHome BEGIN OnCombatEND if ( GetPlayerTeammate == 1 ) resethealth restoreav perceptioncondition 100 restoreav endurancecondition 100 restoreav leftattackcondition 100 restoreav leftmobilitycondition 100 restoreav rightattackcondition 100 restoreav rightmobilitycondition 100 endif END BEGIN OnDeath if ( SlaveRaiderREF1.HasBeenHired == 1 ) set SlaveRaiderREF1.HasBeenHired to 0 ShowMessage FollowerMessageDead1SlaveRaider endif END Any ideas? Link to comment Share on other sites More sharing options...
Galcyon Posted May 16, 2014 Author Share Posted May 16, 2014 So... Is there a script error? Is there no script error? Does nobody know? Link to comment Share on other sites More sharing options...
AggressionRanger Posted May 16, 2014 Share Posted May 16, 2014 Yea.... you're going to have a few script errors there playa. I've never seen someone remote call a script on an NPC like that, but since it's in the FO:3 script, it must be a semi-valid way to do it. So then, you need to make sure all of the items mentioned in this script are in fact alive and well in the Fallout:NV world. You need to make an NPC and give it the reference name "SlaveRaiderREF1" you also need to attach 1SlaveRaiderScript to them as a person. Odds are you won't even be able to compile the "Quest" script until this is done, because it would be searching for a reference... that isn't there. Make sure somewhere in Geck there is a note/message named "FollowerMessageDead1SlaveRaider" and make sure somewhere in the ole' wasteland there, you have a marker named "SlaveRaiderHomeMarker1 " If scripts call on something that isn't established/there... they won't compile. Link to comment Share on other sites More sharing options...
MartinPurvis Posted May 16, 2014 Share Posted May 16, 2014 I don't think you can add variables to references like SlaveRaiderREF1.Waiting it's best to use a quest to do that. Link to comment Share on other sites More sharing options...
Unno Posted May 16, 2014 Share Posted May 16, 2014 I'm a bit rusty so don't take this for granted. That said, see if you can make something out of this. Moved all variables to the quest script: SCN 1SlaveRaiderQuestSCRIPT short SlaveRaiderHired short SlaveRaiderFired short doFire float SlaveRaiderWaitingLeaveDay int CombatStyleRanged int CombatStyleMelee int IsFollowingDefault int IsFollowingShort int IsFollowingLong int Waiting int WaitingHome short SlaveRaiderSaved ; <= What's this short UnlimitedAmmo ; <= and this? Are you using them? BEGIN GameMode if ( SlaveRaiderHired == 1 ) if ( Waiting == 0 ) && ( WaitingHome == 0 ) if ( Player.IsInInterior ) && ( SlaveRaiderREF1.IsInInterior ) SlaveRaiderREF1.MoveTo Player 50 50 0 endif endif if ( Waiting == 1 ) && ( SlaveRaiderREF1.GetInCell BCKhanHideout == 0 ) if ( SlaveRaiderWaitingLeaveDay <= GameDaysPassed ) if ( SlaveRaiderREF1.GetInSameCell Player == 0 ) set doFire to 1 endif endif endif if ( doFire == 1 ) set SlaveRaiderHired to 0 set SlaveRaiderFired to 1 set Waiting to 0 set IsFollowingDefault to 1 set IsFollowingLong to 0 set IsFollowingShort to 0 SlaveRaiderREF1.SetCombatStyle FollowersCombatStyleMelee set CombatStyleRanged to 0 set CombatStyleMelee to 1 SlaveRaiderREF1.AddToFaction 1SlaveRaiderFaction 0 SlaveRaiderREF1.SetPlayerTeammate 0 SlaveRaiderREF1.RemoveFromFaction FollowerFaction SlaveRaiderREF1.evp ShowMessage FollowerMessageLeave1SlaveRaider SlaveRaiderREF1.MoveTo SlaveRaiderHomeMarker1 set SlaveRaiderWaitingLeaveDay to 0 set doFire to 0 endif endif ENDRemoved 'HasBeenHired' since 'SlaveRaiderHired' seems to be doing the same thing. You can work it back in if you need it. NPC quest: scn 1SlaveRaiderSCRIPT BEGIN OnCombatEND if ( GetPlayerTeammate ) resethealth restoreav perceptioncondition 100 restoreav endurancecondition 100 restoreav leftattackcondition 100 restoreav leftmobilitycondition 100 restoreav rightattackcondition 100 restoreav rightmobilitycondition 100 endif END BEGIN OnDeath if ( 1SlaveRaiderQuest.SlaveRaiderHired == 1 ) set 1SlaveRaiderQuest.SlaveRaiderHired to 0 ShowMessage FollowerMessageDead1SlaveRaider endif ENDIn order to remotely change the variables now, point to the quest name instead of the reference, e.g.: 'set SlaveRaiderREF1.Waiting to 1' => 'set 1SlaveRaiderQuest.Waiting to 1'. The same goes for remote conditioning: if ( 1SlaveRaiderQuest.SlaveRaiderHired == 1 ) set 1SlaveRaiderQuest.SlaveRaiderHired to 0Replace '1SlaveRaiderQuest' with your quest name. Besides all that, make sure that your custom references are set as persistent. Link to comment Share on other sites More sharing options...
Galcyon Posted May 17, 2014 Author Share Posted May 17, 2014 A few updates... 1. had the refs in-game before posting, and since "reference persist" is checked by default if a reference is given... 2. Unno's modified scripts compiled without issue. A bit of a background info- those weird things tracked some conversation/AI trigger variables in the questline. "short UnlimitedAmmo," for instance, set up a conversational trigger so that Angel's unique 10mm Submachine gun could have... well, unlimited ammo, depending on player decision. Without having a script to put those things in, I couldn't properly set up the AI triggers or conversations. Which is why I hit that brick wall- already did everything else I could without the scripts. Now it's another round of copy/paste to finish the dialogue tree/AI triggers and see if it'll work. Thanks for the help, guys! I'll let you know how it turns out. Link to comment Share on other sites More sharing options...
Galcyon Posted May 17, 2014 Author Share Posted May 17, 2014 Weird Update- Ok, don't know what was going through the original modder's head, but, damn do they know how to trick the GECK into doing what they want. Problem: GECK isn't saving specific script variables on a specific ref for an AI package. Decides to throw a tantrum and lock up- you can move the mouse and exit as normally, but you can never, ever get rid of the conditions window. Hitting "ok" or "cancel" doesn't do anything. Solution: Put the variables into the second script I mentioned, set the script to "object" to put it on the NPC, and then set it to "effect" to allow the GECK to set up the script variables. While it's still loaded on the NPC. I'm not a master at this (otherwise I wouldn't have made this thread,) but does anyone else find that iffy? Link to comment Share on other sites More sharing options...
Galcyon Posted May 18, 2014 Author Share Posted May 18, 2014 Last update-Got everything set up, but there's a pretty bad issue. It's the FONV Companion Wheel- it's just incompatable with how the FO3 companion system is set up. Fixing it- and the voice acting, is more trouble than I'm willing to go through with this mod conversion. Anyway, thanks for the help everyone! Link to comment Share on other sites More sharing options...
Recommended Posts