tf2classic / tf2classic-issue-tracker

For reporting bugs in Team Fortress 2 Classic.
11 stars 0 forks source link

(Compatability & Mapping Feature Request) Add/recreate training_annotation using VIP tutorial text. #356

Open 111112oo opened 4 months ago

111112oo commented 4 months ago

training_annotation, a live TF2 entity, is not in TF2C. This entity is sometimes used to convey positional information in maps with nonstandard objectives such as single flag CTF gamemodes, and is very commonly used in mod gamemodes such as deathrun. (I run a deathrun server which means the lack of this entity can cause problems!)

env_instructor_hint is an alternative that exists in TF2C (but not live TF2), however it has a lot of drawbacks that don't make it a good replacement: -Doesn't automatically replace training_annotation, so training_annotation in existing maps just won't work (unless you annoyingly manually replace them with stripper). -Can't display 2 text messages at once, training_annotation can. [TF2 vs. TF2C] image image -Text is not visible when you look away from it after the first few seconds, not a problem with training_annotation. [TF2 vs. TF2C] image image -Will not show positionally for the first few seconds of it showing, leading to confusion if players are trying to be lead to a specific spot. [first few seconds vs. later seconds] image image -May require 2 entities to use positionally instead of just 1.

(It is a good game_text_tf replacement at least!)

I do not think this would be very hard to implement because an identical effect to training_annotation already exists in the game! The VIP tutorial! image This is almost the exact same thing as training_annotation but we can't place it in our maps! training_annotation also has less parameters than env_instructor_hint making it easier to setup.

Cheers!

chloecormier commented 1 month ago

I agree that training_annotation would be useful for compatibility reasons, but I will note:

Can't display 2 text messages at once

This is possible with env_instructor_hint if you set the hint_replace_key KV to different strings on the two hints, as the help describes:

Hints with the same Replace Key will replace each other when displayed at the same time. Use different values for each hint if you would like to have multiple hints displaying at once.

Also, the VIP tutorial is derived from CTFAnnotationsPanel like training_annotation is. In fact, if you could fire a game event from map logic, you could already do a custom annotation with this. You'd just need to fire the show_annotation event with all of the relevant parameters. This is possible with VScript in Live TF2, and should be possible in TF2C in 2.2. We have point_event_proxy but it can't pass the necessary parameters, I believe.

I will try to look into how difficult it'd be to make training_annotation an entity for compatibility reasons with maps made for live.

111112oo commented 1 month ago

I agree that training_annotation would be useful for compatibility reasons, but I will note:

Can't display 2 text messages at once

This is possible with env_instructor_hint if you set the hint_replace_key KV to different strings on the two hints, as the help describes:

Hints with the same Replace Key will replace each other when displayed at the same time. Use different values for each hint if you would like to have multiple hints displaying at once.

This is what I did, it shows both hint icons at once but will only display one textbox.

Fiddling with vscript via stripper to replace this on existing maps wouldn't be an ideal solution though so I wish you luck with the entity route!