实例介绍
SampSharp是一个为San Andreas: Multiplayer(SA-MP)游戏模式编写的插件和库,它支持使用C#进行开发。SampSharp的目标是让开发者能够充分利用面向对象编程和.NET的所有特性。SampSharp使用.NET运行时,这使得该插件可以在Windows和Linux服务器上运行。
如果你需要安装和构建SampSharp的相关信息,请查阅文档。如有任何疑问,欢迎加入我们的Discord聊天室或提交问题。
文档:SampSharp的.NET包可以在NuGet.org上找到,并包含所有API文档。更多文档资料可在SampSharp官网以及API文档站点获得。
示例:这里提供了一些示例游戏模式:
GrandLarc (GM) - 使用SampSharp.GameMode将SA-MP默认游戏模式"grandlarc"移植到C#
GrandLarc (ECS) - 使用SampSharp.Entities将SA-MP默认游戏模式"grandlarc"移植到C#
RiverShell (GM) - 使用SampSharp.GameMode将SA-MP默认游戏模式"rivershell"移植到C#
构建SampSharp:要构建.NET库,你可以使用Visual Studio 2022打开并构建SampSharp.sln,或者使用dotnet(版本6或更新)通过命令行构建:dotnet publish SampSharp.sln --configuration Release。
在Windows上构建插件,需要使用Visual Studio 2022构建SampSharp.Plugin.sln,并安装"Desktop development with C++"工作负载。
在Linux上构建插件,则至少需要安装make gcc g++ gcc-multilib g++-multilib包。使用make命令来构建插件。
【实例截图】
【核心代码】
文件清单
└── SampSharp-c09a54e4889011b8b77cad473c1b95d3cfe7f867
├── art
│ ├── sampsharp.pdn
│ ├── sampsharp.png
│ └── sampsharp.svg
├── changelogs
│ ├── CHANGES-plugin.md
│ ├── CHANGES-SampSharp.Core.md
│ ├── CHANGES-SampSharp.Entities.md
│ └── CHANGES-SampSharp.GameMode.md
├── Directory.Build.props
├── env
│ └── pawn.json
├── LICENSE
├── Makefile
├── pawn.json
├── README.md
├── SampSharp.Documentation.shfbproj
├── SampSharp.Documentation.sln
├── SampSharp.Plugin.sln
├── SampSharp.sln
├── SampSharp.sln.DotSettings
└── src
├── pawn
│ ├── empty.amx
│ ├── empty.pwn
│ ├── _rconfix.amx
│ └── _rconfix.pwn
├── SampSharp
│ ├── config_cfg.cpp
│ ├── config_cfg.h
│ ├── config_composite.cpp
│ ├── config_composite.h
│ ├── config.cpp
│ ├── config.h
│ ├── config_omp.cpp
│ ├── config_omp.h
│ ├── config_win.cpp
│ ├── config_win.h
│ ├── coreclr_app.cpp
│ ├── coreclr_app.h
│ ├── includes
│ │ ├── coreclr
│ │ │ ├── coreclrhost.h
│ │ │ └── mscoree.h
│ │ ├── json
│ │ │ └── json.hpp
│ │ ├── sampgdk
│ │ │ ├── sampgdk.c
│ │ │ └── sampgdk.h
│ │ └── sdk
│ │ ├── amx
│ │ │ ├── amx.h
│ │ │ ├── getch.h
│ │ │ └── sclinux.h
│ │ ├── amxplugin.cpp
│ │ ├── plugincommon.h
│ │ └── plugin.h
│ ├── interop.cpp
│ ├── interop.h
│ ├── locator.cpp
│ ├── locator.h
│ ├── logging.cpp
│ ├── logging.h
│ ├── main.cpp
│ ├── nethost_coreclr.cpp
│ ├── nethost_coreclr.h
│ ├── nethost.h
│ ├── platforms.h
│ ├── SampSharp.def
│ ├── SampSharp.vcxproj
│ ├── SampSharp.vcxproj.filters
│ ├── strutil.cpp
│ ├── strutil.h
│ ├── testing.cpp
│ ├── testing.h
│ └── version.h
├── SampSharp.Core
│ ├── AssemblyAttributes.cs
│ ├── Callbacks
│ │ ├── CallbackAttribute.cs
│ │ ├── Callback.cs
│ │ ├── CallbackParameterBooleanArray.cs
│ │ ├── CallbackParameterBoolean.cs
│ │ ├── CallbackParameterIntArray.cs
│ │ ├── CallbackParameterInt.cs
│ │ ├── CallbackParameterSingleArray.cs
│ │ ├── CallbackParameterSingle.cs
│ │ ├── CallbackParameterString.cs
│ │ ├── CallbackRegistrationException.cs
│ │ ├── ICallbackArrayParameter.cs
│ │ ├── ICallbackParameter.cs
│ │ └── ParameterLengthAttribute.cs
│ ├── CodePages
│ │ ├── CodePageEncoding.cs
│ │ └── data
│ │ ├── 8859-10.dat
│ │ ├── 8859-11.dat
│ │ ├── 8859-13.dat
│ │ ├── 8859-14.dat
│ │ ├── 8859-15.dat
│ │ ├── 8859-16.dat
│ │ ├── 8859-1.dat
│ │ ├── 8859-2.dat
│ │ ├── 8859-3.dat
│ │ ├── 8859-4.dat
│ │ ├── 8859-5.dat
│ │ ├── 8859-6.dat
│ │ ├── 8859-7.dat
│ │ ├── 8859-8.dat
│ │ ├── 8859-9.dat
│ │ ├── cp1250.dat
│ │ ├── cp1251.dat
│ │ ├── cp1252.dat
│ │ ├── cp1253.dat
│ │ ├── cp1254.dat
│ │ ├── cp1255.dat
│ │ ├── cp1256.dat
│ │ ├── cp1257.dat
│ │ ├── cp1258.dat
│ │ ├── cp437.dat
│ │ ├── cp737.dat
│ │ ├── cp775.dat
│ │ ├── cp850.dat
│ │ ├── cp852.dat
│ │ ├── cp855.dat
│ │ ├── cp857.dat
│ │ ├── cp860.dat
│ │ ├── cp861.dat
│ │ ├── cp862.dat
│ │ ├── cp863.dat
│ │ ├── cp864.dat
│ │ ├── cp865.dat
│ │ ├── cp866.dat
│ │ ├── cp869.dat
│ │ ├── cp874.dat
│ │ ├── cp932.dat
│ │ ├── cp936.dat
│ │ ├── cp949.dat
│ │ └── cp950.dat
│ ├── CoreLogGameModeBuilderExtensions.cs
│ ├── EncodingGameModeBuilderExtensions.cs
│ ├── GameModeBuilder.cs
│ ├── GameModeBuilderException.cs
│ ├── GameModeClientException.cs
│ ├── GameModeClientExtensions.cs
│ ├── GameModeNotRunningException.cs
│ ├── GameModeRunnerFactory.cs
│ ├── GameModeRunnerRun.cs
│ ├── HostedGameModeClient.cs
│ ├── Hosting
│ │ ├── AmxCell.cs
│ │ ├── Amx.cs
│ │ ├── AmxError.cs
│ │ ├── AmxExport.cs
│ │ ├── Interop.cs
│ │ ├── PluginData.cs
│ │ └── SampSharpApi.cs
│ ├── IGameModeClient.cs
│ ├── IGameModeProvider.cs
│ ├── IGameModeRunner.cs
│ ├── InternalStorage.cs
│ ├── ISynchronizationProvider.cs
│ ├── Logging
│ │ ├── CoreLog.cs
│ │ └── CoreLogLevel.cs
│ ├── Natives
│ │ ├── IlGeneratorExtensions.cs
│ │ ├── NativeIlGenContext.cs
│ │ ├── NativeIlGenParam.cs
│ │ ├── NativeObjectProxyFactoryImpl.cs
│ │ ├── NativeObjects
│ │ │ ├── INativeObjectProxyFactory.cs
│ │ │ ├── NativeMethodAttribute.cs
│ │ │ ├── NativeNotImplementedException.cs
│ │ │ ├── NativeObjectIdentifiersAttribute.cs
│ │ │ ├── NativeObjectProxyFactory.cs
│ │ │ ├── NativeObjectSingleton`1.cs
│ │ │ └── NativePropertyAttribute.cs
│ │ ├── NativeParameterType.cs
│ │ ├── NativeUtils.cs
│ │ ├── ValueConverter.cs
│ │ └── VarArgsState.cs
│ ├── RconFixGameModeBuilderExtensions.cs
│ ├── RedirectConsoleOutputGameModeBuilderExtensions.cs
│ ├── SampSharp.Core.csproj
│ ├── SampSharp.Core.csproj.DotSettings
│ ├── ServerLogWriter.cs
│ ├── Threading
│ │ ├── MainThreadTaskAwaiter.cs
│ │ ├── SampSharpSynchronizationContext.cs
│ │ ├── SyncToMainThreadTask.cs
│ │ └── TaskHelper.cs
│ └── UnhandledExceptionEventArgs.cs
├── SampSharp.Core.UnitTests
│ ├── Callbacks
│ │ ├── CallbackParameterBooleanTests.cs
│ │ ├── CallbackParameterIntTests.cs
│ │ ├── CallbackParameterSingleTests.cs
│ │ └── CallbackTests.cs
│ ├── CoreLogGameModeBuilderExtensionsTests.cs
│ ├── EncodingGameModeBuilderExtensionsTests.cs
│ ├── GameModeClientHelperTests.cs
│ ├── HostedGameModeClientTests.cs
│ ├── Hosting
│ │ └── InteropTests.cs
│ ├── RedirectConsoleOutputGameModeBuilderExtensionsTests.cs
│ ├── SampSharp.Core.UnitTests.csproj
│ └── TestHelpers
│ ├── ApiScope.cs
│ ├── GameModeClientScope.cs
│ └── InteropStructs.cs
├── SampSharp.Entities
│ ├── Annotations
│ │ └── Annotations.cs
│ ├── Components
│ │ ├── Component.cs
│ │ └── NativeComponent.cs
│ ├── EcsBuilder.cs
│ ├── EcsBuilderEventExtensions.cs
│ ├── EcsBuilderExtensions.cs
│ ├── EcsBuilderUseMiddlewareExtensions.cs
│ ├── EcsManager.cs
│ ├── Entities
│ │ ├── EntityCreationException.cs
│ │ ├── EntityExtensions.cs
│ │ ├── EntityId.cs
│ │ ├── EntityManager.cs
│ │ ├── EntityNotFoundException.cs
│ │ ├── EntityTypeAttribute.cs
│ │ ├── EntityTypeRegistry.cs
│ │ ├── IEntityManager.cs
│ │ └── InvalidEntityArgumentException.cs
│ ├── Events
│ │ ├── EventAttribute.cs
│ │ ├── EventContext.cs
│ │ ├── EventContextImpl.cs
│ │ ├── EventDelegate.cs
│ │ ├── EventHelper.cs
│ │ ├── EventScopeMiddleware.cs
│ │ ├── EventService.cs
│ │ ├── EventSignatureException.cs
│ │ └── IEventService.cs
│ ├── GameModeBuilderExtensions.cs
│ ├── IEcsBuilder.cs
│ ├── IStartup.cs
│ ├── Natives
│ │ ├── INativeProxy.cs
│ │ └── NativeProxy.cs
│ ├── SAMP
│ │ ├── Commands
│ │ │ ├── CommandInfo.cs
│ │ │ ├── CommandParameterAttribute.cs
│ │ │ ├── CommandParameterInfo.cs
│ │ │ ├── CommandServiceBase.cs
│ │ │ ├── ICommandMethodInfo.cs
│ │ │ ├── InvokeResponse.cs
│ │ │ ├── InvokeResult.cs
│ │ │ ├── IPlayerCommandService.cs
│ │ │ ├── IRconCommandService.cs
│ │ │ ├── Parsers
│ │ │ │ ├── DoubleParser.cs
│ │ │ │ ├── EntityParser.cs
│ │ │ │ ├── EnumParser.cs
│ │ │ │ ├── FloatParser.cs
│ │ │ │ ├── ICommandParameterParser.cs
│ │ │ │ ├── IntParser.cs
│ │ │ │ ├── PlayerParser.cs
│ │ │ │ ├── StringParser.cs
│ │ │ │ └── WordParser.cs
│ │ │ ├── PlayerCommandAttribute.cs
│ │ │ ├── PlayerCommandProcessingMiddleware.cs
│ │ │ ├── PlayerCommandService.cs
│ │ │ ├── RconCommandAttribute.cs
│ │ │ ├── RconCommandProcessingMiddleware.cs
│ │ │ └── RconCommandService.cs
│ │ ├── Components
│ │ │ ├── Actor.cs
│ │ │ ├── GangZone.cs
│ │ │ ├── GlobalObject.cs
│ │ │ ├── Menu.cs
│ │ │ ├── Pickup.cs
│ │ │ ├── Player.cs
│ │ │ ├── PlayerObject.cs
│ │ │ ├── PlayerTextDraw.cs
│ │ │ ├── PlayerTextLabel.cs
│ │ │ ├── TextDraw.cs
│ │ │ ├── TextLabel.cs
│ │ │ └── Vehicle.cs
│ │ ├── Data
│ │ │ ├── Color.cs
│ │ │ ├── ColorFormat.cs
│ │ │ ├── Matrix.cs
│ │ │ ├── Quaternion.cs
│ │ │ ├── SampEntities.cs
│ │ │ ├── SampLimits.cs
│ │ │ ├── Vector2.cs
│ │ │ ├── Vector3.cs
│ │ │ └── Vector4.cs
│ │ ├── Definitions
│ │ │ ├── BodyPart.cs
│ │ │ ├── Bone.cs
│ │ │ ├── BulletHitType.cs
│ │ │ ├── CameraCut.cs
│ │ │ ├── CameraMode.cs
│ │ │ ├── CarModType.cs
│ │ │ ├── CheckpointType.cs
│ │ │ ├── ConnectionStatus.cs
│ │ │ ├── DialogStyle.cs
│ │ │ ├── DisconnectReason.cs
│ │ │ ├── EditObjectResponse.cs
│ │ │ ├── EnterExit.cs
│ │ │ ├── ExplosionType.cs
│ │ │ ├── FightStyle.cs
│ │ │ ├── Keys.cs
│ │ │ ├── MapIcon.cs
│ │ │ ├── MapIconType.cs
│ │ │ ├── ObjectMaterialSize.cs
│ │ │ ├── ObjectMaterialTextAlign.cs
│ │ │ ├── ObjectType.cs
│ │ │ ├── PickupType.cs
│ │ │ ├── PlayerClickSource.cs
│ │ │ ├── PlayerMarkersMode.cs
│ │ │ ├── PlayerRecordingType.cs
│ │ │ ├── PlayerState.cs
│ │ │ ├── ServerVarType.cs
│ │ │ ├── ShopName.cs
│ │ │ ├── SpecialAction.cs
│ │ │ ├── SpectateMode.cs
│ │ │ ├── TextDrawAlignment.cs
│ │ │ ├── TextDrawFont.cs
│ │ │ ├── VehicleCategory.cs
│ │ │ ├── VehicleColor.cs
│ │ │ ├── VehicleModelInfoType.cs
│ │ │ ├── VehicleModelType.cs
│ │ │ ├── VehicleParameterValue.cs
│ │ │ ├── Weapon.cs
│ │ │ ├── WeaponSkill.cs
│ │ │ └── WeaponState.cs
│ │ ├── Dialogs
│ │ │ ├── DialogResponse.cs
│ │ │ ├── DialogResult.cs
│ │ │ ├── DialogRowCollection.cs
│ │ │ ├── DialogService.cs
│ │ │ ├── DialogSystem.cs
│ │ │ ├── IDialog.cs
│ │ │ ├── IDialogRow.cs
│ │ │ ├── IDialogService.cs
│ │ │ ├── InputDialog.cs
│ │ │ ├── InputDialogResponse.cs
│ │ │ ├── ListDialog.cs
│ │ │ ├── ListDialogResponse.cs
│ │ │ ├── ListDialogRowCollection.cs
│ │ │ ├── ListDialogRow.cs
│ │ │ ├── MessageDialog.cs
│ │ │ ├── MessageDialogResponse.cs
│ │ │ ├── TablistDialog.cs
│ │ │ ├── TablistDialogResponse.cs
│ │ │ ├── TablistDialogRowCollection.cs
│ │ │ ├── TablistDialogRow.cs
│ │ │ └── VisibleDialog.cs
│ │ ├── MathHelper.cs
│ │ ├── Middleware
│ │ │ ├── ArgumentsOverrideEventContext.cs
│ │ │ ├── EntityMiddleware.cs
│ │ │ ├── PlayerClickMapMiddleware.cs
│ │ │ ├── PlayerConnectMiddleware.cs
│ │ │ ├── PlayerDisconnectMiddleware.cs
│ │ │ ├── PlayerEditAttachedObjectMiddleware.cs
│ │ │ ├── PlayerEditObjectMiddleware.cs
│ │ │ ├── PlayerObjectMiddleware.cs
│ │ │ ├── PlayerSelectObjectMiddleware.cs
│ │ │ ├── PlayerTextDrawMiddleware.cs
│ │ │ ├── PlayerWeaponShotMiddleware.cs
│ │ │ ├── TextDrawClickMiddleware.cs
│ │ │ └── UnoccupiedVehicleUpdateMiddleware.cs
│ │ ├── NativeComponents
│ │ │ ├── BaseNativeComponent.cs
│ │ │ ├── NativeActor.cs
│ │ │ ├── NativeGangZone.cs
│ │ │ ├── NativeMenu.cs
│ │ │ ├── NativeObject.cs
│ │ │ ├── NativePickup.cs
│ │ │ ├── NativePlayer.cs
│ │ │ ├── NativePlayerObject.cs
│ │ │ ├── NativePlayerTextDraw.cs
│ │ │ ├── NativePlayerTextLabel.cs
│ │ │ ├── NativeTextDraw.cs
│ │ │ ├── NativeTextLabel.cs
│ │ │ └── NativeVehicle.cs
│ │ ├── PlayerExtensions.cs
│ │ ├── SampEcsBuilderExtensions.cs
│ │ ├── SampLimitException.cs
│ │ ├── Services
│ │ │ ├── IServerService.cs
│ │ │ ├── IVehicleInfoService.cs
│ │ │ ├── IWorldService.cs
│ │ │ ├── ServerService.cs
│ │ │ ├── ServerServiceNative.cs
│ │ │ ├── VehicleInfoService.cs
│ │ │ ├── VehicleInfoServiceNative.cs
│ │ │ ├── WorldService.cs
│ │ │ └── WorldServiceNative.cs
│ │ └── VariableCollection.cs
│ ├── SampSharp.Entities.csproj
│ ├── SampSharp.Entities.csproj.DotSettings
│ ├── ServiceCollectionExtensions.cs
│ ├── Systems
│ │ ├── ISystem.cs
│ │ ├── ISystemRegistry.cs
│ │ ├── ITickingSystem.cs
│ │ ├── SystemRegistry.cs
│ │ ├── SystemRegistryException.cs
│ │ └── SystemTypeWrapper.cs
│ ├── Timers
│ │ ├── ITimerService.cs
│ │ ├── TimerAttribute.cs
│ │ ├── TimerInfo.cs
│ │ ├── TimerReference.cs
│ │ ├── TimerServiceExtensions.cs
│ │ └── TimerSystem.cs
│ └── Utilities
│ ├── AssemblyScanner.cs
│ ├── IRecyclable.cs
│ ├── MethodInvoker.cs
│ ├── MethodInvokerFactory.cs
│ ├── MethodParameterSource.cs
│ └── RecyclePool.cs
├── SampSharp.GameMode
│ ├── BaseMode.callbacks.cs
│ ├── BaseMode.cs
│ ├── BaseMode.events.cs
│ ├── BaseMode.functions.cs
│ ├── BaseMode.Internal.cs
│ ├── Controllers
│ │ ├── ActorController.cs
│ │ ├── BasePlayerController.cs
│ │ ├── BaseVehicleController.cs
│ │ ├── CommandController.cs
│ │ ├── ControllerAttribute.cs
│ │ ├── ControllerCollection.cs
│ │ ├── DialogController.cs
│ │ ├── GangZoneController.cs
│ │ ├── GlobalObjectController.cs
│ │ ├── IController.cs
│ │ ├── IEventListener.cs
│ │ ├── IGameServiceProvider.cs
│ │ ├── ITypeProvider.cs
│ │ ├── MenuController.cs
│ │ ├── PickupController.cs
│ │ ├── PlayerObjectController.cs
│ │ ├── PlayerTextDrawController.cs
│ │ ├── PlayerTextLabelController.cs
│ │ ├── TextDrawController.cs
│ │ ├── TextLabelController.cs
│ │ └── TimerController.cs
│ ├── Definitions
│ │ ├── BodyPart.cs
│ │ ├── Bone.cs
│ │ ├── BulletHitType.cs
│ │ ├── CameraCut.cs
│ │ ├── CameraMode.cs
│ │ ├── CarModType.cs
│ │ ├── CheckpointType.cs
│ │ ├── ConnectionStatus.cs
│ │ ├── DialogButton.cs
│ │ ├── DialogStyle.cs
│ │ ├── DisconnectReason.cs
│ │ ├── EditObjectResponse.cs
│ │ ├── EnterExit.cs
│ │ ├── ExplosionType.cs
│ │ ├── FightStyle.cs
│ │ ├── Keys.cs
│ │ ├── MapIcon.cs
│ │ ├── MapIconType.cs
│ │ ├── ObjectMaterialSize.cs
│ │ ├── ObjectMaterialTextAlign.cs
│ │ ├── ObjectType.cs
│ │ ├── PickupType.cs
│ │ ├── PlayerClickSource.cs
│ │ ├── PlayerMarkersMode.cs
│ │ ├── PlayerRecordingType.cs
│ │ ├── PlayerState.cs
│ │ ├── ServerVarType.cs
│ │ ├── ShopName.cs
│ │ ├── SpecialAction.cs
│ │ ├── SpectateMode.cs
│ │ ├── TextDrawAlignment.cs
│ │ ├── TextDrawFont.cs
│ │ ├── VehicleCategory.cs
│ │ ├── VehicleColor.cs
│ │ ├── VehicleModelInfoType.cs
│ │ ├── VehicleModelType.cs
│ │ ├── VehicleParameterValue.cs
│ │ ├── Weapon.cs
│ │ ├── WeaponSkill.cs
│ │ └── WeaponState.cs
│ ├── Display
│ │ ├── Dialog.cs
│ │ ├── Dialog.Internal.cs
│ │ ├── InputDialog.cs
│ │ ├── ListDialog`1.cs
│ │ ├── ListDialog.cs
│ │ ├── MenuColumn.cs
│ │ ├── Menu.cs
│ │ ├── Menu.Internal.cs
│ │ ├── MenuRow.cs
│ │ ├── MessageDialog.cs
│ │ ├── PlayerTextDraw.cs
│ │ ├── PlayerTextDraw.Internal.cs
│ │ ├── TablistDialog.cs
│ │ ├── TextDraw.cs
│ │ └── TextDraw.Internal.cs
│ ├── Events
│ │ ├── CancelableEventArgs.cs
│ │ ├── ClickPlayerEventArgs.cs
│ │ ├── ClickPlayerTextDrawEventArgs.cs
│ │ ├── ClickTextDrawEventArgs.cs
│ │ ├── CommandTextEventArgs.cs
│ │ ├── ConnectionEventArgs.cs
│ │ ├── DamageEventArgs.cs
│ │ ├── DeathEventArgs.cs
│ │ ├── DialogResponseEventArgs`1.cs
│ │ ├── DialogResponseEventArgs.cs
│ │ ├── DisconnectEventArgs.cs
│ │ ├── EditAttachedObjectEventArgs.cs
│ │ ├── EditGlobalObjectEventArgs.cs
│ │ ├── EditPlayerObjectEventArgs.cs
│ │ ├── EnterModShopEventArgs.cs
│ │ ├── EnterVehicleEventArgs.cs
│ │ ├── InteriorChangedEventArgs.cs
│ │ ├── KeyStateChangedEventArgs.cs
│ │ ├── MenuRowEventArgs.cs
│ │ ├── PickUpPickupEventArgs.cs
│ │ ├── PlayerEventArgs.cs
│ │ ├── PlayerUpdateEventArgs.cs
│ │ ├── PlayerVehicleEventArgs.cs
│ │ ├── PositionEventArgs.cs
│ │ ├── RconEventArgs.cs
│ │ ├── RconLoginAttemptEventArgs.cs
│ │ ├── RequestClassEventArgs.cs
│ │ ├── RequestSpawnEventArgs.cs
│ │ ├── SelectGlobalObjectEventArgs.cs
│ │ ├── SirenStateEventArgs.cs
│ │ ├── SpawnEventArgs.cs
│ │ ├── StateEventArgs.cs
│ │ ├── TextEventArgs.cs
│ │ ├── TrailerEventArgs.cs
│ │ ├── UnoccupiedVehicleEventArgs.cs
│ │ ├── VehicleModEventArgs.cs
│ │ ├── VehiclePaintjobEventArgs.cs
│ │ ├── VehicleResprayedEventArgs.cs
│ │ └── WeaponShotEventArgs.cs
│ ├── Extension.cs
│ ├── Factories
│ │ ├── BaseVehicleFactory.cs
│ │ ├── BaseVehicleFactory.Internal.cs
│ │ └── IVehicleFactory.cs
│ ├── GameModeServiceContainer.cs
│ ├── Helpers
│ │ ├── MathHelper.cs
│ │ ├── NullableHelper.cs
│ │ └── VehicleParameterValueHelper.cs
│ ├── IExtension.cs
│ ├── IService.cs
│ ├── Matrix.cs
│ ├── PlayerDisconnectedException.cs
│ ├── Pools
│ │ ├── IdentifiedOwnedPool`1.cs
│ │ ├── IdentifiedPool`1.cs
│ │ ├── Pool`1.cs
│ │ ├── PoolContainer`1.cs
│ │ └── PooledTypeAttribute.cs
│ ├── Quaternion.cs
│ ├── SAMP
│ │ ├── Color.cs
│ │ ├── ColorFormat.cs
│ │ ├── ColorValue.cs
│ │ ├── Commands
│ │ │ ├── CommandAttribute.cs
│ │ │ ├── CommandCallableResponse.cs
│ │ │ ├── CommandGroupAttribute.cs
│ │ │ ├── CommandPath.cs
│ │ │ ├── CommandsManager.cs
│ │ │ ├── DefaultCommand.cs
│ │ │ ├── DefaultHelpCommand.cs
│ │ │ ├── ICommand.cs
│ │ │ ├── ICommandsManager.cs
│ │ │ ├── NullableParam.cs
│ │ │ ├── Parameters
│ │ │ │ ├── CommandParameterInfo.cs
│ │ │ │ └── ParameterAttribute.cs
│ │ │ ├── ParameterTypes
│ │ │ │ ├── EnumType.cs
│ │ │ │ ├── FloatType.cs
│ │ │ │ ├── ICommandParameterType.cs
│ │ │ │ ├── IntegerType.cs
│ │ │ │ ├── NullableEnumType.cs
│ │ │ │ ├── PlayerType.cs
│ │ │ │ ├── TextType.cs
│ │ │ │ ├── VehicleType.cs
│ │ │ │ └── WordType.cs
│ │ │ └── PermissionCheckers
│ │ │ ├── AdminChecker.cs
│ │ │ ├── IPermissionChecker.cs
│ │ │ └── SilentAdminChecker.cs
│ │ ├── KeyChangeHandlerSet.cs
│ │ ├── KeyHandlerSet.cs
│ │ ├── PriorityKeyHandler.cs
│ │ ├── PVarCollection.cs
│ │ ├── PVarCollection.Internal.cs
│ │ ├── ServerConfig.cs
│ │ ├── Server.cs
│ │ ├── Server.Internal.cs
│ │ ├── SVarCollection.cs
│ │ ├── SVarCollection.Internal.cs
│ │ └── Timer.cs
│ ├── SampSharpExtensionAttribute.cs
│ ├── SampSharp.GameMode.csproj
│ ├── Service.cs
│ ├── Tools
│ │ ├── ASyncPlayerWaiter.cs
│ │ ├── ASyncWaiter`2.cs
│ │ ├── Disposable.cs
│ │ └── KeyUtils.cs
│ ├── Vector2.cs
│ ├── Vector3.cs
│ ├── Vector4.cs
│ └── World
│ ├── Actor.cs
│ ├── Actor.Internal.cs
│ ├── BasePlayer.cs
│ ├── BasePlayer.Internal.cs
│ ├── BaseVehicle.cs
│ ├── BaseVehicle.Internal.cs
│ ├── GangZone.cs
│ ├── GangZone.Internal.cs
│ ├── GlobalObject.cs
│ ├── GlobalObject.Internal.cs
│ ├── IGameObject.cs
│ ├── IIDentifiable.cs
│ ├── IOwnable.cs
│ ├── IWorldObject.cs
│ ├── Pickup.cs
│ ├── Pickup.Internal.cs
│ ├── PlayerObject.cs
│ ├── PlayerObject.Internal.cs
│ ├── PlayerTextLabel.cs
│ ├── PlayerTextLabel.Internal.cs
│ ├── TextLabel.cs
│ ├── TextLabel.Internal.cs
│ ├── VehicleModelInfo.cs
│ └── VehicleModelInfo.Internal.cs
├── TestMode.Entities
│ ├── Components
│ │ ├── TestComponent.cs
│ │ └── UnusedComponent.cs
│ ├── Program.cs
│ ├── Properties
│ │ └── launchSettings.json
│ ├── Services
│ │ ├── FunnyService.cs
│ │ ├── IFunnyService.cs
│ │ ├── IScopedFunnyService.cs
│ │ ├── IVehicleRepository.cs
│ │ └── VehicleRepository.cs
│ ├── Systems
│ │ ├── BasicCommandsSystem.cs
│ │ ├── IssueTests
│ │ │ ├── Issue326Timers.cs
│ │ │ ├── Issue333ReproIndexOutOfBoundsError.cs
│ │ │ ├── Issue353ReproEntityIdError.cs
│ │ │ ├── Issue363ReproServerCrash.cs
│ │ │ └── Issue419VehicleHealthOnGmx.cs
│ │ └── Tests
│ │ ├── SystemActorTest.cs
│ │ ├── SystemCheckpointTest.cs
│ │ ├── SystemDialogsTest.cs
│ │ ├── SystemDiTest.cs
│ │ ├── SystemEntityComponentsTest.cs
│ │ ├── SystemMenuTest.cs
│ │ ├── SystemObjectTest.cs
│ │ ├── SystemPlayerCommandTest.cs
│ │ ├── SystemRconCommandTest.cs
│ │ ├── SystemSynchronizationContextTest.cs
│ │ ├── SystemTextdrawTest.cs
│ │ ├── SystemTextLabelTest.cs
│ │ ├── SystemTicking.cs
│ │ ├── SystemVehicleInfoTest.cs
│ │ ├── SystemVehicleRotationQuaternionErrorTest.cs
│ │ ├── SystemVehicleTest.cs
│ │ └── SystemZoneTest.cs
│ ├── TestMode.Entities.csproj
│ └── TestStartup.cs
└── TestMode.GameMode
├── BenchmarkCommands.cs
├── Commands
│ ├── Commands.cs
│ └── DialogCommands.cs
├── GameMode.cs
├── Player.cs
├── Program.cs
├── Properties
│ └── launchSettings.json
├── TestMode.GameMode.csproj
└── Vehicle.cs
70 directories, 636 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论