| Yoko http://forum.yoko.com.ua/ |
|
| Господа помогите.Подскажите или подправте.... http://forum.yoko.com.ua/viewtopic.php?f=3&t=14237 |
Page 1 of 1 |
| Author: | KaTaJIa [ 2008-12-30 11:49:40 ] |
| Post subject: | Господа помогите.Подскажите или подправте.... |
sub superkopka() #################### Установка переменных #################################### VAR Kirka = '0x0E85' ; Тип Кирки VAR Hid = 0 VAR Recalling = 0 ; 0 - остановиться в конце, 1 - реколлиться VAR Dlin = 20 ; Максимальное число шагов в одном направлении VAR Napr = 0 ; В какую сторону: 0 - справа-налево, 1 - слева-направо VAR MaxVes = 550 ; Максимальный вес, подымаемый чаром минус 10-15 стоунов VAR Sdvig = 0 ; Куда сдвигаться при развороте: 0 - вниз, 1 - вверх VAR Propusk = 1 ; 1 - пропускать младшие руды, 0 - ненужных руд не бывает VAR Work = 1 ; пока 1 - работаем, 0 - прекращаем VAR i, j, CurX, CurY, k VAR TileNum = '1339' ; Тайл пола пещеры (наиболее распространенный тип) ############################################################################## ; Начальный блок If Hid == 1 Then ToHide() Endif ; Основная процедура i = 1 While Work == 1 While i < Dlin CurX = UO.GetX() CurY = UO.GetY() UO.Print( "Test: Begin in these coords..." ) k = Kopaem( MaxVes, TileNum, Kirka, Hid ) If k == 1 Then UO.Print( "Test: Overweight!" ) ; копаем вокруг себя ; Вернули 1 - Вес превышен Work = 0 i = Dlin + 1 Endif If UO.Weight > MaxVes Then UO.Print( "Test: Overweight!" ) ; Вес превышен! Work = 0 i = Dlin + 1 Endif If i < Dlin Then IdemHor(Napr) ; сдвигаемся UO.Print( "Test: Go to next coords..." ) Endif i = i + 1 If ( CurX == UO.GetX() ) AND ( CurY == UO.GetY() ) AND ( k == 0 ) Then ; положение чара не изменилось Razvorot(Sdvig) i = Dlin + 1 Endif Wend If Work == 1 Then If Napr == 0 Then Napr = 1 Else Napr = 0 Endif Endif Wend ; Сюда мы приходим при превышении веса (пока только так) for k = 1 to 2 UO.Exec( "playwav phone.wav" ) next ; Это уже конец скрипта Superkopka! end sub ; Процедура вскапывания 25 клеток вокруг чара sub Kopaem(MaxVes, TileNum, Kirka, HidFlag) # ------------------------------------------------------------------------------------------------------- # Получаем MaxVes - Максимальный вес чара (минус 10-15 стоунов), # TileNum - сериал тайла в котором копать, # HidFlag - проверяться на хайд или нет # ------------------------------------------------------------------------------------------------------- # Возвращаем: 0 - нормальное завершение цикла копки # 1 - Перевес, 2 - кто-то пришел, 3 - выкопан элементаль, # 4 - нас атакует ПК! # ------------------------------------------------------------------------------------------------------- VAR x, y, t VAR MaxTime = 100 ; измеряется в 1/10 сек. VAR hms = "You have been revealed" VAR ms1 = "There is" VAR ms2 = "You can't use" VAR ms3 = "You put" VAR ms4 = "You loosen" VAR ms5 = "You put" VAR ms6 = "Try mining" VAR UnloadCont = '0x4001F19A' If HidFlag == 1 Then hms = "GRDWQIHL28501VLZ" ; Такое сообщение точно никогда не получим Endif for y=-2 to 2 for x=-2 to 2 ; UO.Print( "Test: Try to point..." ) repeat UO.DeleteJournal() t = UO.Timer() ; UO.Print( "Test: Start in koords" ) UO.WaitTargetTile( TileNum, STR( UO.GetX() + x ), STR( UO.GetY() + y ), 0) UO.UseType( Kirka ) ; UO.Print( "Test: waiting" ) repeat wait(300) until UO.InJournal(ms1) OR UO.InJournal(ms2) OR UO.InJournal(ms3) OR UO.InJournal(ms4) OR UO.InJournal(ms5) OR UO.InJournal(ms6) OR UO.InJournal(hms) OR ((t + MaxTime)<UO.Timer()) ; UO.Print( "Test: End of waiting" ) ToHide() #wait (700) UO.FindType('0x19B7') if uo.GetQuantity('finditem')>0 then UO.SetReceivingContainer(UnloadCont) UO.Grab('0','finditem') UO.UnSetReceivingContainer() endif UO.FindType('0x19B9') if UO.GetColor('finditem')=='0x0000' then UO.DropHere('finditem') wait(1000) endif If UO.Weight > MaxVes Then ; Вес превышен! return 1 Endif If UO.InJournal(hms) Then If HidFlag == 1 Then ToHide() Endif Endif until ( NOT UO.InJournal(ms4) AND NOT UO.InJournal(ms3) ) next next ; UO.Print( "Test: Normal return" ) return 0 end sub ; Сдвигаем чара горизонтально на шаг sub IdemHor(Napr) VAR k if Napr == 0 Then ; направление - 5 ; клавиша Left - 37 If UO.GetDir() <> 5 Then UO.Press( 37 ) wait( 300 ) UO.Press( 37 ) wait( 300 ) UO.Press( 37 ) wait( 300 ) Endif ; for k=1 to 2 UO.Press( 37 ) wait( 300 ) ; next Else ; направление - 1 ; клавиша Right - 39 If UO.GetDir() <> 1 Then UO.Press( 39 ) wait( 300 ) Endif ; for k=1 to 2 UO.Press( 39 ) wait( 300 ) ; next Endif return end sub ; Процедура сдвига чара по вертикали при развороте на шаг sub Razvorot(Sdvig) VAR k if Sdvig == 0 Then ; направление - 3 ; клавиша Down - 40 If UO.GetDir() <> 3 Then UO.Press( 40 ) wait( 300 ) Endif ; for k=1 to 2 UO.Press( 40 ) wait( 300 ) ; next Else ; направление - 7 ; клавиша Up - 38 If UO.GetDir() <> 7 Then UO.Press( 38 ) wait( 300 ) Endif ; for k=1 to 2 UO.Press( 38 ) wait( 300 ) ; next Endif return end sub помогите вылетает: Line 103 Function not found - TOHIDE |
|
| Author: | Successful [ 2008-12-30 22:37:09 ] |
| Post subject: | |
у тебя там функции не хватает. Добавь Code: sub ToHide() |
|
| Page 1 of 1 | All times are UTC+02:00 |
| Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |
|