• Check out the results of the Techtree Contest #19!
  • Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.
  • Create a void inspired texture for Warcraft 3 and enter Hive's 34th Texturing Contest: Void! Click here to enter!
  • The Hive's 22nd Icon Contest: Creep Abilities is now concluded, time to vote for your favourite set of icons! Click here to vote!

[JASS] Working with Jass

Status
Not open for further replies.
Level 6
Joined
Oct 14, 2010
Messages
58
hi

working in jass arose problem, I did not want to use BJ
I used a local variable

Please tell me what this code is not so

JASS:
function Trig_StartGame_Condition takes nothing returns boolean
    return ( GetPlayerSlotState(ConvertedPlayer(i)) == PLAYER_SLOT_STATE_PLAYING )
endfunction
function Trig_StartGame_Actions takes nothing returns nothing
    local integer i = 1
    set i = 1
    loop
        exitwhen i > 6
        if ( Trig_StartGame_Condition() ) then
        call CreateNUnitsAtLoc( 1, 'H003', ConvertedPlayer(i), udg_ArcherPoint[GetConvertedPlayerId(ConvertedPlayer(GetForLoopIndexA()))], 45.00 )
        set udg_archer[GetConvertedPlayerId(ConvertedPlayer(i))] = GetLastCreatedUnit()
        call UnitAddItemByIdSwapped( 'I001', GetLastCreatedUnit() )
        call SelectUnitForPlayerSingle( GetLastCreatedUnit(), ConvertedPlayer(i) )
        call PanCameraToTimedLocForPlayer( ConvertedPlayer(i), GetUnitLoc(GetLastCreatedUnit()), 0.50 )
        endif
        set i = i + 1
    endloop
    set i = 7
    loop
        exitwhen i > 12
        if ( Trig_StartGame_Condition() ) then
        call CreateNUnitsAtLoc( 1, 'H003', ConvertedPlayer(i), udg_ArcherPoint[GetConvertedPlayerId(ConvertedPlayer(GetForLoopIndexA()))], 225.00 )
        set udg_archer[GetConvertedPlayerId(ConvertedPlayer(i))] = GetLastCreatedUnit()
        call UnitAddItemByIdSwapped( 'I001', GetLastCreatedUnit() )
        call SelectUnitForPlayerSingle( GetLastCreatedUnit(), ConvertedPlayer(i) )
        call PanCameraToTimedLocForPlayer( ConvertedPlayer(i), GetUnitLoc(GetLastCreatedUnit()), 0.50 )
        endif
        set i = i + 1
    endloop
    call DestroyTrigger( GetTriggeringTrigger() )
    endfunction
function InitTrig_StartGame takes nothing returns nothing
    set gg_trg_StartGame = CreateTrigger( )
    call TriggerRegisterTimerEventSingle( gg_trg_StartGame, 1.10 )
    call TriggerAddAction( gg_trg_StartGame, function Trig_StartGame_Actions )
endfunction

thx. I newbie in Jass)
 
Moin moin =)

Hmm as I see you mainly just converted GUI to Jass. But this what you got there, is bad Jass because it's just converted.

Your trigger must look like this ( I hope I did it correctly now^^ )

JASS:
function StartGame takes nothing returns nothing
    local real f = 0.00 // Facing
    local integer i = 0 // For the loop
    local unit u // For the unit ( that is created )
    local real x = GetRectCenterX(udg_ArcherPoint) // WHERE the unit is created (x)
    local real y = GetRectCenterY(udg_ArcherPoint) // WHERE the unit us created (y)
    
    loop
        exitwhen i == 11
        if i <= 4 then
            set f = 45.00
        elseif i > 4 then
            set f = 225.00
        endif
        
        if GetPlayerSlotState(Player(i)) == PLAYER_SLOT_STATE_PLAYING then
            set u = CreateUnit(Player(i),'H003',x,y,f)
            call UnitAddItem(u,'I001')
            if GetLocalPlayer() == Player(i) then
                call ClearSelection()
                call SelectUnit(u,true)
                call PanCameraToTimed(x,y,0.50)
            endif
            set i = i + 1
            set u = null
        endif
    endloop
endfunction

function InitTrig_StartGame takes nothing returns nothing
    set gg_trg_StartGame = CreateTrigger( )
    call TriggerRegisterTimerEvent(gg_trg_StartGame,1.10,false)
    call TriggerAddAction( gg_trg_StartGame, function Trig_StartGame_Actions )
endfunction

NOTE: Player 1 (RED) is in Jass Player(0) so Player 12 (Brown) is in Jass Player(11)!

Greetings and Peace
Dr. Boom
 
Wow) Thanks) Do not think that everything is arranged)

With the help of which learned to write in Jass?


and name
JASS:
function ========StartGame======= takes nothing returns nothing
    //actions
function InitTrig_StartGame takes nothing returns nothing
    set gg_trg_StartGame = CreateTrigger( )
    call TriggerRegisterTimerEvent(gg_trg_StartGame,1.10,false)
    call TriggerAddAction( gg_trg_StartGame, function =====Trig_StartGame_Actions====== )
endfunction
its mistake?
 
Moin moin T_T

YES! f**k it's a mistake ^^ I always forget to change this =D

The master of Jass (for me) when I learned jass ( and he still is for me) is: ap0calypse. He teach me sooooo many things about it!!!!! ( Thanks again to you ap0calypse at this point! )


But also if you learn jass you should use the JNGP and the Jasshelper. The jasshelper ( in the JNPG ) is a useful tool for learning jass.

Btw. I learn vJass now ;) - you should directly start with this - it's very cool and you can do everything! ;)

Greetings and Peace
Dr. Boom
 
Status
Not open for further replies.
Back
Top