User talk:Tibixe

From the Oblivion ConstructionSet Wiki
Jump to navigation Jump to search

Dragoon Wraith TALK 22:27, 15 August 2006 (EDT): About your request for SetRefEssential for OBSE: Couldn't you use CreateFullActorCopy and SetEssential to create an essential version of an actor which is referenced repeatedly?

Tibixe 04:49, 16 August 2006 (EDT)

My problem was to make an Actor Copy essential. But setessential acts like a return function when it is used with a reference variable. (That caused my mod to create a new actor every frame...) I also added an entry to SetEssential, but marked it as minor edit (I thought a line is a minor edited, now I know it isn't).

Dragoon Wraith TALK 10:17, 16 August 2006 (EDT): Twas a good edit, don't worry. Anyway, it being a return statement isn't a problem, you know. I'd do something like this:
if ( GetDisabled == 0 )
  set copy to CreateFullActorCopy
  SetEssential copy 1
  Disable  ;disable the original
endif
If you'd like, you could post your code and I'll see what's up with it.
For now, though, I'm going to take SetRefEssential off the Wish List.
Tibixe 10:29, 16 August 2006 (EDT)
Not that it also act like a return statement, it acts exactly like it and does nothing else than stops the script for the current frame.
Reference.SetEssential really works? I must try it... I am going to make a scroll with your code, test it on an NPC, and see what happens... I bet it will duplicate forever (if it compiles)
Tibixe 10:46, 16 August 2006 (EDT): I displays an error message:
Line 8,(the setessential is here)
Missing parameter ActorBase. 
Just as I expected. I think we need that SetRefEssential :) I've got an image of the script and the error message, if you think I made a mistake...
Dragoon Wraith TALK 12:19, 16 August 2006 (EDT): Ohhh... I misread that, and I didn't know the proper syntax for SetEssential - I updated my script to read properly - it'll now compile, but still won't work. Sorry. You're absolutely right, I'll add it back to the Wish List.

Hi Tibixe,

In working on a mod I came across a need to use your TSFC mod for OBSE. As far as I can tell I have it working properly. However, I have run into a particular problem and was wondering if you have a solution for it.

    I want to use the strings in TSFC in combination with the MessageBox script function.  Is this possible and if so do you have an example?
    I strongly suspect the answer is no since the script language only seems to be able to handle static strings as part of the script text.  So, my second question is can a MessageBox like function be added to TSFC so that TSFC strings can be sent to a MessageBox.  I'm picturing it working the same as the normal MessageBox function except  you would pass in the variables that point to TSFC strings instead.  
    When browsing the source code I noticed the c++ code for the StrPrint function uses "Console_Print(StringGet(arg))".  Is there a similar function available in the game API's for the message box?  If so, I think what I am looking for would be fairly straight forward to add.
    Let me know your thoughts on this.  I am able to work in c++ and would willing to give it a try myself if you are unable to work on it.  I think though the source you have made public is missing some files that I would need to compile (for example I could not locate GameAPI.h).  So, for me to help out this way I think you would have to send me the complete set of project files.

Thanks Arius

Hello,
You are right, you can't do this with TSFC at the moment, so I'll have to make something like StrPrint. The problem is that I don't know enough about reverse engineering so I can't locate functions in the Oblivion binary. I'll ask Ianpatt and Behippo about it.
Those files are from the original obse source code. It's not in the repository because OBSE's license is undecided. Copy the contents of the src directory from zip file, so the directory structure matches, and it should work.
Feel free to send any code for TSFC. You'll need developer access for the repository, but I can give you that.
I'm not really familiar with the wiki, but I think this discussion should go to User_talk:Tibixe
Tibixe 05:27, 11 November 2007 (EST)


Thanks for the quick response Tibixe.

I found the other source files in the OBSE source. Thanks for pointing that out. It seems like the real problem will be finding a messagebox function in the Oblivion binary. I've never done something like that but maybe with a bit of research I can figure it out.
In my spare time I'll give this a try. If I get anything that works I'll let you know. Maybe Ianpatt and Behippo will be able give you some good help. If you get it working before me just let me know.
Thanks again
Arius

Ianpatt already has some results on finding MessageBox. His post on the Bethsoft Forums:

Added for 1.1 and 1.2.416, still need to find the function pointers for 1.2.
Note that you will need to do some experimentation with the parameters to get something other
than the basic behavior - I haven't messed around with them enough to provide full documentation.

Tibixe 13:14, 12 November 2007 (EST)

Awesome. Thanks Tibixe (and Ianpatt). I had started poking around in the executable using IDA but I imagine it would have been a while before I found it. This helps me out a lot. I'm guessing this is in the new 1.3 beta version. I'll download it and start playing around with it.

Er...maybe not? I'm having trouble finding it in the beta source code. Has Ian added it to the current beta? or am I just missing something?

Thanks Arius

It is not in the currently available beta. I am not sure if he plans to include it in the next v0013 beta. Scruggs 21:13, 12 November 2007 (EST)


Alright. So, you can probably guess my next question. Is there any chance of getting the function pointers that Ian has found? I could then add them into my local copy of OBSE and get started. Of course, I understand that I couldn't publish my mod until Ian officially adds it to OBSE, but atleast I could get started.

Thanks Arius

Awesome, I see what I am looking for in Beta2. Big thanks to Ian for that. I'll start seeing what I can do with TSFC (unless Tibixe beats me to it). Arius

Hey Tibixe, I'm having trouble getting some of your source. StringInfo.cpp/h are empty when I dl them. Plus, your code includes StringPersistence.cpp/h but I don't see this at all. Thanks Arius

Sorry for those, I don't have any experience managing real projects... StringInfo is empty on my disk, too. So that's just an unnecessary file. StringPersistence.h and cpp are missing because of old mistake of not adding new files to the repository. Those are not essential, you can compile without them. (You just have to comment three lines, IIRC) I can't fix it right now, but I'll fix it tomorrow. Again, I'm sorry. Tibixe 15:05, 15 November 2007 (EST)

Ok, thanks for the info. I had already commmented out what I needed to compile and it seems to work. I just thought I'd check in case I there was something important there. I'm currently playing around with things to figure out the parameters for the messagebox. Arius

Just in case you are looking at this too Tibixe...I think I got it all working except for the callback function which handles returning the button clicked. Hopefully I'll get that last bit this weekend. Just didn't want you to spend time repeating what I've done. I'll send you the code once I'm done. Arius


Well, after reading more assembly than I ever expected I now have several 
pages of notes filled will hex numbers.  The good news I now have message box 
and TSFC working for version (1.2.0416).  I created a StrMessageBox script
function in TSFC that takes 11 TSFC strings.  The 1st is the Message Box 
Prompt and the other 10 are the selectable options (to use less than the
full 10 you just pass in 0 for the remaining unused strings).  
I have updates to GameAPI.h/cpp for Ian to add into OBSE for the Messagebox
functions (plus notes for documentation).  I also have updates to TSFC for
the STRMessageBox script function.  Should I send it to you by email?

Arius

P.S.  I've also made a couple of bug fixes with the command info for GetStrName and StrGetEffectItemScriptName

Congratulations and thank you, Arius. Those functions will be very useful for everyone. The best way to collaborate would be SVN. I'll mark you as a developer on SourceForge so you can upload your code (you need a SF.net username for that). Of course if you're not familiar with these or don't want to register, you can just send it in e-mail to tibixe[-at-]gmail[-dott-]com.

Writing nine zeros for a simple "OK" button is not so good... have you tried marking parameters as optional in the ParamInfo struct?

Thank you again, Tibixe 07:04, 18 November 2007 (EST)

I see what you are saying...I didn't realize the ParamInfo structure had a variable for optional. I will play around with this to see if I can improve it. This may also be why I thought StrGetName and StrGetEffectItemScriptName had bugs. I will double check into that as well since I was having trouble using those functions in my script. I've never used SourceForge but I certainly don't mind giving it a shot if you want to set me up. If there is anything I have to do for that can you send me (or point me to) some instructions. I have sent my email to your gmail address.

Arius

P.S. I made the other 9 strings optional (leave blank or pass in 0...either way). Thanks for the tip. I also sorted out the params for StrGetName and StrGetNthEffectItemScriptName and there are still some updates for those.