Дата: Понедельник, 30.01.2012, 22:38 | Сообщение # 1
Сообщений: 1057
Локальные переменные,это вид переменных который использовать в GUI неполучится(или просто глупо) Вот список основных типов
Code
integer - переменная типа целочисленное real - переменная типа реал string - перменная типа строка unit - перменная типа юнит handle - ссылка
Чтобы создать переменную нужно в начале кода написать local тип имя = значение local - значит локальная(местная) Используется только в этом коде. Пытаться использовать в другом тригере невозможно! Важно:В jass очень важно соблютать буквы и их размер(заглавная,маленькая) Если хоть что то не так то код сразу перестает работать. Достаточно 1-й лишней точки и код не работает.
Зачем использовать локальные переменные? Чтобы создавать MUI спеллы MUI - мультиприменяемые. Мультиприменяемы они т.к при запуске тригера они создаются новые,и они никак не связанны с прошлыми. Так же как и обычные переменные они могут иметь массив. Чтобы назначить массив нужно после типа добавить array
Code
local тип array имя=значение
Пример
Code
local unit array d
Чтобы установить значение такой переменной нужно после имени добавить скобки(вот такие)
Code
[цифра]
Пример
Code
set d[0]=GetTriggerUnit()
Кто то догадался уже с тем что можно вместо цифры ставить переменную типа целочисленное? Дак и это можно! Пример
Code
local unit array d local integer di=0 set d[di]=GetTriggerUnit()
Ну и конечно чтобы избежать некоторых утечек,забитие памяти. Чтобы не забивать память нужно обнулять их Это делается так
Code
local unit u=GetTriggerUnit() //действия set u=null //обнуляем
Если этого не сделать,то даже если юнита удалить из игры он останется в этой переменной,и не удалится окончательно,т.е останется в памяти засоряя её. Обнулять переменные типа
function Trig_test_Actions takes nothing returns nothing local integer i=0 local unit u=GetTriggerUnit() local unit array d local integer di=0 local real x=GetUnitX(u) local real y=GetUnitY(u) loop exitwhen i>10 set d[di]=CreateUnit(GetOwningPlayer(u),'hf00',x,y,0) set di=di+1 set i=i+1 endloop loop exitwhen i==0 call RemoveUnit(d[di]) set d[di]=null set di=di-1 set i=i-1 endloop set u=null endfunction
Тут при использовании спелл создастся 10 футменов и удалятся.(просто пример)
Code
Вот большинство типов переменных: * - этот тип более или менее часто используется. ! - редкий тип, переменные такого типа работают внутри специфических функций. Новичкам лучше не обращать на это внимания. real (*) - Число с плавающей запятой (десятичная дробь). integer (*) - Целое число. А почему нельзя использовать real без десятичной части? А потому что real обрабатывается мат. процессором, а integer - процессором, не надо мат. процессор напрягать. Есть еще причины. На основе integer построено 70% типов - все перечисляемые типы (которые принимают несколько заранее заданных значений, например, race) array (*) - Массив (см. пред. статью). Максимальный размер массива - 1024 элемента. Элементом может быть любой тип, кроме массива. string (*) - Строка. Состоит из символов. Подробности далее. event (*) - Ссылка на зарегистрированное событие (см. далее) player (*) - Ссылка на одного игрока widget (!) - Объект в игре, у которого есть жизни. Следующие типы являются производными от этого: unit (*) - Ссылка на юнита. destructable (*) - А это ссылка на разрушаемый доодад. item (*) - Ссылка на вещь force (*) - Сила в игре - состоит из игроков group (*) - Группа trigger (*) - Переменная 'триггер', с ним ассоциировано несколько функций. ВСЕ триггеры в игре - переменные, так же как и юниты, разрушаемые доодады, регионы и т.д. triggercondition (*) - Является ссылкой на функцию, возвращающую переменную типа boolexpr, служит для проверки условий в триггере. triggeraction (*) - Ссылка на функцию "действия" триггера. timer (*) - Таймер, он и есть таймер. location (*) - Регион с нулевыми размерами (точка) region (!) - Регион, используется в регистрируемых событиях. rect (*) - Обычный игровой регион прямоугольной формы. boolexpr (!) - Сложный для новичка тип. Ассоциирован с функцией, которая возвращает boolean. Используется для отбора объектов, для которых данная функция вернет true из множества других. Типичный пример использования - все условия триггеров в качестве аргумента берут boolexpr. sound (*) - Тип звуковой переменной. conditionfunc (!) - Функция для внутреннего использования - обозначает аргумент условия триггера (см. тип. boolexpr). filterfunc (!) - функция-фильтр. Выбирает из множества объекты с подходящим условием. Типичный пример - используется во внутренних функциях, аналогичных действию триггера 'Every unit matching condition'. race (*) - Раса, может быть ШЕСТИ типов - человек, орк, андед, эльф, демон., или что-то другое (вот только что же? ) alliancetype (!) - Тип заключаемого союза. playergameresult (*) - Статистика игры unitstate (*) - Статус юнита (спрятанный и т.д.) eventid (!) - ID номер события - в картах не используется. Используются производные типы: gameevent (*), playerevent (*), playerunitevent (*), unitevent (*), widgetevent (*), dialogevent (*) - Все эти типы хорошо известны - посмотрите в событиях любого триггера список событий и сразу все поймете. Правда все это дело используется как аргумент для функции регистрации события. Редко используется в собственных функциях. unittype (!) - Тип юнита. Ничем не отличается от integer!!! Подробности см. далее. Это важно! Редкий тип т.к. в таком виде используется только в библиотеках. В скриптах пишут - integer. gamespeed (!) - Тип переменной, определяющей скорость игры. gamedifficulty (!) - То же самое для сложности. gametype (!) - Тип игры - meelee / ffa и т.д. mapflag (!) - Тип переменной, которая отвечает за видимость карты по умолчанию - т.е. открыта ли карта изначально и т.д. mapvisibility (!), mapsetting (!) - Комментировать не буду - все по одному принципу. playerslotstate (!) - Тип слота (пустой / человек / компьютер) camerafield (!) - Поле зрения камеры. Напрямую редко используется. camerasetup (!) - Используется еще реже и содержит все настройки камеры. playercolor (!) - Цвет игрока (перечисляемый) placement (!) - Показывает распределение стартовых точек (random и т.д.) effect (*) - Ссылка на спецэффект в игре. effecttype (!) - Тип спецэффекта. weathereffect (*) - Тип погодных эффектов в регионе. fogstate (!) - aka Visibility Modifier fogmodifier (*) - Тип выходных переменных всех функций, работающих с туманом войны. dialog (*) - Тип переменной, содержащей диалог. button (*) - Кнопка в диалоге. quest (*) - Квест, ну что же еще. questitem (*) - Задаче квеста. timerdialog (!) - Оболочка таймера. leaderboard (*) - Доска лидерства. gamecache (*) - Тип переменной, ссылающийся на игровой кэш.
Сообщение отредактировал F@lk - Вторник, 31.01.2012, 21:58
Вот большинство типов переменных: * - этот тип более или менее часто используется. ! - редкий тип, переменные такого типа работают внутри специфических функций. Новичкам лучше не обращать на это внимания. real (*) - Число с плавающей запятой (десятичная дробь). integer (*) - Целое число. А почему нельзя использовать real без десятичной части? А потому что real обрабатывается мат. процессором, а integer - процессором, не надо мат. процессор напрягать. Есть еще причины. На основе integer построено 70% типов - все перечисляемые типы (которые принимают несколько заранее заданных значений, например, race) array (*) - Массив (см. пред. статью). Максимальный размер массива - 1024 элемента. Элементом может быть любой тип, кроме массива. string (*) - Строка. Состоит из символов. Подробности далее. event (*) - Ссылка на зарегистрированное событие (см. далее) player (*) - Ссылка на одного игрока widget (!) - Объект в игре, у которого есть жизни. Следующие типы являются производными от этого: unit (*) - Ссылка на юнита. destructable (*) - А это ссылка на разрушаемый доодад. item (*) - Ссылка на вещь force (*) - Сила в игре - состоит из игроков group (*) - Группа trigger (*) - Переменная 'триггер', с ним ассоциировано несколько функций. ВСЕ триггеры в игре - переменные, так же как и юниты, разрушаемые доодады, регионы и т.д. triggercondition (*) - Является ссылкой на функцию, возвращающую переменную типа boolexpr, служит для проверки условий в триггере. triggeraction (*) - Ссылка на функцию "действия" триггера. timer (*) - Таймер, он и есть таймер. location (*) - Регион с нулевыми размерами (точка) region (!) - Регион, используется в регистрируемых событиях. rect (*) - Обычный игровой регион прямоугольной формы. boolexpr (!) - Сложный для новичка тип. Ассоциирован с функцией, которая возвращает boolean. Используется для отбора объектов, для которых данная функция вернет true из множества других. Типичный пример использования - все условия триггеров в качестве аргумента берут boolexpr. sound (*) - Тип звуковой переменной. conditionfunc (!) - Функция для внутреннего использования - обозначает аргумент условия триггера (см. тип. boolexpr). filterfunc (!) - функция-фильтр. Выбирает из множества объекты с подходящим условием. Типичный пример - используется во внутренних функциях, аналогичных действию триггера 'Every unit matching condition'. race (*) - Раса, может быть ШЕСТИ типов - человек, орк, андед, эльф, демон., или что-то другое (вот только что же? ) alliancetype (!) - Тип заключаемого союза. playergameresult (*) - Статистика игры unitstate (*) - Статус юнита (спрятанный и т.д.) eventid (!) - ID номер события - в картах не используется. Используются производные типы: gameevent (*), playerevent (*), playerunitevent (*), unitevent (*), widgetevent (*), dialogevent (*) - Все эти типы хорошо известны - посмотрите в событиях любого триггера список событий и сразу все поймете. Правда все это дело используется как аргумент для функции регистрации события. Редко используется в собственных функциях. unittype (!) - Тип юнита. Ничем не отличается от integer!!! Подробности см. далее. Это важно! Редкий тип т.к. в таком виде используется только в библиотеках. В скриптах пишут - integer. gamespeed (!) - Тип переменной, определяющей скорость игры. gamedifficulty (!) - То же самое для сложности. gametype (!) - Тип игры - meelee / ffa и т.д. mapflag (!) - Тип переменной, которая отвечает за видимость карты по умолчанию - т.е. открыта ли карта изначально и т.д. mapvisibility (!), mapsetting (!) - Комментировать не буду - все по одному принципу. playerslotstate (!) - Тип слота (пустой / человек / компьютер) camerafield (!) - Поле зрения камеры. Напрямую редко используется. camerasetup (!) - Используется еще реже и содержит все настройки камеры. playercolor (!) - Цвет игрока (перечисляемый) placement (!) - Показывает распределение стартовых точек (random и т.д.) effect (*) - Ссылка на спецэффект в игре. effecttype (!) - Тип спецэффекта. weathereffect (*) - Тип погодных эффектов в регионе. fogstate (!) - aka Visibility Modifier fogmodifier (*) - Тип выходных переменных всех функций, работающих с туманом войны. dialog (*) - Тип переменной, содержащей диалог. button (*) - Кнопка в диалоге. quest (*) - Квест, ну что же еще. questitem (*) - Задаче квеста. timerdialog (!) - Оболочка таймера. leaderboard (*) - Доска лидерства. gamecache (*) - Тип переменной, ссылающийся на игровой кэш.
Добавлено (31.01.2012, 21:57) --------------------------------------------- Это основные,но не все.
// type agent extends handle // all reference counted objects type event extends agent // a reference to an event registration type player extends agent // a single player reference type widget extends agent // an interactive game object with life type unit extends widget // a single unit reference type destructable extends widget type item extends widget type ability extends agent type buff extends ability type force extends agent type group extends agent type trigger extends agent type triggercondition extends agent type triggeraction extends handle type timer extends agent type location extends agent type region extends agent type rect extends agent type boolexpr extends agent type sound extends agent type conditionfunc extends boolexpr type filterfunc extends boolexpr type unitpool extends handle type itempool extends handle type race extends handle type alliancetype extends handle type racepreference extends handle type gamestate extends handle type igamestate extends gamestate type fgamestate extends gamestate type playerstate extends handle type playerscore extends handle type playergameresult extends handle type unitstate extends handle type aidifficulty extends handle
type eventid extends handle type gameevent extends eventid type playerevent extends eventid type playerunitevent extends eventid type unitevent extends eventid type limitop extends eventid type widgetevent extends eventid type dialogevent extends eventid type unittype extends handle
type gamespeed extends handle type gamedifficulty extends handle type gametype extends handle type mapflag extends handle type mapvisibility extends handle type mapsetting extends handle type mapdensity extends handle type mapcontrol extends handle type playerslotstate extends handle type volumegroup extends handle type camerafield extends handle type camerasetup extends handle type playercolor extends handle type placement extends handle type startlocprio extends handle type raritycontrol extends handle type blendmode extends handle type texmapflags extends handle type effect extends agent type effecttype extends handle type weathereffect extends handle type terraindeformation extends handle type fogstate extends handle type fogmodifier extends agent type dialog extends agent type button extends agent type quest extends agent type questitem extends agent type defeatcondition extends agent type timerdialog extends agent type leaderboard extends agent type multiboard extends agent type multiboarditem extends agent type trackable extends agent type gamecache extends agent type version extends handle type itemtype extends handle type texttag extends handle type attacktype extends handle type damagetype extends handle type weapontype extends handle type soundtype extends handle type lightning extends handle type pathingtype extends handle type image extends handle type ubersplat extends handle type hashtable extends agent
Открыл файл jngp с редактора текста. Если там это все что есть,то больше и знат ьне неужно)