Вы находитесь на сайте модмейкеров.
Четверг, 21.11.2024, 20:37
Участники · Правила форума · ПОИСК!
  • Страница 1 из 2
  • 1
  • 2
  • »
Локальные переменные[Статья]
GlaberДата: Понедельник, 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 //обнуляем

Если этого не сделать,то даже если юнита удалить из игры он останется в этой переменной,и не удалится окончательно,т.е останется в памяти засоряя её.
Обнулять переменные типа
Code
integer     
string     
real          

Не надо.

Вот небольшой пример их использования:
Code

function Trig_test_Conditions takes nothing returns boolean
      return GetSpellAbilityId() == 'AUim'
endfunction

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 футменов и удалятся.(просто пример)





Сообщение отредактировал F@lk - Вторник, 31.01.2012, 21:58
--
UZzipДата: Вторник, 31.01.2012, 21:21 | Сообщение # 2
Noize mc



Сообщений: 6078

Quote (F@lk)
integer - переменная типа целочисленное
real - переменная типа реал
string - перменная типа строка
unit - перменная типа юнит
handle - ссылка


перечисли все типы которые знаешь плиз) Можешь даже отдельную статью написать) о том как можно определить все типы ну и
Code
перечисли все типы


--
GlaberДата: Вторник, 31.01.2012, 21:38 | Сообщение # 3



Сообщений: 1057

UZzip, Открой глобальные переменные,там все что может опнадобтся)
Сам я пользуюсь в основном целочисленной,реальной,юнитом))


--
UZzipДата: Вторник, 31.01.2012, 21:54 | Сообщение # 4
Noize mc



Сообщений: 6078

F@lk, мн не названия а написание нужно =) Тем более локальных на 2-3 больше вроде =D

--
GlaberДата: Вторник, 31.01.2012, 21:57 | Сообщение # 5



Сообщений: 1057

UZzip, их очень много это да,но я даже нестал их запоминать,если найду,скину)

Добавлено (31.01.2012, 21:57)
---------------------------------------------

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 (*) - Тип переменной, ссылающийся на игровой кэш.

Добавлено (31.01.2012, 21:57)
---------------------------------------------
Это основные,но не все.


--
UZzipДата: Вторник, 31.01.2012, 22:02 | Сообщение # 6
Noize mc



Сообщений: 6078

F@lk, Хочу все))

--
GlaberДата: Вторник, 31.01.2012, 22:03 | Сообщение # 7



Сообщений: 1057

Quote (UZzip)
Dermine, Хочу все))

:o fie




Сообщение отредактировал F@lk - Вторник, 31.01.2012, 22:04
--
UZzipДата: Вторник, 31.01.2012, 22:07 | Сообщение # 8
Noize mc



Сообщений: 6078

F@lk, поменял, твой ник <_<
Теперь точно с тебя полный список ;)


--
GlaberДата: Вторник, 31.01.2012, 22:15 | Сообщение # 9



Сообщений: 1057

Quote (UZzip)
поменял, твой ник

ПасиБ)

Quote (UZzip)
Теперь точно с тебя полный список

Поищу.

Добавлено (31.01.2012, 22:15)
---------------------------------------------

Code
//
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 с редактора текста.
Если там это все что есть,то больше и знат ьне неужно)


--
UZzipДата: Вторник, 31.01.2012, 22:15 | Сообщение # 10
Noize mc



Сообщений: 6078

Dermine, Не поишу, а найду) Ок)) :p

--
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

W3 - Всё для картостроения. 2024-2010 |