Гайды Rust

Создание плагина для Rust Magma - часть 4

Автор статьи stream
Комментарии к статье Создание плагина для Rust Magma - часть 4 13
Дата публикации
Количество просмотров 1812
Мне нравится Нравится!
Создание плагина для Magma - часть 4


Это продолжение серии уроков по созданию плагинов для Rust Magma.
И в этой части я расскажу о подключении языков к вашему плагину.


Итак, у нас есть наш плагин, который мы уже делаем 3 урока, и теперь стоит добавить в него немного других языков.
К примеру сегодня мы сделаем вот так: русский язык, английский, вывод ошибки (при неверно указанном языке).

Открываем config.cfg и добавляем туда строку language:
//config.cfg
allow=true
language=ru

На этом конфиг можно закрывать. Больше мы его использовать не будем.

Переходим к плагину, сразу после подключения конфига создаем функцию language и делаем так:
function language() 
	{
		return Data.GetConfigValue(ConfigName, "Settings", "language");
	}

Мы объявляем функцию, внутри делаем возврат языка из конфига.

Теперь идем прямо в плагин, сейчас он выглядит вот так:

//plugin.js
var ConfigName = 'config';

function On_PlayerConnected(Player) 
	{
		Player.Message("Добро пожаловать!");
		Player.Message("Привет, " + Player.Name);
	}

function On_Command(Player, cmd, args)
	{
	
		cmd = Data.ToLower(cmd);
		if(Data.GetConfigValue(ConfigName, "Settings", "enable") != "true")
		{
			cmd = null;
		}
		
		if(cmd == "test")
		{
			Player.Message("Привет, " + Player.Name);
		}
	
		if(cmd == "ping")
		{
			Player.Message("Pong!");
		}
	}


Несколько не сложных действий и парочку условий:
if(language() == "ru"), else и сообщение об ошибке в настройках конфига только для админа.

//plugin.js
var ConfigName = 'config';

function On_PlayerConnected(Player) 
	{
             if(language() == "ru") {
		Player.Message("Добро пожаловать!");
		Player.Message("Привет, " + Player.Name);
             } else if(language() == "en") {
		Player.Message("Welcome!");
		Player.Message("Hello, " + Player.Name);
             } else if(Player.Admin == true){
		Player.Message("Ошибка в файле конфигурации. Язык en или ru.");
            Player.Message("Error. Check your config for language=ru or en. (other = error)");
             } 
	}


И вот таким образом доделывайте ваш плагин и проверяйте.
Желательно тестировать каждый раз после изменения.
В этот раз архив с плагином не прикрепляю, попробуйте сами :).
И на этом все, совсем скоро новая часть.
Все вопросы в комментарии, спасибо за внимание!


Следующая часть: читать
Аватар пользователя XopTgaH
Автор: XopTgaH Дата: 16 марта 2014 22:23
пора уже менять On_PlayerConnected на On_PlayerSpawned
Аватар пользователя stream
Автор: stream Дата: 16 марта 2014 22:32
Цитата: XopTgaH
пора уже менять On_PlayerConnected на On_PlayerSpawned

Зачем? При спавне другие события нужно делать, допустим выдавать старт кит или еще что-то. А при подключении игрока как раз надо выводить, что он подключился и вывести ему приветствие. Ибо игрок может войти, а заспавнится из-за слабенького интернета или лагов в игре совсем в другое время.
Аватар пользователя XopTgaH
Автор: XopTgaH Дата: 17 марта 2014 00:46
Цитата: stream
Цитата: XopTgaH
пора уже менять On_PlayerConnected на On_PlayerSpawned

Зачем? При спавне другие события нужно делать, допустим выдавать старт кит или еще что-то. А при подключении игрока как раз надо выводить, что он подключился и вывести ему приветствие. Ибо игрок может войти, а заспавнится из-за слабенького интернета или лагов в игре совсем в другое время.

про старткит я конечно понимаю... но насколько я понимаю сообщения после коннекта не видны ему ..а только после спауна он видет чат , разве не так? я могу путать конечно но я думал что это так.
Аватар пользователя stream
Автор: stream Дата: 17 марта 2014 00:54
Цитата: XopTgaH
Цитата: stream
Цитата: XopTgaH
пора уже менять On_PlayerConnected на On_PlayerSpawned

Зачем? При спавне другие события нужно делать, допустим выдавать старт кит или еще что-то. А при подключении игрока как раз надо выводить, что он подключился и вывести ему приветствие. Ибо игрок может войти, а заспавнится из-за слабенького интернета или лагов в игре совсем в другое время.

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

Он_коннект - при подключении/ во время подключения/ после подключения. Вывод же сообщений осуществляется только после подключения.
Аватар пользователя XopTgaH
Автор: XopTgaH Дата: 17 марта 2014 02:11
Цитата: stream
Цитата: XopTgaH
Цитата: stream
Цитата: XopTgaH
пора уже менять On_PlayerConnected на On_PlayerSpawned

Зачем? При спавне другие события нужно делать, допустим выдавать старт кит или еще что-то. А при подключении игрока как раз надо выводить, что он подключился и вывести ему приветствие. Ибо игрок может войти, а заспавнится из-за слабенького интернета или лагов в игре совсем в другое время.

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

Он_коннект - при подключении/ во время подключения/ после подключения. Вывод же сообщений осуществляется только после подключения.

я знаю перевод но ты походу не понял что я имел ввиду.
Аватар пользователя AdminRust
Автор: AdminRust Дата: 17 марта 2014 03:57
Цитата: XopTgaH
я знаю перевод но ты походу не понял что я имел ввиду.

Ты хочешь сказать, что у новозашедшего не успевает прогружаться игра?
Аватар пользователя stream
Автор: stream Дата: 17 марта 2014 09:08
Цитата: XopTgaH
Цитата: stream
Цитата: XopTgaH
Цитата: stream
Цитата: XopTgaH
пора уже менять On_PlayerConnected на On_PlayerSpawned

Зачем? При спавне другие события нужно делать, допустим выдавать старт кит или еще что-то. А при подключении игрока как раз надо выводить, что он подключился и вывести ему приветствие. Ибо игрок может войти, а заспавнится из-за слабенького интернета или лагов в игре совсем в другое время.

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

Он_коннект - при подключении/ во время подключения/ после подключения. Вывод же сообщений осуществляется только после подключения.

я знаю перевод но ты походу не понял что я имел ввиду.

Прекрати нести чужь. Во всех сетевых играх есть события on_connect и on_spawn... И везде приветствие и сообщение о входе сделано в подключении. Так что все тут ок.
Аватар пользователя stream
Автор: stream Дата: 17 марта 2014 19:24
чушь* (только сейчас перечитав коммент, понял, что что-то не так)
Аватар пользователя XopTgaH
Автор: XopTgaH Дата: 17 марта 2014 21:52
Цитата: stream
чушь* (только сейчас перечитав коммент, понял, что что-то не так)

ну не будь танкистом )) ,я и не говорю что не правильно... для начала я был в сомнениях относительно срабатывания он_коннект... и если ты наблюдал за rcon то при подключении клиента когда еще грузится карта итд итп... сервер видит его как он_коннект и срабатывает функция он_коннект . но у пользователя все еще экран загрузки ... соответственно у него показывается сообщение не сразу а только после спавна ... вот что я имел ввиду.
Аватар пользователя stream
Автор: stream Дата: 18 марта 2014 16:12
Цитата: XopTgaH
ну не будь танкистом )) ,я и не говорю что не правильно... для начала я был в сомнениях относительно срабатывания он_коннект... и если ты наблюдал за rcon то при подключении клиента когда еще грузится карта итд итп... сервер видит его как он_коннект и срабатывает функция он_коннект . но у пользователя все еще экран загрузки ... соответственно у него показывается сообщение не сразу а только после спавна ... вот что я имел ввиду.

Ты не понимаешь просто как работает функция on_connect.
Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера