register img <br>Ваш браузер не поддерживает отображение фреймов. Зарегистрироваться так же можно по <a href="http://93.181.252.12:1234/cmd.reg?action=main" target="_blank" title="Страница регистрации">этой</a> ссылке
arena title

MGS - это серверный скриптовый язык, разработанный специально для сервера %project_name% лично мной. Эти скрипты управляют работой сервера. Они создают юнитов, декорации, выводят сообщения, когда в игру входит новый игрок, заставляют мобов атаковать вас, когда вы ударите по мобу. Благодаря этим скриптам, мы можем не меняя кода самой карты управлять процессом игры в любое время. Скрипты работают по типу Jass в Warcraft III. Различие лишь в том, что эти скрипты выполняются на сервере, а клиенту отправляется лишь результат работы.
Возможности

    -- Программный блок MATH --
  • Математика
  • Булевая математика
  • Строковая математика
    -- Скриптовый блок STANDART --
  • Объявление переменных ([bol] - boolean, [int] - integer, [rea] - real, [str] - string)
  • Блок if/then/else
  • Блок loop
  • Метки
    -- Функциональные блоки --
  • Unit - работа с юнитами на сервере
  • Dest - работа с декорациями на сервере

Пример скрипта, для создания ворот и вурдалака за ним. Через 1 сек ворота откроются и вурдалак выйдет из них
def local [int] gate = Dest.Create(DTg5,0,0,0,270)
def local [int] un = Unit.Create(npc,ugho,0,0,270,330,0)
Wait(1000)
Dest.@gate.State:= 0
Unit.SendOrderXY(@un,0,-500,move)

%sendmail%
Просмотров страницы: 964
Оценка страницы: 3.7\3
Рейтинг страницы: ?
Страница создана: 30.11.2010 в 15:52
Автор страницы: War-Cry
Предоставлена сайтом Warcraft3
Логин:
Пароль:
Всего комментариев: 4
0  
4 War-Cry   (02.05.2011 13:52) [Материал]
переменные объявленные в инит варс удалятся. Так как ты их локальными сделал

0  
3 Ihsan   (29.04.2011 18:30) [Материал]
этот скрипт, был сделан давно, все перечисленное исправил
Вот
[jass]
:initVars
def local [int] FL_footman_Unit = -1
def local [int] hp = Unit.@FL_footman_Unit.Health
Stop
:Create
FL_footman_Unit:=Unit.Create(npc,n001,0,0,0,$maxlife,$maxmana)
Stop
:Min_life
if ({@hp < 50}) then
Wait(100)
Unit.SendOrderXY(@FL_footman_Unit,0,-2000,move)
endif
Stop
:Max_life
if ({@hp < 360}) then
Wait(100)
Unit.SendOrderXY(@FL_footman_Unit,0,2000,move)
endif
Stop
eath
def local [int] source = GetScriptParam(1)
Unit.@FL_.footman_Unit.unit.Talk("ололол...!")
Sleep (1000)
Unit.@source.Talk (Unit.@FL_Gri_Unit.Name+" я игрок, я убил его!.")
Sleep(30*1000)
Unit.@FL_Gri_Unit.Remove
FL_footman_Unit:= -1sleep (180*1000)
RunScript("root\scripts\ForgottenLands\footman.mgscript","Create")
Stop
(180*1000)
RunScript("root\scripts\ForgottenLands\footman.mgscript","Create")
Stop
[/jass]

0  
2 War-Cry   (28.04.2011 14:51) [Материал]
не работает, как с точки зрения алгоритмизации, так и на уровне синтаксиса.
1. Проверку надо делать в цикле
2. сложные вычесления находятся не (), в в {}.
3. GetUnitStateSwap(UNIT_STATE_LIFE, footman) - это вообще обычный jass
4. Переменные используются со знаком @

0  
1 Ihsan   (20.04.2011 13:28) [Материал]
пытался что то написать, мне интересно работает он или нет, вот скрипт:
Создает пехотинца, если его здоровье меньше 50 он убегает от врагов и вернется когда здоровье станет больше 320
[jass]
def local [int] footman = Unit.Create(npc,hfoo,0,0,300,0,0)
if ( not ( GetUnitStateSwap(UNIT_STATE_LIFE, footman) < 50.00 ) ) then
Wait(1)
Unit.SendOrderXY(@un,0,-2000,move)
endif
if ( not ( GetUnitStateSwap(UNIT_STATE_LIFE, footman) > 320.00 ) ) then
Wait(1)
Unit.SendOrderXY(@un,0,2000,move)
endif
[/jass]

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Copyright King Ksel corp © 2008 - 2024

Хостинг от uCoz