设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3204|回复: 5
打印 上一主题 下一主题

[已经解决] 怎么让角色拥有自己的性格

[复制链接]

Lv1.梦旅人

梦石
0
星屑
92
在线时间
468 小时
注册时间
2011-9-1
帖子
404
跳转到指定楼层
1
发表于 2015-7-31 09:36:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
2星屑
我用的是无限生成角色的系统,详情见附件,我想让每生成或抓捕一个角色,都拥有自己的一个性格,如乐观每升一级加多一点攻击数值,悲观减攻击数值,有脚本大神会的留下信,QQ发改好的范例给我。2931536959 APACK 1.6.rar (1.44 MB, 下载次数: 142)

最佳答案

查看完整内容

悬赏太少不干QAQ
男人不懂永远月经的痛,就像女人永远不懂蛋疼的痛

Lv1.梦旅人

梦石
0
星屑
48
在线时间
784 小时
注册时间
2013-1-4
帖子
1102
2
发表于 2015-7-31 09:36:47 | 只看该作者
悬赏太少不干QAQ

点评

谢谢基佬的脚本。  发表于 2015-8-5 10:50
表示这个层主可以轻松做出来,不要上当  发表于 2015-8-1 00:03
你觉得多少合适。  发表于 2015-7-31 19:52

评分

参与人数 1星屑 +15 收起 理由
♂雨 + 15 已接单。

查看全部评分

RM-GUI延期。。。最近被黑心老板压迫T_T
二次元少女的shitake,长着长脸,身高165,蓝色卷双马尾,FCUP,瞳色黑色,病气和御宅属性,是天才少女。
回复

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
21957
在线时间
8567 小时
注册时间
2011-12-31
帖子
3362
3
发表于 2015-7-31 10:30:38 | 只看该作者
參考

性格設定 (for VX Ace)

パラメータ性格補正 (for VX Ace)

点评

我记得天干宝典里面,柳柳做了一个无限抓宠的范例,你可以去看看  发表于 2015-8-1 12:08
只是給你參考  发表于 2015-7-31 11:33
问题是要配合我哪个无限生成。而且我也不会用这个,我说了要范例.......  发表于 2015-7-31 10:49
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9275
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

4
发表于 2015-7-31 11:58:28 | 只看该作者
你的无限生成系统本来就可以单独设置每个角色的属性成长···

点评

我还要上课T-T  发表于 2015-7-31 12:33
你把昨天那个问题给我做个范例行吗.....这悬赏给你.  发表于 2015-7-31 12:29
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
92
在线时间
468 小时
注册时间
2011-9-1
帖子
404
5
 楼主| 发表于 2015-7-31 17:00:08 | 只看该作者
chd114 发表于 2015-7-31 11:58
你的无限生成系统本来就可以单独设置每个角色的属性成长···

那你有空了做给我吧。
男人不懂永远月经的痛,就像女人永远不懂蛋疼的痛
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
81 小时
注册时间
2015-5-14
帖子
4
6
发表于 2015-8-1 05:53:19 | 只看该作者
性格系统,希望可以用到
#==============================================================================
#
# ▼ Yanfly Engine Ace - TP Manager v1.02
# -- Last Updated: 2011.12.10
# -- Level: Hard
# -- Requires: n/a
#
#==============================================================================

$imported = {} if $imported.nil?
$imported["YEA-TPManager"] = true

#==============================================================================
# ▼ Updates
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# 2011.12.10 - Added <tp cost: x> notetag.
# 2011.12.06 - Fixed an error in one of the formulas.
# 2011.12.05 - Started Script and Finished.
#
#==============================================================================
# ▼ Introduction
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# The TP system in RPG Maker VX Ace is actually rather limiting. A lot of the
# system is hardcoded in giving Ace users very little control over how much TP
# gain a battler can receive from particular actions and situations. This
# script gives you the ability to adjust how much TP actors will acquire from
# various actions, different TP modes, and letting players select and pick what
# TP mode they want for each actor (akin to Final Fantasy X).
#
#==============================================================================
# ▼ Instructions
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# To install this script, open up your script editor and copy/paste this script
# to an open slot below ▼ Materials/素材 but above ▼ Main. Remember to save.
#
# -----------------------------------------------------------------------------
# Actor Notetags - These notetags go in the actors notebox in the database.
# -----------------------------------------------------------------------------
# <tp mode: x>
# This sets the actor's default TP mode to x. If this tag isn't used, the
# default TP mode will be set to whatever the module uses as default.
#
# <unlock tp: x>
# <unlock tp: x, x>
# This unlocks what TP modes the actor can use by default. If this tag isn't
# used, the default unlocked TP modes will be whatever the module uses.
#
# -----------------------------------------------------------------------------
# Item Notetags - These notetags go in the item notebox in the database.
# -----------------------------------------------------------------------------
# <unlock tp: x>
# <unlock tp: x, x>
# When this item is used upon an actor, that actor will learn TP Mode(s) x,
# making it available to change in the TP Menu.
#
# -----------------------------------------------------------------------------
# Skill Notetags - These notetags go in the skill notebox in the database.
# -----------------------------------------------------------------------------
# <unlock tp: x>
# <unlock tp: x, x>
# When this skill targets an actor, that actor will learn TP Mode(s) x thus,
# making it available to change in the TP Menu.
#
# <learn unlock tp: x>
# <learn unlock tp: x, x>
# When an actor learns a skill with this notetag, that actor will learn
# TP Mode(s) x making it available to change in the TP Menu.
#
# <tp cost: x>
# When this notetag appears in a skill's notebox, the TP cost for that skill
# becomes x. This notetag allows TP costs to surpass 100 TP, which is the max
# TP cost in the RPG Maker VX Ace database editor.
#
# -----------------------------------------------------------------------------
# Enemy Notetags - These notetags go in the enemy notebox in the database.
# -----------------------------------------------------------------------------
# <tp mode: x>
# This sets the enemy's default TP mode to x. If this tag isn't used, the
# default TP mode will be set to whatever the module uses as default.
#
# -----------------------------------------------------------------------------
# Script Calls - These commands are used with script calls.
# -----------------------------------------------------------------------------
# change_tp_mode(x, y)
# Replace x with the ID of the actor you want to change to the TP Mode y. This
# will also unlock the TP mode for the actor, and make it available under the
# skill menu for changing.
#
# unlock_tp_mode(x, y)
# Replace x with the ID of the actor you want to learn for the TP Mode y. This
# will cause the actor to learn the TP mode and have it accessible in the skill
# menu for changing.
#
# remove_tp_mode(x, y)
# Replace x with the ID of the actor you want to remove the TP Mode y. This
# will cause the actor to forget the TP mode and no longer have it accessible
# through the skill menu for changing.
#
# unlock_all_tp_modes(x)
# Replace x with the ID of the actor you want to unlock all TP modes for. This
# will make all the TP modes available to the actor from the skill menu.
#
# remove_all_tp_modes(x)
# Removes all TP modes for actor x except for the actor's default TP mode.
# This removes all TP modes from being available in the actor's skill menu.
#
#==============================================================================
# ▼ Compatibility
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# This script is made strictly for RPG Maker VX Ace. It is highly unlikely that
# it will run with RPG Maker VX without adjusting.
#
#==============================================================================

module YEA
  module TP_MANAGER
   
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # - General TP Settings -
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # Here, you can adjust global settings for TP including the maximum TP,
    # whether or not you want the player to change TP modes, and more.
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    TP_LIMIT  = 100         # Sets the maximum TP. Default: 100
    DEFAULT_TP_MODE = 0            # This is the TP mode everybody starts with
                                   # unless changed through notetags.
    DEFAULT_UNLOCKS = [0, 1, 2, 3,4,5,6,7,8,9,10,11,12,13,14,15,]
    # These modes are unlocked for all actors
                                   # unless changed through notetags.
    LOW_HP = 0.25           # Percent for what is considered low HP.
    LOW_MP = 0.25           # Percent for what is considered low MP.
   
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # - TP Mode Change Settings -
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # Adjust the settings here for TP Mode Menu related items. Also, be sure
    # to bind the TP_MODE_SWITCH to a switch ID. If that switch is on, the
    # TP Mode item will appear in the skill menu. If off, it won't appear.
    # If you set it to 0, then TP mode will always be enabled.
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    MENU_NAME = "性格"   # The displayed name for the TP Menu.
    TP_MODE_SWITCH  = 0     # Switch ID used for enabling TP Mode menu.
    DEFAULT_ENABLE  = true  # Enable switch by default?
    CHANGE_TP_RESET = true  # Reset TP to 0 whenever a mode is changed?
    EQUIPPED_COLOUR = 17    # Window text colour used for equipped TP mode.
   
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # - TP Modes -
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # TP modes have a number of things that can change the way actors gain TP.
    # Adjust the settings below to change how much gain and loss incurs per
    # each of the different actions.
    #
    # Setting        Description
    # -------------------------------------------------------------------------
    # - :name        - Name that appears in the TP Mode menu.
    # - :icon        - Icon used for the TP Mode menu.
    # - :description - Help window description. Use \n for line breaks.
    # - :preserve_tp - Carry over TP from last battle to next battle?
    # - :init_tp     - TP at the start of each battle if no TP preservation.
    # - :regen_tp    - TP regenerated each turn. Uses a formula.
    # - :take_hp_dmg - TP charged by receiving HP damage. Uses a formula.
    # - :deal_hp_dmg - TP gained by dealing HP damage. Uses a formula.
    # - :heal_hp_dmg - TP gained through healing HP damage. Uses a formula.
    # - :ally_hp_dmg - TP gained when allies take HP damage. Uses a formula.
    # - :take_mp_dmg - TP charged by receiving MP damage. Uses a formula.
    # - :deal_mp_dmg - TP gained by dealing MP damage. Uses a formula.
    # - :heal_mp_dmg - TP gained through healing MP damage. Uses a formula.
    # - :ally_mp_dmg - TP gained when allies take MP damage. Uses a formula.
    # - :deal_state  - TP gained when user inflicts a state to a foe. Formula.
    # - :gain_state  - TP gained when user gains a state from a foe. Formula.
    # - :kill_ally   - TP gained when an ally is killed. Uses a formula.
    # - :kill_enemy  - TP gained when killing an enemy. Uses a formula.
    # - :win_battle  - TP gained whenever a battle is won. Uses a formula.
    # - :flee_battle - TP gained whenever party escapes. Uses a formula.
    # - :lose_battle - TP gained whenever a battle is lost. Uses a formula.
    # - :low_hp_turn - TP gained at the end of a turn with user at low HP.
    # - :low_mp_turn - TP gained at the end of a turn with user at low MP.
    # - :only_ally   - TP gained when user is only ally alive.
    # - :evasion     - TP gained when user evades an attack.
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    TP_MODES ={
    # TP Mode => { Settings }
    # -------------------------------------------------------------------------
      0 => { # This is the default mode.
      # :setting     => Adjust settings as you see fit.
        :name        => "苦行僧",
        :icon        => 121,
        :description => "在等待或者受到攻击时增加TP.",
        :preserve_tp => false,
        :init_tp     => "rand * 25",
        :regen_tp    => "100 * trg",
        :take_hp_dmg => "50 * damage_rate * tcr",
        :deal_hp_dmg => "0",
        :heal_hp_dmg => "0",
        :ally_hp_dmg => "0",
        :take_mp_dmg => "0",
        :deal_mp_dmg => "0",
        :heal_mp_dmg => "0",
        :ally_mp_dmg => "0",
        :deal_state  => "0",
        :gain_state  => "0",
        :kill_ally   => "0",
        :kill_enemy  => "0",
        :win_battle  => "0",
        :flee_battle => "0",
        :lose_battle => "0",
        :low_hp_turn => "0",
        :low_mp_turn => "0",
        :only_alive  => "0",
        :evasion     => "0",
      }, # Do not remove this.
    # -------------------------------------------------------------------------
      1 => { # New TP mode!
      # :setting     => Adjust settings as you see fit.
        :name        => "难友",
        :icon        => 122,
        :description => "每当同伴受伤都增加TP.",
        :preserve_tp => true,
        :init_tp     => "0",
        :regen_tp    => "0",
        :take_hp_dmg => "0",
        :deal_hp_dmg => "0",
        :heal_hp_dmg => "0",
        :ally_hp_dmg => "20 * tcr",
        :take_mp_dmg => "0",
        :deal_mp_dmg => "0",
        :heal_mp_dmg => "0",
        :ally_mp_dmg => "0",
        :deal_state  => "0",
        :gain_state  => "0",
        :kill_ally   => "0",
        :kill_enemy  => "0",
        :win_battle  => "0",
        :flee_battle => "0",
        :lose_battle => "0",
        :low_hp_turn => "0",
        :low_mp_turn => "0",
        :only_alive  => "0",
        :evasion     => "0",
      }, # Do not remove this.
    # -------------------------------------------------------------------------
      2 => { # New TP mode!
      # :setting     => Adjust settings as you see fit.
        :name        => "勇者",
        :icon        => 116,
        :description => "进攻和治疗时增加TP.",
        :preserve_tp => true,
        :init_tp     => "0",
        :regen_tp    => "0",
        :take_hp_dmg => "0",
        :deal_hp_dmg => "[@result.hp_damage * 100 / mhp, 16].min * tcr",
        :heal_hp_dmg => "0",
        :ally_hp_dmg => "0",
        :take_mp_dmg => "0",
        :deal_mp_dmg => "0",
        :heal_mp_dmg => "0",
        :ally_mp_dmg => "0",
        :deal_state  => "0",
        :gain_state  => "0",
        :kill_ally   => "0",
        :kill_enemy  => "0",
        :win_battle  => "0",
        :flee_battle => "0",
        :lose_battle => "0",
        :low_hp_turn => "0",
        :low_mp_turn => "0",
        :only_alive  => "0",
        :evasion     => "0",
      }, # Do not remove this.
    # -------------------------------------------------------------------------
      3 => { # New TP mode!
      # :setting     => Adjust settings as you see fit.
        :name        => "守护者",
        :icon        => 112,
        :description => "治疗时增加TP.",
        :preserve_tp => true,
        :init_tp     => "0",
        :regen_tp    => "0",
        :take_hp_dmg => "0",
        :deal_hp_dmg => "0",
        :heal_hp_dmg => "[@result.hp_damage * -100 / mhp, 16].min * tcr",
        :ally_hp_dmg => "0",
        :take_mp_dmg => "0",
        :deal_mp_dmg => "0",
        :heal_mp_dmg => "0",
        :ally_mp_dmg => "0",
        :deal_state  => "0",
        :gain_state  => "0",
        :kill_ally   => "0",
        :kill_enemy  => "0",
        :win_battle  => "0",
        :flee_battle => "0",
        :lose_battle => "0",
        :low_hp_turn => "0",
        :low_mp_turn => "0",
        :only_alive  => "0",
        :evasion     => "0",
      }, # Do not remove this.
    # -------------------------------------------------------------------------
      4 => { # New TP mode!
      # :setting     => Adjust settings as you see fit.
        :name        => "中断者",
        :icon        => 215,
        :description => "恢复MP损害受到MP损伤或者同伴受到损伤时提高TP.",
        :preserve_tp => true,
        :init_tp     => "0",
        :regen_tp    => "0",
        :take_hp_dmg => "0",
        :deal_hp_dmg => "0",
        :heal_hp_dmg => "0",
        :ally_hp_dmg => "0",
        :take_mp_dmg => "50 * damage_rate * tcr",
        :deal_mp_dmg => "[@result.mp_damage / 4, 16].min * tcr",
        :heal_mp_dmg => "0",
        :ally_mp_dmg => "20 * tcr",
        :deal_state  => "0",
        :gain_state  => "0",
        :kill_ally   => "0",
        :kill_enemy  => "0",
        :win_battle  => "0",
        :flee_battle => "0",
        :lose_battle => "0",
        :low_hp_turn => "0",
        :low_mp_turn => "0",
        :only_alive  => "0",
        :evasion     => "0",
      }, # Do not remove this.
    # -------------------------------------------------------------------------
      5 => { # New TP mode!
      # :setting     => Adjust settings as you see fit.
        :name        => "炼金术士",
        :icon        => 193,
        :description => "恢复同伴MP时增加TP.",
        :preserve_tp => true,
        :init_tp     => "0",
        :regen_tp    => "0",
        :take_hp_dmg => "0",
        :deal_hp_dmg => "0",
        :heal_hp_dmg => "0",
        :ally_hp_dmg => "0",
        :take_mp_dmg => "0",
        :deal_mp_dmg => "0",
        :heal_mp_dmg => "[@result.mp_damage / -4, 16].min * tcr",
        :ally_mp_dmg => "0",
        :deal_state  => "0",
        :gain_state  => "0",
        :kill_ally   => "0",
        :kill_enemy  => "0",
        :win_battle  => "0",
        :flee_battle => "0",
        :lose_battle => "0",
        :low_hp_turn => "0",
        :low_mp_turn => "0",
        :only_alive  => "0",
        :evasion     => "0",
      }, # Do not remove this.
    # -------------------------------------------------------------------------
      6 => { # New TP mode!
      # :setting     => Adjust settings as you see fit.
        :name        => "杀手",
        :icon        => 115,
        :description => "当同伴死亡时增加TP.",
        :preserve_tp => true,
        :init_tp     => "0",
        :regen_tp    => "0",
        :take_hp_dmg => "0",
        :deal_hp_dmg => "0",
        :heal_hp_dmg => "0",
        :ally_hp_dmg => "0",
        :take_mp_dmg => "0",
        :deal_mp_dmg => "0",
        :heal_mp_dmg => "0",
        :ally_mp_dmg => "0",
        :deal_state  => "0",
        :gain_state  => "0",
        :kill_ally   => "0",
        :kill_enemy  => "25 * tcr",
        :win_battle  => "0",
        :flee_battle => "0",
        :lose_battle => "0",
        :low_hp_turn => "0",
        :low_mp_turn => "0",
        :only_alive  => "0",
        :evasion     => "0",
      }, # Do not remove this.
    # -------------------------------------------------------------------------
      7 => { # New TP mode!
      # :setting     => Adjust settings as you see fit.
        :name        => "复仇者",
        :icon        => 1,
        :description => "当同伴死亡时增加TP.",
        :preserve_tp => true,
        :init_tp     => "0",
        :regen_tp    => "0",
        :take_hp_dmg => "0",
        :deal_hp_dmg => "0",
        :heal_hp_dmg => "0",
        :ally_hp_dmg => "0",
        :take_mp_dmg => "0",
        :deal_mp_dmg => "0",
        :heal_mp_dmg => "0",
        :ally_mp_dmg => "0",
        :deal_state  => "0",
        :gain_state  => "0",
        :kill_ally   => "50 * tcr",
        :kill_enemy  => "0",
        :win_battle  => "0",
        :flee_battle => "0",
        :lose_battle => "0",
        :low_hp_turn => "0",
        :low_mp_turn => "0",
        :only_alive  => "0",
        :evasion     => "0",
      }, # Do not remove this.
    # -------------------------------------------------------------------------
      8 => { # New TP mode!
      # :setting     => Adjust settings as you see fit.
        :name        => "胜利者",
        :icon        => 113,
        :description => "不管是否战斗都增加TP.",
        :preserve_tp => true,
        :init_tp     => "0",
        :regen_tp    => "0",
        :take_hp_dmg => "0",
        :deal_hp_dmg => "0",
        :heal_hp_dmg => "0",
        :ally_hp_dmg => "0",
        :take_mp_dmg => "0",
        :deal_mp_dmg => "0",
        :heal_mp_dmg => "0",
        :ally_mp_dmg => "0",
        :deal_state  => "0",
        :gain_state  => "0",
        :kill_ally   => "0",
        :kill_enemy  => "0",
        :win_battle  => "20 * tcr",
        :flee_battle => "0",
        :lose_battle => "0",
        :low_hp_turn => "0",
        :low_mp_turn => "0",
        :only_alive  => "0",
        :evasion     => "0",
      }, # Do not remove this.
    # -------------------------------------------------------------------------
      9 => { # New TP mode!
      # :setting     => Adjust settings as you see fit.
        :name        => "胆小鬼",
        :icon        => 114,
        :description => "不管是否逃跑都增加TP.",
        :preserve_tp => true,
        :init_tp     => "0",
        :regen_tp    => "0",
        :take_hp_dmg => "0",
        :deal_hp_dmg => "0",
        :heal_hp_dmg => "0",
        :ally_hp_dmg => "0",
        :take_mp_dmg => "0",
        :deal_mp_dmg => "0",
        :heal_mp_dmg => "0",
        :ally_mp_dmg => "0",
        :deal_state  => "0",
        :gain_state  => "0",
        :kill_ally   => "0",
        :kill_enemy  => "0",
        :win_battle  => "0",
        :flee_battle => "0",
        :lose_battle => "20 * tcr",
        :low_hp_turn => "0",
        :low_mp_turn => "0",
        :only_alive  => "0",
        :evasion     => "0",
      }, # Do not remove this.
    # -------------------------------------------------------------------------
      10 => { # New TP mode!
      # :setting     => Adjust settings as you see fit.
        :name        => "狂人",
        :icon        => 48,
        :description => "不管战斗结束后多少TP都增加.",
        :preserve_tp => true,
        :init_tp     => "0",
        :regen_tp    => "0",
        :take_hp_dmg => "0",
        :deal_hp_dmg => "0",
        :heal_hp_dmg => "0",
        :ally_hp_dmg => "0",
        :take_mp_dmg => "0",
        :deal_mp_dmg => "0",
        :heal_mp_dmg => "0",
        :ally_mp_dmg => "0",
        :deal_state  => "0",
        :gain_state  => "0",
        :kill_ally   => "0",
        :kill_enemy  => "0",
        :win_battle  => "0",
        :flee_battle => "0",
        :lose_battle => "0",
        :low_hp_turn => "16 * tcr",
        :low_mp_turn => "0",
        :only_alive  => "0",
        :evasion     => "0",
      }, # Do not remove this.
    # -------------------------------------------------------------------------
      11 => { # New TP mode!
      # :setting     => Adjust settings as you see fit.
        :name        => "调剂师",
        :icon        => 49,
        :description => "不管战斗结束后多少MP都增加TP.",
        :preserve_tp => true,
        :init_tp     => "0",
        :regen_tp    => "0",
        :take_hp_dmg => "0",
        :deal_hp_dmg => "0",
        :heal_hp_dmg => "0",
        :ally_hp_dmg => "0",
        :take_mp_dmg => "0",
        :deal_mp_dmg => "0",
        :heal_mp_dmg => "0",
        :ally_mp_dmg => "0",
        :deal_state  => "0",
        :gain_state  => "0",
        :kill_ally   => "0",
        :kill_enemy  => "0",
        :win_battle  => "0",
        :flee_battle => "0",
        :lose_battle => "0",
        :low_hp_turn => "0",
        :low_mp_turn => "16 * tcr",
        :only_alive  => "0",
        :evasion     => "0",
      }, # Do not remove this.
    # -------------------------------------------------------------------------
      12 => { # New TP mode!
      # :setting     => Adjust settings as you see fit.
        :name        => "战略家",
        :icon        => 10,
        :description => "每当使敌人状态受到攻击提高TP.",
        :preserve_tp => true,
        :init_tp     => "0",
        :regen_tp    => "0",
        :take_hp_dmg => "0",
        :deal_hp_dmg => "0",
        :heal_hp_dmg => "0",
        :ally_hp_dmg => "0",
        :take_mp_dmg => "0",
        :deal_mp_dmg => "0",
        :heal_mp_dmg => "0",
        :ally_mp_dmg => "0",
        :deal_state  => "16 * tcr",
        :gain_state  => "0",
        :kill_ally   => "0",
        :kill_enemy  => "0",
        :win_battle  => "0",
        :flee_battle => "0",
        :lose_battle => "0",
        :low_hp_turn => "0",
        :low_mp_turn => "0",
        :only_alive  => "0",
        :evasion     => "0",
      }, # Do not remove this.
    # -------------------------------------------------------------------------
      13 => { # New TP mode!
      # :setting     => Adjust settings as you see fit.
        :name        => "病人",
        :icon        => 3,
        :description => "每当状态受到攻击提高TP.",
        :preserve_tp => true,
        :init_tp     => "0",
        :regen_tp    => "0",
        :take_hp_dmg => "0",
        :deal_hp_dmg => "0",
        :heal_hp_dmg => "0",
        :ally_hp_dmg => "0",
        :take_mp_dmg => "0",
        :deal_mp_dmg => "0",
        :heal_mp_dmg => "0",
        :ally_mp_dmg => "0",
        :deal_state  => "0",
        :gain_state  => "16 * tcr",
        :kill_ally   => "0",
        :kill_enemy  => "0",
        :win_battle  => "0",
        :flee_battle => "0",
        :lose_battle => "0",
        :low_hp_turn => "0",
        :low_mp_turn => "0",
        :only_alive  => "0",
        :evasion     => "0",
      }, # Do not remove this.
    # -------------------------------------------------------------------------
      14 => { # New TP mode!
      # :setting     => Adjust settings as you see fit.
        :name        => "舞者",
        :icon        => 12,
        :description => "每当成功地逃避攻击提高TP.",
        :preserve_tp => true,
        :init_tp     => "0",
        :regen_tp    => "0",
        :take_hp_dmg => "0",
        :deal_hp_dmg => "0",
        :heal_hp_dmg => "0",
        :ally_hp_dmg => "0",
        :take_mp_dmg => "0",
        :deal_mp_dmg => "0",
        :heal_mp_dmg => "0",
        :ally_mp_dmg => "0",
        :deal_state  => "0",
        :gain_state  => "0",
        :kill_ally   => "0",
        :kill_enemy  => "0",
        :win_battle  => "0",
        :flee_battle => "0",
        :lose_battle => "0",
        :low_hp_turn => "0",
        :low_mp_turn => "0",
        :only_alive  => "0",
        :evasion     => "16 * tcr",
      }, # Do not remove this.
    # -------------------------------------------------------------------------
      15 => { # New TP mode!
      # :setting     => Adjust settings as you see fit.
        :name        => "独行侠",
        :icon        => 14,
        :description => "当只剩最后一人时增加TP.",
        :preserve_tp => true,
        :init_tp     => "0",
        :regen_tp    => "0",
        :take_hp_dmg => "0",
        :deal_hp_dmg => "0",
        :heal_hp_dmg => "0",
        :ally_hp_dmg => "0",
        :take_mp_dmg => "0",
        :deal_mp_dmg => "0",
        :heal_mp_dmg => "0",
        :ally_mp_dmg => "0",
        :deal_state  => "0",
        :gain_state  => "0",
        :kill_ally   => "0",
        :kill_enemy  => "0",
        :win_battle  => "0",
        :flee_battle => "0",
        :lose_battle => "0",
        :low_hp_turn => "0",
        :low_mp_turn => "0",
        :only_alive  => "16 * tcr",
        :evasion     => "0",
      }, # Do not remove this.
    # -------------------------------------------------------------------------
    } # Do not remove this.
   
  end # TP_MANAGER
end # YEA

#==============================================================================
# ▼ Editting anything past this point may potentially result in causing
# computer damage, incontinence, explosion of user's head, coma, death, and/or
# halitosis so edit at your own risk.
#==============================================================================

module YEA
  module REGEXP
  module ACTOR
   
    TP_MODE   = /<(?:TP_MODE|tp mode):[ ](\d+)>/i
    UNLOCK_TP = /<(?:UNLOCK_TP|unlock tp):[ ]*(\d+(?:\s*,\s*\d+)*)>/i
   
  end # ACTOR
  module ENEMY
   
    TP_MODE   = /<(?:TP_MODE|tp mode):[ ](\d+)>/i
   
  end # ENEMY
  module BASEITEM
   
    UNLOCK_TP = /<(?:UNLOCK_TP|unlock tp):[ ]*(\d+(?:\s*,\s*\d+)*)>/i
    LEARN_TP = /<(?:LEARN_UNLOCK_TP|learn unlock tp):[ ]*(\d+(?:\s*,\s*\d+)*)>/i
    TP_COST  = /<(?:TP_COST|tp cost):[ ](\d+)>/i
   
  end # BASEITEM
  end # REGEXP
end # YEA

#==============================================================================
# ■ Switch
#==============================================================================

module Switch
  
  #--------------------------------------------------------------------------
  # self.tp_mode
  #--------------------------------------------------------------------------
  def self.tp_mode
    return true if YEA::TP_MANAGER::TP_MODE_SWITCH <= 0
    return $game_switches[YEA::TP_MANAGER::TP_MODE_SWITCH]
  end
  
  #--------------------------------------------------------------------------
  # self.tp_mode_set
  #--------------------------------------------------------------------------
  def self.tp_mode_set(item)
    return if YEA::TP_MANAGER::TP_MODE_SWITCH <= 0
    $game_switches[YEA::TP_MANAGER::TP_MODE_SWITCH] = item
  end
   
end # Switch

#==============================================================================
# ■ Numeric
#==============================================================================

class Numeric
  
  #--------------------------------------------------------------------------
  # new method: group_digits
  #--------------------------------------------------------------------------
  unless $imported["YEA-CoreEngine"]
  def group; return self.to_s; end
  end # $imported["YEA-CoreEngine"]
   
end # Numeric

#==============================================================================
# ■ DataManager
#==============================================================================

module DataManager
  
  #--------------------------------------------------------------------------
  # alias method: load_database
  #--------------------------------------------------------------------------
  class <<self; alias load_database_tpm load_database; end
  def self.load_database
    load_database_tpm
    load_notetags_tpm
  end
  
  #--------------------------------------------------------------------------
  # new method: load_notetags_tpm
  #--------------------------------------------------------------------------
  def self.load_notetags_tpm
    groups = [$data_actors, $data_enemies, $data_items, $data_skills]
    for group in groups
      for obj in group
        next if obj.nil?
        obj.load_notetags_tpm
      end
    end
  end
  
  #--------------------------------------------------------------------------
  # alias method: setup_new_game
  #--------------------------------------------------------------------------
  class <<self; alias setup_new_game_tpm setup_new_game; end
  def self.setup_new_game
    setup_new_game_tpm
    Switch.tp_mode_set(YEA::TP_MANAGER::DEFAULT_ENABLE)
  end
  
end # DataManager

#==============================================================================
# ■ RPG::Actor
#==============================================================================

class RPG::Actor < RPG::BaseItem
  
  #--------------------------------------------------------------------------
  # public instance variables
  #--------------------------------------------------------------------------
  attr_accessor :tp_mode
  attr_accessor :unlocked_tp_modes
  
  #--------------------------------------------------------------------------
  # common cache: load_notetags_tpm
  #--------------------------------------------------------------------------
  def load_notetags_tpm
    @tp_mode = nil
    @unlocked_tp_modes = []
    #---
    self.note.split(/[\r\n]+/).each { |line|
      case line
      #---
      when YEA::REGEXP::ACTOR::TP_MODE
        @tp_mode = $1.to_i
      when YEA::REGEXP::ACTOR::UNLOCK_TP
        $1.scan(/\d+/).each { |num|
        @unlocked_tp_modes.push(num.to_i) if num.to_i > 0 }
      #---
      end
    } # self.note.split
    #---
    @tp_mode = YEA::TP_MANAGER::DEFAULT_TP_MODE if @tp_mode.nil?
    if @unlocked_tp_modes.empty?
      @unlocked_tp_modes = YEA::TP_MANAGER::DEFAULT_UNLOCKS.clone
    end
    @unlocked_tp_modes.push(@tp_mode) if !@unlocked_tp_modes.include?(@tp_mode)
    @unlocked_tp_modes.uniq!
    @unlocked_tp_modes.sort!
  end
  
end # RPG::Actor

#==============================================================================
# ■ RPG::Enemy
#==============================================================================

class RPG::Enemy < RPG::BaseItem
  
  #--------------------------------------------------------------------------
  # public instance variables
  #--------------------------------------------------------------------------
  attr_accessor :tp_mode
  
  #--------------------------------------------------------------------------
  # common cache: load_notetags_tpm
  #--------------------------------------------------------------------------
  def load_notetags_tpm
    @tp_mode = YEA::TP_MANAGER::DEFAULT_TP_MODE
    #---
    self.note.split(/[\r\n]+/).each { |line|
      case line
      #---
      when YEA::REGEXP::ENEMY::TP_MODE
        @tp_mode = $1.to_i
      #---
      end
    } # self.note.split
    #---
  end
  
end # RPG::Enemy

#==============================================================================
# ■ RPG::BaseItem
#==============================================================================

class RPG::BaseItem
  
  #--------------------------------------------------------------------------
  # public instance variables
  #--------------------------------------------------------------------------
  attr_accessor :unlocked_tp_modes
  attr_accessor :learn_tp_modes
  attr_accessor :tp_cost
  
  #--------------------------------------------------------------------------
  # common cache: load_notetags_tpm
  #--------------------------------------------------------------------------
  def load_notetags_tpm
    @unlocked_tp_modes = []
    @learn_tp_modes = []
    #---
    self.note.split(/[\r\n]+/).each { |line|
      case line
      #---
      when YEA::REGEXP::BASEITEM::UNLOCK_TP
        $1.scan(/\d+/).each { |num|
        @unlocked_tp_modes.push(num.to_i) if num.to_i > 0 }
      when YEA::REGEXP::BASEITEM::LEARN_TP
        $1.scan(/\d+/).each { |num|
        @learn_tp_modes.push(num.to_i) if num.to_i > 0 }
      when YEA::REGEXP::BASEITEM::TP_COST
        next unless self.is_a?(RPG::Skill)
        @tp_cost = $1.to_i
      #---
      end
    } # self.note.split
    #---
  end
  
end # RPG::BaseItem

#==============================================================================
# ■ BattleManager
#==============================================================================

module BattleManager
  #--------------------------------------------------------------------------
  # alias method: load_database
  #--------------------------------------------------------------------------
  class <<self; alias battle_end_tpm battle_end;end
  def self.battle_end(result)
    battle_end_tpm(result)
    case result
    when 0
      for member in $game_party.alive_members
        member.tp += eval(member.tp_setting(:win_battle))
      end
    when 1
      for member in $game_party.alive_members
        member.tp += eval(member.tp_setting(:flee_battle))
      end
    end
  end
  
  
  
end # BattleManager

#==============================================================================
# ■ Game_BattlerBase
#==============================================================================

class Game_BattlerBase
  #--------------------------------------------------------------------------
  # public instance variables
  #--------------------------------------------------------------------------
  attr_accessor :tp_mode
  attr_accessor :unlocked_tp_modes
  
  #--------------------------------------------------------------------------
  # overwrite method: max_tp
  #--------------------------------------------------------------------------
  def max_tp; return YEA::TP_MANAGER::TP_LIMIT; end
  
  #--------------------------------------------------------------------------
  # anti-crash methods: max_tp, unlocked_tp_modes
  #--------------------------------------------------------------------------
  def tp_mode; return 0; end
  def unlocked_tp_modes; return [0]; end
  
  #--------------------------------------------------------------------------
  # new method: tp_setting
  #--------------------------------------------------------------------------
  def tp_setting(setting)
    return YEA::TP_MANAGER::TP_MODES[tp_mode][setting]
  end
  
  #--------------------------------------------------------------------------
  # alias method: preserve_tp?
  #--------------------------------------------------------------------------
  alias game_battlerbase_preserve_tp_tpm preserve_tp?
  def preserve_tp?
    return true if tp_setting(:preserve_tp)
    return game_battlerbase_preserve_tp_tpm
  end
  
end # Game_BattlerBase

#==============================================================================
# ■ Game_Battler
#==============================================================================

class Game_Battler < Game_BattlerBase
  
  #--------------------------------------------------------------------------
  # overwrite method: init_tp
  #--------------------------------------------------------------------------
  def init_tp
    self.tp = eval(tp_setting(:init_tp))
  end
  
  #--------------------------------------------------------------------------
  # overwrite method: charge_tp_by_damage
  #--------------------------------------------------------------------------
  def charge_tp_by_damage(damage_rate)
    self.tp += eval(tp_setting(:take_hp_dmg))
  end
  
  #--------------------------------------------------------------------------
  # new method: charge_tp_by_mp_damage
  #--------------------------------------------------------------------------
  def charge_tp_by_mp_damage(damage_rate)
    self.tp += eval(tp_setting(:take_mp_dmg))
  end
  
  #--------------------------------------------------------------------------
  # overwrite method:
  #--------------------------------------------------------------------------
  def regenerate_tp
    self.tp += eval(tp_setting(:regen_tp))
    self.tp += eval(tp_setting(:low_hp_turn)) if self.hp < tp_low_hp
    self.tp += eval(tp_setting(:low_mp_turn)) if self.mp < tp_low_mp
    if friends_unit.alive_members.size == 1
      self.tp += eval(tp_setting(:only_alive))
    end
  end
  
  #--------------------------------------------------------------------------
  # new method: tp_low_hp
  #--------------------------------------------------------------------------
  def tp_low_hp
    return self.mhp * YEA::TP_MANAGER::LOW_HP
  end
  
  #--------------------------------------------------------------------------
  # new method: tp_low_mp
  #--------------------------------------------------------------------------
  def tp_low_mp
    return self.mmp * YEA::TP_MANAGER::LOW_MP
  end
  
  #--------------------------------------------------------------------------
  # alias method: execute_damage
  #--------------------------------------------------------------------------
  alias game_battler_execute_damage_tpm execute_damage
  def execute_damage(user)
    game_battler_execute_damage_tpm(user)
    return unless $game_party.in_battle
    if @result.hp_damage > 0
      user.tp += eval(user.tp_setting(:deal_hp_dmg))
      gain_tp_ally_hp_damage
    elsif @result.hp_damage < 0
      user.tp += eval(user.tp_setting(:heal_hp_dmg))
    end
    if @result.mp_damage > 0
      user.tp += eval(user.tp_setting(:deal_mp_dmg))
      gain_tp_ally_mp_damage
      charge_tp_by_mp_damage(@result.mp_damage)
    elsif @result.mp_damage < 0
      user.tp += eval(user.tp_setting(:heal_mp_dmg))
    end
    user.tp += eval(user.tp_setting(:kill_enemy)) if self.hp == 0
    gain_tp_kill_ally if self.hp == 0
  end
  
  #--------------------------------------------------------------------------
  # new method: gain_tp_ally_hp_damage
  #--------------------------------------------------------------------------
  def gain_tp_ally_hp_damage
    for member in friends_unit.alive_members
      next if member == self
      member.tp += eval(member.tp_setting(:ally_hp_dmg))
    end
  end
  
  #--------------------------------------------------------------------------
  # new method: gain_tp_ally_mp_damage
  #--------------------------------------------------------------------------
  def gain_tp_ally_mp_damage
    for member in friends_unit.alive_members
      next if member == self
      member.tp += eval(member.tp_setting(:ally_mp_dmg))
    end
  end
  
  #--------------------------------------------------------------------------
  # new method: gain_tp_kill_ally
  #--------------------------------------------------------------------------
  def gain_tp_kill_ally
    for member in friends_unit.alive_members
      next if member == self
      member.tp += eval(member.tp_setting(:kill_ally))
    end
  end
  
  #--------------------------------------------------------------------------
  # alias method: item_effect_add_state
  #--------------------------------------------------------------------------
  alias game_battler_item_effect_add_state_tpm item_effect_add_state
  def item_effect_add_state(user, item, effect)
    original_states = states.clone
    game_battler_item_effect_add_state_tpm(user, item, effect)
    return unless $game_party.in_battle
    if original_states != states && opponents_unit.members.include?(user)
      user.tp += eval(user.tp_setting(:deal_state))
      self.tp += eval(tp_setting(:gain_state))
    end
  end
  
  #--------------------------------------------------------------------------
  # alias method: item_apply
  #--------------------------------------------------------------------------
  alias game_battler_item_apply_tpm item_apply
  def item_apply(user, item)
    game_battler_item_apply_tpm(user, item)
    return unless $game_party.in_battle
    return if @result.hit?
    self.tp += eval(tp_setting(:evasion))
  end
  
  #--------------------------------------------------------------------------
  # alias method: item_test
  #--------------------------------------------------------------------------
  alias game_battler_item_test_tpm item_test
  def item_test(user, item)
    return false if item.for_dead_friend? != dead?
    return true if item.unlocked_tp_modes.size > 0
    return game_battler_item_test_tpm(user, item)
  end
  
  #--------------------------------------------------------------------------
  # alias method: item_user_effect
  #--------------------------------------------------------------------------
  alias game_battler_item_user_effect_tpm item_user_effect
  def item_user_effect(user, item)
    game_battler_item_user_effect_tpm(user, item)
    return unless actor?
    for mode in item.unlocked_tp_modes
      unlock_tp_mode(mode)
    end
  end
  
end # Game_Battler

#==============================================================================
# ■ Game_Actor
#==============================================================================

class Game_Actor < Game_Battler
  
  #--------------------------------------------------------------------------
  # alias method: setup
  #--------------------------------------------------------------------------
  alias game_actor_setup_tpm setup
  def setup(actor_id)
    game_actor_setup_tpm(actor_id)
    @tp_mode = actor.tp_mode
    @unlocked_tp_modes = actor.unlocked_tp_modes.clone
  end
  
  #--------------------------------------------------------------------------
  # new method: tp_mode
  #--------------------------------------------------------------------------
  def tp_mode
    @tp_mode = actor.tp_mode if @tp_mode.nil?
    return @tp_mode
  end
  
  #--------------------------------------------------------------------------
  # new method: unlocked_tp_modes
  #--------------------------------------------------------------------------
  def unlocked_tp_modes
    if @unlocked_tp_modes.empty?
      @unlocked_tp_modes = actor.unlocked_tp_modes.clone
    end
    return @unlocked_tp_modes.uniq
  end
  
  #--------------------------------------------------------------------------
  # new method: change_tp_mode
  #--------------------------------------------------------------------------
  def change_tp_mode(mode)
    @tp_mode = mode
    unlock_tp_mode(mode)
    self.tp = 0 if YEA::TP_MANAGER::CHANGE_TP_RESET
  end
  
  #--------------------------------------------------------------------------
  # new method: unlock_tp_mode
  #--------------------------------------------------------------------------
  def unlock_tp_mode(mode)
    if @unlocked_tp_modes.empty?
      @unlocked_tp_modes = actor.unlocked_tp_modes.clone
    end
    @unlocked_tp_modes.push(mode)
    @unlocked_tp_modes.uniq!
    @unlocked_tp_modes.sort!
  end
  
  #--------------------------------------------------------------------------
  # new method: remove_tp_mode
  #--------------------------------------------------------------------------
  def remove_tp_mode(mode)
    if @unlocked_tp_modes.empty?
      @unlocked_tp_modes = actor.unlocked_tp_modes.clone
    end
    @unlocked_tp_modes.delete(mode)
    @tp_mode = @unlocked_tp_modes[0] if @tp_mode == mode
  end
  
  #--------------------------------------------------------------------------
  # alias method: learn_skill
  #--------------------------------------------------------------------------
  alias game_actor_learn_skill_tpm learn_skill
  def learn_skill(skill_id)
    game_actor_learn_skill_tpm(skill_id)
    for mode in $data_skills[skill_id].learn_tp_modes
      unlock_tp_mode(mode)
    end
  end
  
end # Game_Actor

#==============================================================================
# ■ Game_Enemy
#==============================================================================

class Game_Enemy < Game_Battler
  
  #--------------------------------------------------------------------------
  # new method: tp_mode
  #--------------------------------------------------------------------------
  def tp_mode; return enemy.tp_mode; end
  
end # Game_Enemy
  
#==============================================================================
# ■ Game_Interpreter
#==============================================================================

class Game_Interpreter
  
  #--------------------------------------------------------------------------
  # new method: change_tp_mode
  #--------------------------------------------------------------------------
  def change_tp_mode(actor_id, mode)
    $game_actors[actor_id].change_tp_mode(mode)
  end
  
  #--------------------------------------------------------------------------
  # new method: unlock_tp_mode
  #--------------------------------------------------------------------------
  def unlock_tp_mode(actor_id, mode)
    $game_actors[actor_id].unlock_tp_mode(mode)
  end
  
  #--------------------------------------------------------------------------
  # new method: remove_tp_mode
  #--------------------------------------------------------------------------
  def remove_tp_mode(actor_id, mode)
    $game_actors[actor_id].remove_tp_mode(mode)
  end
  
  #--------------------------------------------------------------------------
  # new method: unlock_all_tp_modes
  #--------------------------------------------------------------------------
  def unlock_all_tp_modes(actor_id)
    for key in YEA::TP_MANAGER::TP_MODES
      $game_actors[actor_id].unlock_tp_mode(key[0])
    end
  end
  
  #--------------------------------------------------------------------------
  # new method: remove_all_tp_modes
  #--------------------------------------------------------------------------
  def remove_all_tp_modes(actor_id)
    for key in YEA::TP_MANAGER::TP_MODES
      next if key[0] == $data_actors[actor_id].tp_mode
      $game_actors[actor_id].remove_tp_mode(key[0])
    end
  end
  
end # Game_Interpreter

#==============================================================================
# ■ Window_SkillCommand
#==============================================================================

class Window_SkillCommand < Window_Command
  
  #--------------------------------------------------------------------------
  # alias method: make_command_list
  #--------------------------------------------------------------------------
  alias window_skillcommand_make_command_list_tpm make_command_list
  def make_command_list
    return unless @actor
    window_skillcommand_make_command_list_tpm
   
  end
  
  #--------------------------------------------------------------------------
  # new method: add_tp_modes
  #--------------------------------------------------------------------------
  def add_tp_modes
    return unless Switch.tp_mode
    add_command(YEA::TP_MANAGER::MENU_NAME, :tp_mode, true, :tp_mode)
  end
  
end # Window_SkillCommand

#==============================================================================
# ■ Window_SkillList
#==============================================================================

class Window_SkillList < Window_Selectable
  
  #--------------------------------------------------------------------------
  # new method: tp_mode?
  #--------------------------------------------------------------------------
  def tp_mode?; return @stype_id == :tp_mode; end
  
  #--------------------------------------------------------------------------
  # new method: tp_mode
  #--------------------------------------------------------------------------
  def tp_mode
    return nil unless tp_mode?
    return @data[index]
  end
  
  #--------------------------------------------------------------------------
  # alias method: make_item_list
  #--------------------------------------------------------------------------
  alias window_skilllist_make_item_list_tpm make_item_list
  def make_item_list
    if tp_mode?
      @data = @actor.unlocked_tp_modes
      @data.sort!
    else
      window_skilllist_make_item_list_tpm
    end
  end
  
  #--------------------------------------------------------------------------
  # alias method: draw_item
  #--------------------------------------------------------------------------
  alias window_skilllist_draw_item_tpm draw_item
  def draw_item(index)
    if tp_mode?
      draw_tp_mode_item(index)
    else
      window_skilllist_draw_item_tpm(index)
    end
  end
  
  #--------------------------------------------------------------------------
  # new method: draw_tp_mode_item
  #--------------------------------------------------------------------------
  def draw_tp_mode_item(index)
    tp_mode = @data[index]
    return unless YEA::TP_MANAGER::TP_MODES.include?(tp_mode)
    rect = item_rect(index)
    rect.width -= 4
    icon = YEA::TP_MANAGER::TP_MODES[tp_mode][:icon]
    draw_icon(icon, rect.x, rect.y)
    change_color(tp_mode_colour(tp_mode))
    name = YEA::TP_MANAGER::TP_MODES[tp_mode][:name]
    draw_text(rect.x+24, rect.y, rect.width-24, line_height, name)
  end
  
  #--------------------------------------------------------------------------
  # new method: tp_mode_colour
  #--------------------------------------------------------------------------
  def tp_mode_colour(mode)
    if @actor.tp_mode == mode
      return text_color(YEA::TP_MANAGER::EQUIPPED_COLOUR)
    else
      return normal_color
    end
  end
  
  #--------------------------------------------------------------------------
  # alias method: current_item_enabled?
  #--------------------------------------------------------------------------
  alias window_skilllist_current_item_enabled current_item_enabled?
  def current_item_enabled?
    if tp_mode?
      return @actor.tp_mode != @data[index]
    else
      return window_skilllist_current_item_enabled
    end
  end
  
  #--------------------------------------------------------------------------
  # alias method: update_help
  #--------------------------------------------------------------------------
  alias window_skilllist_update_help_tpm update_help
  def update_help
    if tp_mode?
      tp_mode = @data[index]
      if YEA::TP_MANAGER::TP_MODES.include?(tp_mode)
        text = YEA::TP_MANAGER::TP_MODES[tp_mode][:description]
      else
        text = ""
      end
      @help_window.set_text(text)
    else
      window_skilllist_update_help_tpm
    end
  end
  
end # Window_SkillList

#==============================================================================
# ■ Scene_Skill
#==============================================================================

class Scene_Skill < Scene_ItemBase
  
  #--------------------------------------------------------------------------
  # alias method: create_command_window
  #--------------------------------------------------------------------------
  alias scene_skill_create_command_window_tpm create_command_window
  def create_command_window
    scene_skill_create_command_window_tpm
    @command_window.set_handler(:tp_mode,    method(:command_skill))
  end
  
  #--------------------------------------------------------------------------
  # alias method: on_item_ok
  #--------------------------------------------------------------------------
  alias scene_skill_on_item_ok_tpm on_item_ok
  def on_item_ok
    if @item_window.tp_mode?
      Sound.play_equip
      user.change_tp_mode(@item_window.tp_mode)
      @status_window.refresh
      @item_window.refresh
      @item_window.activate
    else
      scene_skill_on_item_ok_tpm
    end
  end
  
end # Scene_Skill

#==============================================================================
#
# ▼ End of File
#
#==============================================================================

点评

[color=DarkOrange你没有说明怎么用,也没有范例,这啥意思。  发表于 2015-8-1 14:40
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-4 02:47

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表