DarK StrikeR
Исследующий
offline
Опыт:
35Активность: |
Вопрос связанный с Jass!
Значит создал я Jass спелл на пустой карте для теста значит усе нормально нет ошибок и я решил перенести этот спелл в еще одну свою карту |
26.07.2005, 18:03 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
cHAm
Бывший модмейкер
offline
Опыт:
5,291Активность: |
Ну... Может ты где ид спелла забыл поменять? У меня как-то было такое - все перенес нормально, а в условии ид не поменял, так у меня тоже так было. А так не знаю. Когда дело касается ждаза, то чтобы помочь, нужно видеть спелл, а вслепую не поможешь... |
27.07.2005, 16:03 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DarK StrikeR
Исследующий
offline
Опыт:
35Активность: |
Вот этот спелл это рикошетная способность:
А вот и сам скрипт: function Trig_Chain_Frost_Nova_Conditions takes nothing returns boolean return ( GetSpellAbilityId() == 'A000' ) endfunction function Trig_Chain_Frost_Nova_Actions takes nothing returns nothing
local real height local real time local real raisetime set udg_ChainFreezingCounter = 0 call CreateNUnitsAtLoc( 1, 'e000', Player(0), GetUnitLoc(GetSpellAbilityUnit()), bj_UNIT_FACING ) call SetUnitInvulnerable( GetLastCreatedUnit(), true ) call SetUnitPathing( GetLastCreatedUnit(), false ) set udg_ChainFreezingUnit = GetLastCreatedUnit() call UnitAddAbilityBJ( 'Aloc', udg_ChainFreezingUnit ) call StartTimerBJ( udg_ChainFreezingTimer, true, 0.03 ) set height = GetUnitDefaultFlyHeight(udg_FrostTarget) if (height < 40) then set height = 40 endif set time = DistanceBetweenPoints(GetUnitLoc(udg_ChainFreezingUnit), GetUnitLoc(udg_FrostTarget)) / 1000 set raisetime = (RAbsBJ(height - GetUnitFlyHeight(udg_ChainFreezingUnit))) / time call SetUnitFlyHeightBJ( udg_ChainFreezingUnit, height, raisetime ) endfunction function Trig_Chain_Freezing_Target_Conditions takes nothing returns boolean
return ( GetIssuedOrderIdBJ() == String2OrderIdBJ("sleep") ) endfunction function Trig_Chain_Freezing_Target_Actions takes nothing returns nothing
set udg_FrostTarget = GetOrderTargetUnit() endfunction function Trig_Chainfreezing_Group takes nothing returns boolean
return (( IsUnitEnemy(GetFilterUnit(), Player(0)) == true ) and ( GetFilterUnit() != udg_FrostTarget ) and ( IsUnitAliveBJ(GetFilterUnit()) == true )) endfunction function Trig_Chainfreezing_Timer_Actions takes nothing returns nothing
local real height local real time local real raisetime local unit temp call SetUnitPositionLoc( udg_ChainFreezingUnit, PolarProjectionBJ(GetUnitLoc(udg_ChainFreezingUnit), 30.00, AngleBetweenPoints(GetUnitLoc(udg_ChainFreezingUnit), GetUnitLoc(udg_FrostTarget))) ) if ( DistanceBetweenPoints(GetUnitLoc(udg_ChainFreezingUnit), GetUnitLoc(udg_FrostTarget)) <= 50.00 ) then set udg_ChainFreezingCounter = udg_ChainFreezingCounter + 1 if ( IsUnitIdType(GetUnitTypeId(udg_FrostTarget), UNIT_TYPE_FLYING) == true ) then call AddSpecialEffectTargetUnitBJ( "origin", udg_FrostTarget, "Abilities\\Spells\\Undead\\FrostNova\\FrostNovaTarget.mdl" ) call DestroyEffectBJ( GetLastCreatedEffectBJ() ) else call AddSpecialEffectTargetUnitBJ( "origin", udg_FrostTarget, "Abilities\\Spells\\Undead\\FrostNova\\FrostNovaTarget.mdl" ) call DestroyEffectBJ( GetLastCreatedEffectBJ() ) endif call CreateNUnitsAtLocFacingLocBJ( 1, 'e001', Player(0), PolarProjectionBJ(GetUnitLoc(udg_FrostTarget), 100.00, 0.00), GetUnitLoc(udg_FrostTarget) ) set temp = GetLastCreatedUnit() call SetUnitInvulnerable( temp, true ) call IssueTargetOrderBJ( temp, "frostnova", udg_FrostTarget ) set udg_FrostTarget = GroupPickRandomUnit(GetUnitsInRangeOfLocMatching(800, GetUnitLoc(udg_FrostTarget), Condition(function Trig_Chainfreezing_Group)))
set height = GetUnitDefaultFlyHeight(udg_FrostTarget) if (height < 40) then set height = 40 endif if (udg_FrostTarget == null) then set udg_ChainFreezingCounter = 2 + (udg_ChainFreezingLevel * 2) endif set time = DistanceBetweenPoints(GetUnitLoc(udg_ChainFreezingUnit), GetUnitLoc(udg_FrostTarget)) / 1000 set raisetime = (RAbsBJ(height - GetUnitFlyHeight(udg_ChainFreezingUnit))) / time call SetUnitFlyHeightBJ( udg_ChainFreezingUnit, height, raisetime ) if (udg_ChainFreezingCounter == 2 + (udg_ChainFreezingLevel * 2) ) then call PauseTimerBJ( true, udg_ChainFreezingTimer ) call UnitRemoveAbilityBJ( 'Aloc', udg_ChainFreezingUnit ) call RemoveUnit( udg_ChainFreezingUnit ) endif endif endfunction function Trig_Chainfreezing_Research_Conditions takes nothing returns boolean
return ( GetLearnedSkillBJ() == 'A000' ) endfunction function Trig_Chainfreezing_Research_Actions takes nothing returns nothing
set udg_ChainFreezingLevel = udg_ChainFreezingLevel + 1 endfunction function Trig_Chain_Freezing_Remove_Conditions takes nothing returns boolean
return ( GetSpellAbilityId() == 'A001' ) endfunction function Trig_Chain_Freezing_Remove_Actions takes nothing returns nothing
call RemoveUnit( GetSpellAbilityUnit() ) endfunction =========================================================================== function InitTrig_Chain_Frost_Nova takes nothing returns nothing local trigger Chain_Freezing_Remove = CreateTrigger( ) local trigger Chainfreezing_Research = CreateTrigger( ) local trigger Chainfreezing_Timer = CreateTrigger( ) local trigger Chain_Freezing_Target = CreateTrigger( ) set gg_trg_Chain_Frost_Nova = CreateTrigger( ) call TriggerRegisterPlayerUnitEventSimple( gg_trg_Chain_Frost_Nova, Player(0), EVENT_PLAYER_UNIT_SPELL_CHANNEL ) call TriggerAddCondition( gg_trg_Chain_Frost_Nova, Condition( function Trig_Chain_Frost_Nova_Conditions ) ) call TriggerAddAction( gg_trg_Chain_Frost_Nova, function Trig_Chain_Frost_Nova_Actions ) call TriggerRegisterPlayerUnitEventSimple( Chain_Freezing_Target, Player(0), EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER ) call TriggerAddCondition( Chain_Freezing_Target, Condition( function Trig_Chain_Freezing_Target_Conditions ) ) call TriggerAddAction( Chain_Freezing_Target, function Trig_Chain_Freezing_Target_Actions ) call TriggerRegisterTimerExpireEventBJ( Chainfreezing_Timer, udg_ChainFreezingTimer ) call TriggerAddAction( Chainfreezing_Timer, function Trig_Chainfreezing_Timer_Actions ) call TriggerRegisterPlayerUnitEventSimple( Chainfreezing_Research, Player(0), EVENT_PLAYER_HERO_SKILL ) call TriggerAddCondition( Chainfreezing_Research, Condition( function Trig_Chainfreezing_Research_Conditions ) ) call TriggerAddAction( Chainfreezing_Research, function Trig_Chainfreezing_Research_Actions ) call TriggerRegisterPlayerUnitEventSimple( Chain_Freezing_Remove, Player(0), EVENT_PLAYER_UNIT_SPELL_FINISH ) call TriggerAddCondition( Chain_Freezing_Remove, Condition( function Trig_Chain_Freezing_Remove_Conditions ) ) call TriggerAddAction( Chain_Freezing_Remove, function Trig_Chain_Freezing_Remove_Actions ) endfunction |
27.07.2005, 21:43 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Шизик
это бесы!
offline
Опыт:
1,431Активность: |
return ( GetSpellAbilityId() == 'A000' ) это первая нестандартная абила на мапе, я так понял, на той куда ты перенёс уже были кастом абилити... переносил ведь ктрл+ц ктрл+в? |
28.07.2005, 18:28 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|