Mission Bug

illidan92

New Member
Reaction score
6
The first house you search spawns the civilians at (0,0) (indicates there's something wrong with the house rects), but then all of the next houses you try to search stop at the "Search House 1" debug message and goes all the way to house 7 in the loop, and I have no idea why. Does anyone have a clue why this is happening?

JASS:
//====================================-----Mission 2----====================================
    
    
    private function SearchHouseConditions takes nothing returns boolean
        local unit u=GetFilterUnit()
        local boolean b=GetPlayerId(GetOwningPlayer(u))<12 and IsUnitAliveBJ(u) and IsUnitType(u, UNIT_TYPE_HERO)
        set u=null
        return b
    endfunction
    
    private function SearchHouse takes nothing returns nothing
        local integer i=1
        local integer index=1
        local unit u=GetEnteringUnit()
        local unit c
        local player p=GetOwningPlayer(u)
        
        loop
          exitwhen RectContainsUnit(House<i>, u) or i&gt;HouseCount
call BJDebugMsg(I2S(i))
          set i=i+1
        endloop
call BJDebugMsg(&quot;Search house 1&quot;)
        
        if HouseSearched<i>==true then
          set u=null
          set c=null
          return
        endif
call BJDebugMsg(&quot;Search house 2&quot;)
        set HouseSearched<i>=true
        set HousesRemaining=HousesRemaining-1
call BJDebugMsg(&quot;Search house 3&quot;)
        
        call ShowUnit(u, false)
        call PolledWait2(GetRandomReal(1,3))
        
        
        
        if GetRandomInt(1,15)!=1 then
        
          call FieldChat(u, 5, &quot;|cff808000&quot; + GetUnitName(u) + &quot;:|r &quot; + FoundCivsChat[GetRandomInt(1, 8)])
          call PolledWait2(1.)
          call ShowUnit(u, true)
          loop
            exitwhen index &gt; GetRandomInt(1,3)
            set c=CreateUnit(p, CivilianIDs[GetRandomInt(1,5)], GetRectCenterX(House<i>), GetRectCenterY(House<i>), GetRandomReal(0,360))
            call GroupAddUnit(EscortedCivs,c)
            set index=index+1
          endloop
          
        else //zombie fun
          
          if GetRandomInt(1,3)!=1 then
          
            call SetSoundPosition(gg_snd_Rifle1,GetUnitX(u),GetUnitY(u),10)
            call StartSound(gg_snd_Rifle1)
            call PolledWait2(.4)
            call SetSoundPosition(gg_snd_Rifle2,GetUnitX(u),GetUnitY(u),10)
            call StartSound(gg_snd_Rifle2)
            call PolledWait2(.15)
            call SetSoundPosition(gg_snd_ZombieDeath,GetUnitX(u),GetUnitY(u),10)
            call StartSound(gg_snd_ZombieDeath)
            
            call PolledWait2(1.5)
            call FieldChat(u, 5, &quot;|cff808000&quot; + GetUnitName(u) + &quot;:|r They ain&#039;t coming out.&quot;)
            call PolledWait2(1.)
            call ShowUnit(u, true)
            
          else
          
            call SetSoundPosition(gg_snd_Rifle1,GetUnitX(u),GetUnitY(u),10)
            call StartSound(gg_snd_Rifle1)
            call PolledWait2(.4)
            call SetSoundPosition(gg_snd_Rifle2,GetUnitX(u),GetUnitY(u),10)
            call StartSound(gg_snd_Rifle2)
            call PolledWait2(.8)
            call FieldChat(u, 5, &quot;|cff808000&quot; + GetUnitName(u) + &quot;:|r Oh shit!&quot;)
            call PolledWait2(1.)
            call ShowUnit(u, true)
            call SpawnInfectedOfType(ZID_Zombie, 3, House<i>)
            
          endif
          
        endif
        
        set u=null
        set c=null
    endfunction
    
    private function RescueCivConditions takes nothing returns boolean
        local unit u=GetFilterUnit()
        local boolean b=IsUnitInGroup(u, EscortedCivs)
        set u=null
        return b
    endfunction
    
    private function RescueCiv takes nothing returns nothing
        local unit u=GetEnteringUnit()
        local rect r
        if RectContainsUnit(gg_rct_Town1,u) then
          set r=gg_rct_Town1
        else
          set r=gg_rct_Town2
        endif
        call GroupRemoveUnit(EscortedCivs,u)
        call SetUnitOwner(u, Player(12), true)
        call IssuePointOrder(u, &quot;move&quot;, GetRectCenterX(r)+GetRandomReal(-500,500), GetRectCenterY(r)+GetRandomReal(-500,500))
        set u=null
        set r=null
    endfunction
    
    
    private function MissionSearchForCivs takes nothing returns nothing
        local region r=CreateRegion()
        local region r2=CreateRegion()
        local integer i=1
        
        call RegionAddRect(r2,gg_rct_Town1)
        call RegionAddRect(r2,gg_rct_Town2)
        call TriggerRegisterEnterRegion(TC2,r2,Condition(function RescueCivConditions))
        
        set House[1]=gg_rct_House1
        set House[2]=gg_rct_House2
        set House[3]=gg_rct_House3
        set House[4]=gg_rct_House4
        set House[5]=gg_rct_House5
        set House[6]=gg_rct_House6
        set House[7]=gg_rct_House7
        set HouseCount=7
        set HousesRemaining=HouseCount
        set FoundCivsChat[1]=&quot;Come with me.&quot;
        set FoundCivsChat[2]=&quot;I&#039;ve found some survivors.&quot;
        set FoundCivsChat[3]=&quot;We gotta go, right now.&quot;
        set FoundCivsChat[4]=&quot;We need to leave, now.&quot;
        set FoundCivsChat[5]=&quot;I&#039;m here to save you, let&#039;s go!&quot;
        set FoundCivsChat[6]=&quot;You need to come with me.&quot;
        set FoundCivsChat[7]=&quot;Found more survivors.&quot;
        set FoundCivsChat[8]=&quot;I found some civilians.&quot;
        
        loop
          exitwhen i&gt;HouseCount
          call RegionAddRect(r,House<i>)
          set HouseSearched<i>=false
          set i=i+1
        endloop
        call TriggerRegisterEnterRegion(TC1,r,Condition(function SearchHouseConditions))
        
        
        call Transmission(12.,&quot;|cff808000Battallion:|r Intel reports civilians might be stranded in their homes in the outlying woods. Search the houses for survivors and lead them to the cities.&quot;)
        call PolledWait2(9.)
        call Transmission(17.,&quot;|cff808000Battallion:|r There are 3 houses in the west woods, one near the southwest waterfall, one in the northwest cliffs, and 2 in the eastern mountain.&quot;)
        call QuestSetDescription(OBJECTIVE_QUEST, &quot;Search houses for civilians. There are 3 houses in the west woods, one near the southwest waterfall, one in the northwest cliffs, and 2 in the eastern mountain.&quot;)
        
        set MissionTime=420*MissionTimeModifier
        loop
          exitwhen HousesRemaining==0 or MissionTime==0
          call PolledWait2(1.)
        endloop
        
        if MissionTime==0 then
          call AwardObjectiveXP(-20, &quot;Civilians not rescued in time&quot;)
          set OBJECTIVES_FAILED=OBJECTIVES_FAILED+1
        else
          call AwardObjectiveXP(80, &quot;Civilians rescued&quot;)
          set OBJECTIVES_SUCCEEDED=OBJECTIVES_SUCCEEDED+1
        endif
        
        call PolledWait2(8.)
        call Mission3()
    endfunction</i></i></i></i></i></i></i></i>
 
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