기타

부활스크립트

by 캉쿤 posted Sep 19, 2011
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

#==============================================================================
# ■ Jackolas Advance GameOver Script
#==============================================================================
# script by:            Jackolas
# Version number:       V 1.1
# Last edit date:       17-12-09
#
# Thanks:               macht102 (for requesting)
#                       elementisland (asking for options)
#                       winkio (for example script)
#==============================================================================
# Introduction:
#   The Advance Game-Over Script gives you the option to add almost every possible
#   game-over from popular games. from the respawn in pokemon centres till the
#   show menu where you can check to respawn, reload or restart in NWN.
# ====================
# Compatibility:
#   95% compatible with SDK v1.x. 80% compatible with SDK 2.x.
#   Will not work with scripts that edit the Scene_Gameover
# ====================
# Current Features:
#   - Fixed Spawn location / Variable spawn location
#   - Map id / Variable of map id
#   - Map x / Variable of map x
#   - Map y / Variable of map y
#   - Able to lose gold on death (true/false)
#   - How much gold to lose (can be in % or in fixed number)
#   - Able to lose exp on death (true/false)
#   - Able to lose lvls on death (true/false)
#   - how much exp to lose (can be in % or in fixed number)
#   - Auto-heal on respawn (true/false)
# ====================
# To be added in later versions:
#   - Better instructions
#   - Show Game Over screen with option to continue, load or main menu (true/false)
#   - Able to lose items in backpack (true/false)
#   - Likelihood you will lose item from backpack (in %)
#   - Able to lose equipped items (true/false)
#   - Likelihood you will lose item equipped (in %)
# ====================
# Instructions:
#   Place the script above Main and below any other custom scripts.
#   Edit the Configuration to your likings.
#   Play the game and die
# ====================
# Notes:
#   - Do not edit anything else than the configuration.
#   - If you find any bugs, please report them here:
#     http://forum.chaos-project.com
#==============================================================================
module Jackolas_GameOver
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# START Configuration below
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  Fixed_Spawn = true      # true / false
  VarID = 106             # Var number for map id / fixed map ID location
  VarX = 10               # var number for map x / fixed map x location
  VarY = 14               # var number for map y / fixed map y location
#  Show_gameover = false  # true / false (not build in yet)
  LoseGold = false        # true / false
  GoldAmount = 0          # Above 1 = fixed amount / Below 1 = % of total
  LoseExp = false         # true / false
  LoseLvl = true          # true / false
  ExpAmount = 0           # Above 1 = fixed amount / Below 1 = % amount
  Autoheal = false        # true / false
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# END Configuration above
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
end

class Game_Actor
  attr_accessor :exp_list
end

class Scene_Gameover
  #--------------------------------------------------------------------------
  # * Main Processing
  #--------------------------------------------------------------------------
    def main
    # Set game over flag
    $game_temp.gameover = false
    # Return to BGM before battle starts
    $game_system.bgm_play($game_temp.map_bgm)
    # Clear in battle flag
    $game_temp.in_battle = false
    # Clear entire party actions flag
    $game_party.clear_actions
    # Clear enemies
    $game_troop.enemies.clear
    # Call battle callback
    if $game_temp.battle_proc != nil
      $game_temp.battle_proc.call(2)
      $game_temp.battle_proc = nil
    end
    # Execute transition
    Graphics.transition(120)
    # Main loop
    loop do
      # Update game screen
      Graphics.update
      # Update input information
      Input.update
      # Start special options
      auto_heal
      remove_gold
      remove_exp
      remove_item
      # start transport
      start_transport
      # Abort loop if screen is changed
      if $scene != self
        break
      end
    end
    # Prepare for transition
    Graphics.freeze
    # Execute transition
    Graphics.transition(120)
    # Prepare for transition
    Graphics.freeze
    # If battle test
    if $BTEST
      $scene = nil
    end
  end
  #--------------------------------------------------------------------------
  # * Auto heal Processing
  #--------------------------------------------------------------------------
  def auto_heal
    for actor in $game_party.actors
      actor.remove_states_battle
    end
    if Jackolas_GameOver::Autoheal
      for actor in $game_party.actors
        actor.recover_all
      end
    else
      for actor in $game_party.actors
        actor.hp = 1
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Remove Gold Processing
  #--------------------------------------------------------------------------
  def remove_gold
    if Jackolas_GameOver::LoseGold
      if Jackolas_GameOver::GoldAmount >=1
        if Jackolas_GameOver::GoldAmount >= $game_party.gold
          goldlose = $game_party.gold
        else
          goldlose = Jackolas_GameOver::GoldAmount
        end
        else
        goldlose = $game_party.gold * Jackolas_GameOver::GoldAmount
      end
      $game_party.gain_gold(-goldlose.to_i)
    else
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Remove EXP Processing
  #--------------------------------------------------------------------------
  #This works, Do never touch any of these or the script WILL crash!!!
  #The reason for the many "if" is to make sure you won't get -exp
  def remove_exp
    if Jackolas_GameOver::LoseExp
      if Jackolas_GameOver::ExpAmount >= 1
        for actor in $game_party.actors
          if Jackolas_GameOver::LoseLvl
            if Jackolas_GameOver::ExpAmount >= actor.exp
              explose = Jackolas_GameOver::ExpAmount
            else
              explose = actor.exp
            end
          else
            if (actor.exp - actor.exp_list[actor.level]) >= Jackolas_GameOver::ExpAmount
              explose = Jackolas_GameOver::ExpAmount
            else
              explose = actor.exp - actor.exp_list[actor.level]
            end           
          end
          actor.exp -= explose
          actor.exp = actor.exp.to_i
        end
      else
        for actor in $game_party.actors
          if Jackolas_GameOver::LoseLvl
            explose = actor.exp * Jackolas_GameOver::ExpAmount
          else
            explose = (actor.exp - actor.exp_list[actor.level]) * Jackolas_GameOver::ExpAmount
          end
          actor.exp -= explose
          actor.exp = actor.exp.to_i
        end
      end
    else
      return
    end
  end
  #--------------------------------------------------------------------------
  # * Remove item Processing
  #--------------------------------------------------------------------------
  def remove_item
    return
  end
  #--------------------------------------------------------------------------
  # * start_transport
  #--------------------------------------------------------------------------
  def start_transport
    # Set variables
    if Jackolas_GameOver::Fixed_Spawn
      @MapID = Jackolas_GameOver::VarID
      @MapX = Jackolas_GameOver::VarX
      @MapY = Jackolas_GameOver::VarY
    else
      @MapID = $game_variables[Jackolas_GameOver::VarID]
      @MapX = $game_variables[Jackolas_GameOver::VarX]
      @MapY = $game_variables[Jackolas_GameOver::VarY]
    end
    # Transport player
    $game_map.setup(@MapID)
    $game_player.moveto(@MapX, @MapY)
    # Refresh map
    $game_player.refresh
    $game_map.autoplay
    $game_map.update
    $scene = Scene_Map.new 
  end
end

Who's 캉쿤

?

배고파요ㅠㅜ

전 댓글을 먹고 살아요ㅠㅜ

댓글 하나만요ㅠㅜ