The Ultimate Site of Worms Armageddon

Worms: Armageddon => General discussion => Wormkit Modules => Topic started by: terion on July 17, 2020, 09:35 PM

Title: wkKick38
Post by: terion on July 17, 2020, 09:35 PM
a kick module for wa 3.8
usage: /kick nickname  OR /kick#
Title: Re: wkKick38
Post by: LilScrappy94 on July 18, 2020, 05:59 AM
Thanks.
Title: Re: wkKick38
Post by: LilScrappy94 on July 20, 2020, 05:09 PM
there is a problem, when you kick someone, another player suffer from network drop also
so finally 2 players kicked instead of one
Title: Re: wkKick38
Post by: terion on July 20, 2020, 06:37 PM
Thanks for feedback. I've changed the way connections are closed to match the way wkKawooshKick does it.
Title: Re: wkKick38
Post by: LilScrappy94 on July 21, 2020, 05:06 AM
thanks again
Title: Re: wkKick38
Post by: LEGi0N on July 25, 2020, 06:04 PM
This gives me a "failed to initialize signature scanner" error message when starting WA. I'm using the CD version of 3.8 on Windows 10.
Title: Re: wkKick38
Post by: Kradie on July 25, 2020, 06:23 PM
I have not tried this yet, so pardon my lack of awareness when I ask: Does it show that you kicked someone from a game? If so, can it be shown as disconnect only?
Title: Re: wkKick38
Post by: StepS on July 25, 2020, 06:51 PM
If so, can it be shown as disconnect only?
No and you may get banned from WormNET for proliferating solutions like that.
Title: Re: wkKick38
Post by: Kradie on July 25, 2020, 06:57 PM
If so, can it be shown as disconnect only?
No and you may get banned from WormNET for proliferating solutions like that.
I did not know this. My apologize.
Title: Re: wkKick38
Post by: lolicon-guy on July 25, 2020, 08:48 PM
No and you may get banned from WormNET for proliferating solutions like that.

why?
Title: Re: wkKick38
Post by: StepS on July 25, 2020, 09:03 PM
Abusing the client-server model to kick players in-game is discouraged, with the sole exception of it being made clear to the player getting kicked and all other players in the game. If there is any complaint in connection to kicking tools from anyone on WormNET, the perpetrator has a high chance of getting banned without second thought.

In practice nobody has complained because normally such kicks are justified. However, that's where one might say, "use at your own risk".
Title: Re: wkKick38
Post by: BaZa on July 25, 2020, 09:43 PM
Weeh, gj
Title: Re: wkKick38
Post by: lolicon-guy on July 25, 2020, 09:44 PM
Abusing the client-server model to kick players in-game is discouraged, with the sole exception of it being made clear to the player getting kicked and all other players in the game. If there is any complaint in connection to kicking tools from anyone on WormNET, the perpetrator has a high chance of getting banned without second thought.

Right, and will you finally ban the trolls then? That's the point of in-game kicking. It means we can finally get rid of them forever, as long as we host ourselves. Wish HB had it too. Because they will yell at the sky just to try to flip the bullshit
Title: Re: wkKick38
Post by: StepS on July 25, 2020, 09:46 PM
Right, and will you finally ban the trolls then? That's the point of in-game kicking. Wish HB had it too.
Trolls can be banned if properly reported and verified. You can always send reports in PM to SheriffBot.
Title: Re: wkKick38
Post by: lolicon-guy on July 25, 2020, 09:47 PM
Trolls can be banned if properly reported and verified. You can always send reports in PM to SheriffBot.

I don't believe you, Rafal should had been banned years ago, I insist. Ruining a game at the very middle is f@#!ing worse than trolling KRD or CyberShadow, and I know first-hand that the latter warrants at least half a year of ban. Do act.
Title: Re: wkKick38
Post by: StepS on July 25, 2020, 09:50 PM
I don't believe you, Rafal should had been banned years ago, I insist.
There were complaints about Rafal and he was banned. I have not seen any complaints about him since his last ban.

My whole point was: the game's maintainers insist on having disputes resolved properly rather than abusing in-game mechanics, even for allegedly good purposes. I did not invent these guidelines. There will never be an in-game kicking functionality in the game or in HostingBuddy. Feel free to contact CyberShadow/Deadcode/KRD and voice your disagreement if you believe that it is valid for someone to be given such power.
(If you ask me, I personally would have preferred a majority-vote mechanism)
Title: Re: wkKick38
Post by: Kradie on July 25, 2020, 11:20 PM
Vote to kick would be ideal. And maybe vote to restart, and vote to skip :o
Title: Re: wkKick38
Post by: raffie on July 26, 2020, 04:18 PM
usage: /kick nickname

I kinda preferred the way KawooshKick worked where you typed /kick 1 for the first player in the list. Some players may have annoyingly long usernames to have to type over or even have characters not readily available on some keyboards.

Title: Re: wkKick38
Post by: Sensei on July 26, 2020, 11:30 PM
Does it show that you kicked someone from a game? If so, can it be shown as disconnect only?

What a clown :)

usage: /kick nickname

I kinda preferred the way KawooshKick worked where you typed /kick 1 for the first player in the list. Some players may have annoyingly long usernames to have to type over or even have characters not readily available on some keyboards.

I thought it's acting the same as kawooshkick. Yeah, that was better.
Title: Re: wkKick38
Post by: Kradie on July 27, 2020, 01:15 AM
Does it show that you kicked someone from a game? If so, can it be shown as disconnect only?

What a clown :)

usage: /kick nickname

I kinda preferred the way KawooshKick worked where you typed /kick 1 for the first player in the list. Some players may have annoyingly long usernames to have to type over or even have characters not readily available on some keyboards.

I thought it's acting the same as kawooshkick. Yeah, that was better.
You still keep pursuing me everywhere I go? I'm not interested  :(
Title: Re: wkKick38
Post by: philie on August 06, 2020, 11:18 PM
usage: /kick nickname

I kinda preferred the way KawooshKick worked where you typed /kick 1 for the first player in the list. Some players may have annoyingly long usernames to have to type over or even have characters not readily available on some keyboards.

hit the f key for "pm player_with_some_stupid_long_name". remove the /msg. type /kick.
Title: Re: wkKick38
Post by: GrO on August 08, 2020, 09:40 AM
I didn't know it's kinda illegal from T17's point of view, but it's still very useful when someone disobeys the game rules trying to break the game for others...

*edit*

...fails to load with CD-v3.8 and win7 x64:

(https://www.tus-wa.com/forums/worms-armageddon/wkkick38-32802/?action=dlattach;attach=192307;image;type=png)
Title: Re: wkKick38
Post by: DENnis on August 08, 2020, 11:25 AM

*edit*

...fails to load with CD-v3.8 and win7 x64:

(https://www.tus-wa.com/forums/worms-armageddon/wkkick38-32802/?action=dlattach;attach=192307;image;type=png)

Same (fails to load with CD-v3.8 and win7 x64) here, too  :( :(.

I like to show people how to play, but sadly there are trolls who just hate everybody and destroying some games, so it is important to have a kickmodule.
Title: Re: wkKick38
Post by: GrO on August 11, 2020, 09:41 AM
...terion, you're gonna try to fix it, you're able to or you just wanna leave it as it is?
Title: Re: wkKick38
Post by: terion on August 11, 2020, 10:33 AM
...terion, you're gonna try to fix it, you're able to or you just wanna leave it as it is?
if it ain't broke, don't fix it.

your pc is missing Visual C++ Redistributable Runtimes (2015-2019) - here is a link to all-in-one installer: https://www.techpowerup.com/download/visual-c-redistributable-runtime-package-all-in-one/
btw, WA's warning message should be made more clear about the cause of error 0x7E to avoid confusion. ideally, it should list all missing DLL dependencies and suggest to try installing msvc runtimes, madshi's madCodeHook. If you ever stumble over similar issue, try running Dependency Walker https://www.dependencywalker.com/ to identify missing libraries.

regarding other issues:
- you can kick players with stupid-long nicknames by pressing F1-F6 keys and replacing /msg with /kick. adding /kickX is a trivial task and the module is open source, so feel free to implement it
- a voting mechanism is a really good idea in general (for example to trigger a sudden death mode, force some player AFK, add weapon ammunition for all teams, change scheme options, etc.), but voting algorithm itself might be quite complex to implement to cover all edge cases (players quitting, rate limiting, messaging protocol). if anyone is interested, I can expose API to read json chat messages, so voting communication can be implemented
- the module kicks players instantly - it should send a message that player is being kicked, spawn a new thread that waits for 5 seconds and only then kick the player
- in my opinion this functionality should come standard with base game to avoid shitty kick module implementations like this. WA players are grown up men and let them decide whether it is just to kick players from their games
Title: Re: wkKick38
Post by: GrO on August 11, 2020, 01:54 PM
...terion, you're gonna try to fix it, you're able to or you just wanna leave it as it is?
if it ain't broke, don't fix it.
...from the feedback it looks like it runs fine with the steam release and the problems appear with the cd release only, so naturally I assumed there's something there that can be fixed...

...and I just got used to the fantastic KawooshKick module, which is well optimized, doesn't require to install any 3d party software like the visual c++ runtimes and it's even easier to kick some abuser with a simple /kick# command.

your pc is missing Visual C++ Redistributable Runtimes (2015-2019) - here is a link to all-in-one installer: https://www.techpowerup.com/download/visual-c-redistributable-runtime-package-all-in-one/
btw, WA's warning message should be made more clear about the cause of error 0x7E to avoid confusion. ideally, it should list all missing DLL dependencies and suggest to try installing msvc runtimes, madshi's madCodeHook. If you ever stumble over similar issue, try running Dependency Walker https://www.dependencywalker.com/ to identify missing libraries.
Thanks for the tip, I'll give the feedback, if I try it - according to madCHook.dll, I still have it in the game's directory. Regards <3
Title: Re: wkKick38
Post by: LEGi0N on August 11, 2020, 02:35 PM
This gives me a "failed to initialize signature scanner" error message when starting WA. I'm using the CD version of 3.8 on Windows 10.

(https://i.imgur.com/bnbQUdm.png)

Any ideas on this error?
Title: Re: wkKick38
Post by: GrO on August 11, 2020, 04:03 PM
This gives me a "failed to initialize signature scanner" error message when starting WA. I'm using the CD version of 3.8 on Windows 10.
...did you try any of these potential solutions?

your pc is missing Visual C++ Redistributable Runtimes (2015-2019) - here is a link to all-in-one installer: https://www.techpowerup.com/download/visual-c-redistributable-runtime-package-all-in-one/
btw, WA's warning message should be made more clear about the cause of error 0x7E to avoid confusion. ideally, it should list all missing DLL dependencies and suggest to try installing msvc runtimes, madshi's madCodeHook. If you ever stumble over similar issue, try running Dependency Walker https://www.dependencywalker.com/ to identify missing libraries.
Title: Re: wkKick38
Post by: LEGi0N on August 11, 2020, 04:32 PM
This gives me a "failed to initialize signature scanner" error message when starting WA. I'm using the CD version of 3.8 on Windows 10.
...did you try any of these potential solutions?

your pc is missing Visual C++ Redistributable Runtimes (2015-2019) - here is a link to all-in-one installer: https://www.techpowerup.com/download/visual-c-redistributable-runtime-package-all-in-one/
btw, WA's warning message should be made more clear about the cause of error 0x7E to avoid confusion. ideally, it should list all missing DLL dependencies and suggest to try installing msvc runtimes, madshi's madCodeHook. If you ever stumble over similar issue, try running Dependency Walker https://www.dependencywalker.com/ to identify missing libraries.

I already have all of those installed. It's a different error. A very quick look at the source code suggests "SigScanner.GetProcess(procName)" is returning false.
Title: Re: wkKick38
Post by: GrO on August 11, 2020, 05:12 PM
...terion, you're gonna try to fix it, you're able to or you just wanna leave it as it is?
if it ain't broke, don't fix it.

your pc is missing Visual C++ Redistributable Runtimes (2015-2019) - here is a link to all-in-one installer:
...just checked to be sure and I've all those already installed (just check the attachment), so your guess was wrong this time, but don't let that throw you, we're all the human beings, thus we're fallible sometimes :-)

About the voting functionality - I wouldn't implement that - if someone feels it's really needed I'd suggest to make it a separate module, but we shall keep that in mind that some people are able to abuse such plugins, when 3 abusers know each other joining some game, they can use voting to kick some other guy in example - any attempt to avoid that by implementing some restrictions will make the voting module more heavy and complicated.

The useful thing could be a module which will force the /afk command on the players staying afk for 3 turns (in a row) in example - what do you think?
Title: Re: wkKick38
Post by: terion on August 11, 2020, 05:22 PM
This gives me a "failed to initialize signature scanner" error message when starting WA. I'm using the CD version of 3.8 on Windows 10.

(https://i.imgur.com/bnbQUdm.png)

Any ideas on this error?

I've reworked the module to fix signature scanner, add /kick# command and introduce 5s delay between warning message and kick.
Title: Re: wkKick38
Post by: LEGi0N on August 11, 2020, 05:35 PM
I've reworked the module to fix signature scanner, add /kick# command and introduce 5s delay between warning message and kick.

Beautiful! It works great :) Thanks for your work on this. It's much appreciated.
Title: Re: wkKick38
Post by: terion on August 11, 2020, 06:13 PM
Thanks for feedback. I hope no additional bugs were introduced with this version.

@GrO, you only have 64-bit version of 2015-2019 redistributable installed. Install 32-bit (x86) version, as I suggested in my previous post.
Title: Re: wkKick38
Post by: GrO on August 11, 2020, 09:45 PM
Thanks for feedback. I hope no additional bugs were introduced with this version.

@GrO, you only have 64-bit version of 2015-2019 redistributable installed. Install 32-bit (x86) version, as I suggested in my previous post.
...oh, sorry then, I'll return with some feedback, after I test it
Title: Re: wkKick38
Post by: Muzer on August 12, 2020, 06:59 PM
This gives me a "failed to initialize signature scanner" error message when starting WA. I'm using the CD version of 3.8 on Windows 10.

(https://i.imgur.com/bnbQUdm.png)

Any ideas on this error?

I've reworked the module to fix signature scanner, add /kick# command and introduce 5s delay between warning message and kick.

Wonderful, thanks for adding the delay, it will help newbies at least to know why they've been disconnected, rather than them just assuming the game's networking is flaky :)
Title: Re: wkKick38
Post by: GrO on August 12, 2020, 07:30 PM
Wonderful, thanks for adding the delay, it will help newbies at least to know why they've been disconnected, rather than them just assuming the game's networking is flaky :)
...one of the things I've learnt about people is they'll understand the disconnect easly, while they know they've abused the game, and they see there's no re-host made after the supposed crash...

...why even bother about abusers, when they don't care, aside all of that it's still just a game, the game is for Fun and everyone who tries to break it should be separated as soon as possible - don't you think that way?
Title: Re: wkKick38
Post by: GrO on August 12, 2020, 07:44 PM
...There're situations when you need to kick someone immediately, not after 5 seconds, because sometimes you give another chance for the 'cower', and you're observing his next move - in example the 'shopper', and you see he's trying to cow again in his new turn, then the only senseful thing is to reject him until he'll be able to cow again - I know that, because I had such situations many, many times and 5 second delay would just let the abuser to cow again......
Title: Re: wkKick38
Post by: DENnis on August 13, 2020, 02:21 AM
Thank you!

With "vc_redist.x86.exe" https://support.microsoft.com/de-de/help/2977003/the-latest-supported-visual-c-downloads (https://support.microsoft.com/de-de/help/2977003/the-latest-supported-visual-c-downloads) it is working. Note: Pressing Fx for players name and replace msg with kick + remove blank after players name.
Title: Re: wkKick38
Post by: GrO on August 13, 2020, 07:49 AM
Note: Pressing Fx for players name and replace msg with kick + remove blank after players name.
I've reworked the module to fix signature scanner, add /kick# command and introduce 5s delay between warning message and kick.
Title: Re: wkKick38
Post by: Bl4st3r on August 21, 2020, 09:43 AM
Now it'll be easier to kick toxic people ^^
Title: Re: wkKick38
Post by: Bl4st3r on August 21, 2020, 09:45 AM
a kick module for wa 3.8
usage: /kick nickname

LoadLibrary failed: Error 0000007E, what to do now? i have all the sources and dll file in my directory
Title: Re: wkKick38
Post by: GrO on August 21, 2020, 01:05 PM
LoadLibrary failed: Error 0000007E, what to do now? i have all the sources and dll file in my directory
your pc is missing Visual C++ Redistributable Runtimes (2015-2019) - here is a link to all-in-one installer: https://www.techpowerup.com/download/visual-c-redistributable-runtime-package-all-in-one/
btw, WA's warning message should be made more clear about the cause of error 0x7E to avoid confusion. ideally, it should list all missing DLL dependencies and suggest to try installing msvc runtimes, madshi's madCodeHook. If you ever stumble over similar issue, try running Dependency Walker https://www.dependencywalker.com/ to identify missing libraries.
Title: Re: wkKick38
Post by: CyberShadow on August 22, 2020, 07:15 AM
btw, WA's warning message should be made more clear about the cause of error 0x7E to avoid confusion.
The error message shows:
1. The module that failed to load
2. The exact function call that failed
3. The numeric error code reported by your operating system
4. The localized error message for said error code, as provided by the operating system
5. A most likely explanation of the error (also localized to your language), which is true for this particular case
6. Advice to the user, which is again actually relevant here

How could it possibly be even clearer? Or do you really expect the game to implement a Windows PE parser to scan the dependencies of every module it loads? And all that, just because you 1) chose to use the CRT, 2) chose to link to the CRT dynamically, 3) decided to not include the runtime with your module, and 4) failed to communicate to your users what the installation procedure and dependencies are?

I think such an attitude gives a bad name to the entire WormKit authors community, and it would be good to see less of that.

BTW, I don't understand why you use CreateToolhelp32Snapshot / ReadProcessMemory etc. You know that WormKit modules run within the same process as the game itself, right? You can access the memory directly. And, if you really need a handle for some reason (soft fails on invalid addresses?), you can use GetCurrentProcess instead of tlhelp32.
Title: Re: wkKick38
Post by: terion on August 22, 2020, 07:37 AM
The error message shows:
1. The module that failed to load
2. The exact function call that failed
3. The numeric error code reported by your operating system
4. The localized error message for said error code, as provided by the operating system
5. A most likely explanation of the error (also localized to your language), which is true for this particular case
6. Advice to the user, which is again actually relevant here
Yes, this message is very verbose, but it would be nice to cover a special case for LoadLibraryA error 0x7E that suggests that some DLL is missing and maybe try installing runtimes. As seen in this thread, people are still confused about this error message.

And all that, just because you 1) chose to use the CRT, 2) chose to link to the CRT dynamically, 3) decided to not include the runtime with your module, and 4) failed to communicate to your users what the installation procedure and dependencies are?
I didn't give much thought to it - I just assumed that everyone has msvc runtimes installed.

BTW, I don't understand why you use CreateToolhelp32Snapshot / ReadProcessMemory etc. You know that WormKit modules run within the same process as the game itself, right? You can access the memory directly. And, if you really need a handle for some reason (soft fails on invalid addresses?), you can use GetCurrentProcess instead of tlhelp32.
This signature scanner is written by Zer0Mem0ry and available at https://github.com/Zer0Mem0ry/SignatureScanner that just happened to be the first result on google when I needed one. I agree that this scanner is suboptimal for this use case (and also leaked memory). I've patched it a little bit to work good enough to make the required hooks.

I think such an attitude gives a bad name to the entire WormKit authors community, and it would be good to see less of that.
I'm sorry for giving a bad name to the entire WormKit authors community by releasing open source modules for WA 3.8.
Title: Re: wkKick38
Post by: CyberShadow on August 22, 2020, 08:17 AM
Yes, this message is very verbose, but it would be nice to cover a special case for LoadLibraryA error 0x7E that suggests that some DLL is missing
Though it does not mention "DLL" explicitly, it already does, twice ("module could not be found" and "files required by the module are present").

The same error message could be caused by a reason different than that a .dll file is not found. For instance, I believe that if you link to WA.exe (in order to e.g. use SetHostingProxyAddressAndPort), but the user's game executable is named something else, it would cause the same message.

and maybe try installing runtimes.
Depending on how specific such a message would be, it would need to either make an assumption of 1) the module's programming language, and 2) which component is exactly missing; otherwise, it would still be too vague to be useful.

As seen in this thread, people are still confused about this error message.
Yes. So, please try to not release software which causes confusing error messages.

I didn't give much thought to it - I just assumed that everyone has msvc runtimes installed.
OK, an honest mistake. So, surely the next step would be to address this by improving the documentation, or changing the installation archive / process to avoid this problem, instead of blaming the game and expecting the users to figure it out on their own?

This signature scanner is written by Zer0Mem0ry and available at https://github.com/Zer0Mem0ry/SignatureScanner that just happened to be the first result on google when I needed one. I agree that this scanner is suboptimal for this use case (and also leaked memory). I've patched it a little bit to work good enough to make the required hooks.
You may observe a non-negligible performance gain by avoiding the WinAPI overhead.

I'm sorry for giving a bad name to the entire WormKit authors community by releasing open source modules for WA 3.8.
That's not where the problem lies. Shoddy workmanship and then refusing to accept responsibility for the problem is.
Title: Re: wkKick38
Post by: terion on August 22, 2020, 09:32 AM
I am truly sorry for causing  trouble to you and the entire worms community.

Shoddy workmanship and then refusing to accept responsibility for the problem is.
I agree that my works are on the lower end of code quality spectrum and my wording could've been better. Though I think that through discussion in this thread issues with the module were corrected and the most recent release of the module seems to work properly.
In my previous posts I have identified numerous problems with the module and wormkit ecosystem in general and in the following post I've released a corrected version that fixed problems on my end. While still a shoddy workmanship, I wouldn't call it refusing responsibility.
My works are and will remain open source, so if anyone wants to improve them, anyone is free to do so and I would love to see an active open source worms community in near future.

Yes. So, please try to not release software which causes confusing error messages.
Clearly, I'm no expert on windows api but I think that LoadLibraryA triggers this error before my module runs a single code instruction, so there is not much that I can do from technical standpoint. I should've stated in OP that this module requires MSVC runtimes, but some users would ignore it regardless (just like GrO did a few posts back when I instructed him to install runtimes).

Though from technical standpoint your works are excellent and take into consideration every possibility (I didn't even think of the case with loading exports from WA.exe), I think that they need to be adjusted for real world cases, such as this thread and make some assumptions to make it more clear to end users.

You may observe a non-negligible performance gain by avoiding the WinAPI overhead.
I am well aware of that and I've already changed that code before your posts when feedback about issues reached me.

- in my opinion this functionality should come standard with base game to avoid shitty kick module implementations like this.
And I still support this opinion. WormKit modules are inherently low quality hacks and need to reinvent the wheel to provide basic functionality, which can be properly implemented within matter of minutes in the base game. If there was a proper API to deal with the game's memory or proper open source examples, things could've been a bit better.
I know that your WormKit modules are available on github, but they work on hooking Windows API level or the most important parts of them are closed source, thus entire module's code is useless for other developers.
Title: Re: wkKick38
Post by: CyberShadow on August 22, 2020, 10:00 AM
I am truly sorry for causing  trouble to you and the entire worms community.
This is unnecessary.

Though I think that through discussion in this thread issues with the module were corrected and the most recent release of the module seems to work properly.
I don't understand what you mean by this. The attachment to the (latest?) post at https://www.tus-wa.com/forums/worms-armageddon/wkkick38-32802/msg276478/#msg276478 still seems to pull in MSVCP140.dll?

My works are and will remain open source, so if anyone wants to improve them, anyone is free to do so and I would love to see an active open source worms community in near future.
I suggest placing the source code on a software forge website, such as GitHub. This will avoid issues such as someone submitting a patch against an outdated version of the source code.

Clearly, I'm no expert on windows api but I think that LoadLibraryA triggers this error before my module runs a single code instruction, so there is not much that I can do from technical standpoint.
I don't understand what makes you say that. I already offered a few suggestions on how to avoid this: 1) Avoid using libc features 2) Link to the libc statically 3) Include the libc DLL with your application 4) Make it so that it's not possible to install the module without also installing the dependencies, e.g. by bundling it in an installer; or, as the next best thing, make it so that it's unlikely that users end up with this situation, e.g. by placing the download link for dependencies before the download link for the module itself.

I should've stated in OP that this module requires MSVC runtimes, but some users would ignore it regardless (just like GrO did a few posts back when I instructed him to install runtimes).
This is twice fallacious: 1) You are dismissing a suggestion based on a hypothetical scenario which just assumes that users are going to be incompetent (in which case, it would be reasonable to state that it's the user's fault for failing to follow instructions); 2) the parallel you are drawing is not a good one, as the problem persisted for GrO because the instructions you added were incomplete (you never mentioned which bitness version of the runtimes were necessary).

I am well aware of that and I've already changed that code before your posts when feedback about issues reached me.
Great :)

- in my opinion this functionality should come standard with base game to avoid shitty kick module implementations like this.
I agree that there is a problem in need of solving here, but not necessarily that this is the best way of solving it. I would be more excited to see a module which forces a player's teams to surrender without disconnecting them, so that they have an opportunity to discuss what went wrong and how they can avoid disrupting games in the future. For malevolent players who continue to disrupt games intentionally, preventing them from entering the game in the first place would be a much better solution. Cases when players behave in a way that's not acceptable regardless of circumstances (e.g. hate speech etc.) should be reported to moderators so that the users are removed from WormNET.

If there was a proper API to deal with the game's memory or proper open source examples, things could've been a bit better.
Unfortunately we are torn by a conflict of interest between helping the community to build useful things, and our obligation to Team17 to not divulge too many game internals, as well as not accidentally making it too easy to build harmful software such as cheats.
Title: Re: wkKick38
Post by: CyberShadow on August 22, 2020, 10:15 AM
Try adding this line to CMakeLists.txt:

Code: [Select]
set_property(TARGET wkKick38 PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded")
Title: Re: wkKick38
Post by: terion on August 22, 2020, 10:28 AM
I don't understand what you mean by this. The attachment to the (latest?) post at https://www.tus-wa.com/forums/worms-armageddon/wkkick38-32802/msg276478/#msg276478 still seems to pull in MSVCP140.dll?
There were bigger issues with the module than dynamic linking - connections were incorrectly terminated and signature scanner failed to access process memory in some cases. People also requested /kick# command so I added one. Players who previously experienced issues now report that the module works correctly.
From my perspective, dynamic link of libc is a non-issue and I personally prefer it, but I've recompiled the dll and updated attachments in OP to address your concerns.
Title: Re: wkKick38
Post by: CyberShadow on August 22, 2020, 10:29 AM
Thanks!

I thoroughly disagree that it was a non-issue due to e.g. https://www.tus-wa.com/forums/worms-armageddon/wkkick38-32802/msg276629/#msg276629 .
Title: Re: wkKick38
Post by: Bl4st3r on August 23, 2020, 05:42 AM
LoadLibrary failed: Error 0000007E, what to do now? i have all the sources and dll file in my directory
your pc is missing Visual C++ Redistributable Runtimes (2015-2019) - here is a link to all-in-one installer: https://www.techpowerup.com/download/visual-c-redistributable-runtime-package-all-in-one/
btw, WA's warning message should be made more clear about the cause of error 0x7E to avoid confusion. ideally, it should list all missing DLL dependencies and suggest to try installing msvc runtimes, madshi's madCodeHook. If you ever stumble over similar issue, try running Dependency Walker https://www.dependencywalker.com/ to identify missing libraries.

Thanks for the help!
Title: Re: wkKick38
Post by: GrO on August 23, 2020, 03:08 PM
I should've stated in OP that this module requires MSVC runtimes, but some users would ignore it regardless (just like GrO did a few posts back when I instructed him to install runtimes).
...why should I ignore the solution I just wanted? It's not with the logic. It was just misunderstanding with x86 and x64 versions (you know that) and I gave you all the feedback I could, regarding I didn't even install these x64 'runtimes' yet (had other things to do), but I saw another user also with win7 x64 and the CD release of WA having the same issue, which has been solved with these 'runtimes' you've mentioned, so I assumed it'll work for me either and I'm sure it'll be.

I'll post here after I test it and thanks for your work - I really appreciate it ;D
Title: wKSurrender !·D - Re: wkKick38
Post by: DENnis on August 23, 2020, 11:56 PM
- in my opinion this functionality should come standard with base game to avoid shitty kick module implementations like this.
I agree that there is a problem in need of solving here, but not necessarily that this is the best way of solving it. I would be more excited to see a module which forces a player's teams to surrender without disconnecting them, so that they have an opportunity to discuss what went wrong and how they can avoid disrupting games in the future. For malevolent players who continue to disrupt games intentionally, preventing them from entering the game in the first place would be a much better solution. Cases when players behave in a way that's not acceptable regardless of circumstances (e.g. hate speech etc.) should be reported to moderators so that the users are removed from WormNET.

Instead of disconnecting them just let them surrender would be a perfect solution I think. Although there are some trolls or just bad people, I still like to help newbies & it is nice to see there are still new people who just want to play Worms Armageddon and have fun together :-[

Please implement "wKSurrender"  :-*
Title: Re: wkKick38
Post by: cgar on September 05, 2020, 07:08 AM
Thanks a bunch terion! Really appreciate it. Unlike some.
I especially appreciate it being open source <3
Title: Re: wkKick38
Post by: TheKomodo on September 05, 2020, 01:11 PM
Correct me if i'm wrong but are few people here suggesting to replace kicking, with surrendering?

Wouldn't it be better to have the option to kick or force surrender?

I was streaming all day yesterday playing with M3ntal while chatting on Discord VOIP, at some point a player called "KUNT" joined the game, within minutes this person said a racist word beginning with n, i'm sure you can guess which word.

Coming to think of this, I wonder if it would be possible to add a selective word filter, so you, yourself can type in words you want to be filtered out in the chat, similar to how Twitch does it.

I myself swear a lot, and don't mind people swearing as long as it's not malicious, homophobic, transphobic, racist etc.

I kicked them immediately, not only do I not want to associate with that type of language, it's against Twitch TOS.

I'm really grateful there is a kick tool, otherwise i'd have to quit the game myself.

The idea to force surrender as an option would be great, like CyberShadow said it would give the person a chance to learn why they were being removed and possibly learn from it.
Title: Re: wkKick38
Post by: CyberShadow on September 05, 2020, 01:24 PM
it's against Twitch TOS.
A few points here:
1. The game already has a feature to cover this particular aspect. You can ignore someone by typing /ignore nickname in the chat, or pressing Ctrl + F1-F6.
2. The game includes a chat filter which is on by default. I'm guessing you turned it off, so this was a consequence of that choice.
3. Please report users who engage in destructive behavior as in your example to WormNET moderators. We should do our best to make sure that users whose "contributions" to WormNET are negative as in your example are not enabled to continue doing so.
Title: Re: wkKick38
Post by: TheKomodo on September 05, 2020, 09:46 PM
Indeed, I am aware of those features and already have the language filter turned on(I double checked just to make sure), yet this player was still able to use that racist word.

I still wonder about the possibility of having a selective word filter, something you can customize, update and maintain personally, is that something that might be possible in future?

Right now I do not know the extent of the vocabulary the language filter uses, which words trigger the filter, do you know if there is a list somewhere, or if at all it is possible to edit/update?

It is a very rare occurrence however I will keep that in mind and report to moderators if it happens again, thanks :)
Title: Re: wkKick38
Post by: CyberShadow on September 05, 2020, 09:54 PM
Indeed, I am aware of those features and already have the language filter turned on(I double checked just to make sure), yet this player was still able to use that racist word.
Hmm, that's a bug. I'll have a look.
I still wonder about the possibility of having a selective word filter, something you can customize, update and maintain personally, is that something that might be possible in future?
The list of bad words is stored in the file filter.FTR, using a very simple encryption (obfuscation) scheme (ASCII Caesar). Editing that file would allow customizing the game's word filter, though one would need to decrypt it first and then encrypt the result.
Title: Re: wkKick38
Post by: GrO on September 06, 2020, 01:30 PM
I should've stated in OP that this module requires MSVC runtimes, but some users would ignore it regardless (just like GrO did a few posts back when I instructed him to install runtimes).
...why should I ignore the solution I just wanted? It's not with the logic. It was just misunderstanding with x86 and x64 versions (you know that) and I gave you all the feedback I could, regarding I didn't even install these x64 'runtimes' yet (had other things to do), but I saw another user also with win7 x64 and the CD release of WA having the same issue, which has been solved with these 'runtimes' you've mentioned, so I assumed it'll work for me either and I'm sure it'll be.

I'll post here after I test it and thanks for your work - I really appreciate it ;D
...ok, I've installed Visual C++ Redistributable Runtimes x86 (2015-2019) (https://aka.ms/vs/16/release/vc_redist.x86.exe) and it runs as expected.

I didn't know such font is even possible with the in-game chat (attachment)...

Regards and thanks again... :)
Title: Re: wkKick38
Post by: iClown on October 27, 2020, 07:03 PM
- in my opinion this functionality should come standard with base game to avoid shitty kick module implementations like this.
I agree that there is a problem in need of solving here, but not necessarily that this is the best way of solving it. I would be more excited to see a module which forces a player's teams to surrender without disconnecting them, so that they have an opportunity to discuss what went wrong and how they can avoid disrupting games in the future. For malevolent players who continue to disrupt games intentionally, preventing them from entering the game in the first place would be a much better solution. Cases when players behave in a way that's not acceptable regardless of circumstances (e.g. hate speech etc.) should be reported to moderators so that the users are removed from WormNET.

While it would be better to force players teams to surrender instead of flat out kicking in theory, that is exactly what leads us into the tyrannical micro-management that would be involved with banning people for whatever one whimsically might feel is "hate speech" etc etc. Lets just stick with hacky kick dlls. Variety is variety. I mean, we want to spare peoples feelings when they mess up our games and then ban people entirely when our feelings are hurt? The oppressor is the victim! What a rat nest all that would be.
One way or another we all learned to play worms and have all been kicked out of games for screwing them up. We all still managed to figure it out in the end.
Also #AbolishHostingBuddy (and other things that destroy the worms community)
Title: Re: wkKick38
Post by: Godmax on December 29, 2020, 03:05 PM
How does it work? Got all the c++ installed but the kick does nothing, unknown command. /kick1 or /kick 1 or /kick name.....not working. Or what are the requirements for the host and the players?
Title: Re: wkKick38
Post by: Kradie on December 29, 2020, 03:42 PM
Make sure there are no spaces left. For example /kick Kradie(NO SPACE NOW).

And obviously.... Make sure that wormkit is on.....

Other than that, I don't know.

Title: Re: wkKick38
Post by: Godmax on December 29, 2020, 05:12 PM
f@#! the wormkit module was off. No comment....

God bless you Kradie
Title: Re: wkKick38
Post by: Sensei on December 30, 2020, 06:32 PM
(https://i.pinimg.com/originals/89/31/bc/8931bc02e3670100e91adc4a27a9fdd2.gif)
Title: Re: wkKick38
Post by: Kradie on December 18, 2022, 02:39 PM
A person came to my game and I tried to kick this entity but it didn't work. The message was displayed to this person and called me ''lol coward''. I decided then to rehost.

Could it be possible that someone has found a workaround to counter this kick? Is it possible?
Title: Re: wkKick38
Post by: Danger135 on May 01, 2023, 07:50 PM
ERROR! Actual version from WA website do not work on WA 3.8.1 GOG version (under WinXP SP3)! When I used /kick4 (or with name specified), it write that player #4 (or named) not exist. But we played 6 players! I was tested it then on 1 vs 1, and really. I saw 1 player only on players box, but /kick1 write that player not exist. But /kick2 kicked player 1 (the only player). And reason is not supported anymore? Why it can not work easy just as in 3.7?!  And 128 MB kB dll just for one command?! REALLY?!?!?! WTF
Title: Re: wkKick38
Post by: Danger135 on May 01, 2023, 08:13 PM
Okay, I found why it not found by name... there was a space on end after name when use F-key. But that with numbers are anyway dangerous, it can kick wrong player (or none).
Title: Re: wkKick38
Post by: Quai on May 03, 2023, 01:42 PM
lol danger, my wkKick got 128 kB. kilo, not mega :)
Title: Re: wkKick38
Post by: Danger135 on May 04, 2023, 05:54 PM
Okay, was typo... kB ofc, but it is a lot too. It can have few kB, no 128!