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

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

Ответ
 
ZLOBICH
Kicked by XimikS
offline
Опыт: 4,727
Активность:
Не отдаётся приказ
Код:
function BlessedHand takes nothing returns nothing
local unit u
local boolean blubb
call BJDebugMsg("Begin")
if GetUnitAbilityLevel(GetEventDamageSource(),'A009')==0 or GetRandomInt(1,100)<=15 then
call BJDebugMsg("Fail")
return
endif
call CreateUnit(GetOwningPlayer(GetTriggerUnit()),'e001',GetUnitX(GetTriggerUnit()),G  etUnitY(GetTriggerUnit()),0)
set u=GetLastCreatedUnit()
call BJDebugMsg("Dummy!")
call UnitAddAbility(u,'ANhw')
call BJDebugMsg("Ability!")
call SetUnitAbilityLevel(u,'ANhw',GetUnitAbilityLevel(GetTriggerUnit(),'A009'))
call BJDebugMsg("Level!")
set blubb=IssueTargetOrderBJ(u,"healingwave",GetTriggerUnit())
if blubb==false then
call BJDebugMsg("False!")
endif
call BJDebugMsg("Done!")
endfunction

почему-то не отдаётся приказ, подскажите в чём проблема
Старый 07.12.2007, 22:28
DFlyer
<3 MJ
offline
Опыт: 42,879
Активность:
Не знаю, должно работать. Т.е. ты хочешь просто отдать приказ?
» Code (optimized)

Код:
function BlessedHand takes nothing returns nothing
  local unit u
  call BJDebugMsg("Begin")
  if GetUnitAbilityLevel(GetEventDamageSource(),'A009')==0 or GetRandomInt(1,100)<=15 then
    call BJDebugMsg("Fail")
    return
  endif
  set u=CreateUnit(GetOwningPlayer(GetTriggerUnit()),'e001',GetUnitX(GetTriggerUnit())  ,GetUnitY(GetTriggerUnit()),0)
  call BJDebugMsg("Dummy!")
  call UnitAddAbility(u,'ANhw')
  call BJDebugMsg("Ability!")
  call SetUnitAbilityLevel(u,'ANhw',GetUnitAbilityLevel(GetTriggerUnit(),'A009'))
  call BJDebugMsg("Level!")
  if IssueTargetOrder(u,"healingwave",GetTriggerUnit())==false then
    call BJDebugMsg("False!")
  endif
  call BJDebugMsg("Done!")
endfunction

Старый 07.12.2007, 22:40
ZLOBICH
Kicked by XimikS
offline
Опыт: 4,727
Активность:
дамми-юнит должен скастовать "Волну исцеления" на атакованного юнита, весь триггер работает нормально но доходя до приказа высвечивается False
хм.. триггер юнит для EVENT_UNIT_DAMAGED = атакованный юнит?
» о коде
тут ещё нужно занести триггерюнита в переменную^^ а вообще коды я сам могу оптимизировать :)
Старый 07.12.2007, 22:54
DFlyer
<3 MJ
offline
Опыт: 42,879
Активность:
Цитата:
дамми-юнит должен скастовать "Волну исцеления" на атакованного юнита

Ну тогда
set blubb=IssueTargetOrderBJ(u,"healingwave",GetTriggerUnit())
замени на
call IssueTargetOrder(u,"healingwave",GetTriggerUnit())!
Старый 07.12.2007, 23:30
ZLOBICH
Kicked by XimikS
offline
Опыт: 4,727
Активность:
изначально было так, но ради проверки ввелась blubb :) т.е. с call IssueTargetOrder(u,"healingwave",GetTriggerUnit())всё ещё не работает(триг доходит до Done, значит он не обрывается, но почему-то приказ всё ещё не отдаётся)
о нет.. сейчас до меня дошло что лечить должно не GetTriggerUnit а GetEventDamageSource -_-
хм..злая судьба стебается надо мной.. я изменил триггерюнит на евентдамагсоурс, триг выдаёт Done но.. дамми всё ещё не кастует.. может ли это быть изза того что он имеет способность москиты?
Старый 07.12.2007, 23:44
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
нет, скорее всего чтото другое мешает скастовать (возможно даже ошибка не в коде)
Старый 07.12.2007, 23:46
DFlyer
<3 MJ
offline
Опыт: 42,879
Активность:
ZLOBICH
Может у дамми-юнита нет маны?
Старый 08.12.2007, 00:00
ZLOBICH
Kicked by XimikS
offline
Опыт: 4,727
Активность:
вот сам дами, вроде сделал всё нормально
самое главное при GetEventDamageSource() приказ отдаётся но волна не кастуется
хм в процессе тестов выяснелось что юниту не добавляется спелл
Прикрепленные файлы
Тип файла: w3x dummy.w3x (12.5 Кбайт, 9 просмотров )

Отредактировано ZLOBICH, 08.12.2007 в 10:10.
Старый 08.12.2007, 08:52
GreatLosser

offline
Опыт: 5,086
Активность:
Цитата:
хм в процессе тестов выяснелось что юниту не добавляется спелл

Сделай Wait(0.00) и все должно заработать. Может быть.
Старый 08.12.2007, 10:24
ZLOBICH
Kicked by XimikS
offline
Опыт: 4,727
Активность:
Не помогло =\
Старый 08.12.2007, 12:18
DFlyer
<3 MJ
offline
Опыт: 42,879
Активность:
Может ошибка в рав-кодах абил (даваемой и той, что у Героя).
Старый 09.12.2007, 21:46
ZLOBICH
Kicked by XimikS
offline
Опыт: 4,727
Активность:
еслиб была ошибка то триг обрывался ещё на проверки..
вопрос - что лучше, создать 20 тригов для каждого юнита и добавлять к ним TriggerAddAcondition или лучше создать 1 триг и 20 действий, в действиях if then?
на спелл забейте, напишу новый
Старый 10.12.2007, 14:13
S

offline
Опыт: 43,833
Активность:
Это смотря что тебе нужно - компактность или работоспособность...
если 20 триггеров с кондишнами - будет хорошо но много место,
если 1 триг с 20 ифами - имхо, постоянная проверка будет, может отразится на работоспособности...
П.С. Пиши ифы на джассе, гуи создает к каждому ифу проверку-функцию a-la Func_001_001_001_001...
Старый 10.12.2007, 14:23
ZLOBICH
Kicked by XimikS
offline
Опыт: 4,727
Активность:
не триг с ифами.. ты меня не понял
TriggerAddAction(tr,action)
я имею ввиду выгоднее добавить 20 действий к одному тригу и вначале каждого действия if then или 20 тригов? прошу заметить что эти триги будут создаваться для всех юнитов на карте, боюсь что с 20 тригами будут лаги
Старый 10.12.2007, 19:14
Ответ

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

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

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

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



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