Просьба не закидывать помидорками, я старался.
Подавая заявку в проф.лигу LightCode Cup возникла мысль, что, возможно, будет написание плагинов. Написать годный плагин на крестах за короткий промежуток времени я не способен, поэтому решил восстановить свою старую работу по какой-никакой попытке написания плагинов в среде .NET
И так. Данная разработка позволит вам писать плагины на C# и полноценно использовать их.
Функции на стороне сервера:
Функции на стороне плагина:
Решение содержит 2 проекта. Первый на C#, второй на C++. Это COM сборка. При компиляции образуется один *.dll файл в нужной директории. В моем случае это S:\gta-o\plugins\.
Я использую VS2012 Express. Путь для вывода меняется в свойствах проекта dotnet
Второй этап - нужно указать местоположение файла c_sharp.tlb.
7 строка проекта dotnet
#import "C:\Users\Seregamil\Documents\GitHub\.NET-plugin\source\c_sharp\bin\Debug\c_sharp.tlb" raw_interfaces_only
ВНИМАНИЕ. КОМПИЛЯЦИЯ ПРОЕКТА ПРОИЗВОДИТСЯ В РЕЖИМЕ АДМИНИСТРАТОРА
Всё. Вы готовы к разработке плагина на C#.
Все примеры я делал в файле kernel.cs, если хотите - меняйте, делайте зависимость и т.д. у вас нет ограничений.
Файл macro.cs содержит значения MAX_PLAYERS, MAX_VEHICLES etc., использовалось для написания и синхронизации плагина с клиентской частью игрока.
* Я не стал прикручивать SAMPGDK, т.к. мне он не нужен. Основная задача - написание плагинов, а не гейммодов. На офф.форуме есть плагин, позволяющий писать мод на C#
* Я умышленно отключил mono. Хотите писать плагин под Linux - пожалуйста, прикручивается это легко, достаточно поставить библиотеки и перекомпилировать проект.
Ссылка на разработку. Примеры прилагаются https://github.com/Seregamil/.NET-plugin
Огромное спасибо пользователям SDraw, Disinterpreter, g3o0or, Fallen A. за помощь.