EmptyEpsilon
EmptyEpsilon copied to clipboard
Enable GM on client (with password protection)
I propose GM screens on client with requests written on PR #597 . With this PR, gm_control_code is now set into script instead of in options file with this command : setGMControlAccess. When GM or spectator screens are selected, the password overlay is showed. If code is correct, a playerInfo bool is set to true to check GMAction. So I think (but not sure to be honest) that hacking GM actions is not possible from client. I did some tests, but expert advices could be great.
(sorry, I don't know how to contribute directly to the previous PR)
I have definitely appreciated the addition of the "spectator" screen as a partial step towards allowing multiple GM consoles, but do agree that it would be better if the spectator screens were allowed only with passwords in order to avoid cheating. Having the additional GM screens is a bonus for those scenarios (such as our extensive Capture the Flag scenarios) that do required more active GM involvement to ensure that everything is running smoothly. I have NOT had a chance to actually look at the functionality of this change/PR, but in general, I do support the addition of the password check as well as the addition of GM clients.
I think that onGMClick is now ok for server side only. I did some tests and behaviour seems correct. But I didn't succeed to allow onGMClick on client side. @amir-arad , do you have some time to do that ? Or as Tweak, do you think that it is not possible ?
@tdelc I can't find time for these things lately (also not familiar with the new features sop I will have some catching up to do) and seeing that it's not a blocker I think it can just be added to the short list of features that only work on the server, until it specifically blocks someone from doing something.
Ok, thanks @amir-arad for advices. @daid , what do you think about this ? If you want, I can try to add onGMclick now for client (if you have advice for, it can help me). Or are you ok to accept this PR without this function ?
I did requested changes. All work great, but I notice that AI orders is not showed into client GM (I try to add registerMemberReplication(&orders); in cpuship.cpp but it does not compile.
there are so many unrelated commits in this PR, that dont really connect with this feature (they come from the drones and docks branch for some reason). IMO This PR should be squashed to a single commit.