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

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

Закрытая тема
 
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
Конечно же не пашет. На кой чёрт совать везде <>, и где равно?
define InitHeroAggroModifier(Type, Mod) = { if (GetUnitTypeId(whichAggro) == Type){whichNum *= Mod} }
Старый 22.09.2009, 00:36
FREEZE_ball
Cataclysm => жара
offline
Опыт: 15,247
Активность:
Van Damm, благодарности, пробел всегда забываю =\
Старый 22.09.2009, 01:00
ZeToX2007

offline
Опыт: 7,009
Активность:
ещё бы неплохо реализовать такую фичу типо структу.

-???- -name-{
int a,b,c;
}

// где то в функции

MyS // объвляем
...
MyS.a = MyS.b

а при компиляции чтобы это выглядило так:

integer MyS_a
integer MyS_b
integer MyS_c
...
set MyS_a = MyS_b...

Блин это те же структуры =/ только различей множество... ну хз короче... а структры на vJass больше похожи на классы -_-
Старый 22.09.2009, 02:13
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
нет =)
Старый 22.09.2009, 02:23
ZeToX2007

offline
Опыт: 7,009
Активность:
вспомнил как это назвыается ) - union ) было бы замечательно, если в cJass это было )

union { int i, bool b,double d, unit u}; как то так вроде )
Старый 22.09.2009, 02:52
ScorpioT1000
Работаем
online
Опыт: отключен
и как ты предлагаешь организовать это на jass?
ScorpioT1000 добавил:
ты в курсе вобще, зачем union нужен и как работает)
Старый 22.09.2009, 03:05
adic3x

offline
Опыт: 108,439
Активность:
очевидно нет=/
Старый 22.09.2009, 09:28
ShadoW DaemoN

offline
Опыт: 36,798
Активность:
Насколько я помню, union - структура данных, которая позволяет хранить одно из нескольких указанных типов значений. Особенность union'ов в том, что его размер определяется наибольшим размером из указанных типов.
union soviet_union {
  float russia
  int ukraine
  bool belarus
}

// . . .

  soviet_union a = new soviet_union()
  // записываем в a значение
  a.russia = 1.23
  // записываем в a значение, прошлое стирается
  a.ukraine = 0x100000
  // записываем в a значение, прошлое стирается
  a.belarus = true
Так как в варкрафте все типы имеют 4 байта, то и размер union'a по теории будет 4 байта. Я думаю, что
  1. Нормально реализовать это не получится.
  2. Лучше использовать хеш-таблицы для таких целей.
  3. Приведите пример, где использование union'a оправдано и удобно.
Старый 22.09.2009, 12:07
ZeToX2007

offline
Опыт: 7,009
Активность:
примерно так релизовать к примеру:

void D111(){

union test{int i,double d}MyU;
...
MyU.i = 6 ... + a
...
MyU.d = MyU.i
...
}

на jass'e





function d111 takes nothing returns nothing
local integer MyU__i
local real MyU__d

set MyU__i = 6 ... + a
....

set MyU__d = MyU__i
set MyU__i = 0
...
endfunction


зы: а если обнулять глобальные массивы, это должно освободить память: units[10] = null?

ZeToX2007 добавил:
А если с глобальными работать, то нужно завести массив интежеров, в котором будет храниться, что использовалось ранее..
Старый 22.09.2009, 13:48
adic3x

offline
Опыт: 108,439
Активность:
врядли это будет сделанно
Старый 22.09.2009, 13:49
Hellfim
Новичок
offline
Опыт: 79,637
Активность:
а если обнулять глобальные массивы, это должно освободить память: units[10] = null?
Нет.
Старый 22.09.2009, 14:30
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
врядли это будет сделанно
это точно не будет сделано ибо смысла 0
Старый 22.09.2009, 15:38
ZeToX2007

offline
Опыт: 7,009
Активность:
int A[10] = {'5','3','10'....'6'};

Думаю понятно, что я имею ввиду =/

ZeToX2007 добавил:
и неплохо бы, чтоб перед define и include стояла #
Старый 23.09.2009, 23:19
ScorpioT1000
Работаем
online
Опыт: отключен
и неплохо бы, чтоб перед define и include стояла #
вобще дб обязательно)
int A[10] = {'5','3','10'....'6'};
чары в инт? O_o
может имел ввиду:
int A[10] = {5,3,10,...,6};
?
тут проблема в том, что инициализация всеже должна определяться юзером. а много таких штук в одном потоке не есть гут. а выводить в разные потоки тоже не есть гут
Старый 23.09.2009, 23:29
adic3x

offline
Опыт: 108,439
Активность:
про # меня вд давно уговаривает, сделаю
что до инита массивов надо думать... не все так просто
Старый 23.09.2009, 23:37
ZeToX2007

offline
Опыт: 7,009
Активность:
Цитата:
Сообщение от ScorpioT1000
тут проблема в том, что инициализация всеже должна определяться юзером. а много таких штук в одном потоке не есть гут. а выводить в разные потоки тоже не есть гут


Всё зависит от удобства, в функциях реализовать это проще и удобнее будет юзеру. для глобалок... ну думаю, что юзер будет через чур много, что либо вписывать в массивы... да и ещё

int array i - Не красиво
int i[100] - более менее=)
Старый 23.09.2009, 23:44
ScorpioT1000
Работаем
online
Опыт: отключен
но ведь нельзя int i[100] сделать ТТ
ты вобще куришь матчасть?
ScorpioT1000 добавил:
тогда уж int i[x5]
где N - размер равен 2^5 элементов
Старый 23.09.2009, 23:49
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
вобще дб обязательно)
стандартный синтакс как бы намекает... но всё равно будет и такой, и такой вариант
int A[10] = {5,3,10,...,6};
это есть в туду, но не в ближайшем будущем
Старый 23.09.2009, 23:53
ZeToX2007

offline
Опыт: 7,009
Активность:
Цитата:
Сообщение от ScorpioT1000
но ведь нельзя int i[100] сделать ТТ

Нельзя, он будет на 8192 элемента, но i[ и что то в скобках] будет обозначать, что это массив и писать array не обязательно.

ZeToX2007 добавил:
Цитата:
Сообщение от ZeToX2007
но i[ и что то в скобках] будет обозначать, что это массив и писать array не обязательно.

собственно я это и имел ввиду, а не то что инит массива на 100 элементов О_о

ZeToX2007 добавил:
О вот ещё мысль.


(i+10-i2,i+i2,i3/i)

как насчёт такой фичи ? или она уже есть ?
Старый 24.09.2009, 00:03
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
как насчёт такой фичи ? или она уже есть ?
нет и не будет
Старый 24.09.2009, 00:05
Закрытая тема

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

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

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

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



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