Jump to content

Malboro

Members
  • Posts

    60
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by Malboro

  1. 10 минут назад, Chipu сказал:

    https://imgur.com/FTmVhtQ
    Я их вроде не использовал

       public class ClientTest
        {
            //ne suda
            public ClientTest()
            {
                Events.OnPlayerChat += OnPlayerChat;
                Events.Add("cl_TestEvent", OnTestEvent);
            }

    Первое что бросается в глаза - не унаследовался от класса Events.Script

  2. 10 часов назад, Chipu сказал:

    Добрый день, сделал все как у вас, но при запуске появились ошибки.
    1) В server.exe не показывает то, что события загрузились
    2 ) При входе на сервер появляется окно с ошибкой: server packages could not be compiled successfully! Check clientside_cs.txt for C# logs
    Содержимое clientside_cs.txt:
    The invoked member is not supported in a dynamic assembly.
    System.Private.CoreLib
       at System.Reflection.Emit.InternalAssemblyBuilder.get_Location()
    The invoked member is not supported in a dynamic assembly.
    The invoked member is not supported in a dynamic assembly.
    System.Private.CoreLib
       at System.Reflection.Emit.InternalAssemblyBuilder.get_Location()
    The invoked member is not supported in a dynamic assembly.
    C#: compiling scripts..
    The invoked member is not supported in a dynamic assembly.
    System.Private.CoreLib
       at System.Reflection.Emit.InternalAssemblyBuilder.get_Location()
    The invoked member is not supported in a dynamic assembly.
    C#: compiling scripts..
    The invoked member is not supported in a dynamic assembly.
    System.Private.CoreLib
       at System.Reflection.Emit.InternalAssemblyBuilder.get_Location()
    The invoked member is not supported in a dynamic assembly.
    C#: compiling scripts..
    The invoked member is not supported in a dynamic assembly.
    System.Private.CoreLib
       at System.Reflection.Emit.InternalAssemblyBuilder.get_Location()
    The invoked member is not supported in a dynamic assembly.
    C#: compiling scripts..
    The invoked member is not supported in a dynamic assembly.
    System.Private.CoreLib
       at System.Reflection.Emit.InternalAssemblyBuilder.get_Location()
    The invoked member is not supported in a dynamic assembly.
    C#: compiling scripts..

    Ссылка на сам сервер: https://yadi.sk/d/ePF-oJxZiqzXfQ
     

    Проблема в том что при динамической сборке проекта, как на клиентской части, нельзя использовать переменные типа var. Проверь свой код клиентской части на их наличие. Вместо var можно использовать dynamic

  3. Привет

    Попросили в комментарии показать как залить сервер на Linux. Что ж, раз тутеров на эту тему хватает пройдемся по одному из них

     

    Ссылка на гайд по установке сервера на Linuxhttps://wiki.rage.mp/index.php?title=Getting_Started_with_Server

    Команды Git: 

    Скопировать удаленный репозиторий как локальный:

     git clone https://github.com/SirEleot/server

    Добавить все измененные файлы в список изменений:

    git add *

    Зафиксировать изменения с комментарием

    git commit -m "Какаой то комментарий"

    Загрузить изменения в удаленный репозиторий на GitHub

    git push

    Обновить локальный репозиторий из удаленного 

    git pull

    Содержимое моего файла .gitignore

    bridge/runtime
    *.txt
    maps
    packages
    plugins
    vs_project
    bt.dat
    LICENSE
    node.dll
    README.md
    server.exe
    conf.json

    Daemon

    Папка в которой нужно создать файл конфигурации для работы сервера в фоновом режиме

    cd /etc/systemd/system

    Название файла до .service является именем для запуска вашего фонового процесса. Допустим имя файла будет

    filename.service

    Тогда со с командами нужно использовать имя filename . Например: systemctl start filename

    • Like 2
  4. 13 часа назад, pandov сказал:

    Действительно, проблема была в ошибке в коде. Исправил её и все заработало. Видимо и в тот раз ничего не работало по той же причине.

    Теперь все упирается в отладку клиента. Какие инструменты есть в Rage MP?

    Я не в курсе за инструменты но можно в try catch оборачивать код и в цеф допустим выводить предварительно там подобие консоли сделав

    • Like 1
  5. Привет!

    Решил записать очередной гайд. Сегодня займемся маппингом при помощи программы CodeWalker и научимся заливать карту через dlc. Все ссылки на программы под видео. Сорян за мой английский, поковеркал названия программ.

    Скачать DlcCreator

    Скачать CodeWalker

    Скачать Openiv

    Скачать ArchiveFix

    Скачать ArchiveFix с ключами

    • Like 1
  6. В общем проблема с инициализацией шарпа на клиенте однозначно. Обычный вывод в чат должен работать из коробки, только что тестил все хорошо.  Могу посмотреть через TeamViewer Что у тебя не так, а так(в рамках форума) больше ничем помочь не могу

    Напиши в дискорде мне

    • Like 1
  7. 1 час назад, pandov сказал:

    Вполне возможно подобное могло произойти когда я разбирался с установкой мультиплеера. Я несколько раз переносил корневую папку в разные директории и запускал update.exe.

    Однако сейчас я полностью стер мультиплеер с компьютера, затем заново скачал и установил его и пересоздал серверные и клиентские скрипты.

    Не заработало. Проблема остается открытой.

    Проследи путь ярлыка которым ты запускаешь игру(возможно твоя папка с rage дублируется) именно там должен быть создан файл enable-clientside-cs.txt а не в папке откуда ты запускаешь сервер

  8. 1 час назад, pandov сказал:

    Файл есть в наличии.

    xbFqbhB-n1M.jpg

    В некоторых уроках предлагали записать в него true. Вероятно это роли не играет, но оба варианта (с и без содержимого) у меня не проходят.

    Записывать в него однозначно нечего не нужно. Возможно следует дождаться пока клиент загрузится полностью, или чат  отключен. Создай событие и выведи что-нибудь в чат, вызови его явным образом чтобы убедится что чат и клиент работает наверняка. Это даст тебе направление куда копать. Мне просто совсем не хочется гта запускать. Но если не разберешься напиши в дискорде помогу. Там в русском чате найдешь

  9. Первое что нужно сделать - это убедится в наличии файла в папке с Rage:

    enable-clientside-cs.txt

    Без этого файла клиентская часть работать не будет, так как на версии 3.7 клиент шарп находится в стадии теста. Если его нет нужно его создать

  10. 1 час назад, Dr.Deft сказал:

    Вот сам код 

    
    del "C:\RAGE-Server\client_packages\cs_packages\*.*" /Q
    for /R %CD% %%i in (*.cs) do (
    	xcopy %%i "C:\RAGE-Server\client_packages\cs_packages\" /Q /Y /EXCLUDE:exclude.txt
    )

    Ругается именно на цикл. Если без него, то отдельное удаление и копирование работает. Если %CD% заменить на папку, то ошибка так же остается. 

    Попробуй открыть. Окно команд в корне клиента и выполнить эту команду. У меня винда 10 полет нормальный ошибок нет. Так же попробуй от имени администратора.

  11. 49 минут назад, Thomas Morgan сказал:

    Круто написано, только почему логин и регистрация реализованы как отдельные классы, а не как методы класса Character?

    Потому как нам доступ к классу авторизации нужен только на этапе подключения, а к регистрации вообще единовременно,  поэтому решил вынести, но тут на вкус и цвет...

    Каждый сам для себя должен определить структуру своего приложения

  12. 13 часа назад, Dr.Deft сказал:

    При сборке ошибка. Ругается на цикл
     

    
    1>C:\RAGE-Server\RageMP\Client\Client.csproj(18,5): error MSB3073: выход из команды "del "C:\RAGE-Server\client_packages\cs_packages\*.*" /Q
    1>C:\RAGE-Server\RageMP\Client\Client.csproj(18,5): error MSB3073: for /R Í% %%i in (*.cs) do (
    1>C:\RAGE-Server\RageMP\Client\Client.csproj(18,5): error MSB3073: 	xcopy %%i "C:\RAGE-Server\client_packages\cs_packages\" /Q /Y /EXCLUDE:exclude.txt
    1>C:\RAGE-Server\RageMP\Client\Client.csproj(18,5): error MSB3073: )" с кодом 255.

     

    Судя по ошибке не может удалить старые файлы, возможно они открыты в редакторе, либо недостаточно прав для удаления(попробуй запустить vs от имени администратора)

    И еще скинь строку посмотреть смущает один момент:

    for /R Í% %%i

     

  13. Привет!!!


    Продолжаем. Рассмотрим настройку среды разработки для клиентской части. Сразу извините за звук, поехали:

    Строка настройки событий после сборки:

    del "E:\RageMP\client_packages\cs_packages\*.*" /Q
    for /R %CD% %%i in (*.cs) do (
    	xcopy %%i "E:\RageMP\client_packages\cs_packages\" /Q /Y /EXCLUDE:exclude.txt
    )

    Пока!!!

    • Like 1
  14. Всем привет!!! 

    Решил записать видео версию тутера по запуску своего сервера Rage Multiplayer с серверной частью на C#.

    Важно!!! Название библиотеки в файле meta.xml указывать с расширением Server.dll

    Поехали:

    Ссылка на Bridge: 

    Нажми меня я все скачаю

    Содержимое файла meta.xml

    <meta>
    	<info name="Tuter" type="script" />
    	<script src="Server.dll" />
    </meta>

    Содержимое файла settings.xml

    <?xml version="1.0"?>
    <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <resource src="Tuter" />
    </config>

    Строка необходимая для добавления в файл  "Название проекта".csproj:

    <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>

    Наглядный пример:

      <PropertyGroup>
        <TargetFramework>netcoreapp2.1</TargetFramework>
        <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
        <RootNamespace>Tuter</RootNamespace>
      </PropertyGroup>

    Строка копирования библиотек в целевой каталог:

    xcopy "$(OutDir)*" "E:\RageMP\Bridge\resources\Tuter\*.*" /Q /D /Y

    Вроде все. Всем пока.

    • Like 4
  15. Всем привет!

    Не знал о чем написать. В чате увидел мнение что установить Postgresql на Linux это сложно. Ну что же давайте ломать стереотипы.

    Нам понадобится почти стандартный набор:

    • Консоль
    • Голова
    • Руки
    • Время

    Поехали!

    Подключение к удаленному серверу.

    У меня стоит  Windows, а по сему если на отличной от моей ОС не будут работать некоторые сочетания клавиш - я не виноват. Итак жмякаем Win + R и в появившемся окне вводим cmd для вызова окна консоли.

    Screenshot-17.png

    В итоге должно открыться окно консоли современного дизайна. Я полагаю  что к этому времени у вас уже есть сервер с установленной ОС (в моем случае это Ubuntu). Данные закрашивать не буду так ка виртуальную машину брал на Azure для гайда и к моменту его выхода это сервер уже не будет существовать. Далее в консоли вводим строку подключения к серверу, в моем случае это:

    ssh [email protected]
    

    Далее нам будет предложено ввести пароль. Вводим его и получаем доступ к консоли сервера.

    Установка Postgresql

    Screenshot-20.png

    В консоль последовательно вводим следующие команды и жмякаем Enter:

    Обновляем индексы пакетов

    sudo apt-get update

    Устанавливаем сам Postgresql

    sudo apt-get install postgresql postgresql-contrib

    Видим информацию об установке, жмем "Y"(соглашаемся), ждем окончания установки. Поздравляю вас Postgresql установлен!!! Как видите ничего сложного. Теперь переходим к самому ответственному этапу: настройка

    Настройка Postgresql

    В консоль последовательно вводим следующие команды и жмякаем Enter:

    Авторизируемся от имени пользователя postgres по умолчанию: 

    sudo -i -u postgres

    Далее создаем нового пользователя базы данных с произвольным именем, в моем случае testuser:

    createuser testuser -i -s -P

    Далее вам будет предложено придумать пароль для пользователя, а после повторить его. Если вы все сделали правильно, то на данном этапе база уже должна подключаться с данной комбинацией логина и пароля из локального источника. Для возврата к основному пользователю наберите:

    exit

    Теперь давайте настроим нашу базу для удаленного подключения, для этого переходим в следующий каталог:

    cd /etc/postgresql/10/main

    И редактируем следующий файл postgresql.conf (Я использую редактор nano, а там кто на что горазд) :

    sudo nano postgresql.conf

    листаем в низ и находим закомментированую строку :

    Screenshot-24.png

    и заменяем на или просто добавляем следующую строку:

    Screenshot-35.png

    Тем самым разрешая подключение к базе со всех источников. На самом деле вы можете указать там один Ip адрес или диапазон адресов по аналогии как мы это сделаем для нашего пользователя далее. Поменяли и нажимаем Ctrl + X для сохранения, жмем Y и Enter - для подтверждения. Далее, в этой же директории, открываем и редактируем следующий файл pg_hba.conf :

    sudo nano pg_hba.conf 

    Листаем в самый низ и добавляем в конце данные такого типа. Внимание строка ниже только для примера и актуальна только в моем конкретном случае, чуть ниже мы разберем как сделать настройку конкретно для вас:

    host    all       testuser        46.216.128.0/17         md5

    Разбираем строку настройки: 

    поля host, all и md5 оставляем без изменений 

    далее вместо testuser пишем имя пользователя базы для которого требуется удаленное подключение (можно так же прописать all, что откроет доступ для всех пользователей) 

    следующим параметром идет Ip адрес с которого будет разрешено подключение к базе данных, вы можете добавить один адрес или же диапазон адресов вашего провайдера если ваш IP динамический. Узнать свой ip или их диапазон можно на сайте https://2ip.ru/. Чтобы узнать диапазон адресов вашего провайдера  перейдите по ссылке https://2ip.ru/whois/ и введите там свой ip адрес:

    Screenshot-33.png

    Получившуюся строку добавляем в конец документа и сохраняем Ctrl + X -> Y -> Enter

    Перезагружаем наш Pstgresql

    sudo service postgresql reload

    И на этом настройку будем считать завершенной.

    Установка клиента и подключение к удаленному серверу

    Переходим по ссылке и скачиваем последнюю версию pgAdmin, устанавливаем ее и запускаем

    Во вкладке Dashboard нажимаем AddNewServer

    Screenshot-40.png

    Во вкладке General вводим произвольное название и переходим во вкладку Connection. Там вводим необходимые данные и жмем Save

    Screenshot-41.png

    Если все сделано как нужно вы увидите структуру своей базы данных

    Screenshot-39.png

    Как видите ничего сложного. Всем спс всем пока

  16. 28 минут назад, Sleimor сказал:

    Давай JavaScript

    Сам непосредственно js это слишком объемная тема чтобы быть изложеной в рамках одного гайда. Прошу более конкретно формулировать свои предложения

×
×
  • Create New...