Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Welcome, Guest!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

Search the Community

Showing results for tags 'csharp'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Categories

  • Buildings
  • Characters
  • Maps
  • Mods
  • Scripts
  • Skins and Textures
  • Vehicles
  • Weapons
  • Servers
  • Miscellaneous

Forums

  • Welcome to MultiPlayerForums.com
    • Community News
    • Introductions
    • Discussions
    • Media
  • Games
    • Games Discussion
    • ARK
    • C&C Renegade
    • C&C Renegade-X
    • Other Command and Conquer
    • Unreal Tournament
  • RenHelp.net Read-Only Archives
    • Buildings
    • Characters
    • Maps
    • Mods
    • Scripts
    • Skins And Textures
    • Vehicles
    • Weapons
    • Dedicated Servers
    • Miscellaneous
  • D&D Players's Looking for Group
  • D&D Players's General Discussions
  • C&C Renegade Mutant Co-Op's Discussions
  • C&C Renegade Mutant Co-Op's News
  • Tiberium Crystal War's Help
  • Tiberium Crystal War's News
  • Tiberium Crystal War's Discussions

Categories

  • Age of Empires
    • Age of Empires 2 HD
    • Age of Empires 3
  • Command & Conquer
    • C&C: Generals & Zero Hour
    • C&C: Imperial Age
    • C&C: Red Alert
    • C&C: Red Alert 2 - Yuris Revenge
    • C&C: Red Alert 3
    • C&C 3: Tiberium Wars
    • C&C: Renegade
    • C&C: Renegade-X
    • C&C: Tiberian Dawn (95)
    • C&C: Tiberian Sun
    • C&C: Tiberium Crystal War
    • C&C: 4
    • C&C: Ultimate Collection
    • C&C: The First Decade
  • Counter Strike Global Offensive
  • Killing Floor
  • Unreal Tournament 3
  • Unreal Tournament 4
  • Tiberium Crystal War's Downloads

Calendars

  • Community Calendar
  • D&D Players's Game Events
  • Tiberium Crystal War's Events

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Facebook Name


Twitter Name


MySpace Name


Steam Name


Location


Interests


Clan or guild


In-game name


Contributor


Donator

Found 3 results

  1. Version 1.1

    0 downloads

    Are you struggling with your everyday development in C++? Do you suck with memory management or just the general hassle to get third party libraries for your custom Dragonade plugin? Well, no more! Introducing RenSharp for Dragonade This framework I created lets you make plugins for your FDS in .NET 4.7.2. You're probably wondering: will this need a heavily modified scripts.dll? I hear you and that's why I made sure it is bootstrapped by a regular Dragonade plugin. "Are there any other limitations?", is probably your next question. Very few, here they are: - You can only create custom classes (i.e. specialization of classes) for the classes I made support for. However the reach of this support is the same as you'd use in any normal Dragonade plugin (event classes, console functions, player observer, object observer, etc). - I only made support for the template classes that are used throughout scripts.dll. Any customizations on this are not supported. - Even though I added in some more safety nets to check for nulls etc. You can still fuck this up and make it crash horribly. Although the checks in place will also throw a managed exception and if not catched and handled will gracefully shutdown the FDS. - Some design choices removed some support. For example there is no 'const' concept. But these choices shouldn't really limit your imagination. - That's about it of what I can come up with on top of my head right now. With any plugin interface there are a few 'gotchas' and for RenSharp those are: - Inheritance is pretty much the same as you would in Dragonade. Except static initialization (using macros to register stuff) will not work in C#. Further explanation how this is handled is discussed in the example plugin. - All managed classes are basically handles to their C++ variants. You can bind the C++ pointer using the appropiate constructor which takes an IntPtr as an argument. These handle classes are not inheriting from IDisposable and assume they are not in charge of cleaning up that handle. If one of these handle classes is wrapped around an IUmanagedContainer<T> class that means that you MUST dispose them when you're done with them. As these containers indicate that you are indeed in charge of cleanup. - If you pass ownership of an unmanaged pointer to the C++ side (which does the memory management) you should make sure to release the pointer on the managed side. To make sure the garbage collector never disposes it. Likewise, when you keep ownership on the managed side, you should keep a reference to the object for as long as you want to keep it alive. - Don't call any methods or use properties of which you don't really know what they do. You can screw it up. Otherwise, if you consider yourself well versed in this stuff, go right ahead. - Any more gotchas or usage are pretty much discussed in the example plugin. How to get started? The only config this adds to da.ini is 'RenSharpPlugins'. You name managed plugin .dlls the same way as you would under 'Plugins'. To start RenSharp you also need to add 'da_RenSharp.dll' under 'Plugins'. Preferably on position 1. But that is up to you. Then follow one of the instructions below: The quickest way to get started is to just use any Visual Studio version that can handle .NET 4.7.2. (for VS2019 you can just use the Visual Studio Installer to install .NET 4.7.2.). Create a new .NET 4.7.2. C# class library and search for the NuGet package 'Neijwiert.RenSharp' (right-mouse click on your project and click Manage NuGet Packages...) and click Install. All Renegade stuff is placed under the RenSharp namespace. When the NuGet package is installed it shows a readme.txt on how to properly set your target platform. You then have to place YourPlugin.dll, da_RenSharp.dll, ManagedRenSharp.dll and ManagedScripts.dll in your FDS folder. You can find these .dlls in 'YourPlugin\packages\Neijwiert.RenSharp.1.0.0\content' and 'YourPlugin\packages\Neijwiert.RenSharp.1.0.0\lib'. The slow way is to compile it yourself. You can download the ZIP file with the source, or from GitHub. Compilation requires you to have C++/CLI build tools installed (use Visual Studio Installer) and .NET 4.7.2. (also use Visual Studio Installer). You can use a newer Visual Studio version as long as you have Visual Studio 2012 installed on your computer, with latest updates (whenever it prompts you to update the projects when you open the solution, you need to hit cancel). For the C++ stuff you need the same requirements as you would when you build Dragonade. Then you can just add a .NET 4.7.2. class library project and add a reference to 'ManagedScripts'. Make sure you configurate the class library to build as x86. Then you're ready to build and use everything. I pretty much made all this without drawing out a plan. I made some design mistakes and I also couldn't test everything due to the size of it. If you find anything broken/not working or stupidly designed message met and I see if I can get it fixed. This also applies for new feature requests. The best way to approach me would be via GitHub probably or a PM here. This cost me a lot of time and effort to make and I hope you guys are going to enjoy it and hopefully open up modding to some more less experienced coders. Everything is licensed under the Apache 2.0 license, which means you can do everything, but you must mention my name and include a copy of the license. I'm wide open to responses to this negative and positive, feel free to reply to this post. GitHub: https://github.com/Neijwiert/RenSharp NuGet: https://www.nuget.org/packages/Neijwiert.RenSharp
  2. Version 1.0

    4 downloads

    The first WOL API written with C# by me. Thanks for Olaf @ xwis.net, ExEric3 and unknown for the contribution of this API! The download has 2 files. First is RenWOL_API.dll, which is API file, and WOLTestClient.exe WOLTestClient.exe depends on API file to work. You can test the API features with Test Client. The screenshot of this page is taken from Test Client. Please report the bugs to me from Discord (The Unstoppable (TR)#1065) or find me from MPF Discord http://multiplayerforums.com/discord You can ask your question to me from my Discord anytime. Documentation: API has 2 basic calls to receive server list. First, you have to login with the call specified below. This call logs into XWIS if the supplied parameters are valid. You must add the class name "WOLManager" for calling the calls listed below. They are members of "WOLManager" class. Example call for newbie n00bs: var LoginResult = WOLManager.Login("0669000000000000", "Example", "1234abcd"); Logging in: public static string Login(string serial, string username, string password) This call returns the codes below: - "success": Successfully logged into XWIS. - "apgar_error": Password encryption error. (Password length is wrong.) - "wrong_credentails": Credentails are wrong. - "read_error": Connection socket error. Probably server closed connection or network issue. - "no_need": API already logged in. - "api_error": Unhandled exception. (Please report the bug if you face with this code.) Retrieving server list: public static WOLConnection GetWOLData() This call return the WOL data with the servers. WOLConnection class returns WOL/XWIS host IP, Port, service name, and servers as a Collection that includes WOLServer class. If the code fails at a point, call returns the data it got so far. WOLServer class includes all of the server information received from WOL/XWIS. Sending page: public static string SendPage(string username, string message) The call above sends a page to user if user is online. This call returns the codes below: - "success": The page is successfully sent to receiver. - "error": Connection socket failed to send page command. - "user_offline": Receiving user is offline. - "need_login": API hadn't logged in and it needs to be logged in. - "api_error": Unhandled exception. (Please report the bug if you face with this code.) Logging out: public static string Logout() This call logs out the user if there is a logged in account. This call returns the codes below: - "success": The user is successfully logged out. - "error": Connection socket failed to send logout command. - "no_need": There are no users logged in. Joining into a channel: public static KeyValuePair<string, WOLServerData> JoinChannel(string channel) WARNING! This code is not yet fully completed and might behave uncorrectly if used inproperly. This call joins to a channel and returns the server data of the joined channel. The call returns a result text, and the Server Data if result is success. If the result is not success, Server Data will be null. This call's result text return the codes below: - "invalid_game": Channel not exist. - "join_error": API failed to join the specified channel. - "nat_error": API failed to get NAT results of the game. - "rginfo_error": API failed to get server data. - "success": The server data is successfully received. If the result text returns "nat_error" or "rginfo_error", It is preferred to call PartChannel() to prevent the bug(s) in your application. Leaving (parting) a channel: public static string PartChannel(string channel) This call leaves the channel specified. Specifying invalid channel name causes freeze. This call returns the codes below: - "success": Successfully left a channel. - "api_error": Unhandled exception. (Please report the bug if you face with this code.) Listing buddies: public static List<WOLUser> GetBuddies() This call gets all buddies you added from WOL/XWIS. WOLUser class contains buddies' nickname, status, and channel if s/he is in a channel. If the code fails at a point, call returns the data it got so far. Adding a buddy: public static string AddBuddy(string nick) This call adds a buddy to your WOL/XWIS account You have to get buddies for see the new buddy added. This call returns the codes below: - "success": Successfully added buddy. - "api_error": Unhandled exception. (Please report the bug if you face with this code.) Removing a buddy: public static string RemoveBuddy(string nick) This call removes a buddy from your WOL/XWIS account. This call returns the codes below: - "success": Successfully removed buddy. - "api_error": Unhandled exception. (Please report the bug if you face with this code.) Getting raw network stream between API <=> WOL/XWIS: public static NetworkStream GetStream() WARNING! This call is strictly unrecommended and it may cause bugs, crashes, freezes if used inproperly. Gets the client connection stream between the server and API.
  3. Version 1.1

    19 downloads

    Basic Renegade GSA API made by C# Language. Originally by Iran (if I don't remember wrong), but modified. Have 4 functions; GetAllRenServersIPByGSA() - Returns IPEndPoint[] : Gets all servers IP GetGSData(IPEndPoint server) - Returns Dictionary<string, string> : Gets server data by server IP. Here's a basic code for lazy. //Shorter version Dictionary<string, string> mpf_server_data = new Dictionary<string, string>(); IPEndPoint mpf_ip = new IPEndPoint(); foreach(IPEndPoint ip in GetAllRenServersIPByGSA()) { if(GetGSData(ip)["hostname"].Contains("MPF")) { mpf_server_data = GetGSData(ip); mpf_ip = ip; } } You can get all servers data with this code too. If you want shorter way, here's a basic code. Dictionary<string, string> mpf_server_data = GetServerDataByKeyValue("hostname", "MPF"); It returns the same mpf_server_data value as the top. For the IP, you can write this code. IPEndPoint mpf_ip = GetServerIPByKeyValue("hostname", "MPF"); It also returns the same mpf_ip value as the top. Comment bugs, glitches and ideas about new functions.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.