Миничат

AnnTenna 2 дн. даже не верится что завтра уже 1 мая
poca 3 дн. А вот и среда =)
AnnTenna 4 дн. Ничего скоро уже майские...
MarsKnight 24.04.2026 18:48 Пережили эту рабочую недельку, пора пепечилить)
poca 24.04.2026 03:26 o_O пасиб за ссыль, похождения зелёной какахи доставили :D Ёмаё, куда катится игропром? =_=
Kerotan 24.04.2026 00:43 https://www.youtube.com/watch?v=vdUo12Zb1FU&t=5194s
Kerotan 24.04.2026 00:43 Из наших видел на RPG Maker Showcase 2026 - Exellent Award - "Heroines of Swords & Spells 2" (Best Comment Award) 1:00:03
Jas6666 23.04.2026 20:14 В принципе сами разработчики мейкера каждый год проводят "Фестиваль RPG Maker" вбей в поиск, выдаст страницу в стиме, там игры. сам уж решай стоящие ли игры, просто по отзыва
tim103 23.04.2026 15:05 Слушайте, а есть за последнее время вообще какие-то прорывные игры, которые в какой-то степени выстрелили в стим, и написанные на Rpg Maker? Если не считать старые проекты, по типу to the moon?
AnnTenna 23.04.2026 14:56 у нас жесть а не погодка)
AnnTenna 23.04.2026 14:45 доброго дня) как у вас погодка?)
ajir 20.04.2026 11:44 Phavn: Отлично!
Phavn 20.04.2026 10:54 Спасибо помогло. Вышел - куки данного сайта стёр - зашёл - заработало.
ajir 20.04.2026 10:37 Phavn: Если и это не помогает, не видишь - значит увы сбой с залогиниванием на форуме, попробуй очисть все данные сайта в браузере, залогиниться на первой странице сайта, перейти на форум, перейти в нужный подфорум и создать тему.
ajir 20.04.2026 10:35 Phavn: "Форум Светлая Зона и Академия RPG Maker Свободный Новая тема Темы прочитаны Подписаться" т.е. ищи "Новая тема".
Phavn 20.04.2026 10:10 Привет всем, кажется я уже спрашивал когда-то об этом — но как мне создать тут новую тему на форуме? Я их уже создавал, но теперь кнопки "создать тему" не вижу.
VaNyuHa 18.04.2026 05:33 мда... писал писал, а оказывается длинные смс нельзя, хах! В общем, понимаю, что можно через общие события и переменные было указывать координаты событий и игрока, и если мое нужное условие выполняется - активировать событие, но на этот раз просто решил узнать способ проще, вот и все)
VaNyuHa 18.04.2026 05:30 MarkerIl, согласен, этим мне и нравится rpgmv. Фантазия есть, в своей игре уже много головоломок на разную тему реализовал через общие события и встроенные функции. Но из-за работы и семьи мало времени на это... так что бывает в свободное время на работе сразу на черновике прописываю то, как будет работать задуманная головоломка, например (вращающи
MarkerIl 17.04.2026 16:12 VaNyuHa для такого есть параллельные события. Как бы, почти все базовые необходимые функции решаются ивентами и фантазией.) Все же, в первую очередь, Мейкер - это конструктор. И так как мне больше нравятся ивенты, чем скрипты, я и предложил такой вариант.
MarkerIl 17.04.2026 16:12 VaNyuHa для такого есть параллельные события. Как бы, почти все базовые необходимые функции решаются ивентами и фантазией.) Все же, в первую очередь, Мейкер - это конструктор. И так как мне больше нравятся ивенты, чем скрипты, я и предложил такой вариант.

Есть ли скрипт на свободную прокачку персонажа?

Больше
12 года 1 мес. назад #68249 от Hakerlesha
Можно ли сделать так, чтобы навыки и параметры можно было прокачивать по желанию игрока, то есть, хочешь, прокачиваешь одну ветвь навыков, хочешь, другую, хочешь, прокачиваешь силу, хочешь, здоровье? А то в скриптинге я, надо говорить, не очень.

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

Больше
12 года 1 мес. назад #68250 от Kian Ni
Насчет веток навыков, то такой скрипт скоро должен выйти, в принципе есть альтернатива, но не такая хорошая.
Прокачка х-тик есть.

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

Проект года 3 место Проект года 2 место Разработчик Проект месяца 1 место
Больше
12 года 1 мес. назад #68254 от JackCL

Hakerlesha пишет: Можно ли сделать так, чтобы навыки и параметры можно было прокачивать по желанию игрока, то есть, хочешь, прокачиваешь одну ветвь навыков, хочешь, другую, хочешь, прокачиваешь силу, хочешь, здоровье? А то в скриптинге я, надо говорить, не очень.


Можешь посмотреть скрипты от Dekita , человек весь повернут на прокачивании по желанию всего в игре и скриптов у него порядком. Правда, как и сказал, Kian, полноценный Skill Upgrade с ветками там еще в работе, но можно повозиться со Skill Levels там например.

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

Больше
12 года 1 мес. назад #68258 от Kian Ni
Ну для изучения скиллов можно использовать Янфлаевский движок изучения скиллов, по лучше подойдет чем Декитовский скилл апгрейд.

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

Проект года 3 место Проект года 2 место Разработчик Проект месяца 1 место
Больше
12 года 1 мес. назад #68259 от JackCL

Kian Ni пишет: Ну для изучения скиллов можно использовать Янфлаевский движок изучения скиллов, по лучше подойдет чем Декитовский скилл апгрейд.


У Декиты дефолтный дизайн мне больше нравится. Субъективно.

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

Больше
12 года 1 мес. назад #68260 от Kian Ni
Ну,у декиты немного другой скрипт. Он просто позволяет прочивать уже существующие скиллы, и то, только за использование, а янфлаевский именно что позволяет их учить.
Спасибо сказали: JackCL

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

Больше
12 года 1 мес. назад #68262 от Hakerlesha
А что за Янфлаевский? Дайте оба что ли попробую.

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

Больше
12 года 1 мес. назад #68263 от Kian Ni
Спасибо сказали: aval__

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

Больше
12 года 3 нед. назад - 12 года 3 нед. назад #68507 от Hakerlesha

Kian Ni пишет: Это учить скиллы: yanflychannel.wordpress.com/rmvxa/gamepl.../learn-skill-engine/

Это прокачивать статы: rpgmaker.net/scripts/225/code/

Ага... Мне бы теперь "умнику" кто нибудь объяснил, как они работают :D . Точнее второй...
Последнее редактирование: 12 года 3 нед. назад пользователем Hakerlesha.

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

Больше
12 года 3 нед. назад #68508 от Kian Ni
Эм, в шапке скрипта все написано.

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

Больше
12 года 3 нед. назад #68509 от Hakerlesha
Да я знаю.... Ладно помощь не нужна, пойду сам «понимать».

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

Больше
12 года 3 нед. назад - 12 года 3 нед. назад #68522 от Grayback

Hakerlesha пишет: Да я знаю.... Ладно помощь не нужна, пойду сам «понимать».


Для второго скрипта тебе забыли дать скриптик для меню

ВНИМАНИЕ: Спойлер!


Этот скрипт добаляет в меню пункт позволяющий распределить параметры
Последнее редактирование: 12 года 3 нед. назад пользователем Cerberus. Причина: добавил тег code

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

Больше
11 года 9 мес. назад #70734 от Guren_san
Guren_san ответил в теме Нет возможности
*facepalm* Как сделать так, чтобы скрипт Skill Upgrade от Dekit заработал? И как вызвать окно с распределением характеристик (скрипт второй)

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

Больше
11 года 9 мес. назад #70736 от Kian Ni
Kian Ni ответил в теме Нет возможности
Первый скрипт от Декиты говнище редкосное, так как он не дает возможности учить навыки, а только их прокачивать, что по сути бессмысленно, так как все дерево навыков не работает, а второй его скрипт тоже ужасен.
С первым скриптом ничего помочь не могу, сам себе такой писал, а второй могу скинуть.

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

Больше
11 года 9 мес. назад #70738 от Guren_san
Guren_san ответил в теме Нет возможности

Kian Ni пишет: Первый скрипт от Декиты говнище редкосное, так как он не дает возможности учить навыки, а только их прокачивать, что по сути бессмысленно, так как все дерево навыков не работает, а второй его скрипт тоже ужасен.
С первым скриптом ничего помочь не могу, сам себе такой писал, а второй могу скинуть.


Второй это про характеристики? Был бы признателен, если бы еще к этому скрипту прилагалась команда вызова окна с распределением, у меня стоит Galv's menu Themes Engine, поэтому я могу туда вставить пункт с распределением, но нужна, как я писал выше команда вызова, сам не нашел в шапке скрипта :wall:

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

Больше
11 года 9 мес. назад #70739 от Kian Ni
Kian Ni ответил в теме Нет возможности
Code:
#============================================================================== # ** TDS Stat Distribution # Ver: 1.8 #------------------------------------------------------------------------------ # * Description: # This script allows you to set and change a character's parameters from a # custom menu. #------------------------------------------------------------------------------ # * Features: # Change character stats(Parameters). # Setting unique stat boosting caps for characters. # Setting unique stat increases for characters. #------------------------------------------------------------------------------ # * Instructions: # # To gain or lose parameter points, use this in a script call from an event: # # gain_param_points(actor_id, value) # lose_param_points(actor_id, value) # # actor_id = ID of actor to gain or lose param points # value = amount of param points to gain or lose # # Example: # # gain_param_points(1, 100) # # lose_param_points(1, 50) # # To set the amount of parameter change points obtained for a character, add this # to to the actor's note box: # # <Level_UP_Change_Points: V> # # V = Amount of points to gain everytime the actor levels up. # # Example: # # <Level_UP_Change_Points: 10> # # To set the parameters that can be changed on a character add this to the # actor's note box: # # <Change_PARAMS: P, P, P, P, P> # # P = Parameter ID. The Id of the parameter from 0 to 7. # # Example: # # <Change_PARAMS: 0, 1, 2, 3, 4, 5, 6, 7> # # To set the amount of parameter change for spent each parameter point add this # to the actor's note box: # # <PARAM_"PNAME"_Value: Value> # # "PNAME" = Parameter short name. (HP, MP, ATK, DEF, MAT, MDF, AGI, LUK) # Value = Parameter change value. (Amount to increase per point) # # Example: # # <PARAM_HP_Value: 10> # <PARAM_ATK_Value: 1> # # To set the parameter cap for a character, add this to the actor's note box: # # <PARAM_"PNAME"_Cap: Value> # # "PNAME" = Parameter short name. (HP, MP, ATK, DEF, MAT, MDF, AGI, LUK) # Value = Parameter cap value. # # Example: # # <PARAM_HP_Cap: 9999> # <PARAM_ATK_Cap: 300> #------------------------------------------------------------------------------ # * Notes: # Paremeter ID List: # 0: HP - Hit Points (HP) # 1: MP - Magic Ponts (MP) # 2: Attack (ATK) # 3: Defense (DEF) # 4: Magic Attack Power (MAT) # 5: Magic Defense Power (MDF) # 6: Agility (AGI) # 7: Luck (LUK) #------------------------------------------------------------------------------ # WARNING: # # Do not release, distribute or change my work without my expressed written # consent, doing so violates the terms of use of this work. # # I also reserve the right to deny permission to any individual or group from # using any of my work. # # If you really want to share my work please just post a link to the original # site. # # * Not Knowing English or understanding these terms will not excuse you in any # way from the consequenses. #============================================================================== # * Import to Global Hash * #============================================================================== ($imported ||= {})[:TDS_Stat_Distribution] = true #============================================================================== # ** TDS #------------------------------------------------------------------------------ # A module containing TDS data structures, mostly script settings. #============================================================================== module TDS #============================================================================ # ** Stat_Change_Settings #---------------------------------------------------------------------------- # This Module contains stat change settings and setting related method. #============================================================================ module Stat_Change_Settings #-------------------------------------------------------------------------- # * Constants (Features) #-------------------------------------------------------------------------- # Parameter Full Names Param_Names = ["HP", "Max MP","ATK", "DEF", "MAT", "MDF", "AGI", "LUK"] # Parameter Help Text Param_Help_Text = [ "Влияет на: количество жизней и скорость их регенерации.", "Max value of MP.", "Влияет на: силу урона, шанс крит. атаки и скорость востановления ярости.", "Влияет на: защиту и эффективность защиты.", "Влияет на: силу маг. урона, шанс уклонения от магии, эффект. лечения и маг. атаки, скорость получения опыта.", "Влияет на: маг. защиту, точность, шанс уклонения от магии, шанс контр атаки и эффект. лечения.", "Влияет на: точность, шанс уклонения и критической атаки, эффект. фихических атак.", "Влияет на: шанс уклонения и критической атаки.", ] # Default Parameter Cap (If nil it will use default max) Default_Param_Cap = { } # {0 => 9999, 1 => 999} # Changeable Parameters (0~7)(Parameters that can be modified) Changeable_Param = [*0,2,3,4,5,6,7] # Parameter Points Name Param_Points_Name = "Свободные очки" # Level Up Parameter Change Point Gain Level_Up_Param_Points_Gain = 5 # Allow for Parameter Points to be exchanged back once spent Allow_Param_Point_Takeback = true # Parameter Gradient Bar Colors Param_Colors = [ [Color.new(224, 128, 64), Color.new(240, 192, 64)], [Color.new(64, 128, 192), Color.new(64, 192, 240)], [Color.new(46, 0, 29), Color.new(221, 0, 94)], [Color.new(46, 21, 0), Color.new(221, 146, 0)], [Color.new(2, 0, 46), Color.new(0,221, 99)], [Color.new(29, 0, 46), Color.new(221, 0, 213)], [Color.new(63, 4, 62), Color.new(80, 138, 255)], [Color.new(46, 0, 37), Color.new(221, 198, 0)], ] #-------------------------------------------------------------------------- # * Get Parameter Full Name # parameter : parameter index #-------------------------------------------------------------------------- def self.param_full_name(parameter) ; Param_Names.at(parameter) end #-------------------------------------------------------------------------- # * Get Parameter Help Text # parameter : parameter index #-------------------------------------------------------------------------- def self.param_help_text(parameter) ; Param_Help_Text.at(parameter) end #-------------------------------------------------------------------------- # * Get Parameter Gradient Colors # parameter : parameter index #-------------------------------------------------------------------------- def self.param_colors(parameter) ; Param_Colors.at(parameter) end end end #============================================================================== # ** Game_Interpreter #------------------------------------------------------------------------------ # An interpreter for executing event commands. This class is used within the # Game_Map, Game_Troop, and Game_Event classes. #============================================================================== class Game_Interpreter #-------------------------------------------------------------------------- # * Gain or Lose Parameter Points # actor_id : ID of Actor # value : parameter value #-------------------------------------------------------------------------- def gain_param_points(actor_id, value = 1) ; $game_actors[actor_id].add_stat_change_point(value) end def lose_param_points(actor_id, value = 1) ; $game_actors[actor_id].remove_stat_change_point(value) end end #============================================================================== # ** Game_Actor #------------------------------------------------------------------------------ # This class handles actors. It is used within the Game_Actors class # ($game_actors) and is also referenced from the Game_Party class ($game_party). #============================================================================== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :stat_change_points # Parameters Stat Change Points attr_accessor :stat_change_spent_points # Parameters Stat Change Spent Points attr_accessor :stat_change_params # Parameters That can be modified attr_accessor :stat_change_cap # Parameters Stat Change Caps attr_accessor :stat_change_value # Parameters Stat Change Increase Value #-------------------------------------------------------------------------- # * Alias Listing #-------------------------------------------------------------------------- alias tds_status_distribution_game_actor_setup setup alias tds_status_distribution_game_actor_level_up level_up #-------------------------------------------------------------------------- # * Setup #-------------------------------------------------------------------------- def setup(*args, &block) # Run Original Method tds_status_distribution_game_actor_setup(*args, &block) # Initialize Stat Changes init_stat_changes end #-------------------------------------------------------------------------- # * Get Base Value of Parameter with Bonus #-------------------------------------------------------------------------- def param_base_with_plus(param_id) ; param_base(param_id) + @param_plus[param_id] end #-------------------------------------------------------------------------- # * Level Up #-------------------------------------------------------------------------- def level_up(*args, &block) # Run Original Method tds_status_distribution_game_actor_level_up(*args, &block) # Add Stat Point add_stat_change_point(@stat_change_level_points) end #-------------------------------------------------------------------------- # * Initialize Stat Change Values #-------------------------------------------------------------------------- def init_stat_changes # Stat Change Points @stat_change_points = 0 # Stat Change Spent Points Array @stat_change_spent_points = Array.new(8, 0) # Setup Stat Change Parameters, Values and Changes setup_stat_change_parameters ; setup_stat_change_values ; setup_stat_change_caps setup_stat_level_up_points end #-------------------------------------------------------------------------- # * Add/Remove Stat Change Point # value : parameter index #-------------------------------------------------------------------------- def add_stat_change_point(value = 1) ; @stat_change_points = [@stat_change_points + value, 0].max end #-------------------------------------------------------------------------- # * Remove Stat Change Point # value : parameter index #-------------------------------------------------------------------------- def remove_stat_change_point(value = -1) ; add_stat_change_point(-value) end #-------------------------------------------------------------------------- # * Get Cap Value for Parameter # parameter : parameter index #-------------------------------------------------------------------------- def param_cap(parameter) ; @stat_change_cap.at(parameter) end #-------------------------------------------------------------------------- # * Get Value Increase Per Point for Parameter # parameter : parameter index #-------------------------------------------------------------------------- def param_increase_value(parameter) ; @stat_change_value.at(parameter) end #-------------------------------------------------------------------------- # * Setup Stat Level Up Points (Amount to gain per level) #-------------------------------------------------------------------------- def setup_stat_level_up_points # Amount of Stat Change Points to get per level @stat_change_level_points = TDS::Stat_Change_Settings::Level_Up_Param_Points_Gain # Match Text for Parameter Change Points per level actor.note[/<Level_UP_Change_Points: (\d+)>/i] # Set Stat Change Points Per Level UP @stat_change_level_points = $1.to_i if !$1.nil? end #-------------------------------------------------------------------------- # * Setup Initial Parameter Stat Change Values (Amount to increase per level) #-------------------------------------------------------------------------- def setup_stat_change_parameters # Stat Change Parameters (Parameters that can be changed) @stat_change_params = TDS::Stat_Change_Settings::Changeable_Param # Match Text for Change Parameters actor.note[/<Change_PARAMS: (.+)>/i] # Set Change Parameters if not nil @stat_change_params = $1.split(/,/).collect {|id| id.to_i} if !$1.nil? end #-------------------------------------------------------------------------- # * Setup Initial Parameter Stat Change Values (Amount to increase per level) #-------------------------------------------------------------------------- def setup_stat_change_values # Initialize Stat Change Increase Value (Amount to increase per level) @stat_change_value = Array.new(8, 1) # Go Through Basic Parameters ["HP", "MP", "ATK", "DEF", "MAT", "MDF", "AGI", "LUK"].each_with_index {|param,i| # Match Text for Parameter cap actor.note[/<PARAM_#{param}_Value: (\d+)>/i] # Set Stat Change Cap @stat_change_value[i] = $1.to_i if !$1.nil? } end #-------------------------------------------------------------------------- # * Setup Initial Parameter Stat Change Caps #-------------------------------------------------------------------------- def setup_stat_change_caps # Create Stat Change Cap Array @stat_change_cap = 8.times.collect {|id| # Get Default Parameter Cap cap = TDS::Stat_Change_Settings::Default_Param_Cap[id] # Set Cap cap = cap.nil? ? param_max(id) : cap } # Go Through Basic Parameters ["HP", "MP", "ATK", "DEF", "MAT", "MDF", "AGI", "LUK"].each_with_index {|param,i| # Match Text for Parameter cap actor.note[/<PARAM_#{param}_Cap: (\d+)>/i] # Set Stat Change Cap @stat_change_cap[i] = $1.to_i if !$1.nil? } end end #============================================================================== # ** Scene_Status_Distribution #------------------------------------------------------------------------------ # This class performs the status distribution processing. #============================================================================== class Scene_Status_Distribution < Scene_MenuBase #-------------------------------------------------------------------------- # * Start Processing #-------------------------------------------------------------------------- def start super # Create Windows create_help_window ; create_actor_status_window ; create_actor_stat_points_window create_controls_window ; create_status_change_window ; create_status_change_prompt_window ; end #-------------------------------------------------------------------------- # * Create Actor Status Window #-------------------------------------------------------------------------- def create_actor_status_window # Create Actor Status Window @actor_status_window = Window_Stat_Actor_Status.new(@actor) @actor_status_window.y = @help_window.y + @help_window.height end #-------------------------------------------------------------------------- # * Create Actor Stat Points Window #-------------------------------------------------------------------------- def create_actor_stat_points_window # Create Actor Stat Point Window @actor_stat_points_window = Window_Stat_Actor_Points.new(@actor) @actor_stat_points_window.y = @actor_status_window.y + @actor_status_window.height end #-------------------------------------------------------------------------- # * Create Controls Window #-------------------------------------------------------------------------- def create_controls_window # Create Controls Window @controls_window = Window_Stat_Change_Controls.new @controls_window.y = @actor_stat_points_window.y + @actor_stat_points_window.height end #-------------------------------------------------------------------------- # * Create Actor Status Change #-------------------------------------------------------------------------- def create_status_change_window # Create Status Change Window @status_change_window = Window_Stat_Status_Change.new(@actor) # Set Status Change Windows @status_change_window.help_window = @help_window @status_change_window.point_window = @actor_stat_points_window # Set Status Change Window Handler @status_change_window.set_handler(:ok, method(:start_stat_change_prompt)) @status_change_window.set_handler(:cancel, method(:return_scene)) @status_change_window.set_handler(:pagedown, method(:next_actor)) @status_change_window.set_handler(:pageup, method(:prev_actor)) end #-------------------------------------------------------------------------- # * Create Status Change Prompt Window #-------------------------------------------------------------------------- def create_status_change_prompt_window # Create Stat Change Prompt Window @stat_change_prompt_window = Window_Stat_Change_Prompt.new # Center Stat Change Window @stat_change_prompt_window.x = (Graphics.width - @stat_change_prompt_window.width) / 2 @stat_change_prompt_window.y = (Graphics.height - @stat_change_prompt_window.height) / 2 # Deactivate and Close Stat Change Prompt Window @stat_change_prompt_window.deactivate.openness = 0 # Set Status Change Prompt Window Handler @stat_change_prompt_window.set_handler(:ok, method(:on_stat_change_prompt_ok)) @stat_change_prompt_window.set_handler(:cancel, method(:on_stat_change_prompt_cancel)) @stat_change_prompt_window.set_handler(:clear, method(:on_stat_change_prompt_clear)) end #-------------------------------------------------------------------------- # * Start Stat Change Prompt #-------------------------------------------------------------------------- def start_stat_change_prompt # Activate and Open Stat Change Prompt Window @stat_change_prompt_window.activate.open # Select (No) @stat_change_prompt_window.select(1) end #-------------------------------------------------------------------------- # * [OK] Stat Change Prompt Command #-------------------------------------------------------------------------- def on_stat_change_prompt_ok # Close Stat Change Prompt Window @stat_change_prompt_window.close # Apply Stat Changes apply_stat_changes end #-------------------------------------------------------------------------- # * [Cancel] Stat Change Prompt Command #-------------------------------------------------------------------------- def on_stat_change_prompt_cancel # Close Stat Change Prompt Window @stat_change_prompt_window.close # Activate Status Change Window @status_change_window.activate end #-------------------------------------------------------------------------- # * [Clear] Stat Change Prompt Command #-------------------------------------------------------------------------- def on_stat_change_prompt_clear # Clear Status Change Stat Changes and Redraw it's contents @status_change_window.clear_stat_changes ; @status_change_window.refresh # Refresh Actor Status and Actor Stat Point Window @actor_status_window.refresh ; @actor_stat_points_window.refresh # Process Stat Change Prompt Cancel on_stat_change_prompt_cancel end #-------------------------------------------------------------------------- # * Apply Stat Changes #-------------------------------------------------------------------------- def apply_stat_changes # Apply Status Changes on Actor @status_change_window.apply_stat_changes # Refresh Actor Status and Actor Stat Point Window @actor_status_window.refresh ; @actor_stat_points_window.refresh end #-------------------------------------------------------------------------- # * Change Actors #-------------------------------------------------------------------------- def on_actor_change super # Set Actor for Status, Point and Status Change Windows @actor_status_window.actor = @actor_stat_points_window.actor = @status_change_window.actor = @actor # Reactivate Status Change Window @status_change_window.activate end end #============================================================================== # ** Window_Stat_Actor_Status #------------------------------------------------------------------------------ # This window display actor information in the status distribution scene. #============================================================================== class Window_Stat_Actor_Status < Window_Base #-------------------------------------------------------------------------- # * Object Initialization # actor : actor object #-------------------------------------------------------------------------- def initialize(actor) super(0, 0, 250, 200) # Set Actor @actor = actor refresh end #-------------------------------------------------------------------------- # * Set Actor # actor : actor object #-------------------------------------------------------------------------- def actor=(actor) ; @actor = actor ; refresh end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh contents.clear # Return if Actor is nil return if @actor.nil? # Draw Actor Face draw_actor_face(@actor, 0, 0) # Draw Actor Name & Level draw_actor_name(@actor, 100, 0) ; draw_actor_level(@actor, 100, line_height * 0.6) # Draw Actor HP & MP draw_actor_hp(@actor, 100, line_height * 1.4) ; draw_actor_tp(@actor, 100, line_height * 2.2) draw_actor_xp(@actor, 100, line_height * 3) # Draw Actor Parameters draw_parameters(0, 100) end #-------------------------------------------------------------------------- # * Draw Parameters #-------------------------------------------------------------------------- def draw_parameters(x, y) 6.times {|i| # Get X And Y Coordinate Position x2 = x + (i % 2) * 120 ; y2 = y + (i / 2) * line_height # Fill Stat Back Bar contents.fill_rect(x2, y2 + 2, 105, 20, Color.new(32, 32, 64, 160)) # Draw Actor Parameters draw_actor_param(@actor, x2, y2, i + 2) } end #-------------------------------------------------------------------------- # * Draw Parameters #-------------------------------------------------------------------------- def draw_actor_param(actor, x, y, param_id) change_color(system_color) draw_text(x, y, 120, line_height, Vocab::param(param_id)) change_color(normal_color) draw_text(x + 120 - 50, y, 36, line_height, actor.param(param_id), 2) end def draw_exp_info(x, y) s1 = @actor.max_level? ? "-------" : @actor.exp s2 = @actor.max_level? ? "-------" : @actor.next_level_exp - @actor.exp s_next = sprintf(Vocab::ExpNext, Vocab::level) change_color(system_color) draw_text(x, y + line_height * 0, 180, line_height, Vocab::ExpTotal) draw_text(x, y + line_height * 2, 180, line_height, s_next) change_color(normal_color) draw_text(x, y + line_height * 0, 180, line_height, s1, 2) draw_text(x, y + line_height * 2, 180, line_height, s2, 2) end #-------------------------------------------------------------------------- # * Draw Actor Face Graphic #-------------------------------------------------------------------------- def draw_actor_face(actor, x, y, enabled = true) # Fill Face Back contents.fill_rect(x, y, 96, 96, Color.new(32, 32, 64, 160)) super end end #============================================================================== # ** Window_Stat_Actor_Points #------------------------------------------------------------------------------ # This window display actor parameter stat change points #============================================================================== class Window_Stat_Actor_Points < Window_Base #-------------------------------------------------------------------------- # * Object Initialization # actor : actor object #-------------------------------------------------------------------------- def initialize(actor) super(0, 0, 250, fitting_height(1)) # Set Actor @actor = actor # Draw Window contents refresh end #-------------------------------------------------------------------------- # * Set Actor # actor : actor object #-------------------------------------------------------------------------- def actor=(actor) ; @actor = actor ; refresh end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh # Clear Contents contents.clear # Return if Actor is nil return if @actor.nil? # Draw Actor Stat Change Points draw_points(@actor.stat_change_points) end #-------------------------------------------------------------------------- # * Draw Points # points : points value #-------------------------------------------------------------------------- def draw_points(points) # Clear Contents contents.clear # Change Color to System Color change_color(system_color) # Draw Parameter Points Header draw_text(0, 0, 200, line_height, TDS::Stat_Change_Settings::Param_Points_Name + ":") # Reset Font Settings reset_font_settings # Draw Points draw_text(0, 0, contents_width, line_height, points, 2) end end #============================================================================== # ** Window_Stat_Change_Controls #------------------------------------------------------------------------------ # This window display the basic controls of the stat change scene. #============================================================================== class Window_Stat_Change_Controls < Window_Base #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize super(0, 0, 250, fitting_height(4)) # Draw Window contents refresh end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh # Clear Contents contents.clear # Change Font Color & Draw Controls Header change_color(system_color) ; draw_text(0, 0, 250, 24, "Управление") # Reset Font Settings reset_font_settings draw_text(0, 24, 250, 24, " >>: Повысить") draw_text(0, 48, 250, 24, "<< : Понизить") if TDS::Stat_Change_Settings::Allow_Param_Point_Takeback draw_text(0, 72, 250, 24, "Enter: Подтвердить") end end #============================================================================== # ** Window_Stat_Change_Prompt #------------------------------------------------------------------------------ # This window display a prompt before changing stats. #============================================================================== class Window_Stat_Change_Prompt < Window_HorzCommand #-------------------------------------------------------------------------- # * Object Initialization # actor : actor object #-------------------------------------------------------------------------- def initialize ; super(0, 0) end #-------------------------------------------------------------------------- # * Get Window Width #-------------------------------------------------------------------------- def window_width ; 240 end #-------------------------------------------------------------------------- # * Get Window Width #-------------------------------------------------------------------------- def window_height ; fitting_height(2) end #-------------------------------------------------------------------------- # * Calculate Height of Window Contents #-------------------------------------------------------------------------- def contents_height ; height - standard_padding * 2 end #-------------------------------------------------------------------------- # * Get Digit Count #-------------------------------------------------------------------------- def col_max ; 3 end #-------------------------------------------------------------------------- # * Get Rectangle for Displaying Items #-------------------------------------------------------------------------- def item_rect(index) ; rect = super ; rect.y = line_height ; rect end #-------------------------------------------------------------------------- # * Create Command List #-------------------------------------------------------------------------- def make_command_list # Add Yes & No and Clear Commands add_command("Да", :ok) ; add_command("Нет", :cancel) ; add_command("Сброс", :clear) end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh super change_color(knockout_color) # Prompt Message draw_text(0, 0, contents_width, line_height, "Сохранить изменения?", 1) end end #============================================================================== # ** Window_Stat_Status_Change #------------------------------------------------------------------------------ # This window display and selects actor information in the status distribution # scene. #============================================================================== class Window_Stat_Status_Change < Window_Selectable #-------------------------------------------------------------------------- # * Object Initialization # actor : actor object #-------------------------------------------------------------------------- def initialize(actor) # Set Actor @actor = actor super(250, 72, (Graphics.width - 250), 444) # Clear Stat Changes clear_stat_changes # Activate and draw window contents activate.refresh # Select First select(0) end #-------------------------------------------------------------------------- # * Set Actor # actor : actor object #-------------------------------------------------------------------------- def actor=(actor) ; @actor = actor ; clear_stat_changes ; refresh end #-------------------------------------------------------------------------- # * Set Point Window # window : window object #-------------------------------------------------------------------------- def point_window=(window) ; @point_window = window end #-------------------------------------------------------------------------- # * Clear Stat Change Related Values #-------------------------------------------------------------------------- def clear_stat_changes # Stat Changes Array @stat_changes = Array.new(8, 0) # Temporary Spent Change Points @temp_spent_change_points = Array.new(8, 0) # Temporary Stat Change Points @temp_stat_change_points = 0 end #-------------------------------------------------------------------------- # * Apply Stat Changes #-------------------------------------------------------------------------- def apply_stat_changes # Apply Stat Changes @stat_changes.each_with_index {|value, i| # Next if value is 0 next if value == 0 # Get Parameter Total Value param_total = (@actor.param_base_with_plus(i) + value) param_adjust = param_total - @actor.param_cap(i) # Adjust Parameter for cap if Necessary value -= param_adjust if param_adjust > 0 # Add Actor Bonus Parameter @actor.add_param(i, value) # Set Actor Stat Change Spent Points @actor.stat_change_spent_points[i] += @temp_spent_change_points.at(i) } # Decrease Actor Stat Change Points @actor.stat_change_points -= @temp_stat_change_points # Clear Stat Changes clear_stat_changes # Activate and Refresh activate.refresh end #-------------------------------------------------------------------------- # * Get Number of Items #-------------------------------------------------------------------------- def item_max ; @actor.stat_change_params.size end #-------------------------------------------------------------------------- # * Get Item Height #-------------------------------------------------------------------------- def item_height ; 53 end #-------------------------------------------------------------------------- # * Get Temporary Remaining Actor Poins #-------------------------------------------------------------------------- def actor_points_left ; (@actor.stat_change_points - @temp_stat_change_points) end #-------------------------------------------------------------------------- # * Get Actor Parameter ID #-------------------------------------------------------------------------- def actor_param_id(index = @index) ; @actor.stat_change_params.at(index) end #-------------------------------------------------------------------------- # * Move Cursor Right #-------------------------------------------------------------------------- def cursor_right(wrap = false) super(wrap) # Return if No More Points can be added return if (@actor.stat_change_points - @temp_stat_change_points) <= 0 # Get Parameter Total Value param_total = (@actor.param_base_with_plus(actor_param_id) + @stat_changes[actor_param_id]) # Return if Parameter Total with change exceeds cap return if param_total >= @actor.param_cap(actor_param_id) # Increase Parameter and Temp Stat Change Points @stat_changes[actor_param_id] += @actor.param_increase_value(actor_param_id) ; @temp_stat_change_points += 1 # Increase Temporary Spent Points @temp_spent_change_points[actor_param_id] += 1 # Redraw Current Item redraw_current_item # Draw Actor Remaining Points in point window if it's not nil @point_window.draw_points(actor_points_left) if !@point_window.nil? end #-------------------------------------------------------------------------- # * Move Cursor Left #-------------------------------------------------------------------------- def cursor_left(wrap = false) super(wrap) # If Parameter Point Take back is allowed if TDS::Stat_Change_Settings::Allow_Param_Point_Takeback # If Temporary Spent Change Points is less than 0 if @temp_spent_change_points.at(actor_param_id) <= 0 # Return if Cannot Get back anymore points return if (@actor.stat_change_spent_points.at(actor_param_id) + @temp_spent_change_points.at(actor_param_id)) <= 0 end else # Return if Stat Change is 0 or less return if @stat_changes.at(actor_param_id) <= 0 end # Decrease Stat Changes @stat_changes[actor_param_id] -= @actor.param_increase_value(actor_param_id) ; @temp_stat_change_points -= 1 # Decrease Temporary Spent Points @temp_spent_change_points[actor_param_id] -= 1 # Redraw Current Item redraw_current_item # Draw Actor Remaining Points in point window if it's not nil @point_window.draw_points(actor_points_left) if !@point_window.nil? end #-------------------------------------------------------------------------- # * Processing When OK Button Is Pressed #-------------------------------------------------------------------------- def process_ok # Return if there are no stat changes return if !@stat_changes.any? {|s| s != 0} super end #-------------------------------------------------------------------------- # * Update Help Text #-------------------------------------------------------------------------- def update_help super # Draw Parameter Help Text @help_window.set_text(TDS::Stat_Change_Settings.param_help_text(actor_param_id)) end #-------------------------------------------------------------------------- # * Draw Item #-------------------------------------------------------------------------- def draw_item(index) # Reset Font Settings reset_font_settings # Get Item Rect rect = item_rect(index) rect.x += 4 ; rect.height = 24 ; rect.width -= 8 draw_text(rect, TDS::Stat_Change_Settings.param_full_name(actor_param_id(index))) rect.y += 24 # Fill Bar Borders contents.fill_rect(rect, Color.new(0, 0, 0)) rect.x += 1 ; rect.y += 1 ; rect.width -= 2 ; rect.height -= 2 # Fill Bar Background contents.fill_rect(rect, gauge_back_color) # Get Parameter parameter = @actor.param_base_with_plus(actor_param_id(index)) # Get Parameter % Rate rate = parameter.to_f / @actor.param_cap(index) * 100 # Adjust Width by Rate rect.width = (rect.width * rate) / 100.0 # Fill Bar Color contents.gradient_fill_rect(rect, *TDS::Stat_Change_Settings.param_colors(actor_param_id(index))) rect.width = contents_width - 8 # Draw Parameter Value draw_text(rect, parameter, 2) rect.y -= 24 # If Stat Change is less than 0 if @stat_changes.at(actor_param_id(index)) < 0 # Change Color to Power Down Color change_color(power_down_color) draw_text(rect, "#{@stat_changes.at(actor_param_id(index))}", 2) elsif @stat_changes.at(actor_param_id(index)) > 0 # Change Color to Power UP Color change_color(power_up_color) # Get Parameter ID param_id = actor_param_id(index) # Get Total total = @actor.param_base_with_plus(param_id) + @stat_changes.at(param_id) # Get Parameter Max param_max = [total, @actor.param_cap(param_id)].min - @actor.param_base_with_plus(param_id) # Draw Parameter Max draw_text(rect, "+#{param_max}", 2) end end end
SceneManager.call(Scene_Status_Distribution)
Спасибо сказали: Guren_san

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

Больше
11 года 9 мес. назад #70794 от Hakerlesha
Hakerlesha ответил в теме Нет возможности
Киан, что это? Не тот ли это скрипт, который я искал?

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

Больше
11 года 9 мес. назад #70795 от Kian Ni
Kian Ni ответил в теме Нет возможности
То-то.

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

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