[Plugin] SampSharp - Write gamemodes in .NET
#1


SampSharp




SampSharp is a plugin and library which allows you to write SA-MP gamemodes in C#, VB or any other .NET language. The plugin works both on Linux and Windows. The library contains various classes for every type of resource available in SA-MP (players, vehicles, textdraws, etc). Aside from this wrapper around native functions, the library also contains a good structure to build your gamemode on.

SampSharp provides wrappers for existing plugins (currently only the streamer plugin) and a number of resources for writing wrappers for existing plugins. There are also a small number of example gamemodes available.

Feedback and suggestions are highly appreciated!
If you have any questions, please leave a message below.

The following snippet shows how easy it is to create a command which spawns a vehicle:
PHP Code:
class GameMode BaseMode
{
    protected 
override void OnPlayerConnected(BasePlayer playerEventArgs e)
    {
        
base.OnPlayerConnected(playere);
        
player.SendClientMessage($"Welcome {player.Name}, to a whole new world!");
    }
    [
Command("spawn")]
    public static 
void VehicleCommand(BasePlayer playerVehicleModelType model)
    {
        
Console.WriteLine($"Spawning a {model} for {player.Name}");
        var 
vehicle BaseVehicle.Create(modelplayer.Position + new Vector3(000.5f), player.Rotation.Z);
        
player.PutInVehicle(vehicle);
        
player.SendClientMessage(Color.GreenYellow, $"You have spawned a {model}!");
    }

Download SampSharp
https://github.com/ikkentim/SampSharp/releases

Current stable version:


Current unstable version:


Documentation
https://sampsharp.net

Source code
https://www.github.com/ikkentim/SampSharp
Reply
#2

Nice!!! I am sure some people will find this very helpful.
Reply
#3

Nice effort, hope it doesn't get abbandoned as other similar projects.
I am not expirienced with c# but I want to learn it, so is there a way to use current plugins with this?
As I prefer to use mysql,streamer,sscanf plugins and some others?
Reply
#4

Quote:
Originally Posted by Gigi-The-Beast
View Post
Nice effort, hope it doesn't get abbandoned as other similar projects.
I'll maintain it as long as possible
Quote:
Originally Posted by Gigi-The-Beast
View Post
I am not expirienced with c# but I want to learn it, so is there a way to use current plugins with this?
Not the way the plugin works now. However, you shouldn't need to.

Quote:
Originally Posted by Gigi-The-Beast
View Post
As I prefer to use mysql,streamer,sscanf plugins and some others?
Mysql: you can simply use the c# library from oracle, or, better yet, use entityframework. One great .net library, ****** it and you'll love it.
Streamer: i'm going to implement the most important features in the library.
Sscanf: if you are using it to process commands, sampsharp has something better, check the commandstest class in the testmode project. I'll soon document it and make it more awesome.
Reply
#5

Okay, thank you for your reply.
But would you be able to implement a way to allow using the current plugins too? As there are lots of other useful plugins there, like fcnpc, ysf, mapandreas and some others?
Reply
#6

Seems pretty sweet. I can't wait to see some more documentation on this.

Does this have any effect on how fast things are processed?
Reply
#7

Quote:
Originally Posted by Gigi-The-Beast
View Post
Okay, thank you for your reply.
But would you be able to implement a way to allow using the current plugins too? As there are lots of other useful plugins there, like fcnpc, ysf, mapandreas and some others?
I haven't yet found a way to call natives by name. SampSharp has build in support for mapandreas though.

Quote:
Originally Posted by Scaleta
View Post
Seems pretty sweet. I can't wait to see some more documentation on this.

Does this have any effect on how fast things are processed?
Havent yet tested it, but I'm quite sure pure pawn or pure sampgdk is faster.

The reason to use this plugin would be OO, .NET and all libraries written for .NET.
Reply
#8

Really.. and I was just looking into C#...

Seems awesome, might test it.
Reply
#9

My Server won't start.
I pasted this into plugins folder: http://puu.sh/8D0Z2.png
And Config looks like this: http://puu.sh/8D112.png
But Server will only display this: [19:57:31] [SampSharp] Loading gamemode: RiverShell::GameMode at "plugins/RiverShell.dll". And then crashes. Can you help me?
Reply
#10

Awesome work you've done. I might try to write some script on C# finally.
Reply
#11

Quote:
Originally Posted by 123marvin123
View Post
My Server won't start.
I pasted this into plugins folder: http://puu.sh/8D0Z2.png
And Config looks like this: http://puu.sh/8D112.png
But Server will only display this: [19:57:31] [SampSharp] Loading gamemode: RiverShell::GameMode at "plugins/RiverShell.dll". And then crashes. Can you help me?
Have you copied the mono directory and mono-2.0.dll file into your server directory?
Reply
#12

Yes, I did.
Reply
#13

Quote:
Originally Posted by 123marvin123
View Post
Yes, I did.
Could you use the code from this branch?
https://github.com/ikkentim/SampShar...debug-messages

It has some added debug messages during initialization.
If possible, could you run the project in debug mode from visual studio(assuming you are using visual studio)
Reply
#14

Ok, final output:
"[18:30:01] [SampSharp] Loading gamemode: RiverShell::GameMode at "plugins/RiverShell.dll".
[18:30:01] [SampSharp] Configuring mono paths...
[18:30:01] [SampSharp] Initializing mono runtime..."
Reply
#15

Quote:
Originally Posted by 123marvin123
View Post
Ok, final output:
"[18:30:01] [SampSharp] Loading gamemode: RiverShell::GameMode at "plugins/RiverShell.dll".
[18:30:01] [SampSharp] Configuring mono paths...
[18:30:01] [SampSharp] Initializing mono runtime..."
Could you try running it from the command prompt, to see if it poops out any error messages afterwards that arent written to the server log ?
Reply
#16

Wow, i there really is a error msg:"
The assembly mscorlib.dll was not found or could not be loaded.
It should have been installed in the `C:\Users\Marvin\Desktop\Sachen\stock samp
srv/mono/lib/\mono\4.5\mscorlib.dll' directory.
"
Reply
#17

Quote:
Originally Posted by 123marvin123
View Post
Wow, i there really is a error msg:"
The assembly mscorlib.dll was not found or could not be loaded.
It should have been installed in the `C:\Users\Marvin\Desktop\Sachen\stock samp
srv/mono/lib/\mono\4.5\mscorlib.dll' directory.
"
I see... For some reason the dlls in the mono directory are being ignored by git... Let me fix that, ill edit this post when i fixed it.

Edit: Pushed it to the master branch, can you try pulling/downloading it and trying again?
Reply
#18

Ok, the server started now Thanks
I will use your API to create some examples, and then give you my opinion.
Reply
#19

Very nice. I wanted to do samp scripts in C# always. Thanks alot would give it a shoot soon.
Reply
#20

You should add some images, such stands is very simple.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)