Доброго времени суток...
Ищу человека, который поможет немножко отредактить скрипт IEX - Yggdrasil V1_3, так как сам я полный 0 в скриптинге... А из-за пары фиксов читать кучу рутины не греет...
Вот что бы я хотел попросить:
1. Что можно сделать, что бы данная боевка работала со скриптом фуллскрина, а именно:
#==============================================================================
# ** Resolution Max Разрешение экрана (Screen Resolution)
#------------------------------------------------------------------------------
# Автор RMVX Master
# 12-27-08 (27 декабря 2008)
#==============================================================================
# Важная информация!
# Старайтесь сделать свои карты как можно больше, иначе будут ошибки!
# Сделайте размер изображения главного меню таким же, как разрешение экрана.
# Не редактируйте этот сценарий после строки "Не изменять"!
#==============================================================================
# Установить разрешение экрана, максимальное 640,480
Graphics.resize_screen(800,600) #Введите свое разрешение (максимум 640,480)
#==============================================================================
# Не изменять после этой строки!
#==============================================================================
#==============================================================================
# Спрайт_Таймер
#==============================================================================
class Sprite_Timer < Sprite
def initialize(viewport)
super(viewport)
self.bitmap = Bitmap.new(88, 48)
self.bitmap.font.name = "Arial Black"
self.bitmap.font.size = 32
self.x = Graphics.width - self.bitmap.width
self.y = 0
self.z = 200
update
end
end
#==============================================================================
# ** НаборСпрайтов_Карта
#==============================================================================
class Spriteset_Map
#--------------------------------------------------------------------------
# * Создать порт просмотра
#--------------------------------------------------------------------------
def create_viewports
@viewport1 = Viewport.new(0, 0, Graphics.width, Graphics.height)
@viewport2 = Viewport.new(0, 0, Graphics.width, Graphics.height)
@viewport3 = Viewport.new(0, 0, Graphics.width, Graphics.height)
@viewport2.z = 50
@viewport3.z = 100
end
end
#==============================================================================
# ** НаборСпрайтов_Битва
#==============================================================================
class Spriteset_Battle
#--------------------------------------------------------------------------
# * Создать порты просмотра 1-3
#--------------------------------------------------------------------------
def create_viewports
@viewport1 = Viewport.new(0, 0, Graphics.width, Graphics.height)
@viewport2 = Viewport.new(0, 0, Graphics.width, Graphics.height)
@viewport3 = Viewport.new(0, 0, Graphics.width, Graphics.height)
@viewport2.z = 50
@viewport3.z = 100
end
#--------------------------------------------------------------------------
# * Создать спрайт фона битвы
#--------------------------------------------------------------------------
def create_battleback
source = $game_temp.background_bitmap
bitmap = Bitmap.new(Graphics.width + 96, Graphics.height + 64)
bitmap.stretch_blt(bitmap.rect, source, source.rect)
bitmap.radial_blur(90, 12)
@battleback_sprite = Sprite.new(@viewport1)
@battleback_sprite.bitmap = bitmap
@battleback_sprite.ox = 320
@battleback_sprite.oy = 240
@battleback_sprite.x = 272
@battleback_sprite.y = 176
@battleback_sprite.wave_amp = 8
@battleback_sprite.wave_length = 240
@battleback_sprite.wave_speed = 120
end
#--------------------------------------------------------------------------
# Создать спрайт поля битвы
#--------------------------------------------------------------------------
def create_battlefloor
@battlefloor_sprite = Sprite.new(@viewport1)
@battlefloor_sprite.bitmap = Cache.system("BattleFloor")
@battlefloor_sprite.x = 0
@battlefloor_sprite.y = 192
@battlefloor_sprite.z = 1
@battlefloor_sprite.opacity = 128
end
end
#==============================================================================
# ** Игра_Карта
#==============================================================================
class Game_Map
#--------------------------------------------------------------------------
# * Настройка прокрутки
#--------------------------------------------------------------------------
def setup_scroll
@scroll_direction = 2
@scroll_rest = 0
@scroll_speed = 4
@margin_x = (width - (Graphics.width / 32)) * 256 / 2
@margin_y = (height - (Graphics.height / 32)) * 256 / 2
end
#--------------------------------------------------------------------------
# * Расчет координаты X для фонового (parallax) отображения
# bitmap : точечный рисунок Parallax
#--------------------------------------------------------------------------
def calc_parallax_x(bitmap)
if bitmap == nil
return 0
elsif @parallax_loop_x
return @parallax_x / 16
elsif loop_horizontal?
return 0
else
w1 = bitmap.width - Graphics.width
w2 = @map.width * 32 - Graphics.width
if w1 <= 0 or w2 <= 0
return 0
else
return @parallax_x * w1 / w2 / 8
end
end
end
#--------------------------------------------------------------------------
# * Расчет координаты Y для фонового (parallax) отображения
# bitmap : точечный рисунок Parallax
#--------------------------------------------------------------------------
def calc_parallax_y(bitmap)
if bitmap == nil
return 0
elsif @parallax_loop_y
return @parallax_y / 16
elsif loop_vertical?
return 0
else
h1 = bitmap.height - Graphics.height
h2 = @map.height * 32 - Graphics.height
if h1 <= 0 or h2 <= 0
return 0
else
return @parallax_y * h1 / h2 / 8
end
end
end
#--------------------------------------------------------------------------
# * Прокрутка вниз
# distance : дальность прокрутки
#--------------------------------------------------------------------------
def scroll_down(distance)
if loop_vertical?
@display_y += distance
@display_y %= @map.height * 256
@parallax_y += distance
else
last_y = @display_y
@display_y = [@display_y + distance, (height - (Graphics.height / 32)) * 256].min
@parallax_y += @display_y - last_y
end
end
#--------------------------------------------------------------------------
# * Прокрутка вправо
# distance : дальность прокрутки
#--------------------------------------------------------------------------
def scroll_right(distance)
if loop_horizontal?
@display_x += distance
@display_x %= @map.width * 256
@parallax_x += distance
else
last_x = @display_x
@display_x = [@display_x + distance, (width - (Graphics.width / 32)) * 256].min
@parallax_x += @display_x - last_x
end
end
end
#==============================================================================
# ** Игра_Игрок
#==============================================================================
class Game_Player < Game_Character
#--------------------------------------------------------------------------
# * Установить позицию отображения карты в центр экрана
# x : координата х
# y : координата у
#--------------------------------------------------------------------------
def center(x, y)
center_x = (Graphics.width / 2 - 16) * 8
center_y = (Graphics.width / 2 - 16) * 8
display_x = x * 256 - center_x # Расчет координат
unless $game_map.loop_horizontal? # Нет горизонтального цикла?
max_x = ($game_map.width - (Graphics.width / 32)) * 256
display_x = [0, [display_x, max_x].min].max # Пересчет координат
end
display_y = y * 256 - center_y # Расчет координат
unless $game_map.loop_vertical? # Нет вертикального цикла?
max_y = ($game_map.height - (Graphics.height / 32)) * 256
display_y = [0, [display_y, max_y].min].max # Пересчет координат
end
$game_map.set_display_pos(display_x, display_y) # Сменить локацию карты
end
#--------------------------------------------------------------------------
# * Обновить прокрутку
#--------------------------------------------------------------------------
def update_scroll(last_real_x, last_real_y)
center_x = (Graphics.width / 2 - 16) * 8
center_y = (Graphics.width / 2 - 16) * 8
ax1 = $game_map.adjust_x(last_real_x)
ay1 = $game_map.adjust_y(last_real_y)
ax2 = $game_map.adjust_x(@real_x)
ay2 = $game_map.adjust_y(@real_y)
if ay2 > ay1 and ay2 > center_y
$game_map.scroll_down(ay2 - ay1)
end
if ax2 < ax1 and ax2 < center_x
$game_map.scroll_left(ax1 - ax2)
end
if ax2 > ax1 and ax2 > center_x
$game_map.scroll_right(ax2 - ax1)
end
if ay2 < ay1 and ay2 < center_y
$game_map.scroll_up(ay1 - ay2)
end
end
end
Проблема в том, что боевка ни как не хочет воспринимать его, и хотбар отображается криво, то есть не внизу экрана, а чуть ли не посередине...
2. Можно ли что-то сделать, что бы вовремя удара отображалась анимация, прикрепленная к оружию, а не та, которая где-то в скрипте прописана?
3. Ну и последнее: можно ли как-то убрать функцию суперударов на хотбаре, оставив только итемы и скиллы?
Думаю, у опытного скриптера это займет всего часа пол... Но, если все таки ни кто не сможет/не захочет помоч, посоветуйте мануал по скриптам RGSS2, не самого RUBY... Просто краткий список функций и их назначение, как мануал по скриптам в TES...
Вот как-то так... Надеюсь не ошибся разделом...