翌原点 发表于 2014-9-5 19:38:35

自己纯T试着做的超电磁炮

如题······
其实昨天试着在做诗乃的技能,但是看到了.kanade的とある科学の超电磁炮--->【再现~】 之后就想试着看看······(原本想直接用的······但是因为看不懂J······所以······)
于是某渣渣就花了一个下午的时间直接利用那张图的资料······结果······
只能说差太多了QAQ

目前最大的问题是那个电磁炮弹开的单位朝向老是出问题······
然后······
要怎样才能让硬币会做上抛运动再飞出去······
好想做出
http://bbs.islga.org/data/attachment/forum/pw/Mon_1204/13_58568_b6381d473f327b0.gif
红色的灰烬(?)和持续的电流QAQ
窝只会T······根本看不懂J之类的东东······变量也是今天刚接触一点皮毛······

翌原点 发表于 2014-9-6 11:44:11

······额
角度问题······
才发现不能用90这种实数······
应该用三角转换成角度才能······
硬币的上抛也解决······

剩下的就是红色灰烬和持续的电流了······
似乎用创建闪电效果也没用?

RoyalFlare 发表于 2014-9-7 10:30:58

本帖最后由 RoyalFlare 于 2014-9-7 10:32 编辑

Railgun
事件
单位 - 任意单位 发动技能效果
条件
(施放技能) 等于 电磁炮
动作
设置 MultiUnit1 = (触发单位)
设置 Location = ((触发单位) 的位置)
设置 Location = (从 Location 开始,距离 150.00 ,方向为 ((触发单位) 的面向角度) 度的位移处)
设置 DummyUnit = (最后创建的单位)
选择 - 取消选择 (触发单位) 对 (MultiUnit1 的所有者)
循环动作[循环整数A]从 1 到 50, 运行 (Loop - 动作)
Loop - 动作
设置 Location = (从 Location 开始,距离 (随机实数,最小值: 600.00 最大值: 1400.00) ,方向为 (随机实数,最小值: 0.00 最大值: 360.00) 度的位移处)
闪电效果 - 创建一道 闪电链 - 主 闪电效果,从 Location 到 Location
闪电效果 - 移动 (最后创建的闪电效果) 到新位置,(禁止 检查可见性) 新起始点: ((Location 的X轴坐标),(Location 的Y轴坐标),(随机实数,最小值: 300.00 最大值: 900.00)) 新终结点: ((Location 的X轴坐标),(Location 的Y轴坐标),100.00)
设置 Railguntx[(循环整数A)] = (最后创建的闪电效果)
自定义代码: call RemoveLocation (udg_Location)
自定义代码: call RemoveLocation (udg_Location)
触发器 - 开启 Railgun2 <预设>
等待 2.00 秒
触发器 - 关闭 Railgun2 <预设>
循环动作[循环整数A]从 1 到 50, 运行 (Loop - 动作)
Loop - 动作
闪电效果 - 删除 Railguntx[(循环整数A)]
自定义代码: call RemoveLocation (udg_Location)
设置 Railgun = 0.00
选择 - 选择 (触发单位) 对 (MultiUnit1 的所有者)
设置 MultiUnit1 = 没有单位
设置 DummyUnit = 没有单位

function Trig_Railgun2_Func007001003001 takes nothing returns boolean
    return ( IsUnitEnemy(GetFilterUnit(), GetOwningPlayer(udg_MultiUnit1)) == true )
endfunction
function Trig_Railgun2_Func007001003002 takes nothing returns boolean
    return ( IsUnitType(GetFilterUnit(), UNIT_TYPE_STRUCTURE) == false )
endfunction
function Trig_Railgun2_Func007001003 takes nothing returns boolean
    return GetBooleanAnd( Trig_Railgun2_Func007001003001(), Trig_Railgun2_Func007001003002() )
endfunction
function Trig_Railgun2_Func007A takes nothing returns nothing
    call UnitDamageTargetBJ( udg_MultiUnit1, GetEnumUnit(), ( I2R(GetHeroStatBJ(bj_HEROSTAT_STR, udg_MultiUnit1, true)) * I2R(GetUnitAbilityLevelSwapped('A01O', udg_MultiUnit1)) ), ATTACK_TYPE_CHAOS, DAMAGE_TYPE_UNIVERSAL )
endfunction
function Trig_Railgun2_Actions takes nothing returns nothing
    set udg_Railgun = ( udg_Railgun + 1 )
    set udg_Location = PolarProjectionBJ(udg_Location, ( 30.00 * udg_Railgun ), GetUnitFacing(udg_MultiUnit1))
    call CreateNUnitsAtLoc( 1, 'e006', GetOwningPlayer(udg_MultiUnit1), udg_Location, bj_UNIT_FACING)
    call UnitApplyTimedLifeBJ( 1.00, 'BHwe', udg_DummyUnit )
    call AddSpecialEffectLocBJ( udg_Location, "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl" )
    call DestroyEffect( GetLastCreatedEffectBJ() )
    call ForGroupBJ( GetUnitsInRangeOfLocMatching(600.00, udg_Location, Condition(function Trig_Railgun2_Func007001003)), function Trig_Railgun2_Func007A )
    call RemoveLocation (udg_Location)
endfunction
//===========================================================================
function InitTrig_Railgun2 takes nothing returns nothing
    set gg_trg_Railgun2 = CreateTrigger()
    call DisableTrigger( gg_trg_Railgun2 )
    call TriggerRegisterTimerEventPeriodic( gg_trg_Railgun2, 0.02 )
    call TriggerAddAction( gg_trg_Railgun2, function Trig_Railgun2_Actions )
endfunction

献丑了 这是我自己做的电磁炮技能 用的是愚蠢的直线创建马甲特效的做法 求围观求点评=3=
这样的技能可以多人使用麽? 还是要修改为局部变量才行?

RoyalFlare 发表于 2014-9-7 11:04:18

http://bbs.islga.org/forum.php?mod=viewthread&tid=870260
邪魔ご无双作品 夜の星的VJ版本看不懂代码= =

老尸 发表于 2014-9-24 18:27:05

jass完全看不懂

xujunnju 发表于 2014-10-22 12:13:24

good

timespy 发表于 2016-7-2 13:07:18

楼主真是大好人!
页: [1]
查看完整版本: 自己纯T试着做的超电磁炮