felix_ff

Картострой и все что с ним связанно

Рекомендованные сообщения

У потмы пбилка не невидимая.

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

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

 

Но есть способ что бы сделать абилку невидимой.

Создаешь способность на основе спеллбука (абилка с названием "Книга Заклинаний" (в предметных абилах вроде))

потом пихаешь в него нужную тебе абилку которая должна быть невидимой. Потом спеллбук даешь нужному юниту. А далее тригерно запрещаешь спелл бук для игрока который контролит нужного юнита.

Тем самым иконка спеллбука исчезнет у героя а эффект от абилки будет действовать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А какое время нужно что бы незаметить и чтоб она скаставалась? и че насчет модельки? ее реально поменять

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2felix_ff

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

 

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А какое время нужно что бы незаметить и чтоб она скаставалась? и че насчет модельки? ее реально поменять

 

 

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

Что бы сделать юнита как бы летающим и используется данная конструкция которая мгновенно дает и убирает абилку которая превращает юнит в любую летающую единицу. Чаще всего просто используют стандартную абилку ворона, но можно давать и метаморфозу или еще что либо (просто у них тогда в полях "альтернативной формы" надо поставить любой летающий юнит.

 

Если абилку не убирать то вар вылетит с ошибкой.

 

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

Да я на blizzard.ru сижу в основном. В каких то глобальных проектах не участвую кроме своей карты.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

да я не про мирку, а про голема чтоб он был невидим, кароч как я понял кривой вар это не позволит :P

Следущий вапрос - у мя выбор героев осуществляеца духом, ну подойти нужно к герою и он твой. И там есть один глюк, дух - летающий и вот если например походишь прирывисто, т.е. немного подошел, остановился и опять немного подошел - герой не выбирица а выбираца только есть бес остановок подбежать к нему.

Триггер выбора такой - post-150681-1186402177_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

felix_ff, а поучаствовать не хочешь?

я руководитель проекта BiteFight ORPG

нам нужен спеллер (человек, который бы вместе с балансером делал спеллы)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

felix_ff, а поучаствовать не хочешь?

я руководитель проекта BiteFight ORPG

нам нужен спеллер (человек, который бы вместе с балансером делал спеллы)

 

 

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

 

Но я могу помогать локально. Если вам потребуется написать какой либо спелл то можете обращаться я помогу. А глобально вступать в проекты я сейчас не смогу, а подводить людей говоря что "почти сделал, скоро пришлю карту" тоже не хочется. Поэтому будет разумней если я буду отвечать на какие либо поставленные вами вопросы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

felix_ff, вот столкнулся с такой проблемой, не могу узнать сколько юнит получил повреждения, т.е. поидее это damage taken но она почему то всегда в нулевом значение непонятно почему (мож это не работает на обычную атаку о.О), можно ли узнать другим способом скольно он получил повреждения? (на гуи по возможности)

 

зы так и не ответил сколько нужно времени что бы незаметить что абилка добавилась и убралась но в тоже время успела скаставаца?

 

и еще один нуб вопрос как сделать что бы нельзя было героев брать никаких в таверне, я нашел только make (unit-type) (доступно/недоступно) for train/construciton for (player) но так придется делать для КАЖДОГО героя которые есть в таверне, а это гиморно и криво как то... вообщем если в гуи только через это действие то можно ли как ни будь unit-type сделать чтоб сразу за всех юнитов в тавернах как например с отрядом юнитов.

 

еще один :ph34r:) чтоб сделать например сферу крутящиюся вокруг героя нужно только перемещения юнита (со моделькой сферы) и кажые например 0.1 сек менять его положение на +1 градус относительно героя? т.е. проще не как?

 

Вытекающий вопрос из предыдущего, какая есть точка приложения у юнита у которого моделька например анимация атаки леснова дракона?

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

felix_ff, вот столкнулся с такой проблемой, не могу узнать сколько юнит получил повреждения, т.е. поидее это damage taken но она почему то всегда в нулевом значение непонятно почему (мож это не работает на обычную атаку о.О), можно ли узнать другим способом скольно он получил повреждения? (на гуи по возможности)

 

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


function UnitDamaged_Effect takes nothing returns nothing
  local unit  u = GetTriggerUnit()
  local real r = GetEventDamage()
  call DestroyTrigger(GetTriggeringTrigger())
  // бла бла бла дальше действия которые тебе нужны.
endfunction

function UnitAttacked_Effect takes nothing returns nothing
   local unit u = GetTriggerUnit()
   local trigger t = CreateTrigger()
   call TriggerRegisterUnitEvent(t, u, EVENT_UNIT_DAMAGED)
   call TriggerAddAction(t, function UnitDamaged_Effect)
   set t = null
   set u = null
endfunction

зы так и не ответил сколько нужно времени что бы незаметить что абилка добавилась и убралась но в тоже время успела скаставаца?

время каста заклинания минимальное 0.30 секунды

что бы заклинание не увидили лучше использовать дамми кастеров. иначе будет видно что абилка дается и убирается.

 

 

и еще один нуб вопрос как сделать что бы нельзя было героев брать никаких в таверне, я нашел только make (unit-type) (доступно/недоступно) for train/construciton for (player) но так придется делать для КАЖДОГО героя которые есть в таверне, а это гиморно и криво как то... вообщем если в гуи только через это действие то можно ли как ни будь unit-type сделать чтоб сразу за всех юнитов в тавернах как например с отрядом юнитов.

а что тебе мешает запустить цикл от 0 до 12 и в этом цикле делать одно действие для каждого игрока по отдельности?

 

еще один :D) чтоб сделать например сферу крутящиюся вокруг героя нужно только перемещения юнита (со моделькой сферы) и кажые например 0.1 сек менять его положение на +1 градус относительно героя? т.е. проще не как?

нет проще никак. надо использовать полярное смещение координаты на X и Y

но желательно делать это не стандартыми BJ функциями а кустомными поларярками. (правда для них надо желательно знать жасс но там ничего сложного нету. )

 

Вытекающий вопрос из предыдущего, какая есть точка приложения у юнита у которого моделька например анимация атаки леснова дракона?

точки приложения эффектов:

origin - под юнитом

chest - на туловище

overhead - над головой

head - на голове

hand -руки

foot - ноги

sprite - для зданий

weapon -только у моделек героев держащих какое либо оружие

 

на точки hand и foor надо указывать еще на правую или левую точку прикладывать.

т.е. если мне надо наложить на левую руку то точка будет left hand (или hand left) - на разных модельках работает по разному иногда сначала пишут точку а потом позицию а иногда наоборот позицию потом точку.

 

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

 

потому что надо использовать таймер с периодом 0.03 секунды, заносить юнита в переменную и двигать тригерно (Move Unit Instantly) с полярным смещением.

 

а лучеше двигать по X и Y координате но на ГУИ эти функции недоступны.

SetUnitX(unit, real)

SetUnitY(unit, real)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Впринципе сферу я сделал пока ждал ответа :D

Блин у мя трабл с языками джазз пытался учить нифига ниче не понимаю( можно ли отслежения полученного дамага на гуи сделать?

 

я имею ввиду точки приложения у юнита у которова модель спецэффекта, я ни одной точки не нашел.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Впринципе сферу я сделал пока ждал ответа :P

Блин у мя трабл с языками джазз пытался учить нифига ниче не понимаю( можно ли отслежения полученного дамага на гуи сделать?

 

я имею ввиду точки приложения у юнита у которова модель спецэффекта, я ни одной точки не нашел.

 

у спецэффектов аттачпоинтов нету. тогда создавай эффект не на самом юните а на его месте. подругому никак.

 

Начинай с простого. я тебе советую зайти на www.blizzard.ru/forum там есть раздел "Творцы Миров" так вот. В том разделе еще один подраздел "Библиотека" почитай статьи про тригеры и джассы. для начала надо только разобраться с локальными переменными и функциями. Потом освоишь больше.

 

Про ПС в личке отпишу чуть позже.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

felix_ff, :lol: да я там есть еще с 2005 года, просто jass не дается, а сейчас просто появились идеи спелов и использованием чего то новова что я раньше не делал, так то я не новичек.

Со спец эффектом я сделал через добавление способности этому юниту и там уже спецэффект на способности. Еще сеня заморочился всетаки сделал на гуи крутящиися сферы вокруг героя...

 

так встетаки реально по простому отследнить получаемый дамаг герою на триггерах, или мне опять придеца все криво делать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

felix_ff, :lol: да я там есть еще с 2005 года, просто jass не дается, а сейчас просто появились идеи спелов и использованием чего то новова что я раньше не делал, так то я не новичек.

Со спец эффектом я сделал через добавление способности этому юниту и там уже спецэффект на способности. Еще сеня заморочился всетаки сделал на гуи крутящиися сферы вокруг героя...

 

так встетаки реально по простому отследнить получаемый дамаг герою на триггерах, или мне опять придеца все криво делать?

 

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

 

Используй событие юнит - получает урон

В параметрах real-значений есть строчка Event Damage - собсна когда юнит будет получать урон она возвратит полученный им дамаг.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Нету там такой строки вот сам смари.. есть только damage taken но она почему то всегда 0.000

 

з.ы. а можно какнить триггерно добавлять заклинаяния в кингу с заклянаниями?

post-150681-1186928349_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Заклинания в "спеллбук" добавлять нельзя. Только в редакторе. ты можешь правда сделат несколько спелбуков с разными заклинаниями и при случае менять один на другой.

 

Damage Taken - все верно эта графа и нужна.

возвращает 0.00 потому что видимо юнит который должен являться задамаженным небыл назначен. Проверь там получше если что я карту с примером пришлю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

что бы проверить я сделил триггер

событие unit атакован

условие - нет

действие - display to (all players) the text: (sting((Damage taken)))

все равно по нулям

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

что бы проверить я сделил триггер

событие unit атакован

условие - нет

действие - display to (all players) the text: (sting((Damage taken)))

все равно по нулям

 

 

коенчно будет о нулям. ведь событие то нито которое надо. Я же тебе сказал что событие должно быть "Юнит получает урон"

Это в категории Specific Unit Event но там так все просто не далается.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

felix_ff, можешь кинуть скрин, если не сложно, а то я непонял как это делается.

 

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

Изменено пользователем Magz88

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

felix_ff, можешь кинуть скрин, если не сложно, а то я непонял как это делается.

 

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

 

используй способность "Ракеты" у танков альянса.

 

скрин выложу позже.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

спасиб, вот еще можешь выложить триггер как заблокировать выбор юнитов в таверне (ну как в той же самой доте после выбора) и можна как ни будь сделать группу с типом юнитов, т.е. чтобы можно было сделать рандом юнит тайп из группы по типу юнитов?

 

--- можно ли сделать проверку на заклянание в спеллбуке?

 

--- можно ли выставить радиус стрельбы лучников 9999999, максимально 20000, weu у меня не работает т.к. у мя 1.21 версия вара а он на ней не пашет... скачал grimoire но все осталось прежнее

grimoire_1.1c.rar

Изменено пользователем Magz88

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

для этого используется такая вещь как Unitpool. правда она доступна только на жассе щяс объясню:

 

юнит пул эта такая хрень которая может запоминать в себе нужный тебе id-юнита и возвращать рандомную единицу из него.

 

вот функции которые оперируют с юнитпулом:

type unitpool		   extends	 handle // собсна сам юнитпул. его можно объявлять как локально так и глобально.

native CreateUnitPool		   takes nothing returns unitpool // создает юнит пул
native DestroyUnitPool		  takes unitpool whichPool returns nothing // как видно из названия: уничтожает юнит пул
native UnitPoolAddUnitType	  takes unitpool whichPool, integer unitId, real weight returns nothing //записывает в уже существующий юнитпул id юнита и его приоритет
native UnitPoolRemoveUnitType   takes unitpool whichPool, integer unitId returns nothing //удаляет из юнитпулла id
native PlaceRandomUnit		  takes unitpool whichPool, player forWhichPlayer, real x, real y, real facing returns unit // создает рандомного юнита из юнитпула в координатах по x и y

 

так вот собсна самая простенькая функция которая тебе понадобится будет выглядеть так

 

function H2I takes handle h returns integer
return h
return 0
endfunction
function I2UP takes integer i returns unitpool
return i
return null
endfunction

function Inicialize_UnitPool takes nothing returns nothing
local unitpool u = CreateUnitPool()
call UnitPoolAddUnitType(u, 'uXXA', 1.00)
call UnitPoolAddUnitType(u, 'uXXB', 1.00)
call UnitPoolAddUnitType(u, 'uXXC', 1.00)
//и так до посинения записываешь в юнит пул столько ид-юнитов сколько тебе надо. заметь я привел условно названия ид-юнитов. у тебя в карте они будут другими поэтому тебе надо будет смотреть их в редакторе объектов и писать самому.
set udg_UnitPool = H2I(u)
//вот это действие довольно хитрое сверху. мы записываем наш юнитпул в глобальную переменную что бы потом к нему обращаться. но так как в обычном ГУИ нельзя настроить переменнной пула придется извратнуться и записать в переменную целоисчислительной ссылку на юнитпул в памяти варкрафта. для этого используется конструкция РБ-бага, через функции H2I() и I2UP() на них ты можешь посмотреть выше.
endfunction

и наконец главная функция которая будет у тебя в тригере на срабатывание
function RandomUnit takes nothing returns nothing
 local player p = GetTriggerPlayer()
 call PlaceRandomUnit(I2UP(udg_UnitPool), p, 0, 0)
 set p = null
endfunction
// так как я не знаю куда тебе и где надо размещать рандомных юнитов я поставил точку (0,0)
данная функция сработает если ее впихнуть за действие на срабатывание например "события чата" 

 

--- можно ли сделать проверку на заклянание в спеллбуке?

нет нельзя.

 

--- можно ли выставить радиус стрельбы лучников 9999999, максимально 20000, weu у меня не работает т.к. у мя 1.21 версия вара а он на ней не пашет... скачал grimoire но все осталось прежнее

 

конечно можно: используем хитрое действо под названием: shift+enter или shift+double click

после этого нехитрого действа любой параметр может быть изменен на любую величину. (даже отрицательную)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

для этого используется такая вещь как Unitpool. правда она доступна только на жассе щяс объясню:

 

юнит пул эта такая хрень которая может запоминать в себе нужный тебе id-юнита и возвращать рандомную единицу из него.

 

вот функции которые оперируют с юнитпулом:

type unitpool		   extends	 handle // собсна сам юнитпул. его можно объявлять как локально так и глобально.

native CreateUnitPool		   takes nothing returns unitpool // создает юнит пул
native DestroyUnitPool		  takes unitpool whichPool returns nothing // как видно из названия: уничтожает юнит пул
native UnitPoolAddUnitType	  takes unitpool whichPool, integer unitId, real weight returns nothing //записывает в уже существующий юнитпул id юнита и его приоритет
native UnitPoolRemoveUnitType   takes unitpool whichPool, integer unitId returns nothing //удаляет из юнитпулла id
native PlaceRandomUnit		  takes unitpool whichPool, player forWhichPlayer, real x, real y, real facing returns unit // создает рандомного юнита из юнитпула в координатах по x и y

 

так вот собсна самая простенькая функция которая тебе понадобится будет выглядеть так

 

function H2I takes handle h returns integer
return h
return 0
endfunction
function I2UP takes integer i returns unitpool
return i
return null
endfunction

function Inicialize_UnitPool takes nothing returns nothing
local unitpool u = CreateUnitPool()
call UnitPoolAddUnitType(u, 'uXXA', 1.00)
call UnitPoolAddUnitType(u, 'uXXB', 1.00)
call UnitPoolAddUnitType(u, 'uXXC', 1.00)
//и так до посинения записываешь в юнит пул столько ид-юнитов сколько тебе надо. заметь я привел условно названия ид-юнитов. у тебя в карте они будут другими поэтому тебе надо будет смотреть их в редакторе объектов и писать самому.
set udg_UnitPool = H2I(u)
//вот это действие довольно хитрое сверху. мы записываем наш юнитпул в глобальную переменную что бы потом к нему обращаться. но так как в обычном ГУИ нельзя настроить переменнной пула придется извратнуться и записать в переменную целоисчислительной ссылку на юнитпул в памяти варкрафта. для этого используется конструкция РБ-бага, через функции H2I() и I2UP() на них ты можешь посмотреть выше.
endfunction

и наконец главная функция которая будет у тебя в тригере на срабатывание
function RandomUnit takes nothing returns nothing
 local player p = GetTriggerPlayer()
 call PlaceRandomUnit(I2UP(udg_UnitPool), p, 0, 0)
 set p = null
endfunction
// так как я не знаю куда тебе и где надо размещать рандомных юнитов я поставил точку (0,0)
данная функция сработает если ее впихнуть за действие на срабатывание например "события чата" 

 

нет нельзя.

конечно можно: используем хитрое действо под названием: shift+enter или shift+double click

после этого нехитрого действа любой параметр может быть изменен на любую величину. (даже отрицательную)

Спасибо

А дамаг на триггерах как оследить всетаки? B) и чтоб покупка героев была не доступна эт как?

 

ps код в таком виде и вставлять? (ну не считая изменений в коде юнитов и точки)

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо

А дамаг на триггерах как оследить всетаки? :rofl: и чтоб покупка героев была не доступна эт как?

в аттаче

 

ps код в таком виде и вставлять? (ну не считая изменений в коде юнитов и точки)

да только создай переменную типа "цельисчислительная" с названием UnitPool (регистры соблюдать!)

 

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

в аттаче

Dummy_Manual.rar

Изменено пользователем felix_ff

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В отслеживанием повреждения никакие переменные вроде не задействованны, т.е. вставлять в таком же виде, но там мне нужно чтобы код был обратного действия, т.е. заносил в переменную полученный дамаг за, например, 15 секунд. И еще вот как сделать то что герой, дамаг полученый которого должен сумироватся, он не выбран на карте а сделать так "случайный юнит из группы (все юниты типа(какова нужно)) " и как это на джасе сделать?

 

А что дает for each (integer A) from 1 to 5, do (action) ?

 

function H2I takes handle h returns integer

return h

return 0

endfunction

function I2UP takes integer i returns unitpool

return i

return null

endfunction

 

function Inicialize_UnitPool takes nothing returns nothing

local unitpool u = CreateUnitPool()

call UnitPoolAddUnitType(u, 'nanm', 1.00)

call UnitPoolAddUnitType(u, 'nsc3', 1.00)

call UnitPoolAddUnitType(u, 'ndtp', 1.00)

set udg_UnitPool = H2I(u)

endfunction

 

function RandomUnit takes nothing returns nothing

local player p = GetTriggerPlayer()

call PlaceRandomUnit(I2UP(udg_UnitPool), p, 0, 0)

set p = null

endfunction

у мя такой получился, и он пишет что set p = null неверно "неверное количество аргументов"

 

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

Изменено пользователем Magz88

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

А что дает for each (integer A) from 1 to 5, do (action) ?

это цикл. даже если дословно с английского переводить " для каждого целого А от 1 до 6 сделать следующее".

 

у мя такой получился, и он пишет что set p = null неверно "неверное количество аргументов"

мм.. я там забыл один нолик в функции PlaceRandomUnit() пять входных параметра:

1) юнитпул 2)тип юнита 3)координата X 4)координата Y 5) направление взгляда

 

там скорее всего должно быть call PlaceRandomUnit(I2UP(udg_UnitPool), 'XXXX', 0,0,0)

 

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

ну создай тригер на событие Unit Issued Order - Point

условие String2OrderIdBJ("attack") == GetIssuedOrder()

(я точно не помню но на ГУИ вроде: приказ ( Issued Order) равно "attack")

действие: call IssuePointOrder(GetTriggerUnit(), "attack", GetRandomReal(300, 600), GetRandomReal(1, 359))

 

кароче на пальцах: отслеживаешь событием юнит получил приказ цель точка

условие проверяешь что приказ == "атака по местности"

действие: даешь приказ нападать Тригеринг юниту на рандомную локацию.

Полярное смещение координат знаешь что такое? вот его и юзай

Изменено пользователем felix_ff

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
function H2I takes handle h returns integer

return h

return 0

endfunction

function I2UP takes integer i returns unitpool

return i

return null

endfunction

 

function Inicialize_UnitPool takes nothing returns nothing

local unitpool u = CreateUnitPool()

call UnitPoolAddUnitType(u, 'nanm', 1.00)

call UnitPoolAddUnitType(u, 'nsc3', 1.00)

call UnitPoolAddUnitType(u, 'ndtp', 1.00)

set udg_UnitPool = H2I(u)

endfunction

 

function RandomUnit takes nothing returns nothing

local player p = GetTriggerPlayer()

call PlaceRandomUnit(I2UP(udg_UnitPool), p, 0, 0, 0)

set p = null

endfunction

теперь код такой, но он помечен красным крестом и при по пытки его включить пишет "Триггер UnitPool должен содержать функцию инициализации "initTrig_UnitPool""

 

можешь на пальцах объяснить как работает for each (integer A) from 1 to 5, do (action) я чето не догоняю

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

можешь паказать что и где нужно поменять что бы у меня в карте работало? жасс для меня лес(

function Trig_AttackDamage_Conditions takes nothing returns boolean

return GetUnitAbilityLevel(GetAttacker(), 'AOcr') > 0

endfunction

 

function AttackDamage_Cond takes nothing returns boolean

return GetUnitAbilityLevel(GetEventDamageSource(), 'AOcr') > 0

endfunction

 

function AttackDamage_Check takes nothing returns nothing

call DestroyTrigger(GetTriggeringTrigger())

call DisplayTextToPlayer(GetLocalPlayer(), 0,0, "Damage is "+R2S(GetEventDamage()))

endfunction

 

function Trig_AttackDamage_Actions takes nothing returns nothing

local trigger t = CreateTrigger()

call DisableTrigger(GetTriggeringTrigger())

call EnableTrigger(GetTriggeringTrigger())

call TriggerRegisterUnitEvent(t, GetTriggerUnit(), EVENT_UNIT_DAMAGED)

call TriggerAddCondition(t, Condition(function AttackDamage_Cond))

call TriggerAddAction(t, function AttackDamage_Check)

set t = null

endfunction

 

//===========================================================================

function InitTrig_AttackDamage takes nothing returns nothing

set gg_trg_AttackDamage = CreateTrigger( )

call TriggerRegisterAnyUnitEventBJ( gg_trg_AttackDamage, EVENT_PLAYER_UNIT_ATTACKED )

call TriggerAddCondition( gg_trg_AttackDamage, Condition( function Trig_AttackDamage_Conditions ) )

call TriggerAddAction( gg_trg_AttackDamage, function Trig_AttackDamage_Actions )

endfunction

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Слушай а ведь можна и без пула, смари как - задаем уровень юнитам например 20 и делаем "создать рандом юнита уровня 20" т.е. будет только из тех у кого 20 уровень, но тада нужно в константах ставить чтоб экспы в 20 раз меньше получал, но какой параметр отвечает за это? там их много и хз какой(

 

Блин, в триггерах нельзо праставить выше 10го уровня... как это можно изменить?

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас