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

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

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

offline
Опыт: 127
Активность:
Проблемы с импортом Toss'a
Импортировал заклинание Toss из DotA Spell Pack. Но при сохранении карты WEU выдает ошибку. В Jass'е я плохо шарю. Похожие ошибки выдает и в других Jass-заклинаниях.




Отредактировано DFlyer, 09.08.2008 в 09:27.
Старый 09.08.2008, 02:03
akkolt

offline
Опыт: 13,826
Активность:
они не настроены под твою карту, нужно настраивать.
Старый 09.08.2008, 02:12
krimatoriy
U.C.
offline
Опыт: 2,654
Активность:
Ну ты ппц в жасе как и на гуи есть переменые так перетащи их к себе на карту (он не может найти переменые)

krimatoriy добавил:
Или не может найти объект на который ссылается код
Старый 09.08.2008, 02:40
SiMbioZ_GoDLike

offline
Опыт: 127
Активность:
Так вся проблема та в том что переменные есть.
Или при при переносе Jass триггера из карты в карту переменные не копируются?
Старый 09.08.2008, 02:55
V1ctor1ous

offline
Опыт: 23,781
Активность:
SiMbioZ_GoDLikeДавай обьясню все по порядку,для начала стащи все переменные в карту,рав коды спела вставь,если есть кастум код,то и его тоже...
Старый 09.08.2008, 03:15
SiMbioZ_GoDLike

offline
Опыт: 127
Активность:
Рав коды я вставил.
Посмотрел в той карте вроде нет там переменныхкоторые используются в Toss.
Старый 09.08.2008, 03:19
Dragon27

offline
Опыт: 6,779
Активность:
SiMbioZ_GoDLike, ты как импортировал? Куда код ставил?
Старый 09.08.2008, 03:24
SiMbioZ_GoDLike

offline
Опыт: 127
Активность:
Сначала основное заклинание копировал Ctrl+C - Ctrl+V, потом дополнительное заклинание, потом триггер. Посмотрел Рав код заклинаний в своей карте вписал в триггер.

Dragon27, я весь триггер копировал.

Отредактировано SiMbioZ_GoDLike, 09.08.2008 в 03:36.
Старый 09.08.2008, 03:30
ScorpioT1000
Работаем
offline
Опыт: отключен
Требует гетхэндл из кастом кода..
Старый 09.08.2008, 03:30
Dragon27

offline
Опыт: 6,779
Активность:
Все основные функции (GetHandleUnit, GetHandleReal, и вообще всё, что там вначале) копировал?
Старый 09.08.2008, 03:34
SiMbioZ_GoDLike

offline
Опыт: 127
Активность:
Да я весь триггер скопировал. Вот триггер в моей карте:

» TossCode
Код:
function Trig_Toss_Conditions takes nothing returns boolean
    return GetSpellAbilityId() == 'A03Z'        
endfunction

function Toss_Unit_Group takes nothing returns boolean 
 if ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_ANCIENT) == true ) then  
 return false 
 endif 
 if IsUnitType(GetFilterUnit(), UNIT_TYPE_STRUCTURE) then 
 return false 
 elseif IsUnitType(GetFilterUnit(), UNIT_TYPE_FLYING) then 
 return false 
 elseif GetFilterUnit() == GetSpellAbilityUnit() then 
 return false 
 elseif IsUnitDeadBJ(GetFilterUnit()) then 
 return false 
 endif 
return true
endfunction

function Toss_Destroy_Trees takes nothing returns nothing
    call KillDestructable( GetEnumDestructable() )
endfunction

function TossFX takes nothing returns nothing
local effect f= bj_lastCreatedEffect
call TriggerSleepAction(0.4)
call DestroyEffect(f)
set f=null
endfunction

function Toss_Movement takes nothing returns nothing
local timer t=GetExpiredTimer()
local unit u=GetHandleUnit(t,"t")
local real b=GetHandleReal(t,"r")
local real n=GetHandleReal(t,"n")
local real d=GetHandleReal(t,"d")
local location l=GetHandleLocation(t,"l")
local real x=-d+(d*(b/50))
local location m=PolarProjectionBJ(l,x,n)
local real y=((b-25)*(b-25))
call SetUnitPositionLoc(u,m)
call SetUnitFlyHeight( u, ( 775-y ) , 10000.00 )
if GetRandomInt(1,4)==2 then
call AddSpecialEffectTargetUnitBJ( "origin", u, "Abilities\\Spells\\Undead\\Cripple\\CrippleTarget.mdl" )
call TriggerExecute(gg_trg_DestroyFX)
endif
set b=b+1
call SetHandleReal(t,"r",b)
set t=null
set u=null
set b=0
set n=0
set d=0
set l=null
set x=0
call RemoveLocation(m)
set m=null
set y=0
endfunction

function Trig_Toss_Actions takes nothing returns nothing
local group g=CreateGroup()
local unit c=GetTriggerUnit()
local unit a=null
local location l=GetSpellTargetLoc()
local timer t=null
local real b=1
local real d=0
local real n=0
call GroupEnumUnitsInRange(g,GetUnitX(c),GetUnitY(c),275,Condition(function Toss_Unit_Group))
set a=GroupPickRandomUnit(g)
call GroupClear(g)
if a!=null then    
    call SetUnitAnimationByIndex(c,4)
    call PauseUnitBJ( true, a )
    call SetUnitPathing( a, false )
    call SetUnitFacingToFaceLocTimed( a, l, 0 )
    call UnitAddAbilityBJ( 'A040', a )
    call UnitRemoveAbilityBJ( 'A040', a )    
    set t=CreateTimer()
    call SetHandleHandle(t,"t",a)
    call SetHandleReal(t,"r",b)    
    set d = DistanceBetweenPoints(GetUnitLoc(c), l)
    set n= AngleBetweenPoints(GetUnitLoc(c), l)
    call SetHandleReal(t,"d",d)
    call SetHandleReal(t,"n",n)
    call SetHandleHandle(t,"l",l)   
    call TimerStart(t,0.02,true,function Toss_Movement)
    call TriggerSleepAction(1.0)
    call RemoveLocation(l)
    set l=GetHandleLocation(t,"l")
    call RemoveLocation(l)
    call FlushHandleLocals(t)
    call PauseTimer(t)
    call DestroyTimer(t)
    call SetUnitFlyHeightBJ( a, GetUnitDefaultFlyHeight(a), 10000.00 )
    call PauseUnitBJ( false, a )
    call SetUnitPathing( a, true )    
    set l=GetUnitLoc(a)
    call DestroyEffect(AddSpellEffectByIdLoc('A0BZ', EFFECT_TYPE_TARGET, l))
    call TerrainDeformationRippleBJ( 0.2, true, l, 1.00, 300.00, 96.00, 1, 64.00 )
    call UnitDamageTargetBJ( c, a, 38.00 * I2R(GetUnitAbilityLevelSwapped('A03Z', c)) , ATTACK_TYPE_NORMAL, DAMAGE_TYPE_DEMOLITION )
    set g = GetUnitsInRangeOfLocAll(300.00, l)
    loop
        set a = FirstOfGroup(g)
        exitwhen a == null
        call GroupRemoveUnit(g,a)
        call UnitDamageTargetBJ( c, a, 75.00 * I2R(GetUnitAbilityLevelSwapped('A03Z', c)) , ATTACK_TYPE_NORMAL, DAMAGE_TYPE_DEMOLITION )     
    endloop
    call EnumDestructablesInCircleBJ( 300,l , function Toss_Destroy_Trees )
    call DestroyEffect(AddSpecialEffect("Abilities\\Spells\\Orc\\WarStomp\\WarStompCaster.mdl",GetLocationX(l),GetLocationY(l)))
endif
call DestroyGroup(g)
set g=null
set c=null
set a=null
call RemoveLocation(l)
set l=null
set t=null
set b=0
set n=0
set d=0
endfunction

//===========================================================================
function InitTrig_Toss takes nothing returns nothing
    set gg_trg_Toss = CreateTrigger(  )
    call TriggerRegisterAnyUnitEventBJ( gg_trg_Toss, EVENT_PLAYER_UNIT_SPELL_EFFECT )
    call TriggerAddCondition( gg_trg_Toss, Condition( function Trig_Toss_Conditions ) )
    call TriggerAddAction( gg_trg_Toss, function Trig_Toss_Actions )
endfunction

Отредактировано DFlyer, 09.08.2008 в 09:21.
Старый 09.08.2008, 03:42
Dragon27

offline
Опыт: 6,779
Активность:
В окошке триггеров слева, есть изображение карты (самая верхняя в иерархии триггеров), кликай туда и справа появится кастом код. Вот там и должны быть (по идее) основные функции, напр. GetHandleUnit, которого тебе так не хватает, а также многие другие (нужны тоже). Копируй их в кастом код своей карты.
Старый 09.08.2008, 04:17
SiMbioZ_GoDLike

offline
Опыт: 127
Активность:
Скопировал код из той карты в свою. Теперь выдает только одну ошибку:
Старый 09.08.2008, 14:55
ShadoW DaemoN

offline
Опыт: 37,078
Активность:
SiMbioZ_GoDLike, у тебя отсутствует триггер с названием DestroyFX. Скопируй его из той карты, и ошибка исчезнет (должна исчезнуть).
Старый 09.08.2008, 14:58
SiMbioZ_GoDLike

offline
Опыт: 127
Активность:
Во! Получилось, карта сохранилась. Всем большое спасибо кто мне помагал.
Старый 09.08.2008, 15:05
Закрытая тема

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

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

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

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



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