Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Bahamut-XIV

1
ok i got currently so far the server takes my current time but the hud clock keeps staying on 00:00
also when i set a night time nothing happens

the scripts i currently use now are as follow

ates now :

:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# Advanced Time and Environment System (ATES) by Blizzard
# Version: 0.4
# Type: Autonomous Timeflow and Environment Controller
# Date v0.3: 11.3.2008
# Date v0.31: 8.4.2009
# Date v0.32: 13.4.2009
# Date v0.33: 4.5.2009
# Date v0.34: 5.5.2009
# Date v0.4: 28.12.2009
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#   
#  This work is protected by the following license:
# #----------------------------------------------------------------------------
# #
# #  Creative Commons - Attribution-NonCommercial-ShareAlike 3.0 Unported
# #  ( http://creativecommons.org/licenses/by-nc-sa/3.0/ )
# #
# #  You are free:
# #
# #  to Share - to copy, distribute and transmit the work
# #  to Remix - to adapt the work
# #
# #  Under the following conditions:
# #
# #  Attribution. You must attribute the work in the manner specified by the
# #  author or licensor (but not in any way that suggests that they endorse you
# #  or your use of the work).
# #
# #  Noncommercial. You may not use this work for commercial purposes.
# #
# #  Share alike. If you alter, transform, or build upon this work, you may
# #  distribute the resulting work only under the same or similar license to
# #  this one.
# #
# #  - For any reuse or distribution, you must make clear to others the license
# #    terms of this work. The best way to do this is with a link to this web
# #    page.
# #
# #  - Any of the above conditions can be waived if you get permission from the
# #    copyright holder.
# #
# #  - Nothing in this license impairs or restricts the author's moral rights.
# #
# #----------------------------------------------------------------------------
#
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#
# Compatibility:
#
#   99% compatible with SDK v1.x. 90% compatible with SDK 2.x. WILL corrupt old
#   savegames. Can cause incompatibilty issues with DNS-es.
#
#
# Features:
#
#   - complete control over and easy manipulating of time
#   - nice day and night tinting
#   - HUD clock optional
#   - easier to control and more powerful than DDNS
#
#
# IMPORTANT NOTES:
#
# - This system has a working preconfiguration, be aware that a custom setup
#   will need you to understand what each option does, so please read the
#   configuration instructions.
# - Why does this system use switches to determine whether it's day or night?
#   Simple: You can use conditions in enemy attacks to determine whether an
#   attack should be used only at night or only at day.
#
#
# Instructions:
#
# - Explanation:
#
#   This Time System will make your game have daytime and nighttime periods.
#   The screen will be tinted accordingly. You can set up the length of the
#   day. Other features are explained below. Please be sure to configure this
#   system appropriately.
#
#
# - Basic manipulation of ATES:
#
#   This system is based upon your eventing. It will work basically if you
#   want, but with a little bit of using the "Call Script" event command you
#   are able to control this system fully. You can call following commands:
#
#     ATES.on
#   Turns ATES on.
#
#     ATES.off
#   Turns ATES off.
#
#     ATES.tint_on
#   Turns ATES's screen tinting on.
#
#     ATES.tint_off
#   Turns ATES's screen tinting off.
#
#     ATES.clock_on
#   Turns ATES's clock display on.
#
#     ATES.clock_off
#   Turns ATES's clock display off.
#
#     ATES.active?
#   Returns true if ATES is turned on, otherwise false.
#
#     ATES.tinting?
#   Returns true if ATES tinting is turned on, otherwise false.
#
#     ATES.day?
#   Returns true if it's day, otherwise false. Alternatively you can check the
#   assigned switch instead.
#
#     ATES.night?
#   Returns true if it's night, otherwise false. Alternatively you can check
#   the assigned switch instead.
#   
#     ATES.advance(M, H)
#   This will make the time advanced by M minutes and H hours. Any negative
#   value used will cancel the execution of this command.
#   
#     ATES.make_it_day
#   This is a feature from DDNS which allows you to quickly jump to the
#   daytime.
#   
#     ATES.make_it_night
#   This is a feature from DDNS which allows you to quickly jump to the
#   nighttime.
#   
#
# - Enhancement hints:
#
#   If you wish to implement the DDNS further into your game and e.g. allow
#   different behavious of monsters during day and night, you only need to
#   check the the state of the appropriate switch. e.g. If NSWITCH is turned
#   on inflict "Sleep" on one enemy.
#
#
# Additional info:
#
#   The daytime and nighttime tintings were tested appropriately and optimal
#   tinting is being used.
#   Keep in mind that ATES is initially turned off, you need to turn it on by
#   using the ATES.on and ATES.tint_on commands together.
#
#
# If you find any bugs, please report them here:
# http://forum.chaos-project.com
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=

module ATES
 
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# START Configuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
  # switch ID of the "day" switch
  DSWITCH = 51
  # switch ID of the "night" switch
  NSWITCH = 52
  # length of a day in seconds in-game, can't be less than 36, is being
  # quantized into intervals of 36 seconds
  LENGTH = 86400
  # how much time is it when the "day" starts
  DAY_START = 8
  # how much time is it when the "night" starts
  NIGHT_START = 43200
  # makes the screen brighter during "summer" days
  OVERLIGHTING = true
  # makes the screen darker during the night, not recommended
  OVERDARKENING = false
  # display HUD clock
  SHOW_CLOCK = true
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# END Configuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
 
  $ates = 0.4
 
  #============================================================================
  # ATES::Time
  #============================================================================
 
  class Time
   
    attr_accessor :hour
    attr_accessor :min
   
    def initialize(m = 0, h = 0)
      @hour, @min = h, m
    end
   
  end
 
  def self.on
    $game_system.ates.active = true
    return true
  end
 
  def self.off
    $game_system.ates.active = false
    return true
  end
 
  def self.tint_on
    $game_system.ates.tinting = true
    return true
  end
 
  def self.tint_off
    $game_system.ates.tinting = false
    return true
  end
 
  def self.clock_on
    $game_system.show_clock = true
    return true
  end
 
  def self.clock_off
    $game_system.show_clock = false
    return true
  end
 
  def self.active?
    return $game_system.ates.active
  end
 
  def self.tinting?
    return $game_system.ates.tinting
  end
 
  def self.day?
    $game_system.ates.day?
  end
 
  def self.night?
    $game_system.ates.night?
  end
 
  def self.make_it_day
    $game_system.ates.time.hour = DAY_START
    $game_system.ates.time.min = 0
    return true
  end
 
  def self.make_it_night
    $game_system.ates.time.hour = NIGHT_START
    $game_system.ates.time.min = 0
    return true
  end
 
  def self.day_start
    return DAY_START
  end
 
  def self.night_start
    return NIGHT_START
  end
 
  def self.advance(m = 1, h = 0)
    return false if m < 0 || h < 0
    h += ($game_system.ates.time.min + m) / 60
    $game_system.ates.time.hour = ($game_system.ates.time.hour + h) % 24
    $game_system.ates.time.min = ($game_system.ates.time.min + m) % 60
    return true
  end
 
end

if ATES::DAY_START > ATES::NIGHT_START
  raise 'ATEScfgError: A night can\'t start earlier than a day.'
elsif ATES::LENGTH < 36
  raise 'ATEScfgError: A day\'s length must be equal to or greater than 36 seconds!'
end

#==============================================================================
# Game_System
#==============================================================================

class Game_System
 
  attr_accessor :ates
  attr_accessor :show_clock
 
  alias init_ates_later initialize
  def initialize
    init_ates_later
    @ates = Game_ATES.new
    @show_clock = ATES::SHOW_CLOCK
  end

end

#==============================================================================
# Game_ATES
#==============================================================================

class Game_ATES
 
  attr_accessor :time
  attr_accessor :frame_count
  attr_accessor :active
  attr_accessor :tinting
 
  def initialize
    @time = ATES::Time.new(0, 0)
    @frame_count = 0
    @active = false
    @tinting = false
  end
 
  def update
    if @active
      update_progress
      update_ates_progress
    end
    update_switches
    update_screen
  end
 
  def update_progress
    @frame_count += 1
  end
 
  def update_ates_progress
    ATES.advance if @frame_count % (ATES::LENGTH / 36) == 0
  end
 
  def update_switches
    if ATES.day?
      $game_map.need_refresh = true if $game_switches[ATES::NSWITCH]
      $game_switches[ATES::DSWITCH] = true
      $game_switches[ATES::NSWITCH] = false
    else
      $game_map.need_refresh = true if $game_switches[ATES::DSWITCH]
      $game_switches[ATES::DSWITCH] = false
      $game_switches[ATES::NSWITCH] = true
    end
  end
 
  def update_screen
    $game_screen.start_tone_change(self.get_tint, 0) if @tinting
  end
 
  def day?
    return (@time.hour.between?(ATES::DAY_START, ATES::NIGHT_START - 1))
  end
 
  def night?
    return (!self.day)
  end
 
  def get_tint
    return (self.day? ? self.get_day_tint : self.get_night_tint)
  end
 
  def get_day_tint
    day, night = (ATES.day_start / 3600), (ATES.night_start / 3600)
    ratio = ((@time.hour - day) * 60 + @time.min) * 255 / (60 * (night - day))
    tone = Tone.new(0, 0, 0, 0)
    if ratio >= 224
      tone.red = (232 - ratio) * 4
      tone.green = (208 - ratio) * 2
    elsif ratio >= 192
      tone.red = ratio - 192
      tone.green = 192 - ratio
    elsif ATES::OVERLIGHTING
      if ratio >= 160
        tone.red = tone.green = tone.blue = 192 - ratio
      elsif ratio >= 96
        tone.red = tone.green = tone.blue = 32
      elsif ratio >= 64
        tone.red = tone.green = tone.blue = ratio - 64
      end
    end
    return tone
  end
 
  def get_night_tint
    day, night = (ATES.day_start / 3600), (ATES.night_start / 3600)
    hour = (@time.hour >= night ? @time.hour : @time.hour + 24)
    ratio = ((hour - night) * 60 + @time.min) * 255 / (60 * (day + 24 - night))
    tone = Tone.new(-96, -96, 0, 0)
    if ratio >= 224
      tone.red = (ratio - 256) * 2
      tone.green = (ratio - 256) * 2
      tone.blue = 255 - ratio
    elsif ratio >= 192
      tone.red = ratio - 288
      tone.green = ratio - 288
      tone.blue = ratio - 192
    elsif ATES::OVERDARKENING
      if ratio >= 160
        tone.red = ratio - 288
        tone.green = ratio - 288
        tone.blue = ratio - 192
      elsif ratio >= 96
        tone.red = -128
        tone.green = -128
        tone.blue = -32
      elsif ratio >= 64
        tone.red = -32 - ratio
        tone.green = -32 - ratio
        tone.blue = 64 - ratio
      end
    end
    return tone
  end
 
end


#==============================================================================
# Bitmap
#==============================================================================

class Bitmap

  if $tons_version == nil || $tons_version < 1.6
    alias draw_text_shaded_later draw_text
  end
  def draw_text_full(x2, y2, w2 = 0, h2 = 0, text2 = '', a2 = 0)
    if x2.is_a?(Rect)
      x, y, w, h, text, a = x2.x, x2.y, x2.width, x2.height, y2, w2
    else
      x, y, w, h, text, a = x2, y2, w2, h2, text2, a2
    end
    save_color = self.font.color.clone
    self.font.color = Color.new(0, 0, 0)
    draw_text_shaded_later(x - 1, y - 1, w, h, text, a)
    draw_text_shaded_later(x + 1, y - 1, w, h, text, a)
    draw_text_shaded_later(x - 1, y + 1, w, h, text, a)
    draw_text_shaded_later(x + 1, y + 1, w, h, text, a)
    self.font.color = save_color
    draw_text_shaded_later(x, y, w, h, text, a)
  end
 
end

#==============================================================================
# Clock_Sprite
#==============================================================================

class Clock_Sprite < Sprite
 
  def initialize
    super
    self.x, self.y, self.z = 480, 8, 5000
    self.bitmap = Bitmap.new(128, 32)
    if $fontface != nil
      self.bitmap.font.name = $fontface
    elsif $defaultfonttype != nil
      self.bitmap.font.name = $defaultfonttype
    end
    self.bitmap.font.size = 26
    @colon = true
    draw
  end
 
  def draw
    self.bitmap.clear
    hours, minutes = $game_system.ates.time.hour, $game_system.ates.time.min
    if @colon
      self.bitmap.draw_text_full(0, 0, 128, 32,
          sprintf('%02d %02d', hours, minutes), 2)
    else
      self.bitmap.draw_text_full(0, 0, 128, 32,
          sprintf('%02d:%02d', hours, minutes), 2)
    end
    @colon = !@colon
  end
   
end

#==============================================================================
# Scene_Map
#==============================================================================

class Scene_Map
 
  alias main_ates_later main
  def main
    @clock = Clock_Sprite.new if $game_system.show_clock
    $game_system.ates.update_screen
    main_ates_later
    @clock.dispose if @clock != nil
  end
 
  alias update_ates_later update
  def update
    $game_system.ates.update
    update_ates_later
    if $game_system.show_clock
      @clock = Clock_Sprite.new if @clock == nil
      @clock.draw if ATES.active? && $game_system.ates.frame_count % 40 == 0
    elsif @clock != nil
      @clock.dispose
      @clock = nil
    end
  end
 
  alias transfer_player_ates_later transfer_player
  def transfer_player
    $game_system.ates.update_screen
    transfer_player_ates_later
  end
 
end

server exstension


module RMXOS
 
  def self.load_current_extension
    return GlobalDNS
  end
 
  module Data
    GlobalDNSTimeNow  = '    > Global DNS Current Time: TIME'
  end
 
end

#======================================================================
# module GlobalDNS
#======================================================================

module GlobalDNS
 
  VERSION = 1.01
  RMXOS_VERSION = 2.00
  SERVER_THREAD = true
 
  # START Configuration (make sure it matches the one in the ATES script)
  MIDNIGHT_TIME = 0 # seconds after midnight when in game midnight starts (between 0 and 86400, use a divider of DAY_LENGTH!)
  DAY_LENGTH = 86400 # how many seconds does a full day take (between 24 and 86400, use a divider of 86400!)
  UPDATE_INTERVAL = 1 # how often is time data sent to clients (lower values can increase server load!)
  # END Configuration
 
  def self.initialize
    @mutex = Mutex.new
    @client_times = {}
    self.update_time
    puts RMXOS::Data::GlobalDNSTimeNow.sub('TIME') {self.time_to_timestring}
  end

  def self.mutex
    return @mutex
  end
 
  def self.main
    while RMXOS.server.running
      self.server_update
      sleep(0.1)
    end
  end
 
  def self.server_update
    self.update_time
    logged_in_clients = []
    $clients.each_value {|client| logged_in_clients.push(client) if client.player.user_id > 0}
    time = Time.now
    @client_times.each_key {|client|
      if time - @client_times[client] > UPDATE_INTERVAL
        self.send_time(client, time)
      end
    }
    (@client_times.keys - logged_in_clients).each {|key| @client_times.delete(key)}
    (logged_in_clients - @client_times.keys).each {|key| @client_times[key] = time}
  end
 
  def self.client_update(client)
    case client.message
    when /\ALRQ\Z/, /\AENT\Z/, /\AMEX\Z/ # send DNS time on load request, enter server and exit map
      self.send_time(client)
    end
    return false
  end
 
  def self.send_time(client, time = Time.now)
    client.send("DNS\t#{@time}")
    @client_times[client] = time
  end
 
  def self.update_time
    time = Time.now
    seconds = time.hour * 3600 + time.min * 60 + time.sec
    @time = (seconds - MIDNIGHT_TIME) % DAY_LENGTH
  end
 
  def self.time_to_timestring(time = @time)
    hour_length = DAY_LENGTH / 24.0
    hours = (hour_length > 0 ? (time / hour_length) : 0)
    minute_length = hour_length / 60.0
    minutes = (minute_length > 0 ? (time % hour_length / minute_length) : 0)
    return sprintf('%02d:%02d', hours.to_i, minutes.to_i)
  end
 
end
2
i had an error on the ates and said its was not the right version so i changed this $ates = 1.0 to $ates = 1.1 on line 409 but on the server side extension the clock stays at 00:00

Loading extensions...
    > Global DNS Current Time: 00:00
'Ates.rb' v1.2 loaded and initialized.
3
Anyone have still the right ates to make this work, the one in list of rmxp scripts doenst work with this , thank you in advance
4
Script Troubleshooting / RMX-OS Party HUD
July 20, 2020, 09:26:19 am
Hallo ik currently making a online game With RMXP
The server and game works but now is my problem the following i use this party hud for online members RMX-OS Party HUD https://forum.chaos-project.com/index.php?topic=14424.0 but it gives a lot of lag and my Fps Will drop 4 its dramatic so i wonder if Anyone can help me

I am Very bad scripter in rmxp / normally im a web designer with php/mysql
So that have helped me with some stuff

Thank you in advance