
Последняя версия: 0.6-beta


Введение
- Что это?
SAMP.NET является открытым исходным кодом Mono hook, который дает возможность программистам писать свои моды в управляемом коде. Написанный в C# и C++, плагин использует Mono библиотеку для взаимодействия между Pawn, C++ и управляемым кодом. Библиотека предлагает полный объектно-ориентированный подход к взаимодействию с SA-MP сервером, помогая вам структурировать и организовать ваш код (давайте смотреть правде в глаза; Pawn может быть примитивным и порой пугает). - Конкуренция?
Есть другие .NET плагины, я знаю об этом. Однако, они либо устарели, забылись, либо утомительно настраиваются. SAMP.NET стремится сохранять столь же современным, на сколько это возможно*. Я думал, что будет хорошая идея попытаться развить слой взаимодействия самому, так почему бы не поделиться им? - Как это работает?
Плагин работает при условии, что мод / скрипт вызывает коренные функции C++ на каждом обратном вызове. Когда C ++ плагин получает обратный вызов, он использует Моно время выполнения, чтобы обратиться к функциям в управляемой библиотеке, которая затем вызывает события, прописанные в в моде / скрипте. Затем, когда Вы изменяете деньги игрока, здоровье или что-то в этом роде, оно отсылает P/Invoke обратно в плагин C++, который в свою очередь называет Pawn коренным и сервер выполняет дальше. - Разве это не уменьшит скорость работы?
К сожалению, у меня не было времени, чтобы собрать людей и проверить его на загруженном сервере, но, кажется, на локальном сервере, которым я управляю, нагрузки мало. Любые предложения по снижению нагрузки все же бы ценились.
*Плагин все еще находится в стадии разработки, поэтому не все функциональные возможности реализованы. Но плагин на Бета-версии, так что я близок к цели.
Особенности
- Документация XML.
- Управляемые обработчики событий, чтобы заменить обратные вызовы Pawn.
Обратная связь
Важно!
Пожалуйста, присылайте любые ошибки, которые Вы найдете в эту тему. Я буду стараться работать над ними как можно скорее.
Если Вам удается исправить их самостоятельно, не стесняйтесь, напишите личное сообщение и скажите, как вы сделали это, тогда я смогу выпускать новые версии быстрее.
Прогресс
- Добавлены все коллбэки:
- OnGameModeInit
- OnGameModeExit
- OnPlayerConnect
- OnPlayerDisconnect
- OnPlayerSpawn
- OnPlayerDeath
- OnVehicleSpawn
- OnVehicleDeath
- OnPlayerText
- OnPlayerCommandText
- OnPlayerRequestClass
- OnPlayerEnterVehicle
- OnPlayerExitVehicle
- OnPlayerStateChange
- OnPlayerEnterCheckpoint
- OnPlayerLeaveCheckpoint
- OnPlayerEnterRaceCheckpoint
- OnPlayerLeaveRaceCheckpoint
- OnRconCommand
- OnPlayerRequestSpawn
- OnObjectMoved
- OnPlayerObjectMoved
- OnPlayerPickUpPickup
- OnVehicleMod
- OnEnterExitModShop
- OnVehiclePaintjob
- OnVehicleRespray
- OnVehicleDamageStatusUpdate
- OnUnoccupiedVehicleUpdate
- OnPlayerSelectedMenuRow
- OnPlayerExitedMenu
- OnPlayerInteriorChange
- OnPlayerKeyStateChange
- OnRconLoginAttempt
- OnPlayerUpdate
- OnPlayerStreamIn
- OnPlayerStreamOut
- OnVehicleStreamIn
- OnVehicleStreamOut
- OnDialogResponse
- OnPlayerTakeDamage
- OnPlayerGiveDamage
- OnPlayerClickMap
- OnPlayerClickTextDraw
- OnPlayerClickPlayerTextDraw
- OnPlayerClickPlayer
- OnPlayerEditAttachedObject
- OnPlayerSelectObject
- Добавлены все функции (список в ближайшее время)
- Реализация SAMPGDK
- HTTP/FTP игровые моды
- Исправлены найденные ошибки
Новости и обновления
- Новости
15.08.2012
Я решил передать эту версию в Github. Я больше не буду вести Google Code, SVN, но Google Groups не остановлю. Нет причин, кроме отслеживания новостей. В основном, для меня. Я делаю такие вещи...
Но так или иначе, если Вы сейчас проверяете SVN, извините, но Github получает Git-клиента для Вашей системы, тогда мы сможем говорить.
05.07.2012
Это 2 часа ночи, и я только что настроил страницу Google Groups, где Вы можете следить за продвижением. Я буду публиковать ссылки на разрабатываемые релизы, так что Вы сможете испытать новые возможности, прежде чем они будут официально выпущены, также я создам Архив новостей. Поскольку Вы можете сказать, что я рассматриваю этот плагин как религия - я очень предан ему. - Что нового
Для получения более подробной информации о новшествах, посмотрите изменения на Pastebin (ссылка ниже).
- Известные ошибки
- Список изменений
(на английском)
Загрузка и установка
- Загрузка
Условия пользования:
SAMP.NET защищен в соответствии с лицензией CreativeCommons BY-NC-ND 3.0.
Вы не можете изменять и распространять версии этого плагина. Вы можете продолжить работать и сделать ремикс плагина для личного использования.
Вы не можете получать прибыль от перераспределения этого плагина, измененного или неизменного.
Скачать последнюю версию (0.6-beta):
Исходный код:SVN
Страница Google Code.
Страница Google Groups.new
- Установка
- Шаг 1 - Извлечение файлов
- Откройте sampdotnet-0.6-beta.zip и перейдите к папке Windows.
- Извлеките содержимое этого архива в родительский каталог Вашего сервера (папка за пределами samp-server.exe).
- Очень важно, чтоб структура соответствовала тому, что есть в архиве. (т.е YOUR_SERVER_DIRECTORY/ - это папка, в которой находится samp-server.exe).
- Отредактируйте server.cfg, чтоб были следующие параметры:
Quotegamemode0 sampdotnet 1 plugins sampdotnethook.dll
- Откройте sampdotnet-0.6-beta.zip и перейдите к папке Linux.
- Извлеките содержимое этого архива в родительский каталог Вашего сервера (папка за пределами samp03svr).
- Очень важно, чтоб структура соответствовала тому, что есть в архиве. (т.е YOUR_SERVER_DIRECTORY/ - это папка, в которой находится samp03svr).
- Отредактируйте server.cfg, чтоб были следующие параметры:
Quotegamemode0 sampdotnet 1 plugins sampdotnethook.so
- Шаг 2 - Создание нового проекта
Создайте новую управляемую Библиотеку Классов с именем мода проекта. (Это абсолютно необходимо, чтобы назвать его именем мода - может быть, я буду создавать возможность использовать пользовательские имена и имена классов).
Ваш класс должен осуществлять SAMP.Core.IScriptBase. Интерфейс состоит из метода загрузки, в котором вы должны разместить все ваши подписки на события, и выгрузить методом, который не обязателен, поэтому просто оставьте его незаполненный. Смотрите скрипты в папке Examples для примера, если Вы затрудняетесь.
- Шаг 3 - Разработка и использование Вашего проекта
Когда вы переходите к созданию сценария, разместите Script.dll в каталоге Вашего сервера.
Если вы используете Linux, откройте скрипт для запуска сервера start-server.sh. Она свяжет необходимые библиотеки в ../lib/ для сессии.
Если вы используете Windows, откройте сервер, как обычно.
- Шаг 1 - Извлечение файлов
Важные примечания
- Не все функции реализованы, но я работаю над этим.
- Плагин еще не полностью проверен на обеих платформах. Возможны ошибки.
Авторы
Автор плагина: Yasahiro
Автор перевода: ru.raider
Официальная тема
[Plugin] SAMP.NET (DotNet / Mono hook) 0.6 BETA
Автор плагина: Yasahiro
Автор перевода: ru.raider
Официальная тема
[Plugin] SAMP.NET (DotNet / Mono hook) 0.6 BETA