General Community > Scripting Help

Someone Please Help

(1/1)

fronz00:
i am having problems getting a script to work I am making it for a friend who needs it soon, i keep getting " '=' expected near '%' " I cannot for the life of me figure it out please help


--- Quote ---set %HouseStyle 2 ; 1 = Classic, 2 = Custom 2 story, 3 = Custom 3 storey
set %HousePage 1 ; on custom, you have more than one page of possible plots. It's safer to select a plot on page 1
set %HouseButton 1 ; the top button on a page is "1" then it goes incrementing. it's PER page, on page 2 it starts at "1"
set %PlacementToolType CWH

; DO NOT EDIT BEYOND THIS POINT
set %ReselectTimer 3000 ; re-select house after 300s
set %IdleTimer 3000 ; = 5 mins
set %Debug #FALSE
set %PreAOS #TRUE ; if #true avoids reading house sign as it doesn't work Pre-AOS
display yesno Are you on a Pre-AOS Shard?$(do objects have a list of properties when you hoover them?)$$Answer YES if not sure.
if #dispres = NO
   set %PreAOS #FALSE
set %Reselect #FALSE
display yesno Are you on a Shard allowing house placement when the$placement tool gump is open?$(OSI shards don't allow it.)$$Answer NO if not sure.
if #dispres = YES
   set %Reselect #TRUE
finditem %PlacementToolType C_ , #backpackid
if #findkind = -1
{
   repeat
   {
      event ExMsg #CHARID 3 3 Please target your placement tool
      gosub GetObjectID
   }
   until #result <> #FALSE
   set %PlacementTool #result
}
else
{
   set %PlacementTool #findid
}

repeat
{
   event ExMsg #CHARID 3 3 Please target the house falling
   gosub GetObjectID
}
until #result <> #FALSE
set %IDOC #result

while #TARGCURS <> 1
{
   set %Step 0
   gosub GetHousePage1 %PlacementTool
   if #result = #true
      set %Step 1
   if %Step = 1
   {
      gosub GetHousePage2 %HouseStyle
      if #result = #true
         set %Step 2
   }
   if %Step = 2
   {
      gosub GetHousePage3 %HousePage
      if #result = #true
         set %Step 3
   }
   if %Step = 3
   {
      gosub GetHousePage4 %HouseButton
   }
   set %Step 0
}
event ExMsg #charid 3 3 Please target the spot of the house to place.
while #targcurs = 1
{
  wait 1
}
set %HouseX #LTARGETX
set %HouseY #LTARGETY
set %HouseZ #LTARGETZ
set %HouseKind #LTARGETKIND
set %HouseTile #LTARGETTILE
wait 2s
while #CONTNAME = generic_gump && #CONTSIZE = 520_420
{
   set %ClickX #CONTPOSX + 100
   set %ClickY #CONTPOSY + 100
   click %ClickX %ClickY r
   wait 5
}
while #CONTNAME = generic_gump && #CONTSIZE = 270_145
{
   set %ClickX #CONTPOSX + 100
   set %ClickY #CONTPOSY + 100
   click %ClickX %ClickY r
   wait 5
}

set %NextHide #sCnt2 - 1
set %NextIdleMove #sCnt2 + 20
set %NextHouseReselect #sCnt2 + %ReselectTimer
set %Step 0
while #TRUE
{

   ; ///////////////////////////////////////////////////////
   ;  This is in case something went wrong and we lost
   ;  the targeting cursor and the "ghost" house.
   ; ///////////////////////////////////////////////////////
   if #TARGCURS <> 1
   {
      set %Step 0
      gosub GetHousePage1 %PlacementTool
      if #result = #true
         set %Step 1
      if %Step = 1
      {
         gosub GetHousePage2 %HouseStyle
         if #result = #true
            set %Step 2
      }
      if %Step = 2
      {
         gosub GetHousePage3 %HousePage
         if #result = #true
            set %Step 3
      }
      if %Step = 3
      {
         gosub GetHousePage4 %HouseButton
      }
      set %Step 0
      set %NextHouseReselect #sCnt2 + %ReselectTimer
   }
   
   
   ; ///////////////////////////////////////////////////////
   ;  If you are on a shard not allowing to place when
   ;  the placement tool is open, then it will keep you
   ;  from going Idle.
   ; ///////////////////////////////////////////////////////
   if %NextIdleMove < #sCnt2
   {
      finditem %PlacementTool C_ , #backpackid
      if #findcnt > 0
      {
         exevent drag #findid #findstack
         wait 5
         exevent dropc #backpackid
         wait 10
      }
      else
      {
         finditem * C_ , #backpackid
         if #findcnt > 0
         {
            exevent drag #findid #findstack
            wait 5
            exevent dropc #backpackid
            wait 10
         }
      }
      set %NextIdleMove #sCnt2 + %IdleTimer
   }
   
   ; ///////////////////////////////////////////////////////
   ;  Every Time the timer overflows, we launch the
   ;  reselection of the house. This way, we always keep
   ;  an active cursor ready (and keep the char active).
   ;  Between each steps of the house selection we test
   ;  for the house falling. Same inside each sub.
   ; ///////////////////////////////////////////////////////
   if %Step = 3
   {
      gosub GetHousePage4 %HouseButton ;%IDOC
      if #result = #true
         set %step 0
   }
   if %Step = 2
   {
      gosub GetHousePage3 %HousePage ;%IDOC
      if #result = #true
         set %Step 3
   }
   if %Step = 1
   {
      gosub GetHousePage2 %HouseStyle ;%IDOC
      if #result = #true
         set %Step 2
   }
   if %NextHouseReselect < #sCnt2 && %Reselect <> #FALSE
   {
      set %NextHouseReselect #sCnt2 + %ReselectTimer
      set %Step 0
      gosub GetHousePage1 %PlacementTool ;%IDOC
      if #result = #true
         set %Step 1
   }

   ; ///////////////////////////////////////////////////////
   ;  If we detect the IDOC fell, then we place the house
   ; ///////////////////////////////////////////////////////
   finditem %IDOC G
   if #findcnt > 0
   {
      if %PreAOS <> #TRUE
      {
         event property #findid
         if danger notin #property || collapsing notin #property
         {
            display ok Stopped Collapsing
            halt
         }
      }
      ; Tries to hide if not yet hidden or revealed by someone
      if H notin #charstatus && %NextHide < #sCnt2
      {
         event macro 13 21
         set %NextHide #sCnt2 + 130
      }
   }
   else
   {
      if #TARGCURS = 1
      {
         set #LTARGETX %HouseX
         set #LTARGETY %HouseY
         set #LTARGETZ %HouseZ
         set #LTARGETKIND %HouseKind
         set #LTARGETTILE %HouseTile
         event macro 22 0
         set %GumpDelay #sCnt2 + 20
         while %GumpDelay > #sCnt2 && ( #contname <> generic_gump || #contsize <> 420_280 )
         {
           wait 1
         }
         if #contname = generic_gump && #contsize = 420_280
         {
            if %Debug = #FALSE
               set %ClickX #CONTPOSX + 20
            if %Debug = #TRUE
               set %ClickX #CONTPOSX + 220

            set %ClickY #CONTPOSY + 260
            while #contname = generic_gump && #contsize = 420_280
            {
               click %ClickX %ClickY
            }
            halt
         }
      }
   }
}


;======================================================
; GET HOUSE PAGE 1
;======================================================
; %1 Tool ID
; (%2) IDOC ID
;======================================================
; return nothing
;======================================================
; updates no globels
;======================================================
; requires no globals
;======================================================
sub GetHousePage1
    namespace push
    namespace local SubGH1 , #sCnt2 , #random
    set !GH1_Result #FALSE

    if %0 > 0
    {
       set !GH1_Tool %1
       set !GH1_Idoc N/A
       if %0 > 1
          set !GH1_Idoc %2
       set #LOBJECTID !GH1_Tool
       set !GH1_TimeOut #sCnt2 + 50
       while ( #CONTSIZE <> 270_145 || #CONTNAME <> generic_gump ) && !GH1_TimeOut > #sCnt2
       {
          event macro 17 0
          wait 5
          if !GH1_Idoc <> N/A
          {
             finditem !GH1_Idoc G
             if #findcnt <= 0
                set !GH1_TimeOut #sCnt2 - 1
          }
       }
       if #CONTSIZE = 270_145 && #CONTNAME = generic_gump
       {
          set !GH1_Result #true
       }
    }
    set %Result !GH1_Result
    namespace clear
    namespace pop
return %Result

;======================================================
; GET HOUSE PAGE 2
;======================================================
; %1 Section
; (%2) IDOC ID
;======================================================
; return nothing
;======================================================
; updates no globels
;======================================================
; requires no globals
;======================================================
sub GetHousePage2
    namespace push
    namespace local SubGH2 , #sCnt2 , #random
    set !GH2_Result #FALSE

    if %0 > 0
    {
       set !GH2_Section %1
       set !GH2_Idoc N/A
       if %0 > 1
          set !GH2_Idoc %2

       if #CONTSIZE = 270_145 && #CONTNAME = generic_gump
       {
          set !GH2_ClickX #CONTPOSX + 20
          set !GH2_ClickY #CONTPOSY + !GH2_Section * 20 + 30
          set !GH2_TimeOut #sCnt2 + 50
          while ( #CONTSIZE <> 520_420 || #CONTNAME <> generic_gump ) && !GH2_TimeOut > #sCnt2
          {
             click !GH2_ClickX !GH2_ClickY
             wait 5
             if !GH2_Idoc <> N/A
             {
                finditem !GH2_Idoc G
                if #findcnt <= 0
                   set !GH2_TimeOut #sCnt2 - 1
             }
          }
          if #CONTSIZE = 520_420 && #CONTNAME = generic_gump
          {
             set !GH2_Result #true
          }
       }
    }
    set %Result !GH2_Result
    namespace clear
    namespace pop
return %Result


;======================================================
; GET HOUSE PAGE 3
;======================================================
; %1 Page
; (%2) IDOC ID
;======================================================
; return nothing
;======================================================
; updates no globels
;======================================================
; requires no globals
;======================================================
sub GetHousePage3
    namespace push
    namespace local SubGH3 , #sCnt2 , #random
    set !GH3_Result #FALSE

    if %0 > 0
    {
       set !GH3_Page %1
       set !GH3_Idoc N/A
       if %0 > 1
          set !GH3_Idoc %2

       if !GH3_Page > 1 && #CONTSIZE = 520_420 && #CONTNAME = generic_gump
       {
          set !GH3_ClickX #CONTPOSX + 465
          set !GH3_ClickY #CONTPOSY + 400
          set !GH3_TimeOut #sCnt2 + 80
          while !GH3_Page > 1 && !GH3_TimeOut > #sCnt2
          {
            if #CONTSIZE = 520_420 && #CONTNAME = generic_gump
            {
               click !GH3_ClickX !GH3_ClickY
               set !GH3_Page !GH3_Page - 1
            }
            if !GH3_Idoc <> N/A
            {
                finditem !GH3_Idoc G
                if #findcnt <= 0
                {
                   set !GH3_TimeOut #sCnt2 - 1
                }
                else
                {
                   wait 20
                }
            }
            else
            {
               wait 20
            }
          }
          set !GH3_Result #true
       }
       if !GH3_Page = 1
       {
          set !GH3_Result #true
       }
    }
    set %Result !GH3_Result
    namespace clear
    namespace pop
return %Result


;======================================================
; GET HOUSE PAGE 4
;======================================================
; %1 Button
; (%2) IDOC ID
;======================================================
; return nothing
;======================================================
; updates no globels
;======================================================
; requires no globals
;======================================================
sub GetHousePage4
    namespace push
    namespace local SubGH4 , #sCnt2 , #random
    set !GH4_Result #FALSE

    if %0 > 0
    {
       set !GH4_Button %1
       set !GH4_Idoc N/A
       if %0 > 1
          set !GH4_Idoc %2

       if #CONTSIZE = 520_420 && #CONTNAME = generic_gump
       {
          set !GH4_ClickX #CONTPOSX + 25
          set !GH4_ClickY #CONTPOSY + !GH4_Button * 20  + 60
          set !GH4_TimeOut #sCnt2 + 50
          while #CONTSIZE = 520_420 && #CONTNAME = generic_gump && !GH4_TimeOut > #sCnt2
          {
             click !GH4_ClickX !GH4_ClickY
             wait 5
             if !GH4_Idoc <> N/A
             {
                finditem !GH4_Idoc G
                if #findcnt <= 0
                   set !GH4_TimeOut #sCnt2 - 1
             }
          }
       }
    }
    set %Result !GH4_Result
    namespace clear
    namespace pop
return %Result


;======================================================
; GET OBJECT ID
;======================================================
; (%1) Expected object type
;======================================================
; return Object ID or #false if fails.
;======================================================
; updates no globels
;======================================================
; requires no globals
;======================================================
sub GetObjectID
    namespace push
    namespace local SubGOI , #sCnt2 , #random
    set !GOI_Result #FALSE

    set !GOI_Type #false
    if %0 > 0
       set !GOI_Type %1

    set #TARGCURS 1
    while #TARGCURS = 1
    {
       wait 1
    }
    finditem #LTARGETID
    if #findkind <> -1
    {
       if !GOI_Type <> #FALSE
       {
          if #findtype in !GOI_Type
             set !GOI_Result #findid
       }
       else
       {
          set !GOI_Result #findid
       }
    }
    set %Result !GOI_Result
    namespace clear
    namespace pop
return %Result

--- End quote ---

Colin:
Line number....

nightbre:

--- Quote from: Colin on September 07, 2012, 04:41:05 PM ---Line number....

--- End quote ---

Also use the code tags ;)

Navigation

[0] Message Index

Go to full version