You are on page 1of 22

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 Branchs-

A 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!

-Switchs-

Now 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!

-Varibles-

First 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...

-Brainstorming-

First off buy a notepad, every night write the story

of the game after about a month you will have about

a 30 hour game...

-Resources-

The 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.

-Scripts-

Using 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[ƒ^ƒXvƒƒjƒ…[‚̃AƒCƒRƒ"

ICON_SAVE = RPG::Cache.icon("038-Item07") # uƒZ[ƒuvƒƒ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ƒŒ[ƒ€XV

#--------------------------------------------------------------------------

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ƒBl"‚ª 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[ƒ€‰æ–Ê‚ðXV

Graphics.update

# "ü—Íèî•ñ‚ðXV

Input.update

# ƒtƒŒ[ƒ€XV
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ƒŒ[ƒ€XV

#--------------------------------------------------------------------------

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ƒŒ[ƒ€XV (ƒ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ƒBl"‚ª 0 l‚AƒZ[ƒuAƒ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ƒŒ[ƒ€XV (ƒ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!

-Actors-

Make a unqie name for your actors not like jamie

make a good name like salfix and also use your own grafics.

-Enemies-

Edit the enemies names and make coditions to destroy them like
you need the hell pendent to stop the knight angel.

-Icons-

Make 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.

-Titles-

Make your own title with a good logo to catch people atension

also make a good background.

-Tutorials-

Here 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 net-

Make 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

You might also like