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

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

Ответ
 
df Hunter
Нападатель
offline
Опыт: 5,749
Активность:
common.j вопросник
Здесь вы можете спросить, что делает та или иная native-функция.
Все native функции вы можете найти в common.j и часть в common.ai

Правила оформления


Код функции с тегом code + дополнительные вопросы.
Вопросы о БЖ-функциях задавать здесь запрещено!!!

Ответы


После ответа native-функция будет вынесена в 1ый пост с комментарием.
Предвидя то, что не все знают, где взять этот самый common.j, выкладываю его в аттаче.

native-функции


» native GetLocalPlayer takes nothing returns player
Данная функция возвращает игрока, на компьютере которого выполняется данная карта. В мультиплеере каждому из игроков вернет его самого. Используется для выполнения локальных действий для каждого игрока отдельно. При невнимательном использовании является причиной десинков и сплитов. Пример функции:
Код:
function DoSmthForLocalPlayer takes nothing returns nothing
 local player p = GetLocalPlayer()

 //делаешь че те там надо с ним, например
  call DisplayTimedTextToPlayer(p,0,0,60,GetPlayerName(p)) //выдаст каждому игроку его имя

endfunction

» native UnitDamagePoint(...)
Код:
... takes unit whichUnit, real delay, real radius, real x, real y, real amount, boolean attack, boolean ranged, attacktype attackType, damagetype damageType, weapontype weaponType returns boolean
Параметр attack (boolean) отвечает за то, будет ли считаться нанесение урона атакой. Если true, то при нанесении урона юниту, имеющему бафф "Ледяная броня", атакующий юнит замедлится из-за полученного эффекта.
Параметр ranged (boolean) отвечает за то, был ли урон нанесен с какого-либо расстояния или же в ближнем бою.

» native AddIndicator(...)
Код:
... takes widget whichWidget, integer red, integer green, integer blue, integer alpha returns nothing
Функция создает обводку указанного цвета вокруг игрового объекта (юнита, дестра, предмета). Обводка мигает дважды.
red, green, blue отвечают соответственно за интенсивность красного, зеленого и синего. Принимают значения от 0 до 255.
alpha - прозрачность (0 - полностью прозрачный, 255 - полностью непрозрачный)

» native ForGroup takes group whichGroup, code callback returns nothing
функция, которая будет применена к каждому юниту в группе
она не должна брать, и кажеться не должна возращать аргументы
доступ к юниту осуществляеться через GetEnumUnit()
Код:
function MyFunc takes nothing returns nothing
 call KillUnit(GetEnumUnit())
endfunction

  // ...
 call GroupEnumUnitsInRange(<my_group>, 0., 0., 2500., null) // добавит всех юнитов в радиусе 2500 от точки (0, 0) в группу <my_group>
 call ForGroup(<my group>, function MyFunc) // вызовет функцию для каждого юнита в группе (если в группе три юнита вызовет МайФунц трижды
  // ...

» native GetSpellAbilityUnit takes nothing returns unit
возвращает юнита, который применил способность

» native TriggerRegisterVariableEvent(...)
Код:
... takes trigger whichTrigger, string varName, limitop opcode, real limitval returns event

Регистрация события, связанного с изменением переменной. Например "xxx стало больше чем yyy". Имя переменной передаётся в текстовом виде..
Код:
//===================================================
    // Limit Event API constants    
    // variable, player state, game state, and unit state events
    // ( do NOT change the order of these... )
    //===================================================
    constant limitop LESS_THAN                              = ConvertLimitOp(0)
    constant limitop LESS_THAN_OR_EQUAL                     = ConvertLimitOp(1)
    constant limitop EQUAL                                  = ConvertLimitOp(2)
    constant limitop GREATER_THAN_OR_EQUAL                  = ConvertLimitOp(3)
    constant limitop GREATER_THAN                           = ConvertLimitOp(4)
    constant limitop NOT_EQUAL                              = ConvertLimitOp(5)

» native UnitMakeAbilityPermanent(...)
Код:
... takes unit whichUnit, boolean permanent, integer abilityId returns boolean
Делает способность перманентной. Известно, что в результате морфа все абилы изменяются на указанные у юнита, в которого происходит превращение. Дак вот эта функция сохраняет указанную абилу, и она остаётся при морфе.

» native EnableSelect(...)

Код:
native EnableDragSelect takes boolean state, boolean ui returns nothing
native EnablePreSelect takes boolean state, boolean ui returns nothing
native EnableSelect takes boolean state, boolean ui returns nothing

Данные функции отвечают за возможность выделения:
- выделение прямоугольником (массовое);
- пре-выделение (подсветка);
- клик-выделение.
Аргумент 1 - выключатель, аргумент 2 - видно ли оно на экране. То есть выделение может быть включено, но не видно.

» native Preload(...)
Код:
native Preload          takes string filename returns nothing

Прелоуд делается для того, чтобы загрузить модель сразу (во время загрузки карты) и потом не отвлекаться на этот процесс во время игры. Принимает в качестве параметров файл/ресурс.

» blendmode
Код:
constant blendmode   BLEND_MODE_NONE                    = ConvertBlendMode(0)
    constant blendmode   BLEND_MODE_DONT_CARE               = ConvertBlendMode(0)
    constant blendmode   BLEND_MODE_KEYALPHA                = ConvertBlendMode(1)
    constant blendmode   BLEND_MODE_BLEND                   = ConvertBlendMode(2)
    constant blendmode   BLEND_MODE_ADDITIVE                = ConvertBlendMode(3)
    constant blendmode   BLEND_MODE_MODULATE                = ConvertBlendMode(4)
    constant blendmode   BLEND_MODE_MODULATE_2X             = ConvertBlendMode(5)

Тип blendmode указывает, какой метод "закраски" игрового экрана применить. Используется в функциях для работы с синематиками.
Прикрепленные файлы
Тип файла: rar common.rar (17.8 Кбайт, 470 просмотров )

Отредактировано ShadoW DaemoN, 17.05.2009 в 16:25.
Старый 06.03.2008, 22:41
happy_horror
2 + 2 = 22 :-D
offline
Опыт: 7,818
Активность:
Код:
native GetSpellAbilityUnit takes nothing returns unit

Какого юнита возвращает функция GetSpellAbilityUnit?

Отредактировано df Hunter, 07.03.2008 в 01:09.
Старый 07.03.2008, 00:20
ZLOBICH
Kicked by XimikS
offline
Опыт: 4,727
Активность:
Код:
native TriggerRegisterVariableEvent takes trigger whichTrigger, string varName, limitop opcode, real limitval returns event

вопрос: как это чудо работает? с какими переменнами? что за limitop?
Старый 07.03.2008, 14:10
Toadcop

offline
Опыт: 53,013
Активность:
ZLOBICH работает тока с real перемеными (не массивами) передаёш полнсотью имя переменой в текстовом виде
limitop это типо "стало больше" "меньше или равно" "равно" это так же как типо событие "жизнь у юнита там что то там =)"

Код:
//===================================================
    // Limit Event API constants    
    // variable, player state, game state, and unit state events
    // ( do NOT change the order of these... )
    //===================================================
    constant limitop LESS_THAN                              = ConvertLimitOp(0)
    constant limitop LESS_THAN_OR_EQUAL                     = ConvertLimitOp(1)
    constant limitop EQUAL                                  = ConvertLimitOp(2)
    constant limitop GREATER_THAN_OR_EQUAL                  = ConvertLimitOp(3)
    constant limitop GREATER_THAN                           = ConvertLimitOp(4)
    constant limitop NOT_EQUAL                              = ConvertLimitOp(5)


обычно в коммон.дж есть всё что надо =) (хотя не всегда)
Старый 07.03.2008, 14:50
Sebra

offline
Опыт: 5,603
Активность:
Код:
native UnitMakeAbilityPermanent     takes unit whichUnit, boolean permanent, integer abilityId returns boolean

Какой смысл в постоянных/непостоянных способностях?
Имеются в виду "одноразовые" способности?
Старый 10.03.2008, 15:49
Toadcop

offline
Опыт: 53,013
Активность:
Sebra эта фунуция делает способность постояной в смысле что если "за морфить юнита в дугого" и у того будут друие абилы то эта абила сохранитьса ! т.е. нужно для морф еффектов так сказать без не имеет смысла.

Отредактировано DFlyer, 19.07.2008 в 12:44.
Старый 10.03.2008, 18:05
happy_horror
2 + 2 = 22 :-D
offline
Опыт: 7,818
Активность:
Код:
native ForGroup takes group whichGroup, code callback returns nothing


Что за параметр code callback и как им пользоваться?
Старый 10.03.2008, 20:41
adic3x

offline
Опыт: 107,539
Активность:
функция, которая будет применена к каждому юниту в группе
она не должна брать, и кажеться не должна возращать аргументы
доступ к юниту осуществляеться через GetEnumUnit()
Код:
function MyFunc takes nothing returns nothing
 call KillUnit(GetEnumUnit())
endfunction

...
 call GroupEnumUnitsInRange(<my_group>, 0., 0., 2500., null) // добавит всех юнитов в радиусе 2500 от точки (0, 0) в группу <my_group>
 call ForGroup(<my group>, function MyFunc) // вызовет функцию для каждого юнита в группе (если в группе три юнита вызовет МайФунц трижды
...
Старый 10.03.2008, 20:53
Strayiker
Warcraft Forever
offline
Опыт: 3,406
Активность:
Код:
native AddIndicator takes widget whichWidget, integer red, integer green, integer blue, integer alpha returns nothing

Что делает эта ф-я ? Пробовал использовать, ничего не происходило о_О
Старый 16.07.2008, 18:56
ShadoW DaemoN

offline
Опыт: 37,078
Активность:
Функция создает обводку указанного цвета вокруг игрового объекта (юнита, дестра, предмета). Обводка мигает дважды.
red, green, blue отвечают соответственно за интенсивность красного, зеленого и синего. Принимают значения от 0 до 255.
alpha - прозрачность (0 - полностью прозрачный, 255 - полностью непрозрачный)
Старый 16.07.2008, 19:10
ScorpioT1000
Работаем
offline
Опыт: отключен
UnitDamagePoint - хотел спросить что означает первая буля "attack" и как сделать чтобы не коцал себя/союзников ?
Старый 01.08.2008, 11:17
Toadcop

offline
Опыт: 53,013
Активность:
ScorpioT1000 она означает то что если тру то на тебя будут накладыватьса еффекты напр фрос армора личя или что то наподобие. + эта фигня на маке не пашет
Старый 01.08.2008, 15:39
Scorched

offline
Опыт: 7,912
Активность:
Код:
native SetIntroShotText takes string introText returns nothing
 native SetIntroShotModel takes string introModelPath returns nothing

Отредактировано Scorched, 24.08.2008 в 11:34.
Старый 23.08.2008, 21:25
Freezen
Тут должен быть бред
offline
Опыт: 1,717
Активность:
Код:
function UnitId2OrderIdBJ takes integer unitId returns integer
    return unitId
endfunction

Чё делает? Ниипанято
[+] замечание от ShadoW DaemoN: Читаем правила: "Вопросы о БЖ-функциях задавать здесь запрещено"
Старый 25.09.2008, 16:46
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
Цитата:
Чё делает? Ниипанято
ничаво - просто возвращает то же, что и получает =) это ведь БЖ
Старый 25.09.2008, 16:50
adic3x

offline
Опыт: 107,539
Активность:
это истинная натура БЖ, а вообще то тема про нативы)
Старый 25.09.2008, 17:09
J
expert
offline
Опыт: 48,747
Активность:
Чето я не вижу связи между именем функции и тем что она делает=/
Старый 25.09.2008, 17:46
ShadoW DaemoN

offline
Опыт: 37,078
Активность:
Сфера применения, вероятно, такова: для триггерной покупки юнитов из нейтрального магазина нужно отдать приказ магазину, равный айдишнику покупаемого юнита. GUI, как обычно, предлагает "упрощающие" функции для этой цели. Пример такой функции см. выше.
Старый 25.09.2008, 17:54
kvaDrug

offline
Опыт: 1,601
Активность:
Код:
constant native GetLocalPlayer      takes nothing returns player

Что возвращает эта функция?
Старый 25.09.2008, 20:51
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
игрока, на компьютере которога исполняется данная карта. в мультиплеере каджому из игроков вернет его самого. используется для выполнения локальных действий для каждого игрока отдельно. при невнимательном использовании является причиной десинков и сплитов
Старый 25.09.2008, 20:58
Ответ

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

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

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

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



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