Попробывал нарисовать что-нибудь у себя в рюкзаке - пришёл к неутешительному выводу - двигать монетки жутко неудобно..
Скрипт не совсем соответствует названию, но процесс облегчает весьма заметно.
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