|
|
|
|
local
|
|
abidin | Дата: Четверг, 01 Августа 2013, 18:35:45 | Сообщение # 1 |
7 уровень
Группа: Проверенные
Сообщений: 330
Награды: 0
Репутация: 305
Блокировки:
| нельзя присваивать локалальную переменную для last created unit?
Сообщение отредактировал abidin - Четверг, 01 Августа 2013, 23:19:19 |
|
|
|
Naturekid | Дата: Четверг, 01 Августа 2013, 18:43:30 | Сообщение # 2 |
Группа: Заблокированные
Сообщений: 4982
Награды: 3
Репутация: 3347
Блокировки:
| Насколько я знаю, ты не особо пока шаришь в редакторе Вопрос - нахер тебе лезть в локалки?
|
|
|
|
Imba_pvL | Дата: Четверг, 01 Августа 2013, 18:46:55 | Сообщение # 3 |
10 уровень
Группа: Проверенные
Сообщений: 3151
Награды: 1
Репутация: 1260
Блокировки:
| для чего тебе это? сначала с обычными переменными разберись, а потом уже и в локалки лезь.
|
|
|
|
NightCatty | Дата: Четверг, 01 Августа 2013, 19:10:45 | Сообщение # 4 |
6 уровень
Группа: Проверенные
Сообщений: 201
Награды: 0
Репутация: 21
Блокировки:
| чё все так набросились, парень постигает глубины редактора abidin,
Тщетно бытиё! :c
|
|
|
|
[SeKtOR] | Дата: Четверг, 01 Августа 2013, 19:14:05 | Сообщение # 5 |
Группа: Проверенные
Сообщений: 1143
Награды: 0
Репутация: 1168
Блокировки:
| Можно проще: Код local unit theUnit = GetLastCreatedUnit()
|
|
|
|
NightCatty | Дата: Четверг, 01 Августа 2013, 19:57:47 | Сообщение # 6 |
6 уровень
Группа: Проверенные
Сообщений: 201
Награды: 0
Репутация: 21
Блокировки:
| Цитата (|SeKtOR|) Можно проще: Код local unit theUnit = GetLastCreatedUnit() оптимизатор от бога!
Тщетно бытиё! :c
|
|
|
|
abidin | Дата: Четверг, 01 Августа 2013, 23:25:18 | Сообщение # 7 |
7 уровень
Группа: Проверенные
Сообщений: 330
Награды: 0
Репутация: 305
Блокировки:
| Цитата (|SeKtOR|) local unit theUnit = GetLastCreatedUnit() я писал так,не получилось. поэтому написал в форумДобавлено (01 Августа 2013, 23:25:18) ---------------------------------------------
Цитата (Imba_pvL) для чего тебе это? сначала с обычными переменными разберись, а потом уже и в локалки лезь. с чего ты взял,что не разбираюсь?
Просто интересно,как через 6 секунд убить последнего созданного юнита.
Я писал вот так Код function Trig__agi_new_Actions takes nothing returns nothing call CreateNUnitsAtLoc(1, 'H000', Player(0), GetRectCenter(GetPlayableMapRect()), bj_UNIT_FACING) local unit kunit[1] = GetLastCreatedUnit() call TriggerSleepAction(6.00) call KillUnit(kunit[1]) endfunction
|
|
|
|
NightCatty | Дата: Четверг, 01 Августа 2013, 23:28:23 | Сообщение # 8 |
6 уровень
Группа: Проверенные
Сообщений: 201
Награды: 0
Репутация: 21
Блокировки:
| abidin, а надо Код function Trig__agi_new_Actions takes nothing returns nothing call CreateNUnitsAtLoc(1, 'H000', Player(0), GetRectCenter(GetPlayableMapRect()), bj_UNIT_FACING) local unit kunit = GetLastCreatedUnit() call TriggerSleepAction(6.00) call KillUnit(kunit) endfunction Добавлено (01 Августа 2013, 23:28:23) --------------------------------------------- вру, это же jass2 Код function Trig__agi_new_Actions takes nothing returns nothing local unit kunit call CreateNUnitsAtLoc(1, 'H000', Player(0), GetRectCenter(GetPlayableMapRect()), bj_UNIT_FACING) set kunit = GetLastCreatedUnit() call TriggerSleepAction(6.00) call KillUnit(kunit) endfunction
Тщетно бытиё! :c
|
|
|
|
abidin | Дата: Четверг, 01 Августа 2013, 23:29:23 | Сообщение # 9 |
7 уровень
Группа: Проверенные
Сообщений: 330
Награды: 0
Репутация: 305
Блокировки:
| NightCatty, а если с массивом?
|
|
|
|
NightCatty | Дата: Четверг, 01 Августа 2013, 23:36:07 | Сообщение # 10 |
6 уровень
Группа: Проверенные
Сообщений: 201
Награды: 0
Репутация: 21
Блокировки:
| Код function Trig__agi_new_Actions takes nothing returns nothing local unit kunit[] call CreateNUnitsAtLoc(1, 'H000', Player(0), GetRectCenter(GetPlayableMapRect()), bj_UNIT_FACING) set kunit[0] = GetLastCreatedUnit() call TriggerSleepAction(6.00) call KillUnit(kunit[0]) endfunction
Тщетно бытиё! :c
|
|
|
|
abidin | Дата: Четверг, 01 Августа 2013, 23:42:42 | Сообщение # 11 |
7 уровень
Группа: Проверенные
Сообщений: 330
Награды: 0
Репутация: 305
Блокировки:
| NightCatty, не сработало
|
|
|
|
NightCatty | Дата: Четверг, 01 Августа 2013, 23:50:36 | Сообщение # 12 |
6 уровень
Группа: Проверенные
Сообщений: 201
Награды: 0
Репутация: 21
Блокировки:
| abidin, ах господи, как я привык в vjass+ Код function Trig__agi_new_Actions takes nothing returns nothing local unit array kunit[] call CreateNUnitsAtLoc(1, 'H000', Player(0), GetRectCenter(GetPlayableMapRect()), bj_UNIT_FACING) set kunit[0] = GetLastCreatedUnit() call TriggerSleepAction(6.00) call KillUnit(kunit[0]) endfunction не сработает - сделай local unit array kunit без [], я уже ни в чём не уверен
Тщетно бытиё! :c
|
|
|
|
abidin | Дата: Четверг, 01 Августа 2013, 23:52:24 | Сообщение # 13 |
7 уровень
Группа: Проверенные
Сообщений: 330
Награды: 0
Репутация: 305
Блокировки:
| NightCatty, спасибо сработало,вот в чем была вся проблема
|
|
|
|
Kartoha | Дата: Пятница, 02 Августа 2013, 01:01:45 | Сообщение # 14 |
10 уровень
Группа: Ветераны
Сообщений: 2851
Награды: 1
Блокировки:
| abidin, вместо функции CreateNUnitsAtLoc в твоем случае будет рациональнее использовать функцию CreateUnit: Код local unit u = CreateUnit (Player(0), 'H000', GetRectCenterX(GetPlayableMapRect()), GetRectCenterY(GetPlayableMapRect()), 0.) call TriggerSleepAction(6.) call KillUnit (u) set u = null
|
|
|
|
AU | Дата: Пятница, 02 Августа 2013, 22:34:59 | Сообщение # 15 |
7 уровень
Группа: Проверенные
Сообщений: 471
Награды: 0
Репутация: 70
Блокировки:
| а зачем массив в локалках?
|
|
|
|
Kartoha | Дата: Пятница, 02 Августа 2013, 22:43:43 | Сообщение # 16 |
10 уровень
Группа: Ветераны
Сообщений: 2851
Награды: 1
Блокировки:
| Цитата (AU) а зачем массив в локалках? Ты так говоришь, словно целесообразность массива зависит от того, локальная это переменная или глобальная.
|
|
|
|
AU | Дата: Пятница, 02 Августа 2013, 23:12:05 | Сообщение # 17 |
7 уровень
Группа: Проверенные
Сообщений: 471
Награды: 0
Репутация: 70
Блокировки:
| Цитата Ты так говоришь, словно целесообразность массива зависит от того, локальная это переменная или глобальная. <_< ну.. не очень то и зависит, просто не знаю где бы это можно было исползовать
|
|
|
|
NightCatty | Дата: Суббота, 03 Августа 2013, 00:22:52 | Сообщение # 18 |
6 уровень
Группа: Проверенные
Сообщений: 201
Награды: 0
Репутация: 21
Блокировки:
| AU, создание случайного количества юнитов, или например, кол-во юнитов растёт с уровнем, тут ты без массива никуда
Тщетно бытиё! :c
|
|
|
|
AU | Дата: Суббота, 03 Августа 2013, 11:22:30 | Сообщение # 19 |
7 уровень
Группа: Проверенные
Сообщений: 471
Награды: 0
Репутация: 70
Блокировки:
| Цитата AU, создание случайного количества юнитов, или например, кол-во юнитов растёт с уровнем, тут ты без массива никуда создание случайного количества юниттов: local integer i = GetRandomInteger(1, 10) CreateNUnitsAtLoc(i, ...) кол-во юнитов растёт с уровнем: local integer i = udg_Level CreateNUnitsAtLoc(i, ...) никуда, говоришь?
|
|
|
|
NightCatty | Дата: Суббота, 03 Августа 2013, 15:25:59 | Сообщение # 20 |
6 уровень
Группа: Проверенные
Сообщений: 201
Награды: 0
Репутация: 21
Блокировки:
| Цитата (AU) создание случайного количества юниттов: local integer i = GetRandomInteger(1, 10) CreateNUnitsAtLoc(i, ...) кол-во юнитов растёт с уровнем: local integer i = udg_Level CreateNUnitsAtLoc(i, ...) никуда, говоришь? умник, блин почитай про MUI, ты их потом не удалишь если LastCreatedUnit используют несколько триггеров
Тщетно бытиё! :c
|
|
|
|
AU | Дата: Воскресенье, 04 Августа 2013, 09:19:00 | Сообщение # 21 |
7 уровень
Группа: Проверенные
Сообщений: 471
Награды: 0
Репутация: 70
Блокировки:
| Цитата (NightCatty) умник, блин avtorklif почитай про MUI, ты их потом не удалишь если LastCreatedUnit используют несколько триггеров Удалю, очень просто, и когда захочу: создание случайного количества юнитов с удалением "потом": Код integer n = 1 local integer i = GetRandomInteger(1, 10) local group gr = CreateGroup() local unit u loop exitwhen n > i call CreateUnitAtLocSaveLast(..) call GroupAddUnit(gr, GetLastCreatedUnit()) set n = n + 1 endloop Wait(10.0) Отряд - для всех в группе gr: set u = GetEnumUnit() call GroupRemoveUnit(gr, u) call RemoveUnit(u) set u = null call DestroyGroup(gr) set gr = null или просто удаление "потом" Код Событие: боевая еденица умирает Действия: local unit u = GetDyingUnit() wait(10.0) call RemoveUnit(u) set u = null Ты всё ещё уверен, что "тут без массива никуда"?
Сообщение отредактировал AU - Воскресенье, 04 Августа 2013, 12:25:37 |
|
|
|
FEARKILLER | Дата: Воскресенье, 04 Августа 2013, 10:30:34 | Сообщение # 22 |
6 уровень
Группа: Проверенные
Сообщений: 175
Награды: 0
Репутация: 149
Блокировки:
| Цитата (AU) integer n = 1 local integer i = GetRandomInteger(1, 10) local group gr = CreateGroup() local unit u loop exitwhen n > i call CreateUnitAtLocSaveLast(..) call GroupAddUnit(gr, GetLastCreatedUnit()) set n = n + 1 endloop Wait(10.0) Отряд - для всех в группе gr: set u = GetEnumUnit() call GroupRemoveUnit(gr, u) call RemoveUnit() set u = null call DestroyGroup(gr) set gr = null Омг! Что это такое? Особенно красным выделенное. GetEnumUnit() работает только в цикле ForGroup(), для того чтобы взять последнего юнита в группе, юзается FirstOfGroup(g) и такой нативки как GetRandomInteger() не существует, есть только GetRandomInt(). Цитата (AU) Событие: боевая еденица умирает Действия: local unit u = GetDyingUnit() wait(10.0) call RemoveUnit(u) set u = null Если юнит умер, зачем его удалять? Он сам удалиться из игры полностью, после как разложатся кости. И зачем тут вообще локалка? Но если удалять, то проще так тогда уж: RemoveUnit(GetTriggerUnit()). Цитата (AU) Ты всё ещё уверен, что "тут без массива никуда"? А теперь тебе вопрос, зачем тут вообще группа нужна? Чтобы создать произвольное кол-во юнитов можно и этим кусочком кода обойтись: Код local integer i=1 local integer c=GetRandomInt(1,10) loop exitwhen i>c call CreateUnit(p,'nrat',x,y,a) set i=i+1 endloop
Вот тебе пример для чего нужны массивы в локалках: Код local player p=Player(15) local integer i=1 local integer c=GetRandomInt(1,10) local integer array t local real array r set t[0]='nrat' set t[1]='nder' set t[2]='nalb' set t[3]='npng' set t[4]='nenr' set r[0]=GetRectMinX(bj_mapInitialPlayableArea) set r[1]=GetRectMaxX(bj_mapInitialPlayableArea) set r[2]=GetRectMinY(bj_mapInitialPlayableArea) set r[3]=GetRectMaxY(bj_mapInitialPlayableArea) loop exitwhen i>c call CreateUnit(p,t[GetRandomInt(0,4)],GetRandomReal(r[0],r[1]),GetRandomReal(r[2],r[3]),GetRandomReal(.0,360.)) set i=i+1 endloop set p=null
Делаю из воды вино, хожу по воде...
|
|
|
|
AU | Дата: Воскресенье, 04 Августа 2013, 12:24:35 | Сообщение # 23 |
7 уровень
Группа: Проверенные
Сообщений: 471
Награды: 0
Репутация: 70
Блокировки:
| FEARKILLER, Цитата (AU) юзается FirstOfGroup(g) и такой нативки как GetRandomInteger() не существует, есть только GetRandomInt(). А ты в курсе про то, что надо руки оборвать за красный текст я это прекрасно знаю? Нет? Так зачем ты мне обьясняешь? Я тебе не код пишу для вставки в редактор, а псевдокод, для понимания (ясно и пню должно быть, подразумевается, что GetRandomInteger() возращает случайный интегер) Цитата (AU) Омг! Что это такое? Особенно красным выделенное. GetEnumUnit() работает только в цикле ForGroup() Ещё раз повторю, это не код для копипаста! Это смысловой так сказать код, набросок. Да и тут я как раз имею ввиду действие в гуи - "для всех юнитов в группе..." визуально, думал понятно будет, ан нет, нашёлся просвещённый Цитата (FEARKILLER) Если юнит умер, зачем его удалять? Затем, что кое кто сказал: Цитата (NightCatty) ты их потом не удалишь . Цитата (FEARKILLER) И зачем тут вообще локалка? Цитата (FEARKILLER) RemoveUnit(GetTriggerUnit()) Затем, что нужно удалить не сразу, а "потом" Цитата (FEARKILLER) А теперь тебе вопрос, зачем тут вообще группа нужна? Чтобы создать произвольное кол-во юнитов можно и этим кусочком кода обойтись: Код local integer i=1 local integer c=GetRandomInt(1,10) loop exitwhen i>c call CreateUnit(p,'nrat',x,y,a) set i=i+1 endloop А теперь тебе вопрос, зачем тебе вообще глаза даны? Ты бы сначала прочитал посты выше и попытался разобраться хотя бы, зачем я то-то написал.
Сообщение отредактировал AU - Воскресенье, 04 Августа 2013, 12:35:02 |
|
|
|
NightCatty | Дата: Воскресенье, 04 Августа 2013, 12:40:30 | Сообщение # 24 |
6 уровень
Группа: Проверенные
Сообщений: 201
Награды: 0
Репутация: 21
Блокировки:
| AU, группа и есть массив, только в памяти она тяжелее из-за доп функций, глупо так делать Добавлено (04 Августа 2013, 12:40:30) --------------------------------------------- кстати твоё нагромождение cs и действий триггеров убивает читабельность полностью, я даже не могу сообразить как это будет работать
Тщетно бытиё! :c
|
|
|
|
FEARKILLER | Дата: Воскресенье, 04 Августа 2013, 12:49:24 | Сообщение # 25 |
6 уровень
Группа: Проверенные
Сообщений: 175
Награды: 0
Репутация: 149
Блокировки:
| А я в курсе. Цитата (AU) А теперь тебе вопрос, зачем тебе вообще глаза даны? Чтобы видеть ошибки которые ты настрочил целую кучу и ещё пытаешься выехать на том, что это было для наглядности, набросок как ты сказал, действительно "набросок", набросал как попало. И я до сих пор не понял нахрена ты группу то создавал? Или ты так сильно набрасывал, что лишнего накидал малёха? Цитата (AU) Затем, что кое кто сказал Цитата (AU) Затем, что нужно удалить не сразу, а "потом" Кол-во хп с отрицательным регеном в РО и нехрена мудрить тут. Или задать триггерно время жизни юниту сразу. Цитата (AU) Ты бы сначала прочитал посты выше и попытался разобраться хотя бы, зачем я то-то написал. То что ты написал выше, я читал и уже на него выложил ответ.
Делаю из воды вино, хожу по воде...
|
|
|
|
|
|
|
|
|
|
|