Jump to content


User Guide Contributor
  • Content Count

  • Joined

  • Last visited

  • Days Won


NanoBob last won the day on December 5 2020

NanoBob had the most liked content!

Community Reputation

84 Popular

1 Follower

About NanoBob

  • Rank
    User Guide Contributor
  • Birthday 25/09/1998


  • Gang
  • Location
    The Netherlands
  • Occupation
    .NET Developer
  • Interests
    Software development

Recent Profile Visitors

1,564 profile views
  1. As one of the developers behind SAES:RPG, the server in question appears to not use any leaked scripts from SAES:RPG (I did a brief check). And it's not like SAES has patented / has a trademark on the idea of our gamemode, so anyone is free to make a gamemode in the same general spirit / idea. With that said, I wish you guys the best of luck.
  2. Lua tutorial for absolute beginners This tutorial aims to teach the Lua scripting language to those with 0 previous experience with programming / scripting. This guide will start with explaining some Lua concepts, and will later on move to explaining MTA:SA specific concepts. Table of contents: Lua Scripts Variables Data types Operators If statements Functions Return values scopes & locals For loops Tables Iterators (pairs/ipairs)
  3. A new version of the core has been released! Async RPCs A new feature called "Async RPCs" has been implemented. This allows you to return a value over an RPC, and use `async / await` in order to use it, so you will no longer need to bounce RPCs back and forth to get a value from the server to the client or vice versa. Example: Server: RpcManager.Instance.RegisterAsyncRPC<SingleCastRpc<string>, EmptyRpc>("Async.RequestMapName", (player, request) => { return new SingleCastRpc<string>(GameServer.Announcement.MapName); }); Client: Task.Run(as
  4. A new version of the CLI and core have been released! RPC bug An issue has been fixed with RPCs, RPCs now work as expected when registering multiple handlers to the same RPC key Update to dotnet core 3! Slipe now runs on non preview versions dotnet core 3, this means you no longer need to use visual studio 2019 preview (use the regular 2019 version, make sure to update it to the latest). And you will no longer need to specify the use of experimental frameworks. Updating In order to update your CLI run `slipe update` In order to update an existing project use `slipe up
  5. Happy birthday!! :computer:  :-D

  6. A new version of the CLI and core have been released! RPCs RPCs being split up into two seperate classes was a bit unintuitive. So we've combined them into a single class. More information on how RPCs work now on https://mta-slipe.com/docs/rpc.html Slipe WPF We've released our first "first party module". Slipe WPF! Slipe WPF allows you to create Windows Presentation Foundation (WPF) user interfaces in Visual studio, and then run these in MTA. Warning Slipe WPF is even more alpha than Slipe itself. So no guarantees that it will be bug free. Information on setting up WPF ca
  7. A new version of the CLI and core have been released! Updating from dev Since Slipe is still in development and we can't always make releases to hotfix an issue we've added the ability to update your CLI and project to the current development branch of the repo. What this means is you will be running the latest version, however these versions are more prone to bugs / unfinished features. In order to update the CLI from the development branch use: `slipe update -dev` In order to update a project from the development branch use: `slipe update-core -dev` Element data
  8. Introduction Properly handling your user's credentials (username and password) is very important, this guide gives detailed information and code samples on how to (properly) implement an account "system". This guide assumes you are not using MTA's built in accounts. Disclaimer: Any code shown in this tutorial is purely for illustrative purposes, and is not finished code, you should use it as a guideline, not a solution. Content The following topics will be discussed in this tutorial: How to hash and salt passwords (register) How to validate a hashed password
  9. That would also be rather insecure Soapbosnia, as you would be storing it in recoverable form on the client. (Aka plaintext or encrypted). So all someone would need to do is access the file in order to gain access to the password. When using a token even if that token is compromised the actual password is still secure. Plus you can add a serial restriction on it (save serial per token). That way the token can't be stolen and used from a different device.
  10. A new version of the CLI has been released! Github webhooks The slipe CLI now has built in support for automatically deploying a Slipe resource using github webhook using the `slipe hook` command. More information on how to set it up can be found on https://mta-slipe.com/docs/webhook.html Updating In order to update your CLI run `slipe update`
  11. A new version of both the CLI and the core have been released! Changes several bugfixes C# reflection is now supported due to metadata being included in compilation Updating In order to update your CLI run `slipe update` In order to update your projects run `slipe update-core` in the project directory Infrastructure From this point on the Slipe website is hosted in a datacenter (instead of a PC at my home) We have also set up a continuous integration / deployment environment so the downloads on the website will always be up to date.
  12. A new version of both the CLI and the core have been released! Events Events have undergone a major refactor, all events now have a `source` and an `eventArgs` parameter. This will allow us to add parameters to events without breaking backwards compatibility. This also aligns more with C# convention. Vehicles The vehicle "lookup" classes have been changed to reflect vehicle types. Exports It is now possible to export static methods from your Slipe resource. For more information on how to do so visit https://mta-slipe.com/docs/exporting.html Updating In order to upda
  13. We have not yet run benchmarks comparing "regular" Lua and Slipe, but we're planning on doing so in the near future. But by inspecting the generated Lua code and the class library the overhead should not be much more (if any) than a "plain" Lua OO implementation.
  14. It is not, sadly. This is due to the fact that all C# has has to be turned into Lua code in order to be run. With a NuGet package you only get the compiled DLL. If the package is open source however (And if it only uses C# classes / libraries that are implemented in slipe) then you should be able to compile it from the source using Slipe. But keep in mind that only very basic C# libraries are currently implemented in Slipe (and many only partially).
  15. The benefit of doing this isn't necesarily performance, but it's the benefits that a strongly typed language such as C# brings with it. But also the tooling that you're able to use for C#, Visual Studio's intellisense especially is great to speed up your development time. It is, because in the end this project just generates Lua code. And MTA events are implemented in our wrapper as C# events. An example of this can be found in the code snippet on the front page of https://mta-slipe.com
  • Create New...