На сколько мне известно, в AS невозможно напрямую заменить символ в строке. Следовательно создаешь новую строку из подстроки до этого символа, затем цепляешь новый символ, затем остальные. Это одна из причин, по которой в нем широко используются регулярные выражения для замены. Ибо так неудобно и, я полагаю, медленно.
Вот такая конструкция заменит второй (в твоем именовании - третий) символ в строке на Z (типы не объявлял - уже не помню как оно там делается).
Что касается div и mod, то первый, кажется, и не нужен. Вроде бы, AS, как и любой нормальный язык, считает, что 4/5 == 0. Если я ошибаюсь - ищи, тут не подскажу.
Что до mod - как и в Руби: %
5 % 3 // вернет 2
Когда же я научусь составлять предложения=(
это два разных пункта
первый это консультация по кастомизации меню в игре, а на второе можешь не обращать внимания=)
Но одно могу сказать точно: я ничего не могу сказать точно!
СпойлерСтрах мейкериста:
[18:42] ReDS: куча паралельных ивентов и скриптовая ошибка посреди проекта
Как-то в теме со своим проектом писал про проблему со скриптом. Но, поскольку она так и не решилась, решил продублировать сюда, вдруг поможет. А тему отдельную ради такой мелочи вроде и создавать не стоило...
В общем, вот:
у меня возникли некоторые проблемы. И проблемами этими является скрипт для установки фонов битвы, баттлбэков (речь про мейкер VX, и, соответствено, RGSS2). Поэтому решил просить помощи (или хотя бы совета) у людей, которые разбираются в скриптах лучше меня.
Дело в том, что вышеупомянутый скрипт (судя по комментариям, содержащимся внутри) должен уметь менять фон битвы в зависимости от ID тайла. (Решить проблему областями невозможно ввиду немаленькой карты мира.) А вот где взять ID тайла я что-то не пойму. Пробовал скачивать различные скрипты для опознания этого самого ID, но либо это не то, что нужно, либо скрипт нифига не работает.
В связи с этим вопрос: видел ли кто-нибудь этот скрипт раньше? Или может быть кто пользовался и знает, как его настроить? Ну или, в крайнем случае, может ли кто-нибудь умный взглянуть на него и помочь настроить его? Пробовал все что можно, ничего не получается.
СпойлерСКРИПТ:
#================================================= =============================
# ** ExBattle_Background версия 2.00
#------------------------------------------------------------------------------
# Скрипт, позволяющий устанавливать фон любого экрана битвы.
#================================================= =============================
# Настройки для карт.
# ID карт и значение фона для них.
EXBTL_BACKGR_MAP = {
1 => "Ocean",
2 => "Mountains",
}
# Настройки для областей.
# ID областей и значение фона для них.
EXBTL_BACKGR_AREA = {
1 => "Ocean",
2 => "Mountains",
}
# Настройки для тайлов.
# ID тайлов и значение фона для них.
EXBTL_BACKGR_TILE = {
1 => "Ocean",
2 => "Mountains",
}
# Значение по умолчанию.
# Устанавливает графику, если для карты или области нет настройки.
EXBTL_BACKGR_DEFAULT = ""
class Spriteset_Battle
#--------------------------------------------------------------------------
# * Создаёт спрайт фона
#--------------------------------------------------------------------------
alias _exbbackgr_create_battleback create_battleback
def create_battleback
source = $game_temp.background_bitmap
bitmap = Bitmap.new(640, 480)
if EXBTL_BACKGR_BACK == 1
bitmap.stretch_blt(bitmap.rect, source, source.rect)
end
@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
fixed = false
unless $BTEST
for area in $data_areas.values
if $game_player.in_area?(area) and EXBTL_BACKGR_AREA.has_key?(area.id)
src_source = EXBTL_BACKGR_AREA[area.id]
fixed = true
end
end
unless fixed
if EXBTL_BACKGR_MAP.has_key?($game_map.map_id)
src_source = EXBTL_BACKGR_MAP[$game_map.map_id]
fixed = true
end
end
# Получение тега из тайла
# Номер переменной из скрипта расширения тайлов KGC, метод get_player_terrain_tag(x)
unless fixed
if EXBTL_BACKGR_TILE.has_key?($game_variables[19])
src_source = EXBTL_BACKGR_TILE[$game_variables[19]]
fixed = true
end
end
end
unless fixed
if EXBTL_BACKGR_DEFAULT != ""
src_source = EXBTL_BACKGR_DEFAULT
fixed = true
end
end
if fixed
case EXBTL_BACKGR_FOLDER
when 0
src_bitmap = Cache.system(src_source)
when 1
src_bitmap = Cache.parallax(src_source)
when 2
src_bitmap = Cache.picture(src_source)
end
x = (640 - src_bitmap.width) / 2
case EXBTL_BACKGR_POSITION
when 0
y = 64
when 1
y = (416 - src_bitmap.height) / 2
when 2
y = (480 - src_bitmap.height) / 2 + 32
when 3
y = 480 - src_bitmap.height
end
@battleback_sprite.bitmap.blt(x, y, src_bitmap, src_bitmap.rect)
src_bitmap.dispose
end
end
#--------------------------------------------------------------------------
# * Создание спрайта пола битвы
#--------------------------------------------------------------------------
alias _exbbackgr_create_battlefloor create_battlefloor
def create_battlefloor
_exbbackgr_create_battlefloor
@battlefloor_sprite.opacity = 0 if EXBTL_BACKGR_FLOOR == 0
end
end
PS скрипт взят из справки в моей версии РПГ Мейкера VX. Откуда он там взялся и кто его автор - не знаю =)
PPS а нет, автора знаю. Некий REFMAP
# Получение тега из тайла
# Номер переменной из скрипта расширения тайлов KGC, метод get_player_terrain_tag(x)
Ищи этот самый KGC для расширения тайлов.
Или другой, или пиши сам скрипт, который будет записывать ID текущего тайла (под ногами партии) в переменную №19 (здесь используется она, за что убил бы).
Социальные закладки