First of all, thank you both very much!
Please let me apologise for my previous post, I was wrong to take that tone.
Quote:
Originally Posted by psychonic
umad?
|
I kinda was, please accept my apology.
Quote:
Originally Posted by psychonic
Afronanny's suggestion was apt. Looking at other plugins or the sdk is the quickest way to figure out how to do the things you are asking
|
I agree, and I did look at existing plugins, but most of them are outdated,
and those who aren't usually don't make use of the things I'm looking for.
Quote:
Originally Posted by psychonic
You might want to start with the public headers in the sdk. IServer has GetMaxClients and IPlayerInfo has the ChangeTeam function (and it also has a IsFakeClient function, but it's not necessarily accurate). If ClientPutInServer has been called for a client (without a later, corresponding ClientDisconnect), you know they are ingame.
|
Thats basically the info I was looking for. Thank you very much.
Quote:
Originally Posted by psychonic
Coming in here and demanding answers isn't likely to garner good will and help.
|
I understand that, and I'll try to be more civilised in the future.
Quote:
Originally Posted by BAILOPAN
Making plugins like this closed-source is sad and harmful.
|
I agree and I wish there was another way, but surely you must agree that it is probably one of the best ways (except off course being able to ensure the integrity of the application at runtime) to prevent abuse of the source code in this context.
Quote:
Originally Posted by BAILOPAN
SourceMod abstracts away the deep complexities of C++ and the SDK. It'd probably be 500 lines of delicate code to correctly implement your snippet, and it'd take pages and pages to explain it.
|
I don't agree.
The SDK and MM may be complex, but C++ is just a programming language.
Translating the high level code I wrote above should be a simple matter of refactoring if you know both MM & SM.
Quote:
Originally Posted by BAILOPAN
If you're serious about developing plugins in C++, you will need to be able to maintain and debug your plugin, and you will need to be able to research both the SDK and prior work like SourceMod (made possible by open-source).
|
Right I have no problems with that at all. But there's a problem here.
- There is virtually no documentation (as I have read oh so many times on these forums)
-
the deep complexities of [..] the SDK
So basically if I want to use MM I have to fully understand the SDK.
Quote:
Originally Posted by BAILOPAN
The forums are here to point you in the right direction, and contrary to your opinion, it's filled with great Q&A threads.
|
I'm sure it looks that way to you since you can see how older code interconnects with the newer releases, but unless I try to compile those things with every possible release, there is no way to know how those examples fit in. (not without any documentation)
Quote:
Originally Posted by BAILOPAN
No one said systems programming was easy like Java.
|
Right because there's no way to program systems with Java.
I wonder what we were doing back at school when we were programming CPUs using Java?
Quote:
Originally Posted by BAILOPAN
My advice: ask specific questions. How does this code work? Where can I find how X works? How can I do Z? Show that you've done some research, and people will know how to help you better.
|
Yep thats another one of my mistakes, I should have made the following things clear :
- I have had courses on C/C++ programming, but I (almost) never practice it
- I'm a fluent programmer in many (most?) high-level programming languages
- I have read the documentation on the sourcemm.net website but found it insufficient (which is probably a failure on my part)
- I have read articles on the valve dev pages and compiled some easy examples
- I have gone trough most of the plugins available on these forums but found them outdated or off topic
- I hope to be able to devise a way to make the source code public :
Currently my idea is to use every function/method within the plugin (kinda the unit-testing way) and have the return values put in an md5-buffer, along with a user defined parameter and returning the resulting md5 to the end user (allowing that token to be compared). But I'm still not sure if this would achieve acceptable security. Thinking of it : does SourcePawn have an md5 implementation?
- As you may know by now Ive been making SM plugins.
And finally I wish to learn more about MM coding, but I can't seem to find a good trail.
__________________