找回密码
 点一下
查看: 1934|回复: 14

有几条触发有BUG无法运行来大佬帮忙看看

[复制链接]
发表于 2020-12-13 02:11:48 | 显示全部楼层 |阅读模式
(4) 魔兽战场-2020.w3x (2.47 MB, 下载次数: 3)
分别是圣骑士的光环和无敌 虚空假面的大招 老树的1 2 3 技能
都是判定技能 同样放大 恶魔猎手的1技能和 守望者的3技能可行为啥换了个英雄就触发不出来?
 楼主| 发表于 2020-12-13 22:42:21 | 显示全部楼层
都是判定BUFF和判定树木之类的 来大佬帮忙看看 怎么改
回复

使用道具 举报

发表于 2020-12-17 16:45:04 | 显示全部楼层
哎感觉 我们不同 我做技能全靠自己  一天能做一个英雄就不得了- -
回复

使用道具 举报

发表于 2020-12-17 16:45:59 | 显示全部楼层

function HuaFenfei1TJ takes nothing returns boolean
return ((GetSpellAbilityId() == 'A00K') and (IsUnitType(GetSpellAbilityUnit(), UNIT_TYPE_HERO) == true))
endfunction

function HuaFenfei2DZ takes nothing returns nothing
local unit u=GetTriggerUnit()
local unit u2
if UnitHasBuffBJ(u, 'B003') == false then
call DisableTrigger(GetTriggeringTrigger())
call DestroyTrigger(GetTriggeringTrigger())
call GroupRemoveUnit(grtjpd, u)
endif
if GetEventDamage() > 0.00 then
if (((GetUnitAbilityLevel(u, 'A00L') < 1) and (UnitHasBuffBJ(u, 'B003') == true)) and (GetRandomPercentageBJ() <= 50.00)) then
call SetUnitLifeBJ(u, OperatorRealAdd(GetUnitState(u, UNIT_STATE_LIFE), GetEventDamage()))
endif
if (((GetUnitAbilityLevel(u, 'A00L') > 0) and (UnitHasBuffBJ(u, 'B003') == true)) and (GetRandomPercentageBJ() <= 65.00)) then
call SetUnitLifeBJ(u, OperatorRealAdd(GetUnitState(u, UNIT_STATE_LIFE), GetEventDamage()))
endif
endif
//----------------单位类型------------------------------------------
set u=null
set u2=null
endfunction
//----------------------免伤触发上列------------------------------------------------------------------

function HuaBafG02 takes nothing returns nothing
local timer t=GetExpiredTimer()
local integer id=GetHandleId(t)
local unit u=LoadUnitHandle(hc,id,1)
local unit u2=LoadUnitHandle(hc,id,4)
local unit u3=GetEnumUnit()
local real rx=GetUnitX(u2)
local real ry=GetUnitY(u2)
if(((IsUnitType(u3, UNIT_TYPE_STRUCTURE) == false) and ((IsUnitType(u3, UNIT_TYPE_MAGIC_IMMUNE) == false) and ((IsUnitType(u3, UNIT_TYPE_DEAD) == false) and ((IsUnitEnemy(u3, GetOwningPlayer(u)) == true) and (u3 != u))))))then
call UnitDamageTarget(u, u3, OperatorRealAdd(OperatorRealMultiply(I2R(GetHeroAgi(u, true)), 2.00), OperatorRealMultiply(300.00, I2R(GetUnitAbilityLevel(u, 'A00K')))), true, true, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_MIND, WEAPON_TYPE_WHOKNOWS)
call DestroyEffect(AddSpecialEffectTarget("Objects\\Spawnmodels\\Critters\\Albatross\\CritterBloodAlbatross.mdl", u3, "chest"))
call DestroyEffect(AddSpecialEffect("Abilities\\Weapons\\Bolt\\BoltImpact.mdl", rx, ry))
call RemoveUnit(u2)//-------------------碰撞删除残影---------------
endif
set u=null
set u2=null
set u3=null
set t=null
endfunction

function HuaBafG01 takes nothing returns nothing
local timer t=GetExpiredTimer()
local integer id=GetHandleId(t)
local group g2=CreateGroup()
local unit u2=GetEnumUnit()
local real rx=GetUnitX(u2)
local real ry=GetUnitY(u2)
call GroupEnumUnitsInRange(g2,rx,ry,375.00, null)
call SaveUnitHandle(hc,id,4,u2)
call ForGroup(g2, function HuaBafG02)
call GroupClear(g2)
call DestroyGroup(g2)
set u2=null
set g2=null
set t=null
endfunction

function HuaBafG03 takes nothing returns nothing
local unit u2=GetEnumUnit()
call DestroyEffect(AddSpecialEffect("Abilities\\Weapons\\Bolt\\BoltImpact.mdl", GetUnitX(u2), GetUnitY(u2)))
call RemoveUnit(u2)
set u2=null
//---------------------------清除残影----------------------------------------
endfunction

function HuaFenfei1JSQDZ takes nothing returns nothing
local timer t=GetExpiredTimer()
local integer id=GetHandleId(t)
local unit u=LoadUnitHandle(hc,id,1)
local group g=LoadGroupHandle(hc,id,2)
local real r=LoadReal(hc,id,3)+1
call SaveReal(hc,id,3,r)
call ForGroup(g, function HuaBafG01)
//----------------------------------到期删除-------------------------------------------------------------清理内存-------------------
if r >= 12 then
call PauseTimer(t)
call DestroyTimer(t)
call ForGroup(g, function HuaBafG03)
call GroupClear(g)
call DestroyGroup(g)
call FlushChildHashtable(hc,id)
set u=null
set t=null
set g=null
endif
endfunction


function HuaFenfei1DZ takes nothing returns nothing
local timer t=CreateTimer()
local integer id=GetHandleId(t)
local unit  u=GetTriggerUnit()
local real rx=GetUnitX(u)
local real ry=GetUnitY(u)
local group g=CreateGroup()
local real  r=0
local unit u2
local real nx
local real ny
local trigger HuaFenfei2
//-------------技能生效------------------------------
call PolledWait(0.10)
call SetUnitTimeScale(u, 0.20)
call SetUnitVertexColor(u, 105, 105,105, 75)
//--------------免伤设置---------------------------------
if IsUnitInGroup(u, grtjpd) == false then
call GroupAddUnit(grtjpd, u)
set HuaFenfei2=CreateTrigger()
call TriggerAddAction(HuaFenfei2, function HuaFenfei2DZ)
call TriggerRegisterUnitEvent(HuaFenfei2, u, EVENT_UNIT_DAMAGED)
set HuaFenfei2=null
endif
//---------------------瞬间伤害----------------------------------------
call GroupEnumUnitsInRange(g,rx,ry,600.00, null)
call DestroyEffect(AddSpecialEffect("yinghua.mdx", rx, ry))
loop
set u2=FirstOfGroup(g)
if(((IsUnitType(u2, UNIT_TYPE_STRUCTURE) == false) and ((IsUnitType(u2, UNIT_TYPE_MAGIC_IMMUNE) == false) and ((IsUnitType(u2, UNIT_TYPE_DEAD) == false) and ((IsUnitEnemy(u2, GetOwningPlayer(u)) == true) and (u2 != u))))))then
call UnitDamageTarget(u, u2, OperatorRealAdd(OperatorRealMultiply(I2R(GetHeroAgi(u, true)), 2.00), OperatorRealMultiply(300.00, I2R(GetUnitAbilityLevel(u, 'A00K')))), true, true, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_MIND, WEAPON_TYPE_WHOKNOWS)
call DestroyEffect(AddSpecialEffectTarget("Objects\\Spawnmodels\\Human\\HumanBlood\\BloodElfSpellThiefBlood.mdl", u2, "chest"))
endif
call GroupRemoveUnit(g, u2)
set u2=null
exitwhen CountUnitsInGroup(g)==0
endloop
set u2=null
//---------------2次动作----------------
loop
set r=r+90
set nx = rx + 375*Cos(Deg2Rad(r))
set ny = ry + 375*Sin(Deg2Rad(r))
if GetUnitTypeId(u) == 'E002'  then
set u2=CreateUnit(GetOwningPlayer(u), 'h007', nx, ny, r)
if GetUnitAbilityLevel(u, 'A011') >= 1 then
call SetUnitScale(u2, 1.60, 1.60, 1.60)
endif
else
if GetUnitTypeId(u) == 'E006'  then
set u2=CreateUnit(GetOwningPlayer(u), 'h00K', nx, ny, r)
if GetUnitAbilityLevel(u, 'A011') >= 1 then
call SetUnitScale(u2, 1.60, 1.60, 1.60)
endif
else
if GetUnitTypeId(u) == 'E007'  then
set u2=CreateUnit(GetOwningPlayer(u), 'h00L', nx, ny, r)
if GetUnitAbilityLevel(u, 'A011') >= 1 then
call SetUnitScale(u2, 1.60, 1.60, 1.60)
endif
else
if GetUnitTypeId(u) == 'E00D'  then
set u2=CreateUnit(GetOwningPlayer(u), 'h00R', nx, ny, r)
call SetUnitAnimation(u, "attack")
if GetUnitAbilityLevel(u, 'A011') >= 1 then
call SetUnitScale(u2, 2.50, 2.50, 2.50)
endif
else
set u2=CreateUnit(GetOwningPlayer(u), 'h00D', nx, ny, r)
if GetUnitAbilityLevel(u, 'A011') >= 1 then
call SetUnitScale(u2, 2.50, 2.50, 2.50)
endif
endif
endif
endif
endif
call SetUnitAnimation(u2, "spell slam")
call SetUnitTimeScale(u2, 0.55)
call SetUnitVertexColor(u2, 255, 255, 255, 145)
call SetUnitX(u, nx)
call SetUnitY(u, ny)
call GroupAddUnit(g, u2)
set u2=null
call PolledWait(0.10)
exitwhen r>=360
endloop
call SetUnitTimeScale(u, 1.00)
call SetUnitVertexColor(u, 255, 255, 255, 255)
call SetUnitX(u, rx)
call SetUnitY(u, ry)
set u2=null
set r=0
//--------绑定计时器计算分身伤害-----------------------------------------
call SaveUnitHandle(hc,id,1,u)
call SaveGroupHandle(hc,id,2,g)
call SaveReal(hc,id,3,r)
call TimerStart(t,0.50,true,function HuaFenfei1JSQDZ)
set u=null
set u2=null
set t=null
set g=null
set HuaFenfei2=null
endfunction





//------------------------------------------------------幻化纷飞-----------------------------------------------------
function InitTrig_HuaFenfei1 takes nothing returns nothing
local trigger HuaFenfei1= CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(HuaFenfei1, EVENT_PLAYER_UNIT_SPELL_EFFECT)
call TriggerAddCondition(HuaFenfei1, Condition(function HuaFenfei1TJ))
call TriggerAddAction(HuaFenfei1, function HuaFenfei1DZ)
set HuaFenfei1=null
endfunction

说白了 JASS不是很厉害- -  
回复

使用道具 举报

发表于 2020-12-17 16:47:20 | 显示全部楼层
我做的这玩意 可以随意移植 把技能 和单位 改下就行了- -
回复

使用道具 举报

 楼主| 发表于 2020-12-17 21:17:31 | 显示全部楼层
qw2478hf 发表于 2020-12-17 16:47
我做的这玩意 可以随意移植 把技能 和单位 改下就行了- -

是很厉害就是看不懂。。。一直用的中文 。。。话说有没有英文的教学 傻瓜版也好 主要看不懂。。
回复

使用道具 举报

 楼主| 发表于 2020-12-17 21:20:52 | 显示全部楼层
qw2478hf 发表于 2020-12-17 16:45
哎感觉 我们不同 我做技能全靠自己  一天能做一个英雄就不得了- -

以前空的时候一天好几个都没啥事 现在也差不多一个左右 就是问题一大堆 各种BUG 基础不牢 ,全靠自己摸索
回复

使用道具 举报

 楼主| 发表于 2020-12-17 21:23:34 | 显示全部楼层
qw2478hf 发表于 2020-12-17 16:47
我做的这玩意 可以随意移植 把技能 和单位 改下就行了- -

大佬 先谢过啦 不过这J文看不懂耶 也从来没接触过 不清楚怎么移植  还有我这里主要问题还是判定周围有树木 不能给个判定周围树木的T版么 英文功底确实比较烂
回复

使用道具 举报

发表于 2020-12-20 15:17:06 | 显示全部楼层
没中文 我只有JASS 可以移植 判断周围障碍物品 不仅仅判断了树木- -
回复

使用道具 举报

 楼主| 发表于 2020-12-28 16:24:56 | 显示全部楼层
qw2478hf 发表于 2020-12-20 15:17
没中文 我只有JASS 可以移植 判断周围障碍物品 不仅仅判断了树木- -

树木问题搞定了 用以XXX点为中心高250 宽250 随机选取一个可破坏物类型=白杨谷树木 其他还是弄不来
回复

使用道具 举报

发表于 2021-2-4 09:25:24 | 显示全部楼层
支持一下、、、、、、、、。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-12-22 11:51 , Processed in 0.214921 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表