Jump to content

AD-Blocker detected, please disable your ad-blocker when surfing in makerando.com - There is no invasive Ad.

 

  • Chatbox

    You don't have permission to chat.
    Load More
Sign in to follow this  

Recommended Posts

Autore: Apellonyx

 

Versione: 1.10

 

Informazioni: Questo Script aggiunge al gioco la Funzione di Sopravvivenza, tra cui: Fame, Vita, Acqua ecc..

 

Screenshot:

 

 

n/a

 

Script: 

 

=begin
======================================
  Survival System v1.11 (formerly known as Needs System)
  Created by: Apellonyx
  Released: 2 April 2013
  Last Update: 5 April 2013
======================================
  Terms of Use:
    You are free to use this system however you wish, in commercial and non-
    commercial games alike. If you edit the script extensively, it is not
    necessary to credit me (since you clearly only used my code as a framework),
    but I would appreciate credit if it is used in its current form, or if only
    minor changes were made to the script.
======================================
  Support:
    While I am not wildly active, I usually log onto "rpgmakervxace.com" daily,
    so if you have any questions pertaining to the script, you can ask any
    questions there, in the topic in which this script was released. Just as a
    warning, though, I will not edit the script to make it compatible with any
    special menu systems, but I will try to fix bugs as they come up. If you
    find one, let me know, and I'll do my best to squash the thing.
======================================
  Changelog:
    v1.0: 2 April 2013 - Original version. Included food, water, rest, and life.
    v1.01: 3 April 2013 - Added configurable maximum values for food,
      water, and rest, and made the maximum for life a configurable value. The
      failsafe mentioned in v1.0's Instructions is no longer needed.
    v1.02: 3 April 2013 - Added support for a fully configurable "reverse logic"
      stat, as suggested by esrann.
    v1.10: 5 April 2013 - Complete rewrite using global variables rather than
      game variables and switches. All stats are now optional, configurable,
      and can be hidden from the menu.
    v1.11: 17 May 2013 - Fixed a major bug involving the use of float values.
      Floats should work just fine now without causing the game to crash or
      the script to just die randomly. Also added background opacity config.
======================================
  Requirements:
    There are no longer any requirements for this script. I'm working on a
    script that will allow the global variables to be changed through note
    calls, but it may be a minute for that.
======================================
  Description:
    This sets up a needs system, which includes food, water, and rest, all of
    which affect the main need, life. The 1.02 update also added a reverse logic
    stat for toxin or radiation handling. All five stats, along with their
    update rates, are handled by global variables, and can be changed at any
    time with a simple script call.
======================================
  Instructions:
    First, you're going to want to set up how you want the script to run. All of
    the options are in the first module of the script, named "Anyx." I don't
    recommend changing anything after that module unless you know what you are
    doing.
    
    Second, once you have all of your options set up, you can go about setting
    up the nourishment items. All you have to do is set it up in the database as
    you normally would, and then attach an effect that calls a common event.
    Inside the common event, use one of the following scripts call to change the
    appropriate variable. It's as simple as that.
    
    $survival_v[id] op value
    id = The stat you want to change. 1 is for life, 2 food, 3 water, 4 rest,
      and 5 toxin. Ids 6-10 are used to hold the stats' rates. 6 is for life, 7
      food, 8 water, 9 rest, and 10 toxin (setting any of these rates to 0 will
      disable updates for its stat, effectively pausing the system for that stat
      individually without pausing it for the others)
    op = The operator used to formulate the new value. += is used to add, -= is
      for subtraction, *= is for multiplication, /= is for division, and %= is
      for modulus. There are others, and they all work, but I don't imagine you
      would use them for this script, so I won't explain them here.
    value = The value you would like to alter the variable by. For example, if
      you are adding 10 to a variable, this would be 10.
      
    $survival_s[id] = value
    id = The stat you wish to enable or disable. 1 is for life, 2 food, 3 water,
      4 rest, 5 toxin. Ids 6-10 are used to hide the stat bars from the menu.
    value = true/false. Setting the value to true for ids 1-5 will enable the
      associated stat. Setting it to false will disable it completely. For ids
      6-10, setting the value to true will hide that stat from the menu, but
      still allow it to update (this can be customized using the LIFEHIDEVAL,
      FOODHIDEVAL, WATERHIDEVAL, RESTHIDEVAL, and TOXINHIDEVAL options in the
      Anyx module below. When the hide option is true, that stat will be hidden
      from the menu until the stat is below the (STAT)HIDEVAL's value, or above
      the TOXINHIDEVAL's value for the toxin stat). If false, the stat will be
      visible in the menu at all times.
    
    You no longer need to manually set the initial values for each variable, as
    this can be done through the script, but you do need to turn on the survival
    switch manually, or the script won't do anything.
======================================
=end
 
$imported = {} if $imported.nil?
$imported['Apellonyx-Survival'] = true
 
puts "Load: Survival System v1.10 by Apellonyx"
 
module Anyx
  
  WINXPOS       = 0 # X position of the survival window
  WINYPOS       = 320 # Y position of the survival window
  WINWIDTH      = 160 # Width of the survival window
  WINTEXT       = 20 # Text size used in the survival window (looks best at 20)
  WINOPACITY    = 255 # Opacity of the survival window
  
  SURVIVALSWITCH  = 1 # Game switch ID for enabling and disabling the system
  ONINBATTLE      = true # Whether the system will update during battle scenes
  DEATHATZERO     = true # If true, will cause a gameover when the life stat
                         # reaches 0
  DEATHFULLTOXIN  = true # If true, will cause a gameover when the toxin stat
                         # reaches its maximum value
  
  LIFEVOCAB       = "Life" # Vocab used for the life stat in the menu
  LIFEINIT        = 100 # Initial value of the life stat in new games
  LIFERATE        = 300 # Number of frames between life stat updates
  LIFEMAX         = 100 # Maximum value for the life bar in the menu
  LIFEEXC         = 100 # Maximum value for the life stat (can exceed LIFEMAX)
  LIFEENABLE      = true # If true, the life stat will be enabled
  LIFEHIDE        = true # If true, the life bar will be hidden from the menu
  LIFEHIDEVAL     = 100 # If LIFEHIDE is true, the life bar will appear when it
                        # falls below this value.
  
  FOODVOCAB       = "Food" # Vocab used for the food stat in the menu
  FOODINIT        = 100 # Initial value of the food stat in new games
  FOODRATE        = 1200 # Number of frames between food stat updates
  FOODMAX         = 100 # Maximum value for the food bar in the menu
  FOODEXC         = 110 # Maximum value for the food stat (can exceed FOODMAX)
  FOODMOD         = -1.0 # Value of the food stat's change each update; positive
                         # values will increase the stat over time, negative
                         # values decrease the stat over time, and 0 will cause
                         # no update to occur over time. Accepts float values.
  FOODENABLE      = true # If true, the food stat will be enabled
  FOODHIDE        = true # If true, the food bar will be hidden from the menu
  FOODHIDEVAL     = 100 # If FOODHIDE is true, the food bar will appear when it
                        # falls below this value.
  
  WATERVOCAB      = "Water" # Vocab used for the water stat in the menu
  WATERINIT       = 100 # Initial value of the water stat in new games
  WATERRATE       = 900 # Number of frames between water stat updates
  WATERMAX        = 100 # Maximum value for the water bar in the menu
  WATEREXC        = 110 # Maximum value for the water stat (can exceed WATERMAX)
  WATERMOD        = -1.0 # Value of the water stat's change each update; positive
                         # values will increase the stat over time, negative
                         # values decrease the stat over time, and 0 will cause
                         # no update to occur over time. Accepts float values.
  WATERENABLE     = true # If true, the water stat will be enabled
  WATERHIDE       = true # If true, the water bar will be hidden from the menu
  WATERHIDEVAL    = 100 # If WATERHIDE is true, the water bar will appear when
                        # it falls below this value.
  
  RESTVOCAB       = "Rest" # Vocab used for the rest stat in the menu
  RESTINIT        = 100 # Initial value of the rest stat in new games
  RESTRATE        = 1500 # Number of frames between rest stat updates
  RESTMAX         = 100 # Maximum value for the rest bar in the menu
  RESTEXC         = 110 # Maximum value for the rest stat (can exceed RESTMAX)
  RESTMOD         = -1.0 # Value of the rest stat's change each update; positive
                         # values will increase the stat over time, negative
                         # values decrease the stat over time, and 0 will cause
                         # no update to occur over time. Accepts float values.
  RESTENABLE      = true # If true, the rest stat will be enabled
  RESTHIDE        = true # If true, the rest bar will be hidden from the menu
  RESTHIDEVAL     = 100 # If RESTHIDE is true, the rest bar will appear when it
                        # falls below this value.
  
  TOXINVOCAB      = "Toxin" # Vocab used for the toxin stat in the menu
  TOXININIT       = 0 # Initial value of the toxin stat in new games
  TOXINRATE       = 100 # Number of frames between toxin stat updates
  TOXINMAX        = 1000 # Maximum value for the toxin stat and toxin bar
  TOXINMOD        = 0.1 # Value of the toxin stat's change each update; positive
                        # values will increase the stat over time, negative
                        # values decrease the stat over time, and 0 will cause
                        # no update to occur over time. Accepts float values.
  TOXINENABLE     = true # If true, the toxin stat will be enabled
  TOXINHIDE       = true # If true, the toxin bar will be hidden from the menu
  TOXINHIDEVAL    = 0 # If TOXINHIDE is true, the toxin bar will appear when it
                      # rises above this value.
  
  LIFECOLORL      = 17 # Color ID of the left side of the life bar
  LIFECOLORR      = 6 # Color ID of the right side of the life bar
  FOODCOLORL      = 3 # Color ID of the left side of the food bar
  FOODCOLORR      = 24 # Color ID of the right side of the food bar
  WATERCOLORL     = 16 # Color ID of the left side of the water bar
  WATERCOLORR     = 4 # Color ID of the right side of the water bar
  RESTCOLORL      = 31 # Color ID of the left side of the rest bar
  RESTCOLORR      = 13 # Color ID of the right side of the rest bar
  TOXINCOLORL     = 10 # Color ID of the left side of the toxin bar
  TOXINCOLORR     = 2 # Color ID of the right side of the toxin bar
  
  EXCCOLOR        = 11 # Color ID of text for stat values over 100%
  SATCOLOR        = 24 # Color ID of text for stat values between 76 and 100%
  AVECOLOR        = 17 # Color ID of text for stat values between 51 and 75%
  LOWCOLOR        = 14 # Color ID of text for stat values between 26 and 50%
  DANCOLOR        = 20 # Color ID of text for stat values between 1 and 25%
  DEPCOLOR        = 18 # Color ID of text for stat values of 0%
  
################################################################################
################################################################################
###                                                                          ###
###  I don't recommend editing anything past this line unless you know what  ###
###   you are doing. If you do know what you're doing, however, go for it!   ###
###                                                                          ###
################################################################################
################################################################################
 
  def self.create_survival_commands
    $survival_v       =   Survival_Variables.new
    $survival_s       =   Survival_Switches.new
    $survival_v[1]    =   LIFEINIT
    $survival_v[6]    =   LIFERATE
    $survival_s[1]    =   LIFEENABLE
    $survival_s[6]    =   LIFEHIDE
    $survival_v[2]    =   FOODINIT
    $survival_v[7]    =   FOODRATE
    $survival_s[2]    =   FOODENABLE
    $survival_s[7]    =   FOODHIDE
    $survival_v[3]    =   WATERINIT
    $survival_v[8]    =   WATERRATE
    $survival_s[3]    =   WATERENABLE
    $survival_s[8]    =   WATERHIDE
    $survival_v[4]    =   RESTINIT
    $survival_v[9]    =   RESTRATE
    $survival_s[4]    =   RESTENABLE
    $survival_s[9]    =   RESTHIDE
    $survival_v[5]    =   TOXININIT
    $survival_v[10]   =   TOXINRATE
    $survival_s[5]    =   TOXINENABLE
    $survival_s[10]   =   TOXINHIDE
  end # def self.create_survival_commands
  
  class Survival_Variables
    def initialize
      @data = []
    end # def initialize
    def [](variable_id)
      @data[variable_id] || 0
    end # def [](variable_id)
    def []=(variable_id, value)
      @data[variable_id] = value
      on_change
    end # def []=(variable_id, value)
    def on_change
      $game_map.need_refresh = true
    end # def on_change
  end # class Survival_Variables
 
  class Survival_Switches
    def initialize
      @data = []
    end # def initialize
    def [](switch_id)
      @data[switch_id] || false
    end # def [](switch_id)
    def []=(switch_id, value)
      @data[switch_id] = value
      on_change
    end # def []=(switch_id, value)
    def on_change
      $game_map.need_refresh = true
    end # def on_change
  end # class Survival_Switches
 
  def self.update
    if $game_switches[SURVIVALSWITCH] == true
      if $survival_s[1] == true
        if $survival_v[6] > 0
          if Graphics.frame_count % $survival_v[6] == 0
            Anyx.life_update
          end # if Graphics.frame_count % $survival_v[6] == 0
        end # if $survival_v[6] > 0
      end # if $survival_s[1] == true
      if $survival_s[2] == true
        if $survival_v[7] > 0
          if Graphics.frame_count % $survival_v[7] == 0
            if $survival_v[2] < FOODEXC
              $survival_v[2] += FOODMOD if $survival_v[2] > 0
            end
          end # if Graphics.frame_count % $survival_v[7] == 0
        end # if $survival_v[7] > 0
      end # if $survival_s[1] == true
      if $survival_s[3] == true
        if $survival_v[8] > 0
          if Graphics.frame_count % $survival_v[8] == 0
            if $survival_v[3] < WATEREXC
              $survival_v[3] += WATERMOD if $survival_v[3] > 0
            end
          end # if Graphics.frame_count % $survival_v[8] == 0
        end # if $survival_v[8] > 0
      end # if $survival_s[3] == true
      if $survival_s[4] == true
        if $survival_v[9] > 0
          if Graphics.frame_count % $survival_v[9] == 0
            if $survival_v[4] < RESTEXC
              $survival_v[4] += RESTMOD if $survival_v[4] > 0
            end
          end # if Graphics.frame_count % $survival_v[9] == 0
        end # if $survival_v[9] > 0
      end # if $survival_s[4] == true
      if $survival_s[5] == true
        if $survival_v[10] > 0
          if Graphics.frame_count % $survival_v[10] == 0
            if $survival_v[5] < TOXINMAX
              $survival_v[5] += TOXINMOD if $survival_v[5] > 0
            end
          end # if Graphics.frame_count % $survival_v[10] == 0
        end # if $survival_v[10] > 0
      end # if $survival_s[5] == true
      $survival_v[1] = 0 if $survival_v[1] < 0
      $survival_v[2] = 0 if $survival_v[2] < 0
      $survival_v[3] = 0 if $survival_v[3] < 0
      $survival_v[4] = 0 if $survival_v[4] < 0
      $survival_v[5] = 0 if $survival_v[5] < 0
      $survival_v[1] = LIFEEXC if $survival_v[1] > LIFEEXC
      $survival_v[2] = FOODEXC if $survival_v[2] > FOODEXC
      $survival_v[3] = WATEREXC if $survival_v[3] > WATEREXC
      $survival_v[4] = RESTEXC if $survival_v[4] > RESTEXC
      $survival_v[5] = TOXINMAX if $survival_v[5] > TOXINMAX
      if $survival_v[1] <= 0
        SceneManager.call(Scene_Gameover) if DEATHATZERO
      end # if $survival_v[1] <= 0
      if $survival_v[5] >= TOXINMAX
        SceneManager.call(Scene_Gameover) if DEATHFULLTOXIN
      end # if $survival_v[5] >= TOXINMAX
    end # if $game_switches[SURVIVALSWITCH] == true
  end # def update
  
  def self.life_update
    if $survival_s[2] == true
      food_25 = FOODMAX / 4
      food_26 = food_25 + 0.001
      food_50 = food_25 * 2
      food_51 = food_50 + 0.001
      food_75 = food_25 * 3
      food_76 = food_75 + 0.001
      food_mod = -0.3 if 0 >= $survival_v[2]
      food_mod = -0.2 if (1..food_25) === $survival_v[2]
      food_mod = -0.1 if (food_26..food_50) === $survival_v[2]
      food_mod =  0.0 if (food_51..food_75) === $survival_v[2]
      food_mod =  0.1 if (food_76..FOODMAX) === $survival_v[2]
      food_mod =  0.2 if FOODMAX < $survival_v[2]
    else
      food_mod = 0
    end # if $survival_s[2] == true
    if $survival_s[3] == true
      water_25 = WATERMAX / 4
      water_26 = water_25 + 0.001
      water_50 = water_25 * 2
      water_51 = water_50 + 0.001
      water_75 = water_25 * 3
      water_76 = water_75 + 0.001
      water_mod = -0.3 if 0 >= $survival_v[3]
      water_mod = -0.2 if (1..water_25) === $survival_v[3]
      water_mod = -0.1 if (water_26..water_50) === $survival_v[3]
      water_mod =  0.0 if (water_51..water_75) === $survival_v[3]
      water_mod =  0.1 if (water_76..WATERMAX) === $survival_v[3]
      water_mod =  0.2 if WATERMAX < $survival_v[3]
    else
      water_mod = 0
    end # if $survival_s[4] == true
    if $survival_s[4] == true
      rest_25 = RESTMAX / 4
      rest_26 = rest_25 + 0.001
      rest_50 = rest_25 * 2
      rest_51 = rest_50 + 0.001
      rest_75 = rest_25 * 3
      rest_76 = rest_75 + 0.001
      rest_mod = -0.3 if 0 >= $survival_v[4]
      rest_mod = -0.2 if (1..rest_25) === $survival_v[4]
      rest_mod = -0.1 if (rest_26..rest_50) === $survival_v[4]
      rest_mod =  0.0 if (rest_51..rest_75) === $survival_v[4]
      rest_mod =  0.1 if (rest_76..RESTMAX) === $survival_v[4]
      rest_mod =  0.2 if RESTMAX < $survival_v[4]
    else
      rest_mod = 0
    end # if $survival_s[4] == true
    if $survival_s[5] == true
      toxin_25 = TOXINMAX / 4
      toxin_26 = toxin_25 + 0.001
      toxin_50 = toxin_25 * 2
      toxin_51 = toxin_50 + 0.001
      toxin_75 = toxin_25 * 3
      toxin_76 = toxin_75 + 0.001
      toxin_99 = TOXINMAX - 0.001
      toxin_mod =  0.1 if 0 >= $survival_v[5]
      toxin_mod =  0.0 if (1..toxin_25) === $survival_v[5]
      toxin_mod = -0.2 if (toxin_26..toxin_50) === $survival_v[5]
      toxin_mod = -0.4 if (toxin_51..toxin_75) === $survival_v[5]
      toxin_mod = -0.6 if (toxin_76..toxin_99) === $survival_v[5]
      toxin_mod = -0.8 if TOXINMAX <= $survival_v[5]
    else
      toxin_mod = 0.0
    end # if $survival_s[5] == true
    life_mod = food_mod + water_mod + rest_mod + toxin_mod
    $survival_v[1] += life_mod.round.to_i
  end # def life_update()
  
end # module Anyx
 
class Scene_Title
  alias survival_new_game command_new_game
  def command_new_game
    Anyx.create_survival_commands
    survival_new_game
  end # def command_new_game
end # class Scene_Title
 
class Scene_Map < Scene_Base
  alias survival_map_update update
  def update
    Anyx.update
    survival_map_update
  end # def update
end # class Scene_Base
 
class Scene_Battle < Scene_Base
  alias survival_battle_update update
  def update
    if Anyx::ONINBATTLE == true
      Anyx.update
      survival_battle_update
    end # if Anyx::ONINBATTLE == true
  end # def update
end # class Scene_Base
 
class Scene_Menu < Scene_MenuBase
  alias survival_menu_start start
  def start
    create_survival_window
    survival_menu_start
  end # def start
  def create_survival_window
    barcount = 0
    if $survival_s[1] == true
      barcount += 1 if $survival_s[6] == false || $survival_v[1] < Anyx::LIFEHIDEVAL
    end # if $survival_s[1] == true
    if $survival_s[2] == true
      barcount += 1 if $survival_s[7] == false || $survival_v[2] < Anyx::FOODHIDEVAL
    end # if $survival_s[2] == true
    if $survival_s[3] == true
      barcount += 1 if $survival_s[8] == false || $survival_v[3] < Anyx::WATERHIDEVAL
    end # if $survival_s[3] == true
    if $survival_s[4] == true
      barcount += 1 if $survival_s[9] == false || $survival_v[4] < Anyx::RESTHIDEVAL
    end # if $survival_s[4] == true
    if $survival_s[5] == true
      barcount += 1 if $survival_s[10] == false || $survival_v[5] > Anyx::TOXINHIDEVAL
    end # if $survival_s[5] == true
    @survival_window = Window_Survival.new
    @survival_window.contents.draw_text(0, 0, 500, 24, " Survival System") if barcount == 0
    barcount -= 1 if barcount >= 1
    survivalwinypos = Anyx::WINYPOS - (24 * barcount)
    @survival_window.x = Anyx::WINXPOS
    @survival_window.y = survivalwinypos
    @survival_window.opacity = Anyx::WINOPACITY
  end # def create_survival_window
end # class Scene_Menu < Scene_MenuBase
 
class Window_Survival < Window_Base
  def initialize
    winheight = 0
    if $survival_s[1] == true
      winheight += 1 if $survival_s[6] == false || $survival_v[1] < Anyx::LIFEHIDEVAL
    end # if $survival_s[1] == true
    if $survival_s[2] == true
      winheight += 1 if $survival_s[7] == false || $survival_v[2] < Anyx::FOODHIDEVAL
    end # if $survival_s[2] == true
    if $survival_s[3] == true
      winheight += 1 if $survival_s[8] == false || $survival_v[3] < Anyx::WATERHIDEVAL
    end # if $survival_s[3] == true
    if $survival_s[4] == true
      winheight += 1 if $survival_s[9] == false || $survival_v[4] < Anyx::RESTHIDEVAL
    end # if $survival_s[4] == true
    if $survival_s[5] == true
      winheight += 1 if $survival_s[10] == false || $survival_v[5] > Anyx::TOXINHIDEVAL
    end # if $survival_s[5] == true
    if winheight == 0
      winheight = 1
    end # if winheight == 0
    super(0, 0, Anyx::WINWIDTH, fitting_height(winheight))
    self.opacity = Anyx::WINOPACITY
    refresh
  end # def initialize
  
  def exc_color
    text_color(Anyx::EXCCOLOR)
  end # def exc_color
  def sat_color
    text_color(Anyx::SATCOLOR)
  end # def sat_color
  def ave_color
    text_color(Anyx::AVECOLOR)
  end # def ave_color
  def low_color
    text_color(Anyx::LOWCOLOR)
  end # def low_color
  def dan_color
    text_color(Anyx::DANCOLOR)
  end # def dan_color
  def dep_color
    text_color(Anyx::DEPCOLOR)
  end # def dep_color
  
  def refresh
    contents.clear
    contents.font.size = Anyx::WINTEXT
    lineheight = 0
    if $survival_s[1] == true
      if $survival_s[6] == false || $survival_v[1] < Anyx::LIFEHIDEVAL
        draw_life(0,0,lineheight)
        lineheight += 24
      end # if $survival_s[6] == false || $survival_v[1] < Anyx::LIFEHIDEVAL
    end # if $survival_s[1] == true
    if $survival_s[2] == true
      if $survival_s[7] == false || $survival_v[2] < Anyx::FOODHIDEVAL
        draw_food(0,0,lineheight)
        lineheight += 24
      end # if $survival_s[7] == false || $survival_v[2] < Anyx::FOODHIDEVAL
    end # if $survival_s[2] == true
    if $survival_s[3] == true
      if $survival_s[8] == false || $survival_v[3] < Anyx::WATERHIDEVAL
        draw_water(0,0,lineheight)
        lineheight += 24
      end # if $survival_s[8] == false || $survival_v[3] < Anyx::WATERHIDEVAL
    end # if $survival_s[3] == true
    if $survival_s[4] == true
      if $survival_s[9] == false || $survival_v[4] < Anyx::RESTHIDEVAL
        draw_rest(0,0,lineheight)
        lineheight += 24
      end # if $survival_s[9] == false || $survival_v[4] < Anyx::RESTHIDEVAL
    end # if $survival_s[4] == true
    if $survival_s[5] == true
      if $survival_s[10] == false || $survival_v[5] > Anyx::TOXINHIDEVAL
        draw_toxin(0,0,lineheight)
        lineheight += 24
      end # if $survival_s[10] == false || $survival_v[5] > Anyx::TOXINHIDEVAL
    end # if $survival_s[5] == true
  end # def refresh
  
  def draw_life(actor, x, y, width = Anyx::WINWIDTH - 22)
    life_25 = Anyx::LIFEMAX / 4
    life_26 = life_25 + 0.001
    life_50 = life_25 * 2
    life_51 = life_50 + 0.001
    life_75 = life_25 * 3
    life_76 = life_75 + 0.001
    life_99 = Anyx::LIFEMAX - 0.001
    life_color = dep_color if 1 > $survival_v[1]
    life_color = dan_color if (1..life_25) === $survival_v[1]
    life_color = low_color if (life_26..life_50) === $survival_v[1]
    life_color = ave_color if (life_51..life_75) === $survival_v[1]
    life_color = sat_color if (life_76..life_99) === $survival_v[1]
    life_color = exc_color if Anyx::LIFEMAX <= $survival_v[1]
    life_rate = $survival_v[1] / Anyx::LIFEMAX.to_f
    draw_gauge(x, y, width, life_rate, text_color(Anyx::LIFECOLORL), text_color(Anyx::LIFECOLORR))
    change_color(system_color)
    draw_text(x, y, 100, line_height, Anyx::LIFEVOCAB)
    draw_current_and_max_values(x, y, width, $survival_v[1].round.to_i, Anyx::LIFEMAX, life_color, life_color)
  end # def draw_life(actor, x, y, width = Anyx::WINWIDTH - 22)
  def draw_food(actor, x, y, width = Anyx::WINWIDTH - 22)
    food_25 = Anyx::FOODMAX / 4
    food_26 = food_25 + 0.001
    food_50 = food_25 * 2
    food_51 = food_50 + 0.001
    food_75 = food_25 * 3
    food_76 = food_75 + 0.001
    food_99 = Anyx::FOODMAX - 0.001
    food_color = dep_color if 1 > $survival_v[2]
    food_color = dan_color if (1..food_25) === $survival_v[2]
    food_color = low_color if (food_26..food_50) === $survival_v[2]
    food_color = ave_color if (food_51..food_75) === $survival_v[2]
    food_color = sat_color if (food_76..food_99) === $survival_v[2]
    food_color = exc_color if Anyx::FOODMAX <= $survival_v[2]
    food_rate = $survival_v[2] / Anyx::FOODMAX.to_f
    draw_gauge(x, y, width, food_rate, text_color(Anyx::FOODCOLORL), text_color(Anyx::FOODCOLORR))
    change_color(system_color)
    draw_text(x, y, 100, line_height, Anyx::FOODVOCAB)
    draw_current_and_max_values(x, y, width, $survival_v[2].round.to_i, Anyx::FOODMAX, food_color, food_color)
  end # def draw_food(actor, x, y, width = Anyx::WINWIDTH - 22)
  def draw_water(actor, x, y, width = Anyx::WINWIDTH - 22)
    water_25 = Anyx::WATERMAX / 4
    water_26 = water_25 + 0.001
    water_50 = water_25 * 2
    water_51 = water_50 + 0.001
    water_75 = water_25 * 3
    water_76 = water_75 + 0.001
    water_99 = Anyx::WATERMAX - 0.001
    water_color = dep_color if 1 > $survival_v[3]
    water_color = dan_color if (1..water_25) === $survival_v[3]
    water_color = low_color if (water_26..water_50) === $survival_v[3]
    water_color = ave_color if (water_51..water_75) === $survival_v[3]
    water_color = sat_color if (water_76..water_99) === $survival_v[3]
    water_color = exc_color if Anyx::WATERMAX <= $survival_v[3]
    water_rate = $survival_v[3] / Anyx::WATERMAX.to_f
    draw_gauge(x, y, width, water_rate, text_color(Anyx::WATERCOLORL), text_color(Anyx::WATERCOLORR))
    change_color(system_color)
    draw_text(x, y, 100, line_height, Anyx::WATERVOCAB)
    draw_current_and_max_values(x, y, width, $survival_v[3].round.to_i, Anyx::WATERMAX, water_color, water_color)
  end # def draw_water(actor, x, y, width = Anyx::WINWIDTH - 22)
  def draw_rest(actor, x, y, width = Anyx::WINWIDTH - 22)
    rest_25 = Anyx::WATERMAX / 4
    rest_26 = rest_25 + 0.001
    rest_50 = rest_25 * 2
    rest_51 = rest_50 + 0.001
    rest_75 = rest_25 * 3
    rest_76 = rest_75 + 0.001
    rest_99 = Anyx::RESTMAX - 0.001
    rest_color = dep_color if 1 > $survival_v[4]
    rest_color = dan_color if (1..rest_25) === $survival_v[4]
    rest_color = low_color if (rest_26..rest_50) === $survival_v[4]
    rest_color = ave_color if (rest_51..rest_75) === $survival_v[4]
    rest_color = sat_color if (rest_76..rest_99) === $survival_v[4]
    rest_color = exc_color if Anyx::RESTMAX <= $survival_v[4]
    rest_rate = $survival_v[4] / Anyx::RESTMAX.to_f
    draw_gauge(x, y, width, rest_rate, text_color(Anyx::RESTCOLORL), text_color(Anyx::RESTCOLORR))
    change_color(system_color)
    draw_text(x, y, 100, line_height, Anyx::RESTVOCAB)
    draw_current_and_max_values(x, y, width, $survival_v[4].round.to_i, Anyx::RESTMAX, rest_color, rest_color)
  end # def draw_rest(actor, x, y, width = Anyx::WINWIDTH - 22)
  def draw_toxin(actor, x, y, width = Anyx::WINWIDTH - 22)
    toxin_25 = Anyx::TOXINMAX / 4
    toxin_26 = toxin_25 + 0.001
    toxin_50 = toxin_25 * 2
    toxin_51 = toxin_50 + 0.001
    toxin_75 = toxin_25 * 3
    toxin_76 = toxin_75 + 0.001
    toxin_99 = Anyx::TOXINMAX - 0.001
    toxin_color = exc_color if 1 > $survival_v[5]
    toxin_color = sat_color if (1..toxin_25) === $survival_v[5]
    toxin_color = ave_color if (toxin_26..toxin_50) === $survival_v[5]
    toxin_color = low_color if (toxin_51..toxin_75) === $survival_v[5]
    toxin_color = dan_color if (toxin_76..toxin_99) === $survival_v[5]
    toxin_color = dep_color if Anyx::TOXINMAX <= $survival_v[5]
    toxin_rate = $survival_v[5] / Anyx::TOXINMAX.to_f
    draw_gauge(x, y, width, toxin_rate, text_color(Anyx::TOXINCOLORL), text_color(Anyx::TOXINCOLORR))
    change_color(system_color)
    draw_text(x, y, 100, line_height, Anyx::TOXINVOCAB)
    draw_current_and_max_values(x, y, width, $survival_v[5].round.to_i, Anyx::TOXINMAX, toxin_color, toxin_color)
  end # def draw_toxin(actor, x, y, width = Anyx::WINWIDTH - 22)
end # class
 
module DataManager
  def self.make_save_contents
    contents = {}
    contents[:system]        = $game_system
    contents[:timer]         = $game_timer
    contents[:message]       = $game_message
    contents[:switches]      = $game_switches
    contents[:variables]     = $game_variables
    contents[:self_switches] = $game_self_switches
    contents[:actors]        = $game_actors
    contents[:party]         = $game_party
    contents[:troop]         = $game_troop
    contents[:map]           = $game_map
    contents[:player]        = $game_player
    contents[:anyx_ss]       = $survival_s
    contents[:anyx_sv]       = $survival_v
    contents
  end # self.make_save_contents
  def self.extract_save_contents(contents)
    $game_system        = contents[:system]
    $game_timer         = contents[:timer]
    $game_message       = contents[:message]
    $game_switches      = contents[:switches]
    $game_variables     = contents[:variables]
    $game_self_switches = contents[:self_switches]
    $game_actors        = contents[:actors]
    $game_party         = contents[:party]
    $game_troop         = contents[:troop]
    $game_map           = contents[:map]
    $game_player        = contents[:player]
    $survival_s         = contents[:anyx_ss]
    $survival_v         = contents[:anyx_sv]
  end # self.extract_save_contents(contents)
end # module DataManager

 

Share this post


Link to post
Share on other sites

Andrò un tantino offtopic ma da Cell in questo momento vedo che ci sta un'immagine che  fa riferimento al ministero dell'interno che dice che una pagina è interdetta perché infrange le norme sulla pedopornografia su Internet controllerei bene i link nel post per non incorrere in casini vari che poco hanno a che fare col making ed il forum stesso!

Edited by kaine (see edit history)

Share this post


Link to post
Share on other sites
2 ore fa, kaine dice:

Andrò un tantino offtopic ma da Cell in questo momento vedo che ci sta un'immagine che  fa riferimento al ministero dell'interno che dice che una pagina è interdetta perché infrange le norme sulla pedopornografia su Internet controllerei bene i link nel post per non incorrere in casini vari che poco hanno a che fare col making ed il forum stesso!

 

Ho controllato il link da pc è sembra funzionare regolarmente, comunque per sicurezza per ora ho rimosso il link e incollato lo script direttamente nel topic, così non dovremmo avere alcun problema

Share this post


Link to post
Share on other sites
24 minuti fa, Ghost Rider dice:

 

Ho controllato il link da pc è sembra funzionare regolarmente, comunque per sicurezza per ora ho rimosso il link e incollato lo script direttamente nel topic, così non dovremmo avere alcun problema

Ghostino ci sta ancora è la seconda immagine a quanto pare che ha qualcosa che non va.

Edit:

Il link è a tinypic quindi ha a che fare proprio con l'host dell'immagine.

Possibile che tinypic da quando è a pagamento stia riciclando i link e qualche zozzone abbia caricato qualcosa di non proprio consono.

L'immagine finisce in 2lw2sy.jpg

Edited by kaine (see edit history)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • By Tentauren_
      Tentauren

      presenta

      La storia del manichino che per sbaglio conobbe la vita v. 3.0


      1. Introduzione
      Forse qualcuno di voi si ricorderà delle varie iterazioni di questo progetto, che da un decennio emerge e riaffonda nelle pieghe delle mie fantasie pre-sonno. Il manichino è stato tante cose: una sfida, con una demo non giocabile nel 2011 fatta con RPGMaker 2003 in un solo pomeriggio (potete trovare il topic qui, ma il link di download è sicuramente rotto); un omaggio a Planescape in un periodo di ossessione fortissima, con la stessa storia, ma ambientata a Sigil, brevissima demo giocabile e grafica rippata dai capolavori dell'Infinity Engine (qui; per qualche giorno è stato un romanzo fantasy (se siete interessati posto la bozza del primo capitolo, è decisamente sporco ma ne vado particolarmente fiero), poi è ricaduto nell'oblio appesantito da una lore molto più espansa e un mucchio di idee lasciate a metà. Da un mesetto è ritornato a tormentarmi, in una veste tutta nuova. Probabilmente la colpa è da imputare a Jimmy and the Pulsating Mass, un gioco fatto con l'engine basico di MV e nonostante questo venduto a prezzo profumato su Steam, una perla che punta sull'atmosfera e sulla narrazione più che su feature mirabolanti e vale (quasi) la spesa. 

      2. Storia *
      La storia, ad oggi, è più o meno la stessa di sempre, ma in un universo più ampio.
      La Scala è un multiverso privo di limiti conosciuti, che si espande verso l'alto e verso il basso in infiniti Gradini di infinita diversità. Le teorie sulla sua origine, la sua natura e le sue motivazioni sono, come è tipico di ogni cosmologia, tante, disparate e in violento conflitto: c'è chi afferma che i Gradini siano disposti secondo un ordine di merito, e chi li considera le vertebre della schiena di un dio-mostro cosmico. Nessuna è più vera delle altre, ma qualcosa su cui tutti -o quasi- concordano è che la forma di energia più potente della Scala è la Vita: essa si espande e si srotola in ogni immensità e in ogni anfratto, mette radici e vince anche dove le sarebbe impossibile. Non c'è un angolo della Scala che non sia sotto il dominio della Vita, che muta se stessa per esprimersi nei più disparati fenomeni: da qualche parte, non troppo distante da dove ci troviamo, un Gradino appena nato vede macchine terraformanti spegnersi definitivamente, per lasciare spazio al futuro; nella direzione opposta quello che su quel Gradino verrebbe definito un uomo accende per la prima volta la sua piccola creatura di intelligenza artificiale. La Vita continua, inesorabile, a trovare nuove forme. 

      Su un Gradino intermedio, di non troppa importanza, Azith Presbe, stregone proprietario del Magiemporio Presbe nella città di Urth, ha appena ricevuto una consegna speciale: una rarissima Pozione della Vita. Ma Yoke, il maldestro commesso, nel portarla al sicuro nei magazzini del negozio, la rompe addosso a un manichino da esposizione. Per sfuggire alle grinfie del vendicativo stregone, i due dovranno attraversare gli intricati cunicoli dei magazzini nella speranza di trovare un'altra uscita o, quantomeno, di prepararsi all'inevitabile scontro. È una storia piccola ambientata in piccoli spazi rispetto all'immensità della Scala, ma il magazzino di uno stregone archetipico può contenere i frammenti dei mondi più distanti, come una planimetria dell'intero cosmo. Quello che Yoke e il Manichino incontreranno cambierà per sempre le loro vite e, forse, quelle di molti altri.


      3. Personaggi

      Manichino



      Ehi capo, non mi manca qualche frame?
      Oh sì, te ne mancano una marea.

      Ex manichino per armature da esposizione, polveroso e abbandonato al primo piano dei sotterranei del Magiemporio Presbe. Dopo essere stato imbrattato dalla Pozione della Vita si ritrova, confuso e un po' infastidito, con una coscienza; ma non ha alcuna intenzione di lasciarsela togliere: seguirà Yoke per gli intricati cunicoli dei magazzini, per sfuggire alle grinfie di Azith.
      E' scanzonato e ribelle, un Pinocchio senza naso. 
      Il manichino è di legno, di altezza e misure standard (esattamente per essere abbigliato con armature da esposizione). Ha vaghi tratti facciali, solo abbozzati. All'inizio del gioco è nudo (per questo è in magazzino) e, cosa molto importante, non ha le dita delle mani definite.

      Yoke 

       
      Mago scadente, poco ambizioso, svogliato. Lavora come commesso al Magiemporio Presbe semplicemente perché non ha più aspettative e, se le ha mai avute, le ha messe da parte da tempo. Come ciliegina sulla torta, l'ha fatta veramente grossa: ha rotto una fiala di importanza prioritaria e adesso la sua unica possibilità è scappare, sperando che la via per i magazzini sia più sicura di quella per l'ingresso principale. Ha una fidanzata ma le cose non vanno benissimo. E' appassionato di insetti, parla l'insettese comune (che nerd) e ne porta sempre tre con sè: Zig, una Mosca Angelica (Musca domestica, ma con ali d'angelo e l'abilità di sdoppiarsi virtualmente all'infinito), Zag, una Zanzara Behemoth (uguale a una zanzara normale ma leggermente più grossa, più o meno quanto un polpastrello) e... Roll, un insetto metafisico senza un aspetto preciso e dalle intenzioni incomprensibili.
      Yoke è alto e magrissimo, ha i capelli rossi e la pelle leggermente scura (ma non troppo). Indossa la Divisa da Commesso del Magiemporio Presbe: una tuta da mago standard (grigia), coi pantaloni rigonfi verso il basso (che lasciano le caviglie scoperte) e un colletto che arriva fino al naso, aperto a v nel centro e, davanti, un grembiule verde coi bordi delle tasche gialle. Indossa un cappello da mago dello stesso colore della tuta. Ha una cintura con la fondina per il Catalizzatore e tre confezioni di mangime per insetti: uno contiene feci di ratto, un altro sangue di mucca e il terzo è completamente vuoto.

      Azith 
      "Io sono Azith Presbe, Stregone Anziano del Circolo dei Vedenti. Sono Azith Presbe, Colui che Parla coi Morti. Tessitore di Astri. Ponte-Tra-Le-Potenze. Drago Onorario. Mago Archetipico su duecento livelli. Sovrano di venti di essi. ". Insomma, Azith è uno a cui piace tanto parlare di sè. Non del tutto a torto: è effettivamente potente come dice di essere e, per via della sua ambizione, continua a diventarlo sempre di più. A Urth, sul suo piano di base, ha aperto una catena di negozi di magia, i Magiempori Presbe, i più richiesti del livello. Ha fatto un acquisto importante da un'entità importante, destinato a un'entità ancora più importante: l'unica fiala di Pozione della Vita, un oggetto di estrema rarità, probabilmente illegale se solo si sapesse della sua esistenza in giro. La sfortuna e qualche errore di calcolo l'hanno portato ad affidarlo al più inetto dei suoi dipendenti, Yoke. 
      Azith è esperto in un'ampia varietà di stili di magia, ma predilige tutto ciò che ha a che fare con gli occhi. Una delle sue tecniche-firma ha a che fare con l'espansione della vista attraverso la fuoriuscita dei bulbi oculari dalle orbite (su due antenne di vene), che gli consente tra le altre cose di vedere ciò che normalmente non è fatto per essere visto. 
      Azith è un uomo dall'altezza imponenete, ben nutrito ma non grasso. Ha capelli bianchi e, ovviamente, una barba lunga fino al petto, ma ben curata. 

      Thshtths
      Un Coverto, un membro di una razza di inferiori (o, più semplicemente demoni) abitanti di un livello detto il Buio Guardaroba. Quando si muovono, hanno l'aspetto di un uomo completamente coperto da un mantello nero. Pochi sanno che non c'è niente sotto al mantello. Hanno la capacità di dominare lo spazio, ma non è chiaro se si tratti di una potente capacità di illusione o di un effettivo controllo. Non hanno corde vocali, di conseguenza non sono in grado di parlare in una lingua diversa dalla loro, composta esclusivamente di sussuri, fruscii e singulti. Quando sono costretti a comunicare con esterni, i Coverti utilizzano bastoni su cui infilano tessere di legno con sopra impresse le lettere dell'alfabeto in questione. I Coverti sono stati di recente sottomessi dall'entità che ha venduto la Pozione della Vita ad Azith e Thshtths è stato incaricato di consegnargliela. Thshtths era un tempo un rivoltoso, ma è stato schiacciato come tutti i suoi fratelli.

      La Poltrona Rosa
      E' semplicemente una grossa poltrona con la tappezzeria rosa e le gambe di legno. Dai cuscini vengono fuori grosse zanne e una lingua eccessivamente lunga. Azith deve averla comprata su qualche livello inferiore o forse l'ha costruita lui stessa imprigionandoci uno spirito. La usa come segugio per i piani più alti del magazzino.
       
       
       
      4. Disegni/Fan Art
      (purtroppo per il momento ho soltanto i concept mostrati più in alto, quindi qui aggiungerò qualche disegno preparatorio; aggiornerò il topic abbastanza di frequente)

      5. Caratteristiche Tecniche/Gameplay *
      Purtroppo non ho grandi capacità di programmazione, quindi il BS sarà standard (laterale se riesco a recuperare qualche script), ma cercherò di renderlo interessante attraverso qualche piccolo accorgimento. Il Manichino, per esempio, combatterà per la prima parte del gioco interamente a mani nude, fino a quando non si sarà sbloccata la possibilità di intagliarlo e modificarlo per fargli tenere in mano un'arma. Il sistema di summon avrà una particolarità dovuta alla lore: non essendoci, sulla Scala, un piano che sia "più materiale" degli altri
      Se dovessi immaginare un sistema di combattimento custom, se un giorno qualcuno con capacità di programmazione avanzata decidesse di darmi una mano, manterrebbe le stesse features ma con il sistema della 3.5 di Dungeons &amp; Dragons (o una sua versione ridotta). Il mio ideale è il BS del Tempio del Male Elementale: so che è veramente troppo, ma sognare non è illegale.
      La grafica del gioco sarà interamente da 0. In origine, proprio per questo, pensavo di lavorare su 2000 o 2003. Poi però mi è capitato sotto mano il bellissimo CrownTrick e ho sognato un mondo in alta risoluzione. La mia pixel art è ancora di livello basso, quindi proprio per questo motivo ci metterò un po' di tempo in più, ma devo dire che i risultati mi rendono abbastanza fiero di me nonostante ci sia ancora molto da migliorare. 

      6. Screenshot * 
      N\A


      7. Demo/Link alla versione giocabile * 
      N\A


      8. Crediti Vari *
      Ringrazio Daniele Giampaolo per il character design dei personaggi principali (vedrete gli altri a breve). E qui colgo l'occasione per parlare del perché di questo topic: il mio gioco è un sogno e questo thread è una promessa. Ho approcciato in passato questo progetto nelle maniere più sbagliate, pretendendo tanto da me in poco tempo e finendo per pretendere dagli altri. Questa volta non avrò scadenze: non voglio fare in fretta, preferisco fare bene. Ho però una schedule, una demo di un paio di ore al massimo con due bossfight principali e una opzionale, che arrivi a un 10% della trama complessiva. Questo è quanto intendo fare per adesso, per testare le mie capacità e capire quanto in là posso spingermi. Qualsiasi aiuto, sia come partecipazione attiva al progetto (in qualsiasi ruolo: per quanto mi stia occupando io della grafica un altro paio di mani mi farebbero comodo) che come consiglio, critica, correzione, distruzione totale è più che ben accetto. Proprio per questo spero di mantenere attivo e in continuo aggiornamento questo topic e, soprattutto, spero che vi partecipiate in molti, anche solo come osservatori. 
    • By Daisukegamer99
      ciao, avete presente quando in alcuni videogiochi durante un dialogo si sentono dei suoni ad ogni lettera apparsa? ecco avendo RPG maker VX Ace non so come fare, se qualcuno mi vuole aiutare ne sarei molto grato! ^^
    • By Shiki Ryougi
      E finalmente mi sono decisa di buttarmi in questo progetto che ho in mente da un sacco di tempo.
      Il titolo è provvisorio, ovviamente, ma probabilmente il titolo alla fine sarà solo "Anna".
      Ancora è un'idea che sta prendendo forma nel mio quaderno e voglio lavorarci un po' tutti i giorni.
      Posterò qui i miei piccoli passi.
      Solo quando avrò abbastanza materiale aprirò un discussione seria, con una demo, ecc.
      Quindi a presto
       
      PS: Posso solo dire per ora che la protagonista sarà una bambina di sei anni, Anna.
      Non saprei definire il genere del gioco, ma non sarà horror (al massimo elementi delicati sì).
      Psicologico, drammatico e fantastico.
      Non sarà un gioco lungo.
       

    • By cutiesbae
      Midnight Train - Capitolo 1 [Traduzione Italiana by Cutiesbae]
      Genere: Avventura, Horror, Puzzle
      Autrice: Lydia
       
      Trama:
      Luna è una viaggiatrice in cerca di un determinato luogo. All'improvviso, mentre sta viaggiando in treno, le persone intorno a lei scompaiono e il treno si ferma in un posto misterioso. Qui trova un orologio da taschino con delle istruzioni; Luna dovrà trovare il prossimo treno prima che il tempo finisca o rimarrà intrappolata per sempre in questo mondo. 
       
      Screenshot:
       

       

       

       
       
      LINK AL DOWNLOAD: https://lyd1a.itch.io/midnight-train
×