English
Main Menu
My panel

  • Welcome to The Ultimate Site of Worms Armageddon. Please log in or sign up.
Active chat preview

This box automatically views your last visited chat.

wkKick38

Started by terion, July 17, 2020, 09:35 PM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

terion

I am truly sorry for causing  trouble to you and the entire worms community.

Quote from: CyberShadow on August 22, 2020, 08:17 AM
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.

Quote from: CyberShadow on August 22, 2020, 08:17 AM
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.

Quote from: CyberShadow on August 22, 2020, 08:17 AM
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.

Quote from: terion on August 11, 2020, 10:33 AM
- 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.

CyberShadow

Quote from: terion on August 22, 2020, 09:32 AMI am truly sorry for causing  trouble to you and the entire worms community.
This is unnecessary.

Quote from: terion on August 22, 2020, 09:32 AMThough 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?

Quote from: terion on August 22, 2020, 09:32 AMMy 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.

Quote from: terion on August 22, 2020, 09:32 AMClearly, 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.

Quote from: terion on August 22, 2020, 09:32 AMI 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).

Quote from: terion on August 22, 2020, 09:32 AMI am well aware of that and I've already changed that code before your posts when feedback about issues reached me.
Great :)

Quote from: terion on August 11, 2020, 10:33 AM- 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.

Quote from: terion on August 22, 2020, 09:32 AMIf 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.

CyberShadow

Try adding this line to CMakeLists.txt:

set_property(TARGET wkKick38 PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded")

terion

Quote from: CyberShadow on August 22, 2020, 10:00 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.

CyberShadow


Bl4st3r

Quote from: GrO on August 21, 2020, 01:05 PM
Quote from: Bl4st3r on August 21, 2020, 09:45 AM
LoadLibrary failed: Error 0000007E, what to do now? i have all the sources and dll file in my directory
Quote from: terion on August 11, 2020, 10:33 AM
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!

GrO

#51
Quote from: terion on August 22, 2020, 09:32 AM
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

Quote from: GrO on September 07, 2020, 01:50 PM...even the Light needs a background, or some dirt, to become visible... ...

DENnis

Quote from: CyberShadow on August 22, 2020, 10:00 AM
Quote from: terion on August 11, 2020, 10:33 AM- 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"  :-*



cgar

Thanks a bunch terion! Really appreciate it. Unlike some.
I especially appreciate it being open source <3

TheKomodo

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.

CyberShadow

Quote from: TheKomodo on September 05, 2020, 01:11 PMit'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.

TheKomodo

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 :)

CyberShadow

Quote from: TheKomodo on September 05, 2020, 09:46 PMIndeed, 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.
Quote from: TheKomodo on September 05, 2020, 09:46 PMI 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.

GrO

Quote from: GrO on August 23, 2020, 03:08 PM
Quote from: terion on August 22, 2020, 09:32 AM
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) and it runs as expected.

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

Regards and thanks again... :)

Quote from: GrO on September 07, 2020, 01:50 PM...even the Light needs a background, or some dirt, to become visible... ...

iClown

Quote from: CyberShadow on August 22, 2020, 10:00 AM
Quote from: terion on August 11, 2020, 10:33 AM- 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)
FULL STOP.