X-monster
offline
Опыт:
15,699Активность: |
Использование локальных переменных
Я создал локальную переменную, но хочу использовать с ней условие. Как мне перенести её в другую фунцию? |
14.04.2004, 08:17 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
remal
нечто
offline
Опыт:
2,087Активность: |
ч/з параметры |
25.07.2004, 21:17 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
X-monster
offline
Опыт:
15,699Активность: |
А поподробнее? |
25.07.2004, 22:23 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Sergey
Старейший
offline
Опыт:
43,563Активность: |
В функции всегда есть такие строки takes, return
Можешь например написать takes integer i
а при вызове функции писать call <имя функции> (<параметр integer>) параметр будет передан в функцию в локальную переменную i. Передавать параметров можно сколько угодно. |
26.07.2004, 12:26 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
X-monster
offline
Опыт:
15,699Активность: |
ну это я знаю, а как чтобы из любой в любую функцию? |
26.07.2004, 13:08 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Sergey
Старейший
offline
Опыт:
43,563Активность: |
Ну а почему бы не сделать это через глобальную переменную? Пока нужно - используешь локальную, а переброску осуществляешь через глобальную. |
26.07.2004, 15:04 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
X-monster
offline
Опыт:
15,699Активность: |
Какой же тогда смысл в локальной, тогда лучше глобальную всё время использовать |
26.07.2004, 16:46 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
remal
нечто
offline
Опыт:
2,087Активность: |
1)легче переносить 2)локальные переменные создаются динамически |
27.07.2004, 16:44 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
X-monster
offline
Опыт:
15,699Активность: |
1)в этом то и вопрос - мне не надо легче, мне надо не используя глобалов 2)глобальная по-любому останется |
27.07.2004, 17:16 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Sergey
Старейший
offline
Опыт:
43,563Активность: |
Для перенесения данных из функции в функцию хватит и одной глобальной переменной. А благодаря локальным ты сможешь не создаввть еще 10 глобальных. К тому же у локальные переменные позволяют делать отсроченные действия, которые гораздо сложнее реализовать глобальными переменными. |
27.07.2004, 21:17 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Drakvius
Mozg.dll - не активен
offline
Опыт:
11,146Активность: |
??????????
(1)-returns возвращает значение но как правильно ее использовать в функциях? (2)-handle что это и где их использовать? (3)-я немного знаю как состовлять функции и писать на нмх скрипты и всеже с чего мне начать изучение jassa и если нетрудно напиши пару примеров. (4)-что такое функции константы. Отредактировано Drakvius, 06.01.2005 в 06:53. |
06.01.2005, 06:45 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Markiz
offline
Опыт:
11,392Активность: |
|
06.01.2005, 10:52 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
THeBloodiest
offline
Опыт:
20,881Активность: |
Что такое return bug? |
06.01.2005, 13:19 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
zibada
offline
Опыт: отключен
|
вкратце - бага, позволяющая осуществить любое преобразование типов, которое синтаксис джасса в принципе не позволяет.
в итоге в переменную любого типа (например, integer) можно записать все, что угодно - например, указатель на какого-то юнита (тип unit) иногда бывает удобно + используется с game cache, т.к. изначально туда можно записать только переменные 4-х типов (boolean, string, integer, real), с этим же багом можно записать что угодно. |
06.01.2005, 13:41 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
THeBloodiest
offline
Опыт:
20,881Активность: |
Тоесть вполне реально сделать функцию перевода переменной любого типа в любой? Круто!
Еще вопрос: Какой тип используется для хранения пути к сохраненной игре (функции Save game итд)? Есть ли ограничение на расширение сохраняемой игры? |
06.01.2005, 13:53 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
zibada
offline
Опыт: отключен
|
Цитата:
Код:
вот тебе и вся функция... на входе - указатель на юнита, на выходе - тот же указатель, приведенный к типу integer. (2-й return нужен как раз для того, чтобы обойти проверку редактора на соотвествие типов) для каждой пары типов, таким образом, необходимо создавать отдельную функцию. Цитата:
Код:
string обыкновенный... насчет ограничений не знаю - поэкспериментируй =) |
||
06.01.2005, 14:03 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Drakvius
Mozg.dll - не активен
offline
Опыт:
11,146Активность: |
ВОПРОС!!!
Где найти статьи для изучения jass???????КРОМЕ WC3.RU
Drakvius добавил: № кто нибудь что в это скрипте неправильно юнит вылетает из точки как и должен а потом летит совсем не туда почему??? Script: function AddUnitId takes player owner,integer unitId,real x,real y,real fac returns unit set udg_caster=CreateUnit(owner,unitId,x,y,fac) call UnitAddAbility(udg_caster,'Aloc') call UnitAddAbility(udg_caster,'Avul') return udg_caster endfunction function AddMoveFunc takes unit m,unit target returns nothing loop exitwhen DistanceBetweenPoints(GetUnitLoc(m),GetUnitLoc(target))<60 call IssueTargetOrder(m,"move",target) call TriggerSleepAction(0) endloop endfunction function UnitSetMoveSetting takes unit m,unit target returns nothing call AddMoveFunc(m,target) endfunction function LaunchUnitAsProjectile_set takes nothing returns nothing local unit m=udg_caster local effect f=bj_lastCreatedEffect local unit target=udg_target call AddMoveFunc(m,target) call ExplodeUnitBJ(m) call DestroyEffect(f) set m=null set f=null endfunction function MoveUnitToUnit takes player owner,integer unitId,real x,real y,real fac,unit target,real speed,real fly,string modelname returns unit local unit m=AddUnitId(owner,unitId,0,0,0) local effect f=null call SetUnitMoveSpeed(m,speed) call SetUnitFlyHeight(m,fly,0) call SetUnitPosition(m,x,y) set bj_lastCreatedEffect=AddSpecialEffectTarget(modelname,m,"origin") call ExecuteFunc("LaunchUnitAsProjectile_set") set m=null return m endfunction function LaunchMissileToTarget takes player owner,integer unitId,real x,real y,real fac,unit target,real speed,real fly,string modelname returns nothing call MoveUnitToUnit(owner,unitId,x,y,fac,target,speed,fly,modelname) endfunction |
06.01.2005, 17:05 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
tysch_tysch
Работаем
offline
Опыт: отключен
|
Кроме wc3 сейчас нет, на сайте на самом смотрел? jass.sourceforge.net - на инглише, лучший имхо |
06.01.2005, 17:36 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
User
offline
Опыт:
79Активность: |
Zlaya1000: В самом деле? |
06.01.2005, 19:09 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
tysch_tysch
Работаем
offline
Опыт: отключен
|
User
Цитата:
думаю да, на данный момент нет ZlaYa1000 добавил: User прочитай приватку |
|
06.01.2005, 19:39 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|