Oniromancie: Scripts - Correctif pour variables


Comment ça marche?

Aëdemphia
Par Sylvanor

Fighting Robots Quest
Par Boulon

Forstale
Par Ødd Clock

Geex
Par roys

Inexistence
Par Falco

La Légende d'Ibabou
Par Zaitan

Lije
Par Gaetz

LoveMaster
Par Cuddlefox

Sarcia
Par Kaëlar

Super Mario RPG - Lost Souls
Par Omegabowser

News: Concours des Alex d'Or 2017-18: (...) / News: MegaMaker : créez votre propre (...) / News: Test de Tinker Quarry / Sorties: Leave the Room / Jeux: Leave the Room /

Chat  (10 connectés)

Bienvenue
visiteur !








Statistiques

Liste des
membres


Contact

76 connectés actuellement

9176521 visiteurs
depuis l'ouverture

786 visiteurs
aujourd'hui

Groupe Facebook

Barre de séparation

Partenaires




TOP
GAMEMAKING


Les 5 plus
visités

Lunae, le baz'arts d'Emz0

Le studio du chat vert

Pixelandgame

Tashiroworld

HeyMakeGames

Au hasard

Loisirs RPG

Citadelle d'Hyrule

Luximum

Les deux derniers

Lunae, le baz'arts d'Emz0

Le studio du chat vert

Nos autres partenaires

Devenir
partenaire


Barre de séparation

Un site du réseau
War Paradise

Annuaires référenceurs





Correctif pour variables
Script pour RPG Maker VX
Ecrit par balth3465

Correctif RMVX contre le reset automatique de certaines variables


Vous avez certainement remarqué que souvent, lorsque l'on essaye de définir une variable par une caractéristique (Niveau, HPmax, etc.) d'un joueur, ladite variable reviendra automatiquement à 0, et ce, quelle que soit la condition qui suit.

Pour des systèmes de combat, de menu etc., cela peut vite devenir encombrant. Ayant rencontré le même problème dans mon jeu - précisément, un système d'achat de sorts FFXlike en event; un système de Limit Break, de Scan... enfin, LE truc! - j'ai trouvé un script que je posterai donc ici.

Le script original est de GreatRedSpirit, avec des corrections par Balth3465.

Pour installer : copiez le code ci-dessous et remplacez dans le RGSS Game_Interpreter par celui-là. La partie modifiée est Control-Variable (avec un script condensé, vers la ligne 737). N'oubliez pas de faire une copie du script original en cas de bug!

Ce script à été testé sur un jeu vierge avec succès, ainsi que sur un projet en cours (Ma Sphere Grid, mon Scan marchent parfaitement).

Aucun bug recensé à ce jour que je n'ai corrigé.





Portion de code:





#==============================================================================

# ** Game_Interpreter
#------------------------------------------------------------------------------
# An interpreter for executing event commands. This class is used within the
# Game_Map, Game_Troop, and Game_Event classes.
#==============================================================================

class Game_Interpreter
#--------------------------------------------------------------------------
# * Object Initialization
# depth : nest depth
# main : main flag
#--------------------------------------------------------------------------
def initialize(depth = 0, main = false)
@depth = depth
@main = main
if @depth > 100
print("Common event call has exceeded maximum limit.")
exit
end
clear
end
#--------------------------------------------------------------------------
# * Clear
#--------------------------------------------------------------------------
def clear
@map_id = 0 # Map ID when starting up
@original_event_id = 0 # Event ID when starting up
@event_id = 0 # Event ID
@list = nil # Execution content
@index = 0 # Index
@message_waiting = false # Waiting for message to end
@moving_character = nil # Moving character
@wait_count = 0 # Wait count
@child_interpreter = nil # Child interpreter
@branch = {} # Branch data
end
#--------------------------------------------------------------------------
# * Event Setup
# list : list of event commands
# event_id : event ID
#--------------------------------------------------------------------------
def setup(list, event_id = 0)
clear # Clear internal interpreter state
@map_id = $game_map.map_id # Memorize map ID
@original_event_id = event_id # Memorize event ID
@event_id = event_id # Memorize event ID
@list = list # Memorize execution contents
@index = 0 # Initialize index
cancel_menu_call # Cancel menu call
end
#--------------------------------------------------------------------------
# * Cancel Menu Call
# Handles the situation when a player is moving and the cancel button
# is pushed, starting an event in the state where a menu call was
# reserved.
#--------------------------------------------------------------------------
def cancel_menu_call
if @main and $game_temp.next_scene == "menu" and $game_temp.menu_beep
$game_temp.next_scene = nil
$game_temp.menu_beep = false
end
end
#--------------------------------------------------------------------------
# * Determine if Running
#--------------------------------------------------------------------------
def running?
return @list != nil
end
#--------------------------------------------------------------------------
# * Starting Event Setup
#--------------------------------------------------------------------------
def setup_starting_event
if $game_map.need_refresh # If necessary, refresh the map
$game_map.refresh
end
if $game_temp.common_event_id > 0 # Common event call reserved?
setup($data_common_events[$game_temp.common_event_id].list)
$game_temp.common_event_id = 0
return
end
for event in $game_map.events.values # Map event
if event.starting # If a starting event is found
event.clear_starting # Clear starting flag
setup(event.list, event.id) # Set up event
return
end
end
for event in $data_common_events.compact # Common event
if event.trigger == 1 and # If autorun and
$game_switches[event.switch_id] == true # condition switch is ON
setup(event.list) # Set up event
return
end
end
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
loop do
if $game_map.map_id != @map_id # Map is different?
@event_id = 0 # Make event ID 0
end
if @child_interpreter != nil # If child interpreter exists
@child_interpreter.update # Update child interpreter
if @child_interpreter.running? # If running
return # Return
else # After execution has finished
@child_interpreter = nil # Erase child interpreter
end
end
if @message_waiting # Waiting for message finish
return
end
if @moving_character != nil # Waiting for move to finish
if @moving_character.move_route_forcing
return
end
@moving_character = nil
end
if @wait_count > 0 # Waiting
@wait_count -= 1
return
end
if $game_troop.forcing_battler != nil # Forcing battle action
return
end
if $game_temp.next_scene != nil # Opening screens
return
end
if @list == nil # If content list is empty
setup_starting_event if @main # Set up starting event
return if @list == nil # Nothing was set up
end
return if execute_command == false # Execute event command
@index += 1 # Advance index
end
end
#--------------------------------------------------------------------------
# * Actor iterator (ID)
# param : If 1 or more, ID. If 0, all
#--------------------------------------------------------------------------
def iterate_actor_id(param)
if param == 0 # All
for actor in $game_party.members do yield actor end
else # One
actor = $game_actors[param]
yield actor unless actor == nil
end
end
#--------------------------------------------------------------------------
# * Actor iterator (index)
# param : If 0 or more, index. If -1, all.
#--------------------------------------------------------------------------
def iterate_actor_index(param)
if param == -1 # All
for actor in $game_party.members do yield actor end
else # One
actor = $game_party.members[param]
yield actor unless actor == nil
end
end
#--------------------------------------------------------------------------
# * Enemy iterator (index)
# param : If 0 or more, index. If -1, all.
#--------------------------------------------------------------------------
def iterate_enemy_index(param)
if param == -1 # All
for enemy in $game_troop.members do yield enemy end
else # One
enemy = $game_troop.members[param]
yield enemy unless enemy == nil
end
end
#--------------------------------------------------------------------------
# * Battler iterator (for entire troop, entire party)
# param1 : If 0, enemy. If 1, actor.
# param : If 0 or more, index. If -1, all.
#--------------------------------------------------------------------------
def iterate_battler(param1, param2)
if $game_temp.in_battle
if param1 == 0 # Enemy
iterate_enemy_index(param2) do |enemy| yield enemy end
else # Actor
iterate_actor_index(param2) do |enemy| yield enemy end
end
end
end
#--------------------------------------------------------------------------
# * Get Screen Command Target
#--------------------------------------------------------------------------
def screen
if $game_temp.in_battle
return $game_troop.screen
else
return $game_map.screen
end
end
#--------------------------------------------------------------------------
# * Event Command Execution
#--------------------------------------------------------------------------
def execute_command
if @index >= @list.size-1
command_end
return true
else
@params = @list[@index].parameters
@indent = @list[@index].indent
case @list[@index].code
when 101 # Show Text
return command_101
when 102 # Show Choices
return command_102
when 402 # When [**]
return command_402
when 403 # When Cancel
return command_403
when 103 # Input Number
return command_103
when 111 # Conditional Branch
return command_111
when 411 # Else
return command_411
when 112 # Loop
return command_112
when 413 # Repeat Above
return command_413
when 113 # Break Loop
return command_113
when 115 # Exit Event Processing
return command_115
when 117 # Call Common Event
return command_117
when 118 # Label
return command_118
when 119 # Jump to Label
return command_119
when 121 # Control Switches
return command_121
when 122 # Control Variables
return command_122
when 123 # Control Self Switch
return command_123
when 124 # Control Timer
return command_124
when 125 # Change Gold
return command_125
when 126 # Change Items
return command_126
when 127 # Change Weapons
return command_127
when 128 # Change Armor
return command_128
when 129 # Change Party Member
return command_129
when 132 # Change Battle BGM
return command_132
when 133 # Change Battle End ME
return command_133
when 134 # Change Save Access
return command_134
when 135 # Change Menu Access
return command_135
when 136 # Change Encounter
return command_136
when 201 # Transfer Player
return command_201
when 202 # Set Vehicle Location
return command_202
when 203 # Set Event Location
return command_203
when 204 # Scroll Map
return command_204
when 205 # Set Move Route
return command_205
when 206 # Get on/off Vehicle
return command_206
when 211 # Change Transparency
return command_211
when 212 # Show Animation
return command_212
when 213 # Show Balloon Icon
return command_213
when 214 # Erase Event
return command_214
when 221 # Fadeout Screen
return command_221
when 222 # Fadein Screen
return command_222
when 223 # Tint Screen
return command_223
when 224 # Flash Screen
return command_224
when 225 # Shake Screen
return command_225
when 230 # Wait
return command_230
when 231 # Show Picture
return command_231
when 232 # Move Picture
return command_232
when 233 # Rotate Picture
return command_233
when 234 # Tint Picture
return command_234
when 235 # Erase picture
return command_235
when 236 # Set Weather Effects
return command_236
when 241 # Play BGM
return command_241
when 242 # Fadeout BGM
return command_242
when 245 # Play BGS
return command_245
when 246 # Fadeout BGS
return command_246
when 249 # Play ME
return command_249
when 250 # Play SE
return command_250
when 251 # Stop SE
return command_251
when 301 # Battle Processing
return command_301
when 601 # If Win
return command_601
when 602 # If Escape
return command_602
when 603 # If Lose
return command_603
when 302 # Shop Processing
return command_302
when 303 # Name Input Processing
return command_303
when 311 # Change HP
return command_311
when 312 # Change MP
return command_312
when 313 # Change State
return command_313
when 314 # Recover All
return command_314
when 315 # Change EXP
return command_315
when 316 # Change Level
return command_316
when 317 # Change Parameters
return command_317
when 318 # Change Skills
return command_318
when 319 # Change Equipment
return command_319
when 320 # Change Name
return command_320
when 321 # Change Class
return command_321
when 322 # Change Actor Graphic
return command_322
when 323 # Change Vehicle Graphic
return command_323
when 331 # Change Enemy HP
return command_331
when 332 # Change Enemy MP
return command_332
when 333 # Change Enemy State
return command_333
when 334 # Enemy Recover All
return command_334
when 335 # Enemy Appear
return command_335
when 336 # Enemy Transform
return command_336
when 337 # Show Battle Animation
return command_337
when 339 # Force Action
return command_339
when 340 # Abort Battle
return command_340
when 351 # Open Menu Screen
return command_351
when 352 # Open Save Screen
return command_352
when 353 # Game Over
return command_353
when 354 # Return to Title Screen
return command_354
when 355 # Script
return command_355
else # Other
return true
end
end
end
#--------------------------------------------------------------------------
# * End Event
#--------------------------------------------------------------------------
def command_end
@list = nil # Clear execution content list
if @main and @event_id > 0 # If main map event
$game_map.events[@event_id].unlock # Clear event lock
end
end
#--------------------------------------------------------------------------
# * Command Skip
#--------------------------------------------------------------------------
def command_skip
while @list[@index+1].indent > @indent # Next indent is deeper
@index += 1 # Advance index
end
end
#--------------------------------------------------------------------------
# * Get Character
# param : if -1, player. If 0, this event. Otherwise, event ID.
#--------------------------------------------------------------------------
def get_character(param)
case param
when -1 # Player
return $game_player
when 0 # This event
events = $game_map.events
return events == nil ? nil : events[@event_id]
else # Particular event
events = $game_map.events
return events == nil ? nil : events[param]
end
end
#--------------------------------------------------------------------------
# * Calculate Operated Value
# operation : operation (0: increase, 1: decrease)
# operand_type : operand type (0: invariable 1: variable)
# operand : operand (number or variable ID)
#--------------------------------------------------------------------------
def operate_value(operation, operand_type, operand)
if operand_type == 0
value = operand
else
value = $game_variables[operand]
end
if operation == 1
value = -value
end
return value
end
#--------------------------------------------------------------------------
# * Show Text
#--------------------------------------------------------------------------
def command_101
unless $game_message.busy
$game_message.face_name = @params[0]
$game_message.face_index = @params[1]
$game_message.background = @params[2]
$game_message.position = @params[3]
@index += 1
while @list[@index].code == 401 # Text data
$game_message.texts.push(@list[@index].parameters[0])
@index += 1
end
if @list[@index].code == 102 # Show choices
setup_choices(@list[@index].parameters)
elsif @list[@index].code == 103 # Number input processing
setup_num_input(@list[@index].parameters)
end
set_message_waiting # Set to message wait state
end
return false
end
#--------------------------------------------------------------------------
# * Set message wait flag and callback
#--------------------------------------------------------------------------
def set_message_waiting
@message_waiting = true
$game_message.main_proc = Proc.new { @message_waiting = false }
end
#--------------------------------------------------------------------------
# * Show Choices
#--------------------------------------------------------------------------
def command_102
unless $game_message.busy
setup_choices(@params) # Setup
set_message_waiting # Set to message wait state
end
return false
end
#--------------------------------------------------------------------------
# * Setup Choices
#--------------------------------------------------------------------------
def setup_choices(params)
if $game_message.texts.size <= 4 - params[0].size
$game_message.choice_start = $game_message.texts.size
$game_message.choice_max = params[0].size
for s in params[0]
$game_message.texts.push(s)
end
$game_message.choice_cancel_type = params[1]
$game_message.choice_proc = Proc.new { |n| @branch[@indent] = n }
@index += 1
end
end
#--------------------------------------------------------------------------
# * When [**]
#--------------------------------------------------------------------------
def command_402
if @branch[@indent] == @params[0] # If matching choice
@branch.delete(@indent) # Erase branching data
return true # Continue
else # If doesn't match condition
return command_skip # Command skip
end
end
#--------------------------------------------------------------------------
# * When Cancel
#--------------------------------------------------------------------------
def command_403
if @branch[@indent] == 4 # If canceling choice
@branch.delete(@indent) # Erase branching data
return true # Continue
else # If doesn't match condition
return command_skip # Command skip
end
end
#--------------------------------------------------------------------------
# * Input Number
#--------------------------------------------------------------------------
def command_103
unless $game_message.busy
setup_num_input(@params) # Setup
set_message_waiting # Set to message wait state
end
return false
end
#--------------------------------------------------------------------------
# * Number Input Setup
#--------------------------------------------------------------------------
def setup_num_input(params)
if $game_message.texts.size < 4
$game_message.num_input_variable_id = params[0]
$game_message.num_input_digits_max = params[1]
@index += 1
end
end
#--------------------------------------------------------------------------
# * Conditional Branch
#--------------------------------------------------------------------------
def command_111
result = false
case @params[0]
when 0 # Switch
result = ($game_switches[@params[1]] == (@params[2] == 0))
when 1 # Variable
value1 = $game_variables[@params[1]]
if @params[2] == 0
value2 = @params[3]
else
value2 = $game_variables[@params[3]]
end
case @params[4]
when 0 # value1 is equal to value2
result = (value1 == value2)
when 1 # value1 is greater than or equal to value2
result = (value1 >= value2)
when 2 # value1 is less than or equal to value2
result = (value1 <= value2)
when 3 # value1 is greater than value2
result = (value1 > value2)
when 4 # value1 is less than value2
result = (value1 < value2)
when 5 # value1 is not equal to value2
result = (value1 != value2)
end
when 2 # Self switch
if @original_event_id > 0
key = [@map_id, @original_event_id, @params[1]]
if @params[2] == 0
result = ($game_self_switches[key] == true)
else
result = ($game_self_switches[key] != true)
end
end
when 3 # Timer
if $game_system.timer_working
sec = $game_system.timer / Graphics.frame_rate
if @params[2] == 0
result = (sec >= @params[1])
else
result = (sec <= @params[1])
end
end
when 4 # Actor
actor = $game_actors[@params[1]]
if actor != nil
case @params[2]
when 0 # in party
result = ($game_party.members.include?(actor))
when 1 # name
result = (actor.name == @params[3])
when 2 # skill
result = (actor.skill_learn?($data_skills[@params[3]]))
when 3 # weapon
result = (actor.weapons.include?($data_weapons[@params[3]]))
when 4 # armor
result = (actor.armors.include?($data_armors[@params[3]]))
when 5 # state
result = (actor.state?(@params[3]))
end
end
when 5 # Enemy
enemy = $game_troop.members[@params[1]]
if enemy != nil
case @params[2]
when 0 # appear
result = (enemy.exist?)
when 1 # state
result = (enemy.state?(@params[3]))
end
end
when 6 # Character
character = get_character(@params[1])
if character != nil
result = (character.direction == @params[2])
end
when 7 # Gold
if @params[2] == 0
result = ($game_party.gold >= @params[1])
else
result = ($game_party.gold <= @params[1])
end
when 8 # Item
result = $game_party.has_item?($data_items[@params[1]])
when 9 # Weapon
result = $game_party.has_item?($data_weapons[@params[1]], @params[2])
when 10 # Armor
result = $game_party.has_item?($data_armors[@params[1]], @params[2])
when 11 # Button
result = Input.press?(@params[1])
when 12 # Script
result = eval(@params[1])
when 13 # Vehicle
result = ($game_player.vehicle_type == @params[1])
end
@branch[@indent] = result # Store determination results in hash
if @branch[@indent] == true
@branch.delete(@indent)
return true
end
return command_skip
end
#--------------------------------------------------------------------------
# * Else
#--------------------------------------------------------------------------
def command_411
if @branch[@indent] == false
@branch.delete(@indent)
return true
end
return command_skip
end
#--------------------------------------------------------------------------
# * Loop
#--------------------------------------------------------------------------
def command_112
return true
end
#--------------------------------------------------------------------------
# * Repeat Above
#--------------------------------------------------------------------------
def command_413
begin
@index -= 1
end until @list[@index].indent == @indent
return true
end
#--------------------------------------------------------------------------
# * Break Loop
#--------------------------------------------------------------------------
def command_113
loop do
@index += 1
if @index >= @list.size-1
return true
end
if @list[@index].code == 413 and # Command [Repeat Above]
@list[@index].indent < @indent # Indent is shallow
return true
end
end
end
#--------------------------------------------------------------------------
# * Exit Event Processing
#--------------------------------------------------------------------------
def command_115
command_end
return true
end
#--------------------------------------------------------------------------
# * Call Common Event
#--------------------------------------------------------------------------
def command_117
common_event = $data_common_events[@params[0]]
if common_event != nil
@child_interpreter = Game_Interpreter.new(@depth + 1)
@child_interpreter.setup(common_event.list, @event_id)
end
return true
end
#--------------------------------------------------------------------------
# * Label
#--------------------------------------------------------------------------
def command_118
return true
end
#--------------------------------------------------------------------------
# * Jump to Label
#--------------------------------------------------------------------------
def command_119
label_name = @params[0]
for i in 0...@list.size
if @list.code == 118 and @list.parameters[0] == label_name
@index = i
return true
end
end
return true
end
#--------------------------------------------------------------------------
# * Control Switches
#--------------------------------------------------------------------------
def command_121
for i in @params[0] .. @params[1] # Batch control
$game_switches = (@params[2] == 0)
end
$game_map.need_refresh = true
return true
end
#--------------------------------------------------------------------------
# * Control Variables
#--------------------------------------------------------------------------
def command_122
value = 0
case @params[3] # Operand
when 0 # Constant
value = @params[4]
when 1 # Variable
value = $game_variables[@params[4]]
when 2 # Random
value = @params[4] + rand(@params[5] - @params[4] + 1)
when 3 # Item
value = $game_party.item_number($data_items[@params[4]])
when 4 # Actor
actor = $game_actors[@params[4]]
if actor != nil
case @params[5]
when 0 # Level
value = actor.level
when 1 # Experience
value = actor.exp
when 2 # HP
value = actor.hp
when 3 # MP
value = actor.mp
when 4 # Maximum HP
value = actor.maxhp
when 5 # Maximum MP
value = actor.maxmp
when 6 # Attack
value = actor.atk
when 7 # Defense
value = actor.def
when 8 # Spirit
value = actor.spi
when 9 # Agility
value = actor.agi
end
end
when 5 # Enemy
enemy = $game_troop.members[@params[4]]
if enemy != nil
case @params[5]
when 0 # HP
value = enemy.hp
when 1 # MP
value = enemy.mp
when 2 # Maximum HP
value = enemy.maxhp
when 3 # Maximum MP
value = enemy.maxmp
when 4 # Attack
value = enemy.atk
when 5 # Defense
value = enemy.def
when 6 # Spirit
value = enemy.spi
when 7 # Agility
value = enemy.agi
end
end
when 6 # Character
character = get_character(@params[4])
if character != nil
case @params[5]
when 0 # x-coordinate
value = character.x
when 1 # y-coordinate
value = character.y
when 2 # direction
value = character.direction
when 3 # screen x-coordinate
value = character.screen_x
when 4 # screen y-coordinate
value = character.screen_y
end
end
when 7 # Other
case @params[4]
when 0 # map ID
value = $game_map.map_id
when 1 # number of party members
value = $game_party.members.size
when 2 # gold
value = $game_party.gold
when 3 # steps
value = $game_party.steps
when 4 # play time
value = Graphics.frame_count / Graphics.frame_rate
when 5 # timer
value = $game_system.timer / Graphics.frame_rate
when 6 # save count
value = $game_system.save_count
end
end
for i in @params[0] .. @params[1] # Batch control
case @params[2] # Operation
when 0 # Set
$game_variables = value
when 1 # Add
$game_variables += value
when 2 # Sub
$game_variables -= value
when 3 # Mul
$game_variables *= value
when 4 # Div
$game_variables /= value if value != 0
when 5 # Mod
$game_variables %= value if value != 0
end
if $game_variables > 99999999 # Maximum limit check
$game_variables = 99999999
end
if $game_variables < -99999999 # Minimum limit check
$game_variables = -99999999
end
end
$game_map.need_refresh = true
return true
end
end
#--------------------------------------------------------------------------
# * Control Self Switch
#--------------------------------------------------------------------------
def command_123
if @original_event_id > 0
key = [@map_id, @original_event_id, @params[0]]
$game_self_switches[key] = (@params[1] == 0)
end
$game_map.need_refresh = true
return true
end
#--------------------------------------------------------------------------
# * Control Timer
#--------------------------------------------------------------------------
def command_124
if @params[0] == 0 # Start
$game_system.timer = @params[1] * Graphics.frame_rate
$game_system.timer_working = true
end
if @params[0] == 1 # Stop
$game_system.timer_working = false
end
return true
end
#--------------------------------------------------------------------------
# * Change Gold
#--------------------------------------------------------------------------
def command_125
value = operate_value(@params[0], @params[1], @params[2])
$game_party.gain_gold(value)
return true
end
#--------------------------------------------------------------------------
# * Change Items
#--------------------------------------------------------------------------
def command_126
value = operate_value(@params[1], @params[2], @params[3])
$game_party.gain_item($data_items[@params[0]], value)
$game_map.need_refresh = true
return true
end
#--------------------------------------------------------------------------
# * Change Weapons
#--------------------------------------------------------------------------
def command_127
value = operate_value(@params[1], @params[2], @params[3])
$game_party.gain_item($data_weapons[@params[0]], value, @params[4])
return true
end
#--------------------------------------------------------------------------
# * Change Armor
#--------------------------------------------------------------------------
def command_128
value = operate_value(@params[1], @params[2], @params[3])
$game_party.gain_item($data_armors[@params[0]], value, @params[4])
return true
end
#--------------------------------------------------------------------------
# * Change Party Member
#--------------------------------------------------------------------------
def command_129
actor = $game_actors[@params[0]]
if actor != nil
if @params[1] == 0 # Add
if @params[2] == 1 # Initialize
$game_actors[@params[0]].setup(@params[0])
end
$game_party.add_actor(@params[0])
else # Remove
$game_party.remove_actor(@params[0])
end
$game_map.need_refresh = true
end
return true
end
#--------------------------------------------------------------------------
# * Change Battle BGM
#--------------------------------------------------------------------------
def command_132
$game_system.battle_bgm = @params[0]
return true
end
#--------------------------------------------------------------------------
# * Change Battle End ME
#--------------------------------------------------------------------------
def command_133
$game_system.battle_end_me = @params[0]
return true
end
#--------------------------------------------------------------------------
# * Change Save Access
#--------------------------------------------------------------------------
def command_134
$game_system.save_disabled = (@params[0] == 0)
return true
end
#--------------------------------------------------------------------------
# * Change Menu Access
#--------------------------------------------------------------------------
def command_135
$game_system.menu_disabled = (@params[0] == 0)
return true
end
#--------------------------------------------------------------------------
# * Change Encounter
#--------------------------------------------------------------------------
def command_136
$game_system.encounter_disabled = (@params[0] == 0)
$game_player.make_encounter_count
return true
end
#--------------------------------------------------------------------------
# * Transfer Player
#--------------------------------------------------------------------------
def command_201
return true if $game_temp.in_battle
if $game_player.transfer? or # Transferring Player
$game_message.visible # Displaying a message
return false
end
if @params[0] == 0 # Direct designation
map_id = @params[1]
x = @params[2]
y = @params[3]
direction = @params[4]
else # Designation with variables
map_id = $game_variables[@params[1]]
x = $game_variables[@params[2]]
y = $game_variables[@params[3]]
direction = @params[4]
end
$game_player.reserve_transfer(map_id, x, y, direction)
@index += 1
return false
end
#--------------------------------------------------------------------------
# * Set Vehicle Location
#--------------------------------------------------------------------------
def command_202
if @params[1] == 0 # Direct designation
map_id = @params[2]
x = @params[3]
y = @params[4]
else # Designation with variables
map_id = $game_variables[@params[2]]
x = $game_variables[@params[3]]
y = $game_variables[@params[4]]
end
if @params[0] == 0 # Boat
$game_map.boat.set_location(map_id, x, y)
elsif @params[0] == 1 # Ship
$game_map.ship.set_location(map_id, x, y)
else # Airship
$game_map.airship.set_location(map_id, x, y)
end
return true
end
#--------------------------------------------------------------------------
# * Set Event Location
#--------------------------------------------------------------------------
def command_203
character = get_character(@params[0])
if character != nil
if @params[1] == 0 # Direct designation
character.moveto(@params[2], @params[3])
elsif @params[1] == 1 # Designation with variables
new_x = $game_variables[@params[2]]
new_y = $game_variables[@params[3]]
character.moveto(new_x, new_y)
else # Exchange with another event
old_x = character.x
old_y = character.y
character2 = get_character(@params[2])
if character2 != nil
character.moveto(character2.x, character2.y)
character2.moveto(old_x, old_y)
end
end
case @params[4] # Direction
when 8 # Up
character.turn_up
when 6 # Right
character.turn_right
when 2 # Down
character.turn_down
when 4 # Left
character.turn_left
end
end
return true
end
#--------------------------------------------------------------------------
# * Scroll Map
#--------------------------------------------------------------------------
def command_204
return true if $game_temp.in_battle
return false if $game_map.scrolling?
$game_map.start_scroll(@params[0], @params[1], @params[2])
return true
end
#--------------------------------------------------------------------------
# * Set Move Route
#--------------------------------------------------------------------------
def command_205
if $game_map.need_refresh
$game_map.refresh
end
character = get_character(@params[0])
if character != nil
character.force_move_route(@params[1])
@moving_character = character if @params[1].wait
end
return true
end
#--------------------------------------------------------------------------
# * Get on/off Vehicle
#--------------------------------------------------------------------------
def command_206
$game_player.get_on_off_vehicle
return true
end
#--------------------------------------------------------------------------
# * Change Transparency
#--------------------------------------------------------------------------
def command_211
$game_player.transparent = (@params[0] == 0)
return true
end
#--------------------------------------------------------------------------
# * Show Animation
#--------------------------------------------------------------------------
def command_212
character = get_character(@params[0])
if character != nil
character.animation_id = @params[1]
end
return true
end
#--------------------------------------------------------------------------
# * Show Balloon Icon
#--------------------------------------------------------------------------
def command_213
character = get_character(@params[0])
if character != nil
character.balloon_id = @params[1]
end
return true
end
#--------------------------------------------------------------------------
# * Erase Event
#--------------------------------------------------------------------------
def command_214
if @event_id > 0
$game_map.events[@event_id].erase
end
@index += 1
return false
end
#--------------------------------------------------------------------------
# * Fadeout Screen
#--------------------------------------------------------------------------
def command_221
if $game_message.visible
return false
else
screen.start_fadeout(30)
@wait_count = 30
return true
end
end
#--------------------------------------------------------------------------
# * Fadein Screen
#--------------------------------------------------------------------------
def command_222
if $game_message.visible
return false
else
screen.start_fadein(30)
@wait_count = 30
return true
end
end
#--------------------------------------------------------------------------
# * Tint Screen
#--------------------------------------------------------------------------
def command_223
screen.start_tone_change(@params[0], @params[1])
@wait_count = @params[1] if @params[2]
return true
end
#--------------------------------------------------------------------------
# * Screen Flash
#--------------------------------------------------------------------------
def command_224
screen.start_flash(@params[0], @params[1])
@wait_count = @params[1] if @params[2]
return true
end
#--------------------------------------------------------------------------
# * Screen Shake
#--------------------------------------------------------------------------
def command_225
screen.start_shake(@params[0], @params[1], @params[2])
@wait_count = @params[2] if @params[3]
return true
end
#--------------------------------------------------------------------------
# * Wait
#--------------------------------------------------------------------------
def command_230
@wait_count = @params[0]
return true
end
#--------------------------------------------------------------------------
# * Show Picture
#--------------------------------------------------------------------------
def command_231
if @params[3] == 0 # Direct designation
x = @params[4]
y = @params[5]
else # Designation with variables
x = $game_variables[@params[4]]
y = $game_variables[@params[5]]
end
screen.pictures[@params[0]].show(@params[1], @params[2],
x, y, @params[6], @params[7], @params[8], @params[9])
return true
end
#--------------------------------------------------------------------------
# * Move Picture
#--------------------------------------------------------------------------
def command_232
if @params[3] == 0 # Direct designation
x = @params[4]
y = @params[5]
else # Designation with variables
x = $game_variables[@params[4]]
y = $game_variables[@params[5]]
end
screen.pictures[@params[0]].move(@params[2], x, y, @params[6],
@params[7], @params[8], @params[9], @params[10])
@wait_count = @params[10] if @params[11]
return true
end
#--------------------------------------------------------------------------
# * Rotate Picture
#--------------------------------------------------------------------------
def command_233
screen.pictures[@params[0]].rotate(@params[1])
return true
end
#--------------------------------------------------------------------------
# * Tint Picture
#--------------------------------------------------------------------------
def command_234
screen.pictures[@params[0]].start_tone_change(@params[1], @params[2])
@wait_count = @params[2] if @params[3]
return true
end
#--------------------------------------------------------------------------
# * Erase Picture
#--------------------------------------------------------------------------
def command_235
screen.pictures[@params[0]].erase
return true
end
#--------------------------------------------------------------------------
# * Set Weather Effects
#--------------------------------------------------------------------------
def command_236
return true if $game_temp.in_battle
screen.weather(@params[0], @params[1], @params[2])
@wait_count = @params[2] if @params[3]
return true
end
#--------------------------------------------------------------------------
# * Play BGM
#--------------------------------------------------------------------------
def command_241
@params[0].play
return true
end
#--------------------------------------------------------------------------
# * Fadeout BGM
#--------------------------------------------------------------------------
def command_242
RPG::BGM.fade(@params[0] * 1000)
return true
end
#--------------------------------------------------------------------------
# * Play BGS
#--------------------------------------------------------------------------
def command_245
@params[0].play
return true
end
#--------------------------------------------------------------------------
# * Fadeout BGS
#--------------------------------------------------------------------------
def command_246
RPG::BGS.fade(@params[0] * 1000)
return true
end
#--------------------------------------------------------------------------
# * Play ME
#--------------------------------------------------------------------------
def command_249
@params[0].play
return true
end
#--------------------------------------------------------------------------
# * Play SE
#--------------------------------------------------------------------------
def command_250
@params[0].play
return true
end
#--------------------------------------------------------------------------
# * Stop SE
#--------------------------------------------------------------------------
def command_251
RPG::SE.stop
return true
end
#--------------------------------------------------------------------------
# * Battle Processing
#--------------------------------------------------------------------------
def command_301
return true if $game_temp.in_battle
if @params[0] == 0 # Direct designation
troop_id = @params[1]
else # Designation with variables
troop_id = $game_variables[@params[1]]
end
if $data_troops[troop_id] != nil
$game_troop.setup(troop_id)
$game_troop.can_escape = @params[2]
$game_troop.can_lose = @params[3]
$game_temp.battle_proc = Proc.new { |n| @branch[@indent] = n }
$game_temp.next_scene = "battle"
end
@index += 1
return false
end
#--------------------------------------------------------------------------
# * If Win
#--------------------------------------------------------------------------
def command_601
if @branch[@indent] == 0
@branch.delete(@indent)
return true
end
return command_skip
end
#--------------------------------------------------------------------------
# * If Escape
#--------------------------------------------------------------------------
def command_602
if @branch[@indent] == 1
@branch.delete(@indent)
return true
end
return command_skip
end
#--------------------------------------------------------------------------
# * If Lose
#--------------------------------------------------------------------------
def command_603
if @branch[@indent] == 2
@branch.delete(@indent)
return true
end
return command_skip
end
#--------------------------------------------------------------------------
# * Shop Processing
#--------------------------------------------------------------------------
def command_302
$game_temp.next_scene = "shop"
$game_temp.shop_goods = [@params]
$game_temp.shop_purchase_only = @params[2]
loop do
@index += 1
if @list[@index].code == 605 # Shop second line or after
$game_temp.shop_goods.push(@list[@index].parameters)
else
return false
end
end
end
#--------------------------------------------------------------------------
# * Name Input Processing
#--------------------------------------------------------------------------
def command_303
if $data_actors[@params[0]] != nil
$game_temp.next_scene = "name"
$game_temp.name_actor_id = @params[0]
$game_temp.name_max_char = @params[1]
end
@index += 1
return false
end
#--------------------------------------------------------------------------
# * Change HP
#--------------------------------------------------------------------------
def command_311
value = operate_value(@params[1], @params[2], @params[3])
iterate_actor_id(@params[0]) do |actor|
next if actor.dead?
if @params[4] == false and actor.hp + value <= 0
actor.hp = 1 # If incapacitation is not allowed, make 1
else
actor.hp += value
end
actor.perform_collapse
end
if $game_party.all_dead?
$game_temp.next_scene = "gameover"
end
return true
end
#--------------------------------------------------------------------------
# * Change MP
#--------------------------------------------------------------------------
def command_312
value = operate_value(@params[1], @params[2], @params[3])
iterate_actor_id(@params[0]) do |actor|
actor.mp += value
end
return true
end
#--------------------------------------------------------------------------
# * Change State
#--------------------------------------------------------------------------
def command_313
iterate_actor_id(@params[0]) do |actor|
if @params[1] == 0
actor.add_state(@params[2])
actor.perform_collapse
else
actor.remove_state(@params[2])
end
end
return true
end
#--------------------------------------------------------------------------
# * Recover All
#--------------------------------------------------------------------------
def command_314
iterate_actor_id(@params[0]) do |actor|
actor.recover_all
end
return true
end
#--------------------------------------------------------------------------
# * Change EXP
#--------------------------------------------------------------------------
def command_315
value = operate_value(@params[1], @params[2], @params[3])
iterate_actor_id(@params[0]) do |actor|
actor.change_exp(actor.exp + value, @params[4])
end
return true
end
#--------------------------------------------------------------------------
# * Change Level
#--------------------------------------------------------------------------
def command_316
value = operate_value(@params[1], @params[2], @params[3])
iterate_actor_id(@params[0]) do |actor|
actor.change_level(actor.level + value, @params[4])
end
return true
end
#--------------------------------------------------------------------------
# * Change Parameters
#--------------------------------------------------------------------------
def command_317
value = operate_value(@params[2], @params[3], @params[4])
actor = $game_actors[@params[0]]
if actor != nil
case @params[1]
when 0 # Maximum HP
actor.maxhp += value
when 1 # Maximum MP
actor.maxmp += value
when 2 # Attack
actor.atk += value
when 3 # Defense
actor.def += value
when 4 # Spirit
actor.spi += value
when 5 # Agility
actor.agi += value
end
end
return true
end
#--------------------------------------------------------------------------
# * Change Skills
#--------------------------------------------------------------------------
def command_318
actor = $game_actors[@params[0]]
if actor != nil
if @params[1] == 0
actor.learn_skill(@params[2])
else
actor.forget_skill(@params[2])
end
end
return true
end
#--------------------------------------------------------------------------
# * Change Equipment
#--------------------------------------------------------------------------
def command_319
actor = $game_actors[@params[0]]
if actor != nil
actor.change_equip_by_id(@params[1], @params[2])
end
return true
end
#--------------------------------------------------------------------------
# * Change Name
#--------------------------------------------------------------------------
def command_320
actor = $game_actors[@params[0]]
if actor != nil
actor.name = @params[1]
end
return true
end
#--------------------------------------------------------------------------
# * Change Class
#--------------------------------------------------------------------------
def command_321
actor = $game_actors[@params[0]]
if actor != nil and $data_classes[@params[1]] != nil
actor.class_id = @params[1]
end
return true
end
#--------------------------------------------------------------------------
# * Change Actor Graphic
#--------------------------------------------------------------------------
def command_322
actor = $game_actors[@params[0]]
if actor != nil
actor.set_graphic(@params[1], @params[2], @params[3], @params[4])
end
$game_player.refresh
return true
end
#--------------------------------------------------------------------------
# * Change Vehicle Graphic
#--------------------------------------------------------------------------
def command_323
if @params[0] == 0 # Boat
$game_map.boat.set_graphic(@params[1], @params[2])
elsif @params[0] == 1 # Ship
$game_map.ship.set_graphic(@params[1], @params[2])
else # Airship
$game_map.airship.set_graphic(@params[1], @params[2])
end
return true
end
#--------------------------------------------------------------------------
# * Change Enemy HP
#--------------------------------------------------------------------------
def command_331
value = operate_value(@params[1], @params[2], @params[3])
iterate_enemy_index(@params[0]) do |enemy|
if enemy.hp > 0
if @params[4] == false and enemy.hp + value <= 0
enemy.hp = 1 # If incapacitation is not allowed, make 1
else
enemy.hp += value
end
enemy.perform_collapse
end
end
return true
end
#--------------------------------------------------------------------------
# * Change Enemy MP
#--------------------------------------------------------------------------
def command_332
value = operate_value(@params[1], @params[2], @params[3])
iterate_enemy_index(@params[0]) do |enemy|
enemy.mp += value
end
return true
end
#--------------------------------------------------------------------------
# * Change Enemy State
#--------------------------------------------------------------------------
def command_333
iterate_enemy_index(@params[0]) do |enemy|
if @params[2] == 1 # If change of incapacitation
enemy.immortal = false # Clear immortal flag
end
if @params[1] == 0
enemy.add_state(@params[2])
enemy.perform_collapse
else
enemy.remove_state(@params[2])
end
end
return true
end
#--------------------------------------------------------------------------
# * Enemy Recover All
#--------------------------------------------------------------------------
def command_334
iterate_enemy_index(@params[0]) do |enemy|
enemy.recover_all
end
return true
end
#--------------------------------------------------------------------------
# * Enemy Appear
#--------------------------------------------------------------------------
def command_335
enemy = $game_troop.members[@params[0]]
if enemy != nil and enemy.hidden
enemy.hidden = false
$game_troop.make_unique_names
end
return true
end
#--------------------------------------------------------------------------
# * Enemy Transform
#--------------------------------------------------------------------------
def command_336
enemy = $game_troop.members[@params[0]]
if enemy != nil
enemy.transform(@params[1])
$game_troop.make_unique_names
end
return true
end
#--------------------------------------------------------------------------
# * Show Battle Animation
#--------------------------------------------------------------------------
def command_337
iterate_battler(0, @params[0]) do |battler|
next unless battler.exist?
battler.animation_id = @params[1]
end
return true
end
#--------------------------------------------------------------------------
# * Force Action
#--------------------------------------------------------------------------
def command_339
iterate_battler(@params[0], @params[1]) do |battler|
next unless battler.exist?
battler.action.kind = @params[2]
if battler.action.kind == 0
battler.action.basic = @params[3]
else
battler.action.skill_id = @params[3]
end
if @params[4] == -2 # Last target
battler.action.decide_last_target
elsif @params[4] == -1 # Random
battler.action.decide_random_target
elsif @params[4] >= 0 # Index designation
battler.action.target_index = @params[4]
end
battler.action.forcing = true
$game_troop.forcing_battler = battler
@index += 1
return false
end
return true
end
#--------------------------------------------------------------------------
# * Abort Battle
#--------------------------------------------------------------------------
def command_340
$game_temp.next_scene = "map"
@index += 1
return false
end
#--------------------------------------------------------------------------
# * Open Menu Screen
#--------------------------------------------------------------------------
def command_351
$game_temp.next_scene = "menu"
$game_temp.menu_beep = false
@index += 1
return false
end
#--------------------------------------------------------------------------
# * Open Save Screen
#--------------------------------------------------------------------------
def command_352
$game_temp.next_scene = "save"
@index += 1
return false
end
#--------------------------------------------------------------------------
# * Game Over
#--------------------------------------------------------------------------
def command_353
$game_temp.next_scene = "gameover"
return false
end
#--------------------------------------------------------------------------
# * Return to Title Screen
#--------------------------------------------------------------------------
def command_354
$game_temp.next_scene = "title"
return false
end
#--------------------------------------------------------------------------
# * Script
#--------------------------------------------------------------------------
def command_355
script = @list[@index].parameters[0] + "\n"
loop do
if @list[@index+1].code == 655 # Second line of script and after
script += @list[@index+1].parameters[0] + "\n"
else
break
end
@index += 1
end
eval(script)
return true
end



Necromunta - posté le 06/06/2009 à 18:18:11. (56271 messages postés) - admin

Vive le making libre

Mince j'ai du faire un doublon en acceptant le script.

Lien

Je savais qu'il y avais des problèmes au niveau mémorisation des objets dans une variables. Mais de mémoir pas des HP et autre.

Donc c'est pour ça que j'ai accepté ce script en cas ou.
Pour info la version oniromancienne contient le script fixe sur les variables du 1er lien.

Pixner|Offgame | Le comptoire des clikeurs


natinusala - posté le 07/06/2009 à 16:06:15. (587 messages postés)

Mon avatar est une patate trysophille aux poils de moustache musclés.

Gros script utile. Merci même si je n'utilise pas trop VX.

Attends je vais chercher un stylo


Florior742 - posté le 08/06/2009 à 22:44:17. (41 messages postés)

Super script ^^ Même si ça ne me sera pas forcément utile.


Blut Erzengel - posté le 17/07/2011 à 23:29:20. (23 messages postés)

J'ai un message d'erreur : script 'game event' line 65 : NoMethodError occured
undefined method '[]' for true: TrueClass

Comment le réparer s'il vous plait ? =/

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe

Plan du site:

Activité: Accueil | News | Forum | Flash-news | Chat | Commentaires | Galerie | Screen de la semaine | Sorties | Articles perso | Livre d'or | Recherche
Jeux: Index jeux séparés | Top Classiques | Top Originaux | Les autres | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Jeux complets | Proposer
Rubriques: Le Wiki | Collection Oniro | Tutoriaux | Scripts | Guides | Gaming-Live | Tests | Making-of | Interviews | Articles perso | OST | L'Annuaire | Divers | Palmarès
Hébergés: Aëdemphia | Fighting Robots Quest | Forstale | Geex | Inexistence | La Légende d'Ibabou | Lije | LoveMaster | Sarcia | Super Mario RPG - Lost Souls
Ressources: Jeux | Programmes | Packs de ressources | Midis | Eléments séparés | Sprites
RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis