pAxsIs
offline
Опыт:
2,389Активность: |
Локальная переменная
Можно ли как нибудь использовать локальную переменную, включенную через cs, в триггерах не используя cs. Т.е. Допустим я объявил локалку и хочу использовать в формулах триггеров например дамаг. |
27.09.2012, 21:24 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Nerevar
I'll be back!
offline
Опыт:
18,352Активность: |
приравнивать значение локалки к глобалке и юзать уже глобалку в формулах |
27.09.2012, 21:27 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
влад10011
offline
Опыт:
2,337Активность: |
никак(в ГУЙ не предусмотрены локальные переменные)
а в формулах: Делаешь глобальную(любую где ты будешь делать свою формулу) и через cs пишешь например: udg_Formula=150+(5*GetUnitLvl(u)) (тут можно было поставить вместо u локального юнита и потом обнулить, чтобы ссылка на него не потерялась, например local unit u=GetSpellAbilityUnit()) udg_ приставка к глобальным переменным сделанных в ГУЙ(в редакторе переменных) Отредактировано влад10011, 27.09.2012 в 21:35. |
27.09.2012, 21:29 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
pAxsIs
offline
Опыт:
2,389Активность: |
Азы то я знаю) просто если локальную приравнивать к глобальной разве не может быть такого что при не однократном использовании триггера локальная успеет присвоить 2 разных значения к глобальной и в результате ничего не получиться... |
27.09.2012, 21:36 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Doc
offline
Опыт:
63,163Активность: |
В UMWSE можно. Без него нет. |
27.09.2012, 21:37 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
влад10011
offline
Опыт:
2,337Активность: |
Цитата:
Локальная переменная не может перезаписываться(только в пределах функции, а в случае гуй- триггере(исключение выбор юнитов) ) после выхода из функции(она уже не нужна) перезаписывается. при каждом вызове триггера создаётся новая локальная переменная вот на статью Сергея и Адольфа там всё понятно описано http://xgm.guru/p/wc3/jass_introduction http://xgm.guru/p/wc3/ex_jass |
|
27.09.2012, 21:43 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
pAxsIs
offline
Опыт:
2,389Активность: |
Еще сюда же вопрос... Даже если делать все на jass, то локальная переменная как я понимаю действует в 1 триггере, но если мы его используем снова, то там новая локальная переменная не связанная с прошлой, а мне нужно, чтобы когда я юзал скил то противник получал эффект. Если на нем его небыло то он получает такой-то урон, если есть то ему сносить урон в 2 раза больше и в локальную переменную добавляется +1, она была равна 0. И так с каждым разом в дамаг больше, то есть формула такова. Количество_ударов*урон_способности_за_удар + (Количество_ударов*урон_способности_за_удар*0.2 в течении 5 сек)...
pAxsIs добавил:
Так я говорю что не она перезапишется а глобальная которая получит значение от двух локальных, почитай внимательнее то что. Я написал. |
27.09.2012, 21:52 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
влад10011
offline
Опыт:
2,337Активность: |
для этого есть глобальная переменная чтобы сохранять значения...
локальные переменные нужны для мгновенных действий и оптимизации влад10011 добавил: Цитата:
локальная никак не может присвоить 2 значения сама по себе если ты этого не сделал сам(в этом случае она перезакрепиться и как я уже сказал только в пределах 1 функции) |
|
27.09.2012, 21:56 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
pAxsIs
offline
Опыт:
2,389Активность: |
Если можно то скиньте пример той формулы которую я написал... Тогда станет гораздо понятней P.s. Формула идет к огненным стрелам чтобы складывать дамаг от них... |
27.09.2012, 21:58 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
влад10011
offline
Опыт:
2,337Активность: |
короче у меня бошка не варит сейчас прочитай те статьи которые я тебе дал, там всё написано
если никто не даст пример завтра сделаю тебе |
27.09.2012, 21:58 | #10
+0/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
pAxsIs
offline
Опыт:
2,389Активность: |
Я уже писал выше что я азы знаю, т. е. Читал эти статьи. |
27.09.2012, 21:59 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
Нет, она существует только в одной функции. И при этом, при каждом новом вызове функции будет созданы новые переменные. |
27.09.2012, 23:10 | #12
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
asesmo
Я I Jag Ich Jeg Ja Minä!
offline
Опыт:
8,073Активность: |
pAxsIs:
((код jass
local real dmg = 50+50*I2R(GetUnitAbilityLevel(caster,'A00A')) задаёшь урон нужный в кс
set udg_dmg = dmg в кс же приравниваешь локалку к глобалке call DamageTarget(caster,target,udg_dmg,true,false,null,null,null) ну в гуи наносишь урон от глобалки set udg_dmg = .0 обнулили глобальную )) Вроде этот вариант в 95% случаев муи. А если без глобалок, то на все 100. |
28.09.2012, 13:15 | #13
+0/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
Если коротко - обнулять int, real, bool и string не нужно. MUI тут вообще не причем. |
28.09.2012, 14:07 | #14
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Faion
Noblesse Oblige
offline
Опыт:
30,395Активность: |
pAxsIs:
Используйте глобалки, один фиг скорость работы одинаковая, более того, хотя бы хендлы сеить не будете |
28.09.2012, 14:45 | #15
+1/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
asesmo
Я I Jag Ich Jeg Ja Minä!
offline
Опыт:
8,073Активность: |
ADOLF:
а ну хотя да можно и не обнулять |
28.09.2012, 15:10 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
влад10011
offline
Опыт:
2,337Активность: |
Цитата:
а короче всё что не имеет тип хэндел |
|
28.09.2012, 16:11 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
asesmo
Я I Jag Ich Jeg Ja Minä!
offline
Опыт:
8,073Активность: |
ADOLF:
ну я вообще в коде не обнуляю, но вдруг у автора ещё глобалка где-то юзается одна и та же, тогда стоит обнулить скорее всего |
28.09.2012, 18:14 | #18
+0/−2
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
quq_CCCP
Я белый и пушистый!
offline
Опыт:
94,185Активность: |
asesmo, ну это как написан код, может быть такой баг, но перед использованием переменную так то можно проверить if then else... или просто всегда приравнивать новому рельно существующему объекту.... (если это переменная ссылочного типа)
|
28.09.2012, 18:38 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
Я скажу по секрету, бета сЖасса, та, что на гуглокоде вообще творит чистую магию: обнуляет сама все, что нужно. |
28.09.2012, 23:08 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|