Yoko
http://forum.yoko.com.ua/

Role Play скрипты
http://forum.yoko.com.ua/viewtopic.php?f=20&t=12432
Page 1 of 1

Author:  Destruction [ 2007-09-10 21:05:00 ]
Post subject:  Role Play скрипты

Странно, но сколько читаю форум - не встречал ни одного скрипта помогающего поддерживать РП на шарде.

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

Собственно тут скрипты, обсуждение тут: 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

Author:  Destruction [ 2007-09-17 10:04:27 ]
Post subject: 

Попробывал нарисовать что-нибудь у себя в рюкзаке - пришёл к неутешительному выводу - двигать монетки жутко неудобно..

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

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

Page 1 of 1 All times are UTC+02:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/