![]()
X-monster
![]() ![]() offline
Опыт:
15,299Активность: |
Использование локальных переменных
Я создал локальную переменную, но хочу использовать с ней условие. Как мне перенести её в другую фунцию? |
![]() |
#1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
remal
нечто
![]() offline
Опыт:
2,087Активность: |
ч/з параметры |
![]() |
#2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
X-monster
![]() ![]() offline
Опыт:
15,299Активность: |
А поподробнее? |
![]() |
#3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Sergey
Старейший
![]() ![]() offline
Опыт:
28,363Активность: |
В функции всегда есть такие строки takes, return
Можешь например написать takes integer i
а при вызове функции писать call <имя функции> (<параметр integer>) параметр будет передан в функцию в локальную переменную i. Передавать параметров можно сколько угодно. |
![]() |
#4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
X-monster
![]() ![]() offline
Опыт:
15,299Активность: |
ну это я знаю, а как чтобы из любой в любую функцию? |
![]() |
#5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Sergey
Старейший
![]() ![]() offline
Опыт:
28,363Активность: |
Ну а почему бы не сделать это через глобальную переменную? Пока нужно - используешь локальную, а переброску осуществляешь через глобальную. |
![]() |
#6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
X-monster
![]() ![]() offline
Опыт:
15,299Активность: |
Какой же тогда смысл в локальной, тогда лучше глобальную всё время использовать |
![]() |
#7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
remal
нечто
![]() offline
Опыт:
2,087Активность: |
1)легче переносить 2)локальные переменные создаются динамически |
![]() |
#8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
X-monster
![]() ![]() offline
Опыт:
15,299Активность: |
1)в этом то и вопрос - мне не надо легче, мне надо не используя глобалов 2)глобальная по-любому останется |
![]() |
#9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Sergey
Старейший
![]() ![]() offline
Опыт:
28,363Активность: |
Для перенесения данных из функции в функцию хватит и одной глобальной переменной. А благодаря локальным ты сможешь не создаввть еще 10 глобальных. К тому же у локальные переменные позволяют делать отсроченные действия, которые гораздо сложнее реализовать глобальными переменными. |
![]() |
#10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Drakvius
Mozg.dll - не активен
![]() ![]() offline
Опыт:
11,146Активность: |
??????????
(1)-returns возвращает значение но как правильно ее использовать в функциях? (2)-handle что это и где их использовать? (3)-я немного знаю как состовлять функции и писать на нмх скрипты и всеже с чего мне начать изучение jassa и если нетрудно напиши пару примеров. (4)-что такое функции константы. Отредактировано Drakvius, 06.01.2005 в 06:53. |
![]() |
#11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Markiz
![]() offline
Опыт:
10,992Активность: |
|
![]() |
#12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
THeBloodiest
![]() ![]() offline
Опыт:
19,981Активность: |
Что такое return bug? |
![]() |
#13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
zibada
![]() offline
Опыт: отключен
|
вкратце - бага, позволяющая осуществить любое преобразование типов, которое синтаксис джасса в принципе не позволяет.
в итоге в переменную любого типа (например, integer) можно записать все, что угодно - например, указатель на какого-то юнита (тип unit) иногда бывает удобно + используется с game cache, т.к. изначально туда можно записать только переменные 4-х типов (boolean, string, integer, real), с этим же багом можно записать что угодно. |
![]() |
#14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
THeBloodiest
![]() ![]() offline
Опыт:
19,981Активность: |
Тоесть вполне реально сделать функцию перевода переменной любого типа в любой? Круто!
Еще вопрос: Какой тип используется для хранения пути к сохраненной игре (функции Save game итд)? Есть ли ограничение на расширение сохраняемой игры? |
![]() |
#15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
zibada
![]() offline
Опыт: отключен
|
Цитата:
Код:
вот тебе и вся функция... на входе - указатель на юнита, на выходе - тот же указатель, приведенный к типу integer. (2-й return нужен как раз для того, чтобы обойти проверку редактора на соотвествие типов) для каждой пары типов, таким образом, необходимо создавать отдельную функцию. Цитата:
Код:
string обыкновенный... насчет ограничений не знаю - поэкспериментируй =) |
||
![]() |
#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 |
![]() |
#17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
tysch_tysch
Делаем вид
![]() ![]() offline
Опыт: отключен
|
Кроме wc3 сейчас нет, на сайте на самом смотрел? jass.sourceforge.net - на инглише, лучший имхо |
![]() |
#18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
User
![]() offline
Опыт:
79Активность: |
Zlaya1000: В самом деле? |
![]() |
#19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
tysch_tysch
Делаем вид
![]() ![]() offline
Опыт: отключен
|
User
Цитата:
думаю да, на данный момент нет ZlaYa1000 добавил: User прочитай приватку |
|
![]() |
#20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|