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