Submit Your Article


 
RPG Maker

Welcome Guest ( Log In | Register )


  Games Resources RPG Maker VX RPG Maker XP Scripts Tutorials Downloads

> Items Book and Bestiary system, System based in DG8
Cold
post Jan 22 2009, 03:07 PM
Post #1



Group Icon

Group: Member
Posts: 4
Type: Scripter
RM Skill: Advanced




Bestiary and Items Book
by Cold


If you use this script, it’s essential that you give the credits to the creator.


Characteristics

This script creates a Bestiary and Items Book that is possible to see information of monsters and items. It have also a system the monsters drop limitless items. And also a system of treasures.

Screenshots
[Show/Hide] Screnshots






Instructions

Customization in Script. Like too has the system of treasure, to the item to be considered a treasure, it must have a attribute called treasure. (Customizable in Script)

Scripts

Insert this Script above main (Cold Module):
CODE
#######################################################################
#########
################################################################################
########################### Cold Module ########################################
################################################################################
################################################################################
#===============================================================================
# By Cold Strong
#===============================================================================
# Cold Module
#-------------------------------------------------------------------------------
# This script count some functions used by my scripts
# Obs: It is some imcomplete...
#===============================================================================

class Customs_Data

attr_accessor :actors
attr_accessor :classes
attr_accessor :skills
attr_accessor :items
attr_accessor :weapons
attr_accessor :armors
attr_accessor :enemies
attr_accessor :troops
attr_accessor :states
attr_accessor :animations
attr_accessor :tilesets
attr_accessor :common_events
attr_accessor :system
attr_accessor :map_infos
attr_accessor :maps

def initialize
@actors = load_data("Data/Actors.rxdata")
@classes = load_data("Data/Classes.rxdata")
@skills = load_data("Data/Skills.rxdata")
@items = load_data("Data/Items.rxdata")
@weapons = load_data("Data/Weapons.rxdata")
@armors = load_data("Data/Armors.rxdata")
@enemies = load_data("Data/Enemies.rxdata")
@troops = load_data("Data/Troops.rxdata")
@states = load_data("Data/States.rxdata")
@animations = load_data("Data/Animations.rxdata")
@tilesets = load_data("Data/Tilesets.rxdata")
@common_events = load_data("Data/CommonEvents.rxdata")
@system = load_data("Data/System.rxdata")
@maps = {}
for i in 1..999
number = sprintf("%03d", i)
if FileTest.exist?("Data/Map#{number}.rxdata")
@maps[i] = load_data("Data/Map#{number}.rxdata")
else
break
end
end
@map_infos = load_data("Data/MapInfos.rxdata")
end

def [](str)
return @customs_data[str]
end

end

module Cold

$data = Customs_Data.new

end

class Window_Base < Window


#--------------------------------------------------------------------------
# - Desenhar Gráfico
#
# t : Texto a ser feita as linhas
# width : Largura máxima da linha
#
# - Ele retorna uma array, em que cada elemento é uma string
# com a largura desejada.
#--------------------------------------------------------------------------

def lines(t, width)
text = t.clone
x = self.contents.text_size(text).width / width
x += 1 if self.contents.text_size(text).width % width > 0
texts = []
for i in 0...x
texts.push("")
end
for i in 0...texts.size
words = text.split(" ")
return_text = ""
for w in 0...words.size
word = words[w]
x = "!@$%¨&*()"
return_text += word + x + " "
return_text2 = return_text.gsub(x,"")
t_width = self.contents.text_size(return_text2).width
if t_width > width
texts[i] = return_text.gsub(" "+word+x, "")
text.gsub!(texts[i], "")
break
elsif w == words.size - 1
texts[i] = return_text.gsub(x+" ", "")
text.gsub!(texts[i], "")
break
else
return_text.gsub!(word+x, word)
end
end
end
return texts
end

def draw_text_in_lines(x, y_initial, width, height, text)
lines = lines(text, width)
y = y_initial
for text_line in lines
self.contents.draw_text(x, y, width, height, text_line)
y += height
end
end

end

After, insert this other script above main and below previous script:
Script is Attachments cause it's very big

How to use:

To call the Items Menu:
$scene = Scene_ItemsBook.new

To call the Bestiary Menu:
$scene = Scene_Bestiary.new

Obs.: It’s necessary a picture in the directory Graphics/Pictures to be a background of menus. To change the name of picture, go to the line 42 of Script.

Demo



Credits

Cold Strong (me)

This post has been edited by Cold: Jan 23 2009, 02:55 PM
Attached File(s)
Attached File  Script.txt ( 77.82K ) Number of downloads: 356
 
Go to the top of the page
 
+Quote Post
   
 
Start new topic
Replies
Zero2505
post Jun 27 2009, 10:06 AM
Post #2



Group Icon

Group: Member
Posts: 4
Type: None
RM Skill: Beginner




I got it working fine, but when I added the line for the menu, it change my menu back to the old one, which I am using Moghunters menu. Can anyone help me add this to my new menu please.
The way my menu was setup was:
-Items
-Skills
-Status
-Party
-Quit

If possible could someone add it in between Party and Quit?
Here is the code for Mog hunter menu

CODE
#_______________________________________________________________________________
# MOG Scene Menu Itigo V1.2            
#_______________________________________________________________________________
# By Moghunter  
# http://www.atelier-rgss.com
#_______________________________________________________________________________
module MOG
#Transition Time.
MNTT = 20
#Transition Type (Name)
MNTP = "006-Stripe02"
end
$mogscript = {} if $mogscript == nil
$mogscript["menu_itigo"] = true
##############
# Game_Actor #
##############
class Game_Actor < Game_Battler
def now_exp
return @exp - @exp_list[@level]
end
def next_exp
return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
end
end
###############
# Window_Base #
###############
class Window_Base < Window
def nada
face = RPG::Cache.picture("")
end    
def drw_face(actor,x,y)
face = RPG::Cache.picture(actor.name + "_fc") rescue nada
cw = face.width
ch = face.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x , y - ch, face, src_rect)    
end  
def draw_maphp3(actor, x, y)
back = RPG::Cache.picture("BAR0")    
cw = back.width  
ch = back.height
src_rect = Rect.new(0, 0, cw, ch)    
self.contents.blt(x + 65, y - ch + 30, back, src_rect)
meter = RPG::Cache.picture("HP_Bar")    
cw = meter.width  * actor.hp / actor.maxhp
ch = meter.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 65, y - ch + 30, meter, src_rect)
text = RPG::Cache.picture("HP_Tx")    
cw = text.width  
ch = text.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 35, y - ch + 30, text, src_rect)
self.contents.font.color = Color.new(0,0,0,255)
self.contents.draw_text(x + 81, y - 1, 48, 32, actor.hp.to_s, 2)
self.contents.font.color = Color.new(255,255,255,255)
self.contents.draw_text(x + 80, y - 2, 48, 32, actor.hp.to_s, 2)    
end  
def draw_mapsp3(actor, x, y)
back = RPG::Cache.picture("BAR0")    
cw = back.width  
ch = back.height
src_rect = Rect.new(0, 0, cw, ch)    
self.contents.blt(x + 65, y - ch + 30, back, src_rect)
meter = RPG::Cache.picture("SP_Bar")    
cw = meter.width  * actor.sp / actor.maxsp
ch = meter.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 65, y - ch + 30, meter, src_rect)
text = RPG::Cache.picture("SP_Tx")    
cw = text.width  
ch = text.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 35, y - ch + 30, text, src_rect)
self.contents.font.color = Color.new(0,0,0,255)
self.contents.draw_text(x + 81, y - 1, 48, 32, actor.sp.to_s, 2)
self.contents.font.color = Color.new(255,255,255,255)
self.contents.draw_text(x + 80, y - 2, 48, 32, actor.sp.to_s, 2)    
end  
def draw_mexp2(actor, x, y)
bitmap2 = RPG::Cache.picture("Exp_Back")
cw = bitmap2.width
ch = bitmap2.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 60 , y - ch + 30, bitmap2, src_rect)
if actor.next_exp != 0
rate = actor.now_exp.to_f / actor.next_exp
else
rate = 1
end
bitmap = RPG::Cache.picture("Exp_Meter")
if actor.level < 99
cw = bitmap.width * rate
else
cw = bitmap.width
end  
ch = bitmap.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 60 , y - ch + 30, bitmap, src_rect)
exp_tx = RPG::Cache.picture("Exp_tx")
cw = exp_tx.width
ch = exp_tx.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 55 , y - ch + 30, exp_tx, src_rect)
lv_tx = RPG::Cache.picture("LV_tx")
cw = lv_tx.width
ch = lv_tx.height
src_rect = Rect.new(0, 0, cw, ch)
self.contents.blt(x + 125 , y - ch + 35, lv_tx, src_rect)
self.contents.font.color = Color.new(0,0,0,255)
self.contents.draw_text(x + 161, y + 7, 24, 32, actor.level.to_s, 1)
self.contents.font.color = Color.new(255,255,255,255)
self.contents.draw_text(x + 160, y + 6, 24, 32, actor.level.to_s, 1)
end
def draw_actor_state2(actor, x, y, width = 80)
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,2)
end  
end
######################
# Window_MenuStatus2 #
######################
class Window_MenuStatus2 < Window_Selectable
def initialize
super(0, 0, 415, 280)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
self.active = false
self.opacity = 0
self.index = -1
end
def refresh
self.contents.clear
@item_max = $game_party.actors.size
for i in 0...$game_party.actors.size
x = 20
y = i * 62
actor = $game_party.actors[i]
self.contents.font.name = "Georgia"
if $mogscript["TP_System"] == true
draw_actor_tp(actor ,x + 285, y - 5,4)  
draw_actor_state2(actor ,x + 190, y - 5)
else  
draw_actor_state2(actor ,x + 220, y - 5)
end
drw_face(actor,x,y + 50)
draw_maphp3(actor,x + 40, y - 5)
draw_mapsp3(actor,x + 40, y + 20 )
draw_mexp2(actor,x + 140, y + 15 )
end
end
def update_cursor_rect
if @index < 0
self.cursor_rect.empty
else
self.cursor_rect.set(5, @index * 62, self.width - 32, 50)
end
end
end
################
# Window_Gold2 #
################
class Window_Gold2 < Window_Base
def initialize
super(0, 0, 160, 64)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end
def refresh
self.contents.clear
cx = contents.text_size($data_system.words.gold).width
self.contents.font.color = normal_color
self.contents.draw_text(4, 0, 120-cx-2, 32, $game_party.gold.to_s, 2)
self.contents.font.color = system_color
self.contents.draw_text(124-cx, 0, cx, 32, $data_system.words.gold, 2)
end
end
####################
# Window_PlayTime2 #
####################
class Window_PlayTime2 < Window_Base
def initialize
super(0, 0, 160, 96)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end
def refresh
self.contents.clear
@total_sec = Graphics.frame_count / Graphics.frame_rate
hour = @total_sec / 60 / 60
min = @total_sec / 60 % 60
sec = @total_sec % 60
text = sprintf("%02d:%02d:%02d", hour, min, sec)
self.contents.font.color = normal_color
self.contents.draw_text(4, 32, 120, 32, text, 2)
end
def update
super
if Graphics.frame_count / Graphics.frame_rate != @total_sec
refresh
end
end
end
#################
# Window_Steps2 #
#################
class Window_Steps2 < Window_Base
def initialize
super(0, 0, 160, 96)
self.contents = Bitmap.new(width - 32, height - 32)
refresh
end
def refresh
self.contents.clear
self.contents.font.color = normal_color
self.contents.draw_text(4, 32, 120, 32, $game_party.steps.to_s, 2)
end
end
##############
# Scene_Menu #
##############
class Scene_Menu
def initialize(menu_index = 0)
@menu_index = menu_index
end
def main
s1 = ""
s2 = ""
s3 = ""
s4 = ""
s5 = ""
s6 = ""
@command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
@command_window.index = @menu_index
if $game_party.actors.size == 0
@command_window.disable_item(0)
@command_window.disable_item(1)
@command_window.disable_item(2)
@command_window.disable_item(3)
end
@command_window.visible = false
@command_window.x = -640
@mnlay = Sprite.new
@mnlay.bitmap = RPG::Cache.picture("Mn_lay")
@mnlay.z = 10
@mnback = Plane.new
@mnback.bitmap = RPG::Cache.picture("Mn_back")
@mnback.blend_type = 0
@mnback.z = 5
@mnback2 = Plane.new
@mnback2.bitmap = RPG::Cache.picture("Mn_back")
@mnback2.blend_type = 0
@mnback2.z = 5
@mnback2.opacity = 60
@mnsel = Sprite.new
@mnsel.bitmap = RPG::Cache.picture("Mn_Sel")
@mnsel.z = 20
@mnsel.x = 0
@mnsel.y = 110
@mnop = 150
if $game_system.save_disabled
@command_window.disable_item(4)
end
@playtime_window = Window_PlayTime2.new
@playtime_window.x = 30
@playtime_window.y = 375
@playtime_window.opacity = 0
@playtime_window.z = 15
@steps_window = Window_Steps2.new
@steps_window.x = 230
@steps_window.y = 375
@steps_window.opacity = 0
@steps_window.z = 15
@gold_window = Window_Gold2.new
@gold_window.x = 455
@gold_window.y = 405
@gold_window.opacity = 0
@gold_window.z = 15
@status_window = Window_MenuStatus2.new
@status_window.x = 195
@status_window.y = 110
@status_window.opacity = 0
@status_window.z = 15
Graphics.transition(MOG::MNTT, "Graphics/Transitions/" + MOG::MNTP)
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@command_window.dispose
@playtime_window.dispose
@steps_window.dispose
@gold_window.dispose    
@status_window.dispose
@mnlay.dispose
@mnback.dispose
@mnback2.dispose
@mnsel.dispose
Graphics.update
end
def update
@command_window.update
@playtime_window.update
@steps_window.update
@gold_window.update
@status_window.update
@mnback.oy += 1
@mnback.ox += 1
@mnback2.oy += 1
@mnback2.ox -= 1
@mnop += 5
if @command_window.active == true
@mnsel.bitmap = RPG::Cache.picture("Mn_Sel")    
else
@mnsel.bitmap = RPG::Cache.picture("Mn_Sel_off")
@mnsel.zoom_x = 1
@mnsel.opacity = 255
end
if @mnop >= 255
@mnop = 120
end  
if @command_window.active
update_command
return
end
if @status_window.active
update_status
return
end
end
def update_command
if @mnsel.zoom_x <= 1.6
@mnsel.zoom_x += 0.03
@mnsel.opacity -= 10
elsif @mnsel.zoom_x > 1.6
@mnsel.zoom_x = 1.0
@mnsel.opacity = 255
end  
case @command_window.index
when 0  
@mnsel.x = 0
@mnsel.y = 110
when 1
@mnsel.x = 25
@mnsel.y = 155
when 2
@mnsel.x = 40
@mnsel.y = 197
when 3
@mnsel.x = 45
@mnsel.y = 242
when 4
@mnsel.x = 25
@mnsel.y = 285
when 5
@mnsel.x = 0
@mnsel.y = 325
end    
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Map.new
return
end
if Input.trigger?(Input::C)
if $game_party.actors.size == 0 and @command_window.index < 4
$game_system.se_play($data_system.buzzer_se)
return
end
case @command_window.index
when 0
$game_system.se_play($data_system.decision_se)
$scene = Scene_Item.new
when 1
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 2
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 3
$game_system.se_play($data_system.decision_se)
@command_window.active = false
@status_window.active = true
@status_window.index = 0
when 4
if $game_system.save_disabled
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
$scene = Scene_PartySwitcher.new
when 5
$game_system.se_play($data_system.decision_se)
$scene = Scene_End.new
end
return
end
end
def update_status
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
@command_window.active = true
@status_window.active = false
@status_window.index = -1
return
end
if Input.trigger?(Input::C)
case @command_window.index
when 1
if $game_party.actors[@status_window.index].restriction >= 2
$game_system.se_play($data_system.buzzer_se)
return
end
$game_system.se_play($data_system.decision_se)
$scene = Scene_Skill.new(@status_window.index)
when 2  
$game_system.se_play($data_system.decision_se)
$scene = Scene_Equip.new(@status_window.index)
when 3  
$game_system.se_play($data_system.decision_se)
$scene = Scene_Status.new(@status_window.index)
end
return
end
end
end


Thank you in advance
Go to the top of the page
 
+Quote Post
   

Posts in this topic
- Cold   Items Book and Bestiary system   Jan 22 2009, 03:07 PM
- - he_said   Hey that's a nice script! Can you make it...   Jan 22 2009, 04:37 PM
- - Cold   I don't work with RGSS2, alias i don't hav...   Jan 23 2009, 05:07 AM
- - Rafidelis   Verry Cool Cold Strong =D Braziliam scripters rule...   Jan 23 2009, 06:27 AM
- - Fraöt   Good! That Script did work but... I don't ...   Jan 23 2009, 09:17 AM
- - Rafidelis   First, paste this script above the Main, he change...   Jan 23 2009, 03:22 PM
|- - Fraöt   QUOTE (Rafidelis @ Jan 23 2009, 03:22 PM)...   Jan 24 2009, 08:12 PM
- - Cold   Ow, perfect Rafidelis...   Jan 23 2009, 04:02 PM
- - UltiHaker   Wow! it's really good! Thanks, it...   Jan 24 2009, 07:12 PM
- - Fraöt   BTW: It didn't work. The "Extras" ca...   Jan 24 2009, 08:47 PM
- - Cold   Well... The script is working, i don´t understand...   Jan 25 2009, 10:35 AM
- - Rafidelis   Well, I made a simple error when writing the scrip...   Jan 25 2009, 03:37 PM
|- - Benvx   I dont quite understand this what do you mean by s...   Feb 19 2009, 08:02 AM
- - Fraöt   WOw, thanx! It worked! I can now choose t...   Jan 28 2009, 02:29 PM
- - kamster94   it's gr8! can anyone write something like ...   Feb 22 2009, 02:33 AM
- - Rigor Mortiis   @ Cold : The script works perfekt, but i have a q...   May 27 2009, 02:32 AM
- - Bigace   What does this mean Would try and fix it my self,...   Jun 6 2009, 06:57 AM
|- - Fishyguyguy   QUOTE (Bigace @ Jun 6 2009, 06:57 AM) Wha...   Aug 9 2009, 11:43 AM
- - Bigace   Really does this guy even come to this sight anymo...   Jun 10 2009, 03:15 PM
- - RaidenPrime   Could someone tell me how I can change the text si...   Jul 10 2009, 08:44 PM
- - sournote103   I'm making a detective/mystery game, and I onl...   Jul 12 2009, 04:42 PM
|- - Antilurker77   Is there a way so certain items and monsters don...   Aug 2 2009, 03:50 PM
- - Zaroff90   Hey, i'm using gubid's tactical battle sys...   Oct 29 2009, 10:27 AM
- - dummy1234   Awesome script combo [the book and the extras menu...   Oct 31 2009, 04:59 AM
- - Zaroff90   anyone? can i get any advice on this? i'm usin...   Nov 5 2009, 09:32 AM
- - Pherione   I got a problem with saving. When I open one of bo...   Jan 11 2010, 11:23 PM
- - Pizzajazz   Please help me fast! I've got a little pr...   Apr 5 2012, 03:55 PM
- - Night_Runner   Hey Pizzajazz, You need to have deleted all your ...   Apr 5 2012, 10:08 PM
|- - Pizzajazz   Hey, thanks! It worked.   Apr 7 2012, 09:47 AM
- - Lunajuice-Co   Sweet script. Works like a charm. Definatly going ...   May 6 2012, 08:19 AM


Closed TopicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 

Lo-Fi Version Time is now: 25th May 2013 - 04:08 PM
RPG RPG Revolution is an Privacy Policy and Legal
eXTReMe Tracker