Hard Light Productions Forums

Modding, Mission Design, and Coding => The FRED Workshop => Topic started by: soilder198 on February 21, 2020, 06:21:49 pm

Title: A Question
Post by: soilder198 on February 21, 2020, 06:21:49 pm
Hi all. Instead of making a thread for each question I have as they arise I am going to just keep bumping this one as I need to.

Current question is, in the initial status menu of two ships, one a GTF Pegasus, the other a SF Astaroth, I want to set their initial velocities to match that of their max thruster speed. In the case of the Astaroth, it has a maximum afterburner velocity of 155 mps according to the wiki, while the Pegasus tops out at 160 mps. If I set the initial velocities of these two ships to match their respective maximum afterburner velocities, FRED will default their velocities back to 100 mps without fail. Is this a limitation on the end of FRED? Or is there a way I can circumvent this?
Title: Re: A Question
Post by: General Battuta on February 21, 2020, 06:44:13 pm
FRED probably doesn’t ‘know’ about afterburner velocity. You could use an event to force them to fire burners at mission start, I think...? Been a while since I ****ed with AI movement.
Title: Re: A Question
Post by: wookieejedi on February 21, 2020, 07:54:45 pm
Just to clarify, the int ital velocity in FRED is a percent, not the actual value. For example, if a ship's speed is 80 then setting the initial velocity to 100 will mean the ship starts with a speed of 80.
Title: Re: A Question
Post by: Nightmare on February 21, 2020, 08:04:21 pm
AFAIK there's no SEXP with that you could force a ship to use its AB. You could use set-ets-values to max out normal speed by editing ETS settings to go to maximum overclock speed though.
Title: Re: A Question
Post by: mjn.mixael on February 21, 2020, 10:21:21 pm
There is no SEXP specifically, but you can do some things to make it work.

One trick I employed was to tell the AI to attack an invisible ship model. AI almost always uses thrusters to reach a target. Then I also locked the AI weapons. This had the effect of causing them to afterburn to where I wanted them to go. Once there, I removed the invisible object and unlocked weapons.

Now, IIRC there is an ai-profiles.tbl flag that will allow the AI to use afterburners to reach waypoints now. So it could be as simple as making sure that flag is active in a tbl and telling the AI to travel to a waypoint.
Title: Re: A Question
Post by: soilder198 on February 22, 2020, 11:29:54 am
Thanks for the responses guys.

Didn't realize Initial Velocity was a percent scale.

I'll play around with some of these ideas.
Title: Re: A Question
Post by: soilder198 on March 05, 2020, 09:56:15 pm
Hi everyone gonna bump the thread for a new question.

In a mission, Alpha One is in charge of Alpha wing. I have disabled certain commands that Alphas Two, Three, and Four will accept. The same commands are all disabled for these three ships. Fred tells me that every ship in a wing must accept the same commands, and Alpha One, the player, is breaking this protocol by not accepting the same commands as his teammates, though Alpha One is the player and does not accept commands to begin with.

Is this something I can ignore in this instance? It doesn't seem to make sense.

Also another question.

The Initial Orders tab can be used for both wings and individual ships. Alphas 2, 3, and 4 have individually been given an initial order of Attack Any Ship. After a certain enemy wing is destroyed, I want to use the clear-goals sexp to remove the Attack Any Ship goal from Alphas 2, 3, and 4. In the clear-goals sexp, can I clear Alpha as a whole wing of their goals even if I gave the orders to individual ships? Or would that only work if the Attack Any Ship initial order was given through the Wings editor and not the Ships editor?
Title: Re: A Question
Post by: General Battuta on March 05, 2020, 09:59:31 pm
Yeah you can probably just ignore it. Or maybe just set the permitted commands at the wing level?
Title: Re: A Question
Post by: soilder198 on March 05, 2020, 10:06:33 pm
Yeah you can probably just ignore it. Or maybe just set the permitted commands at the wing level?

Thanks Battuta... didn't expect a reply so fast. Edited my post to include another question.
Title: Re: A Question
Post by: Asteroth on March 05, 2020, 10:33:18 pm
If you want a channel where you can ask quick questions and get quick answers easier you should join our discord server (https://discord.gg/YNVP3WR).
Title: Re: A Question
Post by: karajorma on March 06, 2020, 02:01:23 am
IIRC there's no functional difference between orders given from the editors and those given by SEXP.
Title: Re: A Question
Post by: 0rph3u5 on March 06, 2020, 02:06:22 am
Hi everyone gonna bump the thread for a new question.

In a mission, Alpha One is in charge of Alpha wing. I have disabled certain commands that Alphas Two, Three, and Four will accept. The same commands are all disabled for these three ships. Fred tells me that every ship in a wing must accept the same commands, and Alpha One, the player, is breaking this protocol by not accepting the same commands as his teammates, though Alpha One is the player and does not accept commands to begin with.

Is this something I can ignore in this instance? It doesn't seem to make sense.

This is because the engine determines the permissible orders for a wing from the permissible orders of the ships in it. "+Orders Accepted:" is handeled on a ship to ship basis, it doesn't feature in the data for a wing.
So even though a player ship cannot accept orders from the player, it still has to match the "+Orders Accepted:"-value of all other ships in its wing. (mark all four ships and set the player orders in bulk)

The Initial Orders tab can be used for both wings and individual ships. Alphas 2, 3, and 4 have individually been given an initial order of Attack Any Ship. After a certain enemy wing is destroyed, I want to use the clear-goals sexp to remove the Attack Any Ship goal from Alphas 2, 3, and 4. In the clear-goals sexp, can I clear Alpha as a whole wing of their goals even if I gave the orders to individual ships? Or would that only work if the Attack Any Ship initial order was given through the Wings editor and not the Ships editor?

Don't quote me on this, but distinctly remember that there is a hierarchy to the relationship between individual ship ai-goals and wing ai-goals. I just don't remember the specifics.
Title: Re: A Question
Post by: X3N0-Life-Form on March 06, 2020, 03:16:17 am
Don't quote me on this, but distinctly remember that there is a hierarchy to the relationship between individual ship ai-goals and wing ai-goals. I just don't remember the specifics.
Don't quote me either as I am unable to test this right now, but I *think* the hierarchy might only be present with player-given orders, with all orders being treated the same way, and the priority values being like: all fighters < wing < ship.
Title: Re: A Question
Post by: karajorma on March 06, 2020, 07:55:11 pm
You are partially right. Player orders to a ship have higher priority than orders to a wing. When given via the comms menu. When given by SEXP or initial orders, they use those priorities instead.

That's why you are advised in the initial orders editor to keep priorities below 89. Priorities above that can interfere with player orders. Now that might be what you actually want (i.e wingmen have a specific target they will go after and only once it's dealt with, will they listen to the player) but you have to be careful.

EDIT: Found the code that defines those priorities.

Code: [Select]
#define PLAYER_PRIORITY_MIN 90
#define PLAYER_PRIORITY_SHIP 100
#define PLAYER_PRIORITY_WING 95

Using the comms menu, orders to "All ships" have a priority of 90. Wings 95 and individual ships are 100. What this means is that if I set Beta wing to attack a Shivan destroyer with a priority of 96 the player can order beta 1 to do something else, but if he orders beta wing to do it, they'll respond with an "Affirmative Sir!" message and then quietly ignore him and carry on with what they are doing until it's finished. Only then will the player's orders have priority.
Title: Re: A Question
Post by: General Battuta on March 06, 2020, 09:20:25 pm
It would actually be kind of cool to have a 'negative, sir!' response if they already have an overriding priority. But it would probably be confusing, and obviously there's no way to record new lines for the (excellent) retail profiles.
Title: Re: A Question
Post by: mjn.mixael on March 06, 2020, 09:22:15 pm
Pretty sure the retail profiles already included a "I can't do that" line that mostly goes unused.
Title: Re: A Question
Post by: DefCynodont119 on March 06, 2020, 09:22:52 pm
Yeah I was gonna say that they do have a "No" it's just unused.

They also have a "I don't have a target" line that almost never gets said.

https://wiki.hard-light.net/index.php/Messages.tbl#.24Allow_substitution_of_missing_messages:
Title: Re: A Question
Post by: DefCynodont119 on March 06, 2020, 09:54:05 pm
Quote from: Freespacewiki
$Name:

Required. Defines the type of the message

    Syntax: String
    Available types (types marked with * do not have code support) :

        Arrive Enemy
        Attack Target
        Beta Arrived
        Check 6
        Engage
        Gamma Arrived
        Help
        Praise
        Backup
        Ignore Target
        No
        Oops 1 * (Only Command has code support in Retail)
        Permission *
        Stray *
        Depart
        yes
        Rearm on Way
        On way
        Rearm warping in
        No Target
        Docking Start *
        Repair Done
        Repair Aborted
        Traitor
        Rearm
        Disable Target
        Disarm Target
        Player Dead
        Death
        Support Killed
        All Clear *
        All Alone
        Repair
        Delta Arrived
        Epsilon Arrived
        Instructor Hit
        Instructor Attack
        Stray Warning
        Stray Warning Final
        AWACS at 75
        AWACS at 25

FS2 Open, 3.6.12:

        Praise Self
        High Praise
        Primaries Low

I think you do get the no answers if you use Hot-keys for messaging, but no one does that so yeah.

They also have a "All clear" and judging by the lines it's supposed to be used with the victory music / or during good rearm time?
Title: Re: A Question
Post by: karajorma on March 06, 2020, 11:17:07 pm
I've added new built-in messages in the past. So it's not like we couldn't add an "I'm busy sir" style response.
Title: Re: A Question
Post by: DefCynodont119 on March 06, 2020, 11:52:32 pm
I've added new built-in messages in the past. So it's not like we couldn't add an "I'm busy sir" style response.

There already kinda is one tho, that's the weird part.

Could someone look at what the built-in "No" command is caused by? I always wondered whether it had a case trigger or not, it has recorded and tabled lines in both retail FS1 and FS2 but I never heard it so it seems like something might actually trigger it under certain conditions, but I'm not sure.

There are some other recorded/tabled lines that I never heard in game as well, "All Clear" and "No Target" come to mind.

I may make a thread listing all the unused/rare Personas messages later, it always seemed strange to me.
Title: Re: A Question
Post by: Solatar on March 07, 2020, 12:56:23 am
Could someone look at what the built-in "No" command is caused by? I always wondered whether it had a case trigger or not, it has recorded and tabled lines in both retail FS1 and FS2 but I never heard it so it seems like something might actually trigger it under certain conditions, but I'm not sure.

I'm pretty sure that in addition to the normal "c" communications menu, you can give wingmen orders with keyboard macros (shift + different keys for each command). If you try to give wingmen an order that doesn't work (attack a friendly craft, etc.), you get that "Not here, sir!" response. You don't usually hear those lines, because you can't give those kinds of orders from the normal menu (they're grayed out).
Title: Re: A Question
Post by: DefCynodont119 on March 07, 2020, 02:24:17 am
Could someone look at what the built-in "No" command is caused by? I always wondered whether it had a case trigger or not, it has recorded and tabled lines in both retail FS1 and FS2 but I never heard it so it seems like something might actually trigger it under certain conditions, but I'm not sure.

I'm pretty sure that in addition to the normal "c" communications menu, you can give wingmen orders with keyboard macros (shift + different keys for each command). If you try to give wingmen an order that doesn't work (attack a friendly craft, etc.), you get that "Not here, sir!" response. You don't usually hear those lines, because you can't give those kinds of orders from the normal menu (they're grayed out).

That's what I figured, I was asking if anyone had proof of that.  :nervous:

I'll try it hang on.

EDIT:


(https://i.imgur.com/WwKS3ab.jpg)



EDIT2: Okay, so why doesn't "All Clear" ever play?
Title: Re: A Question
Post by: Colonol Dekker on March 07, 2020, 06:59:46 am
🤔🤔🤔
Title: Re: A Question
Post by: Mongoose on March 07, 2020, 07:00:55 am
You are partially right. Player orders to a ship have higher priority than orders to a wing. When given via the comms menu. When given by SEXP or initial orders, they use those priorities instead.

That's why you are advised in the initial orders editor to keep priorities below 89. Priorities above that can interfere with player orders. Now that might be what you actually want (i.e wingmen have a specific target they will go after and only once it's dealt with, will they listen to the player) but you have to be careful.

EDIT: Found the code that defines those priorities.

Code: [Select]
#define PLAYER_PRIORITY_MIN 90
#define PLAYER_PRIORITY_SHIP 100
#define PLAYER_PRIORITY_WING 95

Using the comms menu, orders to "All ships" have a priority of 90. Wings 95 and individual ships are 100. What this means is that if I set Beta wing to attack a Shivan destroyer with a priority of 96 the player can order beta 1 to do something else, but if he orders beta wing to do it, they'll respond with an "Affirmative Sir!" message and then quietly ignore him and carry on with what they are doing until it's finished. Only then will the player's orders have priority.

This seems like legitimately bugged behavior from a player standpoint. If I give a ship/wing an order, and them issue another order, my expectation is that the ship/wing in question will do the last thing I told them to. Finding out this isn't the case after playing this game for almost 20 years is mind-boggling, and probably explains any number of bull**** things I've seen the AI do (or in this case, not do). I mean would it be reasonable to adjust this behavior so that the last-issued order takes precedence, regardless of whether it's a ship or a wing?