设为首页收藏本站同能贴吧 切换语言 繁体中文
开启辅助访问 切换到窄版
扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 122|回复: 0

[转载发布] Tinys More Currencies (TMC)

[复制链接]
累计送礼:
0 个
累计收礼:
1 个
  • TA的每日心情
    开心
    2026-7-12 04:10
  • 签到天数: 209 天

    连续签到: 2 天

    [LV.7]常住居民III

    9071

    主题

    864

    回帖

    6万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    7
    卡币
    58883
    OK点
    16
    推广点
    0
    同能卷
    50
    积分
    68848

    灌水之王

    发表于 2026-8-3 09:43:54 | 显示全部楼层 |阅读模式
    Tinys More Currencies TMC

     

    Update : 1.2

    - IMPORTAN BUGFIX in 1.2! 1.1 had an error when exchanging currencies

     

    Expand your game by more then 1 currency!

     

    Script 1.2

    Spoiler#╔═───────────────────────────────────────────────────────────────────────────═#
    #║ Tinys More Currencies (Mainscript)
    #║ By TinyMine // english version
    #║
    #║  First Published/Erstveröffentlicht 12.04.2014
    #║
    #║  Visit : http://rpgmaker-vx-ace.de/ for further Information
    #║
    #║  Suggestions? Support? Bugs? Contact me in http://rpgmaker-vx-ace.de/
    #║
    #║  Credits required : TinyMine
    #║  Commercial Use?  : Contact me in http://rpgmaker-vx-ace.de/
    #║  Editable?        : Only by original editor TinyMine
    #║  
    #║  
    #║ Version : 1.2 // 04.09.2014
    #╚═───────────────────────────────────────────────────────────────────────────═#


    $imported ||= {}
    $imported[:TINY_TMC] = 1.2


    #╔═───────────────────────────────────────────────────────────────────────────═#
    #║ █ Content
    #║   
    #║    - Expand your game by more currencies.
    #║   
    #╚═───────────────────────────────────────────────────────────────────────────═#
    #╔═───────────────────────────────────────────────────────────────────────────═#
    #║ █ Updates
    #║   
    #║    ■ 1.2
    #║    - BUGFIX: Gamebreaker during exchanging currencies
    #║   
    #║    ■ 1.1
    #║    - Penalty support for exchange operations
    #║    - New command to check deactive currency stock.
    #║   
    #║    ■ 1.01
    #║    - Better float support
    #║   
    #║    ■ 1.0
    #║    - Release
    #║   
    #╚═───────────────────────────────────────────────────────────────────────────═#
    #╔═───────────────────────────────────────────────────────────────────────────═#
    #║ █ Addons
    #║   
    #║    ■ TMC Menu 1.01
    #║    - Show up all currencies in standard main menu in its gold winow.
    #║   
    #║    ■ TMC Exchanger 1.1
    #║    - Use a exchange office to exchange your currencies in a new scene.
    #║   
    #║    ■ TMC Enhance 1.01
    #║    - Extends graphical contents in TMC and its addons.
    #║   
    #╚═───────────────────────────────────────────────────────────────────────────═#
    #╔═───────────────────────────────────────────────────────────────────────────═#
    #║ █ Usage In Game
    #║ 
    #║    following Scriptcommands used:
    #║ 
    #║    ■ Giving the player money from non-active currency:
    #║ 
    #║        change_gold(Amount, ID)
    #║ 
    #║      The usual gold event command works with the currency which is active by
    #║      using the following command...
    #║ 
    #║    ■ To change the currency which is active for event commands:
    #║ 
    #║        change_currency(ID)
    #║ 
    #║      All known event commands work with the currency, that is active by this
    #║      command.
    #║ 
    #║    ■ To exchange one currency to another use:
    #║ 
    #║        exchange_gold(from ID, to ID, Amount, Penalty)
    #║ 
    #║      Exchange from ID to to ID and set the amount with Amount.
    #║      The Penalty is optional and is given by %. It is 100% by default.
    #║        
    #║    ■ To check if a currency is known:
    #║ 
    #║        currency_known?(ID)
    #║ 
    #║      A currency will be automatically known if one of the following commands
    #║      were used with a currency:
    #║      By "change_currency(...)" or "change_gold(...)" or "exchange_gold(...)"
    #║        
    #║    ■ To check a currency stock that is not active use:
    #║ 
    #║        gold?(ID)
    #║ 
    #║      Is the currency not known yet it will return 0.
    #║ 
    #╚═───────────────────────────────────────────────────────────────────────────═#
    module TINY
      module TMC
        CURRENCIES = {
    #╔═───────────────────────────────────────────────────────────────────────────═#
    #║ █ Editable Region **              Settings               ** Editable Region █
    #╚═───────────────────────────────────────────────────────────────────────────═#     
         
        # Here you create your own currencies:
        
        # Each currency can have its own value. A value of 1 represents the values
        # you use in your database prices. A Item with the Price 50 will cost 50
        # if the value of the used currency is 1. If the value would be 2 the item 
        # would cost only 25. If the value would be 0.5 the item would cost 100.
        
        # Sample for currency creation :
        # ID     =>    ["Name", "Shortcut", Value]
         
        :gold    =>    ["Gold", "G", 2],
        :silver  =>    ["Silver", "Sv", 1],
        :med     =>    ["Medicine", "Md", 5],
        :rocks   =>    ["Rocks", "R", 0.5]
         
         
    #═────────────────────────────────────────────────────────────────────────────═#     
        } # Do not touch
    #═────────────────────────────────────────────────────────────────────────────═#     
          




        # Define the currency that the Player knows from beginning of the game:
        START_CURRENCY = :silver
        


        
    #╔═───────────────────────────────────────────────────────────────────────────═#         
    #║ █ **                         END OF SETTINGS                             ** █
    #║ █ **               DO NOT TOUCH THE FOLLOWING CONTENTS                   ** █
    #╚═───────────────────────────────────────────────────────────────────────────═#
      end # TMC 
    #═=═=═════════════════════════════════════════════════════════════════════════=#
    end # TINY
    #╔═=══════════════════════════════════════════════════════════════════════════=═
    #║ █  OLD Module Vocab
    #╚═=═=════════════════════════════════════════════════════════════════════════=═
    module Vocab
      
      #╔────────────────────────────────────────────────────────────────────────────
      #║ ■  Return Shortcut By Currency
      #╚────────────────────────────────────────────────────────────────────────────
      def self.currency_unit(currency = $game_party.currency)
        $game_party.currency_shortcut(currency)
      end
      
    end # Vocab


    #╔═=══════════════════════════════════════════════════════════════════════════=═
    #║ █  OLD Class Game_Interpreter
    #╚═=═=════════════════════════════════════════════════════════════════════════=═
    class Game_Interpreter
      
      #╔────────────────────────────────────────────────────────────────────────────
      #║ ■  Gets Gold Amount Of Type
      #╚────────────────────────────────────────────────────────────────────────────
      def gold?(type = $game_party.currency)
        return 0 unless currency_known?(type)
        $game_party.gold(type)
      end
      
      #╔────────────────────────────────────────────────────────────────────────────
      #║ ■  Adds/Removes Gold
      #╚────────────────────────────────────────────────────────────────────────────
      def change_gold(amount, type = $game_party.currency)
        $game_party.gain_gold(amount, type)
      end
      
      #╔────────────────────────────────────────────────────────────────────────────
      #║ ■  Changes Currency
      #╚────────────────────────────────────────────────────────────────────────────
      def change_currency(type)
        $game_party.currency = type
      end
      
      #╔────────────────────────────────────────────────────────────────────────────
      #║ ■  Exchange Currency
      #╚────────────────────────────────────────────────────────────────────────────
      def exchange_gold(from, to, from_amount, penalty = 100)
        $game_party.exchange(from, to, from_amount, penalty)
      end
      
      #╔────────────────────────────────────────────────────────────────────────────
      #║ ■  Is Currency Known?
      #╚────────────────────────────────────────────────────────────────────────────
      def currency_known?(type)
        $game_party.gold_hash.keys.include?(type)
      end
      
    end # Game_Interpreter


    #╔═=══════════════════════════════════════════════════════════════════════════=═
    #║ █  OLD Class Game_Party
    #╚═=═=════════════════════════════════════════════════════════════════════════=═
    class Game_Party
      
      #╔────────────────────────────────────────────────────────────────────────────
      #║ ■  Sets New Instances : @gold, @currency
      #╚────────────────────────────────────────────────────────────────────────────
      alias_method :initialize_tmc_23829                                ,:initialize
      def initialize
        initialize_tmc_23829
        @gold = {}
        @currency = TINY::TMC::START_CURRENCY
        set_currency
      end
      
      #╔────────────────────────────────────────────────────────────────────────────
      #║ ■  Sets Currency In @gold Hash
      #╚────────────────────────────────────────────────────────────────────────────
      def set_currency(type = @currency, reset = false)
        return unless @gold[type].nil? || reset
        @gold[type] = 0
      end
      
      #╔────────────────────────────────────────────────────────────────────────────
      #║ ■  Empties A Value Of @gold Hash
      #╚────────────────────────────────────────────────────────────────────────────
      def clear_currency(type = @currency)
        @gold[type] = 0
      end
      
      #╔────────────────────────────────────────────────────────────────────────────
      #║ ■  Deletes A Key Of @gold Hash
      #╚────────────────────────────────────────────────────────────────────────────
      def delete_currency(type = @currency)
        @gold.delete(type)
      end
        
      #╔────────────────────────────────────────────────────────────────────────────
      #║ ■  New Argument For Old Method : type
      #╚────────────────────────────────────────────────────────────────────────────
      def gain_gold(amount, type = @currency)
        @gold[type].nil? ? base = 0 : base = @gold[type]
        @gold[type] = [[base + amount, 0].max, max_gold].min
      end
      
      #╔────────────────────────────────────────────────────────────────────────────
      #║ ■  New Argument For Old Method : type
      #╚────────────────────────────────────────────────────────────────────────────
      def lose_gold(amount, type = @currency)
        gain_gold(-amount, type)
      end
      
      #╔────────────────────────────────────────────────────────────────────────────
      #║ ■  New Argument For Old Method : type
      #╚────────────────────────────────────────────────────────────────────────────
      def gold(type = @currency)
        return @gold[type]
      end
      
      #╔────────────────────────────────────────────────────────────────────────────
      #║ ■  Gets @gold Hash instead of single value
      #╚────────────────────────────────────────────────────────────────────────────
      def gold_hash
        return @gold
      end
      
      #╔────────────────────────────────────────────────────────────────────────────
      #║ ■  Sets @currency By Type; Return Default If Type Is Not Existent
      #╚────────────────────────────────────────────────────────────────────────────
      def currency=(type)
        @currency = type 
        set_currency
      end
      
      #╔────────────────────────────────────────────────────────────────────────────
      #║ ■  Gets @currency
      #╚────────────────────────────────────────────────────────────────────────────
      def currency
        return @currency
      end
      
      #╔────────────────────────────────────────────────────────────────────────────
      #║ ■  Ask If Player Has Enough Money
      #╚────────────────────────────────────────────────────────────────────────────  
      def exchangeable?(type, amount)
        @gold[type] >= amount
      end
      
      #╔────────────────────────────────────────────────────────────────────────────
      #║ ■  Gets Currency Name
      #╚──────────────────────────────────────────────────────────────────────────── 
      def currency_name(currency)
        TINY::TMC::CURRENCIES[currency][0]
      end
      
      #╔────────────────────────────────────────────────────────────────────────────
      #║ ■  Gets Currency Shortcut
      #╚──────────────────────────────────────────────────────────────────────────── 
      def currency_shortcut(currency)
        TINY::TMC::CURRENCIES[currency][1]
      end
      
      #╔────────────────────────────────────────────────────────────────────────────
      #║ ■  Gets Currency Value
      #╚──────────────────────────────────────────────────────────────────────────── 
      def currency_value(currency)
        TINY::TMC::CURRENCIES[currency][2]
      end
      
      #╔────────────────────────────────────────────────────────────────────────────
      #║ ■  Gets Exchange Result
      #╚──────────────────────────────────────────────────────────────────────────── 
      def exchange_result(player, other, amount, penalty = 100)
        return currency_value(player) * amount if player == other
        result = ((currency_value(player) * amount) / currency_value(other) * (penalty/100.0)).to_i
        result
      end
      
      #╔────────────────────────────────────────────────────────────────────────────
      #║ ■  Exchanging A Currency To Another
      #╚────────────────────────────────────────────────────────────────────────────
      def exchange(player, other, amount, penalty = 100)
        return unless exchangeable?(player, amount)
        set_currency(player)
        set_currency(other)
        @gold[player] -= amount
        @gold[other] += exchange_result(player, other, amount, penalty)
      end
        
    end # Game_Party


    #╔═=══════════════════════════════════════════════════════════════════════════=═
    #║ █  OLD Class RPG::Enemy
    #╚═=═=════════════════════════════════════════════════════════════════════════=═
    class RPG::Enemy
      
      #╔────────────────────────────────────────────────────────────────────────────
      #║ ■  Multiply Bounty By Current Currency
      #╚────────────────────────────────────────────────────────────────────────────  
      def gold
        (@gold / $game_party.currency_value($game_party.currency)).to_i
      end
      
    end # RPG::Enemy


    #╔═=══════════════════════════════════════════════════════════════════════════=═
    #║ █  OLD Class RPG::Item
    #╚═=═=════════════════════════════════════════════════════════════════════════=═
    class RPG::Item
      
      #╔────────────────────────────────────────────────────────────────────────────
      #║ ■  Multiply Price By Current Currency
      #╚────────────────────────────────────────────────────────────────────────────   
      def price
        (@price / $game_party.currency_value($game_party.currency)).to_i
      end
      
    end # RPG::Item


    #╔═=══════════════════════════════════════════════════════════════════════════=═
    #║ █  OLD Class RPG::EquipItem 
    #╚═=═=════════════════════════════════════════════════════════════════════════=═
    class RPG::EquipItem 
      
      #╔────────────────────────────────────────────────────────────────────────────
      #║ ■  Multiply Price By Current Currency
      #╚────────────────────────────────────────────────────────────────────────────   
      def price
        (@price / $game_party.currency_value($game_party.currency)).to_i
      end
      
    end # RPG::EquipItem


    #╔═───────────────────────────────────────────────────────────────────────────═╗
    #╠══════════════════════════════▲ END OF SCRIPT ▲══════════════════════════════╣
    #╚═───────────────────────────────────────────────────────────────────────────═╝

     



     

    Update :

     

    ■ 1.2


    -BUGFIX: Gamebreaker during exchanging currencies

     

    ■ 1.1

      - Penalty support for exchange operations

      - New command to check deactive currency stock.


     


     ■ 1.01

      - Better float support


     

    Known Issues :

     



     

    Planned Features : Let me Know

     



     

    ADDONs

     

    TMC Exchanger 1.2


     


    █ Content

       

    - Expand the TMC Mainscript, to use a exchange office scene.


     

    Spoiler                Code:       
    1. #╔═───────────────────────────────────────────────────────────────────────────═#
    2. #║ TMC Exchanger
    3. #║ By TinyMine // english version
    4. #║
    5. #║  First Published/Erstveröffentlicht 12.04.2014
    6. #║
    7. #║  Visit : [URL="http://rpgmaker-vx-ace.de/"]http://rpgmaker-vx-ace.de/[/URL] for further Information
    8. #║
    9. #║  Suggestions? Support? Bugs? Contact me in [URL="http://rpgmaker-vx-ace.de/"]http://rpgmaker-vx-ace.de/[/URL]
    10. #║
    11. #║  Credits required : TinyMine
    12. #║  Commercial Use?  : Contact me in [URL="http://rpgmaker-vx-ace.de/"]http://rpgmaker-vx-ace.de/[/URL]
    13. #║  Editable?        : Only by original editor TinyMine
    14. #║  
    15. #║  
    16. #║ Version : 1.2 // 04.09.2014
    17. #╚═───────────────────────────────────────────────────────────────────────────═#
    18. #╔═───────────────────────────────────────────────────────────────────────────═#
    19. #║ █ Content
    20. #║   
    21. #║    - Expand the TMC Mainscript, to use a exchange office scene.
    22. #║   
    23. #╚═───────────────────────────────────────────────────────────────────────────═#
    24. #╔═───────────────────────────────────────────────────────────────────────────═#
    25. #║ █ Updates
    26. #║   
    27. #║    ■ 1.2
    28. #║    - Currencies, the player do not know - will not occur in Exchange scene;
    29. #║      even the exchanger could trade with it by command
    30. #║   
    31. #║    ■ 1.1
    32. #║    - A Penalty can be given to a exchange office
    33. #║    - The exchange rate will be shown up before exchange confirmation
    34. #║   
    35. #║    ■ 1.01
    36. #║    - Versionssupport extended
    37. #║   
    38. #║    ■ 1.0
    39. #║    - Release
    40. #║   
    41. #╚═───────────────────────────────────────────────────────────────────────────═#
    42. #╔═───────────────────────────────────────────────────────────────────────────═#
    43. #║ █ Usage In Game
    44. #║ 
    45. #║    following Scriptcommands used:
    46. #║ 
    47. #║    ■ Opening up the exchange office scene:
    48. #║ 
    49. #║        open_exchange(IDs, Penalty)
    50. #║ 
    51. #║      The exchange office only exchanges currencies, that are given by command.
    52. #║      The Penalty is optional and 100% by default.
    53. #║      f.e.: open_exchange(:gold, :silver, 50)
    54. #║      Would call a exchange office that trades gold and silver for a penalty
    55. #║      of 50%. What a robbery...
    56. #║ 
    57. #╚═───────────────────────────────────────────────────────────────────────────═#
    58. if $imported[:TINY_TMC] >= 1.2
    59.    $imported[:TINY_TMC_Exch] = 1.2
    60. module TINY
    61.   module TMC
    62. #╔═───────────────────────────────────────────────────────────────────────────═#
    63. #║ █ Editable Region **              Settings               ** Editable Region █
    64. #╚═───────────────────────────────────────────────────────────────────────────═#     
    65.      
    66.    # Edit Vocabulary for the scene.
    67.    
    68.     # ■ Player List
    69.     VOCAB_PLAYER   = "Which currency you would like to exchange?"   
    70.     
    71.     # ■ Anzahl Fenster
    72.     VOCAB_AMOUNT   = "Amount?"  
    73.     VOCAB_NUMBER   = "How much you would like to exchange?"  
    74.     
    75.     # ■ Händler Liste
    76.     VOCAB_EXCHANGE = "To which currency you want to exchange?"
    77.     
    78.     # ■ Abschluss Fenster
    79.     VOCAB_QUESTION = "Exchange?"
    80.     VOCAB_TO       = "to"
    81.     VOCAB_TRADE    = "exchanging?"
    82.     
    83.     # ■ Kurs Fenster
    84.     VOCAB_RATE     = "Rate"
    85.     
    86. #╔═───────────────────────────────────────────────────────────────────────────═#         
    87. #║ █ **                         END OF SETTINGS                             ** █
    88. #║ █ **               DO NOT TOUCH THE FOLLOWING CONTENTS                   ** █
    89. #╚═───────────────────────────────────────────────────────────────────────────═#
    90.   end # TMC 
    91. end # TINY
    92. #╔═=══════════════════════════════════════════════════════════════════════════=═
    93. #║ █  OLD Module SceneManager
    94. #╚═=═=════════════════════════════════════════════════════════════════════════=═
    95. module SceneManager
    96.   
    97.   #╔────────────────────────────────────────────────────────────────────────────
    98.   #║ ■  Call A Scene With Arguments
    99.   #╚────────────────────────────────────────────────────────────────────────────
    100.   def self.call_args(scene_class, *args)
    101.     @stack.push(@scene)
    102.     @scene = scene_class.new(*args)
    103.   end
    104.   
    105. end # SceneManager
    106. #╔═=══════════════════════════════════════════════════════════════════════════=═
    107. #║ █  OLD Class Game_Interpreter
    108. #╚═=═=════════════════════════════════════════════════════════════════════════=═
    109. class Game_Interpreter
    110.   
    111.   #╔────────────────────────────────────────────────────────────────────────────
    112.   #║ ■  Open Scene_Exchange
    113.   #╚────────────────────────────────────────────────────────────────────────────  
    114.   def open_exchange(*currencies)
    115.     SceneManager.call_args(Scene_Exchange, *currencies)
    116.   end
    117.   
    118. end # Game_Interpreter
    119. #╔═=══════════════════════════════════════════════════════════════════════════=═
    120. #║ █  NEW Class Window_More_Gold_Selectable
    121. #╚═=═=════════════════════════════════════════════════════════════════════════=═
    122. class Window_More_Gold_Selectable < Window_Selectable
    123.   
    124.   #╔────────────────────────────────────────────────────────────────────────────
    125.   #║ ■  Initializing Window
    126.   #╚────────────────────────────────────────────────────────────────────────────
    127.   def initialize(currencies, version = :player)
    128.     @currencies = currencies
    129.     @version = version
    130.     super(0, 0, window_width, fitting_height(currencies.size))
    131.     refresh
    132.   end
    133.   
    134.   #╔────────────────────────────────────────────────────────────────────────────
    135.   #║ ■  Get Width
    136.   #╚────────────────────────────────────────────────────────────────────────────
    137.   def window_width
    138.     return 160
    139.   end  
    140.   
    141.   #╔────────────────────────────────────────────────────────────────────────────
    142.   #║ ■  Get Selectable Items
    143.   #╚────────────────────────────────────────────────────────────────────────────  
    144.   def item_max
    145.     return @currencies.size
    146.   end
    147.   
    148.   #╔────────────────────────────────────────────────────────────────────────────
    149.   #║ ■  Get Key Of Contents By Index
    150.   #╚────────────────────────────────────────────────────────────────────────────  
    151.   def content_index
    152.     return @currencies[@index]
    153.   end
    154.   
    155.   #╔────────────────────────────────────────────────────────────────────────────
    156.   #║ ■  Refresh Contents
    157.   #╚────────────────────────────────────────────────────────────────────────────
    158.   def refresh
    159.     contents.clear
    160.     i = 0
    161.     @currencies.each { |cur|
    162.       next if TINY::TMC::CURRENCIES[cur].nil?
    163.       info = TINY::TMC::CURRENCIES[cur]
    164.       part = @version == :player ? $game_party.gold(cur) : info[0]
    165.       draw_currency_value(part, " #{info[1]}", 4, 24 * i, contents.width - 8)
    166.       i += 1
    167.     }
    168.   end
    169.   
    170.   #╔────────────────────────────────────────────────────────────────────────────
    171.   #║ ■  Open Window
    172.   #╚────────────────────────────────────────────────────────────────────────────
    173.   def open
    174.     refresh
    175.     super
    176.   end
    177.   
    178. end # Window_More_Gold_Selectable
    179. #╔═=══════════════════════════════════════════════════════════════════════════=═
    180. #║ █  NEW Class Window_Gold_Number
    181. #╚═=═=════════════════════════════════════════════════════════════════════════=═
    182. class Window_Gold_Number < Window_Selectable
    183.   
    184.   #╔────────────────────────────────────────────────────────────────────────────
    185.   #║ ■  Initializes Window
    186.   #╚────────────────────────────────────────────────────────────────────────────
    187.   def initialize(x, y)
    188.     super(x, y, window_width, fitting_height(2))
    189.     @number = 0
    190.     @index = 1
    191.   end 
    192.   
    193.   #╔────────────────────────────────────────────────────────────────────────────
    194.   #║ ■  Gets Width
    195.   #╚────────────────────────────────────────────────────────────────────────────  
    196.   def window_width
    197.     return 224
    198.   end  
    199.   
    200.   #╔────────────────────────────────────────────────────────────────────────────
    201.   #║ ■  Gets Selectable Items
    202.   #╚────────────────────────────────────────────────────────────────────────────  
    203.   def item_max
    204.     return 1
    205.   end
    206.   
    207.   #╔────────────────────────────────────────────────────────────────────────────
    208.   #║ ■  Sets Used Items
    209.   #╚────────────────────────────────────────────────────────────────────────────  
    210.   def set_item(cur)
    211.     @item = cur
    212.     @number = 0
    213.     refresh
    214.   end
    215.   
    216.   #╔────────────────────────────────────────────────────────────────────────────
    217.   #║ ■  Gets Chosen Amount
    218.   #╚────────────────────────────────────────────────────────────────────────────  
    219.   def number
    220.     return @number
    221.   end
    222.   
    223.   #╔────────────────────────────────────────────────────────────────────────────
    224.   #║ ■  Gets Modulator
    225.   #╚────────────────────────────────────────────────────────────────────────────  
    226.   def max_exchange
    227.     $game_party.gold(@item) + 1
    228.   end
    229.   
    230.   #╔────────────────────────────────────────────────────────────────────────────
    231.   #║ ■  Handle Movement
    232.   #╚────────────────────────────────────────────────────────────────────────────  
    233.   def process_cursor_move
    234.     return unless active
    235.     if Input.repeat?(:UP) || Input.repeat?(:DOWN) || Input.repeat?(:RIGHT) || Input.repeat?(:LEFT)
    236.       return if @item_max == 0
    237.       @number = (@number + 1)   % max_exchange if Input.repeat?(:UP)
    238.       @number = (@number - 1)   % max_exchange if Input.repeat?(:DOWN)
    239.       @number = (@number + 10)  % max_exchange if Input.repeat?(:RIGHT)
    240.       @number = (@number - 10)  % max_exchange if Input.repeat?(:LEFT)
    241.       refresh
    242.     end
    243.   end
    244.   
    245.   #╔────────────────────────────────────────────────────────────────────────────
    246.   #║ ■  Refresh Content
    247.   #╚────────────────────────────────────────────────────────────────────────────  
    248.   def refresh
    249.     contents.clear
    250.     draw_text(0, 0, contents_width, contents_height/2, TINY::TMC::VOCAB_AMOUNT, 1)
    251.     draw_text(0, contents_height/2, contents_width, contents_height/2, "#{@number}", 1)
    252.   end
    253.   
    254. end # Window_Gold_Number
    255. #╔═=══════════════════════════════════════════════════════════════════════════=═
    256. #║ █  NEW Class Window_Conclude
    257. #╚═=═=════════════════════════════════════════════════════════════════════════=═
    258. class Window_Conclude < Window_Selectable
    259.   
    260.   #╔────────────────────────────────────────────────────────────────────────────
    261.   #║ ■  Initializes Window
    262.   #╚────────────────────────────────────────────────────────────────────────────  
    263.   def initialize(x, y, w)
    264.     super(x, y, w, fitting_height(5))
    265.   end
    266.   
    267.   #╔────────────────────────────────────────────────────────────────────────────
    268.   #║ ■  Sets Used Items
    269.   #╚────────────────────────────────────────────────────────────────────────────   
    270.   def set_item(from, to, amount, penalty)
    271.     @from = from
    272.     @to = to
    273.     @amount = amount
    274.     @penalty = penalty
    275.     refresh
    276.   end
    277.   
    278.   #╔────────────────────────────────────────────────────────────────────────────
    279.   #║ ■  Refreshes Conclude Window
    280.   #╚────────────────────────────────────────────────────────────────────────────   
    281.   def refresh
    282.     contents.clear
    283.     text = TINY::TMC::VOCAB_QUESTION
    284.     draw_text(0, 0, contents.width, 24, text, 1)
    285.     calc = "#{@amount} #{$game_party.currency_name(@from)}"
    286.     contents.font.color = system_color
    287.     draw_text(0, 24, contents.width, 24, calc, 1)
    288.     contents.font.color = normal_color
    289.     calc = TINY::TMC::VOCAB_TO
    290.     draw_text(0, 48, contents.width, 24, calc, 1)
    291.     calc = "#{exchange_result} #{$game_party.currency_name(@to)}"
    292.     contents.font.color = system_color
    293.     draw_text(0, 72, contents.width, 24, calc, 1)
    294.     contents.font.color = normal_color
    295.     calc = TINY::TMC::VOCAB_TRADE
    296.     draw_text(0, 96, contents.width, 24, calc, 1)
    297.   end 
    298.   
    299.   #╔────────────────────────────────────────────────────────────────────────────
    300.   #║ ■  Get Exchange Result
    301.   #╚────────────────────────────────────────────────────────────────────────────  
    302.   def exchange_result
    303.     $game_party.exchange_result(@from, @to, @amount, @penalty)
    304.   end
    305.   
    306. end # Window_Conclude
    307. #╔═=══════════════════════════════════════════════════════════════════════════=═
    308. #║ █  NEW Class Scene_Exchange
    309. #╚═=═=════════════════════════════════════════════════════════════════════════=═
    310. class Scene_Exchange < Scene_MenuBase
    311.   
    312.   #╔────────────────────────────────────────────────────────────────────────────
    313.   #║ ■  Initializes Scene
    314.   #╚────────────────────────────────────────────────────────────────────────────  
    315.   def initialize(*args)
    316.     @currencies = *args
    317.     @penalty = 100 
    318.     set_vendor_properties
    319.   end
    320.   
    321.   #╔────────────────────────────────────────────────────────────────────────────
    322.   #║ ■  Sets the config as traded currencies or penalty of the vendor
    323.   #╚──────────────────────────────────────────────────────────────────────────── 
    324.   def set_vendor_properties
    325.     @currencies.sort.each { |e|
    326.       set_penalty(amount) if e.is_a?(Integer)
    327.       @currencies.delete(e) if e.is_a?(Symbol) && !$game_party.gold_hash.keys.include?(e)
    328.     }
    329.   end
    330.   
    331.   #╔────────────────────────────────────────────────────────────────────────────
    332.   #║ ■  Stes penalty if given in *args to scene
    333.   #╚────────────────────────────────────────────────────────────────────────────
    334.   def set_penalty(amount)
    335.     @penalty = e 
    336.     @currencies.delete(e)
    337.   end
    338.   
    339.   #╔────────────────────────────────────────────────────────────────────────────
    340.   #║ ■  Starts Scene
    341.   #╚────────────────────────────────────────────────────────────────────────────  
    342.   def start
    343.     super
    344.     create_windows
    345.     create_handler
    346.     select_window
    347.   end
    348.   
    349.   #╔────────────────────────────────────────────────────────────────────────────
    350.   #║ ■  Create All Windows
    351.   #╚────────────────────────────────────────────────────────────────────────────  
    352.   def create_windows
    353.     @player_window = Window_More_Gold_Selectable.new($game_party.gold_hash.keys)
    354.     @player_window.x = 0
    355.     @player_window.y = 0
    356.     #--
    357.     @exchanger_window = Window_More_Gold_Selectable.new(@currencies, :other)
    358.     @exchanger_window.x = Graphics.width - @exchanger_window.width
    359.     @exchanger_window.y = 0
    360.     #--
    361.     @number_window = Window_Gold_Number.new(160, 0)
    362.     @number_window.hide
    363.     @number_window.close
    364.     #--
    365.     @text_window = Window_Base.new(0, Graphics.height-72, Graphics.width, 72)
    366.     refresh_text_window(TINY::TMC::VOCAB_PLAYER)
    367.     #--
    368.     @rate_window = Window_Base.new(160, 72, 224, 48)
    369.     @rate_window.hide
    370.     @rate_window.close
    371.     #--
    372.     @conclude_window = Window_Conclude.new(160, 120, 224)
    373.     @conclude_window.hide
    374.     @conclude_window.close
    375.   end
    376.   
    377.   #╔────────────────────────────────────────────────────────────────────────────
    378.   #║ ■  Set All Window Handler
    379.   #╚────────────────────────────────────────────────────────────────────────────   
    380.   def create_handler
    381.     @player_window.set_handler(:ok,       method(:activate_number))
    382.     @exchanger_window.set_handler(:ok,    method(:activate_conclude))
    383.     @number_window.set_handler(:ok,       method(:activate_exchange))
    384.     @conclude_window.set_handler(:ok,     method(:exchange))
    385.     @player_window.set_handler(:cancel,   method(:return_scene))
    386.     @exchanger_window.set_handler(:cancel,method(:activate_number))
    387.     @number_window.set_handler(:cancel,   method(:activate_player))
    388.     @conclude_window.set_handler(:cancel, method(:activate_exchange))
    389.   end
    390.   
    391.   #╔────────────────────────────────────────────────────────────────────────────
    392.   #║ ■  Refreshes Text Window
    393.   #╚────────────────────────────────────────────────────────────────────────────   
    394.   def refresh_text_window(text)
    395.     @text_window.contents.clear
    396.     @text_window.draw_text_ex(0, 0, text)
    397.   end  
    398.   
    399.   #╔────────────────────────────────────────────────────────────────────────────
    400.   #║ ■  Refreshes Rate Window
    401.   #╚────────────────────────────────────────────────────────────────────────────   
    402.   def refresh_rate_window
    403.     @rate_window.contents.clear
    404.     from = @player_window.content_index
    405.     to = @exchanger_window.content_index
    406.     @rate_window.draw_text_ex(0, 0, get_rate_text(from, to))
    407.   end
    408.   
    409.   #╔────────────────────────────────────────────────────────────────────────────
    410.   #║ ■  Gets Exchange Rate In A String
    411.   #╚────────────────────────────────────────────────────────────────────────────   
    412.   def get_rate_text(from, to)
    413.     from == to ? pen = 1 : pen = penalty
    414.     "#{TINY::TMC::VOCAB_RATE}:\\C[16] #{(exchange_value(to) * 100).to_i} #{$game_party.currency_shortcut(from)} \\C[0]-\\C[16] #{(exchange_value(from) * pen * 100).to_i} #{$game_party.currency_shortcut(to)}"
    415.   end
    416.   
    417.   #╔────────────────────────────────────────────────────────────────────────────
    418.   #║ ■  Gets Penalty For Calculation
    419.   #╚────────────────────────────────────────────────────────────────────────────    
    420.   def penalty
    421.     @penalty/100.0
    422.   end
    423.   
    424.   #╔────────────────────────────────────────────────────────────────────────────
    425.   #║ ■  Gets Currency Value
    426.   #╚────────────────────────────────────────────────────────────────────────────  
    427.   def exchange_value(currency)
    428.     $game_party.currency_value(currency)
    429.   end
    430.   
    431.   #╔────────────────────────────────────────────────────────────────────────────
    432.   #║ ■  Select At Start
    433.   #╚────────────────────────────────────────────────────────────────────────────   
    434.   def select_window
    435.     @player_window.activate
    436.     @player_window.select(0)
    437.   end
    438.   
    439.   #╔────────────────────────────────────────────────────────────────────────────
    440.   #║ ■  Activate Player List
    441.   #╚────────────────────────────────────────────────────────────────────────────   
    442.   def activate_player
    443.     refresh_text_window(TINY::TMC::VOCAB_PLAYER)
    444.     @number_window.close
    445.     @exchanger_window.unselect
    446.     @player_window.activate
    447.   end
    448.   
    449.   #╔────────────────────────────────────────────────────────────────────────────
    450.   #║ ■  Activate Exchange List
    451.   #╚────────────────────────────────────────────────────────────────────────────   
    452.   def activate_exchange
    453.     refresh_text_window(TINY::TMC::VOCAB_EXCHANGE)
    454.     @conclude_window.close
    455.     @rate_window.close
    456.     @exchanger_window.activate
    457.     @exchanger_window.select(0)
    458.   end
    459.   
    460.   #╔────────────────────────────────────────────────────────────────────────────
    461.   #║ ■  Activate Conclude Window
    462.   #╚────────────────────────────────────────────────────────────────────────────  
    463.   def activate_conclude
    464.     @conclude_window.set_item(@player_window.content_index, @exchanger_window.content_index,
    465.     @number_window.number, @penalty)
    466.     refresh_rate_window
    467.     @rate_window.show
    468.     @rate_window.open
    469.     @conclude_window.refresh
    470.     @conclude_window.show
    471.     @conclude_window.open
    472.     @conclude_window.activate
    473.   end
    474.   
    475.   #╔────────────────────────────────────────────────────────────────────────────
    476.   #║ ■  Activate Number Window
    477.   #╚────────────────────────────────────────────────────────────────────────────  
    478.   def activate_number
    479.     refresh_text_window(TINY::TMC::VOCAB_NUMBER)
    480.     @exchanger_window.unselect
    481.     @number_window.set_item(@player_window.content_index)
    482.     @number_window.show
    483.     @number_window.open
    484.     @number_window.activate
    485.   end
    486.   
    487.   #╔────────────────────────────────────────────────────────────────────────────
    488.   #║ ■  Exchange Chosen Values
    489.   #╚────────────────────────────────────────────────────────────────────────────  
    490.   def exchange
    491.     $game_party.exchange(@player_window.content_index, @exchanger_window.content_index, 
    492.     @number_window.number, @penalty)
    493.     @player_window.refresh
    494.     @conclude_window.close
    495.     @rate_window.close
    496.     activate_player
    497.   end
    498.   
    499. end # Scene_Exchange
    500. else 
    501.   msgbox_p("TMC Menu will not run without TMC Mainscript 1.2 or higher")
    502. end
    503. #╔═───────────────────────────────────────────────────────────────────────────═╗
    504. #╠══════════════════════════════▲ END OF SCRIPT ▲══════════════════════════════╣
    505. #╚═───────────────────────────────────────────────────────────────────────────═╝
    复制代码





    Screens:

    Spoiler








     

    TMC Menu


     


     █ Content

     


      - Expand the TMC Mainscript, that all currencies will be shown in the

        standard main menu gold window, as soon as they are known.



     

    Spoiler                Code:       
    1. #╔═───────────────────────────────────────────────────────────────────────────═#
    2. #║ TMC Menu
    3. #║ By TinyMine // english version
    4. #║
    5. #║  First Published/Erstveröffentlicht 12.04.2014
    6. #║
    7. #║  Visit : [URL="http://rpgmaker-vx-ace.de/"]http://rpgmaker-vx-ace.de/[/URL] for further Information
    8. #║
    9. #║  Suggestions? Support? Bugs? Contact me in [URL="http://rpgmaker-vx-ace.de/"]http://rpgmaker-vx-ace.de/[/URL]
    10. #║
    11. #║  Credits required : TinyMine
    12. #║  Commercial Use?  : Contact me in [URL="http://rpgmaker-vx-ace.de/"]http://rpgmaker-vx-ace.de/[/URL]
    13. #║  Editable?        : Only by original editor TinyMine
    14. #║  
    15. #║  
    16. #║ Version : 1.01 // 12.04.2014
    17. #╚═───────────────────────────────────────────────────────────────────────────═#
    18. #╔═───────────────────────────────────────────────────────────────────────────═#
    19. #║ █ Content
    20. #║   
    21. #║    - Expand the TMC Mainscript, that all currencies will be shown in the
    22. #║      standard main menu gold window, as soon as they are known.
    23. #║   
    24. #╚═───────────────────────────────────────────────────────────────────────────═#
    25. #╔═───────────────────────────────────────────────────────────────────────────═#
    26. #║ █ Updates
    27. #║   
    28. #║    ■ 1.01
    29. #║    - Versionsupport extended
    30. #║   
    31. #║    ■ 1.0
    32. #║    - Release
    33. #║   
    34. #╚═───────────────────────────────────────────────────────────────────────────═#
    35. if $imported[:TINY_TMC] >= 1.0
    36.    $imported[:TINY_TMC_Menu] = 1.01
    37. #╔═=══════════════════════════════════════════════════════════════════════════=═
    38. #║ █  NEW Class Window_More_Gold
    39. #╚═=═=════════════════════════════════════════════════════════════════════════=═
    40. class Window_More_Gold < Window_Base
    41.   
    42.   #╔────────────────────────────────────────────────────────────────────────────
    43.   #║ ■  Initializing Window
    44.   #╚────────────────────────────────────────────────────────────────────────────
    45.   def initialize
    46.     super(0, 0, window_width, fitting_height($game_party.gold_hash.keys.size))
    47.     refresh
    48.   end
    49.   
    50.   #╔────────────────────────────────────────────────────────────────────────────
    51.   #║ ■  Get Width
    52.   #╚────────────────────────────────────────────────────────────────────────────
    53.   def window_width
    54.     return 160
    55.   end
    56.   
    57.   #╔────────────────────────────────────────────────────────────────────────────
    58.   #║ ■  Refresh Contents
    59.   #╚────────────────────────────────────────────────────────────────────────────
    60.   def refresh
    61.     contents.clear
    62.     i = 0
    63.     $game_party.gold_hash.each { |key, val|
    64.       info = TINY::TMC::CURRENCIES[key]
    65.       draw_currency_value(val, info[1], 4, 24 * i, contents.width - 8)
    66.       i += 1
    67.     }
    68.   end
    69.   
    70.   #╔────────────────────────────────────────────────────────────────────────────
    71.   #║ ■  Open Window
    72.   #╚────────────────────────────────────────────────────────────────────────────
    73.   def open
    74.     refresh
    75.     super
    76.   end
    77.   
    78. end # Window_More_Gold
    79. #╔═=══════════════════════════════════════════════════════════════════════════=═
    80. #║ █  OLD Class Scene_Menu
    81. #╚═=═=════════════════════════════════════════════════════════════════════════=═
    82. class Scene_Menu
    83.   
    84.   #╔────────────────────────────────────────────────────────────────────────────
    85.   #║ ■  New Gold Window
    86.   #╚────────────────────────────────────────────────────────────────────────────
    87.   def create_gold_window
    88.     @gold_window = Window_More_Gold.new
    89.     @gold_window.x = 0
    90.     @gold_window.y = Graphics.height - @gold_window.height
    91.   end
    92.   
    93. end # Scene_Menu
    94. else 
    95.   msgbox_p("TMC Menu will not run without TMC Mainscript 1.0 or higher")
    96. end
    97. #╔═───────────────────────────────────────────────────────────────────────────═╗
    98. #╠══════════════════════════════▲ END OF SCRIPT ▲══════════════════════════════╣
    99. #╚═───────────────────────────────────────────────────────────────────────────═╝
    复制代码





     

    Screens:

    Spoiler








     

    TMC Enhance


     


     █ Content

       

     - Expand the TMC Mainscript, for new enhancements like using icons and

       more in future version.   


     

    Spoiler                Code:       
    1. #╔═───────────────────────────────────────────────────────────────────────────═#
    2. #║ TMC Enhance
    3. #║ By TinyMine // english version
    4. #║
    5. #║  First Published/Erstveröffentlicht 12.04.2014
    6. #║
    7. #║  Visit : [URL="http://rpgmaker-vx-ace.de/"]http://rpgmaker-vx-ace.de/[/URL] for further Information
    8. #║
    9. #║  Suggestions? Support? Bugs? Contact me in [URL="http://rpgmaker-vx-ace.de/"]http://rpgmaker-vx-ace.de/[/URL]
    10. #║
    11. #║  Credits required : TinyMine
    12. #║  Commercial Use?  : Contact me in [URL="http://rpgmaker-vx-ace.de/"]http://rpgmaker-vx-ace.de/[/URL]
    13. #║  Editable?        : Only by original editor TinyMine
    14. #║  
    15. #║  
    16. #║ Version : 1.01 // 13.04.2014
    17. #╚═───────────────────────────────────────────────────────────────────────────═#
    18. #╔═───────────────────────────────────────────────────────────────────────────═#
    19. #║ █ Content
    20. #║   
    21. #║    - Expand the TMC Mainscript, for new enhancements like using icons and
    22. #║      more in future version.   
    23. #║   
    24. #╚═───────────────────────────────────────────────────────────────────────────═#
    25. #╔═───────────────────────────────────────────────────────────────────────────═#
    26. #║ █ Updates
    27. #║   
    28. #║    ■ 1.01
    29. #║    - Versionsupport extended
    30. #║   
    31. #║    ■ 1.0
    32. #║    - Release
    33. #║   
    34. #╚═───────────────────────────────────────────────────────────────────────────═#
    35. #╔═───────────────────────────────────────────────────────────────────────────═#
    36. #║ █ Installation
    37. #║   
    38. #║    ■ Put this script below all other TMC Scripts/Addons
    39. #║   
    40. #╚═───────────────────────────────────────────────────────────────────────────═#
    41. if $imported[:TINY_TMC] >= 1.0
    42. module TINY
    43.   module TMC
    44.     CUR_GRAPHICS = {
    45. #╔═───────────────────────────────────────────────────────────────────────────═#
    46. #║ █ Editable Region **              Settings               ** Editable Region █
    47. #╚═───────────────────────────────────────────────────────────────────────────═#      
    48.      
    49.     # Sample for icon creation:
    50.     # ID     =>    Icon Index
    51.     
    52.     :gold    =>    361,
    53.     :silver  =>    359,
    54.     :rocks   =>    350
    55.      
    56.      
    57. #═────────────────────────────────────────────────────────────────────────────═#     
    58.     } # Do not touch
    59. #═────────────────────────────────────────────────────────────────────────────═#     
    60.     
    61.     # █ Icon Settings
    62.     
    63.     # Define default Icon for currencies without a specified icon
    64.     DEFAULT_ICON = 262
    65.     
    66.     
    67.     # In which Addons icons should be used?
    68.     
    69.       # ■ Menu Addon?
    70.       ICON_MENU = true
    71.     
    72.       # ■ Exchanger Addon?
    73.       ICON_EXCH = true
    74.     
    75.     
    76. #╔═───────────────────────────────────────────────────────────────────────────═#         
    77. #║ █ **                         END OF SETTINGS                             ** █
    78. #║ █ **               DO NOT TOUCH THE FOLLOWING CONTENTS                   ** █
    79. #╚═───────────────────────────────────────────────────────────────────────────═#
    80.   end # TMC 
    81. #═=═=═════════════════════════════════════════════════════════════════════════=#
    82. end # TINY
    83. if TINY::TMC::ICON_MENU && !$imported[:TINY_TMC_Menu].nil?
    84. #╔═=══════════════════════════════════════════════════════════════════════════=═
    85. #║ █  OLD Class Window_More_Gold
    86. #╚═=═=════════════════════════════════════════════════════════════════════════=═
    87. class Window_More_Gold
    88.   
    89.   #╔────────────────────────────────────────────────────────────────────────────
    90.   #║ ■  Refresh Contents
    91.   #╚────────────────────────────────────────────────────────────────────────────
    92.   def refresh
    93.     contents.clear
    94.     i = 0
    95.     $game_party.gold_hash.each { |key, val|
    96.       info = TINY::TMC::CURRENCIES[key]
    97.       icon = TINY::TMC::CUR_GRAPHICS[key].nil? ? TINY::TMC::DEFAULT_ICON : TINY::TMC::CUR_GRAPHICS[key]
    98.       draw_icon(icon, contents.width - 24, 24 * i)
    99.       draw_currency_value(val, info[1], 4 - 24, 24 * i, contents.width - 8)
    100.       i += 1
    101.     }
    102.   end
    103. end # Window_More_Gold
    104. end # if ICON_MENU
    105. if TINY::TMC::ICON_EXCH && !$imported[:TINY_TMC_Exch].nil?
    106. #╔═=══════════════════════════════════════════════════════════════════════════=═
    107. #║ █  OLD Class Window_More_Gold_Selectable
    108. #╚═=═=════════════════════════════════════════════════════════════════════════=═
    109. class Window_More_Gold_Selectable
    110.   
    111.   #╔────────────────────────────────────────────────────────────────────────────
    112.   #║ ■  Refresh Contents
    113.   #╚────────────────────────────────────────────────────────────────────────────
    114.   def refresh
    115.     contents.clear
    116.     i = 0
    117.     @currencies.each { |cur|
    118.       next if TINY::TMC::CURRENCIES[cur].nil?
    119.       info = TINY::TMC::CURRENCIES[cur]
    120.       icon = TINY::TMC::CUR_GRAPHICS[cur].nil? ? TINY::TMC::DEFAULT_ICON : TINY::TMC::CUR_GRAPHICS[cur]
    121.       part = @version == :player ? $game_party.gold(cur) : info[0]
    122.       draw_icon(icon, contents.width - 24, 24 * i)
    123.       draw_currency_value(part, " #{info[1]}", 4 , 24 * i, contents.width - 8 - 24)
    124.       i += 1
    125.     }
    126.   end
    127.   
    128. end # Window_More_Gold_Selectable
    129. end # if ICON_EXCH
    130. else 
    131.   msgbox_p("TMC Menu will not run without TMC Mainscript 1.0 or higher")
    132. end # if version
    133. #╔═───────────────────────────────────────────────────────────────────────────═╗
    134. #╠══════════════════════════════▲ END OF SCRIPT ▲══════════════════════════════╣
    135. #╚═───────────────────────────────────────────────────────────────────────────═╝
    复制代码





     

    Screens:

    Spoiler










     

    DEMO

    tmc demo 1.2.zip


    本贴来自国际rpgmaker官方论坛作者:TinyMine处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/tinys-more-currencies-tmc.26491/

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    简体中文
    繁體中文
    English(英语)
    日本語(日语)
    Deutsch(德语)
    Русский язык(俄语)
    بالعربية(阿拉伯语)
    Türkçe(土耳其语)
    Português(葡萄牙语)
    ภาษาไทย(泰国语)
    한어(朝鲜语/韩语)
    Français(法语)
    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2026-8-17 07:17 , Processed in 0.155449 second(s), 56 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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