Попробывал нарисовать что-нибудь у себя в рюкзаке - пришёл к неутешительному выводу - двигать монетки жутко неудобно..
Скрипт не совсем соответствует названию, но процесс облегчает весьма заметно.
Code: ; Рисование в сумках - процедура выбора предмета для перемещения Sub paint_select() if not uo.getGlobal( "paint_first" ) == "On" then uo.print( "Сначало нужно взять хотя бы один предмет." ) return false endif uo.print( "Выбери объект с которым будешь рисовать сейчас." ) uo.addObject( "paint now" ) while uo.targeting() wait( 100 ) wend if uo.getSerial( "paint now" ) == "0x00000000" then uo.print( "Некорректно выбран объект." ) return false endif if not uo.containerOf( "paint now" ) == uo.getGlobal( "paint_w" ) then uo.print( "Нужно выбирать объект в рабочем контейнере." ) return false endif uo.setGlobal( "paint_o", uo.getSerial( "paint now" ) ) uo.setGlobal( "paint_first", "On" ) endsub
; Рисование в сумках - процедура сброса скорости перемещений Sub paint_speed() uo.setGlobal( "paint_s", "1" ) uo.print( "Move speed now: " + uo.getGlobal( "paint_s" ) ) endsub
; Рисование в сумках - процедура увеличения скорости перемещений Sub paint_increase() uo.setGlobal( "paint_s", str( val( uo.getGlobal( "paint_s" ) ) + 1 ) ) uo.print( "Move speed now: " + uo.getGlobal( "paint_s" ) ) endsub
; Рисование в сумках - процедура уменшения скорости перемещений Sub paint_decrease() uo.setGlobal( "paint_s", str( val( uo.getGlobal( "paint_s" ) ) - 1 ) ) uo.print( "Move speed now: " + uo.getGlobal( "paint_s" ) ) endsub
; Рисование в сумках - процедура перемещения предмета влево Sub paint_left() paint_move( -1 * val( uo.getGlobal( "paint_s" ) ), 0 ) endsub
; Рисование в сумках - процедура перемещения предмета вправо Sub paint_right() paint_move( 1 * val( uo.getGlobal( "paint_s" ) ), 0 ) endsub
; Рисование в сумках - процедура перемещения предмета вверх Sub paint_up() paint_move( 0, -1 * val( uo.getGlobal( "paint_s" ) ) ) endsub
; Рисование в сумках - процедура перемещения предмета вниз Sub paint_down() paint_move( 0, 1 * val( uo.getGlobal( "paint_s" ) ) ) endsub
; Рисование в сумках - процедура перемещения предмета влево-вверх Sub paint_leftup() paint_move( -1 * val( uo.getGlobal( "paint_s" ) ), -1 * val( uo.getGlobal( "paint_s" ) ) ) endsub
; Рисование в сумках - процедура перемещения предмета влево-вниз Sub paint_leftdown() paint_move( -1 * val( uo.getGlobal( "paint_s" ) ), 1 * val( uo.getGlobal( "paint_s" ) ) ) endsub
; Рисование в сумках - процедура перемещения предмета враво-вверх Sub paint_rightup() paint_move( 1 * val( uo.getGlobal( "paint_s" ) ), -1 * val( uo.getGlobal( "paint_s" ) ) ) endsub
; Рисование в сумках - процедура перемещения предмета вправо-вниз Sub paint_rightdown() paint_move( 1 * val( uo.getGlobal( "paint_s" ) ), 1 * val( uo.getGlobal( "paint_s" ) ) ) endsub
; Рисование в сумках - основная процедура перемещения предмета Sub paint_move( x, y ) if not uo.getGlobal( "paint_first" ) == "On" then uo.print( "Сначало нужно взять хотя бы один предмет." ) return false endif var o = uo.getGlobal( "paint_o" ) var mx = str( uo.getX( o ) + x ) var my = str( uo.getY( o ) + y ) uo.moveitem( o, "1", uo.getGlobal( "paint_w" ), mx, my, "0") endsub
; Рисование в суках - процедура взятия следущей монетки Sub paint_next() if not uo.getGlobal( "paint" ) == "On" then uo.print( "Не инициирована основная процедура." ) return false endif uo.moveitem( uo.getGlobal( "paint_o" ), "1", uo.getGlobal("paint_w"), "100", "100", "0" ) while uo.containerOf( uo.getGlobal( "paint_o" ) ) == uo.getGlobal( "paint_c" ) wait( 100 ) wend if not uo.findcount() then uo.print( "Нечем рисовать!" ) return false endif uo.setGlobal( "paint_o", uo.getSerial( "finditem" ) ) uo.setGlobal( "paint_first", "On" ) endsub
; paint v1.0 (c) 2007, Destruction ; Рисование в сумках - процедура инициализации sub paint() uo.print( "Выбери предмет которым будем рисовать." ) uo.addObject( "paint object" ) while uo.targeting() wait( 100 ) wend if uo.getSerial( "paint object" ) == "0x00000000" then return false endif uo.print( "Выбери контейнер в котором будем рисовать" ) uo.addObject( "paint target" ) while uo.targeting() wait( 100 ) wend if uo.getSerial( "paint target" ) == "0x00000000" then return false endif uo.setGlobal( "paint", "On" ) uo.setGlobal( "paint_x", str( uo.getX( "paint object" ) ) ) uo.setGlobal( "paint_y", str( uo.getX( "paint object" ) ) ) uo.setGlobal( "paint_t", uo.getGraphic( "paint object" ) ) uo.setGlobal( "paint_l", uo.getColor( "paint object" ) ) uo.setGlobal( "paint_c", uo.containerOf( "paint object" ) ) uo.setGlobal( "paint_o", uo.getSerial( "paint object" ) ) uo.setGlobal( "paint_w", uo.getSerial( "paint target" ) ) uo.setGlobal( "paint_s", "1" ) endsub
Чтобы его юзать - нужно забиндить кучу кнопок, я предлагаю свои бинды (Num Lock > Off, чтобы не мешал потом цифры писать):
Code: Ctrl + N = exec paint_next Ctrl + S = exec paint_select Num + = exec paint_increase Num - = exec paint_decrease Num 0 = exec paint_speed Num 1 = exec paint_leftdown Num 2 = exec paint_down Num 3 = exec paint_rightdown Num 4 = exec paint_left Num 5 = resend Num 6 = exec paint_right Num 7 = exec paint_leftup Num 8 = exec paint_up Num 9 = exec paint_rightup
Собственно как я уже говорил цель скрипта - удобное перемещение монеток для рисования в рюкзаке Теперь расскажу вкратце о том как использовать.
Перво-наперво - запускаем процедуру инициализации - ,exec paint. Затем либо вручную выбираем предмет которым двигаем, либо берём следущий из стопки, кнопки Ctrl + S и Ctrl + N соответственно.
Собственно всё готово - можно рисовать, используем кнопки Num+ и Num- для ускорения / уменьшения расстояния на которое за раз двигается предмет, Num 0 - сбросить скорость в единицу, кнопки Num 1-9 - непосредственно перемещение в соответствующие стороны, кроме Num 5 - это просто Resend, на случае какого-либо заглючивания.
Собственно незнаю, такое чувство, что где-то это уже было, но всё-таки, может кому и пригодится, хотя я немного сомневаюсь в наличии тут столь творческих натур готовых рисовать даже так (или я просто невнимателен).
PS: Если бы не ограничение на количество предметов в контейнере - я бы весьма серьёзно задумался на sub photoshop с условием обязательной работы в ч/б режиме - это вполне реально.
Да и кстате, можно приладить все контролы к ASM, чтобы не писать кучу биндов, но мне лень, если кто вдруг и воспользуется - скажите, сделаю, не хочу просто так тратить время.
EoF
|