вторая часть файла
Code:
#================================================#
# ПРОЦЕДУРЫ РАЗГРУЗКИ ПАКА #
#================================================#
;
Sub Razgruzka( nomer )
; Разгрузка пака чара от логов и руды и добор при необходимости регов.
; Встроен подход к сундукам для разгрузки / догрузки. Все данные
; получаем из головного скрипта через глобальные переменные.
;
VAR X_Sund = Val( UO.GetGlobal( 'Sund_Tile_X' ) )
VAR Y_Sund = Val( UO.GetGlobal( 'Sund_Tile_Y' ) )
VAR Sund1 = UO.GetGlobal( 'Sund1_Ser' )
VAR Sund2 = UO.GetGlobal( 'Sund2_Ser' )
; VAR Box1 = UO.GetGlobal( 'BoxRegs' ) ; regs
; VAR Box2 = UO.GetGlobal( 'BoxBand' ) ; bandages, blood bandages, bottles
; VAR Box3 = UO.GetGlobal( 'BoxPick' ) ; pickaxes, hatchets, cleavers, scissors
; VAR Box4 = UO.GetGlobal( 'BoxArms' ) ; weapons, armors, robes
VAR kolvo, cvet, logtext = '', dlin, kk, ls, cvet1, tmpser
DIM Razgruz[8]
Razgruz[0] = UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'OreTyp1' )
Razgruz[1] = UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'OreTyp2' )
Razgruz[2] = UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'OreTyp3' )
Razgruz[3] = UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'OreTyp4' )
Razgruz[4] = UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'LogsTyp1' )
Razgruz[5] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonTypes', 'Money' )
Razgruz[6] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonTypes', 'Cutleather' )
Razgruz[7] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonTypes', 'Leather2' )
DIM Regs[8]
Regs[0] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonTypes', 'Regs0' )
Regs[1] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonTypes', 'Regs1' )
Regs[2] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonTypes', 'Regs2' )
Regs[3] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonTypes', 'Regs3' )
Regs[4] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonTypes', 'Regs4' )
Regs[5] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonTypes', 'Regs5' )
Regs[6] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonTypes', 'Regs6' )
Regs[7] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonTypes', 'Regs7' )
VAR Inviska = UO.GetGlobal( 'Inviz' )
VAR GrHeal = UO.GetGlobal( 'GreatHeal' )
VAR UO.asmGetIniVar( 'mine&lumb.ini', 'CommonTypes', 'EmptBottle' )
VAR i, j, oldpause
GoRazgruzka( X_Sund, Y_Sund, Sund1, Sund2 )
; Разбираемся с рудой
For i = 0 to 7
While UO.Count( Razgruz[i] ) > 0
UO.FindType( Razgruz[i], '-1', 'backpack' )
If i < 4 Then
kolvo = UO.GetQuantity( 'finditem' )
cvet = UO.GetColor( 'finditem' )
cvet1 = GetNameOre( cvet, kolvo )
WriteLog( str( kolvo ) + '[' + UO.GetGlobal( 'Itog' ) + '] of ' + cvet1, 3 )
Endif
If i == 4 Then
kolvo = UO.GetQuantity( 'finditem' )
cvet = UO.GetColor( 'finditem' )
cvet1 = GetNameLogs( cvet, kolvo )
WriteLog( str( kolvo ) + '[' + UO.GetGlobal( 'Itog' ) + '] of ' + cvet1, 3 )
Endif
If UO.GetGlobal( 'CheckBankDis' ) == '0' Then
UO.MoveItem( 'finditem', '0', Sund1 )
Wait( 1000 )
CheckLag()
Else
; Если в банк - надо искать в банке эту руду/логи и подгружать в кучку.
tmpser = UO.GetSerial( 'finditem' )
UO.FindType( Razgruz[i], cvet, Sund1 )
If UO.FindCount() == 0 Then
UO.MoveItem( tmpser, '0', Sund1 )
Wait( 1000 )
CheckLag()
Else
UO.MoveItem( tmpser, '0', 'finditem' )
Wait( 1000 )
CheckLag()
Endif
Endif
Wend
Next
; разбираемся с регами
logtext = UO.asmGetDate('dd/mm/yy') + ' ' + UO.asmGetTime('hh:nn:ss')
WriteLog( 'I change of regs for recall', 0 )
For i = 0 to 2
If UO.Count( Regs[i] ) > 6 Then
; этого рега больше 6
UO.FindType( Regs[i], '-1', 'backpack' )
UO.MoveItem( 'finditem', str( UO.Count( Regs[i] ) - 6 ), Sund2 )
; Box1 )
Wait( 1000 )
CheckLag()
Else
If UO.Count( Regs[i] ) < 6 Then
; этого рега меньше 6
UO.FindType( Regs[i], '-1', Sund2 )
; Box1 )
UO.Grab( str( 6 - UO.Count( Regs[i] ) ), 'finditem' )
Wait( 1000 )
CheckLag()
Endif
Endif
Next
WriteLog( 'I discharge of other regs', 0 )
For i = 3 to 7
If UO.Count( Regs[i] ) > 0 Then
; этот рег нам вообще не нужен
UO.FindType( Regs[i], '-1', 'backpack' )
UO.MoveItem( 'finditem', '0', Sund2 )
; Box1 )
Wait( 1000 )
CheckLag()
Endif
Next
If UO.GetGlobal( 'ModeOfScript' ) == '1' OR UO.GetGlobal( 'ModeOfScript' ) == '2' OR UO.GetGlobal( 'ModeOfScript' ) == '3' Then
WriteLog( 'I change of bandages', 0 )
If UO.Count( UO.GetGlobal( 'Bandag' ) ) > 20 Then
; бинтов откуда-то больше 20
While UO.Count( UO.GetGlobal( 'Bandag' ) ) > 0
UO.FindType( UO.GetGlobal( 'Bandag' ), '-1', 'backpack' )
UO.MoveItem( 'finditem', '0', Sund2 )
; Box2 )
Wait( 1000 )
CheckLag()
Wend
UO.FindType( UO.GetGlobal( 'Bandag' ), '-1', Sund2 )
; Box2 )
UO.Grab( '20', 'finditem' )
Wait( 1000 )
CheckLag()
Else
If UO.Count( UO.GetGlobal( 'Bandag' ) ) < 20 Then
UO.FindType( UO.GetGlobal( 'Bandag' ), '-1', Sund2 )
; Box2 )
UO.Grab( str( 20 - UO.Count( UO.GetGlobal( 'Bandag' ) ) ), 'finditem' )
Wait( 1000 )
CheckLag()
Endif
Endif
Endif
; скидываем кровавые бинты
WriteLog( 'I discharge of blood bandages', 0 )
While UO.Count( UO.GetGlobal( 'BlBandag' ) ) > 0
UO.FindType( UO.GetGlobal( 'BlBandag' ), '-1', 'backpack' )
UO.MoveItem( 'finditem', '0', Sund2 )
; Box2 )
Wait( 1000 )
CheckLag()
Wend
; проверяем инвизки
If UO.GetGlobal( 'CheckInviz' ) == '1' Then
WriteLog( 'I check of my inviz potion', 0 )
If UO.Count( Inviska ) == 0 Then
UO.FindType( Inviska, '-1', Sund2 )
; Box2 )
UO.Grab( '1', 'finditem' )
Wait( 1000 )
CheckLag()
Endif
Endif
; проверяем греат хилы
If UO.GetGlobal( 'ModeOfScript' ) == '1' OR UO.GetGlobal( 'ModeOfScript' ) == '2' OR UO.GetGlobal( 'ModeOfScript' ) == '3' Then
WriteLog( 'I check of my great heal potions', 0 )
If UO.Count( GrHeal ) > 5 Then
UO.FindType( GrHeal, '-1', 'backpack' )
UO.MoveItem( 'finditem', str( UO.Count( GrHeal ) - 5 ), Sund2 )
; Box2 )
Wait( 1000 )
CheckLag()
Else
If UO.Count( GrHeal ) < 5 Then
UO.FindType( GrHeal, '-1', Sund2 )
; Box2 )
UO.Grab( str( 5 - UO.Count( GrHeal ) ), 'finditem' )
Wait( 1000 )
CheckLag()
Endif
Endif
Endif
; проверяем пустые бутылки
While UO.Count( EmptBottle ) > 0
UO.FindType( EmptBottle, '-1', 'backpack' )
UO.MoveItem( 'finditem', '0', Sund2 )
; Box2 )
Wait( 1000 )
CheckLag()
Wend
; разберемся с кирками
If UO.GetGlobal( 'ModeOfScript' ) == '1' OR UO.GetGlobal( 'ModeOfScript' ) == '2' OR UO.GetGlobal( 'ModeOfScript' ) == '5' Then
If UO.Count( UO.GetGlobal( 'Kirka' ) ) == 0 Then
; UO.UseObject( Box3 )
; wait(500)
; CheckLag()
UO.FindType( UO.GetGlobal( 'Kirka' ), '-1', Sund2 )
; Box3 )
UO.Grab( '1', 'finditem' )
Wait( 1000 )
CheckLag()
Endif
; разберемся с топорами
If UO.GetGlobal( 'ModeOfScript' ) == '3' OR UO.GetGlobal( 'ModeOfScript' ) == '6' Then
If UO.Count( UO.GetGlobal( 'Hatchet' ) ) == 0 Then
; UO.UseObject( Box3 )
; wait(500)
; CheckLag()
UO.FindType( UO.GetGlobal( 'Hatchet' ), '-1', Sund2 )
; Box3 )
UO.Grab( '1', 'finditem' )
Wait( 1000 )
CheckLag()
Endif
Endif
; разберемся с кливерами
If UO.GetGlobal( 'ModeOfScript' ) == '1' OR UO.GetGlobal( 'ModeOfScript' ) == '2' OR UO.GetGlobal( 'ModeOfScript' ) == '3' Then
If UO.Count( UO.GetGlobal( 'Cleaver' ) ) < 2 Then
; UO.UseObject( Box3 )
; wait(500)
; CheckLag()
UO.FindType( UO.GetGlobal( 'Cleaver' ), '-1', Sund2 )
; Box3 )
UO.Grab( '1', 'finditem' )
Wait( 1000 )
CheckLag()
Endif
Endif
UO.UseObject( 'backpack' )
wait(500)
CheckLag()
CheckInstrQuality()
FromRazgruzka()
UO.SetGlobal( 'FlagStatus', 'go' )
endsub
;
Sub RazgruzkaVIP( nomer )
; ТОЛЬКО ДЛЯ ТЕСТОВЫХ РЕЖИМОВ!!! РАБОТА С ОДНИМ ПРИЛОЧЕННЫМ СУНДУКОМ!!!
; Разгрузка пака чара от логов и руды.
; Встроен подход к сундуку для разгрузки / взятия инструмента. Все данные
; получаем из головного скрипта через глобальные переменные.
;
VAR X_Sund = Val( UO.GetGlobal( 'Sund_Tile_X' ) )
VAR Y_Sund = Val( UO.GetGlobal( 'Sund_Tile_Y' ) )
VAR Sund1 = UO.GetGlobal( 'Sund1_Ser' )
VAR kolvo, cvet, cvet1, dlin, kk, ls, tmpser
DIM Razgruz[9]
Razgruz[0] = UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'OreTyp1' )
Razgruz[1] = UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'OreTyp2' )
Razgruz[2] = UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'OreTyp3' )
Razgruz[3] = UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'OreTyp4' )
Razgruz[4] = UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'LogsTyp1' )
Razgruz[5] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonTypes', 'Money' )
Razgruz[6] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonTypes', 'Cutleather' )
Razgruz[7] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonTypes', 'Leather2' )
Razgruz[8] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonTypes', 'Cintrines' )
DIM Regs[8]
Regs[0] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonTypes', 'Regs0' )
Regs[1] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonTypes', 'Regs1' )
Regs[2] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonTypes', 'Regs2' )
Regs[3] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonTypes', 'Regs3' )
Regs[4] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonTypes', 'Regs4' )
Regs[5] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonTypes', 'Regs5' )
Regs[6] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonTypes', 'Regs6' )
Regs[7] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonTypes', 'Regs7' )
VAR GrHeal = UO.GetGlobal( 'GreatHeal' )
VAR i, j, oldpause
; Подойдем к месту разгрузки / загрузки
GoRazgruzka( X_Sund, Y_Sund, Sund1, '' )
; Разбираемся с рудой
For i = 0 to 8
While UO.Count( Razgruz[i] ) > 0
UO.FindType( Razgruz[i], '-1', 'backpack' )
If i < 4 Then
kolvo = UO.GetQuantity( 'finditem' )
cvet = UO.GetColor( 'finditem' )
cvet1 = GetNameOre( cvet, kolvo )
WriteLog( str( kolvo ) + '[' + UO.GetGlobal( 'Itog' ) + '] of ' + cvet1, 3 )
Endif
If i == 4 Then
kolvo = UO.GetQuantity( 'finditem' )
cvet = UO.GetColor( 'finditem' )
cvet1 = GetNameLogs( cvet, kolvo )
WriteLog( str( kolvo ) + '[' + UO.GetGlobal( 'Itog' ) + '] of ' + cvet1, 3 )
Endif
If UO.GetGlobal( 'CheckBankDis' ) == '0' Then
UO.MoveItem( 'finditem', '0', Sund1 )
Wait( 1000 )
CheckLag()
Else
; Если в банк - надо искать в банке эту руду/логи и подгружать в кучку.
tmpser = UO.GetSerial( 'finditem' )
UO.FindType( Razgruz[i], cvet, Sund1 )
If UO.FindCount() == 0 Then
UO.MoveItem( tmpser, '0', Sund1 )
Wait( 1000 )
CheckLag()
Else
UO.MoveItem( tmpser, '0', 'finditem' )
Wait( 1000 )
CheckLag()
Endif
Endif
Wend
Next
; разберемся с кирками
If UO.GetGlobal( 'ModeOfScript' ) == '5' Then
If UO.Count( UO.GetGlobal( 'Kirka' ) ) == 0 Then
UO.FindType( UO.GetGlobal( 'Kirka' ), '-1', Sund1 )
If UO.FindCount() == 0 Then
UO.SetGlobal( 'FlagStatus', 'exit' )
return
Endif
UO.Grab( '1', 'finditem' )
Wait( 1000 )
CheckLag()
Endif
Endif
; разберемся с топорами
If UO.GetGlobal( 'ModeOfScript' ) == '6' Then
If UO.Count( UO.GetGlobal( 'Hatchet' ) ) == 0 Then
UO.FindType( UO.GetGlobal( 'Hatchet' ), '-1', Sund1 )
If UO.FindCount() == 0 Then
UO.SetGlobal( 'FlagStatus', 'exit' )
return
Endif
UO.Grab( '1', 'finditem' )
Wait( 1000 )
CheckLag()
Endif
Endif
CheckInstrQuality()
FromRazgruzka()
UO.SetGlobal( 'FlagStatus', 'go' )
endsub
;
Sub CheckInstrQuality()
VAR kk, ls
; проверим состояние нашего инструмента
If UO.GetGraphic(UO.ObjAtLayer(UO.asmGetIniVar('mine&lumb.ini','OtherConfig','PickAxeHand'))) == UO.GetGlobal('Hatchet') OR UO.GetGraphic(UO.ObjAtLayer(UO.asmGetIniVar('mine&lumb.ini','OtherConfig','PickAxeHand'))) == UO.GetGlobal('Pickaxe') Then
DeleteJournal( 'Quality' )
UO.WaitTargetObject(UO.ObjAtLayer('Lhand'))
UO.UseSkill( 'Arms Lore' )
kk = 0
repeat
wait(100)
kk = kk + 1
until UO.InJournal( 'Quality' ) OR kk > 30
ls = UO.InJournal( 'Quality' )
UO.Print( 'My instrument is ' + UO.Journal( ls - 1 ) )
WriteLog( 'My instrument is ' + UO.Journal( ls - 1 ), 0 )
Else
If UO.GetGlobal( 'ModeOfScript' ) == '1' OR UO.GetGlobal( 'ModeOfScript' ) == '2' OR UO.GetGlobal( 'ModeOfScript' ) == '5' Then
; кирка
UO.FindType( UO.GetGlobal( 'Pickaxe' ) )
Else
; топор
UO.FindType( UO.GetGlobal( 'Pickaxe' ) )
Endif
If UO.FindCount() > 0 Then
UO.WaitTargetObject( 'finditem' )
UO.UseSkill( 'Arms Lore' )
kk = 0
repeat
wait(100)
kk = kk + 1
until UO.InJournal( 'Quality' ) OR kk > 30
ls = UO.InJournal( 'Quality' )
UO.Print( 'My instrument is ' + UO.Journal( ls - 1 ) )
WriteLog( 'My instrument is ' + UO.Journal( ls - 1 ), 0 )
Endif
Endif
endsub
;
sub BreakScript()
UO.SetGlobal( 'FlagStatus', 'stop' )
endsub
;
#================================================#
# ОБЩИЕ ПРОЦЕДУРЫ #
#================================================#
;
Sub CharDead()
WriteLog( 'CHAR IS DEAD!!!', 0 )
WriteLog( ' coordinates is ' + str(UO.GetX()) + ', ' + str(UO.GetY()), 0 )
WriteLog( ' I go to ressurect' )
If UO.GetGlobal( 'ModeOfScript' ) <> 5 AND UO.GetGlobal( 'ModeOfScript' ) <> 6 Then
UO.Msg( '.goankh' )
wait(1000)
CheckLag()
Endif
;
; ТУТ НАДО БУДЕТ СДЕЛАТЬ АВТОРЕС ЧАРА
;
UO.Exec( 'terminate all' )
endsub
;
Sub MultiRecall( nom )
If nom == 1 Then
Recalling( UO.GetGlobal( 'RunbookTile' ), UO.GetGlobal( 'Wall1Rune' ) )
return
Endif
If nom == 2 Then
Recalling( UO.GetGlobal( 'RunbookTile' ), UO.GetGlobal( 'Wall2Rune' ) )
return
Endif
If nom == 3 Then
Recalling( UO.GetGlobal( 'RunbookTile' ), UO.GetGlobal( 'Wall3Rune' ) )
return
Endif
If nom == 4 Then
Recalling( UO.GetGlobal( 'RunbookTile' ), UO.GetGlobal( 'Wall4Rune' ) )
return
Endif
If nom == 5 Then
Recalling( UO.GetGlobal( 'RunbookTile' ), UO.GetGlobal( 'Wall5Rune' ) )
return
Endif
If nom == 6 Then
Recalling( UO.GetGlobal( 'RunbookTile' ), UO.GetGlobal( 'Wall6Rune' ) )
return
Endif
If nom == 7 Then
Recalling( UO.GetGlobal( 'RunbookTile' ), UO.GetGlobal( 'Wall7Rune' ) )
return
Endif
If nom == 8 Then
Recalling( UO.GetGlobal( 'RunbookTile' ), UO.GetGlobal( 'Wall8Rune' ) )
return
Endif
Endsub
;
Sub GetInstrum( typ )
VAR Instrum
If typ == 'pickaxe' Then
Instrum = UO.GetGlobal( 'Pickaxe' )
Endif
If typ == 'hatchet' Then
Instrum = UO.GetGlobal( 'Hatchet' )
Endif
If UO.GetGraphic(UO.ObjAtLayer(UO.asmGetIniVar('mine&lumb.ini','OtherConfig','PickAxeHand'))) <> Instrum Then
UO.FindType( Instrum )
If UO.FindCount() == 0 Then
return 0
Endif
UO.Equipt(UO.asmGetIniVar('mine&lumb.ini','OtherConfig','PickAxeHand'), Instrum )
repeat
wait(100)
until UO.GetGraphic(UO.ObjAtLayer(UO.asmGetIniVar('mine&lumb.ini','OtherConfig','PickAxeHand'))) == Instrum
return 1
Endif
return 1
endsub
;
Sub SetMassive( nom )
VAR TypPatch
If UO.GetGlobal( 'ModeOfScript' ) == '1' Then
TypPatch = 'walls'
Endif
If UO.GetGlobal( 'ModeOfScript' ) == '2' Then
TypPatch = 'floor'
Endif
If UO.GetGlobal( 'ModeOfScript' ) == '3' Then
TypPatch = 'trees'
Endif
If UO.GetGlobal( 'ModeOfScript' ) == '5' Then
TypPatch = 'vipmi'
Endif
If UO.GetGlobal( 'ModeOfScript' ) == '6' Then
TypPatch = 'vipla'
Endif
If UO.GetGlobal( 'ModeOfScript' ) == '5' OR UO.GetGlobal( 'ModeOfScript' ) == '6' Then
If nom == 1 Then
UO.SetGlobal( 'NumberPatch', TypPatch + '1' )
return 2
Else
UO.SetGlobal( 'NumberPatch', TypPatch + '2' )
return 1
Endif
Else
If nom == 8 Then
UO.SetGlobal( 'NumberPatch', TypPatch + '8' )
return 1
Else
UO.SetGlobal( 'NumberPatch', TypPatch + str(nom) )
nom = nom + 1
return nom
Endif
Endif
Endsub
;
Sub DropSomeLogs()
; В тестовом ламбере сбрасываем обычные логи под ноги и заносим их кол-во
; в счетчики
VAR clrlog = UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'Clr1' )
VAR typlog = UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'LogsTyp1' )
VAR tmp1, kolvo
UO.FindType( typlog, clrlog, 'backpack' )
If UO.FindCount() > 0 Then
kolvo = UO.GetQuantity( 'finditem' )
WriteLog( 'I drop ' + str( kolvo ) + ' logs', 0 )
tmp1 = GetNameLogs( clrlog, kolvo )
UO.DropHere( 'finditem' )
wait(1000)
CheckLag()
Endif
endsub
;
; на основании цвета определяем название руды
;
Sub GetNameLogs( clr, add )
VAR nam, res
If clr == UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'Clr1' ) Then
nam = UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'Nam1' )
res = val( UO.GetGlobal( 'Logs' ) ) + add
UO.SetGlobal( 'Logs', str( res ) )
UO.SetGlobal( 'Itog', str( res ) )
UO.asmSetIniVar( 'mine&lumb.ini', 'LogCount', 'TreeLogs', str(res) )
return nam
Endif
If clr == UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'Clr2' ) Then
nam = UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'Nam2' )
res = val( UO.GetGlobal( 'AncientLogs' ) ) + add
UO.SetGlobal( 'AncientLogs', str( res ) )
UO.SetGlobal( 'Itog', str( res ) )
UO.asmSetIniVar( 'mine&lumb.ini', 'LogCount', 'AncientLogs', str(res) )
return nam
Endif
If clr == UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'Clr3' ) Then
nam = UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'Nam3' )
res = val( UO.GetGlobal( 'SturdyLogs' ) ) + add
UO.SetGlobal( 'SturdyLogs', str( res ) )
UO.SetGlobal( 'Itog', str( res ) )
UO.asmSetIniVar( 'mine&lumb.ini', 'LogCount', 'SturdyLogs', str(res) )
return nam
Endif
If clr == UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'Clr4' ) Then
nam = UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'Nam4' )
res = val( UO.GetGlobal( 'SteelLogs' ) ) + add
UO.SetGlobal( 'SteelLogs', str( res ) )
UO.SetGlobal( 'Itog', str( res ) )
UO.asmSetIniVar( 'mine&lumb.ini', 'LogCount', 'SteelLogs', str(res) )
return nam
Endif
If clr == UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'Clr5' ) Then
nam = UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'Nam5' )
res = val( UO.GetGlobal( 'NeitralLogs' ) ) + add
UO.SetGlobal( 'NeitralLogs', str( res ) )
UO.SetGlobal( 'Itog', str( res ) )
UO.asmSetIniVar( 'mine&lumb.ini', 'LogCount', 'NeitralLogs', str(res) )
return nam
Endif
If clr == UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'Clr6' ) Then
nam = UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'Nam6' )
res = val( UO.GetGlobal( 'OrderLogs' ) ) + add
UO.SetGlobal( 'OrderLogs', str( res ) )
UO.SetGlobal( 'Itog', str( res ) )
UO.asmSetIniVar( 'mine&lumb.ini', 'LogCount', 'OrderLogs', str(res) )
return nam
Endif
If clr == UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'Clr7' ) Then
nam = UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'Nam7' )
res = val( UO.GetGlobal( 'ChaosLogs' ) ) + add
UO.SetGlobal( 'ChaosLogs', str( res ) )
UO.SetGlobal( 'Itog', str( res ) )
UO.asmSetIniVar( 'mine&lumb.ini', 'LogCount', 'ChaosLogs', str(res) )
return nam
Endif
If clr == UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'Clr8' ) Then
nam = UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'Nam8' )
res = val( UO.GetGlobal( 'TitanicLogs' ) ) + add
UO.SetGlobal( 'TitanicLogs', str( res ) )
UO.SetGlobal( 'Itog', str( res ) )
UO.asmSetIniVar( 'mine&lumb.ini', 'LogCount', 'TitanicLogs', str(res) )
return nam
Endif
If clr == UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'Clr9' ) Then
nam = UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'Nam9' )
res = val( UO.GetGlobal( 'ElvinLogs' ) ) + add
UO.SetGlobal( 'ElvinLogs', str( res ) )
UO.SetGlobal( 'Itog', str( res ) )
UO.asmSetIniVar( 'mine&lumb.ini', 'LogCount', 'ElvinLogs', str(res) )
return nam
Endif
UO.SetGlobal( 'Itog', str( 0 ) )
return 'other logs'
Endsub
;
Sub GetNameOre( clr, add )
VAR nam, res
If clr == UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Clr1' ) Then
nam = UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam1' )
res = val( UO.GetGlobal( 'Iron' ) ) + add
UO.SetGlobal( 'Iron', str( res ) )
UO.SetGlobal( 'Itog', str( res ) )
UO.asmSetIniVar( 'mine&lumb.ini', 'OreCount', 'Iron', str(res) )
return nam
Endif
If clr == UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Clr2' ) Then
nam = UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam2' )
res = val( UO.GetGlobal( 'Damned' ) ) + add
UO.SetGlobal( 'Damned', str( res ) )
UO.SetGlobal( 'Itog', str( res ) )
UO.asmSetIniVar( 'mine&lumb.ini', 'OreCount', 'Damned', str(res) )
return nam
Endif
If clr == UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Clr3' ) Then
nam = UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam3' )
res = val( UO.GetGlobal( 'Kreonit' ) ) + add
UO.SetGlobal( 'Kreonit', str( res ) )
UO.SetGlobal( 'Itog', str( res ) )
UO.asmSetIniVar( 'mine&lumb.ini', 'OreCount', 'Kreonit', str(res) )
return nam
Endif
If clr == UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Clr4' ) Then
nam = UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam4' )
res = val( UO.GetGlobal( 'Copper' ) ) + add
UO.SetGlobal( 'Copper', str( res ) )
UO.SetGlobal( 'Itog', str( res ) )
UO.asmSetIniVar( 'mine&lumb.ini', 'OreCount', 'Copper', str(res) )
return nam
Endif
If clr == UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Clr5' ) Then
nam = UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam5' )
res = val( UO.GetGlobal( 'Bronze' ) ) + add
UO.SetGlobal( 'Bronze', str( res ) )
UO.SetGlobal( 'Itog', str( res ) )
UO.asmSetIniVar( 'mine&lumb.ini', 'OreCount', 'Bronze', str(res) )
return nam
Endif
If clr == UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Clr6' ) Then
nam = UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam6' )
res = val( UO.GetGlobal( 'Walean' ) ) + add
UO.SetGlobal( 'Walean', str( res ) )
UO.SetGlobal( 'Walean', str( res ) )
UO.asmSetIniVar( 'mine&lumb.ini', 'OreCount', 'Walean', str(res) )
return nam
Endif
If clr == UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Clr7' ) Then
nam = UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam7' )
res = val( UO.GetGlobal( 'Golden' ) ) + add
UO.SetGlobal( 'Golden', str( res ) )
UO.SetGlobal( 'Itog', str( res ) )
UO.asmSetIniVar( 'mine&lumb.ini', 'OreCount', 'Golden', str(res) )
return nam
Endif
If clr == UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Clr8' ) Then
nam = UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam8' )
res = val( UO.GetGlobal( 'Silver' ) ) + add
UO.SetGlobal( 'Silver', str( res ) )
UO.SetGlobal( 'Itog', str( res ) )
UO.asmSetIniVar( 'mine&lumb.ini', 'OreCount', 'Silver', str(res) )
return nam
Endif
If clr == UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Clr9' ) Then
nam = UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam9' )
res = val( UO.GetGlobal( 'Oceanite' ) ) + add
UO.SetGlobal( 'Oceanite', str( res ) )
UO.SetGlobal( 'Itog', str( res ) )
UO.asmSetIniVar( 'mine&lumb.ini', 'OreCount', 'Oceanite', str(res) )
return nam
Endif
If clr == UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Clr10' ) Then
nam = UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam10' )
res = val( UO.GetGlobal( 'BloodRock' ) ) + add
UO.SetGlobal( 'BloodRock', str( res ) )
UO.SetGlobal( 'Itog', str( res ) )
UO.asmSetIniVar( 'mine&lumb.ini', 'OreCount', 'BloodRock', str(res) )
return nam
Endif
If clr == UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Clr11' ) Then
nam = UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam11' )
res = val( UO.GetGlobal( 'Sacred' ) ) + add
UO.SetGlobal( 'Sacred', str( res ) )
UO.SetGlobal( 'Itog', str( res ) )
UO.asmSetIniVar( 'mine&lumb.ini', 'OreCount', 'Sacred', str(res) )
return nam
Endif
If clr == UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Clr12' ) Then
nam = UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam12' )
res = val( UO.GetGlobal( 'Brilliant' ) ) + add
UO.SetGlobal( 'Brilliant', str( res ) )
UO.SetGlobal( 'Itog', str( res ) )
UO.asmSetIniVar( 'mine&lumb.ini', 'OreCount', 'Brilliant', str(res) )
return nam
Endif
If clr == UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Clr13' ) Then
nam = UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam13' )
res = val( UO.GetGlobal( 'Order' ) ) + add
UO.SetGlobal( 'Order', str( res ) )
UO.SetGlobal( 'Itog', str( res ) )
UO.asmSetIniVar( 'mine&lumb.ini', 'OreCount', 'Order', str(res) )
return nam
Endif
If clr == UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Clr14' ) Then
nam = UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam14' )
res = val( UO.GetGlobal( 'Chaos' ) ) + add
UO.SetGlobal( 'Chaos', str( res ) )
UO.SetGlobal( 'Itog', str( res ) )
UO.asmSetIniVar( 'mine&lumb.ini', 'OreCount', 'Chaos', str(res) )
return nam
Endif
If clr == UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Clr15' ) Then
nam = UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam15' )
res = val( UO.GetGlobal( 'Neutral' ) ) + add
UO.SetGlobal( 'Neutral', str( res ) )
UO.SetGlobal( 'Itog', str( res ) )
UO.asmSetIniVar( 'mine&lumb.ini', 'OreCount', 'Neutral', str(res) )
return nam
Endif
If clr == UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Clr16' ) Then
nam = UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam16' )
res = val( UO.GetGlobal( 'Stardust' ) ) + add
UO.SetGlobal( 'Stardust', str( res ) )
UO.SetGlobal( 'Itog', str( res ) )
UO.asmSetIniVar( 'mine&lumb.ini', 'OreCount', 'Stardust', str(res) )
return nam
Endif
If clr == UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Clr17' ) Then
nam = UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam17' )
res = val( UO.GetGlobal( 'Citadel' ) ) + add
UO.SetGlobal( 'Citadel', str( res ) )
UO.SetGlobal( 'Itog', str( res ) )
UO.asmSetIniVar( 'mine&lumb.ini', 'OreCount', 'Citadel', str(res) )
return nam
Endif
If clr == UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Clr18' ) Then
nam = UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam18' )
res = val( UO.GetGlobal( 'Plaster' ) ) + add
UO.SetGlobal( 'Plaster', str( res ) )
UO.SetGlobal( 'Itog', str( res ) )
UO.asmSetIniVar( 'mine&lumb.ini', 'OreCount', 'Plaster', str(res) )
return nam
Endif
If clr == UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Clr19' ) Then
nam = UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam19' )
res = val( UO.GetGlobal( 'Sandstone' ) ) + add
UO.SetGlobal( 'Sandstone', str( res ) )
UO.SetGlobal( 'Itog', str( res ) )
UO.asmSetIniVar( 'mine&lumb.ini', 'OreCount', 'Sandstone', str(res) )
return nam
Endif
If clr == UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Clr20' ) Then
nam = UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam20' )
res = val( UO.GetGlobal( 'Stone' ) ) + add
UO.SetGlobal( 'Stone', str( res ) )
UO.SetGlobal( 'Itog', str( res ) )
UO.asmSetIniVar( 'mine&lumb.ini', 'OreCount', 'Stone', str(res) )
return nam
Endif
If clr == UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Clr21' ) Then
nam = UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam21' )
res = val( UO.GetGlobal( 'Marble' ) ) + add
UO.SetGlobal( 'Marble', str( res ) )
UO.SetGlobal( 'Itog', str( res ) )
UO.asmSetIniVar( 'mine&lumb.ini', 'OreCount', 'Marble', str(res) )
return nam
Endif
nam = 'Unknown ore'
return nam
endsub
;
Sub WriteLog( mes, mod )
; Стандартизированная общая функция помещения информации в лог
;
; Режимы работы:
;
; 0 - запись текстовой строки.
; 1 - старт скрипта. Делается отступ, пишется информация о старте скрипта.
; переданный текст игнорируется.
; 2 - проверяется в журнале наличие соответствующих сообщений и пишется
; в журнал итог копки в этой точке. В текстовой строке идут координаты
; чара и координаты точки копки через пробел. Режим (копка или рубка)
; проверяется через глобалку.
; 3 - Информация о разгрузке. Текст - чего и сколько выгружаем.
; 4 - Информация о доборе. Текст - чего и сколько добираем.
; 5 - Сброс информации о количестве добытого разрушившимся инструментом.
; Счетчики берутся из глобальных переменных и потом обнуляются.
; Текст - тип разрушившегося инструмента.
;
; Дата и время добавляются автоматически.
; Режимы 2, 3, 4 помещаются в лог только если включен режим "Подробный лог"
; Если "подробный лог" выключен - в пятом режиме счетчики не обнуляются.
;
; Информация помещается одновременно в текстовый файл и в текстовое окно. Строки
; текстового окна считаются и по достижении 100 строк окно очищается. Счетчик
; количества строк ведется в глобалке.
;
VAR i, v
VAR t = val( UO.GetGlobal( 'CountLineTextW' ) )
VAR fil = UO.GetGlobal( 'LogFile' )
VAR CurTim = UO.asmGetDate('dd/mm/yy') + ' ' + UO.asmGetTime('hh:nn:ss') + ' '
If t > 99 Then
UO.TextClear()
t = 0
Endif
If mod == 0 Then
UO.asmLogAdd( fil, CurTim + mes )
UO.TextPrint( CurTim + mes )
t = t + 1
Endif
If mod == 1 Then
UO.TextOpen()
UO.TextClear()
t = 0
For i = 1 To 3
UO.asmLogAdd( fil, ' ' )
UO.TextPrint( ' ' )
Next
UO.asmLogAdd( fil, '============================================================' )
UO.asmLogAdd( fil, CurTim + 'Script started' )
UO.TextPrint( CurTim + 'Script started' )
UO.asmLogAdd( fil, '============================================================' )
t = t + 4
Endif
If mod == 2 Then
If UO.GetGlobal( 'ModeOfScript' ) == '1' OR UO.GetGlobal( 'ModeOfScript' ) == '2' OR UO.GetGlobal( 'ModeOfScript' ) == '5' Then
v = GetJournalMes( 'pickaxe' )
Else
v = GetJournalMes( 'hatchet' )
Endif
UO.asmLogAdd( fil, CurTim + mes + ' ' + v )
UO.TextPrint( CurTim + mes + ' ' + v )
t = t + 1
Endif
If mod == 3 Then
If UO.GetGlobal( 'CheckLog' ) == '1' Then
UO.asmLogAdd( fil, CurTim + '========== Discharge ' + mes )
UO.TextPrint( CurTim + '========== Discharge ' + mes )
t = t + 1
Endif
Endif
If mod == 4 Then
If UO.GetGlobal( 'CheckLog' ) == '1' Then
UO.asmLogAdd( fil, CurTim + '========== I get ' + mes )
UO.TextPrint( CurTim + '========== I get ' + mes )
t = t + 1
Endif
Endif
If mod == 5 Then
If mes == 'hatchet' Then
UO.asmLogAdd( fil, '============================================================' )
UO.asmLogAdd( fil, CurTim + 'Hatchet destroyed!' )
UO.TextPrint( CurTim + 'Hatchet destroyed!' )
UO.asmLogAdd( fil, '==============================' )
UO.asmLogAdd( fil, 'Summary:' )
UO.TextPrint( 'Summary:' )
UO.asmLogAdd( fil, UO.GetGlobal( 'Logs' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'Nam1' ) )
UO.TextPrint( UO.GetGlobal( 'Logs' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'Nam1' ) )
UO.asmLogAdd( fil, UO.GetGlobal( 'AncientLogs' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'Nam2' ) )
UO.TextPrint( UO.GetGlobal( 'AncientLogs' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'Nam2' ) )
UO.asmLogAdd( fil, UO.GetGlobal( 'SturdyLogs' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'Nam3' ) )
UO.TextPrint( UO.GetGlobal( 'SturdyLogs' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'Nam3' ) )
UO.asmLogAdd( fil, UO.GetGlobal( 'SteelLogs' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'Nam4' ) )
UO.TextPrint( UO.GetGlobal( 'SteelLogs' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'Nam4' ) )
UO.asmLogAdd( fil, UO.GetGlobal( 'NeitralLogs' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'Nam5' ) )
UO.TextPrint( UO.GetGlobal( 'NeitralLogs' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'Nam5' ) )
UO.asmLogAdd( fil, UO.GetGlobal( 'ChaosLogs' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'Nam6' ) )
UO.TextPrint( UO.GetGlobal( 'ChaosLogs' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'Nam6' ) )
UO.asmLogAdd( fil, UO.GetGlobal( 'OrderLogs' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'Nam7' ) )
UO.TextPrint( UO.GetGlobal( 'OrderLogs' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'Nam7' ) )
UO.asmLogAdd( fil, UO.GetGlobal( 'TitanicLogs' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'Nam8' ) )
UO.TextPrint( UO.GetGlobal( 'TitanicLogs' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'Nam8' ) )
UO.asmLogAdd( fil, UO.GetGlobal( 'ElvinLogs' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'Nam9' ) )
UO.TextPrint( UO.GetGlobal( 'ElvinLogs' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'Nam9' ) )
UO.asmLogAdd( fil, '==============================' )
t = t + 11
If UO.GetGlobal( 'CheckLog' ) == '1' Then
UO.SetGlobal( 'Logs', '0' )
UO.SetGlobal( 'AncientLogs', '0' )
UO.SetGlobal( 'SturdyLogs', '0' )
UO.SetGlobal( 'SteelLogs', '0' )
UO.SetGlobal( 'NeitralLogs', '0' )
UO.SetGlobal( 'ChaosLogs', '0' )
UO.SetGlobal( 'OrderLogs', '0' )
UO.SetGlobal( 'TitanicLogs', '0' )
UO.SetGlobal( 'ElvinLogs', '0' )
Endif
Endif
If mes == 'pickaxe' Then
UO.asmLogAdd( fil, '============================================================' )
UO.asmLogAdd( fil, CurTim + 'Pickaxe destroyed!' )
UO.TextPrint( CurTim + 'Pickaxe destroyed!' )
UO.asmLogAdd( fil, '==============================' )
UO.asmLogAdd( fil, 'Summary:' )
UO.TextPrint( 'Summary:' )
UO.asmLogAdd( fil, UO.GetGlobal( 'Iron' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam1' ) )
UO.TextPrint( UO.GetGlobal( 'Iron' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam1' ) )
UO.asmLogAdd( fil, UO.GetGlobal( 'Damned' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam2' ) )
UO.TextPrint( UO.GetGlobal( 'Damned' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam2' ) )
UO.asmLogAdd( fil, UO.GetGlobal( 'Kreonit' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam3' ) )
UO.TextPrint( UO.GetGlobal( 'Kreonit' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam3' ) )
UO.asmLogAdd( fil, UO.GetGlobal( 'Copper' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam4' ) )
UO.TextPrint( UO.GetGlobal( 'Copper' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam4' ) )
UO.asmLogAdd( fil, UO.GetGlobal( 'Bronze' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam5' ) )
UO.TextPrint( UO.GetGlobal( 'Bronze' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam5' ) )
UO.asmLogAdd( fil, UO.GetGlobal( 'Walean' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam6' ) )
UO.TextPrint( UO.GetGlobal( 'Walean' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam6' ) )
UO.asmLogAdd( fil, UO.GetGlobal( 'Golden' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam7' ) )
UO.TextPrint( UO.GetGlobal( 'Golden' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam7' ) )
UO.asmLogAdd( fil, UO.GetGlobal( 'Silver' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam8' ) )
UO.TextPrint( UO.GetGlobal( 'Silver' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam8' ) )
UO.asmLogAdd( fil, UO.GetGlobal( 'Oceanite' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam9' ) )
UO.TextPrint( UO.GetGlobal( 'Oceanite' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam9' ) )
UO.asmLogAdd( fil, UO.GetGlobal( 'BloodRock' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam10' ) )
UO.TextPrint( UO.GetGlobal( 'BloodRock' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam10' ) )
UO.asmLogAdd( fil, UO.GetGlobal( 'Sacred' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam11' ) )
UO.TextPrint( UO.GetGlobal( 'Sacred' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam11' ) )
UO.asmLogAdd( fil, UO.GetGlobal( 'Brilliant' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam12' ) )
UO.TextPrint( UO.GetGlobal( 'Brilliant' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam12' ) )
UO.asmLogAdd( fil, UO.GetGlobal( 'Order' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam13' ) )
UO.TextPrint( UO.GetGlobal( 'Order' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam13' ) )
UO.asmLogAdd( fil, UO.GetGlobal( 'Chaos' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam14' ) )
UO.TextPrint( UO.GetGlobal( 'Chaos' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam14' ) )
UO.asmLogAdd( fil, UO.GetGlobal( 'Neutral' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam15' ) )
UO.TextPrint( UO.GetGlobal( 'Neutral' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam15' ) )
UO.asmLogAdd( fil, UO.GetGlobal( 'Stardust' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam16' ) )
UO.TextPrint( UO.GetGlobal( 'Stardust' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam16' ) )
UO.asmLogAdd( fil, UO.GetGlobal( 'Citadel' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam17' ) )
UO.TextPrint( UO.GetGlobal( 'Citadel' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam17' ) )
UO.asmLogAdd( fil, UO.GetGlobal( 'Plaster' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam18' ) )
UO.TextPrint( UO.GetGlobal( 'Plaster' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam18' ) )
UO.asmLogAdd( fil, UO.GetGlobal( 'Sandstone' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam19' ) )
UO.TextPrint( UO.GetGlobal( 'Sandstone' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam19' ) )
UO.asmLogAdd( fil, UO.GetGlobal( 'Stone' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam20' ) )
UO.TextPrint( UO.GetGlobal( 'Stone' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam20' ) )
UO.asmLogAdd( fil, UO.GetGlobal( 'Marble' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam21' ) )
UO.TextPrint( UO.GetGlobal( 'Marble' ) + ' ' + UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'Nam21' ) )
UO.asmLogAdd( fil, '==============================' )
t = t + 23
If UO.GetGlobal( 'CheckLog' ) == '1' Then
UO.SetGlobal( 'Iron', '0' )
UO.SetGlobal( 'Damned', '0' )
UO.SetGlobal( 'Kreonit', '0' )
UO.SetGlobal( 'Copper', '0' )
UO.SetGlobal( 'Bronze', '0' )
UO.SetGlobal( 'Walean', '0' )
UO.SetGlobal( 'Golden', '0' )
UO.SetGlobal( 'Silver', '0' )
UO.SetGlobal( 'Oceanite', '0' )
UO.SetGlobal( 'BloodRock', '0' )
UO.SetGlobal( 'Sacred', '0' )
UO.SetGlobal( 'Brilliant', '0' )
UO.SetGlobal( 'Order', '0' )
UO.SetGlobal( 'Chaos', '0' )
UO.SetGlobal( 'Neutral', '0' )
UO.SetGlobal( 'Stardust', '0' )
UO.SetGlobal( 'Citadel', '0' )
UO.SetGlobal( 'Plaster', '0' )
UO.SetGlobal( 'Sandstone', '0' )
UO.SetGlobal( 'Stone', '0' )
UO.SetGlobal( 'Marble', '0' )
Endif
Endif
Endif
UO.SetGlobal( 'CountLineTextW', str( t ) )
endsub
;
Sub GetJournalMes( typ )
VAR ms1, ms2, ms3, ms4, ms5, ms6, ms7, ms8, ms9, i, s, d
If typ == 'pickaxe' Then
ms1 = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonMessage', 'Mining1' )
ms2 = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonMessage', 'Mining2' )
ms3 = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonMessage', 'Mining3' )
ms4 = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonMessage', 'Mining4' )
ms5 = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonMessage', 'Mining5' )
ms6 = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonMessage', 'Mining6' )
ms7 = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonMessage', 'Mining7' )
ms8 = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonMessage', 'Mining8' )
ms9 = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonMessage', 'Mining9' )
Else
ms1 = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonMessage', 'Lamber1' )
ms2 = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonMessage', 'Lamber2' )
ms3 = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonMessage', 'Lamber3' )
ms4 = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonMessage', 'Lamber4' )
ms5 = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonMessage', 'Lamber5' )
ms6 = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonMessage', 'Lamber6' )
ms7 = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonMessage', 'Lamber7' )
ms8 = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonMessage', 'Lamber8' )
ms9 = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonMessage', 'Lamber9' )
Endif
If UO.InJournal( ms1 ) Then
If typ == 'pickaxe' Then
return 'Нет руды'
Else
return 'Нет логов'
Endif
Endif
If UO.InJournal( ms2 ) Then
return 'Не могу'
Endif
i = UO.InJournal( ms3 )
If i Then
If typ == 'pickaxe' Then
s = UO.Journal( i - 1 )
d = len( s )
s = left( s, d - 13 )
s = right( s, d - 25 )
return s
Else
return UO.Journal( i - 1 )
Endif
Endif
If UO.InJournal( ms4 ) Then
return 'Физл'
Endif
If UO.InJournal( ms5 ) Then
return 'Далеко'
Endif
If UO.InJournal( ms6 ) Then
return 'Невозможно'
Endif
If UO.InJournal( ms7 ) Then
return 'Не вижу'
Endif
If UO.InJournal( ms8 ) Then
return 'Инструмент накрылся медным тазом'
Endif
If UO.InJournal( ms9 ) Then
return 'Elemental!'
Endif
return ''
endsub
;
#================================================#
# СТАНДАРТНЫЕ ФУНКЦИИ И ПРОЦЕДУРЫ #
#================================================#
;
Sub CheckCharEat( nom )
; Проверка сытости чара через команду .howmanyfood и подкормка медом
; если необходимо. Параметр - необходимый уровень сытости.
; В последующих версиях - питье эля если уровень превышен.
; Мед должен быть у чара в паке, его добор в этой функции не производится!
;
DIM EatLevels[5]
EatLevels[1] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonMessage', 'EatLevels1' )
EatLevels[2] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonMessage', 'EatLevels2' )
EatLevels[3] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonMessage', 'EatLevels3' )
EatLevels[4] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonMessage', 'EatLevels4' )
EatLevels[5] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonMessage', 'EatLevels5' )
VAR i, tmpstr, j,
VAR med = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonTypes', 'Med' )
For i = 1 To 5
tmpstr = EatLevels[i]
DeleteJournal( tmpstr )
Next
UO.SayU( '.howmanyfood' )
wait(500)
CheckLag()
For i = 1 To 5
tmpstr = EatLevels[i]
If UO.InJournal( tmpstr ) Then
j = i
Endif
Next
; итак, j - текущий уровень сытости чара
If j == nom Then
; все ок
return
Endif
If j > nom Then
; тут в будущем введем питие эля
Endif
If j < nom Then
; вот тут подкормка
repeat
tmpstr = EatLevels[j]
DeleteJournal( tmpstr )
UO.UseType( med )
wait(500)
CheckLag()
UO.SayU( '.howmanyfood' )
wait(500)
CheckLag()
If UO.InJournal( tmpstr ) == 0 Then
; вот и другое сообщение!
j = j + 1
If j == nom Then
; все ок. Съедим-ка, еще кусочек меда про запас
UO.UseType( med )
wait(500)
CheckLag()
return
Endif
Endif
until j == 5
Endif
endsub
;
Sub GetWord( st, nom )
; (c) Edred
; Возвращает слово из строки str за номером num
; если такого слова нет - возвращаем ''
;
; Разделителем слов считаем пробел. Несколько пробелов подряд считаются за один.
; Функция сделана без рекурсии специально для считывания слов из сверхдлинных строк!
;
VAR tmpst, i, dlin, kol = 0, start = 0
dlin = len( st )
For i=0 To dlin - 1
If mid( st, i, 1 ) == ' ' OR i == dlin - 1 Then
kol = kol + 1
If kol == nom Then
; это первый пробел после нужного нам слова
tmpst = mid( st, start, i - start )
return tmpst
Else
While mid( st, i, 1 ) == ' '
i = i + 1
Wend
If kol == nom - 1 Then
start = i
Endif
Endif
Endif
Next
tmpst = ''
return tmpst
endsub
;
; Реколл по руне в рунбуке.
;
Sub Recalling( Runbk, NRune )
; Runbk - сериал или ссылка на объект рунбуки
; NRune - десятичный номер (текстом) руны для реколла
VAR myx = UO.GetX()
VAR myy = UO.GetY()
VAR OldMana = UO.Mana
VAR i = 0
VAR fizzl = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonMessage', 'Fizzl' )
DeleteJournal( fizzl )
UO.Exec("recall " + Runbk + " " + NRune)
repeat
CheckLag()
wait(1000)
i = i + 1
until ( i > 6 ) OR ( UO.Mana < OldMana - 8 ) OR UO.InJournal( fizzl )
wait(500)
If myx == UO.GetX() AND myy == UO.GetY() Then
UO.WarMode( 'flip' )
wait(100)
UO.WarMode( 'flip' )
Recalling( Runbk, NRune )
Endif
endsub
;
; Удаляем указанную фразу из журнала
;
Sub DeleteJournal( string1 )
VAR nom = UO.InJournal( string1 )
If nom > 0 Then
UO.SetJournalLine( Nom - 1, ' ' )
DeleteJournal( string1 )
Endif
endsub
;
; Проверка на лаги
; Идея - Savage
Sub CheckLag()
DeleteJournal( 'backpack' )
UO.Click( 'backpack' )
repeat
wait(100)
until UO.InJournal( 'backpack' )
return
end sub
;
;
Sub WriteSpace( nom )
VAR str1, i
str1 = ''
If nom < 1 Then
return str1
endif
for i = 1 to nom
str1 = str1 + ' '
next
return str1
endsub
;
Sub Bandag()
UO.SetArm('CWeapon')
UO.Exec('bandageself')
wait(300)
UO.Arm('CWeapon')
endsub
;
Sub MoveStek( usep )
; сдвиг стека на 100 ячеек вниз
VAR i, n, j = val( UO.GetGlobal( 'RazmerUseP' ) )
for i = 101 to j
n = i - 100
usep[n] = usep[i]
next
UO.SetGlobal( 'RazmerUseP', str( j - 100 ) )
endsub
;
Sub GoHide()
UO.WarMode( 0 )
While not UO.Hidden()
UO.UseSkill( 'Hiding' )
Wait(4000)
Wend
endsub
;
Sub RestoreChar( a )
; если параметр 0 - разовый подхилл чара
; если параметр 1 - подхилл до полного здоровья
If a == 0 Then
If UO.Count( UO.GetGlobal( 'Bandag' ) ) > 0 Then
UO.Bandageself()
wait( 300 )
Endif
return
Endif
If a == 1 Then
If UO.Count( UO.GetGlobal( 'Bandag' ) ) > 0 Then
While UO.Life < 150 AND UO.Count( UO.GetGlobal( 'Bandag' ) ) > 0
UO.Bandageself()
wait( 2000 )
Wend
Endif
return
Endif
endsub
;
Sub CorpseLoot( Cont )
; лутим из Cont
DIM Nado[17]
; gold coin
Nado[0] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonTypes', 'Money' )
; cintrines
Nado[1] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonTypes', 'Cintrines' )
; pearls, black pearls
Nado[2] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonTypes', 'Regs0' )
; bood moss
Nado[3] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonTypes', 'Regs1' )
; garlic
Nado[4] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonTypes', 'Regs3' )
; ginseng
Nado[5] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonTypes', 'Regs4' )
; mandrake root
Nado[6] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonTypes', 'Regs2' )
; night shade
Nado[7] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonTypes', 'Regs5' )
; sulphorous ash
Nado[8] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonTypes', 'Regs6' )
; spiders silk
Nado[9] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonTypes', 'Regs7' )
; cut up leather
Nado[10] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonTypes', 'Cutleather' )
; leather
Nado[11] = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonTypes', 'Leather2' )
; руда (много)
Nado[12] = UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'OreTyp1' )
; руда (3 шт.)
Nado[13] = UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'OreTyp2' )
; руда (2 шт.)
Nado[14] = UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'OreTyp3' )
; руда (1 шт.)
Nado[15] = UO.asmGetIniVar( 'mine&lumb.ini', 'MineParam', 'OreTyp4' )
; Логи
Nado[16] = UO.asmGetIniVar( 'mine&lumb.ini', 'LamberParam', 'LogsTyp1' )
VAR i, typ
VAR Scissor = UO.asmGetIniVar( 'mine&lumb.ini', 'CommonTypes', 'Scissor' )
For i = 0 To 16
UO.FindType( Nado[i], '-1', Cont )
While UO.FindCount() > 0
WriteLog( 'I loot of ' + UO.GetGraphic( 'finditem' ) + ' ' + UO.GetColor( 'finditem' ), 0 )
If i == 11 Then
UO.WaitTargetObject( 'finditem' )
UO.UseType( Scissor )
wait(500)
CheckLag()
Else
UO.MoveItem( 'finditem' )
wait(500)
CheckLag()
Endif
UO.FindType( Nado[i], '-1', Cont )
Wend
Next
WriteLog( 'The loot was finished', 0 )
endsub
;
Sub DropWeapon()
UO.UnEquip( 'Lhand' )
wait(500)
UO.UnEquip( 'Rhand' )
wait(500)
endsub
;
Sub GetWeapon( Fork, Shield )
; берем в руки оружие и щит. Динамические паузы и оптимитизация.
If UO.GetGraphic( UO.ObjAtLayer( 'Lhand' ) ) == Shield Then
If UO.GetGraphic( UO.ObjAtLayer( 'Rhand' ) ) == Fork Then
; уже в руках все
return
Else
; надо взять в руки только оружие, щит не надо
UO.Equipt( 'Rhand', Fork )
repeat
wait(100)
until UO.GetGraphic( UO.ObjAtLayer( 'Rhand' ) ) == Fork
Endif
Else
If UO.GetGraphic( UO.ObjAtLayer( 'Rhand' ) ) == Fork Then
; в руках только оружие, надо еще щит взять
UO.Equipt( 'Lhand', Shield )
repeat
wait(100)
until UO.GetGraphic( UO.ObjAtLayer( 'Lhand' ) ) == Shield
Else
; в руках нет ни оружия, ни щита
UO.Equipt( 'Rhand', Fork )
repeat
wait(100)
until UO.GetGraphic( UO.ObjAtLayer( 'Rhand' ) ) == Fork
UO.Equipt( 'Lhand', Shield )
repeat
wait(100)
until UO.GetGraphic( UO.ObjAtLayer( 'Lhand' ) ) == Shield
Endif
Endif
endsub