Forsaken
has left the game
offline
Опыт:
3,404Активность: |
что такое массивы и как их использовать
Всем привет. Появился некий вопрос. Я создал триггер, при котором в начале карты для игрока будет создаваться юнит на базе, если игрок играет. Записал юнита в локалку. Теперь создал такой триггер, который должен вместо ловкости писать текущую скорость именно этого юнита, но когда я обращаюсь к этой переменной ничего не робит. Глобалки не предлагать, ибо очень многое придется переписывать. Способы ГУИ или Jass, без разницы. Просто подробно. Спасибо. [+] замечание от DioD: название темы не отражает сути вопроса
|
20.01.2011, 10:03 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ShamaN26
offline
Опыт:
9,546Активность: |
Forsaken, блин, ты не в курсе что локалки живут только в области своей функции а потом умирают оО |
20.01.2011, 10:16 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Forsaken
has left the game
offline
Опыт:
3,404Активность: |
ShamaN26, окей. И что? Только глобалками? |
20.01.2011, 10:19 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ShamaN26
offline
Опыт:
9,546Активность: |
Forsaken, еще ХЭШ есть, но я не знаю как его юзать))) а чем тебе глобалки не угодили? |
20.01.2011, 10:23 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Forsaken
has left the game
offline
Опыт:
3,404Активность: |
ShamaN26, много переписывать придется =( |
20.01.2011, 10:25 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ShamaN26
offline
Опыт:
9,546Активность: |
Forsaken, оО например что? надо создать глобалку, а в твоём коде просто добавить приставку udg_(имя глобалки) |
20.01.2011, 10:26 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Forsaken
has left the game
offline
Опыт:
3,404Активность: |
ShamaN26, знаю.
Forsaken добавил: Ладно, а одним триггером можно сделать для 4-х игроков? (героев) |
20.01.2011, 10:31 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ShamaN26
offline
Опыт:
9,546Активность: |
Forsaken, Что сделать? одним тригером занести в массив? оО |
20.01.2011, 10:37 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Klop
Папа римский
offline
Опыт:
13,006Активность: |
ну а затем
|
20.01.2011, 10:52 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Dreii
define{name=Dreii age=17}
offline
Опыт:
5,246Активность: |
Цитата:
Код:
насчет глобалок,можно и не писать приставку udg_ Достаточно иметь JNGP,и в самом начале кода(сверху) дописать Код:
Где hashtable- тип переменной ,Hash-имя ,constant-если переменная создается 1 раз за игру |
|
20.01.2011, 13:15 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hanabishi
COOL STATUS
offline
Опыт: отключен
|
необязательно сверху, блок глобалс можно пихать в любое место (вне функций) |
20.01.2011, 14:15 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Dreii
define{name=Dreii age=17}
offline
Опыт:
5,246Активность: |
Hanabishi, ну я навсякий сферху,чтоб легко редактирвоать^_^
|
20.01.2011, 14:19 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Forsaken
has left the game
offline
Опыт:
3,404Активность: |
Так, с этим разобрался.
Но вот еще код:
((код jass
function Speed_Actions takes nothing returns nothing
local integer I = 0 local real R loop exitwhen I > 8 set R = GetUnitMoveSpeed(udg_P[I]) call ModifyHeroStat(bj_HEROSTAT_AGI, udg_P[I], bj_MODIFYMETHOD_SET, R2I(R)) set I = I + 1 endloop endfunction ===========================================================================
function InitTrig_Speed takes nothing returns nothing set gg_trg_Speed = CreateTrigger() call TriggerRegisterTimerEventPeriodic(gg_trg_Speed, 0.01) call TriggerAddAction(gg_trg_Speed, function Speed_Actions) endfunction )) Почему то работает только для одного юнита, для юнита красного игрока.
В чем косяк?
И не надо поливать меня грязью, как это делают некоторые. Просто я только учусь. Отредактировано Forsaken, 21.01.2011 в 15:18. |
21.01.2011, 14:49 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hanabishi
COOL STATUS
offline
Опыт: отключен
|
|
21.01.2011, 14:51 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Forsaken
has left the game
offline
Опыт:
3,404Активность: |
Hanabishi, сорри. Я не полностью выявил свою мысль. То, что я сделал работает. Но при покупке ботинка, информация обновляется только у героя красного игрока, а у остальных нет. |
21.01.2011, 14:53 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Hanabishi
COOL STATUS
offline
Опыт: отключен
|
я исправил читай внимательнее |
21.01.2011, 14:57 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Forsaken
has left the game
offline
Опыт:
3,404Активность: |
Hanabishi, я сначала так и делал, просто скопировал старый код. Все равно не робит. |
21.01.2011, 15:02 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ShamaN26
offline
Опыт:
9,546Активность: |
Forsaken, Вопрос с массивом исчерпан? или нет? |
21.01.2011, 15:03 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Forsaken
has left the game
offline
Опыт:
3,404Активность: |
ShamaN26, да =) Щас вот над этим малек мужусь.
Forsaken добавил:
В общем буду рад любой помощи. Forsaken добавил:
Все, работает. Надо было карту перезапустить =\ Всем спасибо за отзывы. Тему клос
Forsaken добавил:
Хотя нет, постойте. Не удобно просить, но вот еще мелкая загвоздка. Мне надо, чтобы при смерти крипа к киллеру добавлялось +1 к силе. Вот код:
((код jass
function Creeps_Conditions takes nothing returns boolean
if(not(IsUnitType(GetDyingUnit(), UNIT_TYPE_HERO) == false))then return false endif return true endfunction ===========================================================================
function Creeps_Actions takes nothing returns nothing local integer I = 0 local unit array P local real R set P[I] = GetKillingUnitBJ() loop exitwhen I > 8 set R = I2R(GetHeroStatBJ(bj_HEROSTAT_STR, P[I], false)) call ModifyHeroStat(bj_HEROSTAT_STR, P[I], bj_MODIFYMETHOD_SET, (R2I(R) + 1)) set I = I + 1 endloop set P[I] = null endfunction ===========================================================================
function InitTrig_Creeps takes nothing returns nothing set gg_trg_Creeps = CreateTrigger() call TriggerRegisterAnyUnitEventBJ(gg_trg_Creeps, EVENT_PLAYER_UNIT_DEATH) call TriggerAddCondition(gg_trg_Creeps, Condition(function Creeps_Conditions)) call TriggerAddAction(gg_trg_Creeps, function Creeps_Actions) endfunction ===========================================================================
)) Forsaken добавил: работает только на синего игрока. |
21.01.2011, 16:43 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
reALien
offline
Опыт:
29,211Активность: |
Вариант на в/с джасс подойдет? |
21.01.2011, 17:06 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|