Beginners guide to RPG MAKER XP -Conditional branchs -Switchs -Varibles -Making a game story -Branstorming -Resourses -Scripts -Actors -Enemies -Icons -Titles -Tutorials -Getting your game over the net -Conditinal BranchsA Conditinal Branch is when it runs a event under a spesific condition. Ok first make a new game called RPG Test. Now make a event with a Grafic of a man set the position fixed. Next Make a item called key, After that add a conditional branch to the man event now go to page 4 and put in key. Now lets look at it so far... @>Conditinal Branch [Key] in invetory... @>Else handler @>Branch end Now in under Conditinal Branch [Key] in invetory... add this... Text:Man: Thank you you got my key! Text:Hero: Yes here you go...
Text:Man: Here is your reward... Text: Aqquired 150G Change gold 150+ Change items 1- Key Now make anouther event with a cheast grafic add... Text: Aqquired 1x Key... Change items 1+key Erase event Now when you pick up the key talk to the map you got a quest congraglations! -SwitchsNow go back to the man event copy everything make a new condinal brantch make it when switch 1 is off we will call this switch finsh1. now paste the other conditnal branch. Now in the first else handler put in Text: Man: I lost my key can you find it? Text:Hero: ok... Now add under Text:Man: Thank you you got my key! Text:Hero: Yes here you go... Text:Man: Here is your reward... Text: Aqquired 150G Change gold 150+ Change items 1- Key Put Finsh1 on... Now in the second else handler put Text: Hero: Do you need more help? Text: Man: no... Now it should look like this...
Conditinal Branch [0001 Finsh1 off] Conditinal Branch [Key] in invetory... Text:Man: Thank you you got my key! Text:Hero: Yes here you go... Text:Man: Here is your reward... Text: Aqquired 150G Change gold 150+ Change items 1- Key Change switchs Finsh1 on... Else Handler Text: Man: I lost my key can you find it? Text:Hero: ok... Else Handler Text: Hero: Do you need more help? Text: Man: no... Now your done! -VariblesFirst off make a event make some secrity door grafic now put in Number input make 2 digits and make a varible called security door. make acondinal branch now click on varible now make it epule to this number 34 it should look like this. input number Conditinal branch [Varrible 0001:Security door] equle to 34 Teleport player to blabla bla Else handler dont put anything... and your done! -Making a game story-
Here is a tip don't worry about the features worry about the storyline. You could have good gameplay but a stupid bouring storyline think of a good story to catch alot of people... -BrainstormingFirst off buy a notepad, every night write the story of the game after about a month you will have about a 30 hour game... -ResourcesThe best resources are on fourms or on http://www.phanxgames.com/ things like charas genrator are stupid you need to resize the stuff. cheack the google for resources. -ScriptsUsing scripts is easy here is a ring menu script... First clear the menu script and add this... #=========================================================================== === # チ¡ Window_RingMenu #=========================================================================== === #=========================================================================== === # Edited by MakirouAru #=========================================================================== === class Window_RingMenu < Window_Base #-------------------------------------------------------------------------# › ƒNƒ‰ƒX’è" #-------------------------------------------------------------------------STARTUP_FRAMES = 20 # 艊úƒAƒjƒ[ƒVƒ‡ƒ"‚̃tƒŒ[ƒ€" MOVING_FRAMES = 5 # ƒŠƒ"ƒO‚ð‰ñ‚µ‚½Žž‚̃tƒŒ[ƒ€"
RING_R = 64 # ƒŠƒ"ƒO‚Ì"¼Œa ICON_ITEM = RPG::Cache.icon("034-Item03") # uƒAƒCƒeƒ€vƒƒjƒ…[‚̃AƒCƒRƒ" ICON_SKILL = RPG::Cache.icon("044-Skill01") # uƒXƒLƒ‹vƒƒjƒ…[‚̃AƒCƒRƒ" ICON_EQUIP = RPG::Cache.icon("001-Weapon01") # u‘•"õvƒƒjƒ…[‚̃AƒCƒRƒ" ICON_STATUS = RPG::Cache.icon("050-Skill07") # uƒXƒe[ƒ^ƒXvƒƒjƒ…[‚̃AƒCƒRƒ" ICON_SAVE = RPG::Cache.icon("038-Item07") # uƒZ[ƒuvƒƒjƒ…[‚̃AƒCƒRƒ" ICON_EXIT = RPG::Cache.icon("046-Skill03") # uèI—¹vƒƒjƒ…[‚̃AƒCƒRƒ" ICON_DISABLE= RPG::Cache.icon("") # Žg—p‹ÖŽ~€–Ú‚É•t‚ƒAƒCƒRƒ" SE_STARTUP = "056-Right02" # ƒƒjƒ…[‚ðŠJ‚¢‚½‚Æ‚«‚ɖ‚炷SE MODE_START = 1 # ƒXƒ^[ƒgƒAƒbƒvƒAƒjƒ[ƒVƒ‡ƒ" MODE_WAIT = 2 # ‘Ò‹@ MODE_MOVER = 3 # ŽžŒv‰ñ‚è‰ñ"]ƒAƒjƒ[ƒVƒ‡ƒ" MODE_MOVEL = 4 # "½ŽžŒv‰ñ‚è‰ñ"]ƒAƒjƒ[ƒVƒ‡ƒ" #-------------------------------------------------------------------------# チ› ƒAƒNƒZƒT #-------------------------------------------------------------------------attr_accessor :index #-------------------------------------------------------------------------# チ œ ƒIƒuƒWƒFƒNƒg マ‰Šú‰» #-------------------------------------------------------------------------def initialize( center_x, center_y ) super(0, 0, 640, 480) self.contents = Bitmap.new(width-32, height-32) self.contents.font.name = "Arial" self.opacity = 0 self.back_opacity = 0 s1 = "Items" s2 = "Skills"
s3 = "Equip" s4 = "Stats" s5 = "Save" s6 = "Exit" @commands = [ s1, s2, s3, s4, s5, s6 ] @item_max = 6 @index = 0 @items = [ ICON_ITEM, ICON_SKILL, ICON_EQUIP, ICON_STATUS, ICON_SAVE, ICON_EXIT ] @disabled = [ false, false, false, false, false, false ] @cx = center_x - 16 @cy = center_y - 16 setup_move_start refresh end #-------------------------------------------------------------------------# œ ƒtƒŒ[ƒ€XV #-------------------------------------------------------------------------def update super refresh end #-------------------------------------------------------------------------# œ ‰æ–ÊÄ•`‰æ #-------------------------------------------------------------------------def refresh self.contents.clear # ƒAƒCƒRƒ"‚ð•`‰æ case @mode
when MODE_START refresh_start when MODE_WAIT refresh_wait when MODE_MOVER refresh_move(1) when MODE_MOVEL refresh_move(0) end # ƒAƒNƒeƒBƒu‚ȃRƒ}ƒ"ƒh–¼•\Ž¦ rect = Rect.new(@cx - 272, @cy + 24, self.contents.width-32, 32) self.contents.draw_text(rect, @commands[@index],1) end #-------------------------------------------------------------------------# › ‰æ–ÊÄ•`‰æ(艊ú‰»Žž) #-------------------------------------------------------------------------def refresh_start d1 = 2.0 * Math::PI / @item_max d2 = 1.0 * Math::PI / STARTUP_FRAMES r = RING_R - 1.0 * RING_R * @steps / STARTUP_FRAMES for i in 0...@item_max j = i - @index d = d1 * j + d2 * @steps x = @cx + ( r * Math.sin( d ) ).to_i y = @cy - ( r * Math.cos( d ) ).to_i draw_item(x, y, i) end @steps -= 1
if @steps < 1 @mode = MODE_WAIT end end #-------------------------------------------------------------------------# チ› ‰æ–ÊÄ•`‰æ(‘Ò‹@Žž) #-------------------------------------------------------------------------def refresh_wait d = 2.0 * Math::PI / @item_max for i in 0...@item_max j = i - @index x = @cx + ( RING_R * Math.sin( d * j ) ).to_i y = @cy - ( RING_R * Math.cos( d * j ) ).to_i draw_item(x, y, i) end end #-------------------------------------------------------------------------# › ‰æ–ÊÄ•`‰æ(‰ñ"]Žž) # mode : 0="½ŽžŒv‰ñ‚è 1=ŽžŒv‰ñ‚è #-------------------------------------------------------------------------def refresh_move( mode ) d1 = 2.0 * Math::PI / @item_max d2 = d1 / MOVING_FRAMES d2 *= -1 if mode != 0 for i in 0...@item_max j = i - @index d = d1 * j + d2 * @steps x = @cx + ( RING_R * Math.sin( d ) ).to_i
y = @cy - ( RING_R * Math.cos( d ) ).to_i draw_item(x, y, i) end @steps -= 1 if @steps < 1 @mode = MODE_WAIT end end #-------------------------------------------------------------------------# œ €–Ú‚Ì•`‰æ #x: #y: # i : €–Ú"Ô† #-------------------------------------------------------------------------def draw_item(x, y, i) #p "x=" + x.to_s + " y=" + y.to_s + " i=" + @items[i].to_s rect = Rect.new(0, 0, @items[i].width, @items[i].height) if @index == i self.contents.blt( x, y, @items[i], rect ) if @disabled[@index] self.contents.blt( x, y, ICON_DISABLE, rect ) end else self.contents.blt( x, y, @items[i], rect, 128 ) if @disabled[@index] self.contents.blt( x, y, ICON_DISABLE, rect, 128 ) end end
end #-------------------------------------------------------------------------# œ €–ڂ𖳌ø‚É‚·‚é # index : €–Ú"Ô† #-------------------------------------------------------------------------def disable_item(index) @disabled[index] = true end #-------------------------------------------------------------------------# › 艊ú‰»ƒAƒjƒ[ƒVƒ‡ƒ"‚Ìè€"õ #-------------------------------------------------------------------------def setup_move_start @mode = MODE_START @steps = STARTUP_FRAMES if SE_STARTUP != nil and SE_STARTUP != "" Audio.se_play("Audio/SE/" + SE_STARTUP, 80, 100) end end #-------------------------------------------------------------------------# › ‰ñ"]ƒAƒjƒ[ƒVƒ‡ƒ"‚Ìè€"õ #-------------------------------------------------------------------------def setup_move_move(mode) if mode == MODE_MOVER @index -= 1 @index = @items.size - 1 if @index < 0 elsif mode == MODE_MOVEL @index += 1 @index = 0 if @index >= @items.size
else return end @mode = mode @steps = MOVING_FRAMES end #-------------------------------------------------------------------------# チ› ƒAƒjƒ チチ[ƒVƒ‡ƒ"’†‚©‚Ç‚¤‚© #-------------------------------------------------------------------------def animation? return @mode != MODE_WAIT end end #=========================================================================== === # チ¡ Window_MenuStatus #-----------------------------------------------------------------------------# @ƒƒjƒ…[‰æ–Ê‚ƒp[ƒeƒBƒƒ"ƒo[‚̃Xƒe[ƒ^ƒX‚ð•\Ž¦‚·‚éƒEƒBƒ"ƒhƒE‚‚·B #=========================================================================== === class Window_RingMenuStatus < Window_Selectable #-------------------------------------------------------------------------# チ œ ƒIƒuƒWƒFƒNƒg マ‰Šú‰» #-------------------------------------------------------------------------def initialize super(204, 64, 232, 352) self.contents = Bitmap.new(width - 32, height - 32) refresh self.active = false
self.index = -1 end #-------------------------------------------------------------------------# チ œ ƒŠƒtƒŒƒbƒVƒ… #-------------------------------------------------------------------------def refresh self.contents.clear self.contents.font.name = "Arial" @item_max = $game_party.actors.size for i in 0...$game_party.actors.size x = 80 y = 80 * i actor = $game_party.actors[i] draw_actor_graphic(actor, x - 40, y + 80) draw_actor_name(actor, x, y + 24) end end #-------------------------------------------------------------------------# チ œ ƒJ チ[ƒ\ƒ‹‚Ì‹éŒ`ヘ X ミ V #-------------------------------------------------------------------------def update_cursor_rect if @index < 0 self.cursor_rect.empty else self.cursor_rect.set(0, @index * 80, self.width - 32, 80) end end end
#=========================================================================== === # #チ¡ Scene_RingMenu # チ¡ Scene_Menu #-----------------------------------------------------------------------------# チ@ƒ チ ƒjƒ…チ[‰æ–Ê‚Ì マˆ—ン‚ð ヘ s‚¤ƒNƒ‰ƒX‚‚·チ B #=========================================================================== === #class Scene_RingMenu class Scene_Menu #-------------------------------------------------------------------------# チ œ ƒIƒuƒWƒFƒNƒg マ‰Šú‰» # menu_index : ƒRƒ}ƒ"ƒh‚̃J チ[ƒ\ƒ‹マ‰ŠúˆÊ’u #-------------------------------------------------------------------------def initialize(menu_index = 0) @menu_index = menu_index end #-------------------------------------------------------------------------# チ œ ƒ チ ƒCƒ"マˆ—ン #-------------------------------------------------------------------------def main # ƒXƒvƒ‰ƒCƒgƒZƒbƒg‚ð ヘ ì ミ¬ @spriteset = Spriteset_Map.new # ƒRƒ}ƒ"ƒhƒEƒBƒ"ƒhƒE‚ðì¬ px = $game_player.screen_x - 15 py = $game_player.screen_y - 24 @command_window = Window_RingMenu.new(px,py) @command_window.index = @menu_index # ƒp[ƒeƒBl"‚ª 0 l‚Ìè‡
if $game_party.actors.size == 0 # ƒAƒCƒeƒ€AƒXƒLƒ‹A‘•"õAƒXƒe[ƒ^ƒX‚𖳌ø‰» @command_window.disable_item(0) @command_window.disable_item(1) @command_window.disable_item(2) @command_window.disable_item(3) end @command_window.z = 100 # ƒZ[ƒu‹ÖŽ~‚Ìè‡ if $game_system.save_disabled # ƒZ[ƒu‚𖳌ø‚É‚·‚é @command_window.disable_item(4) end # ƒXƒe[ƒ^ƒXƒEƒBƒ"ƒhƒE‚ðì¬ @status_window = Window_RingMenuStatus.new @status_window.x = 160 @status_window.y = 0 @status_window.z = 200 @status_window.visible = false # ƒgƒ‰ƒ"ƒWƒVƒ‡ƒ"ŽÀs Graphics.transition # ƒƒCƒ"ƒ‹[ƒv loop do # ƒQ[ƒ€‰æ–Ê‚ðXV Graphics.update # "ü—Íèî•ñ‚ðXV Input.update # ƒtƒŒ[ƒ€XV
update # ‰æ–Ê‚ªØ‚è‘Ö‚í‚Á‚½‚烋[ƒv‚ð’†’f if $scene != self break end end # ƒgƒ‰ƒ"ƒWƒVƒ‡ƒ"è€"õ Graphics.freeze # ƒXƒvƒ‰ƒCƒgƒZƒbƒg‚ð‰ð•ú @spriteset.dispose # ƒEƒBƒ"ƒhƒE‚ð‰ð•ú @command_window.dispose @status_window.dispose end #-------------------------------------------------------------------------# œ ƒtƒŒ[ƒ€XV #-------------------------------------------------------------------------def update # ƒEƒBƒ"ƒhƒE‚ð ヘ X ミ V @command_window.update @status_window.update # ƒRƒ}ƒ"ƒhƒEƒBƒ"ƒhƒE‚ªƒAƒNƒeƒBƒu‚Ì マ ヘ‡: update_command ‚ðŒÄ‚Ô if @command_window.active update_command return end # ƒXƒe チ[ƒ^ƒXƒEƒBƒ"ƒhƒE‚ªƒAƒNƒeƒBƒu‚Ì マ ヘ‡: update_status ‚ðŒÄ‚Ô if @status_window.active
update_status return end end #-------------------------------------------------------------------------# œ ƒtƒŒ[ƒ€XV (ƒRƒ}ƒ"ƒhƒEƒBƒ"ƒhƒE‚ªƒAƒNƒeƒBƒu‚Ìè‡) #-------------------------------------------------------------------------def update_command # B ƒ{ƒ^ƒ"‚ª‰Ÿ‚³‚‚½è‡ if Input.trigger?(Input::B) # ƒLƒƒƒ"ƒZƒ‹ SE ‚ð‰‰‘t $game_system.se_play($data_system.cancel_se) # ƒ}ƒbƒv‰æ–Ê‚ÉØ‚è‘Ö‚¦ $scene = Scene_Map.new return end # C ƒ{ƒ^ƒ"‚ª‰Ÿ‚³‚‚½è‡ if Input.trigger?(Input::C) # ƒp[ƒeƒBl"‚ª 0 l‚AƒZ[ƒuAƒQ[ƒ€èI—¹ˆÈŠO‚̃Rƒ}ƒ"ƒh‚Ìè‡ if $game_party.actors.size == 0 and @command_window.index < 4 # ƒuƒU[ SE ‚ð‰‰‘t $game_system.se_play($data_system.buzzer_se) return end # ƒRƒ}ƒ"ƒhƒEƒBƒ"ƒhƒE‚̃J[ƒ\ƒ‹ˆÊ’u‚•ªŠò case @command_window.index when 0 # ƒAƒCƒeƒ€ # Œˆ’è SE ‚ð‰‰‘t
$game_system.se_play($data_system.decision_se) # ƒAƒCƒeƒ€‰æ–Ê‚ÉØ‚è‘Ö‚¦ $scene = Scene_Item.new when 1 # ƒXƒLƒ‹ # Œˆ’è SE ‚ð‰‰‘t $game_system.se_play($data_system.decision_se) # ƒXƒe[ƒ^ƒXƒEƒBƒ"ƒhƒE‚ðƒAƒNƒeƒBƒu‚É‚·‚é @command_window.active = false @status_window.active = true @status_window.visible = true @status_window.index = 0 when 2 # ‘•"õ # Œˆ’è SE ‚ð‰‰‘t $game_system.se_play($data_system.decision_se) # ƒXƒe チ[ƒ^ƒXƒEƒBƒ"ƒhƒE‚ðƒAƒNƒeƒBƒu‚É‚·‚é @command_window.active = false @status_window.active = true @status_window.visible = true @status_window.index = 0 when 3 # ƒXƒe チ[ƒ^ƒX # Œˆ’è SE ‚ð‰‰‘t $game_system.se_play($data_system.decision_se) # ƒXƒe チ[ƒ^ƒXƒEƒBƒ"ƒhƒE‚ðƒAƒNƒeƒBƒu‚É‚·‚é @command_window.active = false @status_window.active = true @status_window.visible = true @status_window.index = 0 when 4 # ƒZ[ƒu
# ƒZ[ƒu‹ÖŽ~‚Ìè‡ if $game_system.save_disabled # ƒuƒU[ SE ‚ð‰‰‘t $game_system.se_play($data_system.buzzer_se) return end # Œˆ’è SE ‚ð‰‰‘t $game_system.se_play($data_system.decision_se) # ƒZ[ƒu‰æ–Ê‚ÉØ‚è‘Ö‚¦ $scene = Scene_Save.new when 5 # ƒQ[ƒ€èI—¹ # Œˆ’è SE ‚ð‰‰‘t $game_system.se_play($data_system.decision_se) # ƒQ[ƒ€èI—¹‰æ–Ê‚ÉØ‚è‘Ö‚¦ $scene = Scene_End.new end return end # ƒAƒjƒ[ƒVƒ‡ƒ"’†‚È‚çƒJ[ƒ\ƒ‹‚Ì舗‚ðs‚í‚È‚¢ return if @command_window.animation? # チ ªor チ© ƒ{ƒ^ƒ"‚ª‰Ÿ‚³‚‚½ マ ヘ‡ if Input.press?(Input::UP) or Input.press?(Input::LEFT) $game_system.se_play($data_system.cursor_se) @command_window.setup_move_move(Window_RingMenu::MODE_MOVEL) return end # チ«or チ¨ ƒ{ƒ^ƒ"‚ª‰Ÿ‚³‚‚½ マ ヘ‡ if Input.press?(Input::DOWN) or Input.press?(Input::RIGHT)
$game_system.se_play($data_system.cursor_se) @command_window.setup_move_move(Window_RingMenu::MODE_MOVER) return end end #-------------------------------------------------------------------------# チ œ ƒtƒŒ[ƒ€XV (ƒXƒe[ƒ^ƒXƒEƒBƒ"ƒhƒE‚ªƒAƒNƒeƒBƒu‚Ìè‡) #-------------------------------------------------------------------------def update_status # B ƒ{ƒ^ƒ"‚ª‰Ÿ‚³‚‚½è‡ if Input.trigger?(Input::B) # ƒLƒƒƒ"ƒZƒ‹ SE ‚ð‰‰‘t $game_system.se_play($data_system.cancel_se) # ƒRƒ}ƒ"ƒhƒEƒBƒ"ƒhƒE‚ðƒAƒNƒeƒBƒu‚É‚·‚é @command_window.active = true @status_window.active = false @status_window.visible = false @status_window.index = -1 return end # C ƒ{ƒ^ƒ"‚ª‰Ÿ‚³‚‚½ マ ヘ‡ if Input.trigger?(Input::C) # ƒRƒ}ƒ"ƒhƒEƒBƒ"ƒhƒE‚̃J チ[ƒ\ƒ‹ˆÊ’u‚•ªŠò case @command_window.index when 1 # ƒXƒLƒ‹ # ‚±‚̃AƒNƒ^チ[‚Ì ヘ s"®ミ§ŒÀ‚ª 2 ˆÈ マ ã‚Ì マ ヘ‡ if $game_party.actors[@status_window.index].restriction >= 2 # ƒuƒU チ[ SE ‚ð‰‰‘t
$game_system.se_play($data_system.buzzer_se) return end # Œˆ’è SE ‚ð‰‰‘t $game_system.se_play($data_system.decision_se) # ƒXƒLƒ‹‰æ–Ê‚É ミ Ø‚è‘Ö‚¦ $scene = Scene_Skill.new(@status_window.index) when 2 # ‘•"õ # Œˆ’è SE ‚ð‰‰‘t $game_system.se_play($data_system.decision_se) # ‘•"õ‰æ–Ê‚É ミ Ø‚è‘Ö‚¦ $scene = Scene_Equip.new(@status_window.index) when 3 # ƒXƒe チ[ƒ^ƒX # Œˆ’è SE ‚ð‰‰‘t $game_system.se_play($data_system.decision_se) # ƒXƒe チ[ƒ^ƒX‰æ–Ê‚É ミ Ø‚è‘Ö‚¦ $scene = Scene_Status.new(@status_window.index) end return end end end This is not my script! -ActorsMake a unqie name for your actors not like jamie make a good name like salfix and also use your own grafics. -EnemiesEdit the enemies names and make coditions to destroy them like
you need the hell pendent to stop the knight angel. -IconsMake your own weapon icons or your going to have crimson axe with the defult axe icon there are alout of icons here no resizing needing. -TitlesMake your own title with a good logo to catch people atension also make a good background. -TutorialsHere is my own tutorial about making a journal first make a item called journal... now make a commen event called journal now make a switch called journal 1 now put in this... Woul do you like to view journal? When yes... Condinal branch journal 1 is on Text: This is my first quest and i completed it! else handler Nothing now when you make a quest when you complet it add the switch journal 1 on and you got a journal... -Getting your game over the netMake a website at www.freewebs.com and then add your game to the site! next go to www.co.nr and make a domain for your site its free! and your done! Written by jonathan samson edited by sam romanove Drawer studios www.drawerstudios.co.nr
THE END