Go Back   The PokéCommunity Forums > Create & Discover > Game Development > Scripts & Tutorials
Reload this Page Essentials Script D/P/Pt Load Screen

Notices
For all updates, view the main page.

Scripts & Tutorials This forum is for scripts and code, as well as all kinds of tutorials, software, tools and so forth. Remember to give credit!
The thread revival limit does not apply here.



Reply
 
Thread Tools
  #1    
Old August 10th, 2010 (11:15 AM).
Crazyninjaguy's Avatar
Crazyninjaguy Crazyninjaguy is offline
I'm back.
 
Join Date: May 2008
Location: England
Age: 24
Gender: Male
Posts: 663

Well i've decided to post this here, as my members have had this for a few weeks now.

This is a loading screen similar to Diamond/Pearl/Platinum.

Original Thread: http://www.planetdev.net/index.php?showtopic=414

Here's a screenie to show what i mean:

For those of you wondering where the options errr, option is, it's below new game.

When you move the cursor below new game, it scrolls smoothly down to options and back up when selecting continue.

Ok, here are the instructions.

1. Create a new script section above main and call it something like "PokemonLoad"

2. Paste the following script into the new section you just created:

Spoiler:
Code:
#===============================================================================
# * Single Screen D/P/Pt Load Screen
# * By Crazyninjaguy
# * http://www.planetdev.net
#===============================================================================

class Window_Base < Window #-------------------------------------------------------------------------- # * Object Initialization # x : window x-coordinate # y : window y-coordinate # width : window width # height : window height #-------------------------------------------------------------------------- def initialize(x, y, width, height) super() @windowskin_name = $game_system.windowskin_name self.windowskin = RPG::Cache.windowskin(@windowskin_name) self.x = x self.y = y self.width = width self.height = height self.z = 100 end #-------------------------------------------------------------------------- # * Dispose #-------------------------------------------------------------------------- def dispose # Dispose if window contents bit map is set if self.contents != nil self.contents.dispose end super end #-------------------------------------------------------------------------- # * Get Text Color # n : text color number (0-7) #-------------------------------------------------------------------------- def text_color(n) case n when 0 return Color.new(255, 255, 255, 255) when 1 return Color.new(128, 128, 255, 255) when 2 return Color.new(255, 128, 128, 255) when 3 return Color.new(128, 255, 128, 255) when 4 return Color.new(128, 255, 255, 255) when 5 return Color.new(255, 128, 255, 255) when 6 return Color.new(255, 255, 128, 255) when 7 return Color.new(192, 192, 192, 255) else normal_color end end #-------------------------------------------------------------------------- # * Get Normal Text Color #-------------------------------------------------------------------------- def normal_color return Color.new(255, 255, 255, 255) end #-------------------------------------------------------------------------- # * Get Disabled Text Color #-------------------------------------------------------------------------- def disabled_color return Color.new(255, 255, 255, 128) end #-------------------------------------------------------------------------- # * Get System Text Color #-------------------------------------------------------------------------- def system_color return Color.new(192, 224, 255, 255) end #-------------------------------------------------------------------------- # * Get Crisis Text Color #-------------------------------------------------------------------------- def crisis_color return Color.new(255, 255, 64, 255) end #-------------------------------------------------------------------------- # * Get Knockout Text Color #-------------------------------------------------------------------------- def knockout_color return Color.new(255, 64, 0) end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update super # Reset if windowskin was changed if $game_system.windowskin_name != @windowskin_name @windowskin_name = $game_system.windowskin_name self.windowskin = RPG::Cache.windowskin(@windowskin_name) end end #-------------------------------------------------------------------------- # * Draw Graphic # actor : actor # x : draw spot x-coordinate # y : draw spot y-coordinate #-------------------------------------------------------------------------- def draw_actor_graphic(actor, x, y) bitmap = RPG::Cache.character(actor.character_name, actor.character_hue) cw = bitmap.width / 4 ch = bitmap.height / 4 src_rect = Rect.new(0, 0, cw, ch) self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect) end #-------------------------------------------------------------------------- # * Draw Name # actor : actor # x : draw spot x-coordinate # y : draw spot y-coordinate #-------------------------------------------------------------------------- def draw_actor_name(actor, x, y) self.contents.font.color = normal_color self.contents.draw_text(x, y, 120, 32, actor.name) end #-------------------------------------------------------------------------- # * Draw Class # actor : actor # x : draw spot x-coordinate # y : draw spot y-coordinate #-------------------------------------------------------------------------- def draw_actor_class(actor, x, y) self.contents.font.color = normal_color self.contents.draw_text(x, y, 236, 32, actor.class_name) end #-------------------------------------------------------------------------- # * Draw Level # actor : actor # x : draw spot x-coordinate # y : draw spot y-coordinate #-------------------------------------------------------------------------- def draw_actor_level(actor, x, y) self.contents.font.color = system_color self.contents.draw_text(x, y, 32, 32, "Lv") self.contents.font.color = normal_color self.contents.draw_text(x + 32, y, 24, 32, actor.level.to_s, 2) end #-------------------------------------------------------------------------- # * Make State Text String for Drawing # actor : actor # width : draw spot width # need_normal : Whether or not [normal] is needed (true / false) #-------------------------------------------------------------------------- def make_battler_state_text(battler, width, need_normal) # Get width of brackets brackets_width = self.contents.text_size("[]").width # Make text string for state names text = "" for i in battler.states if $data_states[i].rating >= 1 if text == "" text = $data_states[i].name else new_text = text + "/" + $data_states[i].name text_width = self.contents.text_size(new_text).width if text_width > width - brackets_width break end text = new_text end end end # If text string for state names is empty, make it [normal] if text == "" if need_normal text = "[Normal]" end else # Attach brackets text = "[" + text + "]" end # Return completed text string return text end #-------------------------------------------------------------------------- # * Draw State # actor : actor # x : draw spot x-coordinate # y : draw spot y-coordinate # width : draw spot width #-------------------------------------------------------------------------- def draw_actor_state(actor, x, y, width = 120) text = make_battler_state_text(actor, width, true) self.contents.font.color = actor.hp == 0 ? knockout_color : normal_color self.contents.draw_text(x, y, width, 32, text) end #-------------------------------------------------------------------------- # * Draw EXP # actor : actor # x : draw spot x-coordinate # y : draw spot y-coordinate #-------------------------------------------------------------------------- def draw_actor_exp(actor, x, y) self.contents.font.color = system_color self.contents.draw_text(x, y, 24, 32, "E") self.contents.font.color = normal_color self.contents.draw_text(x + 24, y, 84, 32, actor.exp_s, 2) self.contents.draw_text(x + 108, y, 12, 32, "/", 1) self.contents.draw_text(x + 120, y, 84, 32, actor.next_exp_s) end #-------------------------------------------------------------------------- # * Draw HP # actor : actor # x : draw spot x-coordinate # y : draw spot y-coordinate # width : draw spot width #-------------------------------------------------------------------------- def draw_actor_hp(actor, x, y, width = 144) # Draw "HP" text string self.contents.font.color = system_color self.contents.draw_text(x, y, 32, 32, $data_system.words.hp) # Calculate if there is draw space for MaxHP if width - 32 >= 108 hp_x = x + width - 108 flag = true elsif width - 32 >= 48 hp_x = x + width - 48 flag = false end # Draw HP self.contents.font.color = actor.hp == 0 ? knockout_color : actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color self.contents.draw_text(hp_x, y, 48, 32, actor.hp.to_s, 2) # Draw MaxHP if flag self.contents.font.color = normal_color self.contents.draw_text(hp_x + 48, y, 12, 32, "/", 1) self.contents.draw_text(hp_x + 60, y, 48, 32, actor.maxhp.to_s) end end #-------------------------------------------------------------------------- # * Draw SP # actor : actor # x : draw spot x-coordinate # y : draw spot y-coordinate # width : draw spot width #-------------------------------------------------------------------------- def draw_actor_sp(actor, x, y, width = 144) # Draw "SP" text string self.contents.font.color = system_color self.contents.draw_text(x, y, 32, 32, $data_system.words.sp) # Calculate if there is draw space for MaxHP if width - 32 >= 108 sp_x = x + width - 108 flag = true elsif width - 32 >= 48 sp_x = x + width - 48 flag = false end # Draw SP self.contents.font.color = actor.sp == 0 ? knockout_color : actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color self.contents.draw_text(sp_x, y, 48, 32, actor.sp.to_s, 2) # Draw MaxSP if flag self.contents.font.color = normal_color self.contents.draw_text(sp_x + 48, y, 12, 32, "/", 1) self.contents.draw_text(sp_x + 60, y, 48, 32, actor.maxsp.to_s) end end #-------------------------------------------------------------------------- # * Draw Parameter # actor : actor # x : draw spot x-coordinate # y : draw spot y-coordinate # type : parameter type (0-6) #-------------------------------------------------------------------------- def draw_actor_parameter(actor, x, y, type) case type when 0 parameter_name = $data_system.words.atk parameter_value = actor.atk when 1 parameter_name = $data_system.words.pdef parameter_value = actor.pdef when 2 parameter_name = $data_system.words.mdef parameter_value = actor.mdef when 3 parameter_name = $data_system.words.str parameter_value = actor.str when 4 parameter_name = $data_system.words.dex parameter_value = actor.dex when 5 parameter_name = $data_system.words.agi parameter_value = actor.agi when 6 parameter_name = $data_system.words.int parameter_value = actor.int end self.contents.font.color = system_color self.contents.draw_text(x, y, 120, 32, parameter_name) self.contents.font.color = normal_color self.contents.draw_text(x + 120, y, 36, 32, parameter_value.to_s, 2) end #-------------------------------------------------------------------------- # * Draw Item Name # item : item # x : draw spot x-coordinate # y : draw spot y-coordinate #-------------------------------------------------------------------------- def draw_item_name(item, x, y) if item == nil return end bitmap = RPG::Cache.icon(item.icon_name) self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24)) self.contents.font.color = normal_color self.contents.draw_text(x + 28, y, 212, 32, item.name) end end

module Colors Black = Color.new(0,0,0) Blue = Color.new(0,0,255) end

class PokemonLoadScene # :doc: def pbStartScene @move_adv_up = false @move_new_up = false @move_opt_up = false @move_adv_down = false @move_new_down = false @move_opt_down = false @sprites={} @viewport=Viewport.new(0,0,Graphics.width,Graphics.height) @viewport.z=99999 addBackgroundOrColoredPlane(@sprites,"clrvp","loadbg", Color.new(17<<3,18<<3,31<<3),@viewport) @sprites["locwindow"]=Window_AdvancedTextPokemon.new("") @sprites["locwindow"].visible=false @sprites["cmdwindow"]=Window_CommandPokemon.new([]) @sprites["cmdwindow"].x=480 @sprites["cmdwindow"].y=0 @sprites["cmdwindow"].visible=false if FileTest.exist?("Game.rxdata") @sprites["adventure"]=Window_AdventureData.new @sprites["adventure"].opacity = 255 @sprites["newgame"]=Window_NewGame.new(224) @sprites["newgame"].opacity = 200 @sprites["options"]=Window_Options.new((224 + 56) + 16) @sprites["options"].opacity = 200 else @sprites["newgame"]=Window_NewGame.new(16) @sprites["newgame"].opacity = 255 @sprites["options"]=Window_Options.new((56 + 16) + 16) @sprites["options"].opacity = 200 end pbFadeInAndShow(@sprites) { pbUpdate } end alias cng_load_auxillary pbSetAuxiliaryWindow def pbSetAuxiliaryWindow(loctext) cng_load_auxillary(loctext) @sprites["locwindow"].x = 480 end def pbChoose(commands) @sprites["cmdwindow"].resizeToFit(commands) @sprites["cmdwindow"].commands=commands @sprites["cmdwindow"].x=480 @sprites["cmdwindow"].y=0 @sprites["cmdwindow"].visible=true loop do Graphics.update Input.update pbUpdate if @move_adv_up if @sprites["adventure"].y >= -192 @sprites["adventure"].y -= 8 end if @sprites["adventure"].y == -192 @move_adv_up = false end end if @move_new_up if @sprites["newgame"].y >= 16 @sprites["newgame"].y -= 8 end if @sprites["newgame"].y == 16 @move_new_up = false end end if @move_opt_up if @sprites["options"].y >= 88 @sprites["options"].y -= 8 end if @sprites["options"].y == 88 @move_opt_up = false end end if @move_adv_down if @sprites["adventure"].y <= 16 @sprites["adventure"].y += 8 end if @sprites["adventure"].y == 16 @move_adv_down = false end end if @move_new_down if @sprites["newgame"].y <= 224 @sprites["newgame"].y += 8 end if @sprites["newgame"].y == 224 @move_new_down = false end end if @move_opt_down if @sprites["options"].y <= 296 @sprites["options"].y += 8 end if @sprites["options"].y == 296 @move_opt_down = false end end if FileTest.exist?("Game.rxdata") case @sprites["cmdwindow"].index when 0 @sprites["adventure"].opacity = 255 @sprites["newgame"].opacity = 200 @sprites["options"].opacity = 200 when 1 @sprites["adventure"].opacity = 200 @sprites["newgame"].opacity = 255 @sprites["options"].opacity = 200 when 2 @sprites["adventure"].opacity = 200 @sprites["newgame"].opacity = 200 @sprites["options"].opacity = 255 end else case @sprites["cmdwindow"].index when 0 @sprites["newgame"].opacity = 255 @sprites["options"].opacity = 200 when 1 @sprites["newgame"].opacity = 200 @sprites["options"].opacity = 255 end end if FileTest.exist?("Game.rxdata") if Input.trigger?(Input::DOWN) && @sprites["cmdwindow"].index == 2 @move_adv_up = true @move_new_up = true @move_opt_up = true elsif Input.trigger?(Input::UP) && @sprites["cmdwindow"].index == 0 @move_adv_down = true @move_new_down = true @move_opt_down = true end end if Input.trigger?(Input::C) return @sprites["cmdwindow"].index end end end def pbEndScene pbFadeOutAndHide(@sprites) { pbUpdate } pbDisposeSpriteHash(@sprites) @viewport.dispose end def pbCloseScene pbDisposeSpriteHash(@sprites) @viewport.dispose end end

class Window_AdventureData < Window_Base def initialize super(16, 16, (480 - 32), 192) self.contents = Bitmap.new(width - 32, height - 32) self.z = 9999998 refresh end def refresh self.contents.clear trainer, framecount, $game_system, $PokemonSystem=loadfile("Game.rxdata") self.contents.font.color = Colors::Black self.contents.draw_text(0, 0, width - 32, 32, "CONTINUE") self.contents.font.color = Colors::Blue self.contents.draw_text(32, 32, width - 32, 32, "PLAYER") self.contents.draw_text(32, 64, width - 32, 32, "TIME") if trainer.numbadges>0 self.contents.draw_text(32, 96, width - 32, 32, "BADGES") end if trainer.pokedex self.contents.draw_text(32, 128, width - 32, 32, "POKEDEX") end self.contents.draw_text(0, 32, width - 32, 32, trainer.name, 2) totalsec = framecount / Graphics.frame_rate hour = totalsec / 60 / 60 min = totalsec / 60 % 60 self.contents.draw_text(0, 64, width - 32, 32, sprintf("%02d:%02d", hour, min), 2) if trainer.pokedex self.contents.draw_text(0, 128, width - 32, 32, trainer.pokedexOwned.to_s, 2) end if trainer.numbadges>0 self.contents.draw_text(0, 96, width - 32, 32, trainer.numbadges.to_s, 2) end end def loadfile(savefile) trainer=nil framecount=nil game_system=nil pokemonSystem=nil File.open(savefile){|f| trainer=Marshal.load(f) framecount=Marshal.load(f) game_system=Marshal.load(f) pokemonSystem=Marshal.load(f) } raise "Corrupted file" if !trainer.is_a?(PokeBattle_Trainer) raise "Corrupted file" if !framecount.is_a?(Numeric) raise "Corrupted file" if !game_system.is_a?(Game_System) raise "Corrupted file" if !pokemonSystem.is_a?(PokemonSystem) return [trainer,framecount,game_system,pokemonSystem] end end

class Window_NewGame < Window_Base def initialize(y) super(16, y, (480 - 32), 56) self.contents = Bitmap.new(width - 32, height - 32) self.z = 9999998 refresh end def refresh self.contents.clear self.contents.font.color = Colors::Black self.contents.draw_text(0, 0, width - 32, 24, "NEW GAME") end end

class Window_Options < Window_Base def initialize(y) super(16, y, (480 - 32), 56) self.contents = Bitmap.new(width - 32, height - 32) self.z = 9999998 refresh end def refresh self.contents.clear self.contents.font.color = Colors::Black self.contents.draw_text(0, 0, width - 32, 24, "OPTIONS") end end

3. Give credit if you use this!

Thanks, and I hope you like it

__________________
PlanetDev - Game Development Community
Reply With Quote

Relevant Advertising!

  #2    
Old August 10th, 2010 (11:56 AM).
nmorr's Avatar
nmorr nmorr is offline
Takin a brake. -_-
 
Join Date: May 2009
Location: Poke City
Age: 19
Gender: Male
Nature: Jolly
Posts: 215

Hey CNG, I thought you left..Anyways, I hope u don't mind, I posted your Dual Screen Battle System, but gave you full credit.

__________________
This signature has been disabled.
Spoiler tags in Signatures are not allowed
Please review and fix the issues by reading the signature rules.

You must edit it to meet the limits set by the rules before you may remove the [sig-reason] code from your signature. Removing this tag will re-enable it.

Do not remove the tag until you fix the issues in your signature. You may be infracted for removing this tag if you do not fix the specified issues. Do not use this tag for decoration purposes.
Reply With Quote
  #3    
Old August 10th, 2010 (1:11 PM).
Crazyninjaguy's Avatar
Crazyninjaguy Crazyninjaguy is offline
I'm back.
 
Join Date: May 2008
Location: England
Age: 24
Gender: Male
Posts: 663

I did leave, but i guess i'm back for now lol.
Just thought people might benefit from this.

__________________
PlanetDev - Game Development Community
Reply With Quote
  #4    
Old August 12th, 2010 (12:11 PM).
Yuoaman's Avatar
Yuoaman Yuoaman is offline
Legen- wait for it...
Silver Tier
 
Join Date: Jul 2005
Location: Ontario, Canada
Age: 24
Gender: Male
Nature: Relaxed
Posts: 4,675

This probably will fit better in Resources, so I'll move it over there.

__________________

Suit Up!
Awesome REGULAR MEMBER THAT OCCASIONALLY FREQUENTS FORUMS.

"pps new screenie" - No, really shut up yuoaman.

Haaave you read my LP?
Pokémon Quartz - The only one of mine really worth reading.

What about my [Un]Abridged series?
Aquaman the Unabridged Parody Series - Language warning.

The Playbook: My Anime List | Raptr | BackLoggery | Twitter


83% of this signature is empty space.

-dary!
Reply With Quote
  #5    
Old August 12th, 2010 (9:23 PM).
Rise's Avatar
Rise Rise is offline
「Rise Director」
 
Join Date: Aug 2010
Age: 25
Gender: Male
Nature: Relaxed
Posts: 26

I tried the script to see how it went, but it was practically impossible to show a continue screen. New game took over the spot for continue, still showing the same text, and options became new game, with the same problem.

__________________
Reply With Quote
  #6    
Old August 14th, 2010 (3:41 PM).
triggerhappymonk's Avatar
triggerhappymonk triggerhappymonk is offline
Strong as crap trainer
 
Join Date: Jan 2010
Gender: Male
Posts: 38

Quote originally posted by Rise:
I tried the script to see how it went, but it was practically impossible to show a continue screen. New game took over the spot for continue, still showing the same text, and options became new game, with the same problem.

Just use version 1, it works for me. the only thing is, when you select "OPTIONS" The menu stays while the option screen is in the background.

__________________
Pokémon Games I'm Making:

Pokémon Adenture Island
Pokémon Blastiose Blue/Charizard Red/Venasaur Green
Pokémon Pikachu Yellow
Pokémon Ho-Oh Gold/Lugia Silver
Pokémon Suicune Crystal
Pokémon Kyoger Sapphire/Groundon Ruby
Pokémon Rayquaza Emerald
Pokémon Dialga Diamond/Palkia Pearl
Pokémon Giratina Platnuim
Pokemon Reshiram Black/Zekrom White
Pokémon Tin/Steel
May seem like a lot, but i'll get them done. I apologize for any misspelling

Games I Support:
Reply With Quote
  #7    
Old August 15th, 2010 (4:45 AM).
pokemad's Avatar
pokemad pokemad is offline
Self taught hacker
 
Join Date: Jun 2008
Age: 22
Gender:
Nature: Gentle
Posts: 20

Great script.
A few problems but great overall

Reply With Quote
Reply
Quick Reply

Sponsored Links
Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -8. The time now is 3:36 PM.