Official Soldat Forums

Soldat Talk => Game Improvements / Suggestions => Topic started by: L[0ne]R on February 15, 2016, 01:53:38 pm

Title: Script-friendly default taunts
Post by: L[0ne]R on February 15, 2016, 01:53:38 pm
There's lots of custom modes and scripts out there that use custom commands for special player abilities. Needless to say, they often need to be executed quickly. To do this effectively, you have to add those commands to your taunts. And because each custom mode uses its own set of commands - you have to create multiple game profiles and multiple taunt sets.

This sucks. Let's make it better.

The creators of Last Stand ( mod did a smart thing and made it so most commands can also be executed with /smoke, /tabac, /takeoff and /victory, which are part of the default taunt set (Alt+1,2,3,4). Unfortunately this means that both commands are executed so you will randomly take off/put on your headgear, smoke and yell while using your abilities. Plus, only 4 taunts aren't always enough.

Let's expand on this idea a bit.

Default number taunts (Alt+<number>) should be set to something neutral, like /action1, /action2, /action3, /action4, /action5. This should encourage script makers to use these commands for special player abilities, since they're not used by anything else, have a neutral name that can be adapted to anything, and most importantly - in the default taunt set.

Existing number taunts will have to be moved or removed, which I personally am fine with since many of the default ones are useless and not even that fun. (When was the last time any of you used "Heavy Machine Gun ahead!"?). It doesn't even have to be the entire number set. Numbers 1-6 should be enough as this is reasonably easy for player to quickly press (as opposed to Alt+0 for example), and it should encourage script makers to keep the number of player commands smaller and not go full World of Warcraft mode.

Sorry for poor wording, I'm sleepy.
Title: Re: Script-friendly default taunts
Post by: Falcon` on February 15, 2016, 01:57:09 pm
Simpler than coding key bindings at least. +1.
Title: Re: Script-friendly default taunts
Post by: TheOne on February 15, 2016, 02:08:02 pm
Title: Re: Script-friendly default taunts
Post by: ionwood on February 15, 2016, 02:12:52 pm
support x2
Title: Re: Script-friendly default taunts
Post by: Monsteri on February 15, 2016, 02:15:56 pm

also screw you I use "Heavy Machine Gun ahead!" daily
Title: Re: Script-friendly default taunts
Post by: Seth Gecko on February 15, 2016, 02:42:21 pm
Yup, sounds useful! +1
Title: Re: Script-friendly default taunts
Post by: Savage on February 15, 2016, 03:18:01 pm
Thanks L[0ne]R! I was going to write that idea but I had Dodgeball tournament :P Also question to FalconPL, are You able to make it without "alt key"?(All numbers 1-0, on ZRPG as I good remember I had like 15 taunts...)
Title: Re: Script-friendly default taunts
Post by: Falcon` on February 15, 2016, 03:21:22 pm
Title: Re: Script-friendly default taunts
Post by: L[0ne]R on March 23, 2016, 08:06:34 pm
I'm pretty sure that we will be able to ship "bind key to server command" function with 1.8 release, of course limited to certain keys.
To be honest, I was also starting to lean towards a similar solution, but it has its own problems.

The problem with the change I suggested is that you're forced to dedicate several keys for /action# commands. Those keys are wasted when playing on non-scripted servers. It also forces script makers to tailor their scripts to the default taunt set with fixed number of commands. You can also only have one command per key, whereas a server-based solution could potentially allow for nested taunts.

On the flipside, if commands are bound by the server - that means the client has less control over key bindings. They might not be comfortable for the player to use, or player's keyboard might not support them well (like compact keyboards which don't have the numpad). I still like this solution better, but ideally there should be some way for the player to customize key bindings.
Title: Re: Script-friendly default taunts
Post by: L[0ne]R on March 23, 2016, 09:15:37 pm
But then how will conflicts between client and server bindings be handled? If server binding gets ignored - that can make a script potentially unusable for the player unless he changes his bindings (which can potentially conflict with a different server later). Neither player nor server know in advance which of their bindings may conflict, so perhaps there should be some sort of safenet that automatically assigns a conflicted key to the nearest alternative.
Title: Re: Script-friendly default taunts
Post by: L[0ne]R on March 24, 2016, 05:55:13 pm
Whether this is permanent or not doesn't solve the problem of potential conflicts. Say, player has grenades on F key but server wants to bind "/mine" to it. Because client binding takes priority, server binding is disabled. So now if player wants to use /mine - he has to either change his controls (let's hope this won't require disconnecting in the future) or type /mine manually every time. So the problem is still there.

There needs to be
1. An automatic solution that resolves a conflict if possible, while keeping both server and client bindings functional. (by changing server binding to an alternative key).
2. A quick and easy way to bind the conflicting command manually, in case player does not like automatic solution. (by providing a GUI for server binding mapping).
3. A limited number of keys server can bind which are present on all keyboards, to reduce the chances of server bindings becoming unusable. (26 letter keys + 10 number keys).
Title: Re: Script-friendly default taunts
Post by: Akinaro on March 25, 2016, 05:18:04 am
Everyone wanted numpad tounts.... and I still cant find anyone who use those.
Most of time people actually have no idea that it was possible or they have no idea how set them on numpad(with line in tounts.txt?)

Just put those /action1 /action2 etc to numpad and its all done, you gonna have 10 buttons ready to use.

But still key/tount system should be remade(game where you use tounts all the time that doesnt have build in tount editor is just... pathetic after all those years). So IF you making new key system, just remember, that people are not idiots, and few additional keys in option is not big deal to use(Like Falcon though in other topic)
Title: Re: Script-friendly default taunts
Post by: Akinaro on March 25, 2016, 06:12:43 am
Where the F### hell you see offtopic here???

Topic is about ""Script-friendly default taunts""
All I wrote was simple modification of Loner idea, where he wanted to put those /action1 /action2 etc in alt+1,2,3 And I just wrote that it could be in numpad keys.

So please explain me where the hell you see offtopic?

Second part of my post: Fricking comment on YOUR POST, so AGAIN.... where you see offtopic here?
Title: Re: Script-friendly default taunts
Post by: Akinaro on March 25, 2016, 07:01:31 am
Sadly you looking for problem that doesnt exits there.

Part you choose as a "offtopic" was explanation behind my idea of this topic. Something for what some people cry all the time when you write idea.

Because if no one actually use numpads tounts, and people very often put custom tounts on 1,2,3 etc and all other keys, and lots of time they change them, why dont use numpads keys that are useless at this moment, and because players doesnt use that often tounts made for specific server(climb or zombie) there is no problem to put those actions there? and not as a something that player can change but as a default keys that cant be changed, and used only by server scripts.

Now other part.
Looking at any idea or suggestion WAY back to 2007 there is always answer from devs: its can be done right now, we cant etc etc. And tell me with your hand on hearth that you can make your idea in the next few version of soldat? Probably not.

And now tell me if it would be easier for now to stick numpads to those actions and use them on servers? It would not change anything in terms of your idea and can be implemented without that much work(from any other game perspective, because like always its gonna be blocking text: "but its soldat its need few years to make")

Of course its not perfect solution, but solution that can be used right now by script on servers and at the same time you can make better solution without too much hurry, and after you make it, numpad can be still used and be compatible with scripts.

And dont ask me about making another topic, because actually YOU writing about different idea that is not about main topic, even if its related to it.
You started to write about new key system that is associated with tounts but main topic is about putting action keys to tounts ....and guess what? Im actually writing about it, so explain me why I should create another topic ABOUT THE SAME TOPIC?
Title: Re: Script-friendly default taunts
Post by: machina on March 25, 2016, 08:39:17 am
Back to topic - not what topic is about...

Maybe make one extra button only. So, you push ALT+X to use client taunts (and those would never be overwritten in anyway) and [some not yet taken key like CTRL]+X to use server taunts. And those ones would be downloaded while connecting to the server (it's just few lines of text in the end).

Yea, server admins would have far more options than necessary but I am really against the idea to create some new key bindings in greater amount than one. Also, forcing people to stick to predefined taunts on keys: 1, 2, 3, 4... doesn't feel cool imo.

On the other hand, servers with some scripted gamemodes requiring special commands are somewhat important for Soldat but not sure if so much important there should be any changes in taunts nor key bindings done to support those.
Title: Re: Script-friendly default taunts
Post by: urraka on March 25, 2016, 12:37:55 pm
I don't think the server should deal with specific keys. It shouldn't have to care at all about the specific device used on the client (keyboard, mouse.. whatever). It's more sane to go with generic commands like suggested on the first post (/action1, /action2, etc). It's also less things to worry about on the scripting engine *and* on each individual script. Tracking binding configs for each player on the script side sounds like it would be annoying (for both, whoever makes the script and the player - now you have to configure bindings on each server).

These actions commands don't need to be actual commands. It could be implemented as some kind of generic input system. I picture it as some kind of bitfield sent along with normal player input data (assuming there is some network packet for that). This way there would be no flooding problem.

With the new key bindings system helloer mentioned the client could have a few actions bound by default (let's say up to /action4), but should be able to bind an arbitrary amount. For the case where the client doesn't have the required action bindings it could go with the auto-bind solution, with some pattern maybe (like, use whatever is empty near WASD first). Auto-bind should be a temporary thing, nothing that gets stored on the client side. The server should be able to somehow request these bindings from each player so it can show proper command help (like "/mine (ctrl+m)").
Title: Re: Script-friendly default taunts
Post by: L[0ne]R on March 25, 2016, 03:49:03 pm
What if you have something more complicated though, like a weapon shop ala Counter-Strike? It would be confusing if weapons are bound to something other than number keys - for example instead of using 1234567890 keys they would be auto-assigned to 3456789QTY. IMO scripts should still have the ability to bind to specific keys.

How about this hybrid idea?:

1. When player joins a server - the only input a server can read are regular /commands like we have now (either typed manually, or by using /action# taunts). Any custom server bindings will be disabled.
--- This is useful for a basic set of essential actions that player has full control over. He can set them up however he wants while preventing conflicts.
--- 10 keys can be dedicated for /action taunts, which should be enough for all essential actions in most scripts, even complicated ones.

2. Server should be given the ability to trigger "menu state" for the player. When "menu state" is ON - all player input would be disabled (including movement and shooting), and server can provide its own input instead.
--- This is useful for anything that doesn't need to be used mid-combat. It gives server owners freedom to bind anything to anything without conflicts, as long as "menu state" is ON.

IMO this solution is a step forward since it gives both the player and server their own "territory" in which they are in control.
One problem remains is that on non-scripted servers those /action taunts are wasted. But perhaps it's a non-issue considering how many keys are still available.