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

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

Ответ
 
Nero_gamer

offline
Опыт: 2,537
Активность:
Описание функций
Вопрос: не знаете ли вы где находится(если такая ваще есть) статья, где бы обьяснялось, что делает каждая функция(т.к. у меня список их есть, но я не могу понять что они делают
(например, если честно то я не понимаю 89 % функций, AddUnitToAllStock, HaveStoredBoolean и т.д.)
Старый 02.07.2009, 12:07
alexkill

offline
Опыт: 18,872
Активность:
http://xgm.guru/forum/showthread.php?t=23984
раздел "Функции"

http://xgm.guru/forum/showthread.php?t=15595 - описание некоторых функций

Отредактировано alexkill, 02.07.2009 в 12:23.
Старый 02.07.2009, 12:10
Nero_gamer

offline
Опыт: 2,537
Активность:
что делает функии:
AddUnitToAllStock, HaveStoredBoolean , а короче просто обяснение всех функциий из common.j
Старый 02.07.2009, 12:14
ELDAR
НИИ 4А-ВО кафедра SPELLS
offline
Опыт: 8,394
Активность:
помоему проще всего узнать что делает та или иная функция - это вызвать её
Старый 02.07.2009, 12:22
agentex

offline
Опыт: 34,834
Активность:
Цитата:
AddUnitToAllStock

добавляет тип юнита во все шопы
Цитата:
HaveStoredBoolean

это из апи кеша, возвращает записана ли буля по какому то адресу в кеше
Старый 02.07.2009, 12:23
Nero_gamer

offline
Опыт: 2,537
Активность:
agentex спс (ну ладно, я понял такой статьи нет=(, тогда так буду задавать вопросы.)
1)мне надо функцию, которая бы проверяла нет ли в радиусе вражеского юнита в радиусе 50 каждую сек на протяжении 10 сек.
2)есть ли команда в цикле , чтобы сразу заверщить его, а не exitwhen
3)проверять не здохнет ли боевая единица от повреждений(переодических)
4)уменьшить радиус преследования(т.е чтобы при приказе следовать за.., юнит подходил в плотную к цели приказу)

ELDAR некоторые функции нельзя увидеть..
Код:
function My takes nothing returns boolean
    if ( not ( GetSpellAbilityId() == 'AUan' ) ) then
        return false
    endif
    return true
endfunction


как потом в следующей функции узнать тру или нетру было присвоено в верхней функции?
Старый 02.07.2009, 12:38
agentex

offline
Опыт: 34,834
Активность:
1) такой нету, надо писать самому
2) чтобы завершить конкретно цикл нету, но можно юзать return если после цикла нету действий
3) не совсем понял
4) изменить игровые константы

agentex добавил:
Цитата:
как потом в следующей функции узнать тру или нетру было присвоено в верхней функции?

Код:
function PostFunc takes nothing returns nothing
//...
if My() then
//...
else
//...
endif
//...
endfunction
Старый 02.07.2009, 12:40
Nero_gamer

offline
Опыт: 2,537
Активность:
чем отличаются таймеры(общий, ядовитое жало, гальванизация..и т.д.)

Nero_gamer добавил:
3) ну у меня спелл если от переодических повреждений юнит умирает, то этот спелл передается(я думаю через думи=))случайному юниту в раде 300(если таковой есть)
Старый 02.07.2009, 12:45
ELDAR
НИИ 4А-ВО кафедра SPELLS
offline
Опыт: 8,394
Активность:
Цитата:
2)есть ли команда в цикле , чтобы сразу заверщить его, а не exitwhen

exitwhen true == true, должно сработать
Старый 02.07.2009, 13:15
J
expert
offline
Опыт: 48,447
Активность:
exitwhen true, должно сработать
Старый 02.07.2009, 13:35
ToChilo
■□□□□
offline
Опыт: 356
Активность:
1. для выделение юнитов тебе понадобятца group api функции GroupEnumUnits... например
Код:
GroupEnumUnitsInRange takes group whichGroup, real x, real y, real radius, boolexpr filter returns nothing

2. такой оператор не нужен можно задать условие посложней ( завершиться при i == 4 )
Код:
local boolean flag = false
local integer i = 0

loop
    if i == 4 then
    set flag = true
endif
    exitwhen i > 5 or flag
    set i = i + 1
endloop

3. проверить жив ли юнит можно проверив его количество хп ( если 0 мёртв )
Код:
GetUnitState( whichUnit, UNIT_STATE_LIFE ) == 0

либо отследив событие смерти юнита и вырубить нужные тригеры
Код:
TriggerRegisterPlayerUnitEvent( whichTrigger, Player(index), EVENT_PLAYER_UNIT_DEATH, null )
Старый 02.07.2009, 14:12
agentex

offline
Опыт: 34,834
Активность:
Цитата:
GetUnitState( whichUnit, UNIT_STATE_LIFE ) == 0

фэлс, юнит становится мертвым при хп <= 0.405
Старый 02.07.2009, 14:22
J
expert
offline
Опыт: 48,447
Активность:
agentex
Цитата:
3. проверить жив ли юнит можно проверив его количество хп ( если 0 мёртв )
Код:
GetUnitState( whichUnit, UNIT_STATE_LIFE ) == 0
true
Старый 02.07.2009, 14:24
agentex

offline
Опыт: 34,834
Активность:
проверил, рли тру.. но зачем тогда пишут GetWidgetLife<=.405 ??
Старый 02.07.2009, 14:37
J
expert
offline
Опыт: 48,447
Активность:
agentex первый раз я видел что так писал адольф, когдато была тема про то как писать, я всем все популярно обьеснил что у юнита не может быть жизней между 0 и .405, и потому проверять можно сразу на 0, но бувают упертые люди
Старый 02.07.2009, 15:41
agentex

offline
Опыт: 34,834
Активность:
J пнятно. Но возможно в каких то особо частных случаях все таки это имеет значение.. кто знает
Старый 02.07.2009, 16:09
J
expert
offline
Опыт: 48,447
Активность:
не имеет, единственый случай когда у юнита может быть жизни между 0 и 0,405 это когда после смерти ему устанавливаеш такое количество жизней, он будет мертв, но жиней может быть например 0,2, но эти неимеет значения потомчто таким же способом ему можно и 500 жизней поставить
Старый 02.07.2009, 16:43
Ответ

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

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

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

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



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