Скрипт для переменных

Проект месяца 1 место Проект месяца 2 место
Больше
10 года 9 мес. назад #83761 от igo12
Здравствуйте уважаемые пользователи данного ресурса.

Заранее проведя старательный поиск одного скрипа решил обратиться к вам так как не нашлось того что мне необходимо.

А ищу я скрипт казалось бы не сложный нужно выводить несколько переменных на экран и задавать их положение по X Y.

Оказалась, что скрипты или не дают задать несколько переменных с разным положением или что по хуже.
Может, кто-то знает подходящий скрипт или сможет написать.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 3 место Проект месяца 1 место Проект месяца 2 место 3 место Готв Победитель Сбитой кодировки Программист JavaScript 2 место Сбитая кодировка Писатель 3 место 2 место 3 место Организатор конкурсов
Больше
10 года 9 мес. назад #83763 от Cerberus
rpg-maker.info/forum/projects/60152-v-poiskakh-internetov - вроде бы игра не зашифрована, посмотрите, удастся ли выдернуть механизм оттуда.

Жуть болотная, на лапках, в тапках и с пулемётом...

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 1 место Проект месяца 2 место
Больше
10 года 9 мес. назад #83764 от igo12
igo12 ответил в теме Скрипт для переменных

Cerberus пишет: rpg-maker.info/forum/projects/60152-v-poiskakh-internetov - вроде бы игра не зашифрована, посмотрите, удастся ли выдернуть механизм оттуда.

Данный скрипт уже ставил, там каждая новая переменная размещается ниже предыдущей без возможности разместить в другом месте.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 1 место Программист Ruby Писатель 3 место 3 место Учитель Организатор конкурсов 1 место в Готв Ветеран Проект месяца 2 место
Больше
10 года 9 мес. назад - 10 года 9 мес. назад #83770 от DeadElf79
Раз уж никто не ответил, Эльф пойдет и напишет скрипт. Обновлю потом пост.

Написано!
Code:
=begin Пример использования: 1. Добавить в ивент команду "Вызвать скрипт" 2. Скопировать туда следующий код: show_var 1,0,0,"Variables[1]=%d" =end class Scene_Base def show_var(id,x,y,title="%d") puts "id is trying to show" @spr||=[] @spr[id]||={ :sprite => nil, :title => "%d", :value => nil } @spr[id][:value] = $game_variables[id] @spr[id][:title] = format(title,@spr[id][:value]) @spr[id][:sprite] = Sprite.new if @spr[id][:sprite].nil? @spr[id][:sprite].x = x @spr[id][:sprite].y = y @spr[id][:sprite].z = 250 @spr[id][:sprite].bitmap.dispose if !@spr[id][:sprite].bitmap.nil? temp = Bitmap.new(640,480) w = temp.text_size(@spr[id][:title]).width h = temp.text_size(@spr[id][:title]).height temp.dispose @spr[id][:sprite].bitmap = Bitmap.new(w+2,h+2) @spr[id][:sprite].bitmap.draw_text(Rect.new(0,0,w,h),@spr[id][:title]) end alias before_vars_update update def update before_vars_update if !@spr.nil? for id in 1..999 next if @spr[id].nil? if $game_variables[id]!=@spr[id][:value] @spr[id][:value] = $game_variables[id].clone @spr[id][:title] = format(title,@spr[id][:value]) w = @spr[id][:sprite].bitmap.text_size(@spr[id][:title]) if w > @spr[id][:sprite].bitmap.width temp = Bitmap.new(640,480) w = temp.text_size(@spr[id][:title]).width h = temp.text_size(@spr[id][:title]).height temp.dispose @spr[id][:sprite].bitmap = Bitmap.new(w+2,h+2) @spr[id][:sprite].bitmap.draw_text(Rect.new(0,0,w,h),@spr[id][:title]) end @spr[id][:sprite].bitmap.draw_text(@spr[id][:title]) end end# end for end# end if end end class Game_Interpreter def show_var(*args) SceneManager.scene.show_var(*args) end end

Пример использования:


Примечание к использованию: в строке title должно быть обязательно одно и только одно сочетание символов %d , туда вписывается значение переменной! (Подробнее о правилах форматирования строк читайте в справке по команде format или sprintf)

Метод show_var может быть использован в коде сцен или же вызван с помощью команды "Call Script" ("Вызвать скрипт") из события.

Да, кстати, размер шрифта и прочее в коде не настраивается, он просто берет шрифт и размер по умолчанию (у меня по умолчанию он мелкий, что легко заметить по скриншоту выше)
Последнее редактирование: 10 года 9 мес. назад пользователем DeadElf79.
Спасибо сказали: strelokhalfer, igo12

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby Организатор конкурсов Даритель Стимкея 2 место Сбитая кодировка Переводчик 2 место
Больше
10 года 9 мес. назад #83773 от strelokhalfer
Эльф, можно сделать пресеты, и от них плясать с отображением.

"Стрелок, что-то ты неочень похож на свой аватар..."(с)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 1 место Проект месяца 2 место
Больше
10 года 9 мес. назад - 10 года 9 мес. назад #83775 от igo12
igo12 ответил в теме Скрипт для переменных
Здравствуйте большое спасибо за отзывчивость и скрипт!
Правда возникла проблема с его использованием, когда значение переменной меняется, игра разрушается с ошибкой:
Code:
--------------------------- --------------------------- Script 'переменаая' line 42: TypeError occurred. can't clone Fixnum --------------------------- ОК ---------------------------
Регулировка размера шрифта было бы безусловно очень полезна так как данным способом я хочу реализовать вывод параметров транспорта: количество топлива, снарядов, здоровья и т.п.
Последнее редактирование: 10 года 9 мес. назад пользователем igo12.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 3 место Проект месяца 1 место Проект месяца 2 место 3 место Готв Победитель Сбитой кодировки Программист JavaScript 2 место Сбитая кодировка Писатель 3 место 2 место 3 место Организатор конкурсов
Больше
10 года 9 мес. назад #83776 от Cerberus
Просто уберите из этой строки clone, чтобы было
Code:
@spr[id][:value] = $game_variables[id]
- тогда всё должно заработать.

Жуть болотная, на лапках, в тапках и с пулемётом...

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 1 место Проект месяца 2 место
Больше
10 года 9 мес. назад #83777 от igo12
igo12 ответил в теме Скрипт для переменных

Cerberus пишет: Просто уберите из этой строки clone, чтобы было

Code:
@spr[id][:value] = $game_variables[id]
- тогда всё должно заработать.

Code:
--------------------------- --------------------------- Script 'переменаая' line 43: NameError occurred. undefined local variable or method `title' for #<Scene_Map:0x959e60c> --------------------------- ОК ---------------------------
:ermm:

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 1 место Программист Ruby Писатель 3 место 3 место Учитель Организатор конкурсов 1 место в Готв Ветеран Проект месяца 2 место
Больше
10 года 9 мес. назад - 10 года 9 мес. назад #83780 от DeadElf79
Церб, ты лепишь комментарии просто так, не разбираясь в коде, да? Тогда, цербер, просто удали это из main и твоя кербь выйдет сразу в десяти частях!
Code:
rgss_main { SceneManager.run }

igo12. виноват, проверил только отображение, а про отрисовку не посмотрел.
Upd. Добрался до компа и сел нормально. Все проверил, протестировал и поправил. Держите:
Code:
=begin Пример использования: 1. Добавить в ивент команду "Вызвать скрипт" 2. Скопировать туда следующий код: show_var 1,0,0,"Variables[1]=%d" =end class Scene_Base FONT_NAME = ["Times New Roman","Arial"] FONT_SIZE = 32 def show_var(id,x,y,title="%d") puts "var id is trying to show" @spr||=[] @spr[id]||={ :sprite => nil, :origtitle => "%d", :title => "%d", :value => nil } @spr[id][:value] = $game_variables[id] @spr[id][:origtitle] = title @spr[id][:title] = format(@spr[id][:origtitle],@spr[id][:value]) @spr[id][:sprite] = Sprite.new if @spr[id][:sprite].nil? @spr[id][:sprite].x = x @spr[id][:sprite].y = y @spr[id][:sprite].z = 250 @spr[id][:sprite].bitmap.dispose if !@spr[id][:sprite].bitmap.nil? temp = Bitmap.new(640,480) w = temp.text_size(@spr[id][:title]).width h = temp.text_size(@spr[id][:title]).height temp.dispose @spr[id][:sprite].bitmap = Bitmap.new(w+2,h+2) @spr[id][:sprite].bitmap.font.name = FONT_NAME @spr[id][:sprite].bitmap.font.size = FONT_SIZE @spr[id][:sprite].bitmap.draw_text(Rect.new(0,0,w,h),@spr[id][:title]) end alias before_vars_update update def update before_vars_update if !@spr.nil? for id in 1..999 next if @spr[id].nil? if $game_variables[id]!=@spr[id][:value] puts $game_variables[id] @spr[id][:value] = $game_variables[id] @spr[id][:title] = format(@spr[id][:origtitle],@spr[id][:value]) w = @spr[id][:sprite].bitmap.text_size(@spr[id][:title]) if w.width > @spr[id][:sprite].bitmap.width temp = Bitmap.new(640,480) wb = temp.text_size(@spr[id][:title]).width hb = temp.text_size(@spr[id][:title]).height temp.dispose @spr[id][:sprite].bitmap = Bitmap.new(wb+2,hb+2) @spr[id][:sprite].bitmap.font.name = FONT_NAME @spr[id][:sprite].bitmap.font.size = FONT_SIZE @spr[id][:sprite].bitmap.draw_text(Rect.new(0,0,wb,hb),@spr[id][:title]) end end end# end for end# end if end alias before_vars_terminate terminate def terminate before_vars_terminate return if @spr.nil? @spr.each{|spr| spr.bitmap.dispose spr.dispose } end end class Game_Interpreter def show_var(*args) SceneManager.scene.show_var(*args) end end

Настройки шрифта и размера добавлены. Если нужен цвет - могу дополнить
Последнее редактирование: 10 года 9 мес. назад пользователем DeadElf79.
Спасибо сказали: igo12

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 1 место Проект месяца 2 место
Больше
10 года 9 мес. назад #83783 от igo12
igo12 ответил в теме Скрипт для переменных
Опять ошибка.
Code:
--------------------------- --------------------------- Script 'переменаая' line 43: NameError occurred. undefined local variable or method `title' for #<Scene_Map:0x8e3cd3c> --------------------------- ОК ---------------------------

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby Организатор конкурсов Даритель Стимкея 2 место Сбитая кодировка Переводчик 2 место
Больше
10 года 9 мес. назад #83784 от strelokhalfer
А какой строкой выводится текст?

"Стрелок, что-то ты неочень похож на свой аватар..."(с)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 1 место Программист Ruby Писатель 3 место 3 место Учитель Организатор конкурсов 1 место в Готв Ветеран Проект месяца 2 место
Больше
10 года 9 мес. назад #83785 от DeadElf79
Есть мнение, что вы что-то неправильно вводите сами

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Программист Ruby Организатор конкурсов Даритель Стимкея 2 место Сбитая кодировка Переводчик 2 место
Больше
10 года 9 мес. назад #83786 от strelokhalfer
Подозреваю, что пихается title=что то еще, т.е, не используются кавычки.

"Стрелок, что-то ты неочень похож на свой аватар..."(с)

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Проект месяца 1 место Программист Ruby Писатель 3 место 3 место Учитель Организатор конкурсов 1 место в Готв Ветеран Проект месяца 2 место
Больше
10 года 9 мес. назад #83787 от DeadElf79
Допилил также поддержку смены цвета, в константе FONT_COLOR указаны цвета по умолчанию. Пример использования - в демке. Свой цвет добавлять не обязательно!

Да, эльф уже просто психанул, раз пилит демку к этому скрипту.
yadi.sk/d/C3vAhyWNiGZRq
Спасибо сказали: igo12

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Время создания страницы: 0.117 секунд
Работает на Kunena форум