Page 1 of 2
[sorta OT] Looking for help :)
Posted: Tue Jul 22, 2003 6:07 am
by Wizardry Dragon
Okay, I've (re-)started my little Ultima 7 mod project that's using Exult/ExultStudio to modify the Ultima 7/Serpent Isle game to reintegrate deleted plot elements, add new ones, etc.
I'm looking for people interested in lending a hand in the development of the project. If anyone's interested please contact me by replying to this post or by email at
pdodge@crpgn.org
(I hope the Exult team doesn't mind me posting this)
~ Wizardry Dragon
"Not sea shanty again!"
Re: [sorta OT] Looking for help :)
Posted: Tue Jul 22, 2003 6:10 am
by Skutarth
I would be glad to help, if this will go anywhere. I run into people who want to start stuff all the time, then just mozy off.
Re: [sorta OT] Looking for help :)
Posted: Tue Jul 22, 2003 6:13 am
by Wizardry Dragon
It's been my pet project since RC 2, I've worked on it steadily since then (and boy, have my skills grown, god my old usecode looks like gibberish
)
I don't plan on abandoning it
What can you contribute? I have what I'm going to add on for story (though Im open to suggestions), I need someone who can do usecode, map editing, and/or shape-making (that is, making new gfx for the game/addon as needed)
~ Wizardry Dragon
Re: [sorta OT] Looking for help :)
Posted: Tue Jul 22, 2003 6:19 am
by Skutarth
I really wanted to learn to make usecode and shape-making, but I can't find any good sources. Yes, I did check the documentation, and
http://www.sophen.de/exult/ doesn't help much...
Re: [sorta OT] Looking for help :)
Posted: Tue Jul 22, 2003 6:29 am
by Wizardry Dragon
I am working on making Usecode documentation myself. If you're interested in learning it, I could definetly use an extra hand
~ Wizardry Dragon
Re: [sorta OT] Looking for help :)
Posted: Tue Jul 22, 2003 6:30 am
by Skutarth
That would be great! I will surely lend a hand if I had proper sources! I need the knowledge for future projects, anyway!
Re: [sorta OT] Looking for help :)
Posted: Tue Jul 22, 2003 6:34 am
by Wizardry Dragon
When it is up Ill post it at the old project page (I actually managed to remember my password
)
http://www.sourceforge.net/projects/u7giridion
I have it in a semi-state of completeion right now, might just post it anyway
~ Wizardry Dragon
Re: [sorta OT] Looking for help :)
Posted: Tue Jul 22, 2003 6:40 am
by Skutarth
I'm on AIM right now, so you can contact me if you'd like.
I use the same screen-name: Skutarth
Re: [sorta OT] Looking for help :)
Posted: Tue Jul 22, 2003 7:06 am
by Wizardry Dragon
I don't have aim, but you can find me on the CRPGN chat sometimes (Im on now):
http://crpgn.org/chat/phpMyChat.php3
Re: [sorta OT] Looking for help :)
Posted: Tue Jul 22, 2003 7:35 am
by artaxerxes
Wizardry:
I desperatly need to master usecode (since I'm also involved in another project using ES).
I have tools for map editing. Provide the chunks and I'll make the map.
Sounds good to you?
Artaxerxes
Re: [sorta OT] Looking for help :)
Posted: Tue Jul 22, 2003 7:48 am
by Wizardry Dragon
Sounds good.
I have the beginnings of a map going
The one addition that is my own to the world is a city Im working on. I can send you the mapfile from my patch dir if you want me too.
If someone has the NPC editor working then I desperately need them
~ Wizardry Dragon
Re: [sorta OT] Looking for help :)
Posted: Tue Jul 22, 2003 9:02 am
by Skutarth
Re: [sorta OT] Looking for help :)
Posted: Tue Jul 22, 2003 9:05 am
by Wizardry Dragon
Just type something into the line and you say it
Make sure you select "Blackrock" under "Rooms created by users"
I know Artaxerxes has a sourceforge.net login, but do you? I need to know the unix names for your logins to add you to the SF.net project
I'm setting up a webpage at
http://crpgn.org/u7blackrock/
~ Wizardry Dragon
Re: [sorta OT] Looking for help :)
Posted: Tue Jul 22, 2003 9:17 am
by artaxerxes
let's get on irc (irc.freenode.net) and see each other in #exult
We'll talk more there.
Artaxerxes
Re: [sorta OT] Looking for help :)
Posted: Tue Jul 22, 2003 9:30 am
by Wizardry Dragon
I'm on the
http://crpgn.org/chat/phpMyChat.php3 with Skutarth, if you want to join us
(I dont have an IRC client)
~ Wizardry Dragon
Re: [sorta OT] Looking for help :)
Posted: Tue Jul 22, 2003 10:02 am
by wjp
> (I dont have an IRC client)
That's easily fixed, you know
Re: [sorta OT] Looking for help :)
Posted: Tue Jul 22, 2003 10:27 am
by Wizardry Dragon
Tehehe, I have 18.8 mb left on a 50 gb drive
~ Wizardry Dragon
Re: [sorta OT] Looking for help :)
Posted: Tue Jul 22, 2003 10:33 am
by wjp
That should be plenty
Re: [sorta OT] Looking for help :)
Posted: Tue Jul 22, 2003 10:35 am
by drcode
This sounds great. Let us know of any bugs you find (I'm sure you will:-)). One thought, although I'm not sure how to do this, would be some sort of 'patch' ability in usecode. One possibility would be to allow you to write a new function for an NPC which can call the old function.
Re: [sorta OT] Looking for help :)
Posted: Wed Jul 23, 2003 9:23 am
by Wizardry Dragon
Dynamic Usecode would be great. I hate having to use tons of flags to know whether a NPC has been talked to
Re: [sorta OT] Looking for help :)
Posted: Wed Jul 23, 2003 9:58 am
by Skutarth
The Met flag? You're just inexperienced with the NPC editor, noticing you can't use it for some reason...
Re: [sorta OT] Looking for help :)
Posted: Wed Jul 23, 2003 10:01 am
by Wizardry Dragon
If I could use the NPC editor that would not help much, I'm doing this in the code and as far as I know you cant access it through UCC (at least, my experimentation hasn't turned anything up - is it somewheres in the UI_get_item_property() 's list?)
Re: [sorta OT] Looking for help :)
Posted: Wed Jul 23, 2003 4:07 pm
by drcode
There are functions for getting, setting, and clearing flags. Look in bgintrinsics.h or siintrinsics.h.
Re: [sorta OT] Looking for help :)
Posted: Thu Jul 24, 2003 10:19 am
by Wizardry Dragon
Okay, got that, but when I get a NPC to join my party in Black Gate, they follow me, I can manipulate their inventory, but they don't come up on the status bar. Any idea why?
~ Wizardry Dragon
Re: [sorta OT] Looking for help :)
Posted: Thu Jul 24, 2003 3:12 pm
by Dominus
The faces are hardcoded into Exult. Only faces of official
partymembers can be put there. Especially as those faces are off the
SI-paperdolls (or our substitutes).
Re: [sorta OT] Looking for help :)
Posted: Thu Jul 24, 2003 6:41 pm
by Skutarth
Darn it! The face for Sentri is drawn incorrectly, though!
Re: [sorta OT] Looking for help :)
Posted: Fri Jul 25, 2003 8:39 am
by Wizardry Dragon
Could you program Exult so that it read the faces and their corresponding shape #s in faces.vga from a XML file?
Re: [sorta OT] Looking for help :)
Posted: Fri Jul 25, 2003 9:05 am
by Wizardry Dragon
Maybe something like this in Exult.cfg
face # in faces.vga
face # in faces.vga
face # in faces.vga
etc.
and for custom -added people can have it by NPC #
eg.
face # in faces.vga
Re: [sorta OT] Looking for help :)
Posted: Fri Jul 25, 2003 9:43 am
by Wizardry Dragon
Hmm, got this from Dominus, they're from the paperdolls. So change it from faces.vga to paperdoll.vga or whatever
(sorry for the triple-post
)
~ Wizardry Dragon
Re: [sorta OT] Looking for help :)
Posted: Fri Jul 25, 2003 10:33 am
by Dominus
*cough*
perhaps I was not very clear.
The faces you see in the status bar are obviously not the ones found in faces.vga.
Some are from Sperpent Isle's paperdoll.vga (the companions) but there are only the ones that can join you in SI.
The ones that can join you in BG are not found in any of the original game files but in one supplied by Exult. There we added only the ones that can possibly be a member of the party in BG.
The whole SI-paperdoll style in BG is only some kind of hack by us!
So what you ask for is not possible.
As for Sentri and the rest of the party members besides the three stooges we had to draw them ourselves (or better users from here made them actually) and so they obviously look not that good in parts.
Re: [sorta OT] Looking for help :)
Posted: Fri Jul 25, 2003 10:43 am
by Wizardry Dragon
Eh, I get the feeling I wasn't clear either, but since Exult is opensource I can try to do it myself ...
What I want is a file somewheres for the status bar that says this NPC # has this shape # from the exult_data.flx (or whatever its called) This way I can add my own NPcs. Then we have a system that check against a file. For example, when the NPC joins have it check the NPC number against the file to see what shape from the Exult data flex to use.
Probably not the most efficient way, it's not impossible, Ive done it before, but I don't know Exult enough to know how that would be implemented in the engine
BTW, where is the data hardcoded?
(Katrina doesnt look that bad BTW, but you got that from the original paperdoll
~ Wizardry Dragon
Re: [sorta OT] Looking for help :)
Posted: Fri Jul 25, 2003 10:55 am
by Dominus
the file is actually exult_bg.flx (you can put into your patch dir and rename it to exult_bg.vga and look at it).
It is hardcoded in /gumps/Paperdoll_gump_info.cc in our code.
Okay, now that we are sure that we understand each other correctly (you really should get IRC btw) we can talk about it.
I'm not sure how much sense it would make to do this on source code level. It probably should be able to get this information (Npc#->shape# in custom.vga) from a special file that can be edited wihout need for recompiling Exult.
Something for Jeff to think about. You should make a feature request in our tracker system (not the bug tracker but the feature tracker).
Re: [sorta OT] Looking for help :)
Posted: Fri Jul 25, 2003 11:03 am
by Wizardry Dragon
Thats what I was talking about, have some file it looks to instead of hard coding it.
My programming teacher wouldnt even mark a program if it had things hard coded
~ Wizardry Dragon
Re: [sorta OT] Looking for help :)
Posted: Fri Jul 25, 2003 11:32 am
by wjp
Ah, but how far do you go with un-hard-coding things?
Numeric/string constants? (If so, all constants? Only some?)
Key shortcuts? (If so, how much flexibility do you allow?)
GUI layout?
Actual algorithms used? (Combat damage algorithm, monster AI, ...)
Re: [sorta OT] Looking for help :)
Posted: Fri Jul 25, 2003 11:55 am
by drcode
The sort of thing you're asking for has been suggested before (I think by Tristan). You wouldn't want to have the information in exult.cfg, since each user has his/her own version of this. But there could be a 'game.cfg' for each game that Exult supports (BG, SI, and user-created games) that have most of the constants that are currently hard-coded in Exult.
Re: [sorta OT] Looking for help :)
Posted: Fri Jul 25, 2003 4:10 pm
by Wizardry Dragon
That would help a ton for us mod crews if you implemented it
~ Wizardry Dragon
Re: [sorta OT] Looking for help :)
Posted: Fri Jul 25, 2003 4:26 pm
by Skutarth
I agree. I can't shape modify for our team if it's not changed!
Re: [sorta OT] Looking for help :)
Posted: Sun Jul 27, 2003 3:58 am
by Wizardry Dragon
I put in a feature request for that
Okay a question for the Usecode-savvy out there: how do I determine the party's gold, and how do I take away and add to this amount? Also, how do I give the party items? (I need this for commerence)
Re: [sorta OT] Looking for help :)
Posted: Mon Jul 28, 2003 7:48 am
by drcode
This is vague, as it's from memory: There are usecode functions for counting, adding, and deleting party objects. And gold's item # is, I think, 644, but you can check by looking for 'gold' in bgitems or in EStudio's shape browser.
Re: [sorta OT] Looking for help :)
Posted: Mon Jul 28, 2003 8:15 am
by Wizardry Dragon
Maybe a c_gold item constant would be good!
What I cant figure how to do the parameters for the count add and delete functions.
~ Wizardry Dragon
Re: [sorta OT] Looking for help :)
Posted: Wed Jul 30, 2003 7:48 am
by Wizardry Dragon
Can someone help me with the parameters of the count, add, and delete?
~ Wizardry Dragon
Re: [sorta OT] Looking for help :)
Posted: Wed Jul 30, 2003 9:19 am
by wjp
count_objects(npc#, shape, quality, frame)
npc# can also be -357 for entire party, -356 for avatar
quality can be -359 for any quality
frame can be -359 for any frame
add_party_items(count, shape, quality, frame, true/false)
not a clue what the true/false at the end does
remove_party_items(count, shape, quality, frame, true/false)
frame/quality can again be -359 to mean any frame/quality
not a clue what the true/false at the end does
Re: [sorta OT] Looking for help :)
Posted: Thu Jul 31, 2003 8:09 am
by Wizardry Dragon
So if I want to check for x amount of gold it'd be
count_objects(-357, (gold shape #), -359, -359)
Maybe you should have constants to make it easier, as well as easier to understand:
count_objects(c_party, c_gold, c_any_quality, c_any_frame);
Is the t/f a required parameter?
~ Wizardry Dragon
Re: [sorta OT] Looking for help :)
Posted: Thu Jul 31, 2003 9:41 am
by wjp
> So if I want to check for x amount of gold it'd be
looks good
> Is the t/f a required parameter?
yes
Re: [sorta OT] Looking for help :)
Posted: Fri Aug 01, 2003 1:18 pm
by Wizardry Dragon
Hmm. Does it make any difference either way?
How do I make the conversation pause and do out of conversation stuff? Like the Frigidazzi sequence or the wall of lights? Maybe you can't in BG? Been trying to figure that out to no avail...
~ Wizardry Dragon
Re: [sorta OT] Looking for help :)
Posted: Fri Aug 01, 2003 2:41 pm
by drcode
You probably don't want to hear this, but you'd have to study the disassembled Usecode from SI. My guess is that you end the conversation, then schedule the sequence using the first couple of intrinsics. You'd want to set the 'dont_move' flag on the Avatar so that the user can't do anything else while the animation takes place.
I wonder if they had a special tool to set this up in SI, since it seems like it would be hard to program by hand.
Re: [sorta OT] Looking for help :)
Posted: Sat Aug 02, 2003 11:35 am
by Wizardry Dragon
Maybe you could program a UI_remove_npc_face that doesn't break out of the script? Cause everything up to that function works but nothing after.
~ Wizardry Dragon
Re: [sorta OT] Looking for help :)
Posted: Sat Aug 02, 2003 12:20 pm
by wjp
UI_remove_npc_face doesn't break out of the script.
Re: [sorta OT] Looking for help :)
Posted: Sat Aug 02, 2003 2:37 pm
by Wizardry Dragon
Well, whatever it does, it seems like breaking, because as soon as it hits that point in my script, nothing else works.
I have
case "bye":
{
say("Good day!");
UI_remove_npc_face(item);
UI_item_say(item, "Walk in Courage!");
}
and I doubt it's a problem with UI_item_say as it also doesn't work with UI_lightning(), UI_set_weather(2) or 1 or 3, UI_obj_sprite_effect() )which works BTW, but you have to loop through each frame) Nothing works after UI_remove_npc_face(item);, no matter what it is I put there. They work fine with the face up there but the text is overlaid on whatever happens, not exactly what I want
~ Wizardry Dragon
Re: [sorta OT] Looking for help :)
Posted: Sun Aug 03, 2003 10:18 pm
by drcode
There's a bit you have to know about Exult's internals. When the game is running normally, there's a 'time queue' that schedules things to happen. This includes everything, from each NPC taking a step to sprites and the text shown by UI_item_say. Within a usecode function, the queue is stopped, and that's why you don't see anyone walking around during animations. The way U7 scripts things is it uses two of the intrinsics, 'execute_usecode_array' and 'delayed_execute_usecode_array'. Our usecode language (we don't know what the original looked like) has some support for this using the 'script' construct, like this example in the 'Island Patch':
if (UI_get_npc_object(AMY) in UI_get_party_list())
script AMY
{
wait 1; step 6;
wait 1; step 6;
wait 1; frame 11;
wait 1; frame 12;
wait 2; frame 11;
wait 1; frame 0;
wait 1; call 0x568;
}
This doesn't have a delay (which would look like "script AMY after 12 ticks'), and it causes the Amy character to take a couple steps, bend down, and then another usecode function (0x568) is called. This could definitely use some work (and documentation when it's done), since you ought to be able to use names for the frames (like 'kneel', 'stand', 'sit') as well as the directions.