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

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

Закрытая тема
 
DqUaliTy

offline
Опыт: 1,076
Активность:
Всё какие то баги ...
Всем здрасте , код вроде не выдавал ошибок, проверял всё работало отлично , создавал я вначале таймер при интилизации и там проходит 30 сек , убирается окошко таймера всё хорошо , но когда я начал далее делать ,а именно добавил юнита квестодателя и прикрепил ему эффект , то начались какие то баги , теперь окошко таймера не удаляется , ну и собственно эффект с юнита не удаляется.
А эффект работает так , если ко квесто дателю подошёл мой герой , то эффект должен пропасть , но он не проподает.
кстати он пока что квесты не даёт.
Вот кодишко :
function AddQuest takes nothing returns nothing
local timer t=GetExpiredTimer()
local integer id=GetHandleId(t)
local group Addquest=LoadGroupHandle(udg_H,id,0)
local unit questgiver=LoadUnitHandle(udg_H,id,1)
local effect V=LoadEffectHandle(udg_H,id,2)
local unit questtaker
    call GroupEnumUnitsInRange(Addquest,GetUnitX(questgiver),GetUnitY(questgiver),200.,null)
    loop
        set questtaker=FirstOfGroup(Addquest)
        exitwhen questtaker==null
        if not IsPlayerEnemy(GetOwningPlayer(questgiver),GetOwningPlayer(questtaker)) and (GetWidgetLife(questtaker) > 0.405) and not IsUnitType(questtaker,UNIT_TYPE_STRUCTURE) and not IsUnitType(questtaker,UNIT_TYPE_MECHANICAL) and not IsUnitType(questtaker,UNIT_TYPE_ANCIENT) then
            call DestroyEffect(V)
            call PauseTimer(t)
            call FlushChildHashtable(udg_H,id)
            call DestroyTimer(t)
            call GroupRemoveUnit(Addquest,questtaker)
        endif
    endloop
    call GroupClear(Addquest)
    call DestroyGroup(Addquest)
set t=null
set Addquest=null
set questgiver=null
set questtaker=null
set V=null
endfunction

function SetQuest takes nothing returns nothing
local timer t=GetExpiredTimer()
local integer id=GetHandleId(t)
local unit questgiver
local effect V
    call DestroyTimerDialog(LoadTimerDialogHandle(udg_H,id,0))
    call FlushChildHashtable(udg_H,id)
    set t=CreateTimer()
    set questgiver=CreateUnit(Player(0),'n000',-7900.0,-7550.2,300.)
    set V=AddSpecialEffectTarget("Abilities\\Spells\\Other\\TalkToMe\\TalkToMe.mdl",questgiver,&qu​ot;overhead")
    call SaveGroupHandle(udg_H,id,0,CreateGroup())
    call SaveUnitHandle(udg_H,id,1,questgiver)
    call SaveEffectHandle(udg_H,id,2,V)
    call TimerStart(t,1.,true,function AddQuest)
set t=null
set V=null
set questgiver=null
endfunction

function StartTimer takes nothing returns nothing
local timer t=GetExpiredTimer()
local integer id=GetHandleId(t)
local timerdialog td
    call DestroyTimer(t)
    set t=CreateTimer()
    set td=CreateTimerDialog(t)
    call TimerDialogDisplay(td,true)
    call TimerDialogSetTitle(td,"Game play")
    call SaveTimerDialogHandle(udg_H,id,0,td)
    call TimerStart(t,30.0,false,function SetQuest)
set t=null
set td=null
endfunction

function InitTrig_StartTimer takes nothing returns nothing
call Preload("Abilities\\Spells\\Other\\TalkToMe\\TalkToMe.mdl")
call TimerStart(CreateTimer(),0.01,false,function StartTimer)
endfunction
Старый 28.11.2011, 15:37
FLESHNIK

offline
Опыт: 384
Активность:
DqUaliTy,
вот как должно быть
local timer t=GetExpiredTimer()
local integer id
local timerdialog td
    call DestroyTimer(t)
    set t=CreateTimer()
    set id=GetHandleId(t)
    set td=CreateTimerDialog(t)
    call TimerDialogDisplay(td,true)
    call TimerDialogSetTitle(td,"Game play")
    call SaveTimerDialogHandle(udg_H,id,0,td)
Ты id берешь не у того таймера...когда создаешь новый таймер у него уже другой ид.
В SetQuest и StartTimer исправь id.

Отредактировано FLESHNIK, 28.11.2011 в 16:11.
Старый 28.11.2011, 16:05
DqUaliTy

offline
Опыт: 1,076
Активность:
а точно спасибо щас посмотрю : D
DqUaliTy добавил:
ага спасибки : D
всё исправил всё исчезает )
Старый 28.11.2011, 16:18
Закрытая тема

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

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

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

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



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