欢迎光临散文网 会员登陆 & 注册

jass基础-自定义闪避和暴击

2023-08-13 23:44 作者:庞各庄大棚  | 我要投稿

#include "../../jass/BlizzardAPI.j"

#include "../../jass/japi/YDWEEventDamageData.j"

library demo initializer test

   // 漂浮文字案例 - 自定义闪避和暴击

   globals

       hashtable ht

   endglobals


   function damageAction takes nothing returns nothing

       local unit u1 = GetTriggerUnit()

       local unit u2 = GetEventDamageSource()

       local integer lv = GetUnitAbilityLevel(u1, 'AHad')

       local integer lv2 = GetUnitAbilityLevel(u2, 'AHab')

       local texttag tt

       local real dam

       local real ran

       if lv >= 1 then

           set ran = GetRandomReal(0, 99)

           call BJDebugMsg(R2S(ran))

           if ran <= LoadReal(ht, 'AHad', lv) then

               call EXSetEventDamage(0)

               set tt = CreateTextTagUnitBJ("闪避", u1, 0, 10, 100, 100, 100, 0)

               call SetTextTagLifespan(tt, 1)

               call SetTextTagFadepoint(tt, 0.5)

               call SetTextTagPermanent(tt, false)

               call SetTextTagVelocityBJ(tt, 60, 45)

               return

           endif

       endif


       if lv2 >= 1 then

           set ran = GetRandomReal(0, 99)

           call BJDebugMsg(R2S(ran))

           if ran <= LoadReal(ht, 'AHab', lv2) then

               set dam = GetEventDamage() * 2

               call EXSetEventDamage(dam)

               set tt = CreateTextTagUnitBJ(R2S(dam), u1, 0, 10, 100, 0, 0, 0)

               call SetTextTagLifespan(tt, 1)

               call SetTextTagFadepoint(tt, 0.5)

               call SetTextTagPermanent(tt, false)

               call SetTextTagVelocityBJ(tt, 60, 45)

               return

           endif

       endif

   endfunction


   function triCreateUnit takes player p, integer uId, real x, real y, real face returns unit

       local unit u = CreateUnit(p, uId, x, y, face)

       local trigger t = CreateTrigger()

       call TriggerRegisterUnitEvent(t, u, EVENT_UNIT_DAMAGED)

       call TriggerAddAction(t, function damageAction)

       return u

   endfunction


   function doSomething takes nothing returns nothing


   endfunction


   function triggerInit takes nothing returns nothing

       local trigger t = CreateTrigger()

       call TriggerRegisterPlayerChatEvent(t, Player(0), "1", true)

       call TriggerAddAction(t, function doSomething)

       set t = null

   endfunction


   function gameInit takes nothing returns nothing

       local unit u = triCreateUnit(Player(0), 'Hpal', 0, 0, 0)

       local unit u2 = triCreateUnit(Player(0), 'Hamg', 100, 100, 0)

       set ht = InitHashtable()

       call SaveReal(ht, 'AHad', 1, 20)

       call SaveReal(ht, 'AHad', 2, 50)

       call SaveReal(ht, 'AHad', 3, 100)


       call SaveReal(ht, 'AHab', 1, 20)

       call SaveReal(ht, 'AHab', 2, 50)

       call SaveReal(ht, 'AHab', 3, 100)


       call SetHeroLevel(u, 10, false)

       call SetHeroLevel(u2, 10, false)

       call FogEnable(false)

       call FogMaskEnable(false)

   endfunction


   function test takes nothing returns nothing

       call gameInit()

       call triggerInit()

   endfunction

endlibrary

jass基础-自定义闪避和暴击的评论 (共 条)

分享到微博请遵守国家法律