Malboro

Настройка клиентской части для разработки в RageMP (C# client side)

Recommended Posts

Posted (edited)

Привет!!!


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

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

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
)

Пока!!!

Edited by Malboro
  • Like 1

Share this post


Link to post
Share on other sites

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

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.

 

Share this post


Link to post
Share on other sites
Posted (edited)
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

 

Edited by Malboro

Share this post


Link to post
Share on other sites

Вот сам код 

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% заменить на папку, то ошибка так же остается. 

Share this post


Link to post
Share on other sites
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 полет нормальный ошибок нет. Так же попробуй от имени администратора.

Share this post


Link to post
Share on other sites

Спасибо за видео!
При сборке проекта сталкиваюсь с такой же проблемой как у Dr.Deft.

Сделал себе файл copy.cmd c тем же текстом и копирование начало работать.

Запускаю сервер -> Захожу на него -> Выходит уведомление о компиляции клиентских скриптов

Но сами скрипты не запускаются. Для примера прикрепляю ниже ПУТЬ (куда копируются файлы) и ФАЙЛ (с исходным кодом вывода в чат при запуске). Текст в чат не выводит.

KMsAA_3zbTk.jpg

Что неправильно делаю? Сможете помочь?

Share this post


Link to post
Share on other sites

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

enable-clientside-cs.txt

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

Share this post


Link to post
Share on other sites

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

xbFqbhB-n1M.jpg

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

Share this post


Link to post
Share on other sites
1 час назад, pandov сказал:

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

xbFqbhB-n1M.jpg

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

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

Share this post


Link to post
Share on other sites

Посмотрел ваше видео про события. Написал аналогичный код. И все равно почему-то не работает. Однако что заметил: при заходе на сервер клиентские файлы кэшируются (в директорию client_resources в корневой папке мультиплеера). Странно почему они не вызываются.

Ниже прикрепляю код двух файлов (клиента и сервера), а также тест их работы.

MainServer.cs

using GTANetworkAPI;

namespace Gamemode
{
    public class MainServer : Script
    {
        public MainServer()
        {
        }

        [ServerEvent(Event.PlayerConnected)]
        public void OnPlayerConnected(Client client)
        {
            client.SendChatMessage("ServerEvent.PlayerConnected");
            NAPI.Util.ConsoleOutput($"Player name is {client.Name}");
            client.TriggerEvent("ClientTestEvent", "TriggerClientEvent");
        }

        [RemoteEvent("TestEvent")]
        public void OnTestEvent(Client client, string message)
        {
            NAPI.Util.ConsoleOutput($"Client message: {message}");
        }
    }
}

MainClient.cs

using RAGE;

namespace ClientScripts
{
    public class MainClient : Events.Script
    {
        public MainClient()
        {
            Events.OnPlayerChat += OnPlayerChat;
            Events.Add("ClientTestEvent", OnClientTestEvent);
            Chat.Output("Test client!");
        }

        private void OnClientTestEvent(object[] args)
        {
            string message = (string)args[0];
            Chat.Output(message);
        }

        private void OnPlayerChat(string text, Events.CancelEventArgs cancel)
        {
            Events.CallRemote("TestEvent", text);
        }
    }
}

Скриншот работы. Ни один из сценариев клиента не работает.

iS1Gu4uVJ58.jpg

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.