[Simple] Converting GUI to JASS

Flare

Stops copies me!
Reaction score
662
IIRC you can declare one, and only one globals block in the map header.
JASS:
globals
  real value //also attempted adding an initial value
endglobals

Gives 3 'Expected end of line' errors so, unless I'm going something seriously wrong, the only globals block available is the one that normally exists for a map if you aren't using NewGen
 

Sevion

The DIY Ninja
Reaction score
413
Strange. I thought I remembered using global blocks in the header... Oh, well. Seems I was wrong.
 

xoxdragonxox

New Member
Reaction score
1
Soooooooo Im guessing theres not way to improve that code into jass without newgen :thdown:

Thanks for the help tho guys xD
 

xoxdragonxox

New Member
Reaction score
1
Well then would you be so kind as to make it into a Vanilla Jass, Because im sure any kind of jass would be better than GUI
 

Sevion

The DIY Ninja
Reaction score
413
Create two triggers (MuzzleFlash and Items) and copy the code into the respective triggers. Then, in the Variable Editor (Ctrl+B) create these variables:

JASS:
string MuzzleFlash_MODEL
string MuzzleFlash_ATTACH
real MuzzleFlash_WAIT_TIME
real Items_maxX
real Items_minX
real Items_maxY
real Items_minY


JASS:
function Trig_MuzzleFlash_Actions takes nothing returns nothing
    local effect e = AddSpecialEffectTarget(udg_MuzzleFlash_MODEL, GetTriggerUnit(), udg_MuzzleFlash_ATTACH)
    call TriggerSleepAction(udg_MuzzleFlash_WAIT_TIME)
    call DestroyEffect(e)
    set e = null
endfunction

function Trig_MuzzleFlash_Conditions takes nothing returns boolean
    return GetUnitTypeId(GetFilterUnit(), UNIT_TYPE_HERO) and udg_Reload[GetPlayerId(GetOwningPlayer(GetFilterUnit()))] == 0
endfunction
    
function InitTrig_MuzzleFlash takes nothing returns nothing
    set gg_trg_MuzzleFlash = CreateTrigger()
    set udg_MuzzleFlash_MODEL = "war3mapImported\\Konstrukt_ShotgunEffektAttachment.MDX"
    set udg_MuzzleFlash_ATTACH = "weapon"
    set udg_MuzzleFlash_WAIT_TIME = 1.00
    call TriggerRegisterAnyUnitEventBJ(gg_trg_MuzzleFlash, EVENT_PLAYER_UNIT_ATTACKED)
    call TriggerAddCondition(gg_trg_MuzzleFlash, Filter(function Trig_MuzzleFlash_Conditions))
    call TriggerAddAction(gg_trg_MuzzleFlash, function Trig_MuzzleFlash_Actions)
endfunction


JASS:
function Trig_Items_Actions takes nothing returns nothing
    local integer i = 19
    loop
        exitwhen i == 0
        call CreateItem( udg_Items[GetRandomInt(1, 9)], GetRandomReal( udg_Items_minX, udg_Items_maxX ), GetRandomReal( udg_Items_minY, udg_Items_maxY ))
        set i = i - 1
    endloop
endfunction

//===========================================================================
function InitTrig_Items takes nothing returns nothing
    set udg_Items_maxX = GetRectMaxX(gg_rct_MAP)
    set udg_Items_minX = GetRectMinX(gg_rct_MAP)
    set udg_Items_maxY = GetRectMaxY(gg_rct_MAP)
    set udg_Items_minY = GetRectMinY(gg_rct_MAP)
    call TimerStart( CreateTimer(), 90.00, true, function Trig_Items_Actions )
endfunction
 

xoxdragonxox

New Member
Reaction score
1
I did step by step! and no luck. it just gives me a bunch of syntax errors and sometimes just crashes my editor.
 

PurgeandFire

zxcvmkgdfg
Reaction score
509

xoxdragonxox

New Member
Reaction score
1
I noticed that you guys changed my variable name lol you guys used udg_Reload
when it is udg_Reloading so i changed that. Items trigger seems to work and compile.

I tried just importing the Muzzleflash trigger and changing the variable name to the correct one, and my editor just crashes trying to compile
 

Sevion

The DIY Ninja
Reaction score
413
>udg_Reloading

Oops :eek:

Here, let me try with MuzzleFlash and I'll edit with results. I never really compiled them o_o'

Strange, when I compiled it, it all worked for me o_O'

Try moving it to a blank map and compiling it and see if it works.
 

xoxdragonxox

New Member
Reaction score
1
I tried making a fresh map with just muzzle flash and stil not working. i get 17 compile errors and then disables the trigger

I attached the fresh map if it helps:)
 

Attachments

  • testmuzzleflash.w3m
    15.7 KB · Views: 130

Sevion

The DIY Ninja
Reaction score
413
This works for me:

JASS:
function Trig_MuzzleFlash_Actions takes nothing returns nothing
    local effect e = AddSpecialEffectTarget(udg_MuzzleFlash_MODEL, GetTriggerUnit(), udg_MuzzleFlash_ATTACH)
    call TriggerSleepAction(udg_MuzzleFlash_WAIT_TIME)
    call DestroyEffect(e)
    set e = null
endfunction

function Trig_MuzzleFlash_Conditions takes nothing returns boolean
    return IsUnitType(GetFilterUnit(), UNIT_TYPE_HERO) and udg_Reload[GetPlayerId(GetOwningPlayer(GetFilterUnit()))] == 0
endfunction
    
function InitTrig_MuzzleFlash takes nothing returns nothing
    set gg_trg_MuzzleFlash = CreateTrigger()
    set udg_MuzzleFlash_MODEL = "war3mapImported\\Konstrukt_ShotgunEffektAttachment.MDX"
    set udg_MuzzleFlash_ATTACH = "weapon"
    set udg_MuzzleFlash_WAIT_TIME = 1.00
    call TriggerRegisterAnyUnitEventBJ(gg_trg_MuzzleFlash, EVENT_PLAYER_UNIT_ATTACKED)
    call TriggerAddCondition(gg_trg_MuzzleFlash, Filter(function Trig_MuzzleFlash_Conditions))
    call TriggerAddAction(gg_trg_MuzzleFlash, function Trig_MuzzleFlash_Actions)
endfunction


In the test map, you forgot to add Reload as an integer array.

Also, instead of GetUnitTypeId, change it to IsUnitType. Don't change anything in the parentheses. Just that part.
 

xoxdragonxox

New Member
Reaction score
1
hmm. now it finaly compiled but i swear i did nothing different. i oly forgot to add reload, but reload was already in the map i used to test it earler

Fully working lol THANK YOU! :)
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      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