XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
X-monster

offline
Опыт: 15,699
Активность:
Использование локальных переменных
Я создал локальную переменную, но хочу использовать с ней условие. Как мне перенести её в другую фунцию?
Старый 14.04.2004, 08:17
remal
нечто
offline
Опыт: 2,087
Активность:
ч/з параметры
Старый 25.07.2004, 21:17
X-monster

offline
Опыт: 15,699
Активность:
А поподробнее?
Старый 25.07.2004, 22:23
Sergey
Старейший
offline
Опыт: 44,363
Активность:
В функции всегда есть такие строки takes, return
Можешь например написать takes integer i
а при вызове функции писать
call <имя функции> (<параметр integer>)
параметр будет передан в функцию в локальную переменную i. Передавать параметров можно сколько угодно.
Старый 26.07.2004, 12:26
X-monster

offline
Опыт: 15,699
Активность:
ну это я знаю, а как чтобы из любой в любую функцию?
Старый 26.07.2004, 13:08
Sergey
Старейший
offline
Опыт: 44,363
Активность:
Ну а почему бы не сделать это через глобальную переменную? Пока нужно - используешь локальную, а переброску осуществляешь через глобальную.
Старый 26.07.2004, 15:04
X-monster

offline
Опыт: 15,699
Активность:
Какой же тогда смысл в локальной, тогда лучше глобальную всё время использовать
Старый 26.07.2004, 16:46
remal
нечто
offline
Опыт: 2,087
Активность:
1)легче переносить
2)локальные переменные создаются динамически
Старый 27.07.2004, 16:44
X-monster

offline
Опыт: 15,699
Активность:
1)в этом то и вопрос - мне не надо легче, мне надо не используя глобалов
2)глобальная по-любому останется
Старый 27.07.2004, 17:16
Sergey
Старейший
offline
Опыт: 44,363
Активность:
Для перенесения данных из функции в функцию хватит и одной глобальной переменной. А благодаря локальным ты сможешь не создаввть еще 10 глобальных. К тому же у локальные переменные позволяют делать отсроченные действия, которые гораздо сложнее реализовать глобальными переменными.
Старый 27.07.2004, 21:17
Drakvius
Mozg.dll - не активен
offline
Опыт: 11,146
Активность:
??????????
(1)-returns возвращает значение но как правильно ее использовать в функциях?
(2)-handle что это и где их использовать?
(3)-я немного знаю как состовлять функции и писать на нмх скрипты и всеже с чего мне начать изучение jassa и если нетрудно напиши пару примеров.
(4)-что такое функции константы.

Отредактировано Drakvius, 06.01.2005 в 06:53.
Старый 06.01.2005, 06:45
Markiz

offline
Опыт: 11,432
Активность:
  1. return x
  2. handle - варовский тип, который обычно не трогают, только в return bug
  3. эээ. статьи надо умные читать =) посмотри на wc3.ru
  4. функции которые имеют вроде как постоянное значение. хз на самом деле
Старый 06.01.2005, 10:52
THeBloodiest

offline
Опыт: 20,881
Активность:
Что такое return bug?
Старый 06.01.2005, 13:19
zibada

offline
Опыт: отключен
вкратце - бага, позволяющая осуществить любое преобразование типов, которое синтаксис джасса в принципе не позволяет.
в итоге в переменную любого типа (например, integer) можно записать все, что угодно - например, указатель на какого-то юнита (тип unit)
иногда бывает удобно + используется с game cache, т.к. изначально туда можно записать только переменные 4-х типов (boolean, string, integer, real), с этим же багом можно записать что угодно.
Старый 06.01.2005, 13:41
THeBloodiest

offline
Опыт: 20,881
Активность:
Тоесть вполне реально сделать функцию перевода переменной любого типа в любой? Круто!
Еще вопрос: Какой тип используется для хранения пути к сохраненной игре (функции Save game итд)?
Есть ли ограничение на расширение сохраняемой игры?
Старый 06.01.2005, 13:53
zibada

offline
Опыт: отключен
Цитата:
Тоесть вполне реально сделать функцию перевода переменной любого типа в любой?

Код:
function U2I takes unit u returns integer
return u
return 0
endfunction

вот тебе и вся функция... на входе - указатель на юнита, на выходе - тот же указатель, приведенный к типу integer.
(2-й return нужен как раз для того, чтобы обойти проверку редактора на соотвествие типов)
для каждой пары типов, таким образом, необходимо создавать отдельную функцию.

Цитата:
Еще вопрос: Какой тип используется для хранения пути к сохраненной игре (функции Save game итд)?

Код:
native          SaveGame            takes string saveFileName returns nothing

string обыкновенный...
насчет ограничений не знаю - поэкспериментируй =)
Старый 06.01.2005, 14:03
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
tysch_tysch
Работаем
offline
Опыт: отключен
Кроме wc3 сейчас нет, на сайте на самом смотрел?
jass.sourceforge.net - на инглише, лучший имхо
Старый 06.01.2005, 17:36
User

offline
Опыт: 79
Активность:
Zlaya1000: В самом деле?
Старый 06.01.2005, 19:09
tysch_tysch
Работаем
offline
Опыт: отключен
User
Цитата:
Access denied for user: 'root@localhost' (Using password: NO)"

думаю да, на данный момент нет

ZlaYa1000 добавил:
User прочитай приватку
Старый 06.01.2005, 19:39
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 20:52.