Invalid argument type (rect), what it this?

Evoroth

New Member
Reaction score
11
Invalid argument type (rect), what should I do?

This line:
call TriggerAddCondition( gg_trg_Rescue_Quest_Start, Condition( function Trig_Rescue Quest_Start_Conditions ) )
keeps getting a compile error message I dont understand; "Invalid argument type (rect)". What does it mean, and what is wrong with the trigger?

Trigger:
Code:
function Trig_Rescue_Quest_Start_Conditions takes nothing returns boolean
    if udg_Quest_Completed[0] == true then 
        return false
    endif
    if udg_Rescue_Quest_Active[GetPlayerId(GetOwningPlayer(GetEnteringUnit()))] == true then 
        return false
    endif
    if ( IsUnitType(GetEnteringUnit(), UNIT_TYPE_HERO) == false ) then
        return false
    endif 
    return true
endfunction

function Trig_Rescue_Quest_Start_SimpleTransmission takes player whichPlayer, unit whichUnit, string unitName, sound soundHandle, string message, integer timeType, real timeVal, boolean wait returns nothing
    call TryInitCinematicBehaviorBJ()

    set bj_lastTransmissionDuration = GetTransmissionDuration(soundHandle, timeType, timeVal)
    set bj_lastPlayedSound = soundHandle

    if GetLocalPlayer() == whichPlayer then

        call DoTransmissionBasicsXYBJ(GetUnitTypeId(whichUnit), GetPlayerColor(GetOwningPlayer(whichUnit)), GetUnitX(whichUnit), GetUnitY(whichUnit), soundHandle, unitName, message, bj_lastTransmissionDuration)
    endif

    if wait and (bj_lastTransmissionDuration > 0) then
        call WaitTransmissionDuration(soundHandle, timeType, timeVal)
    endif
endfunction

function Trig_Rescue_Quest_Start_Actions takes nothing returns nothing
    set udg_Rescue_Quest_Active[GetPlayerId(GetOwningPlayer(GetEnteringUnit()))] = true
    call Trig_Rescue_Quest_Start_SimpleTransmission(GetOwningPlayer(GetEnteringUnit()), gg_unit_nvil_0028, "Villager", null, "Insert sterotype rescue-my-brother-please-message here", bj_TIMETYPE_SET, 8, true)
        
endfunction

function InitTrig_Rescue_Quest_Start takes nothing returns nothing
    set gg_trg_Rescue_Quest_Start = CreateTrigger()
    call TriggerRegisterEnterRegion(gg_trg_Rescue_Quest_Start, gg_rct_Rescue_Quest_Home, null)
    call TriggerAddCondition( gg_trg_Rescue_Quest_Start, Condition( function Trig_Rescue Quest_Start_Conditions ) )
    call TriggerAddAction(gg_trg_Rescue_Quest_Start, function Trig_Rescue_Quest_Start_Actions)
endfunction

This trigger is for an experiment map, but any other comments or tips are very welcome.

Thanks.
 

Doom-Angel

Jass User (Just started using NewGen)
Reaction score
167
JASS:
    call TriggerAddCondition( gg_trg_Rescue_Quest_Start, Condition( function Trig_Rescue Quest_Start_Conditions ) )

should be:
JASS:
    call TriggerAddCondition( gg_trg_Rescue_Quest_Start, Condition( function Trig_Rescue_Quest_Start_Conditions ) )

u forgot the "_" so it wasn't the exact name of the function

also a better way of checking condition is:
JASS:
function Trig_Rescue_Quest_Start_Conditions takes nothing returns boolean
    return (udg_Quest_Completed[0] == true) and (udg_Rescue_Quest_Active[GetPlayerId(GetOwningPlayer(GetEnteringUnit()))] == true) and (( IsUnitType(GetEnteringUnit(), UNIT_TYPE_HERO) == false ))
endfunction

it's more effiencient this way

the rest seems fine i think also next time use Jass tags for jass
 

elmstfreddie

The Finglonger
Reaction score
203
JASSCraft can be dumb like that, it's referring to the line above actually...
JASS:
call TriggerRegisterEnterRegion(gg_trg_Rescue_Quest_Start, gg_rct_Rescue_Quest_Home, null)

Should most likely be
JASS:
call TriggerRegisterEnterRegion(gg_trg_Rescue_Quest_Start, udg_Rescue_Quest_Home, null)


Because gg_trg_ is the prefix for triggers defined on the trigger editor.

I dunno if that's gonna work because I don't think you made the region in the variable editor >_>
Uhh... Oh well, make a region variable called Rescue Quest Home and set it to your region lol

Edit > I typoed in the code :eek:
 

Sim

Forum Administrator
Staff member
Reaction score
534
JASSCraft can be dumb like that, it's referring to the line above actually...
JASS:
call TriggerRegisterEnterRegion(gg_trg_Rescue_Quest_Start, gg_rct_Rescue_Quest_Home, null)

Should most likely be
JASS:
call TriggerRegisterEnterRegion(gg_trg_Rescue_Quest_Start, udg_Rescue_Quest_Home, null)


Because gg_trg_ is the prefix for triggers defined on the trigger editor.

I dunno if that's gonna work because I don't think you made the region in the variable editor >_>
Uhh... Oh well, make a region variable called Rescue Quest Home and set it to your region lol

Edit > I typoed in the code :eek:

gg_trg is the prefix for triggers but notice carefully that he used "gg_rct", which is the right prefix for rects.
 

elmstfreddie

The Finglonger
Reaction score
203
Oh... I thought it said gg_trg :nuts:

Well I know that line is the problem because JASSCraft always tells me it's the line above the one it actually is...

Are you sure that's the name of your rect?
 

Evoroth

New Member
Reaction score
11
Are you sure that's the name of your rect?

Yes. Its first name was Rescue_Quest_Start though (changing to "...Home" is just one of the pointless things I've tried). I changed it back to "Rescue_Quest_Start" in the Rect/Region Editor, and then was the error message replaced with "Expected a name". However, when I changed to "Rescue_Quest_Start" in the Trigger Editor, all was back to normal with the Invalid argument type. The error comes from WE's script error finder; JASSCraft's didn't find it at all. And adding the "_" didn't change anything.

Edit: I also tried on another computer and recreated the trigger, just for the sake of it. Still same problem.
 

N-a-z-g-u-l

New Member
Reaction score
30
JASS:
native TriggerRegisterEnterRegion takes trigger whichTrigger, region whichRegion, boolexpr filter returns event


it takes a region, no rect...

a region can contain multiple rects...


you need to create a region and then add the rect first:
JASS:
function InitTrig_Rescue_Quest_Start takes nothing returns nothing
    local region rectRegion = CreateRegion()
    call RegionAddRect(rectRegion, gg_rct_Rescue_Quest_Start)
    set gg_trg_Rescue_Quest_Start = CreateTrigger()
    call TriggerRegisterEnterRegion(gg_trg_Rescue_Quest_Start, rectRegion, null)
    call TriggerAddCondition( gg_trg_Rescue_Quest_Start, Condition( function Trig_Rescue Quest_Start_Conditions ) )
    call TriggerAddAction(gg_trg_Rescue_Quest_Start, function Trig_Rescue_Quest_Start_Actions)
endfunction
 
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