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

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

Ответ
 
Banzay89

offline
Опыт: 11,155
Активность:
[Hashtable] Ошибка в коде
Не знаю в чем проблема, по-этому и название темы неадекватное...
function TR takes nothing returns nothing
  local timer t=GetExpiredTimer()
  local unit u=LoadUnitHandle(udg_HASHTABLE, GetHandleId(t), 0)
  local real tr=LoadReal(udg_HASHTABLE, GetHandleId(t), 1)
  set tr=tr - 10.00

if tr > 0.00 then
  call SetUnitVertexColor( u, 100, 100, 100, tr)
  call SaveReal(udg_HASHTABLE, GetHandleId(t), 1, tr)
else
  call PauseTimer(t)
  call FlushChildHashtable(udg_HASHTABLE, GetHandleId(t))
  call DestroyTimer(t)
endif
  set u=null
  set t=null
endfunction
//==========================================================================
function Trig_neutral_T_Actions takes nothing returns nothing
  local timer t=CreateTimer()
  local unit u=GetEnteringUnit()
  local real tr=100.00
  call SetUnitVertexColor( u, 100, 100, 100, tr)

  call SaveUnitHandle(udg_HASHTABLE, GetHandleId(t), 0, u)
  call SaveReal(udg_HASHTABLE, GetHandleId(t), 1, tr)

  call TimerStart(t, 0.1, true, function TR)
  set  t=null
  set  u=null
endfunction
При сохранении пишет "Invalid argument type(real)"
и выбивает на строку
call SaveReal(udg_HASHTABLE, GetHandleId(t), 1, tr)
Старый 20.06.2010, 14:57
Pray_AD
stay in c++
offline
Опыт: 7,145
Активность:
Banzay89, может напишешь что делает триггер и что он должен делать сначала?
Старый 20.06.2010, 17:29
Banzay89

offline
Опыт: 11,155
Активность:
При входе в зону игровой карты (появление нейтралов) прозрачность юнита должна меняться с 100% до 0% (плавно)
Старый 20.06.2010, 17:37
JassMan
свободен
offline
Опыт: 4,193
Активность:
Pray_AD, а что спрашивать? И так все видно, что автор задумал — он динамически уменьшает прозрачность.
И проблема заключается в том, ошибку выдает ни за что. . .
Действительно непонятно. . .
Banzay89, как у тебя дела? Нашёл проблему?
Старый 20.06.2010, 17:39
Banzay89

offline
Опыт: 11,155
Активность:
JassMan, нет. Сам не знаю че этот редактор от меня хочет? пробовал закомментить эти строки но все равно те же ошибки выдает ((
Старый 20.06.2010, 17:52
AlexKARASb
Learning cpp
offline
Опыт: 22,103
Активность:
Banzay89, прозрачность не реальное число, а целочислительная, вот и говорит тебе редактор
local real
смени на
local integer tr = 100
ну итд
Старый 20.06.2010, 18:59
alexkill

offline
Опыт: 18,872
Активность:
call SetUnitVertexColor( u, 100, 100, 100, tr)
последний аргумент функции должен быть целочисленным. тип твоей переменной tr - вещественный.
изменяй тип, либо производи конвертирование R2I(tr)
call SetUnitVertexColor( u, 100, 100, 100, R2I(tr))
Старый 20.06.2010, 18:59
JassMan
свободен
offline
Опыт: 4,193
Активность:
А ну да, как обычно проблема оказалась в том, что компилятор ругался не на той строчке, где надо . . .
Кстати, если без BJ, то максимум уже не 100, а 255
Старый 21.06.2010, 04:33
bee
vjass.optimizer
offline
Опыт: 16,615
Активность:
функция VertexColor принимает integer максимальное число - 255
ошибка в том что ты записываешь в таблицу real. --> несоответствие типов
еще про оптимизацию: в функции Trig_neutral_T_Actions ты создаешь локалку. зачем это? ведь ты сразу можешь сохранить значение в таблицу и тоже самое про функцию. можно сразу везде написать 100 (точнее в твоем случае - 255)
может быть я ошибаюсь, но 255 - полная не прозрачность.
в данном случае это почти бесполезно, но так на будущее... частые вызовы функции в одной функции лучше заменять локалками. (обычно если больше 2 раз то быстрее будет если ты сразу создашь локалку и будешь заменять повторные вызовы ею.)
Старый 21.06.2010, 04:46
JassMan
свободен
offline
Опыт: 4,193
Активность:
Кстати есть у меня герой, у которого все скилы основаны на прозрачности, если хочешь можешь посмотреть, может чем поможет тебе.
Я только ультимейт не закончил там . . . Он должен был работать, как ульт Void'а (из Доты), долко в динамическом режиме.
Прикрепленные файлы
Тип файла: w3x Supersonic - TimeWalker.w3x (30.4 Кбайт, 15 просмотров )
Старый 21.06.2010, 05:10
Ответ

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

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

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

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



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