Jump to content

Решил поднять сервер МТА, все самое полезное сюда =)


Recommended Posts

Все началось пару дней назад, меня втянули в увлекательное предприятие по созданию РП сервера МТА. Сгоряча я проглотил какие мог источники по Луа, и к моменту создания этой темы научился "понимать" скрипты (понимать, что они делают) редактировать готовые скрипты под себя и переводить с английского тексты после скрипта outputChatBox на русский с искринкой :). Но этого мне явно мало, редактировать чужое не возбраняется, но когда чужие скрипты попросту не дают того что требуется, а тех скриптов которые необходимы Нет, есть необходимость в данной теме. Я хочу внести в сервер все то, что будет ему полезно. В тех. инструкциях разжевывается Луа сам по себе, но нет источников (кроме вики), в которых описывается не просто Луа, а Луа не посредственно для МТА. С чего мне начать? Честно признаюсь, меня слегка коснулась паника, когда я понял, что даже не знаю с чего начать для составления всего навсего простейшего квеста.

Данная тема предназначена специально для юных серво-подымателей (создал из расчета на то, что не я один вдруг невпопад занялся программированием для создания сервера МТА). Ссылки на Полезные источники, пояснения, подсказки, богатство речи после двойного тире приветствуется. Если тема получит жизнь, я рассчитываю создать разжеванный материал по Луа исключительно для МТА.

На данный момент меня тревожит следующее:

1. Квесты,

2. Ввод новой валюты (ресурсы, добываемые на некоторых точках, которые могут быть проданы),

3. Ну привязка команд к GUI и всяким удобным менюшкам, я пожалуй осилю,

4. Как сочинить функцию рандома, что бы за убийство игрок получал от 10 до 25 долларов ??

Вот, собственно, мои низменные потребности xD, без которых сервер даже тестировать рано.

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

function quest1 ()

createMarker ( 1, 1, 1 )

addCommandHandler ( quest1, quest1 )

end

судите, но не строго )

Edited by Guest
Link to comment

function quest1 ()

createMarker ( 1, 1, 1 )

end

addCommandHandler ( "quest1", quest1 )

Правильнее будет так. Ибо в твоём примере функцию quest1 ничто не вызывает, а так как addCommandHandler находится внутри этой функции, то и привязки команды к функции тоже не будет.

Маркер не забудь в переменную занести для дальнейшего использования.. (Как минимум тебе придётся ещё и эвент к нему добавить).

Link to comment

Kernell, спасибо =) , к этому я еще сообщение в чат наверное добавлю с описанием, спс.

Так что, значит что бы создать квесты сгодятся такие конструкции с функцией? По сути, я думаю и не надо чего то изощеренного. Так, создать файл Луа скажем quest.lua в нем функции, вызываемые путем addCommandHandler, плюс чат для отображения сути, маркер занести как переменную, и эвент.

И так, недавно вернулся мой соратник и запилил этот код на сервер, и... я был счастлив - как только вбил в чат нужную команду, в небе озарился столб синего света! Захотелось воскликнуть: "Он Жив! Жив, ха-ха!" :D . Теперь прикручу сообщение в чат, плюс то что бадат даны деньги, тогда когда игрок войдет в маркер. Есть еще пара вопросов, например, как сделать так, что сервер поймет что маркер достигнут. я думаю что необходимо услвие, типа если игрок достигнет позиции 1,1,1, и при этом будет введена команда необходимая, то он получит деньги )).

Link to comment
как сделать так, что сервер поймет что маркер достигнут

Для подобных вещей существуют События.

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

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...