Главная » Статьи » Создание карт » JASS / AI скрипты учебники

Система возрождения леса

08-12-2016


Jass:
constant function TreeRegrowTime takes nothing returns real
return 10.00 //the amount of time you want before the tree respawns
endfunction

//To add more trees press CTRl+D while looking at the Object Editor
//then follow the same format and add your tree's RAWCODE inside single quotes (Example ' ' )

function IsDesTree takes destructable a returns boolean
local integer d=GetDestructableTypeId(a)
if d =='ATtr' then
return true
elseif d=='BTtw' then
return true
elseif d=='KTtw' then
return true
elseif d=='YTft' then
return true
elseif d=='JTct' then
return true
elseif d=='YTst' then
return true
elseif d=='YTct' then
return true
elseif d=='YTwt' then
return true
elseif d=='JTwt' then
return true
elseif d=='DTsh' then
return true
elseif d=='FTtw' then
return true
elseif d=='CTtr' then
return true
elseif d=='ITtw' then
return true
elseif d=='NTtw' then
return true
elseif d=='OTtw' then
return true
elseif d=='ZTtw' then
return true
elseif d=='WTst' then
return true
elseif d=='LTlt' then
return true
elseif d=='GTsh' then
return true
elseif d=='Xtlt' then
return true
elseif d=='WTtw' then
return true
elseif d=='Attc' then
return true
elseif d=='BTtc' then
return true
elseif d=='CTtc' then
return true
elseif d=='ITtc' then
return true
elseif d=='NTtc' then
return true
elseif d=='ZTtc' then
return true
else
return false
endif
endfunction

function RegrowTrees takes nothing returns nothing
local destructable tree=GetDyingDestructable()
call TriggerSleepAction(TreeRegrowTime())
call DestructableRestoreLife( tree, GetDestructableMaxLife(tree), true )
set tree=null
endfunction

function Trig_Int_Tree_Revival takes nothing returns nothing
local trigger t
if IsDesTree(GetEnumDestructable())==true then
set t=CreateTrigger()
call TriggerRegisterDeathEvent( t, GetEnumDestructable() )
call TriggerAddAction(t,function RegrowTrees)
endif
endfunction

function Int_Tree_Revive takes nothing returns nothing
call EnumDestructablesInRectAll( GetPlayableMapRect(), function Trig_Int_Tree_Revival )
endfunction

Это может выглядеть отчасти странно, но я объясню, что он делает.
Jass:
function Int_Tree_Revive takes nothing returns nothing
call EnumDestructablesInRectAll( GetPlayableMapRect(), function Trig_Int_Tree_Revival )
endfunction

Это ОЧЕНЬ важно для системы. Начинается все это. Как это сделать, спросите вы?
Очень просто: он выбирает Каждый Разрушаемые В Воспроизводимые Карта ..., а затем он вызывает функцию Возрождения.

Jass:
function IsDesTree takes destructable a returns boolean
local integer d=GetDestructableTypeId(a)
if d =='ATtr' then
return true
elseif d=='BTtw' then
return true
elseif d=='KTtw' then
return true
elseif d=='YTft' then
return true
elseif d=='JTct' then
return true
elseif d=='YTst' then
return true
elseif d=='YTct' then
return true
elseif d=='YTwt' then
return true
elseif d=='JTwt' then
return true
elseif d=='DTsh' then
return true
elseif d=='FTtw' then
return true
elseif d=='CTtr' then
return true
elseif d=='ITtw' then
return true
elseif d=='NTtw' then
return true
elseif d=='OTtw' then
return true
elseif d=='ZTtw' then
return true
elseif d=='WTst' then
return true
elseif d=='LTlt' then
return true
elseif d=='GTsh' then
return true
elseif d=='Xtlt' then
return true
elseif d=='WTtw' then
return true
elseif d=='Attc' then
return true
elseif d=='BTtc' then
return true
elseif d=='CTtc' then
return true
elseif d=='ITtc' then
return true
elseif d=='NTtc' then
return true
elseif d=='ZTtc' then
return true
else
return false
endif
endfunction
Это rawcode для каждого отдельного дерева в Warcraft ... Вы можете добавить свои собственные легко, нажав Ctrl + D, глядя на редактора объектов
Затем в том же формате и добавить RAWCODE ваше дерево внутри одинарных кавычек (пример '')
Jass:
function Trig_Int_Tree_Revival takes nothing returns nothing
local trigger t
if IsDesTree(GetEnumDestructable())==true then
set t=CreateTrigger()
call TriggerRegisterDeathEvent( t, GetEnumDestructable() )
call TriggerAddAction(t,function RegrowTrees)
endif
endfunction
Это очень просто и. Она вызывается Карта инициализации. Что она делает это создать локальный триггер ЕСЛИ разрушаемые является дерево. Это выяснилось при помощи функции IsDesTree который находится в этом учебнике, "T" в данном случае. Он добавляет событие Destructable умирает и добавляет действию. На самом деле это будет вызывать функцию RegrowTrees каждый раз событие будет активирована.

Jass:
function RegrowTrees takes nothing returns nothing
local destructable tree=GetDyingDestructable()
call TriggerSleepAction(TreeRegrowTime())
call DestructableRestoreLife( tree, GetDestructableMaxLife(tree), true )
set tree=null
endfunction

Это нужно, чтобы умирать destructable (ов) и устанавливает его в местном destructable дерева.  Затем он ожидает TreeRegrowTime секунд .. если вы не знаете, что это все же ... это будет объяснено. После ожидание сделали это оживит Destructable ПОКАЗ анимации рождения.  Если вы не хотите, чтобы это показать рождения анимации затем установите значение TRUE на FALSE.


Jass:
constant function TreeRegrowTime takes nothing returns real
return 10.00 //the amount of time you want before the tree respawns
endfunction

Эта постоянная функция Подождите, который используется в функции. Она возвращает 10,00 секунд ожидания. Это возвращение не может изменяться во время работы системы. Если вы хотите деревьев возродить после различных отведенное время, то редактировать 10.00 до любой номер, пожалуйста.

Пример:
Jass:
constant function TreeRegrowTime takes nothing returns real
return 30.00 //the amount of time you want before the tree respawns
endfunction

Я поставил возрождение с 10.00 до 30,00 теперь, после 30,00 секунд деревья будут возрождаться, а не после 10,00 секунд.

Если вы следовали учебнике вы должны иметь это в вашей карте заголовок к настоящему времени.






Сейчас идет самая простая часть ...
Внутри вашей запуска инициализации Карта добавить действие:

Jass:
Custom script: call Int_Tree_Revive()

так что вот скриншот запуска инициализации карты в образце карте.






Категория: JASS / AI скрипты учебники | Добавил: Адмирал (08-12-2016 в 05:06:17)
Просмотров: 2052 | Комментарии: 10 | Рейтинг: 3.9/11
Всего комментариев: 10
avatar
1
бля а по руске как это делать?ну через тригеры??
avatar
2
где учебник скачать?
avatar
3
оО всегда от тригеров бошка болит wacko
avatar
4
омг я лучше через гуи сделаю biggrin
avatar
5
жаль что тигеры на англиском да и ваше кто нибудь может написать как делать ролики!!! sad
avatar
6
а можно гденить это уже готовое скачать???
чтоб в свою карту залить
так как я неразбераюсь в джасе
avatar
7
а не легче в триггерах сделать?
http:/ / s017.radikal. ru/i432/1201/47/7d857ed8cbb5.jpg

без пробелов
там показано, как сделать с помощью тригеров
avatar
9
)) biggrin
avatar
8
Кстати, статью в гугле переводили?
avatar
10
можно и проше
avatar
Рейтинг@Mail.ru
Яндекс.Метрика

Copyright © 2010-2017
Вакансии :: Контакты
Мобильная версия сайта