diablosbud
Member
[RMXP] Player Join or Host Multiplayer Script Request
   Description:
   I am sorry and I know this is a massive request and could take months but I will make this the easiest possible description, with similiar video-games multiplayer screenshots. This is a multiplayer system in which you login like in normal NetPlay but instead of just accessing the creator/hosts server for gameplay instead as the player you can either join a player created world create your own multiplayer world (similiar server system to Diablo II by Blizzard Entertainment). This would be great and not require an expensive server system so it would be a hit for RPG Maker XP, making it easy to use for people who have knowledge with computers. I have some features I would like implimented but many of them are not needed at all:
• Chat system with different types of chat: Global(all servers), World(within this world), Local(within this map), Guild(within your guild), Friends(sent to anyone on your friends list) and Private Chat(you type a specific player's account name and it tells you if they are logged on and if they are it lets you send a private message through all servers).
• A guild system which has it's own chat type as said in the last feature, this will allow anyone in your guild to see this text but nobody else. To have it's own guild creation window, player disbanding (depending on your rank), ranks with my specific names, guild naming, player adding, rank upgrading (depending on your rank), and voting (a specific rank can make a vote, anyone in the guild can vote, this will help to solve guild issues instead of going crazy trying to solve them). Also a guild demoting system (depending on your rank).
• An account naming system, with one account password, password recovery questions (customizable by me), requires e-mail registering and checks if the inputted e-mail is valid (helps security, e-mailing recovery questions), and multiple account character creation (5 per account maximum). If someone has the same account name you try and name your account it will display a custom "Account name already in use." message.
• A world based party and hostility system, you can open a window which has hostile or party status for each account logged on to this specific world. In this menu you can party with anyone accept someone who you are hostile against by inviting them and they can decline or accept this offer. If decline the party invite is closed, but you can still invite them again. As for the hostility you can only go hostile to someone who is within 12 levels of your own.
• A friends list and an ignore list in which you type the account name in to add them and if that account does not exist it will display a custom message "This account does not currently exist.". The ignore list stops all text displayed by this account from displaying in your chat display.
• A customizable world maker: world naming, maximum party member change (max: 8 players), an IP auto-check and server enable (when the host leaves the server the server shutdown and stop displaying the server in the join game window) and a world description.
• World voting anyone on this world can call a vote and vote on a vote (helps for kicking a player from the server) (kicking is a type of vote where you choose a player from a list of players in the world.
• World player kicking (in world voting).
(this is to help make the voting whichever yes or no has the most votes wins, you may only vote per vote, it will display a message "Vote passed." when that vote wins and "Vote declined." when that vote loses and if it is a tie the vote loses, when someone is kicked it displays "*Account Name* has been banned from this server" and server banning lasts until the server shutsdown (the host leaves).
• Anything involving e-mails automatically makes an e-mail depending on default and the players account name for being banned, joining, or password recovery. The text I input for each e-mail is the default and a special text feature is used to edit the e-mail with the joinee's account name.
• When the server is shutdown by the host leaving/disconnecting it will display a message "The host has disconnected from this server, so it will be shutdown." then 5 seconds will go by and then it bring you back to the world joining/hosting on your account.
• Like in Diablo II when one of the numberpad keys (when numberpad is on) are hit it will display a sound based on your character class and gender, which can be heard by anyone on your current map. These sounds are customizable that way people can hit numberpad keys and say things in speach like "Let's go", "Join my party", "I am going to slay you!".
• When hostile to have PvP (only with someone if they are hostile against you or you against them) you can go into a non-safe area map (a non-city, town, or village map) and you can battle other players' characters.
• When in a party you may also select other party members to heal/cast an upgrading spell on them.
• If this is possible I was wondering since I need a special battle system for a multiplayer system I was wondering if someone could implement Blizzard's ABS. Here is a link and for the latest version please: http://forum.chaos-project.com/index.php?topic=106.0.
• When your on a map anyone on this map can see you visibly, instead of seperate maps unless you party (not like in Guild Wars).
• For character making you first choose a character class, then choose a gender, then choose character features (using visual equipment), then alas you name your character. Also for my armour I would like visual equipment. Here is a http://www.rmxp.org/forums/index.php?topic=9112.0 visual equipment script compatable with Guillame777's Multi-Slot Equipment.
• Also this would be a great feature if I could have it compatible with Guillame777's Multi-Slot Equipment it would make this perfect: http://www.rmxp.org/forums/index.php?topic=8883.0. Also it would be great for the Multi-Slot if someone could also impliment the Multi-Slot Store Patch: http://www.rmxp.org/forums/index.php?topic=17264.
• Also in the inventory could you make it so that you can drop anything in it onto the ground and it can be implimented like in Blizzard's ABS so that it actually map drops the item onto your current map coordinates.
• A trade system in which like Diablo II it shows your inventory to the left your inventory to the right your trade items window and above your trade item window the other tradee's item window. This way you can see your own inventory, their trade window and your trade window.
• There is a small game menu at the bottem center of the map viewport that contains different icons that when selected open a scene (ex. Scene_Item), which above displays a name based on what icon is selected. Around the whole menu of horizontal icons is a border of my colour choice (through scripting) this is a menu like in Diablo II. This menu is also hidable by an icon just below the menu which once clicked on displays or undisplays the menu.
• This all other than Blizzard's ABS should all be mouse-controlled and keyboard controlled too.
• On player death (like in Diablo II) when you die it leaves your corpse and anyone (I repeat because this is not like in Diablo II) can loot your corpse and it opens their inventory and you can take what you want. When all items are taken off of the corpse or the server is shutdown the corpse will disappear.
• Window Scrollbars of a custom image, only produced when needed.
• The newsboard should have titles for each peice of news that are clickable which drop down into the article and when clicked close the article (like on Guild Wars Newsboard).
• The mouse script should support an image as the cursor, with multiple cursor that can change when hovering an event or button.
• The titlescreen should be made for this Panoramic Titlescreen
and the Panoramic Titlescreen's Logo:
• Blizzard's DDNS compatible for multiplayer and are started at 8:00 when the world is created. Here is the script:
   Screenshots:
http://img181.imageshack.us/img181/7370/accountregisteringwe9.th.jpg[/img]
Account Register Window
http://img397.imageshack.us/img397/2599/friendsignoredaccountlimf9.th.jpg[/img]
Friends/Ignore List
http://img397.imageshack.us/img397/6808/gamemapus2.th.jpg[/img]
Game Map
http://img183.imageshack.us/img183/3363/titlescreendu5.th.jpg[/img]
Titlescreen
   Please an advanced scripter build this for this forum I have spent 2hrs and 36mins aprox. on this post please someone help build this script for us because it will help me and many people. I am sorry but no I do not have any cash to pay for to get this script to be done. Yes of course I am alright with releasing it to public once all known bugs are fixed.
   Description:
   I am sorry and I know this is a massive request and could take months but I will make this the easiest possible description, with similiar video-games multiplayer screenshots. This is a multiplayer system in which you login like in normal NetPlay but instead of just accessing the creator/hosts server for gameplay instead as the player you can either join a player created world create your own multiplayer world (similiar server system to Diablo II by Blizzard Entertainment). This would be great and not require an expensive server system so it would be a hit for RPG Maker XP, making it easy to use for people who have knowledge with computers. I have some features I would like implimented but many of them are not needed at all:
• Chat system with different types of chat: Global(all servers), World(within this world), Local(within this map), Guild(within your guild), Friends(sent to anyone on your friends list) and Private Chat(you type a specific player's account name and it tells you if they are logged on and if they are it lets you send a private message through all servers).
• A guild system which has it's own chat type as said in the last feature, this will allow anyone in your guild to see this text but nobody else. To have it's own guild creation window, player disbanding (depending on your rank), ranks with my specific names, guild naming, player adding, rank upgrading (depending on your rank), and voting (a specific rank can make a vote, anyone in the guild can vote, this will help to solve guild issues instead of going crazy trying to solve them). Also a guild demoting system (depending on your rank).
• An account naming system, with one account password, password recovery questions (customizable by me), requires e-mail registering and checks if the inputted e-mail is valid (helps security, e-mailing recovery questions), and multiple account character creation (5 per account maximum). If someone has the same account name you try and name your account it will display a custom "Account name already in use." message.
• A world based party and hostility system, you can open a window which has hostile or party status for each account logged on to this specific world. In this menu you can party with anyone accept someone who you are hostile against by inviting them and they can decline or accept this offer. If decline the party invite is closed, but you can still invite them again. As for the hostility you can only go hostile to someone who is within 12 levels of your own.
• A friends list and an ignore list in which you type the account name in to add them and if that account does not exist it will display a custom message "This account does not currently exist.". The ignore list stops all text displayed by this account from displaying in your chat display.
• A customizable world maker: world naming, maximum party member change (max: 8 players), an IP auto-check and server enable (when the host leaves the server the server shutdown and stop displaying the server in the join game window) and a world description.
• World voting anyone on this world can call a vote and vote on a vote (helps for kicking a player from the server) (kicking is a type of vote where you choose a player from a list of players in the world.
• World player kicking (in world voting).
(this is to help make the voting whichever yes or no has the most votes wins, you may only vote per vote, it will display a message "Vote passed." when that vote wins and "Vote declined." when that vote loses and if it is a tie the vote loses, when someone is kicked it displays "*Account Name* has been banned from this server" and server banning lasts until the server shutsdown (the host leaves).
• Anything involving e-mails automatically makes an e-mail depending on default and the players account name for being banned, joining, or password recovery. The text I input for each e-mail is the default and a special text feature is used to edit the e-mail with the joinee's account name.
• When the server is shutdown by the host leaving/disconnecting it will display a message "The host has disconnected from this server, so it will be shutdown." then 5 seconds will go by and then it bring you back to the world joining/hosting on your account.
• Like in Diablo II when one of the numberpad keys (when numberpad is on) are hit it will display a sound based on your character class and gender, which can be heard by anyone on your current map. These sounds are customizable that way people can hit numberpad keys and say things in speach like "Let's go", "Join my party", "I am going to slay you!".
• When hostile to have PvP (only with someone if they are hostile against you or you against them) you can go into a non-safe area map (a non-city, town, or village map) and you can battle other players' characters.
• When in a party you may also select other party members to heal/cast an upgrading spell on them.
• If this is possible I was wondering since I need a special battle system for a multiplayer system I was wondering if someone could implement Blizzard's ABS. Here is a link and for the latest version please: http://forum.chaos-project.com/index.php?topic=106.0.
• When your on a map anyone on this map can see you visibly, instead of seperate maps unless you party (not like in Guild Wars).
• For character making you first choose a character class, then choose a gender, then choose character features (using visual equipment), then alas you name your character. Also for my armour I would like visual equipment. Here is a http://www.rmxp.org/forums/index.php?topic=9112.0 visual equipment script compatable with Guillame777's Multi-Slot Equipment.
• Also this would be a great feature if I could have it compatible with Guillame777's Multi-Slot Equipment it would make this perfect: http://www.rmxp.org/forums/index.php?topic=8883.0. Also it would be great for the Multi-Slot if someone could also impliment the Multi-Slot Store Patch: http://www.rmxp.org/forums/index.php?topic=17264.
• Also in the inventory could you make it so that you can drop anything in it onto the ground and it can be implimented like in Blizzard's ABS so that it actually map drops the item onto your current map coordinates.
• A trade system in which like Diablo II it shows your inventory to the left your inventory to the right your trade items window and above your trade item window the other tradee's item window. This way you can see your own inventory, their trade window and your trade window.
• There is a small game menu at the bottem center of the map viewport that contains different icons that when selected open a scene (ex. Scene_Item), which above displays a name based on what icon is selected. Around the whole menu of horizontal icons is a border of my colour choice (through scripting) this is a menu like in Diablo II. This menu is also hidable by an icon just below the menu which once clicked on displays or undisplays the menu.
• This all other than Blizzard's ABS should all be mouse-controlled and keyboard controlled too.
• On player death (like in Diablo II) when you die it leaves your corpse and anyone (I repeat because this is not like in Diablo II) can loot your corpse and it opens their inventory and you can take what you want. When all items are taken off of the corpse or the server is shutdown the corpse will disappear.
• Window Scrollbars of a custom image, only produced when needed.
• The newsboard should have titles for each peice of news that are clickable which drop down into the article and when clicked close the article (like on Guild Wars Newsboard).
• The mouse script should support an image as the cursor, with multiple cursor that can change when hovering an event or button.
• The titlescreen should be made for this Panoramic Titlescreen
Code:
#----------------------------------------------
# Panoramic Title Screen
#------ v 1.0.2
# Script by Wyatt (a.k.a Dan Badger)
# Do not remove this header!
#----------------------------------------------
class Scene_Title
 alias wy_title_1_main update
 def update
  unless @sprite.x < -640
   loop_sprite
  else
   @sprite.x = 0
  end
  wy_title_1_main
 end
 def loop_sprite
  loop do
   @sprite.x -= 2 # Change this figure to a WHOLE NUMBER to change the speed it scrolls
   break if $scene != Scene_Title
  end
 end
end
and the Panoramic Titlescreen's Logo:
Code:
class Scene_Title
 alias wy_edit_1_main main
 def main
  @sprite2 = Sprite.new
  @sprite2.bitmap = RPG::Cache.picture('Logo') # Keep the ' '
  @sprite2.z = 9998
  wy_edit_1_main
  @sprite2.dispose
 end
end
• Blizzard's DDNS compatible for multiplayer and are started at 8:00 when the world is created. Here is the script:
Code:
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# Dynamic Day and Night System (DDNS) by Blizzard
# Version: 1.51b
# Date: 27.06.2006
# Date v1.1b: 29.06.2006
# Date v1.2b: 08.09.2006
# Date v1.3b: 11.09.2006
# Date v1.4b: 23.2.2007
# Date v1.43b: 25.3.2007
# Date v1.5b: 23.10.2007
# Date v1.51b: 5.11.2007
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#
# Compatibility:
#
#Â Â 99% chance of full compatibility with SDK, not tested altough. Can cause
#Â Â incompatibilty issues with other DNS-es. WILL corrupt old savegames. If
#Â Â used with an old savegame, it could cause problems. Please start a new game
#Â Â if you use this to avoid incompatibilty issues.
#
#
# Features:
#
#Â Â - complete control over the DDNS
#Â Â - easy switching from day to night and night to day
#Â Â - possibility for dynamic length of night and/or day
#Â Â - easy manipulating through events with the "Call script" commands
#Â Â - 3 possible states: interiors, exteriors, dark interiors
#  - display a clock or don´t display a clock
#Â Â - uses 5 switches and 2 variables, so the user can easily access the DDNS
#Â Â Â to e.g. connect it with event based systems and/or enhance it with events
#
# new in v1.1b:
#Â Â - a fatal glitch was fixed, but it had its price, old savegames need to
#Â Â Â turn on the DDNS to clear an issue
#
# new in v1.2b:
#Â Â - shorter, more simple code and less lag
#
# new in v1.3b:
#Â Â - improved code
#
# new in v1.4b:
#Â Â - now compatible with Tons of Add-ons
#
# new in v1.43b:
#Â Â - fixed a bug, improved code and changed a little bit
#
# new in v1.5b:
#Â Â - rewritten conditions using classic syntax to avoid RGSS conditioning bug
#Â Â - improved coding
#Â Â - fixed an issue with Tons of Add-ons v5.x and higher
#
# new in v1.51b:
#Â Â - fixed tpying mistakes that caused bugs
#
#
# Instructions:
#
# - Explanation:
#
#Â Â This Dynamic Day and Night System will make your game have daytime and
#Â Â nighttime periods. You can set up the length and variation intervals if you
#Â Â want to use it dynamically. Other features are explained below. Please be
#Â Â sure to configure this system appropriately.
#
# - Configuration:
#
#Â Â DAYÂ Â Â Â - set this value to the switch ID you want to use for control
#Â Â Â Â Â Â Â Â over the day
#Â Â NIGHTÂ Â Â - set this value to the switch ID you want to use for control
#Â Â Â Â Â Â Â Â over the night
#Â Â INSIDEÂ Â Â - set this value to the switch ID you want to use to determine
#Â Â Â Â Â Â Â Â if the player is inside
#Â Â OUTSIDEÂ Â - set this value to the switch ID you want to use to determine
#Â Â Â Â Â Â Â Â if the player is outside
#Â Â INSIDEDARK - set this value to the switch ID you want to use to determine
#Â Â Â Â Â Â Â Â if the player is inside a dark place
#Â Â DAY_VARÂ Â - set this value to the variable ID you want to use as the
#Â Â Â Â Â Â Â Â seconds counter for the day
#Â Â NIGHT_VARÂ - set this value to the variable ID you want to use as the
#Â Â Â Â Â Â Â Â seconds counter for the night
#Â Â MAX_DAYÂ Â - set this value to the duration of a day in seconds
#Â Â MAX_NIGHTÂ - set this value to the duration of a night in seconds
#Â Â DYN_DAYÂ Â - set this value to true if you want a dynamic day that has a
#Â Â Â Â Â Â Â Â variating length, otherwise to false
#Â Â DYN_NIGHTÂ - set this value to true if you want a dynamic night that has a
#Â Â Â Â Â Â Â Â variating length, otherwise to false
#Â Â DAY_INTÂ Â - set this value to the variation a day might have in seconds
#        (i.e. 30 will make a day be MAX_DAY ± 30 seconds of length)
#Â Â NIGHT_INTÂ - set this value to the variation a night might have in seconds
#        (i.e. 5 will make a night be MAX_NIGHT ± 5 seconds of length)
#Â Â MINUTESÂ Â - set this value to true if you want the clock to use a precise
#Â Â Â Â Â Â Â Â minute display, please also see IMPORTANT NOTES for further
#Â Â Â Â Â Â Â Â reference, otherwise to false
#Â Â SHOW_CLOCK - set this value to false to if you want to remove the clock
#Â Â Â Â Â Â Â Â from the map, otherwise to true
#
# - Basic manipulation of the DDNS:
#
#Â Â 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 have 3 different states of the DDNS (interior, exterior, dark
#Â Â interior). Interiors and dark interior will never get dark during night.
#Â Â Also dark interiors are always a little bit tinted. Here are the
#Â Â instructions how to do so. Please also note, use this syntax with the "Call
#Â Â Script" event command
#Â Â
#Â Â Â $game_ddns.go_inside
#Â Â
#Â Â This command will set up everything to enter an interior.
#Â Â
#Â Â Â $game_ddns.go_outside
#Â Â
#Â Â This command will set up everything to leave any interior.
#Â Â
#Â Â Â $game_ddns.go_inside_dark_place
#Â Â
#Â Â This command will set up everything to enter a dark tinted interior.
#Â Â
#Â Â Â $game_ddns.turn_off
#Â Â
#Â Â This command will turn off the DDNS if you want to tint the screen for
#Â Â during a cutscene or something else related to screen tinting as DDNS is
#Â Â dominant and will cause all of your event based screen tinting to reset the
#Â Â next time day and night switch or the player changes the map. Day and night
#Â Â will freeze during this period. To turn it on again, just use following
#Â Â command:
#Â Â
#Â Â Â $game_ddns.turn_on = false
#Â Â
#Â Â AND one of the three commands above to determine where the player is.
#Â Â
#Â Â Â $game_ddns.make_it_day
#Â Â
#Â Â This command will set every counter to zero and start a new day. You can
#Â Â use this together with an item, that calls a common event to execute this
#Â Â code.
#Â Â
#Â Â Â $game_ddns.make_it_night
#Â Â
#Â Â This command will set every counter to zero and start a new night. You can
#Â Â use this together with an item, that calls a common event to execute this
#Â Â code.
#
#Â Â Also note, that the last 2 commands will ONLY work if the DDNS is NOT
#  turned off. To check if it´s turned off, just check the state of the
#Â Â INSIDE, OUTSIDE and INSIDEDARK switches. All the switches are off if the
#Â Â DNSS is turned off.
#
# - Direct manipulation of the DDNS:
#
#Â Â You can directly operate the switches WHICH IS NOT RECOMMENED to further
#Â Â manipulate the system. An example is to change the values in the variables
#Â Â which are used as second counter for the day and night.
#Â Â
#Â Â Â $game_system.show_clock = true
#Â Â Â $game_system.show_clock = false
#Â Â
#Â Â You can use this syntax if you want to show/hide the clock during e.g. the
#Â Â appearance of a countdown timer. Version 1.41b and higher even saves this
#Â Â setting.
#
# - 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 NIGHT is
#Â Â turned on inflict "Sleep" on one enemy.
#
#
# Additional info:
#
#Â Â The predecessor event based version of this script was tested a lot and the
#Â Â result was the optimal tint during night, so the player can see the screen,
#Â Â but also has the feeling, it is actually night in the game.
#
#
# IMPORTANT NOTES:
#
#Â Â Make DAY_INT or $night_intervals at least by 2 smaller than MAX_DAY
#Â Â or MAX_NIGHT
#Â Â - do NOT use odd numbers for these variables, only even ones! (2, 4, 6...)
#Â Â Â otherwise the clock WILL glitch
#Â Â - if you use different lengths for day and night and do not use any dynamic
#   time, it is recommened, that you don´t show the minutes, because the
#Â Â Â player can easily notice that one period is faster than the other
#Â Â - there is NO timeflow during battle, menu etc., only in the map
#Â Â - due to glitching the DDNS is initially turned off now
#
#
# If you find any bugs, please report them here:
# http://www.chaosproject.co.nr
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# START Configuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
DAY = 1 # switch ID of the "day" switch
NIGHT = 2 # switch ID of the "night" switch
INSIDE = 3 # switch ID of the "inside" switch
OUTSIDE = 4 # switch ID of the "outside" switch
INSIDEDARK = 5 # switch ID of the "inside dark places" switch
DAY_VAR = 1 # variable ID of the "day counter"
NIGHT_VAR = 2 # variable ID of the "night counter"
MAX_DAY = 480 # duration of a day in seconds
MAX_NIGHT = 480 # duration of a night in seconds
DYN_DAY = false # allow dynamic shortening and prolongening of day
DYN_NIGHT = false # allow dynamic shortening and prolongening of night
DAY_INT = 3 # variation of day in seconds
NIGHT_INT = 2 # variation of night in seconds
MINUTES = true # if dynamic day and night are turned off show minutes on clock
SHOW_CLOCK = true # set to false to remove the clock from the map
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# END Configuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
#==============================================================================
# Game_System
#==============================================================================
class Game_System
Â
 attr_accessor :ddns_off
 attr_accessor :show_clock
Â
 alias init initialize
 def initialize
  init
  @ddns_off = false
  @show_clock = SHOW_CLOCK
 end
end
#==============================================================================
# Game_DDNS
#==============================================================================
class Game_DDNS
Â
 attr_reader  :dyn_day
 attr_reader  :dyn_night
 attr_reader  :dynamic_day
 attr_reader  :dynamic_night
 attr_reader  :minutes
 attr_accessor :off
Â
 def initialize
  @minutes = MINUTES
  @day_intervals, @night_intervals = DAY_INT, NIGHT_INT
  @max_day, @max_night = MAX_DAY, MAX_NIGHT
  @dyn_day, @dyn_night = DYN_DAY, DYN_NIGHT
  @dynamic_day, @dynamic_night = @max_day, @max_night
  dynamize_day
  @off = true
 end
Â
 def go_inside
  unless @off
   $game_switches[INSIDE] = true
   $game_switches[INSIDEDARK] = $game_switches[OUTSIDE] = false
  end
  return
 end
Â
 def go_outside
  unless @off
   $game_switches[OUTSIDE] = true
   $game_switches[INSIDE] = $game_switches[INSIDEDARK] = false
  end
  return
 end
Â
 def go_inside_dark_place
  unless @off
   $game_switches[INSIDEDARK] = true
   $game_switches[INSIDE] = $game_switches[OUTSIDE] = false
  end
  return
 end
Â
 def turn_off
  $game_switches[INSIDE] = $game_switches[INSIDEDARK] =
  $game_switches[OUTSIDE] = false
  @off = $game_system.ddns_off = true
  return
 end
Â
 def turn_on
  @off = $game_system.ddns_off = false
  return
 end
Â
 def make_it_day
  if $game_switches[INSIDE] || $game_switches[OUTSIDE] ||
    $game_switches[INSIDEDARK]
   $game_switches[DAY] = true
   $game_switches[NIGHT] = false
   $game_variables[DAY_VAR] = $game_variables[NIGHT_VAR] = 0
   if $game_switches[OUTSIDE]
    $game_screen.start_tone_change(Tone.new(0, 0, 0, 0), 160)
   end
   dynamize_day
  end
  $game_map.need_refresh = true
 end
Â
 def make_it_night
  if $game_switches[INSIDE] || $game_switches[OUTSIDE] ||
    $game_switches[INSIDEDARK]
   $game_switches[DAY] = false
   $game_switches[NIGHT] = true
   $game_variables[DAY_VAR] = $game_variables[NIGHT_VAR] = 0
   if $game_switches[OUTSIDE]
    $game_screen.start_tone_change(Tone.new(-100, -100, 0, 0), 160)
   end
   dynamize_night
  end
  $game_map.need_refresh = true
 end
Â
 def dynamize_day
  @dynamic_day = @max_day
  @dynamic_day -= @day_intervals + rand((2*@day_intervals)) if @dyn_day
  return
 end
Â
 def dynamize_night
  @dynamic_night = @max_night
  @dynamic_day -= @day_intervals + rand((2*@day_intervals)) if @dyn_night
  return
 end
Â
end
#==============================================================================
# Bitmap
#==============================================================================
class Bitmap
 def draw_time(x, y, w, h, string, a)
  font.size = 26
  save_color = font.color.clone
  font.color = Color.new(0, 0, 0, 192)
  if $tons_version != nil && $tons_version >= 3.71 &&
    $game_system != nil && $game_system.SHADED_TEXT
   draw_text_shaded_text_later(x+1, y+1, w, h, string, a)
   draw_text_shaded_text_later(x-1, y+1, w, h, string, a)
   draw_text_shaded_text_later(x-1, y-1, w, h, string, a)
   draw_text_shaded_text_later(x+1, y-1, w, h, string, a)
  else
   draw_text(x+1, y+1, w, h, string, a)
   draw_text(x-1, y+1, w, h, string, a)
   draw_text(x-1, y-1, w, h, string, a)
   draw_text(x+1, y-1, w, h, string, a)
  end
  font.color = save_color
  draw_text(x, y, w, h, string, a)
 end
Â
 if $tons_version == nil || $tons_version < 3.71
 alias draw_text_shaded_text_later draw_text
 def draw_text(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, 255)
  draw_text_shaded_text_later(x+1, y+1, w, h, text, a)
  self.font.color = save_color
  draw_text_shaded_text_later(x, y, w, h, text, a)
 end
 end
Â
end
#==============================================================================
# Clock
#==============================================================================
class Clock < 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
   self.bitmap.font.size = $fontsize
  elsif $defaultfonttype != nil
   self.bitmap.font.name = $defaultfonttype
   self.bitmap.font.size = $defaultfontsize
  end
  @odd = 0
  draw unless $game_ddns.off
 end
Â
 def draw
  self.bitmap.clear
  hours = minutes = 0
  if $game_switches[DAY]
   hours = (12*$game_variables[DAY_VAR]/$game_ddns.dynamic_day+8)%24
   minutes = (60*12*$game_variables[DAY_VAR]/$game_ddns.dynamic_day)%60
  elsif $game_switches[NIGHT]
   hours = (12*$game_variables[NIGHT_VAR]/$game_ddns.dynamic_night+20)%24
   minutes = (60*12*$game_variables[NIGHT_VAR]/$game_ddns.dynamic_night)%60
  end
  if ($game_switches[DAY] || $game_switches[NIGHT]) && @odd % 2 == 0
   if !$game_ddns.minutes || $game_ddns.dyn_day || $game_ddns.dyn_night
    self.bitmap.draw_time(0, 0, 128, 32, sprintf('%d 00', hours), 2)
   else
    self.bitmap.draw_time(0, 0, 128, 32, sprintf('%d %02d', hours, minutes), 2)
   end
  elsif !$game_ddns.minutes || $game_ddns.dyn_day || $game_ddns.dyn_night
   self.bitmap.draw_time(0, 0, 128, 32, sprintf('%d:00', hours), 2)
  else
   self.bitmap.draw_time(0, 0, 128, 32, sprintf('%d:%02d', hours, minutes), 2)
  end
  @odd = (@odd + 1) % 2
 end
 Â
end
#==============================================================================
# Scene_Title
#==============================================================================
class Scene_Title
Â
 alias main_ddns_later main
 def main
  main_ddns_later
  $game_ddns = Game_DDNS.new
 end
Â
end
#==============================================================================
# Scene_Map
#==============================================================================
class Scene_Map
Â
 attr_accessor :timer
Â
 alias main_ddns_later main
 def main
  @clock = Clock.new if $game_system.show_clock
  @timer = Graphics.frame_count / Graphics.frame_rate * 2
  main_ddns_later
  @clock.dispose unless @clock == nil
 end
Â
 alias update_ddns_later update
 def update
  if $game_system.show_clock
   @clock = Clock.new if @clock == nil
  elsif @clock != nil
   @clock.dispose
   @clock = nil
  end
  $game_ddns.off = $game_system.ddns_off
  if @timer != Graphics.frame_count / Graphics.frame_rate * 2
   update_ddns
   @timer = Graphics.frame_count / Graphics.frame_rate * 2
   @clock.draw if $game_system.show_clock
  end
  update_ddns_later
 end
Â
 def update_ddns
  if $game_switches[DAY]
   $game_variables[DAY_VAR] += 1 unless $game_ddns.off
   if $game_variables[DAY_VAR] == $game_ddns.dynamic_day
    if $game_switches[OUTSIDE]
     $game_screen.start_tone_change(Tone.new(-100, -100, 0, 0), 160)
    end
    $game_switches[DAY] = false
    $game_switches[NIGHT] = true
    $game_ddns.dynamize_night
    $game_variables[DAY_VAR] = $game_variables[NIGHT_VAR] = 0
    $game_map.need_refresh = true
   end
  elsif $game_switches[NIGHT]
   $game_variables[NIGHT_VAR] += 1 unless $game_ddns.off
   if $game_variables[NIGHT_VAR] == $game_ddns.dynamic_night
    if $game_switches[OUTSIDE]
     $game_screen.start_tone_change(Tone.new(0, 0, 0, 0), 160)
    end
    $game_switches[DAY] = true
    $game_switches[NIGHT] = false
    $game_ddns.dynamize_day
    $game_variables[DAY_VAR] = $game_variables[NIGHT_VAR] = 0
    $game_map.need_refresh = true
   end
  end
 end
Â
 alias transfer_player_ddns_later transfer_player
 def transfer_player
  if $game_switches[INSIDE]
   $game_screen.start_tone_change(Tone.new(0, 0, 0, 0), 0)
  elsif $game_switches[OUTSIDE]
   if $game_switches[DAY]
    $game_screen.start_tone_change(Tone.new(0, 0, 0, 0), 0)
   elsif $game_switches[NIGHT]
    $game_screen.start_tone_change(Tone.new(-100, -100, 0, 0), 0)
   end
  elsif $game_switches[INSIDEDARK]
   $game_screen.start_tone_change(Tone.new(-40, -40, 0, 0), 0)
  end
  transfer_player_ddns_later
 end
Â
end
   Screenshots:
http://img181.imageshack.us/img181/7370/accountregisteringwe9.th.jpg[/img]
Account Register Window
http://img397.imageshack.us/img397/2599/friendsignoredaccountlimf9.th.jpg[/img]
Friends/Ignore List
http://img397.imageshack.us/img397/6808/gamemapus2.th.jpg[/img]
Game Map
http://img183.imageshack.us/img183/3363/titlescreendu5.th.jpg[/img]
Titlescreen
   Please an advanced scripter build this for this forum I have spent 2hrs and 36mins aprox. on this post please someone help build this script for us because it will help me and many people. I am sorry but no I do not have any cash to pay for to get this script to be done. Yes of course I am alright with releasing it to public once all known bugs are fixed.