На сколько мне известно, в AS невозможно напрямую заменить символ в строке. Следовательно создаешь новую строку из подстроки до этого символа, затем цепляешь новый символ, затем остальные. Это одна из причин, по которой в нем широко используются регулярные выражения для замены. Ибо так неудобно и, я полагаю, медленно.
Вот такая конструкция заменит второй (в твоем именовании - третий) символ в строке на Z (типы не объявлял - уже не помню как оно там делается).
Что касается div и mod, то первый, кажется, и не нужен. Вроде бы, AS, как и любой нормальный язык, считает, что 4/5 == 0. Если я ошибаюсь - ищи, тут не подскажу.
Что до mod - как и в Руби: %
5 % 3 // вернет 2
06.07.2011, 12:24
Andrew
Спасибо.
06.07.2011, 12:55
Andrew
А в этом нормальном языке 5/4 == 1?
06.07.2011, 14:44
Equilibrium Keeper
В C++/C# - да. :)
У тебя - не знаю. :)
06.07.2011, 15:30
ViRSneG
Вопрос скорее к Рольфу
Хотелось бы получить консультацию по кастомизации игрового меню и изменению меню в боевке Tanketai(все
, естественно, XP)
З.Ы.: Все оцениваем аву ^v^
06.07.2011, 15:33
Рольф
Почему именно ко мне?Tanketai что за боевка тО?
06.07.2011, 15:38
ViRSneG
Когда же я научусь составлять предложения=(
это два разных пункта
первый это консультация по кастомизации меню в игре, а на второе можешь не обращать внимания=)
10.07.2011, 15:38
100500
Как-то в теме со своим проектом писал про проблему со скриптом. Но, поскольку она так и не решилась, решил продублировать сюда, вдруг поможет. А тему отдельную ради такой мелочи вроде и создавать не стоило...
В общем, вот:
Цитата:
у меня возникли некоторые проблемы. И проблемами этими является скрипт для установки фонов битвы, баттлбэков (речь про мейкер 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
10.07.2011, 21:04
Equilibrium Keeper
Как сказано в твоем скрипте:
Цитата:
# Получение тега из тайла
# Номер переменной из скрипта расширения тайлов KGC, метод get_player_terrain_tag(x)
Ищи этот самый KGC для расширения тайлов. :)
Или другой, или пиши сам скрипт, который будет записывать ID текущего тайла (под ногами партии) в переменную №19 (здесь используется она, за что убил бы).
10.07.2011, 21:39
100500
Equilibrium Keeper, спасибо, о мудрейший! =)
Я и внимания не обратил на этот комментарий. Точнее, обратил, но не очень понял о чем речь.