Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #==============================================================================
- # Difficulty effects
- # By gerkrt/gerrtunk, Dargor(used his difficulty script for scene title
- # modification)
- # Version: 2
- # License: GPL, credits
- #==============================================================================
- =begin
- This script gives a complete control of the game challengue, not only with a
- initial decision. Now it also let you create a menu in scene title to
- select the difficulty to use.
- Features:
- -You can create all the difficulty effects you want and active and desactive
- at your will. Each effect can changue some nemy atributes based in %.
- The effects are accumulative and saved when quit the game.
- 4 ways of choosing what enemies are using the effects:
- -By enemies ids
- -By maps ids
- -Using the map tree system. You only have to write the name of the parent map
- and all the others are included in rhe effect.
- -Global
- -All the atributes are optional.
- -You can use the value in a event variable to control all the values of a effect
- in real time.
- -HP, SP, ATK, PDEF, PMAG, EVS, STR, DEX, AGI, INT, EXPERIENCIE, GOLD and DROP
- -You can optionally create a menu in the scene title with each number of difficulty
- options, names, descriptions, switch and difficulty effects that they active.
- -Vocabulary control
- ############ Values and sintaxis #########
- Enemies atributes are calculated in %. Each atribute you add to a effect to
- modify starts wuth a value of 100% and then you can sum or rest to it.
- Example:
- Difficulty_effects[5] = {
- :active => false,
- :type => 3,
- :base_map_name => 'Forest',
- :hp => 50,
- :sp =>-30
- }
- This makes that the hp is 150 and sp 70.
- :x => value of x,
- You must respect : before x name, the => separating them and the final ,
- -Each new effect must have a new and unique number ID in Difficulty_effects[ID]
- -Dont touch the {}. They mean start and end and have to be in that positions.
- -You can add or remove any values, just use the same sintaxis.
- -The last value dont use the final ,
- ############ Option types #########
- Obligatory:
- active: If you give this a true value the script will start actived.
- type: Define how is going to know the script wich enemies affect.
- Values:
- 1.By enemies ids
- 2.By maps ids
- 3.By map tree
- 4.Global
- enemies_ids: Obligatory when type is 1. Define wich enemies are affected.
- :enemies_ids => [1,2,3]
- maps_ids: Obligatory when type is 2. Define wich maps are affected.
- :maps_ids => [1,2,3]
- base_map_name: Obligatory when type is 3. Define the parent map name.
- Optionals:
- variable: Makes that all values of the effect depend of that event variable value.
- value*event_variable/100
- hp
- sp
- atk
- pdef
- mdef
- evs
- str STRENGTH
- dex DEXTERITY
- agi AGILITY
- int INTELIGENCE
- exp EXPERIENCIE
- gold MONEY
- drop % OF ITEMS
- Note that you can erase the example effects.
- ############ Select wich enemies will use the effect #########
- -Global. All combats
- -By enemies: Only the enemies that you add to the list.
- -By maps: All combats in the maps that you add to the list.
- -By map tree: With this you only have to define a parent map and write its name in
- the effect. All the maps and combats under it will have the effect.
- The map tree is show under the tileset tool. If you doubleclick to - or + you will
- see that the maps are shown in groups that depend in parent maps.
- Note: I recomend having the maps having the maps ordered and directly relationed with
- its parent map to have optimal performance.
- Use example:
- Mapamundi
- Forest
- Mapa3
- Mapa4
- Mapa5
- Mapa6
- Mapa7
- Pantano del Wep
- Mapa9
- Ex:
- Difficulty_effects[2] = {
- :active => false,
- :hp => 50,
- :sp => 30,
- :atk => 20,
- :spi => 20,
- :agi => 10,
- :drop => -20,
- :variable => 6,
- :type => 3,
- :base_map_name => 'Forest'
- }
- Maps 3,4,5,6,7, and Forest have that effect.
- ############ Activating effects #########
- Activate: start_difficulty_effect(effect number)
- Desactivate: stop_difficulty_effect(effect number)
- Ex: start_difficulty_effect(1)
- ########### Difficulties menu ##########
- I have comented in the module itself what is what. Anyway, the main thing
- is to define what number of difficluties, etc, want to use, and then, create
- a entry in the same order and position for each one, so:
- # For each difficulty, his command name
- Names = [
- 'Loser', # 1
- 'Medium', # 2
- 'Hard', # 3
- 'Game Master' # 4
- ]
- # For each difficulty, his description
- Descriptions = [
- 'Only a loser take this mode.', # 1
- 'Medium difficulty, standard way', # 2
- 'You rules!', # 3
- 'Killing a slime in this mode is a miracle' # 4
- ]
- Each time the first named loser have the 1 name, the 1 description, etc
- ############ Last notes #########
- -All the effects to an enemy are sumed and then applied.
- -You can create large number groups with this:
- :enemies_ids => (1..25).to_a
- This is like putting the enemies ids 1-25
- -Creditss: this script have been created studying KGC
- BattleDifficuly
- =end
- module Wep
- # Dont touch this
- Difficulty_effects = []
- Difficulty_effects[1] = {
- :active => false,
- :hp => 50,
- :mp => 30,
- :atk => 20,
- :agi => 10,
- :drop => 20,
- :variable => 4,
- :type => 1,
- :enemies_ids => [2,3]
- }
- Difficulty_effects[2] = {
- :active => false,
- :hp => 50,
- :mp =>30,
- :atk => 20,
- :agi => 10,
- :drop => 20,
- :gold => 20,
- :exp => 20,
- :variable => 5,
- :type => 2,
- :maps_ids => [1,2,3,4,6,7]
- }
- Difficulty_effects[3] = {
- :active => false,
- :hp => 50,
- :mp => 30,
- :atk => 20,
- :dex => 20,
- :agi => 10,
- :drop => -20,
- :variable => 6,
- :type => 3,
- :base_map_name => 'Forest'
- }
- Difficulty_effects[4] = {
- :active => false,
- :hp => 50,
- :mp => 30,
- :atk => 20,
- :agi => 10,
- :drop => -20,
- :variable => 6,
- :type => 4
- }
- # Desactive this, = false, if you dont want to modify the scene title and only
- # wanto to use the geneal difficulty effects
- Diff_modify_scene_title = true
- end
- # The configuration of the title modification.
- module Difficulty
- # Default difficulty used in the list
- Default = 1 # medium
- # For each difficulty, his command name
- Names = [
- 'Loser',
- 'Medium',
- 'Hard',
- 'Game Master'
- ]
- # For each difficulty, his description
- Descriptions = [
- 'Only a loser take this mode.',
- 'Medium difficulty, standard way',
- 'You rules!',
- 'Killing a slime in this mode is a miracle'
- ]
- # For each difficulty, the game switch they active
- Switches = [
- 2,
- 3,
- 4,
- 5
- ]
- # For each difficulty, the difficulty effect they active
- Effects = [
- 1,
- 2,
- 3,
- 4
- ]
- # Vicabulary words used in default menu
- Diff_new_game_word = 'New'
- Diff_load_game_word = 'Load'
- Diff_exit_game_word = 'Exit'
- end
- class Game_System
- attr_accessor :difficulty_effects
- alias gs_wep_cc_init initialize
- def initialize
- @difficulty_effects = Wep::Difficulty_effects
- gs_wep_cc_init
- end
- end
- class Interpreter
- def start_difficulty_effect(num)
- $game_system.difficulty_effects[num][:active] = true
- end
- def stop_difficulty_effect(num)
- $game_system.difficulty_effects[num][:active] = false
- end
- end
- class Game_Party
- def tree_includes_map? (name)
- # Load mapinfos for map name
- mapinfos = load_data("Data/MapInfos.rxdata")
- # If his name is the name searched
- if mapinfos[$game_map.map_id].name == name
- return true
- end
- map = $game_map.map_id
- # Iterate all parents maps
- while mapinfos[map].parent_id != 0
- if mapinfos[mapinfos[map].parent_id].name == name
- return true
- else
- map = mapinfos[map].parent_id
- end
- end
- end
- end
- #==============================================================================
- # ¦ Game_Enemy
- #==============================================================================
- class Game_Enemy < Game_Battler
- #--------------------------------------------------------------------------
- # ? MaxHP
- #--------------------------------------------------------------------------
- alias base_maxhp_Challengue_Compensator base_maxhp
- def base_maxhp
- # Gets normal atribute
- n = base_maxhp_Challengue_Compensator
- # Sets total to a base 100%
- total = 100
- # Search in all effects
- for effect in $game_system.difficulty_effects
- # Effect type 1
- if effect[:active] and effect[:type] == 1 and effect[:hp] != nil and effect[:enemies_ids].include?(@enemy_id)
- if effect[:variable] != nil
- total+=effect[:hp]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:hp]
- end
- end
- # Effect type 2
- if effect[:active] and effect[:type] == 2 and effect[:hp] != nil and effect[:maps_ids].include?($game_map.map_id)
- if effect[:variable] != nil
- total+=effect[:hp]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:hp]
- end
- end
- # Effect type 3
- if effect[:active] and effect[:type] == 3 and effect[:hp] != nil and $game_party.tree_includes_map? (effect[:base_map_name])
- if effect[:variable] != nil
- total+=effect[:hp]*$game_variables[effect[:variable]].to_f/100
- else
- total+=effect[:hp]
- end
- end
- # Effect type 4
- if effect[:active] and effect[:type] == 4 and effect[:hp] != nil
- if effect[:variable] != nil
- total+=effect[:hp]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:hp]
- end
- end
- end
- n = n * total / 100
- return n.to_i
- end
- #--------------------------------------------------------------------------
- # ? MaxSP
- #--------------------------------------------------------------------------
- alias base_maxsp_Challengue_Compensator base_maxsp
- def base_maxsp
- # Gets normal atribute
- n = base_maxsp_Challengue_Compensator
- # Sets total to a base 100%
- total = 100
- # Search in all effects
- for effect in $game_system.difficulty_effects
- # Effect type 1
- if effect[:active] and effect[:type] == 1 and effect[:sp] != nil and effect[:enemies_ids].include?(@enemy_id)
- if effect[:variable] != nil
- total+=effect[:sp]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:sp]
- end
- end
- # Effect type 2
- if effect[:active] and effect[:type] == 2 and effect[:sp] != nil and effect[:maps_ids].include?($game_map.map_id)
- if effect[:variable] != nil
- total+=effect[:sp]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:sp]
- end
- end
- # Effect type 3
- if effect[:active] and effect[:type] == 3 and effect[:sp] != nil and $game_party.tree_includes_map? (effect[:base_map_name])
- if effect[:variable] != nil
- total+=effect[:sp]*$game_variables[effect[:variable]].to_f/100
- else
- total+=effect[:sp]
- end
- end
- # Effect type 4
- if effect[:active] and effect[:type] == 4 and effect[:sp] != nil
- if effect[:variable] != nil
- total+=effect[:sp]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:sp]
- end
- end
- end
- n = n * total / 100
- return n.to_i
- end
- #--------------------------------------------------------------------------
- # ? Maxstr
- #--------------------------------------------------------------------------
- alias base_str_Challengue_Compensator base_str
- def base_str
- # Gets normal atribute
- n = base_str_Challengue_Compensator
- # Sets total to a base 100%
- total = 100
- # Search in all effects
- for effect in $game_system.difficulty_effects
- # Effect type 1
- if effect[:active] and effect[:type] == 1 and effect[:str] != nil and effect[:enemies_ids].include?(@enemy_id)
- if effect[:variable] != nil
- total+=effect[:str]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:str]
- end
- end
- # Effect type 2
- if effect[:active] and effect[:type] == 2 and effect[:str] != nil and effect[:maps_ids].include?($game_map.map_id)
- if effect[:variable] != nil
- total+=effect[:str]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:str]
- end
- end
- # Effect type 3
- if effect[:active] and effect[:type] == 3 and effect[:str] != nil and $game_party.tree_includes_map? (effect[:base_map_name])
- if effect[:variable] != nil
- total+=effect[:str]*$game_variables[effect[:variable]].to_f/100
- else
- total+=effect[:str]
- end
- end
- # Effect type 4
- if effect[:active] and effect[:type] == 4 and effect[:str] != nil
- if effect[:variable] != nil
- total+=effect[:str]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:str]
- end
- end
- end
- n = n * total / 100
- return n.to_i
- end
- #--------------------------------------------------------------------------
- # ? Maxdex
- #--------------------------------------------------------------------------
- alias base_dex_Challengue_Compensator base_dex
- def base_dex
- # Gets normal atribute
- n = base_dex_Challengue_Compensator
- # Sets total to a base 100%
- total = 100
- # Search in all effects
- for effect in $game_system.difficulty_effects
- # Effect type 1
- if effect[:active] and effect[:type] == 1 and effect[:dex] != nil and effect[:enemies_ids].include?(@enemy_id)
- if effect[:variable] != nil
- total+=effect[:dex]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:dex]
- end
- end
- # Effect type 2
- if effect[:active] and effect[:type] == 2 and effect[:dex] != nil and effect[:maps_ids].include?($game_map.map_id)
- if effect[:variable] != nil
- total+=effect[:dex]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:dex]
- end
- end
- # Effect type 3
- if effect[:active] and effect[:type] == 3 and effect[:dex] != nil and $game_party.tree_includes_map? (effect[:base_map_name])
- if effect[:variable] != nil
- total+=effect[:dex]*$game_variables[effect[:variable]].to_f/100
- else
- total+=effect[:dex]
- end
- end
- # Effect type 4
- if effect[:active] and effect[:type] == 4 and effect[:dex] != nil
- if effect[:variable] != nil
- total+=effect[:dex]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:dex]
- end
- end
- end
- n = n * total / 100
- return n.to_i
- end
- #--------------------------------------------------------------------------
- # ? Maxagi
- #--------------------------------------------------------------------------
- alias base_agi_Challengue_Compensator base_agi
- def base_agi
- # Gets normal atribute
- n = base_agi_Challengue_Compensator
- # Sets total to a base 100%
- total = 100
- # Search in all effects
- for effect in $game_system.difficulty_effects
- # Effect type 1
- if effect[:active] and effect[:type] == 1 and effect[:agi] != nil and effect[:enemies_ids].include?(@enemy_id)
- if effect[:variable] != nil
- total+=effect[:agi]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:agi]
- end
- end
- # Effect type 2
- if effect[:active] and effect[:type] == 2 and effect[:agi] != nil and effect[:maps_ids].include?($game_map.map_id)
- if effect[:variable] != nil
- total+=effect[:agi]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:agi]
- end
- end
- # Effect type 3
- if effect[:active] and effect[:type] == 3 and effect[:agi] != nil and $game_party.tree_includes_map? (effect[:base_map_name])
- if effect[:variable] != nil
- total+=effect[:agi]*$game_variables[effect[:variable]].to_f/100
- else
- total+=effect[:agi]
- end
- end
- # Effect type 4
- if effect[:active] and effect[:type] == 4 and effect[:agi] != nil
- if effect[:variable] != nil
- total+=effect[:agi]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:agi]
- end
- end
- end
- n = n * total / 100
- return n.to_i
- end
- #--------------------------------------------------------------------------
- # ? Maxint
- #--------------------------------------------------------------------------
- alias base_int_Challengue_Compensator base_int
- def base_int
- # Gets normal atribute
- n = base_int_Challengue_Compensator
- # Sets total to a base 100%
- total = 100
- # Search in all effects
- for effect in $game_system.difficulty_effects
- # Effect type 1
- if effect[:active] and effect[:type] == 1 and effect[:int] != nil and effect[:enemies_ids].include?(@enemy_id)
- if effect[:variable] != nil
- total+=effect[:int]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:int]
- end
- end
- # Effect type 2
- if effect[:active] and effect[:type] == 2 and effect[:int] != nil and effect[:maps_ids].include?($game_map.map_id)
- if effect[:variable] != nil
- total+=effect[:int]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:int]
- end
- end
- # Effect type 3
- if effect[:active] and effect[:type] == 3 and effect[:int] != nil and $game_party.tree_includes_map? (effect[:base_map_name])
- if effect[:variable] != nil
- total+=effect[:int]*$game_variables[effect[:variable]].to_f/100
- else
- total+=effect[:int]
- end
- end
- # Effect type 4
- if effect[:active] and effect[:type] == 4 and effect[:int] != nil
- if effect[:variable] != nil
- total+=effect[:int]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:int]
- end
- end
- end
- n = n * total / 100
- return n.to_i
- end
- #--------------------------------------------------------------------------
- # ? Maxatk
- #--------------------------------------------------------------------------
- alias base_atk_Challengue_Compensator base_atk
- def base_atk
- # Gets normal atribute
- n = base_atk_Challengue_Compensator
- # Sets total to a base 100%
- total = 100
- # Search in all effects
- for effect in $game_system.difficulty_effects
- # Effect type 1
- if effect[:active] and effect[:type] == 1 and effect[:atk] != nil and effect[:enemies_ids].include?(@enemy_id)
- if effect[:variable] != nil
- total+=effect[:atk]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:atk]
- end
- end
- # Effect type 2
- if effect[:active] and effect[:type] == 2 and effect[:atk] != nil and effect[:maps_ids].include?($game_map.map_id)
- if effect[:variable] != nil
- total+=effect[:atk]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:atk]
- end
- end
- # Effect type 3
- if effect[:active] and effect[:type] == 3 and effect[:atk] != nil and $game_party.tree_includes_map? (effect[:base_map_name])
- if effect[:variable] != nil
- total+=effect[:atk]*$game_variables[effect[:variable]].to_f/100
- else
- total+=effect[:atk]
- end
- end
- # Effect type 4
- if effect[:active] and effect[:type] == 4 and effect[:atk] != nil
- if effect[:variable] != nil
- total+=effect[:atk]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:atk]
- end
- end
- end
- n = n * total / 100
- return n.to_i
- end
- #--------------------------------------------------------------------------
- # ? Maxpdef
- #--------------------------------------------------------------------------
- alias base_pdef_Challengue_Compensator base_pdef
- def base_pdef
- # Gets normal atribute
- n = base_pdef_Challengue_Compensator
- # Sets total to a base 100%
- total = 100
- # Search in all effects
- for effect in $game_system.difficulty_effects
- # Effect type 1
- if effect[:active] and effect[:type] == 1 and effect[:pdef] != nil and effect[:enemies_ids].include?(@enemy_id)
- if effect[:variable] != nil
- total+=effect[:pdef]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:pdef]
- end
- end
- # Effect type 2
- if effect[:active] and effect[:type] == 2 and effect[:pdef] != nil and effect[:maps_ids].include?($game_map.map_id)
- if effect[:variable] != nil
- total+=effect[:pdef]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:pdef]
- end
- end
- # Effect type 3
- if effect[:active] and effect[:type] == 3 and effect[:pdef] != nil and $game_party.tree_includes_map? (effect[:base_map_name])
- if effect[:variable] != nil
- total+=effect[:pdef]*$game_variables[effect[:variable]].to_f/100
- else
- total+=effect[:pdef]
- end
- end
- # Effect type 4
- if effect[:active] and effect[:type] == 4 and effect[:pdef] != nil
- if effect[:variable] != nil
- total+=effect[:pdef]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:pdef]
- end
- end
- end
- n = n * total / 100
- return n.to_i
- end
- #--------------------------------------------------------------------------
- # ? Maxmdef
- #--------------------------------------------------------------------------
- alias base_mdef_Challengue_Compensator base_mdef
- def base_mdef
- # Gets normal atribute
- n = base_mdef_Challengue_Compensator
- # Sets total to a base 100%
- total = 100
- # Search in all effects
- for effect in $game_system.difficulty_effects
- # Effect type 1
- if effect[:active] and effect[:type] == 1 and effect[:mdef] != nil and effect[:enemies_ids].include?(@enemy_id)
- if effect[:variable] != nil
- total+=effect[:mdef]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:mdef]
- end
- end
- # Effect type 2
- if effect[:active] and effect[:type] == 2 and effect[:mdef] != nil and effect[:maps_ids].include?($game_map.map_id)
- if effect[:variable] != nil
- total+=effect[:mdef]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:mdef]
- end
- end
- # Effect type 3
- if effect[:active] and effect[:type] == 3 and effect[:mdef] != nil and $game_party.tree_includes_map? (effect[:base_map_name])
- if effect[:variable] != nil
- total+=effect[:mdef]*$game_variables[effect[:variable]].to_f/100
- else
- total+=effect[:mdef]
- end
- end
- # Effect type 4
- if effect[:active] and effect[:type] == 4 and effect[:mdef] != nil
- if effect[:variable] != nil
- total+=effect[:mdef]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:mdef]
- end
- end
- end
- n = n * total / 100
- return n.to_i
- end
- #--------------------------------------------------------------------------
- # ? Maxeva
- #--------------------------------------------------------------------------
- alias base_eva_Challengue_Compensator base_eva
- def base_eva
- # Gets normal atribute
- n = base_eva_Challengue_Compensator
- # Sets total to a base 100%
- total = 100
- # Search in all effects
- for effect in $game_system.difficulty_effects
- # Effect type 1
- if effect[:active] and effect[:type] == 1 and effect[:eva] != nil and effect[:enemies_ids].include?(@enemy_id)
- if effect[:variable] != nil
- total+=effect[:eva]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:eva]
- end
- end
- # Effect type 2
- if effect[:active] and effect[:type] == 2 and effect[:eva] != nil and effect[:maps_ids].include?($game_map.map_id)
- if effect[:variable] != nil
- total+=effect[:eva]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:eva]
- end
- end
- # Effect type 3
- if effect[:active] and effect[:type] == 3 and effect[:eva] != nil and $game_party.tree_includes_map? (effect[:base_map_name])
- if effect[:variable] != nil
- total+=effect[:eva]*$game_variables[effect[:variable]].to_f/100
- else
- total+=effect[:eva]
- end
- end
- # Effect type 4
- if effect[:active] and effect[:type] == 4 and effect[:eva] != nil
- if effect[:variable] != nil
- total+=effect[:eva]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:eva]
- end
- end
- end
- n = n * total / 100
- return n.to_i
- end
- #--------------------------------------------------------------------------
- # ? Maxexp
- #--------------------------------------------------------------------------
- alias exp_Challengue_Compensator exp
- def exp
- # Gets normal atribute
- n = exp_Challengue_Compensator
- # Sets total to a base 100%
- total = 100
- # Search in all effects
- for effect in $game_system.difficulty_effects
- # Effect type 1
- if effect[:active] and effect[:type] == 1 and effect[:exp] != nil and effect[:enemies_ids].include?(@enemy_id)
- if effect[:variable] != nil
- total+=effect[:exp]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:exp]
- end
- end
- # Effect type 2
- if effect[:active] and effect[:type] == 2 and effect[:exp] != nil and effect[:maps_ids].include?($game_map.map_id)
- if effect[:variable] != nil
- total+=effect[:exp]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:exp]
- end
- end
- # Effect type 3
- if effect[:active] and effect[:type] == 3 and effect[:exp] != nil and $game_party.tree_includes_map? (effect[:base_map_name])
- if effect[:variable] != nil
- total+=effect[:exp]*$game_variables[effect[:variable]].to_f/100
- else
- total+=effect[:exp]
- end
- end
- # Effect type 4
- if effect[:active] and effect[:type] == 4 and effect[:exp] != nil
- if effect[:variable] != nil
- total+=effect[:exp]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:exp]
- end
- end
- end
- n = n * total / 100
- return n.to_i
- end
- #--------------------------------------------------------------------------
- # ? Maxgold
- #--------------------------------------------------------------------------
- alias gold_Challengue_Compensator gold
- def gold
- # Gets normal atribute
- n = gold_Challengue_Compensator
- # Sets total to a base 100%
- total = 100
- # Search in all effects
- for effect in $game_system.difficulty_effects
- # Effect type 1
- if effect[:active] and effect[:type] == 1 and effect[:gold] != nil and effect[:enemies_ids].include?(@enemy_id)
- if effect[:variable] != nil
- total+=effect[:gold]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:gold]
- end
- end
- # Effect type 2
- if effect[:active] and effect[:type] == 2 and effect[:gold] != nil and effect[:maps_ids].include?($game_map.map_id)
- if effect[:variable] != nil
- total+=effect[:gold]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:gold]
- end
- end
- # Effect type 3
- if effect[:active] and effect[:type] == 3 and effect[:gold] != nil and $game_party.tree_includes_map? (effect[:base_map_name])
- if effect[:variable] != nil
- total+=effect[:gold]*$game_variables[effect[:variable]].to_f/100
- else
- total+=effect[:gold]
- end
- end
- # Effect type 4
- if effect[:active] and effect[:type] == 4 and effect[:gold] != nil
- if effect[:variable] != nil
- total+=effect[:gold]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:gold]
- end
- end
- end
- n = n * total / 100
- return n.to_i
- end
- #--------------------------------------------------------------------------
- # ? Maxdrop
- #--------------------------------------------------------------------------
- alias treasure_prob_Challengue_Compensator treasure_prob
- def treasure_prob
- # Gets normal atribute
- n = treasure_prob_Challengue_Compensator
- # Sets total to a base 100%
- total = 100
- # Search in all effects
- for effect in $game_system.difficulty_effects
- # Effect type 1
- if effect[:active] and effect[:type] == 1 and effect[:drop] != nil and effect[:enemies_ids].include?(@enemy_id)
- if effect[:variable] != nil
- total+=effect[:drop]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:drop]
- end
- end
- # Effect type 2
- if effect[:active] and effect[:type] == 2 and effect[:drop] != nil and effect[:maps_ids].include?($game_map.map_id)
- if effect[:variable] != nil
- total+=effect[:drop]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:drop]
- end
- end
- # Effect type 3
- if effect[:active] and effect[:type] == 3 and effect[:drop] != nil and $game_party.tree_includes_map? (effect[:base_map_name])
- if effect[:variable] != nil
- total+=effect[:drop]*$game_variables[effect[:variable]].to_f/100
- else
- total+=effect[:drop]
- end
- end
- # Effect type 4
- if effect[:active] and effect[:type] == 4 and effect[:drop] != nil
- if effect[:variable] != nil
- total+=effect[:drop]*$game_variables[effect[:variable]]/100
- else
- total+=effect[:drop]
- end
- end
- end
- n = n * total / 100
- return n.to_i
- end
- end
- #==============================================================================
- # ** Difficulties
- #------------------------------------------------------------------------------
- # © Dargor, 2008
- # Ported to Xp and Modified by gerkrt to use difficulty effects script
- # 24/06/08
- # Version 1.1
- # Pedido do van hellblaze
- # Tradução para português: Rafidelis
- # www.ReinoRpg.com
- #------------------------------------------------------------------------------
- # HISTORICO DAS VERSÕES
- # - 1.0 (24/06/08), Versão inicial
- # - 1.1 (24/06/08),Adicionada EXP e Gold modificações
- #------------------------------------------------------------------------------
- # INSTRUÇÕES:
- # - Cole Acima do Main
- # - Edit as constates no modulo de Dificuldade
- #==============================================================================
- #==============================================================================
- # ** Game_System
- #------------------------------------------------------------------------------
- # Esta classe manipula dados relacionados com o sistema.Também gerencia veículos e BGM, etc
- # A instância desta classe é referenciado por $ game_system.
- #==============================================================================
- class Game_System
- #--------------------------------------------------------------------------
- # * Variaveis de Instacia Publica
- #--------------------------------------------------------------------------
- attr_accessor :difficulty_id
- #--------------------------------------------------------------------------
- # * Alias Listing
- #--------------------------------------------------------------------------
- alias dargor_vx_difficulty_system_initialize initialize
- #--------------------------------------------------------------------------
- # * Object Initialization
- #--------------------------------------------------------------------------
- def initialize
- dargor_vx_difficulty_system_initialize
- @difficulty_id = Difficulty::Default
- end
- #--------------------------------------------------------------------------
- # * Get Difficulty
- #--------------------------------------------------------------------------
- def difficulty
- return Difficulty::Modifiers[@difficulty_id]
- end
- end
- if Wep::Diff_modify_scene_title
- #==============================================================================
- # ** Scene_Title
- #------------------------------------------------------------------------------
- # Esta classe realiza a tranformação da tela de título.
- #==============================================================================
- class Scene_Title
- #--------------------------------------------------------------------------
- # * Main Processing
- #--------------------------------------------------------------------------
- def main
- # If battle test
- if $BTEST
- battle_test
- return
- end
- # Load database
- $data_actors = load_data("Data/Actors.rxdata")
- $data_classes = load_data("Data/Classes.rxdata")
- $data_skills = load_data("Data/Skills.rxdata")
- $data_items = load_data("Data/Items.rxdata")
- $data_weapons = load_data("Data/Weapons.rxdata")
- $data_armors = load_data("Data/Armors.rxdata")
- $data_enemies = load_data("Data/Enemies.rxdata")
- $data_troops = load_data("Data/Troops.rxdata")
- $data_states = load_data("Data/States.rxdata")
- $data_animations = load_data("Data/Animations.rxdata")
- $data_tilesets = load_data("Data/Tilesets.rxdata")
- $data_common_events = load_data("Data/CommonEvents.rxdata")
- $data_system = load_data("Data/System.rxdata")
- # Make system object
- $game_system = Game_System.new
- # Make title graphic
- @sprite = Sprite.new
- @sprite.bitmap = RPG::Cache.title($data_system.title_name)
- # Make command window
- s1 = Difficulty::Diff_new_game_word
- s2 = Difficulty::Diff_load_game_word
- s3 = Difficulty::Diff_exit_game_word
- @command_window = Window_Command.new(192, [s1, s2, s3])
- @command_window.back_opacity = 160
- @command_window.x = 320 - @command_window.width / 2
- @command_window.y = 288
- @help_window = Window_Help.new
- @help_window.visible = false
- create_difficulty_window
- # Continue enabled determinant
- # Check if at least one save file exists
- # If enabled, make @continue_enabled true; if disabled, make it false
- @continue_enabled = false
- for i in 0..3
- if FileTest.exist?("Save#{i+1}.rxdata")
- @continue_enabled = true
- end
- end
- # If continue is enabled, move cursor to "Continue"
- # If disabled, display "Continue" text in gray
- if @continue_enabled
- @command_window.index = 1
- else
- @command_window.disable_item(1)
- end
- # Play title BGM
- $game_system.bgm_play($data_system.title_bgm)
- # Stop playing ME and BGS
- Audio.me_stop
- Audio.bgs_stop
- # Execute transition
- Graphics.transition
- # Main loop
- loop do
- # Update game screen
- Graphics.update
- # Update input information
- Input.update
- # Frame update
- update
- # Abort loop if screen is changed
- if $scene != self
- break
- end
- end
- # Prepare for transition
- Graphics.freeze
- # Dispose of command window
- @command_window.dispose
- # Dispose of title graphic
- @sprite.bitmap.dispose
- @sprite.dispose
- end
- #--------------------------------------------------------------------------
- # * Create difficulty window: size based in number of dificulties
- #--------------------------------------------------------------------------
- alias dargor_vx_difficulty_title_update update
- def create_difficulty_window
- names = []
- for name in Difficulty::Names
- names << name
- end
- @difficulty_window = Window_Command.new(172, names)
- @difficulty_window.x = @command_window.x
- @difficulty_window.y = @command_window.y
- @difficulty_window.height = @command_window.height
- @difficulty_window.visible = false
- @difficulty_window.active = false
- # Set initial dificult text
- @help_window.set_text(Difficulty::Descriptions[0])
- @help_window.visible = false
- end
- #--------------------------------------------------------------------------
- # * Frame Update
- #--------------------------------------------------------------------------
- def update
- # Update command window
- @command_window.update
- @difficulty_window.update
- if @difficulty_window.active
- @help_window.update
- update_difficulty_window
- return
- end
- # If C button was pressed
- if Input.trigger?(Input::C)
- # Branch by command window cursor position
- case @command_window.index
- when 0 # New game
- # Play decision SE
- $game_system.se_play($data_system.decision_se)
- @difficulty_window.visible = true
- @difficulty_window.active = true
- @help_window.visible = true
- @command_window.visible = false
- @command_window.active = false
- return
- when 1 # Continue
- command_continue
- when 2 # Shutdown
- command_shutdown
- end
- end
- if @command_window.methods.include?('selection')
- condition = '@command_window.selection == Vocab::new_game'
- else
- condition = '@command_window.index == 0'
- end
- if Input.trigger?(Input::C) && eval(condition)
- if !@difficulty_window.active && Difficulty::In_Title
- end
- end
- end
- #--------------------------------------------------------------------------
- # * Command: New Game
- # modified to active dif switch when $game is created
- #--------------------------------------------------------------------------
- alias wep_dif_command_new_game command_new_game
- def command_new_game(id)
- wep_dif_command_new_game
- $game_switches[Difficulty::Switches[id]] = true
- end
- #--------------------------------------------------------------------------
- # * Frame Update (Difficulty)
- #--------------------------------------------------------------------------
- def update_difficulty_window
- # Diff id = window index
- id = $game_system.difficulty_id = @difficulty_window.index
- # Back
- if Input.trigger?(Input::B)
- # Play SE
- $game_system.se_play($data_system.cancel_se)
- @difficulty_window.visible = false
- @difficulty_window.active = false
- @command_window.visible = true
- @command_window.active = true
- # Select diff
- elsif Input.trigger?(Input::C)
- @difficulty_window.dispose
- @help_window.dispose
- # Active difficulty effect and swithch
- $game_system.difficulty_effects[Difficulty::Effects[id]][:active] = true
- command_new_game(id)
- else
- @help_window.set_text(Difficulty::Descriptions[id])
- end
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment