I have been getting scripts here for awhile and have not found the system I want for my game so I signed up yesterday and I am wanting a completely new system for my game. Attached are a few pictures Of what I want.
You will be mentioned for your work and and your help is very much appreciated, even if all I get is the menu system
Thank-you in advance
[Edit]Don't worry about the battle system, I found one similar to the one I wanted
I think most of the things you want are somewhere on this form if not close to. >.> Its not TOO hard to modify them to your liking, but welcome to the form ^_^ now before someone else says it The search button will be your best friend. ^_^
So I've read from other posts on this board... and I have checked a few times... maybe I'm not searching for the right things... Well, thanks for the welcome anyway!
You are looking for a cms i belive (Custom Menu System) you can make one on another website but it is down atm
Why wait use one of the 15 stormtronic edtions that blizzard made, i artisiscalified
I suppose I could look at them...
Judging from the pictures of the menu, I'm guessing you want the equipment screen and what not all in the same scene. Is this a one person CMS? I can do quite a few things when a request has been well thought with drawings showing how menus are wanted. Graphical resources such as a specific background, like the battler in your equip menu, will need to be provided so I can script this out to where it looks nice and functions efficiently.
I've done several scripts and CMS's in the past so something with only cosmetic changes should only take about 2-4 days(I have a life) to do. Here are some links to various other requests I've finished in the past. Also, I think I could really turn this request into an awesome menu otherwise I wouldn't have bothered posting. No point in doing a request if I'm not going to take the time to do it right.
4 person CMS (http://img108.imageshack.us/my.php?image=preview0ku.png)
Slight modification requested on above picture (http://img214.imageshack.us/my.php?image=previewlostamongmortal7nt.png)
Slightly different 4 person CMS (http://img97.imageshack.us/my.php?image=previewchibidestiny1zn.png)
The pictures in this were horribly enlarged. (http://img147.imageshack.us/my.php?image=previewrei3ha.png)
My most recent piece. Another 4 person CMS (http://img116.imageshack.us/my.php?image=redeyesmenunz2.png)
With this post, I am assuming you still need the requested menu.
As long as i have the basic layout of the system I don't care what you do to customize it. That would just make it much more unique.
Where it says transparent, that is where you can see your current location on the map. When you click on item a menu will show up and show only up to 10 items and that is it. It basically stays the same as on the menu system just with an added menu. The same is for skills. It basically stays the same for the equip screen and so on. I believe the only place where you sill see a battler is on the status screen and battle screen. Everything is for only one person for it is a 1-person CMS.
I thank you for any help you may give me.
Commencing work. From your response, I'm guessing the sky is the limit? Wonderful! ^_^
Actually, the sky isn't the limit, you can go into space too!
:zoid:
Sorry to bump a topic that is a few days old but I've made enough headway to display some results for your viewing pleasure.
Item and Item Target windows (http://img100.imageshack.us/my.php?image=trenzeritemandtargetud3.png)
Skill and Skill Target windows (http://img100.imageshack.us/my.php?image=trenzerskillandtargetbo9.png)
This request has definitely been a challenge but it's coming along! =^-^=
Currently aligning the Target windows and setting them up for 1-4 party members. After that, I'll get fancy with the bars and animated stuff on the whole menu...it'll be a breeze once I get the window positions and movements out of the way.
May attempt a re-release with +4 actor support but I doubt it. Inspiration had hit me like a ton of bricks thrown off a hauling truck going 120 in a tight corner.
Wow, those look awesome, keep up the good work!
Also while I'm here, nice comparison!
This was indeed a challenge that refined my skills even more at scenes, windows, and the information displayed within them. I've made it a habit to post screenshots in links so that the dial-up users don't cry when the page starts to take 20 minutes to load because of 6 screenshots.
SCREENSHOTS:
Main menu. (http://img138.imageshack.us/my.php?image=trenzer1go1.png)
Item Menu. (http://img299.imageshack.us/my.php?image=trenzer2xc1.png)
Skill Menu. (http://img299.imageshack.us/my.php?image=trenzer3wz4.png)
Equip Menu. (http://img299.imageshack.us/my.php?image=trenzer4pd4.png)
CREDITS:
#===================================================
# 1 Person CMS by Shinami.
# Made for only a 1 character party.
# Choose your option and the window slides out.
#
#
# Modified or Changed scripts:
# 1.Bitmap-Added Gradiant Bars
# 2.Game_Actor-Redefined a few experience methods
# 3.Window_Base-Added Gradiant bar methods
# 4.Scene_Title-Added a pinchet that loads up map names upon startup.
# 5.Game_Map-Helps define map names
# 6.Scene_End-Minor menu fixes.
# 7.Scene_Save-Minor menu fixes. Nothing dramatic like save file system rewrites.
#
#
# Compatibility:
# 1.SDK-Your guess is as good as mine.
# 2.Scene_Title addons - Doubt it.
# 3.Gradiant Bars - If you're lucky, it'll work. I used Tsunokiette's bar script for this.
#
#
#
# CREDITS:
# 1.Shinami, I wrote the CMS.
# 2.Blizzard, he helped me get unstuck with the sliding windows.
# 3.Sephirothspawn, he helped me get unstuck with the sliding windows.
# 4.Squall, using his "show the map for menu background" script thingy.
# 5.Tsunokiette, using his gradiant bar script.
#===================================================
just post the two script pieces above main and below Scene_Save
SCRIPT:[code]#===================================================
# 1 Person CMS by Shinami.
# Made for only a 1 character party.
# Choose your option and the window slides out.
#
#
# Modified or Changed scripts:
# 1.Bitmap-Added Gradiant Bars
# 2.Game_Actor-Redefined a few experience methods
# 3.Window_Base-Added Gradiant bar methods
# 4.Scene_Title-Added a pinchet that loads up map names upon startup.
# 5.Game_Map-Helps define map names
# 6.Scene_End-Minor menu fixes.
# 7.Scene_Save-Minor menu fixes. Nothing dramatic like save file system rewrites.
#
#
# Compatibility:
# 1.SDK-Your guess is as good as mine.
# 2.Scene_Title addons - Doubt it.
# 3.Gradiant Bars - If you're lucky, it'll work. I used Tsunokiette's bar script for this.
#
#
#
# CREDITS:
# 1.Shinami, I wrote the CMS.
# 2.Blizzard, he helped me get unstuck with the sliding windows.
# 3.Sephirothspawn, he helped me get unstuck with the sliding windows.
# 4.Squall, using his "show the map for menu background" script thingy.
# 5.Tsunokiette, using his gradiant bar script.
#===================================================
# This variable determines the default font type
$defaultfonttype = "Tahoma"
# This variable determines the default font size
$defaultfontsize = 22
#This should eliminate any of the "I can't see the words" problems.
#===================================================
# - CLASS Bitmap Begins
#===================================================
#Taken from Tsunokiette's post on the crankeye forums. - Shinami
class Bitmap
def grade(x,y,width,height,start,finish)
for i in 0..width
r = start.red * (width - i) / width + finish.red * i / width
g = start.green * (width - i) / width + finish.green * i / width
b = start.blue * (width - i) / width + finish.blue * i / width
a = start.alpha * (width - i) / width + finish.alpha * i / width
fill_rect(x + i,y,1,height,Color.new(r, g, b, a))
end
end
def draw_gradient(x,y,width,height,colors)
gradient_width = ((width * 1.0) / (colors.size - 1))
if colors.size == 1
grade(x,y,width,height,colors[0],colors[0])
return
end
for i in 0..(colors.size - 2)
x_var = (x + (i * gradient_width))
grade(x_var,y,gradient_width,height,colors,colors[i + 1])
end
end
end
#===================================================
# - CLASS Bitmap Ends
#===================================================
class Game_Actor
def exp #exp that the hero has.
return @exp_list[@level+1] > 0 ? @exp : 0
end
def next_exp #amount of exp until next level. unaltered formula.
return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
end
def next_rest_exp #amount of exp until next level. displays formula of xp til lvl up minus exp gained.
return @exp_list[@level+1] > 0 ? (@exp_list[@level+1]- @exp) : 0
end
end
#===================================================
# - CLASS Window_Base Begins
#===================================================
class Window_Base < Window
def draw_hp_bar(actor,x,y,width = 140)
hp = actor.hp
max_hp = actor.maxhp
percentage = ((hp * 1.0) / max_hp)
bar_width = (percentage * width)
empty_width = (width - bar_width)
gray = Color.new(50,50,50,255)
hp1 = Color.new(165,10,10,125)
hp2 = Color.new(185,20,20,135)
hp3 = Color.new(205,40,40,155)
hp4 = Color.new(235,80,80,175)
hp5 = Color.new(255,100,100,195)
hp6 = Color.new(255,255,0,165)
hp7 = Color.new(255,255,0,175)
hp8 = Color.new(255,255,0,195)
hp9 = Color.new(255,255,0,215)
hp10 = Color.new(255,255,0,235)
hp11 = Color.new(235,255,0,215)
hp12 = Color.new(215,255,0,195)
hp13 = Color.new(195,255,0,175)
hp14 = Color.new(175,255,0,155)
hp15 = Color.new(155,255,0,135)
#draw empty if any
self.contents.draw_gradient(x + bar_width,y,empty_width - 1,10,[gray])
#draw gradient
self.contents.draw_gradient(x,y,bar_width,10,[hp1,hp2,hp3,hp4,hp5,hp6,hp7,hp8,hp9,hp10,hp11,hp12,hp13,hp14,hp15])
#draw border
self.contents.fill_rect(x,y,width,1,Color.new(0,0,0,255))
self.contents.fill_rect(x,y,1,5,Color.new(0,0,0,255))#this was 10 for height
self.contents.fill_rect(x + width,y,1,10,Color.new(0,0,0,255))
self.contents.fill_rect(x,y + 9,width,1,Color.new(0,0,0,255))
end
def draw_sp_bar(actor,x,y,width = 140)
sp = actor.sp
max_sp = actor.maxsp
percentage = ((sp * 1.0) / max_sp)
bar_width = (percentage * width)
empty_width = (width - bar_width)
gray = Color.new(50,50,50,255)
hp1 = Color.new(0,0,35,35) #Color variables go like so....red, green, blue, saturation.
hp2 = Color.new(0,0,45,45)#No idea what saturation does >.>; yet that is...
hp3 = Color.new(0,0,55,55)#I used Paint to produce the numbers for the pretty colors.
hp4 = Color.new(0,0,65,65)
hp5 = Color.new(0,0,75,75)
hp6 = Color.new(0,0,85,85)
hp7 = Color.new(0,0,95,95)
hp8 = Color.new(0,0,105,105)
hp9 = Color.new(0,0,115,115)
hp10 = Color.new(0,0,125,125)
hp11 = Color.new(0,0,135,135)
hp12 = Color.new(0,0,145,145)
hp13 = Color.new(0,0,155,155)
hp14 = Color.new(0,0,165,165)
hp15 = Color.new(0,0,175,175)
#draw empty if any
self.contents.draw_gradient(x + bar_width,y,empty_width - 1,10,[gray])
#draw gradient
self.contents.draw_gradient(x,y,bar_width,10,[hp1,hp2,hp3,hp4,hp5,hp6,hp7,hp8,hp9,hp10,hp11,hp12,hp13,hp14,hp15])
#draw border
self.contents.fill_rect(x,y,width,1,Color.new(0,0,0,255))
self.contents.fill_rect(x,y,1,10,Color.new(0,0,0,255))
self.contents.fill_rect(x + width,y,1,10,Color.new(0,0,0,255))
self.contents.fill_rect(x,y + 9,width,1,Color.new(0,0,0,255))
end
def draw_xp_bar(actor, current_actor,x,y,width = 140)
xp = actor.next_rest_exp
xp_tg = actor.next_exp
if $data_actors[current_actor+1].final_level = actor.level#This keeps the game from crashing when
percentage = ((100 * 1.0) / 100) #someone reaches the final level set by the
else #dev team in a project.
percentage = (((100 * 1.0) / 100) - ((xp * 1.0) / xp_tg))#100 percent - (percentage of exp to lvl gained)
end
bar_width = (percentage * width)
empty_width = (width - bar_width)
gray = Color.new(50,50,50,255)#I was too lazy to rename the variables from hp to xp and what not.
hp1 = Color.new(0,0,0,255)
hp2 = Color.new(20,20,20,255)
hp3 = Color.new(40,40,40,255)
hp4 = Color.new(60,60,60,255)
hp5 = Color.new(80,80,80,255)
hp6 = Color.new(100,100,100,255)
hp7 = Color.new(120,120,120,255)
hp8 = Color.new(140,140,140,255)
hp9 = Color.new(160,160,160,255)
hp10 = Color.new(180,180,180,255)
hp11 = Color.new(200,200,200,255)
hp12 = Color.new(220,220,220,255)
hp13 = Color.new(240,240,240,255)
hp14 = Color.new(250,250,250,255)
hp15 = Color.new(255,255,255,255)
#draw empty if any
self.contents.draw_gradient(x + bar_width,y,empty_width - 1,10,[gray])
#draw gradient
self.contents.draw_gradient(x,y,bar_width,10,[hp1,hp2,hp3,hp4,hp5,hp6,hp7,hp8,hp9,hp10,hp11,hp12,hp13,hp14,hp15])
#draw border
self.contents.fill_rect(x,y,width,1,Color.new(0,0,0,255))
self.contents.fill_rect(x,y,1,10,Color.new(0,0,0,255))
self.contents.fill_rect(x + width,y,1,10,Color.new(0,0,0,255))
self.contents.fill_rect(x,y + 9,width,1,Color.new(0,0,0,255))
end
def draw_attack_bar(actor, new_atk, x,y,width = 140)
if new_atk == actor.atk
atk = actor.atk
else
atk = new_atk
end
max_atk = 999
percentage = ((atk * 1.0) / max_atk)
bar_width = (percentage * width)
empty_width = (width - bar_width)
gray = Color.new(50,50,50,255)
hp1 = Color.new(0, 0, 0, 35) #Color variables go like so....red, green, blue, saturation.
hp2 = Color.new(20, 0, 0, 45)#No idea what saturation does >.>; yet that is...
hp3 = Color.new(40, 0, 0, 55)#I used Paint to produce the numbers for the pretty colors.
hp4 = Color.new(60, 0, 0, 65)
hp5 = Color.new(80, 0, 0, 75)
hp6 = Color.new(100, 0, 0, 85)
hp7 = Color.new(120, 0, 0, 95)
hp8 = Color.new(140, 0, 0, 105)
hp9 = Color.new(160, 0, 0, 115)
hp10 = Color.new(180, 0, 0, 125)
hp11 = Color.new(200, 0, 0, 135)
hp12 = Color.new(220, 0, 0, 145)
hp13 = Color.new(240, 0, 0, 155)
hp14 = Color.new(250, 0, 0, 165)
hp15 = Color.new(255, 0, 0, 175)
#draw empty if any
self.contents.draw_gradient(x + bar_width,y,empty_width - 1,10,[gray])
#draw gradient
self.contents.draw_gradient(x,y,bar_width,10,[hp1,hp2,hp3,hp4,hp5,hp6,hp7,hp8,hp9,hp10,hp11,hp12,hp13,hp14,hp15])
#draw border
self.contents.fill_rect(x,y,width,1,Color.new(0,0,0,255))
self.contents.fill_rect(x,y,1,10,Color.new(0,0,0,255))
self.contents.fill_rect(x + width,y,1,10,Color.new(0,0,0,255))
self.contents.fill_rect(x,y + 9,width,1,Color.new(0,0,0,255))
end
def draw_pdef_bar(actor,new_pdef,x,y,width = 140)
if new_pdef == actor.pdef
atk = actor.pdef
else
atk = new_pdef
end
max_atk = 999
percentage = ((atk * 1.0) / max_atk)
bar_width = (percentage * width)
empty_width = (width - bar_width)
gray = Color.new(50,50,50,255)
r = 3
g = 61
b = 57
s = 30
hp1 = Color.new(r, g, b, s) #Color variables go like so....red, green, blue, saturation.
hp2 = Color.new(r+=1, g+=25, r+=6, s+=5)#No idea what saturation does >.>; yet that is...
hp3 = Color.new(r+=1, g+=5, r+=26, s+=5)#I used Paint to produce the numbers for the pretty colors.
hp4 = Color.new(r+=1, g+=25, r+=6, s+=5)
hp5 = Color.new(r+=1, g+=5, r+=26, s+=5)
hp6 = Color.new(r+=1, g+=25, r+=6, s+=5)
hp7 = Color.new(r+=1, g+=5, r+=26, s+=5)
hp8 = Color.new(r+=1, g+=25, r+=6, s+=5)
hp9 = Color.new(r+=1, g+=5, r+=26, s+=5)
hp10 = Color.new(r+=1, g+=25, r+=6, s+=5)
hp11 = Color.new(r+=1, g+=5, r+=26, s+=5)
hp12 = Color.new(r+=1, g+=25, r+=6, s+=5)
hp13 = Color.new(r+=1, g+=5, r+=26, s+=5)
hp14 = Color.new(r+=1, g+=25, r+=6, s+=5)
hp15 = Color.new(r+=1, g+=5, r+=26, s+=5)
#draw empty if any
self.contents.draw_gradient(x + bar_width,y,empty_width - 1,10,[gray])
#draw gradient
self.contents.draw_gradient(x,y,bar_width,10,[hp1,hp2,hp3,hp4,hp5,hp6,hp7,hp8,hp9,hp10,hp11,hp12,hp13,hp14,hp15])
#draw border
self.contents.fill_rect(x,y,width,1,Color.new(0,0,0,255))
self.contents.fill_rect(x,y,1,10,Color.new(0,0,0,255))
self.contents.fill_rect(x + width,y,1,10,Color.new(0,0,0,255))
self.contents.fill_rect(x,y + 9,width,1,Color.new(0,0,0,255))
end
def draw_mdef_bar(actor, new_mdef,x,y,width = 140)
if new_mdef == actor.mdef
atk = actor.mdef
else
atk = new_mdef
end
max_atk = 999
percentage = ((atk * 1.0) / max_atk)
bar_width = (percentage * width)
empty_width = (width - bar_width)
gray = Color.new(50,50,50,255)
r = 26
g = 26
b = 45
s = 33
hp1 = Color.new(r, g, b, s) #Color variables go like so....red, green, blue, saturation.
hp2 = Color.new(r+=20, g+=20, r+=6, s+=5)#No idea what saturation does >.>; yet that is...
hp3 = Color.new(r+=20, g+=20, r+=6, s+=5)#I used Paint to produce the numbers for the pretty colors.
hp4 = Color.new(r+=20, g+=20, r+=6, s+=5)
hp5 = Color.new(r+=20, g+=20, r+=6, s+=5)
hp6 = Color.new(r+=20, g+=20, r+=6, s+=5)
hp7 = Color.new(r+=20, g+=20, r+=6, s+=5)
hp8 = Color.new(r+=20, g+=20, r+=6, s+=5)
hp9 = Color.new(r+=20, g+=20, r+=6, s+=5)
hp10 = Color.new(r+=20, g+=20, r+=6, s+=5)
hp11 = Color.new(r+=20, g+=20, r+=6, s+=5)
hp12 = Color.new(r+=20, g+=20, r+=6, s+=5)
hp13 = Color.new(r+=20, g+=20, r+=6, s+=5)
hp14 = Color.new(r+=20, g+=20, r+=6, s+=5)
hp15 = Color.new(r+=20, g+=20, r+=6, s+=5)
#draw empty if any
self.contents.draw_gradient(x + bar_width,y,empty_width - 1,10,[gray])
#draw gradient
self.contents.draw_gradient(x,y,bar_width,10,[hp1,hp2,hp3,hp4,hp5,hp6,hp7,hp8,hp9,hp10,hp11,hp12,hp13,hp14,hp15])
#draw border
self.contents.fill_rect(x,y,width,1,Color.new(0,0,0,255))
self.contents.fill_rect(x,y,1,10,Color.new(0,0,0,255))
self.contents.fill_rect(x + width,y,1,10,Color.new(0,0,0,255))
self.contents.fill_rect(x,y + 9,width,1,Color.new(0,0,0,255))
end
def draw_str_bar(actor, new_str,x,y,width = 140)
if new_str == actor.str
atk = actor.str
else
atk = new_str
end
max_atk = 999
percentage = ((atk * 1.0) / max_atk)
bar_width = (percentage * width)
empty_width = (width - bar_width)
gray = Color.new(50,50,50,255)
r = 61
g = 10
b = 24
s = 33
hp1 = Color.new(r, g, b, s) #Color variables go like so....red, green, blue, saturation.
hp2 = Color.new(r+=2, g+=20, r+=26, s+=5)#No idea what saturation does >.>; yet that is...
hp3 = Color.new(r+=2, g+=20, r+=26, s+=5)#I used Paint to produce the numbers for the pretty colors.
hp4 = Color.new(r+=2, g+=20, r+=26, s+=5)
hp5 = Color.new(r+=2, g+=20, r+=26, s+=5)
hp6 = Color.new(r+=2, g+=20, r+=26, s+=5)
hp7 = Color.new(r+=2, g+=20, r+=26, s+=5)
hp8 = Color.new(r+=2, g+=20, r+=26, s+=5)
hp9 = Color.new(r+=2, g+=20, r+=26, s+=5)
hp10 = Color.new(r+=2, g+=20, r+=26, s+=5)
hp11 = Color.new(r+=2, g+=20, r+=26, s+=5)
hp12 = Color.new(r+=2, g+=20, r+=26, s+=5)
hp13 = Color.new(r+=2, g+=20, r+=26, s+=5)
hp14 = Color.new(r+=2, g+=20, r+=26, s+=5)
hp15 = Color.new(r+=2, g+=20, r+=26, s+=5)
#draw empty if any
self.contents.draw_gradient(x + bar_width,y,empty_width - 1,10,[gray])
#draw gradient
self.contents.draw_gradient(x,y,bar_width,10,[hp1,hp2,hp3,hp4,hp5,hp6,hp7,hp8,hp9,hp10,hp11,hp12,hp13,hp14,hp15])
#draw border
self.contents.fill_rect(x,y,width,1,Color.new(0,0,0,255))
self.contents.fill_rect(x,y,1,10,Color.new(0,0,0,255))
self.contents.fill_rect(x + width,y,1,10,Color.new(0,0,0,255))
self.contents.fill_rect(x,y + 9,width,1,Color.new(0,0,0,255))
end
def draw_dex_bar(actor, new_str,x,y,width = 140)
if new_str == actor.dex
atk = actor.dex
else
atk = new_str
end
max_atk = 999
percentage = ((atk * 1.0) / max_atk)
bar_width = (percentage * width)
empty_width = (width - bar_width)
gray = Color.new(50,50,50,255)
r = 47
g = 48
b = 22
s = 33
hp1 = Color.new(r, g, b, s) #Color variables go like so....red, green, blue, saturation.
hp2 = Color.new(r+=2, g+=20, b+=26, s+=5)#No idea what saturation does >.>; yet that is...
hp3 = Color.new(r+=2, g+=20, b+=26, s+=5)#I used Paint to produce the numbers for the pretty colors.
hp4 = Color.new(r+=2, g+=20, b+=26, s+=5)
hp5 = Color.new(r+=2, g+=20, b+=26, s+=5)
hp6 = Color.new(r+=2, g+=20, b+=26, s+=5)
hp7 = Color.new(r+=2, g+=20, b+=26, s+=5)
hp8 = Color.new(r+=2, g+=20, b+=26, s+=5)
hp9 = Color.new(r+=2, g+=20, b+=26, s+=5)
hp10 = Color.new(r+=2, g+=20, b+=26, s+=5)
hp11 = Color.new(r+=2, g+=20, b+=26, s+=5)
hp12 = Color.new(r+=2, g+=20, b+=26, s+=5)
hp13 = Color.new(r+=2, g+=20, b+=26, s+=5)
hp14 = Color.new(r+=2, g+=20, b+=26, s+=5)
hp15 = Color.new(r+=2, g+=20, b+=26, s+=5)
#draw empty if any
self.contents.draw_gradient(x + bar_width,y,empty_width - 1,10,[gray])
#draw gradient
self.contents.draw_gradient(x,y,bar_width,10,[hp1,hp2,hp3,hp4,hp5,hp6,hp7,hp8,hp9,hp10,hp11,hp12,hp13,hp14,hp15])
#draw border
self.contents.fill_rect(x,y,width,1,Color.new(0,0,0,255))
self.contents.fill_rect(x,y,1,10,Color.new(0,0,0,255))
self.contents.fill_rect(x + width,y,1,10,Color.new(0,0,0,255))
self.contents.fill_rect(x,y + 9,width,1,Color.new(0,0,0,255))
end
def draw_agil_bar(actor, new_str,x,y,width = 140)
if new_str == actor.agi
atk = actor.agi
else
atk = new_str
end
max_atk = 999
percentage = ((atk * 1.0) / max_atk)
bar_width = (percentage * width)
empty_width = (width - bar_width)
gray = Color.new(50,50,50,255)
r = 17
g = 53
b = 35
s = 33
hp1 = Color.new(r, g, b, s) #Color variables go like so....red, green, blue, saturation.
hp2 = Color.new(r+=12, g+=20, b+=26, s+=5)#No idea what saturation does >.>; yet that is...
hp3 = Color.new(r+=2, g+=20, b+=6, s+=5)#I used Paint to produce the numbers for the pretty colors.
hp4 = Color.new(r+=12, g+=2, b+=26, s+=5)
hp5 = Color.new(r+=2, g+=20, b+=6, s+=5)
hp6 = Color.new(r+=12, g+=2, b+=26, s+=5)
hp7 = Color.new(r+=2, g+=20, b+=6, s+=5)
hp8 = Color.new(r+=12, g+=2, b+=26, s+=5)
hp9 = Color.new(r+=2, g+=20, b+=6, s+=5)
hp10 = Color.new(r+=12, g+=2, b+=26, s+=5)
hp11 = Color.new(r+=2, g+=20, b+=6, s+=5)
hp12 = Color.new(r+=12, g+=2, b+=26, s+=5)
hp13 = Color.new(r+=2, g+=20, b+=6, s+=5)
hp14 = Color.new(r+=12, g+=2, b+=26, s+=5)
hp15 = Color.new(r+=2, g+=20, b+=6, s+=5)
#draw empty if any
self.contents.draw_gradient(x + bar_width,y,empty_width - 1,10,[gray])
#draw gradient
self.contents.draw_gradient(x,y,bar_width,10,[hp1,hp2,hp3,hp4,hp5,hp6,hp7,hp8,hp9,hp10,hp11,hp12,hp13,hp14,hp15])
#draw border
self.contents.fill_rect(x,y,width,1,Color.new(0,0,0,255))
self.contents.fill_rect(x,y,1,10,Color.new(0,0,0,255))
self.contents.fill_rect(x + width,y,1,10,Color.new(0,0,0,255))
self.contents.fill_rect(x,y + 9,width,1,Color.new(0,0,0,255))
end
def draw_int_bar(actor, new_str,x,y,width = 140)
if new_str == actor.int
atk = actor.int
else
atk = new_str
end
max_atk = 999
percentage = ((atk * 1.0) / max_atk)
bar_width = (percentage * width)
empty_width = (width - bar_width)
gray = Color.new(50,50,50,255)
r = 37
g = 13
b = 79
s = 33
hp1 = Color.new(r, g, b, s) #Color variables go like so....red, green, blue, saturation.
hp2 = Color.new(r+=12, g+=20, b+=26, s+=5)#No idea what saturation does >.>; yet that is...
hp3 = Color.new(r+=2, g+=20, b+=6, s+=5)#I used Paint to produce the numbers for the pretty colors.
hp4 = Color.new(r+=12, g+=2, b+=26, s+=5)
hp5 = Color.new(r+=2, g+=20, b+=6, s+=5)
hp6 = Color.new(r+=12, g+=2, b+=26, s+=5)
hp7 = Color.new(r+=2, g+=20, b+=6, s+=5)
hp8 = Color.new(r+=12, g+=2, b+=26, s+=5)
hp9 = Color.new(r+=2, g+=20, b+=6, s+=5)
hp10 = Color.new(r+=12, g+=2, b+=26, s+=5)
hp11 = Color.new(r+=2, g+=20, b+=6, s+=5)
hp12 = Color.new(r+=12, g+=2, b+=26, s+=5)
hp13 = Color.new(r+=2, g+=20, b+=6, s+=5)
hp14 = Color.new(r+=12, g+=2, b+=26, s+=5)
hp15 = Color.new(r+=2, g+=20, b+=6, s+=5)
#draw empty if any
self.contents.draw_gradient(x + bar_width,y,empty_width - 1,10,[gray])
#draw gradient
self.contents.draw_gradient(x,y,bar_width,10,[hp1,hp2,hp3,hp4,hp5,hp6,hp7,hp8,hp9,hp10,hp11,hp12,hp13,hp14,hp15])
#draw border
self.contents.fill_rect(x,y,width,1,Color.new(0,0,0,255))
self.contents.fill_rect(x,y,1,10,Color.new(0,0,0,255))
self.contents.fill_rect(x + width,y,1,10,Color.new(0,0,0,255))
self.contents.fill_rect(x,y + 9,width,1,Color.new(0,0,0,255))
end
end
#===================================================
# - CLASS Window_Base Ends
#===================================================
#==============================================================================
# ** Game_Map class Begins
#==============================================================================
class Game_Map
def name #adding the method name
$map_infos[@map_id] #stores the maps name. info is called with $game_map.name
end
end
#==============================================================================
# ** Game_Map class Ends
#==============================================================================
#==============================================================================
# ** Scene_Title class Begins
#==============================================================================
class Scene_Title
$map_infos = load_data("Data/MapInfos.rxdata")#This recalls the map names for use when the game starts
for key in $map_infos.keys
$map_infos[key] = $map_infos[key].name
end
end
#==============================================================================
# ** Scene_Title class Ends
#==============================================================================
#==============================================================================
# ** Scene_End class Begins
#==============================================================================
class Scene_End
def update
@command_window.update
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Menu.new(4)
return
end
if Input.trigger?(Input::C)
case @command_window.index
when 0
command_to_title
when 1
command_shutdown
when 2
command_cancel
end
return
end
end
def command_cancel
# ?? SE ???
$game_system.se_play($data_system.decision_se)
# ???????????
$scene = Scene_Menu.new(4)
end
end
#==============================================================================
# ** Scene_End class Ends
#==============================================================================
class Scene_Save
def on_decision(filename)
# ??? SE ???
$game_system.se_play($data_system.save_se)
# ???????????
file = File.open(filename, "wb")
write_save_data(file)
file.close
# ????????????????
if $game_temp.save_calling
# ??????????????
$game_temp.save_calling = false
# ??????????
$scene = Scene_Map.new
return
end
# ???????????
$scene = Scene_Menu.new(3)
end
def on_cancel
$game_system.se_play($data_system.cancel_se)
if $game_temp.save_calling
$game_temp.save_calling = false
$scene = Scene_Map.new
return
end
$scene = Scene_Menu.new(3)
end
end
#==============================================================================
# ** Scene_Save class Ends
#==============================================================================
#===================================================
# - CLASS Scene_Menu Begins
#===================================================
class Scene_Menu
#---------------------------------------------------------------------------------
def initialize(menu_index = 0)
@menu_index = menu_index
end
#---------------------------------------------------------------------------------
def main
@current_actor = 0
@actor = $game_party.actors[@current_actor]
s1 = $data_system.words.item
s2 = $data_system.words.skill
s3 = $data_system.words.equip
s4 = "Save"
s5 = "Exit"
@window1 = Window_Command.new(100, [s1, s2, s3, s4, s5])
@window1.x =0
@window1.y =17
@window1.height = 200
@window1.width = 100
@window1.z = 100
@window1.index = @menu_index
@window2 = Window2.new(@actor, @current_actor)#One man status menu window.
@window2.x =255
@window2.y =18
@window2.height = 300
@window2.width = 380
@window2.z = 100
@window3 = Window3.new#Gold Window
@window3.x =0
@window3.y =400
@window3.height = 60
@window3.width = 200
@window3.z = 100
@window4 = Window4.new#Location Window. Leave as much possible room for wording.
@window4.x =270
@window4.y =400
@window4.height = 60
@window4.width = 370
@window4.z = 100
@help_window = Window8.new
@help_window.x = 0
@help_window.oy = -64
@help_window.height = 64
@help_window.width = 650
@help_window.z = 200
@window5 = Window5.new #Item window. will show up to 10 items at a time.
@window5.ox = -260
@window5.y =72
@window5.height = 358
@window5.width = 260
@window5.z = 300
@window5.active = false
@window5.help_window = @help_window
@skill_window = Window10.new(@actor)#You see, this CMS can used for more than
@skill_window.ox = -270 #just one person so that is how I'm setting it up initially.
@skill_window.y = 72 #how would I do that? Simple. I'll borrow the other scripts
@skill_window.height = 358 #how they move from one actor to another.
@skill_window.width = 270
@skill_window.z = 200
@skill_window.active = false
@skill_window.help_window = @help_window
@target_window = Window_Target2.new
@target_window.x = 304
@target_window.y = 0
@target_window.visible = false
@target_window.active = false
@target_window.z = 1000
@left_window = Window_Stats.new(@actor)
@left_window.ox =640
@left_window.x =640
#@left_window.x =380
@left_window.y = 49
@left_window.height = 250
@left_window.width = 260
@left_window.z = 300
@right_window = Window_EquipRight2.new(@actor)
@right_window.x =60
@right_window.y =-300
@right_window.oy = -300
@right_window.height = 200
@right_window.width = 300
@right_window.z = 300
@right_has_been_run = false
@item_window1 = Window_EquipItem2.new(@actor, 0)
@item_window2 = Window_EquipItem2.new(@actor, 1)
@item_window3 = Window_EquipItem2.new(@actor, 2)
@item_window4 = Window_EquipItem2.new(@actor, 3)
@item_window5 = Window_EquipItem2.new(@actor, 4)
@right_window.help_window = @help_window
@item_window1.help_window = @help_window
@item_window2.help_window = @help_window
@item_window3.help_window = @help_window
@item_window4.help_window = @help_window
@item_window5.help_window = @help_window
@viewport1 = Viewport.new(0, 0, 640, 480)
@viewport2 = Viewport.new(0, 0, 640, 480)
@viewport3 = Viewport.new(0, 0, 640, 480)
@viewport4 = Viewport.new(0, 0, 640, 480)
@viewport2.z = 101
@viewport3.z = 200
@viewport4.z = 5000
@battleback_sprite = Tilemap.new(@viewport1)
@battleback_sprite.tileset = RPG::Cache.tileset($game_map.tileset_name)
for i in 0..6
autotile_name = $game_map.autotile_names
@battleback_sprite.autotiles = RPG::Cache.autotile(autotile_name)
end
@battleback_sprite.map_data = $game_map.data
@battleback_sprite.ox = $game_map.display_x / 4
@battleback_sprite.oy = $game_map.display_y / 4
# Make character sprites...this little piece was my only contribution so no credit to me.
@character_sprites = []
for i in $game_map.events.keys.sort
sprite = Sprite_Character.new(@viewport1, $game_map.events)
@character_sprites.push(sprite)
end
@character_sprites.push(Sprite_Character.new(@viewport1, $game_player))
#After all...I only copied and pasted the little bit above this note from the Spriteset_Map class... - Shinami
@weather = RPG::Weather.new(@viewport1)
@picture_sprites = []
for i in 1..50
@picture_sprites.push(Sprite_Picture.new(@viewport2,
$game_screen.pictures))
end
@timer_sprite = Sprite_Timer.new
#this stores all the windows in one variable for easy update/dispose.
@all_window = [@left_window, @item_window1, @item_window2, @item_window3, @item_window4, @item_window5, @skill_window, @window1, @window2, @window3, @window4, @window5, @right_window, @help_window, @target_window, @viewport1, @viewport2, @viewport3, @viewport4]
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
for i in 0...@all_window.size
@all_window.dispose
end
end
#---------------------------------------------------------------------------------
def refresh
@item_window1.visible = (@right_window.index == 0)
@item_window2.visible = (@right_window.index == 1)
@item_window3.visible = (@right_window.index == 2)
@item_window4.visible = (@right_window.index == 3)
@item_window5.visible = (@right_window.index == 4)
item1 = @right_window.item
case @right_window.index
when 0
@item_window = @item_window1
when 1
@item_window = @item_window2
when 2
@item_window = @item_window3
when 3
@item_window = @item_window4
when 4
@item_window = @item_window5
end
if @right_window.active
@left_window.set_new_parameters(nil, nil, nil, nil, nil, nil, nil)
end
if @item_window.active
item2 = @item_window.item
last_hp = @actor.hp
last_sp = @actor.sp
@actor.equip(@right_window.index, item2 == nil ? 0 : item2.id)
new_atk = @actor.atk
new_pdef = @actor.pdef
new_mdef = @actor.mdef
new_str = @actor.str
new_dex = @actor.dex
new_agil = @actor.agi
new_int = @actor.int
@actor.equip(@right_window.index, item1 == nil ? 0 : item1.id)
@actor.hp = last_hp
@actor.sp = last_sp
@left_window.set_new_parameters(new_atk, new_pdef, new_mdef, new_str, new_dex, new_agil, new_int)
end
end
#---------------------------------------------------------------------------------
def update
for i in 0...@all_window.size
@all_window.update
end
if @window1.active
@window5.x = @window5.ox
@help_window.y = @help_window.oy
@skill_window.x = @skill_window.ox
@right_window.y = @right_window.oy
@left_window.x = @left_window.ox
if @right_has_been_run
@item_window.y = @item_window.oy
end
update_command
return
end
if @window5.active
@active_window = 1
update_item_window
return
end
if @target_window.active
update_target
return
end
if @skill_window.active
@active_window = 2
update_skill_window
return
end
if @right_window.active
refresh
@item_window.oy = 0
@right_has_been_run = true
update_equip_window
return
end
if @item_window.active
refresh
update_item_equip_window
return
end
end
def window_movement(index)
wait_count = 0
case index
when 0#item window movement.
loop do
wait_count += 1
if wait_count == 10
if @window5.x >= 80
@window5.x = 80
break
end
@window5.x += 10
wait_count = 0
return
end
end
when 1#things equiped window movement.
loop do
wait_count += 1
if wait_count == 10
if @right_window.y >= 55
@right_window.y = 55
break
end
@right_window.y += 5
wait_count = 0
return
end
end
when 2#item in stock window movement.
loop do
wait_count += 1
if wait_count == 10
if @item_window1.y <= 300 or @item_window2.y <= 300 or @item_window3.y <= 300 or @item_window4.y <= 300 or @item_window5.y <= 300
@item_window1.y = 300
@item_window2.y = 300
@item_window3.y = 300
@item_window4.y = 300
@item_window5.y = 300
break
end
@item_window1.y -= 5
@item_window2.y -= 5
@item_window3.y -= 5
@item_window4.y -= 5
@item_window5.y -= 5
wait_count = 0
return
end
end
when 3#Help window movement
loop do
wait_count += 1
if wait_count == 10
if @help_window.y >= 0
@help_window.y = 0
break
end
@help_window.y += 2
wait_count = 0
return
end
end
when 4#item window movement.
loop do
wait_count += 1
if wait_count == 10
if @skill_window.x >= 80
@skill_window.x = 80
break
end
@skill_window.x += 10
wait_count = 0
return
end
end
when 5
loop do
wait_count += 1
if wait_count == 10
if @left_window.x <= 380
@left_window.x = 380
break
end
@left_window.x -= 10
wait_count = 0
return
end
end
end
end
#---------------------------------------------------------------------------------
def update_command
if Input.trigger?(Input::B)
$scene = Scene_Map.new
end
if Input.trigger?(Input::C)
case @window1.index
when 0#When "Item" is selected
$game_system.se_play($data_system.decision_se)
@window5.active = true
@window5.index = 0
@window5.ox = 0
@help_window.oy = 0
@window1.active = false
return
when 1#When "Skill" is selected
$game_system.se_play($data_system.decision_se)
@skill_window.active = true
@skill_window.index = 0
@skill_window.ox = 0
@help_window.oy = 0
@window1.active = false
when 2 #When "Equip" is selected
@right_window.active = true
@right_window.index = 0
@right_window.oy = 0
@help_window.oy = 0
@left_window.ox = 0
@window1.active = false
when 3 #When "Save" is selected
$game_system.se_play($data_system.decision_se)
$scene = Scene_Save.new
when 4 #When "Quit" is selected
$game_system.se_play($data_system.decision_se)
$scene = Scene_End.new
end
end
end
def update_item_window
window_movement(0)#this moves the item window.
window_movement(3)#this moves the help window.
if Input.trigger?(Input::B)
@window1.active = true
@window5.active = false
@window5.index = -1
@help_window.oy = -64
@window5.ox = -260
return
end
if Input.trigger?(Input::C)
@item = @window5.item
unless @item.is_a?(RPG::Item)
$game_system.se_play($data_system.buzzer_se)
return
end
unless $game_party.item_can_use?(@item.id)
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
if @item.scope >= 3
@window5.active = false
@target_window.z = 500
@target_window.visible = true
@target_window.active = true
if @item.scope == 4 || @item.scope == 6
@target_window.index = -1
else
@target_window.index = 0
end
else
if @item.common_event_id > 0
$game_temp.common_event_id = @item.common_event_id
$game_system.se_play(@item.menu_se)
if @item.consumable
$game_party.lose_item(@item.id, 1)
@window5.draw_item(@window5.index)
end
$scene = Scene_Map.new
return
end
end
return
end
end
def update_target
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
if @active_window == 1
unless $game_party.item_can_use?(@item.id)
@window5.refresh
end
@window5.active = true
@target_window.visible = false
@target_window.active = false
return
end
if @active_window == 2
@skill_window.active = true
@target_window.visible = false
@target_window.active = false
end
end
if Input.trigger?(Input::C)
if @active_window == 1
if $game_party.item_number(@item.id) == 0
$game_system.se_play($data_system.buzzer_se)
return
end
if @target_window.index == -1
used = false
for i in $game_party.actors
used |= i.item_effect(@item)
end
end
if @target_window.index >= 0
target = $game_party.actors[@target_window.index]
used = target.item_effect(@item)
end
if used
$game_system.se_play(@item.menu_se)
if @item.consumable
$game_party.lose_item(@item.id, 1)
@window5.draw_item(@window5.index)
end
@target_window.refresh
if $game_party.all_dead?
$scene = Scene_Gameover.new
return
end
if @item.common_event_id > 0
$game_temp.common_event_id = @item.common_event_id
$scene = Scene_Map.new
return
end
end
unless used
$game_system.se_play($data_system.buzzer_se)
end
return
end
if @active_window == 2
unless @actor.skill_can_use?(@skill.id)
$game_system.se_play($data_system.buzzer_se)
return
end
if @target_window.index == -1
used = false
for i in $game_party.actors
used |= i.skill_effect(@actor, @skill)
end
end
if @target_window.index <= -2
target = $game_party.actors[@target_window.index + 10]
used = target.skill_effect(@actor, @skill)
end
if @target_window.index >= 0
target = $game_party.actors[@target_window.index]
used = target.skill_effect(@actor, @skill)
end
if used
$game_system.se_play(@skill.menu_se)
@actor.sp -= @skill.sp_cost
@skill_window.refresh
@target_window.refresh
if $game_party.all_dead?
$scene = Scene_Gameover.new
return
end
if @skill.common_event_id > 0
$game_temp.common_event_id = @skill.common_event_id
$scene = Scene_Map.new
return
end
end
unless used
$game_system.se_play($data_system.buzzer_se)
end
return
end
end
end
def update_skill_window
window_movement(4)#this moves the skill window. I used the same dimensions and movement for the skill window
window_movement(3)#this moves the help window. Used the help window for all pieces involving descriptions
if Input.trigger?(Input::B)
@window1.active = true
@skill_window.active = false
@skill_window.index = -1
@help_window.oy = -64
@skill_window.ox = -270
return
end
if Input.trigger?(Input::C)
@skill = @skill_window.skill
if @skill == nil or not @actor.skill_can_use?(@skill.id)
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
if @skill.scope >= 3
@skill_window.active = false
@target_window.visible = true
@target_window.active = true
if @skill.scope == 4 || @skill.scope == 6
@target_window.index = -1
elsif @skill.scope == 7
@target_window.index = @actor_index - 10
else
@target_window.index = 0
end
else
if @skill.common_event_id > 0
$game_temp.common_event_id = @skill.common_event_id
$game_system.se_play(@skill.menu_se)
@actor.sp -= @skill.sp_cost
@skill_window.refresh
@target_window.refresh
$scene = Scene_Map.new
return
end
end
return
end
end
def update_equip_window
window_movement(1)
window_movement(2)
window_movement(3)
window_movement(5)
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@window1.active = true
@right_window.active = false
@right_window.index = -1
@right_window.oy = -300
@item_window.oy = 480
@help_window.oy = -64
@left_window.ox = 635
return
end
if Input.trigger?(Input::C)
if @right_window.y == 55
if @actor.equip_fix?(@right_window.index)
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
@right_window.active = false
@item_window.active = true
@item_window.index = 0
return
end
end
end
def update_item_equip_window
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@right_window.active = true
@item_window.active = false
@item_window.index = -1
return
end
if Input.trigger?(Input::C)
$game_system.se_play($data_system.equip_se)
item = @item_window.item
@actor.equip(@right_window.index, item == nil ? 0 : item.id)
@right_window.active = true
@item_window.active = false
@item_window.index = -1
@window2.refresh
@right_window.refresh
@item_window.refresh
return
end
end
end
#===================================================
# - CLASS
I DON'T UNDERSTAND!!!! ???
It's a CMS request that took me about 5 days. Came out to almost 2000 lines of code. Honestly, this is the ONLY request I've ever hated taking on. Like I edited in above, just post the two script pieces above main and below Scene_Save
Hey, Shinami. *hint, points to the attachment*
Hey thanks, it works perfectly. Thank you very much. I appreciate your work.