Random Effect at Point

tuantai120

Cool Member
Reaction score
1
why does it not work ??
JASS:
scope Star initializer Init

globals
    private constant integer SID = 'A002'
    private constant integer DID = 'h000'
    private constant string SFX = "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl"
    private constant string Order = "channel"
    private constant real Interval = 0.04
    private constant real AOE = 600.
    private constant real Angle = 360.
endglobals

private struct sr
    unit caster
    unit dummy
    real time
    real dist
    real angle
endstruct

private function Star takes nothing returns nothing
    local timer t = GetExpiredTimer()
    local sr d = GetCSData(t)
    local real x = GetUnitX(d.caster)
    local real y = GetUnitY(d.caster)
    local real dist = GetRandomReal(1,AOE)
    local real ra = GetRandomReal(1,Angle)
    local real rad = ra * 3.14159/180
    local real xx = x + dist * Cos(rad)
    local real yy = y + dist * Sin(rad)
    call DestroyEffect(AddSpecialEffect(SFX,xx,yy))
    set d.time = d.time - Interval
    if OrderId2String(GetUnitCurrentOrder(d.caster)) != Order or d.time <= 0 then
        call ReleaseTimer(t)
        call d.destroy()
        set t = null
    endif
endfunction

private function Act takes nothing returns nothing
    local timer t
    local sr d
    local unit u = GetTriggerUnit()
    local integer i = 1
    local unit dumm
    local integer max = 20
    local real x = GetUnitX(u)
    local real y = GetUnitY(u)
    set d = sr.create()
    set t = NewTimer()
    call SetCSData(t,d)
    set d.caster = u
    set d.time = 250
    set d.dummy = dumm
    call BJDebugMsg("help")
    call TimerStart(t,Interval,true,function Star)
    set u = null
endfunction

private function Cond takes nothing returns boolean
    return GetSpellAbilityId() == SID
endfunction

private function Init takes nothing returns nothing
    local trigger s = CreateTrigger()
    call TriggerRegisterAnyUnitEventBJ(s,EVENT_PLAYER_UNIT_SPELL_EFFECT)
    call TriggerAddCondition(s,Condition (function Cond))
    call TriggerAddAction(s,function Act)
endfunction

endscope
 

scorpion182

New Member
Reaction score
5
it should be like this??

JASS:

scope Star initializer Init

globals
    private constant integer SID = 'A000'
    private constant integer DID = 'h000'
    private constant string SFX = "Abilities\\Spells\\Human\\Thunderclap\\ThunderClapCaster.mdl"
    private constant string Order = "channel"
    private constant real Interval = 0.3
    private constant real AOE = 600.
    private constant real Angle = 360.
endglobals

private struct sr
    unit caster
    real dist
    real angle
    timer t
    
    static method create takes unit c, timer t returns sr
        local sr d=sr.allocate()
        
        set d.caster=c
        set d.t=t
        
        return d
    endmethod
    
    private method onDestroy takes nothing returns nothing
        call ReleaseTimer(.t)
    endmethod
endstruct

private function Star takes nothing returns nothing
    local timer t = GetExpiredTimer()
    local sr d = sr(GetTimerData(t))
    local real x = GetUnitX(d.caster)
    local real y = GetUnitY(d.caster)
    local real dist = GetRandomReal(1,AOE)
    local real ra = GetRandomReal(1,Angle)
    local real rad = ra * 3.14159/180
    local real xx = x + dist * Cos(rad)
    local real yy = y + dist * Sin(rad)
    
    if OrderId2String(GetUnitCurrentOrder(d.caster)) != Order then
        call d.destroy()
    else
        call DestroyEffect(AddSpecialEffect(SFX,xx,yy))
    endif
    
    set t=null
endfunction

private function Act takes nothing returns nothing
    local timer t=NewTimer()
    local sr d=sr.create(GetSpellAbilityUnit(),t)
    
    
    call SetTimerData(t,integer(d))
    call TimerStart(t,Interval,true,function Star)
    set t = null
endfunction

private function Cond takes nothing returns boolean
    return GetSpellAbilityId() == SID
endfunction

private function Init takes nothing returns nothing
    local trigger s = CreateTrigger()
    call TriggerRegisterAnyUnitEventBJ(s,EVENT_PLAYER_UNIT_SPELL_EFFECT)
    call TriggerAddCondition(s,Condition (function Cond))
    call TriggerAddAction(s,function Act)
    set s=null
endfunction

endscope
 

Attachments

  • Testing.w3x
    28.2 KB · Views: 102

tuantai120

Cool Member
Reaction score
1
@scorpion182 : thanks very much , but i dont know anything about statict method
can you explain it ??
 

T.s.e

Wish I was old and a little sentimental
Reaction score
133
JASS:
local real rad = an * .0175


Why not put it? It the faster...
Why not "put this" and scrap the conversion?
JASS:
    private constant real Angle = 6.283185


JASS:
    local real ra = GetRandomReal(1,Angle)
    local real xx = x + dist * Cos(ra)
    local real yy = y + dist * Sin(ra)


Static method is usually used in struct Init..
Jesus christ, that explains nothing. Atleast try to make sense.

Tuantai, I reccomend that you read this. It should explain any questions you have about the features of vJASS.
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • Varine Varine:
    So, 2.5mm longer. But the thing that measures the bed is about 1.5mm above the nozzle, so if I swap it with a volcano then I'm 1mm behind it. So cool, new bracket to swap that, but THEN the fan shroud to direct air at the part is ALSO going to be .5mm to low, and so I need to redo that, but by doing that it is a little bit off where it should be blowing and it's throwing it at the heating block instead of the part, and fuck man
  • Varine Varine:
    I didn't realize they designed this entire thing to NOT be modded. I would have just got a fucking Bambu if I knew that, the whole point was I could fuck with this. And no one else makes shit for Sovol so I have to go through them, and they have... interesting pricing models. So I have a new extruder altogether that I'm taking apart and going to just design a whole new one to use my nozzles. Dumb design.
  • Varine Varine:
    Can't just buy a new heatblock, you need to get a whole hotend - so block, heater cartridge, thermistor, heatbreak, and nozzle. And they put this fucking paste in there so I can't take the thermistor or cartridge out with any ease, that's 30 dollars. Or you can get the whole extrudor with the direct driver AND that heatblock for like 50, but you still can't get any of it to come apart
  • Varine Varine:
    Partsbuilt has individual parts I found but they're expensive. I think I can get bits swapped around and make this work with generic shit though
  • Ghan Ghan:
    Heard Houston got hit pretty bad by storms last night. Hope all is well with TH.
  • The Helper The Helper:
    Power back on finally - all is good here no damage
    +2
  • V-SNES V-SNES:
    Happy Friday!
    +1
  • The Helper The Helper:
    New recipe is another summer dessert Berry and Peach Cheesecake - https://www.thehelper.net/threads/recipe-berry-and-peach-cheesecake.194169/
  • The Helper The Helper:
    I think we need to add something to the bottom of the front page that shows the Headline News forum that has a link to go to the News Forum Index so people can see there is more news. Do you guys see what I am saying, lets say you read all the articles on the front page and you get to the end and it just ends, no kind of link for MOAR!
  • The Helper The Helper:
    Happy Wednesday!
    +1
  • V-SNES V-SNES:
    Happy Friday!
    +1
  • The Helper The Helper:
    Sticking with the desserts for now the latest recipe is Fried Apple Pies - https://www.thehelper.net/threads/recipe-fried-apple-pies.194297/
  • The Helper The Helper:
    Finally finding about some of the bots that are flooding the users online - bytespider apparently is a huge offender here - ignores robots.txt and comes in from a ton of different IPs
  • Monovertex Monovertex:
    @The Helper I'm really not seeing the "Signature" link in the sidebar on that page. Here's a screenshot:
  • The Helper The Helper:
    I have reported it - I was wondering why nobody I have given sigs to over the last few years have used them
  • The Helper The Helper:
    Ghan has said he has fixed this. Monovertex please confirm this fix. This was only a problem with people that had signatures in the upper levels like not the special members but the respected members.
  • The Helper The Helper:
    Here is a better place to manage this stuff https://www.thehelper.net/account/account-details which I think should be way more visible
  • The Helper The Helper:
    I am hoping that online user count drop is finally that TikTok bot banned
  • Ghan Ghan:
    I added the filter last night.
  • The Helper The Helper:
    They are still there

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top