Картостроение в Warcraft III TFT Суббота
14.06.2025
06:53
Приветствую Вас Гость | RSS Главная | Статьи | Регистрация | Вход
Меню сайта

Категории раздела
Создание карт [5]
Триггеры [5]
FAQ [5]
Ландшафт [4]
Редактор объектов [1]

Опрос
Вы создали свою карту в World Editore?
Всего ответов: 1151

Статистика
Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа

Главная » Статьи » World Editor » Редактор объектов

Регулируем награду за убийство
В этой статье я хочу поговорить про награду за убийство боевой единицы.
1. Регулирование значений в Редакторе объектов.

В первую очередь, вам необходимо знать, что награда за убийство боевой единицы - случайное значение между (базовым значением + кол-вом костей) и (базовым значением + кол-вом костей * кол-во граней у кости).
В Редакторе объектов у любого воина есть такие поля:

Характеристики - Награда за уничтожение - базовая.
Характеристики - Награда за уничтожение - кол-во граней у кости.
Характеристики - Награда за уничтожение - кол-во костей.

Эти значения определяют призовое золото, которое является случайным числом между (базовым значением + кол-вом костей) и (базовым значением + кол-вом костей * кол-во граней у кости)

Характеристики - Призовая древесина - базовое значение.
Характеристики - Призовая древесина - количество граней.
Характеристики - Призовая древесина - количество кубиков.

Эти значения определяют призовое дерево, которое является случайным числом между (базовым значением + кол-вом кубиков) и (базовым значением + кол-вом кубиков * кол-во граней)

Помня эти правила, вы сможете на свой вкус отредактировать призовое золото и древесину. А теперь приступим к триггерам...


2. Регулирование значений при помощи триггеров.

Для регулирования значений награды триггерно, нам сначала необходимо научиться регулировать встроенную систему - включать и выключать её. Для этого применяется действие:

Оно отключает или включает те значения, что мы регулировали в Редакторе объектов. Допустим, мы не хотим использовать значение Редактора объектов, т.к. его нельзя отловить и хотим всё сделать при помощи триггеров. Тогда придётся сделать такой цикл:

Это отключит движок получения награды.
Теперь мы можем сымитировать этот движок триггерно. Здесь нам поможет такая Jass-функция:

Code
function Bounty takes player whichplayer, integer bounty, real x, real y returns nothing
  local texttag t=CreateTextTag()
  local string s="+"
  call AdjustPlayerStateBJ( bounty, whichplayer, PLAYER_STATE_RESOURCE_GOLD )
  if bounty<0 then
  set s=""
  endif
  call SetTextTagText(t,s+I2S(bounty),0.025)
  call SetTextTagPos(t,x,y, 0.00)
  call SetTextTagColor(t,255,220,0,255)
  call SetTextTagVelocity(t,0,0.03)
  if (GetLocalPlayer()==whichplayer) then
  call SetTextTagVisibility(t,true)
  set s="UI\\Feedback\\GoldCredit\\GoldCredit.mdl"
  else
  call SetTextTagVisibility(t,false)
  set s=""
  endif
  call DestroyEffect(AddSpecialEffect(s,x,y))
  call SetTextTagFadepoint(t,2)
  call SetTextTagLifespan(t,3)
  call SetTextTagPermanent(t,false)
  set t=null
endfunction

Мы можем вставить её в основной код карты, затем вызвать в триггере с событием смерти боевой единицы Custom script:

Code
call Bounty(GetOwningPlayer(GetKillingUnit()),20,GetUnitX(GetTriggerUnit()),GetUnitY(GetTriggerUnit()))


В таком случае убивающий будет получать по 20 ед. золота за убитую боевую единицу.

Вот и всё по вознаграждениям. Экспериментируйте, и у вас всё получится! Спасибо за внимание.

Источник - warcraft3ft.info

Категория: Редактор объектов | Добавил: zuserg (06.02.2011)
Просмотров: 5335 | Комментарии: 1 | Рейтинг: 5.0/3
Всего комментариев: 1
1 Тимофей  
0
Круто!) Спасибо Вам за полезную инфу!
Вы даже код привели на Jass, ваще респект)

Имя *:
Email *:
Код *:
Поиск

НАДОЕЛА РЕКЛАМА?
УСТАНОВИ ДОПОЛНЕНИЕ

Adblock Plus
Adblock Plus


zuserg © 2025 Бесплатный конструктор сайтовuCoz