Jump to content
Ervvin

WIP halted by OBSE Compiler

Recommended Posts

Posted (edited)

Greetings,
Anyone know if the OBSE authors still take bug reports, let alone maintain their prog? If they do, then where do I go? Couldn't find any forum thread of that nature, alas. (On that note: where is the old gang that used to live in the BethSoft mod forum? Is this site the new hangout? Yes, I quit some 8 years ago, recently started to play and mod Oblivion again, but 'everybody' seems to have moved on. Except good old WalkerInShadows, thank god :) and the few familiar sounding nicks in this forum)

Anyway, could someone please tell me I'm doing something wrong? I'm not a very confident programmer:

Begin OnPackageDone zz1Chor1CaptainGoForIt
.....
.....
.....
SetPackageAlwaysRun zz1Chor1CaptainGoForIt 0

Both lines are in the same script, where the 1st line works OK, but the compiler chokes on the second, saying "Unknown variable 'zz1Chor1CaptainGoForIt' for parameter int." IMO there is no int in that line, just a ref and a bool. 
Thoughts? Thank you. :)

Edit: ugh, that code box, sorry. Can't figure out what went wrong.

Edited by Ervvin

Share this post


Link to post
Share on other sites

Welcome back and welcome to TAL! I think OBSE has pretty much been abandoned. shadeMe was trying to keep it going, but he’s not around much. You might be able to reach him on Nexus. He’s a member here, but hasn’t visited in a while. He’s active on GitHub, but OBSE isn’t one of his repositories, so I don’t know what’s happening with that. The rest of the guys moved on the Skyrim, so I’d check the Skyrim section on the Beth forums to see if they’re still there. I’ve been away from modding for a couple of years myself and I’m just getting back.

I’ll fix your codebox when I get back to my computer. The code is there. You can see it if you select that section. The theme is temporary as we’re in the process of evaluating new forum software.

We have another member, saebel, who’s trying to get something working in OBSE. I’ve just finished installing Visual Studio and I’ve got the OBSE source code loaded up. We need to get our server fixed up at home and then Jimi (my husband) and I will take a look.

Share this post


Link to post
Share on other sites

The new Bethsoft forum for Oblivion modding is dead. Besides, Skyrim may be a good game but I don't like it enough to want to mod for it. One playthrough was more than enough.

I'll think about workarounds for my script problem. Thanks for your reply :)

Share this post


Link to post
Share on other sites

@Ervvin, sorry, I didn't get a chance to fix this up last night. When you paste text into a post on the forums, the default is to use rich text, which broke the code box.

When I said to check the Skyrim section, I just meant to see if they had a SKSE thread. If so, then you could message them there.

Here's the CS wiki page for onPackageDone. That looks fine. setPackageAlwaysRun takes a reference for the package, and according to the syntax for AddScriptPackage, it would be the editor ID. Instead of changing the flags on the package, why don't you create a new one and use AddScriptPackage to switch to it? It doesn't solve the problem, but it might be a work-around.

Share this post


Link to post
Share on other sites

@Vorians - OBSE documentation: "Commands which modify AI packages operate on the base package  and may have no effect or unpredictable effects on actor references currently executing that package." I guess that would mean the ref must be an Editor ID.

BUT I didn't consider the 2nd part of that sentence before now... why would I want to use SetPackageAlwaysRun when it's so unreliable? My NPCs run those packages constantly, so the workaround suggested by AndalayBay may be better anyway. Thanks, both of you.

Share this post


Link to post
Share on other sites
1 hour ago, Ervvin said:

@Vorians - OBSE documentation: "Commands which modify AI packages operate on the base package  and may have no effect or unpredictable effects on actor references currently executing that package." I guess that would mean the ref must be an Editor ID.

BUT I didn't consider the 2nd part of that sentence before now... why would I want to use SetPackageAlwaysRun when it's so unreliable? My NPCs run those packages constantly, so the workaround suggested by AndalayBay may be better anyway. Thanks, both of you.

It also avoids any potential issues with the fact that you’re trying to modify the same package in the OnPackageDone block.

Share this post


Link to post
Share on other sites

Also, it could be a documentation error.  Happens from time to time.  If you are using CSE (and you should be) let it give you context help about the structure of arguments passed to that function.  It could be the first argument is not a ref after all.  Something similar happened to me recently with some function I meant to document but have now forgot.

Edited by Malonn

Share this post


Link to post
Share on other sites

@Malonn, thank you. I tried some more tests.

There are many of these Package Flag Commands in OBSE: SetPackageOffersServices, SetPackageMustReachLocation, SetPackageMustComplete, etc, etc. According to the documentation, syntax is identical for all of them. I tested most of them, and always got the same error message, cited in the 1st post.
However, a quick test of SetPackageTarget (syntax per OBSE doc:  SetPackageTarget package:ref targetReference:ref) with

        SetPackageTarget zz1Chor1CaptainGoForIt ChorrolWellMarker

is silently accepted by the compiler. The package is recognized! So if the Documentation is correct, I assume these flag commands are buggy. 
If there is a doc error, then CSE may shed light on it - but I'm not using that yet... I tried it once, loved its looks and interface, but argh, it wants Admin rights for the CK! Why? Never mind, I'll get used to it I suppose... later, not now, because I'm in the middle of this very complicated mod That Will Shatter The World, and I'm afraid to get distracted :P

Share this post


Link to post
Share on other sites

Oh, ok.  The OBSE docs were correct then.  Yeah, it's the wiki that was wrong for me too.  I believe most 'recent' OBSE documentation on the wiki is robot copied; there could have been a bug or something.

Share this post


Link to post
Share on other sites
2 hours ago, Ervvin said:

@Malonn, thank you. I tried some more tests.

There are many of these Package Flag Commands in OBSE: SetPackageOffersServices, SetPackageMustReachLocation, SetPackageMustComplete, etc, etc. According to the documentation, syntax is identical for all of them. I tested most of them, and always got the same error message, cited in the 1st post.
However, a quick test of SetPackageTarget (syntax per OBSE doc:  SetPackageTarget package:ref targetReference:ref) with

        SetPackageTarget zz1Chor1CaptainGoForIt ChorrolWellMarker

is silently accepted by the compiler. The package is recognized! So if the Documentation is correct, I assume these flag commands are buggy. 
If there is a doc error, then CSE may shed light on it - but I'm not using that yet... I tried it once, loved its looks and interface, but argh, it wants Admin rights for the CK! Why? Never mind, I'll get used to it I suppose... later, not now, because I'm in the middle of this very complicated mod That Will Shatter The World, and I'm afraid to get distracted :P

The CSE requires that you don’t have Oblivion installed in Program Files. I didn’t even notice it requires admin privileges, but I can’t imagine using a computer without them, so that wouldn’t have been an issue for me. The CSE fixes a lot of bugs in the original CS, with a much tougher script evaluation. There are original game scripts that will compile in the CS, but the CSE will report errors. They are legitimate errors and the scripts shouldn’t compile. The CSE probably needs admin privileges due to its console and logs. It needs to write to the installation directory. It also makes a lot of changes to the CS windows, so that might be another reason for the extra privileges.

I strongly recommend you switch to the CSE. shadeMe also released a new version recently. We actually require members to use the CSE for DBC and Black Marsh as it makes creating patches so much easier. If you do check out the CSE, I also recommend checking out the documentation. It has a lot of features. I helped shadeMe with the documentation and testing, so I know a lot about the CSE. :)

It also has a scripting language called CODA. I have some CODA scripts posted here. There are a couple of threads on CODA in that forum.

In terms of the OBSE docs, the wiki threads were created by automation, as Malonn said. I don’t think the original wiki entry is updated if the OBSE team updates the documentation later. The documentation is included in the download and I bookmark the copy on my computer so I always have a reference to the exact version I’m currently using.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×