Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 16
  1. #1
    Аватар для Bib
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2017
    Адрес
    Челябинск
    Сообщений
    56
    Репутация:
    6 ±

    SampSharp Framework



    SampSharp

    Всем привет.
    Я бы хотел рассказать о фреймворке SampSharp, с помощью которого можно писать мод на C#.

    Использование этого фреймворка дает огромные преимущества, как перед написанием мода на Pawn, так и перед написанием мода с помощью других фреймворков или SDK. А всё за счет относительной простоты C#, и в то же время его большими возможностями.

     Установка

    Пожалуй опишу как установить предрелизную(0.8) версию, т.к. у стабильной(0.7.62) беда с поддержкой кириллицы.

    1. Скачайте и распакуйте архив с сервером SA-MP.
    2. Скачайте архив с последнего релиза(SampSharp-0.8.0-****.zip), содержимое папки внутри архива переместите в папку с сервером.
    3. Укажите плагин SampSharp в server.cfg: plugins SampSharp.
    4. Установите Visual Studio 2017 и загрузите установщиком пакет Кроссплатформенная разработка .NET Core.
    5. Создайте консольное приложение .NET Core
    6. Добавьте ссылки на библиотеки SampSharp.GameMode и SampSharp.Core(соберите или скачайте).


     Hello, World!

    SampSharp 0.8 работает в отдельном процессе, общаясь с плагином по протоколу TCP. Поэтому нужно запускать и SampSharp сервер, и SA-MP сервер,для того чтобы вывести приветствие:
    PHP код:
        class Program
        
    {
            static 
    void Main(string[] args)
            {
                var 
    gameModeBuilder = new SampSharp.Core.GameModeBuilder();
                
    gameModeBuilder.Use<GameMode>();
                
    gameModeBuilder.Run();
                
    Console.ReadLine();
            }
        }

        class 
    GameMode SampSharp.GameMode.BaseMode
        
    {
            protected 
    override void OnInitialized(EventArgs e)
            {
                
    Console.WriteLine("Hello, World!");
            }
        } 

     Сравнение с Pawn

    Давайте покажем подключившемуся игроку диалог с приветствием:

    C#
    PHP код:
            protected override void OnPlayerConnected(BasePlayer playerEventArgs e)
            {
                var 
    message = new MessageDialog("Приветствие", $"Привет, {player.Name}!""Привет");
                
    message.Show(player);
            } 
    Pawn
    PHP код:
            public OnPlayerConnect(playerid)
            {
                new 
    name[MAX_PLAYER_NAME];
                
    GetPlayerName(playeridnamesizeof(name));
                new 
    hello[MAX_PLAYER_NAME 10];
                
    format(hellohello(result), "Привет, %s."name);
                
    ShowPlayerDialog(playerid1DIALOG_STYLE_MSGBOX"Приветствие"hello "Привет""");
            } 
    На Pawn быстрее и приятнее всего можно будет написать мод, тем более с IntelliSense


    GitHub | API | Документация

    (тема будет дополняться, в т.ч. документацией)
    Последний раз редактировалось Bib; 11.02.2018 в 17:35.
    **** RolePlay - всё слоооожно

  2. #2
    Аватар для Geebrox
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.08.2015
    Адрес
    Ташкент
    Сообщений
    375
    Репутация:
    97 ±
    Что по производительности, если весь гейм мод писать на c#? Разница есть?

  3. #3
    Аватар для Bib
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2017
    Адрес
    Челябинск
    Сообщений
    56
    Репутация:
    6 ±
    Цитата Сообщение от Geebrox Посмотреть сообщение
    Что по производительности, если весь гейм мод писать на c#? Разница есть?
    Нужно смотреть на производительность sampgdk, поскольку фреймворк его и использует. Вот что Y_Less написал об этом http://forum.sa-mp.com/showpost.php?...1&postcount=13. Ну и производительность .NET Core и C# нужно еще иметь в виду.
    На этой неделе протестирую
    Последний раз редактировалось Bib; 23.01.2018 в 20:23. Причина: не так понял перевод
    **** RolePlay - всё слоооожно

  4. Пользователь сказал cпасибо:
    Geebrox (23.01.2018)
  5. #4
    Аватар для Geebrox
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.08.2015
    Адрес
    Ташкент
    Сообщений
    375
    Репутация:
    97 ±
    Цитата Сообщение от Bib Посмотреть сообщение
    На этой неделе протестирую
    Буду ждать отчеты в этой теме

  6. #5
    Аватар для Bib
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2017
    Адрес
    Челябинск
    Сообщений
    56
    Репутация:
    6 ±
    Запустил на vps, работает . Позже будут инструкции, а пока что оставлю только ссылки.
    Скачать SampSharp.so(собрал, а то на гитхабе нету)
    Установить .NET Core

    если кратко, то все как на винде. только мод я запускаю командой dotnet gamemode.dll &, а сервер ./samp03svr &
    Последний раз редактировалось Bib; 15.02.2018 в 20:22.
    **** RolePlay - всё слоооожно

  7. #6
    Аватар для Fallen A.
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.09.2015
    Адрес
    Минск, БССР
    Сообщений
    236
    Репутация:
    19 ±
    ОФФТОП: где-то плачет один серегамил.

  8. 2 пользователя(ей) сказали cпасибо:
    Desulaid (28.01.2018) Seregamil (28.01.2018)
  9. #7
    Аватар для Bib
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2017
    Адрес
    Челябинск
    Сообщений
    56
    Репутация:
    6 ±
    О чем ты? Он же вроде и на шарпе пишет, должен радоваться
    **** RolePlay - всё слоооожно

  10. #8
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Цитата Сообщение от Bib Посмотреть сообщение
    О чем ты? Он же вроде и на шарпе пишет, должен радоваться
    Слёзы счастья:)

  11. #9
    Аватар для Fallen A.
    Пользователь

    Статус
    Оффлайн
    Регистрация
    09.09.2015
    Адрес
    Минск, БССР
    Сообщений
    236
    Репутация:
    19 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    Слёзы счастья:)
    Прямое попадание :)

  12. #10
    Аватар для Bib
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2017
    Адрес
    Челябинск
    Сообщений
    56
    Репутация:
    6 ±
    Быстро до меня доходит)

    Протестировал я идентичный код на Pawn и C#. В итоге последний оказался шустрее.

    Pawn Pawn(JIT) C#
    Объединение строк 9538 мс 4802 мс 3575 мс
    Копирование элементов массива 41150 мс 3317 мс 1022 мс
    Вычисление факториала 87652 мс 11705 мс 4601 мс
    100 млн холостых итераций 2702 мс 280 мс 44 мс
    **** RolePlay - всё слоооожно

 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •