Kod:
;Script........WORLD OF UO .....OTO GİRİŞ
id----------------------------------------------------------
set %shardid 957524542 ; your shard id (this is europa on my display)
set %myaccount acc ; your account name (leave this as default to use last used account)
set %mypass <pass> ; your password e.g. fred99
set %mycharnum <character n> ; the character number e.g. 3 (1 is top)
set %num_shards2scan 99 ; To save scanning time, if you know your shard is always in the top x of the list then put x here
; e.g. if in the top 5 put 5, if always first put 1, if you want to scan all of them leave as 99
set %menux 0 ; x position of menu
set %menuy 805 ; y position of menu
set %global 124 ; global variable to use for external setting of charnum (this allows other programs
; to alter which character will be logged in on the fly)
;
;----------------------Shouldn't need to touch anything under here ------------------------
initevents
set %wait 20
set %logincount 0 ; count of how many logins attempted
set %disscount 0 ; count of disconnections
set * . %global 0 ; init global var
gosub MenuInit ; initialize menu
gosub login ; log in first (in case you are too lazy to do it manually, hey what are computers for anyway!)
_mainloop:
gosub CheckConnection ; monitor disconnection gumps
wait 1s
gosub MenuShow %logincount , #spc , Logins %disscount , #spc , Disconnections ; update menu
goto _mainloop
halt
;===========================================
sub CheckConnection
_ccloop:
if #contname = MainMenu_gump ; main login gump
gosub login
if #contname = waiting_gump
{
if #contsize = 203_121 ; disconnection
{
set %disscount %disscount + 1
set %x #contposx + 100
set %y #contposy + 90
click %x %y
}
if #contsize = 408_288 ; no connection avail, or timeout
{
set %x #contposx + 206
set %y #contposy + 256
click %x %y ; try again
}
gosub login
goto _ccloop
}
return
;===========================================
sub login
_mmloop:
gosub MenuShow Attempting , #spc , Login #contname
wait 20
if #contname = MainMenu_gump ; main login gump
{
if %myaccount <> default
{
set %x #contposx + 521
set %y #contposy + 356
click %x %y
gosub sendstring %myaccount
}
set %x #contposx + 521
set %y #contposy + 396
click %x %y
gosub sendstring %mypass
KEY ENTER
gosub clickgreen
KEY ENTER
gosub clickgreen
gosub waitgump notfor MainMenu_gump 640_480 10
gosub waitgump notfor waiting_gump 408_288 60 ; verifying can take a while
set %logincount %logincount + 1
goto _mmloop
}
if #contname = normal_gump ; shard selection gump
{
set %lastshard 0 ; null it
set %scanned 0 ; number shards scanned
_scan:
gosub scan
set %scanned %scanned + 1 ; inc number shards looked at
if %shardid = #result
{
set %x #contposx + 238
set %y #contposy + 115
click %x %y g ; click topmost shard not sure why need g
gosub waitgump notfor normal_gump 640_480 10
goto _mmloop
}
else
{
if ( %lastshard = #result ) || ( %scanned >= %num_shards2scan ) ; we've looked at all shards so get out of this screen
{
gosub clickred
gosub waitgump notfor normal_gump 640_480 10
goto _mmloop
}
set %x #contposx + 536
set %y #contposy + 346
click %x %y ; next shard
set %lastshard #result
goto _scan
}
}
if #contname = Login_gump ; char login gump
{
if * . %global <> 0 ; override charnum with global setting
set %mycharnum * . %global
set %x #contposx + 359
set %y #contposy + 165 + ( %mycharnum - 1 ) * 40
click %x %y x 3 ; click char name (changed from d as sometimes seemed to fail)
wait 5s
if #contname = Login_gump ; no char?
gosub clickred
gosub clickgreen ; click here as well cos sometimes the gump is misnamed (existing char)
gosub waitgump notfor Login_gump 640_480 10
goto _mmloop
}
if #contname = waiting_gump
{
if #contsize = 203_121 ; disconnection
{
set %x #contposx + 100
set %y #contposy + 90
click %x %y
}
if #contsize = 408_288 ; no connection avail, or timeout
{
set %x #contposx + 206
set %y #contposy + 256
click %x %y ; try again
}
goto _mmloop
}
return
;-------------------------------------------
sub clickgreen
set %x #contposx + 618
set %y #contposy + 456
click %x %y ; the green arrow
wait 5
return
;-------------------------------------------
sub clickred
set %x1 #contposx + 597
set %y1 #contposy + 456
click %x1 %y1 ; the red arrow
wait 5
return
;-------------------------------------------
sub sendstring
str Len %1
set %len #strRes
for %i 1 16
{
key back ; delete current if any
wait 1
}
for %i 1 %len
{
str Mid %1 %i 1
key #strRes
wait 1
}
return
;-------------------------------------------------
sub waitgump
;%1 = for or notfor %2 = kind of gump %3 = size %4= timeout
set %timout #scnt + %4
_wfgloop:
if #scnt > %timout
return
wait 10
if %1 = for && ( #contname <> %2 || #contsize <> %3 )
goto _wfgloop
if %1 = notfor && #contname = %2 && #contsize = %3
goto _wfgloop
return
;-------------------------------------------------
sub MenuInit
menu Clear
menu Window title AutoLogin
menu Window Color BtnFace
menu Window Size 150 70
menu font size 8
menu Button Quit 40 46 45 16 Quit
menu hideeuo
menu Show %menux %menuy
menu Show %menux %menuy
set %start #scnt
gosub MenuShow %logincount , #spc , Attempts ; update menu
return
;-------------------------------------------------
sub MenuShow
set %hrs ( #scnt - %start ) / 3600
set %mins ( #scnt - %start ) / 60 - %hrs * 60
menu delete Active1
menu delete Active2
menu delete Count
menu text Active1 10 6 %1
menu text Active2 10 18 %2
menu text Count 10 30 Time , #spc , %hrs , : , %mins
if #menubutton = Quit
{
menu show
menu hide
halt
}
return
;----------------------------------------------------
sub scan ; scan a line to get a shard id
click 0 0 mc ; move cursor out the way
set %x1 #contposx + 217
set %x2 #contposx + 320
set %y #contposy + 113
set %val 0
for %i %x1 %x2
{
SavePix %i %y 1
set %val %val + #pixcol
}
wait 10
return %val
;----------------------------------------------------
sub checkshard
menu hideeuo
wait 1s
gosub scan
display ok shardid= , #spc , #result ; this is the value of the shardid
menu show
menu hide
halt
;------------------------------------------------------
OSI shard values
(NB these values do seem to vary depending on the screen used
if they don't work follow the check shard procedure [see top of file])
Europa 957524542
Drachenfels 790292137
Legends 975951206
Atlantic 957002310
Lake Superior 840570317
Gt Lakes 890989331
Chesapeake 828202777
Catskills 945150322
Siege Perilous 841761271
Pacific 944564865
Sonoma 951078372
Lake Austin 860124710
Baja 1081594179
Napa Valley 876378149
Mizukho 917516238
Izumo 965689554
Sakura 998731512
Mugen 971674661
Wakoku 918638831
Formosa 921260271
Arirang 949959891
Bahae 1007943044
Azuka 1002482225
Yamato 977604767
Hokuto 965169890
Oceania 970560292
TC2 Pub28 875780356