Yoko

All sides of Injection
It is currently 2024-03-28 22:17:26

All times are UTC+02:00




Post new topic  Reply to topic  [ 2 posts ] 
Author Message
 Post subject: Role Play скрипты
PostPosted: 2007-09-10 21:05:00 
Offline
Junior Expert
User avatar

Joined: 2004-06-24 22:08:56
Posts: 3220
Странно, но сколько читаю форум - не встречал ни одного скрипта помогающего поддерживать РП на шарде.

А между тем, грамотное ведение диалогов, в т.ч. с НПЦ весьма выделяет игрока среди обычных смертных, в конце концов инжект - это не только скрипты на "тупо кач" или пвп.

Собственно тут скрипты, обсуждение тут: viewtopic.php?p=65908#65908

При ведении диалогов с НПЦ - возникает лишь одна проблема - нпц говорят на англиском языке, а мы (в большинстве своём) - на русском, поэтому англиские буквы нужно как-то вкраплять в диалог.

Вобщем незнаю, поддержит ли меня кто, но я начну:
Code:
; Скрипт открывания банка в РП-стиле. Перед запуском встать возле любого банкира.
; Для работы скрипта необходимо включить Options > Miscellaneous -> Show Names of Approaching Players
; v1.0 (c) 2007, Destruction.
Sub RP.openBank()
   var msg = "Never lost a coin|Yes, banking|Keeping the money" ; сообщение об успешном открытии ячейки банка.
   deljournal( msg )
   uo.msg( "Пожалуйста, откройте мою ячейку в bank' е." )
   repeat
      wait( 100 )
   until uo.injournal( msg )
   uo.msg( "Спасибо " + uo.getName( uo.journalserial( uo.injournal( msg ) -1 ) ) + ", удачного дня, bye." )
endsub

_________________
YokoInjection CodeSweeper
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Skype: d119060


Top
   
 Post subject:
PostPosted: 2007-09-17 10:04:27 
Offline
Junior Expert
User avatar

Joined: 2004-06-24 22:08:56
Posts: 3220
Попробывал нарисовать что-нибудь у себя в рюкзаке - пришёл к неутешительному выводу - двигать монетки жутко неудобно..

Скрипт не совсем соответствует названию, но процесс облегчает весьма заметно.

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

_________________
YokoInjection CodeSweeper
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Skype: d119060


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 2 posts ] 

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 19 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited