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

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

Закрытая тема
 
APXEOLOG
Прощай XGM, удачи тебе.
offline
Опыт: 1,015
Активность:
Несколько вопросов по jass
Итак вопрос первый: Имеет ли jass unsigned-переменные (переменные имеющие только положительные значения, за счет чего увеличивается максимальное число в 2 раза)
Вопрос второй: Что быстрее работает, кэш или глобальный массив?
Вопрос третий: Поддерживает ли jass концепцию ООП? (классы, методы и свойства)
Вопрос четвертый: Можно ли принудительно отрисовать кулдаун (я имею ввиду принудительно заставить картинку умения потемнеть и постепенно, как в кулдауне, возвращать в нормальное состояние)
Вопрос пятый: Вот допусти у меня есть триггерное заклинание в котором я при касте записываю значение в глобальную переменную. Если другой игрок скастует это заклинание, для него создастся отдельная переменная, или его значение перезапишет мое?
Вопрос шестой: Можно ли узнать "расу" заклинания(которая в редакторе устанавливается)?
ЗЫ Я хоть и Археолог, но копать старые темы не люблю, так что извините если боян.

Отредактировано APXEOLOG, 18.02.2009 в 22:19.
Старый 18.02.2009, 22:08
Enein
Silenced by ZlaYa1000
offline
Опыт: 43,453
Активность:
2 - Массив
4 - Нет
5 - Перезапишет
6 - Нужно создавать БД
Старый 18.02.2009, 22:25
ScorpioT1000
Работаем
offline
Опыт: отключен
3. http://xgm.guru/forum/showpost.php?p=309601&postcount=1

ScorpioT1000 добавил:
Цитата:
БД я так понимаю база данных, если да, то где про нее почитать. Да и если нет тоже.

два параллельных массива, ячейки которых совпадают. id абилки 1 массива соответствует integer'у расы второго, т.е.
A[1] = 'A001', B[1] = 1(альянс)
A[2] = 'A002', B[2] = 1(альянс)
A[3] = 'A003', B[3] = 2(орда)
A[n] = '...', B[n] = x
Старый 18.02.2009, 22:40
APXEOLOG
Прощай XGM, удачи тебе.
offline
Опыт: 1,015
Активность:
Цитата:
Сообщение от ScorpioT1000


Спасибо большое.

APXEOLOG добавил:
Вообщем-то пробую написать класс спелла. Нужно создавать таймер для просчета КД.
как правильно создать таймер периодичностью 0.1?
Я делаю так:
Код:
timer CDT
        CDT = CreateTimer()
        set TCount = 0 
        TimerStart( CDT, 0.1, true, method OnTimer)


И мне пишетсся ошибка.
Старый 18.02.2009, 23:29
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
APXEOLOG, надо перед вызовом функций писать call

Hellfim добавил:
Тоесть
Код:
call TimerStart(CDT,0.1,true,method OnTimer)
Старый 18.02.2009, 23:33
APXEOLOG
Прощай XGM, удачи тебе.
offline
Опыт: 1,015
Активность:
CDT = CreateTimer() - Syntax Error.
Кстати откуда вы брали документацию для перевода, где вообще офф. сайт?
Старый 18.02.2009, 23:40
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
APXEOLOG, прошу прощения...
При присвоении значения надо не только "=" писать, но и set с левой стороны выражения.
Старый 18.02.2009, 23:42
ScorpioT1000
Работаем
offline
Опыт: отключен
http://xgm.guru/articles.php?section=wc3 -> http://xgm.guru/articles.php?name=jass_introduction

ScorpioT1000 добавил:
Цитата:
Кстати откуда вы брали документацию для перевода

http://xgm.guru/forum/showthread.php?t=19920 -> http://www.wc3campaigns.net/forums.php
Старый 18.02.2009, 23:50
APXEOLOG
Прощай XGM, удачи тебе.
offline
Опыт: 1,015
Активность:
Блин все пора спать идти......Еще это ограничение в 10 минут....
Кстати на call TimerStart( CDT, BaseCD*CDModificator, true, method OnTimer) все равно синтакс пишет.

boolean periodic за что отвечает?
GetExpiredTimer что делает?
и TimerGetTimeout?

и вообще тут под timeout понимается время срабатывания (кажду секунду например) или через сколько таймер закончит работу?

APXEOLOG добавил:
Кстати что за фишка vJASS и где его взять?
Старый 18.02.2009, 23:55
ScorpioT1000
Работаем
offline
Опыт: отключен
Цитата:
boolean periodic

повторять/однократно
Цитата:
GetExpiredTimer

получить хэндл таймера, от которого запущена текущая функция(примерно так, но это не совсем так)
Цитата:
TimerGetTimeout

задержка между срабатываниями(ем)
Старый 18.02.2009, 23:56
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
APXEOLOG
Не уверен, ибо методами не пользуюсь, но помоему нельзя методы запускать из таймера.
1) periodic=периодичность, если true, то будет выполняться каждую timeout.
2) возвращает таймер, который вызвал текущую функцию
3) возвращает количество оставшегося времени
4) читай выше.

Hellfim добавил:
vJass, идет "в комплекте" с JNPG
Старый 18.02.2009, 23:57
ScorpioT1000
Работаем
offline
Опыт: отключен
Цитата:
Кстати что за фишка vJASS и где его взять?

я ссылку давал, там вроде было
http://xgm.guru/files.php?&id=2487
Старый 18.02.2009, 23:57
APXEOLOG
Прощай XGM, удачи тебе.
offline
Опыт: 1,015
Активность:
TimerGetTimeout - возвращает в до следующего срабатывания Timeout?
Старый 19.02.2009, 00:02
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
APXEOLOG, именно так.
Старый 19.02.2009, 00:04
APXEOLOG
Прощай XGM, удачи тебе.
offline
Опыт: 1,015
Активность:
Ладно, посмотрим что мне ответят по таймеру и структуре на wc3c.net

APXEOLOG добавил:
Кстати там у них на форуме я видел код вида t = NewTimer()
причем я так понял функция стандартная. А у меня ее нет (хотя стоит этот самый jass new gen pac v<последняя что есть>) У них что какой-то расширеный язык? Или это старая версия?
Старый 19.02.2009, 00:14
Garret
Недоброе творится
offline
Опыт: 3,893
Активность:
  1. нет, но можно при вычислении вычитать что-то вроде нижней границы
  1. Если я прав, то в принципе можно попробовать поменять модельку "автокастовая фигня" на модельку кулдауна..... Когда надо - ставишь абилку на автокаст..... Но это как-то мега криво и вряд ли тебе подойдёт, так как придётся учитывать установку на автокаст от игрока, невозможность создания других автокастовых абилок и прочее.... Так что вряд ли подойдёт, а больше я возможностей не вижу
  1. Если давать юнитам заклинания только одной расы, то по типу/кастом валью/поинт валью/расе/ещё прочей фигне можно будет спокойно узнавать расу спелла
Старый 19.02.2009, 00:20
APXEOLOG
Прощай XGM, удачи тебе.
offline
Опыт: 1,015
Активность:
Vampirrr -_- спасибо конечно, но я знаю как присваивать переменные. Я хотел подчеркнуть саму ф-ю NewTimer(), отсутствующюю в стандартном языке. Теперь я уже знаю откуда они ее взяли.
Старый 19.02.2009, 07:19
ShadoW DaemoN

offline
Опыт: 37,078
Активность:
APXEOLOG
1. Для обработчиков периодических событий можно использовать только статические (не обычные и, естественно, не приватные) методы. То есть что-то вроде такого:
Код:
struct mystruct

  static method onTimer takes nothing returns nothing
    // . . .
  endmethod

endstruct

// . . .
call TimerStart(t, 0.025, true, function mystruct.onTimer)


2. NewTimer(), ReleaseTimer() - функции из библиотеки TimerUtils - набор функций для "правильного" создания/удаления таймеров и аттача целочисленного значения.

3. vJass - расширение для языка Jass, за сборку и компоновку отвечает JassHelper.

4. Warcraft не имеет unsigned типов.
Старый 19.02.2009, 10:39
adic3x

offline
Опыт: 108,439
Активность:
1 - нет
2 - массив
3 - ооп есть зло, есть вЖасс, там есть ооп и оно тоже зло (медленее/корявее)
4 - нет, его мона сбросить онли по простому
5 - глобалки есть глобалки, локальные переменные создаются в локальном стеке жасса при каждом входе в фцию (насколько понимаю я)
6 - можно использовать некоторый бит для ее определения в спела айди, и проверять его в коде - ответ да поэтому

7 - привет от йоды вам я шлю=)

ADOLF добавил:
» offtop
база данных по спелам - бред, легче делать это в равкоде (юзать генпаку)

Цитата:
набор функций для "правильного" создания/удаления таймеров и аттача целочисленного значения.

буржуи идут пусть со своим факин "читаемым" "модифицируемым" "правильным" "ооп совместимым" кодом в заднего плана проход, ибо не шарят они, если вы хотите писать код который будет работать, простым и понятным он будет - пишите все все логично, иначе вы будете описывать все методы, подгонять под их принципы алгоритмы сови, и потом маструбировать долго над тем, как круто вы все описали (чем буржуи и занимаются)

просто близов интерфейс (т.е. стандартных функций набор) и без того дружествен к пользователю беспридельно, писать что то под него что бы проще было - имхо бред полный
Старый 19.02.2009, 12:47
APXEOLOG
Прощай XGM, удачи тебе.
offline
Опыт: 1,015
Активность:
Спасибо за ответы, новая порция вопросов:

1. Можно ли отрисовать панельку с описанием предмета\заклинания самому? (т.е. по своим координатам и с заданным текстом)

2. Встречал в РО обращение к переменным обьекта ввиду <RAW_CODE,DATA_Field> это сработает в триггере?

2ADOLF's offtop концепция ООП как раз и позволяет упростить кучу вещей. Я не буду спорить но в эволюции технологий программирования ООП занимает на данный момент если не вершину то второе место точно.
Старый 19.02.2009, 12:51
Закрытая тема

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

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

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

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



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