BabboNatale Posted October 31, 2008 Share Posted October 31, 2008 Salve, mi servirebbe uno script di un bestiario funzionante, tt quelli k ho usato tempo fà non funzionavano... grazie. http://i59.tinypic.com/n37n6e.pnghttp://i57.tinypic.com/29lokti.png Link to comment Share on other sites More sharing options...
0 Darkshiva Posted October 31, 2008 Share Posted October 31, 2008 tieni lo preso in questo forum # Bestiario Prima versione # Descrizione script :# Ci tengo a precisare che questo script non è stato inventato da me ma io mi sono# solo preocupato di modificarlo lo script che è stato preso dal sito giapponese momomomo# l'autore non è stato immesso nello script o almeno io non sono riuscito a leggerlo# (essendo uno script jappo xD) # Script Bestiario Modificato da: dad e con la parteciapazione speciale di RagnarokM module Enemy_Book_Config#Analisi dell'oggetto attiva oppure noDROP_ITEM_NEED_ANALYZE = false#Nome del valore di evasione del mostroEVA_NAME = "Evasione"#Tipo di calcolo della percentuale dei nemici incontrati:# 1- numero incontrati / numero massimo# 2- percentuale dei nemici incontrati e percentuale dei nemici incontrati# 3- numero incontrati / numero massimoSHOW_COMPLETE_TYPE = 3#Sistema dei commenti attivato oppure noCOMMENT_SYSTEM = falseend class Game_Tempattr_accessor :enemy_book_dataalias temp_enemy_book_data_initialize initializedef initializetemp_enemy_book_data_initialize@enemy_book_data = Data_MonsterBook.newendend class Game_Partyattr_accessor :enemy_info # Informazioni sul nemico#--------------------------------------------------------------------------# Acquisisce le informazioni#--------------------------------------------------------------------------alias book_info_initialize initializedef initializebook_info_initialize@enemy_info = {}end#--------------------------------------------------------------------------# Acquisisce le informazioni in base al tipo:# 1:# 0:#--------------------------------------------------------------------------def add_enemy_info(enemy_id, type = 0)case typewhen 0if @enemy_info[enemy_id] == 2return falseend@enemy_info[enemy_id] = 1when 1@enemy_info[enemy_id] = 2when -1@enemy_info[enemy_id] = 0endend#--------------------------------------------------------------------------# Numero massimo di nemici da scrivere nel bestiario#--------------------------------------------------------------------------def enemy_book_maxreturn $game_temp.enemy_book_data.id_data.size - 1end#--------------------------------------------------------------------------# Numero di nemici incontrati fino a quel momento#--------------------------------------------------------------------------def enemy_book_nownow_enemy_info = @enemy_info.keys# 登録無視ã�®å±žæ€§IDã‚’å�–å¾—no_add = $game_temp.enemy_book_data.no_add_elementnew_enemy_info = []for i in now_enemy_infoenemy = $data_enemiesnext if enemy.name == ""if enemy.element_ranks[no_add] == 1nextendnew_enemy_info.push(enemy.id)endreturn new_enemy_info.sizeend#--------------------------------------------------------------------------# Calcola la percentuale dei nemici incontrati#--------------------------------------------------------------------------def enemy_book_complete_percentagee_max = enemy_book_max.to_fe_now = enemy_book_now.to_fcomp = e_now / e_max * 100return comp.truncateendend class Interpreterdef enemy_book_maxreturn $game_party.enemy_book_maxenddef enemy_book_nowreturn $game_party.enemy_book_nowenddef enemy_book_compreturn $game_party.enemy_book_complete_percentageendend class Scene_Battlealias add_enemy_info_start_phase5 start_phase5def start_phase5for enemy in $game_troop.enemies# Continua fino a quando il nemico è vivo; quando muore ne aggiunge le informazioniunless enemy.hidden# Aggiunge le informazioni sul nemico$game_party.add_enemy_info(enemy.id, 0)endendadd_enemy_info_start_phase5endend class Window_Base < Window#--------------------------------------------------------------------------# Disegna gli oggetti persi dai nemici#--------------------------------------------------------------------------def draw_enemy_drop_item(enemy, x, y)self.contents.font.color = normal_colorself.contents.font.name = "Cataneo BT"treasures = []if enemy.item_id > 0treasures.push($data_items[enemy.item_id])endif enemy.weapon_id > 0treasures.push($data_weapons[enemy.weapon_id])endif enemy.armor_id > 0treasures.push($data_armors[enemy.armor_id])end# Se i tesori sono più di 0 li disegnaif treasures.size > 0item = treasures[0]bitmap = RPG::Cache.icon(item.icon_name)opacity = 255self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)self.contents.font.name = "Cataneo BT"name = treasures[0].nameelseself.contents.font.color = disabled_colorself.contents.font.name = "Cataneo BT"name = "Nessuno"endself.contents.draw_text(x+28, y, 212, 32, name)end#--------------------------------------------------------------------------# Trova l'id del nemico#--------------------------------------------------------------------------def draw_enemy_book_id(enemy, x, y)self.contents.font.color = normal_colorid = $game_temp.enemy_book_data.id_data.index(enemy.id)self.contents.draw_text(x, y, 32, 32, id.to_s)self.contents.font.name = "Cataneo BT"end#--------------------------------------------------------------------------# Scrive il nome del nemico# enemy : nemico# x : coordinata X in cui scrivere# y : coordinata Y in cui scrivere#--------------------------------------------------------------------------def draw_enemy_name(enemy, x, y)self.contents.font.color = normal_colorself.contents.draw_text(x, y, 152, 32, enemy.name)self.contents.font.name = "Cataneo BT"end#--------------------------------------------------------------------------# Disegna l'immagine del nemico# enemy : nemico# x : coordinata X in cui scrivere# y : coordinata Y in cui scrivere#--------------------------------------------------------------------------def draw_enemy_graphic(enemy, x, y, opacity = 255)bitmap = RPG::Cache.battler(enemy.battler_name, enemy.battler_hue)cw = bitmap.widthch = bitmap.heightsrc_rect = Rect.new(0, 0, cw, ch)x = x + (cw / 2 - x) if cw / 2 > xself.contents.blt(x - cw / 2, y - ch, bitmap, src_rect, opacity)self.contents.font.name = "Cataneo BT"end#--------------------------------------------------------------------------# Scrive l'esperienza che si ottiene dal nemico# enemy : nemico# x : coordinata X in cui scrivere# y : coordinata Y in cui scrivere#--------------------------------------------------------------------------def draw_enemy_exp(enemy, x, y)self.contents.font.color = system_colorself.contents.draw_text(x, y, 120, 32, "EXP")self.contents.font.color = normal_colorself.contents.draw_text(x + 120, y, 36, 32, enemy.exp.to_s, 2)self.contents.font.name = "Cataneo BT"end#--------------------------------------------------------------------------# Scrive il totale dei soldi che si ottengono dal nemico# enemy : nemico# x : coordinata X in cui scrivere# y : coordinata Y in cui scrivere#--------------------------------------------------------------------------def draw_enemy_gold(enemy, x, y)self.contents.font.color = system_colorself.contents.draw_text(x, y, 120, 32, $data_system.words.gold)self.contents.font.color = normal_colorself.contents.draw_text(x + 120, y, 36, 32, enemy.gold.to_s, 2)self.contents.font.name = "Cataneo BT"end#--------------------------------------------------------------------------# Scrive a quali elementi il nemico è debole# enemy : nemico# x : coordinata X in cui scrivere# y : coordinata Y in cui scrivere#--------------------------------------------------------------------------#def draw_element_guard(enemy, x, y)#self.contents.font.color = system_color#self.contents.draw_text(x, y, 120, 32, "Elemnti:")#@data = $Game_Enemy.element_ranks.size#for i in 1..@data#if $Game_Enemy.element_ranks == 0#self.contents.font.color = Color.new(255, 0, 0, 255)#else#if $Game_Enemy.element_ranks == 1#self.contents.font.color = Color.new(255, 100, 0, 255)#else#if $Game_Enemy.element_ranks == 2#self.contents.font.color = Color.new(214, 214, 214, 255)#else#if $Game_Enemy.element_ranks == 3#self.contents.font.color = Color.new(0, 255, 0, 255)#else#if $Game_Enemy.element_ranks == 4#self.contents.font.color = Color.new(0, 0, 255, 255)#else#if $Game_Enemy.element_ranks == 5#self.contents.font.color = Color.new(180, 0, 255, 255)#end#end#end#end#end#end#self.contents.font.name = "Arial"#self.contents.draw_text(x + 120, y, 36, 32, $Game_Enemy.element_ranks, 2)#end#endend class Game_Enemy_Book < Game_Enemy#--------------------------------------------------------------------------# INIZIALIZZAZIONE#--------------------------------------------------------------------------def initialize(enemy_id)super(2, 1)#Super del nemico@enemy_id = enemy_idenemy = $data_enemies[@enemy_id]@battler_name = enemy.battler_name@battler_hue = enemy.battler_hue@hp = maxhp@sp = maxspendend class Data_MonsterBookattr_reader :id_data#--------------------------------------------------------------------------# INIZIALIZZAZIONE#--------------------------------------------------------------------------def initialize@id_data = enemy_book_id_setend#--------------------------------------------------------------------------##--------------------------------------------------------------------------def no_add_elementno_add = 0# 登録無視ã�®å±žæ€§IDã‚’å�–å¾—for i in 1...$data_system.elements.sizeif $data_system.elements =~ /図鑑登録無効/no_add = ibreakendendreturn no_addend#--------------------------------------------------------------------------##--------------------------------------------------------------------------def enemy_book_id_setdata = [0]no_add = no_add_element# Setta il nemico all'interno del librofor i in 1...$data_enemies.sizeenemy = $data_enemiesnext if enemy.name == ""if enemy.element_ranks[no_add] == 1nextenddata.push(enemy.id)endreturn dataendend class Window_MonsterBook < Window_Selectableattr_reader :data#--------------------------------------------------------------------------# Inizializza la finestra del bestiario#--------------------------------------------------------------------------def initialize(index=0)super(0, 64, 640, 416)@column_max = 2@book_data = $game_temp.enemy_book_data@data = @book_data.id_data.dup@data.shift#@data.sort!@item_max = @data.sizeself.index = 0refresh if @item_max > 0end#--------------------------------------------------------------------------# Dispone i nemici nella finestra#--------------------------------------------------------------------------def data_setdata = $game_party.enemy_info.keysdata.sort!newdata = []for i in datanext if $game_party.enemy_info == 0# Se il menico non è nel libro lo aggiungeif book_id(i) != nilnewdata.push(i)endendreturn newdataend#--------------------------------------------------------------------------# Mostra i nemici#--------------------------------------------------------------------------def show?(id)if $game_party.enemy_info[id] == 0 or $game_party.enemy_info[id] == nilreturn falseelsereturn trueendend#--------------------------------------------------------------------------# la posizione nel libro#--------------------------------------------------------------------------def book_id(id)return @book_data.index(id)end#--------------------------------------------------------------------------##--------------------------------------------------------------------------def itemreturn @data[self.index]end#--------------------------------------------------------------------------# REFRESH#--------------------------------------------------------------------------def refreshif self.contents != nilself.contents.disposeself.contents = nilself.contents.font.name = "Cataneo BT"endself.contents = Bitmap.new(width - 32, row_max * 32)# Se il numero degli oggetti è maggiore di 0 li disegnaif @item_max > 0for i in 0...@item_maxdraw_item(i)endendend#--------------------------------------------------------------------------# Disegna l'oggetto# index : posizione dell'oggetto nell'array#--------------------------------------------------------------------------def draw_item(index)enemy = $data_enemies[@data[index]]return if enemy == nilx = 4 + index % 2 * (288 + 32)y = index / 2 * 32rect = Rect.new(x, y, self.width / @column_max - 32, 32)self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))self.contents.font.color = normal_colorself.contents.font.name = "Cataneo BT"draw_enemy_book_id(enemy, x, y)if show?(enemy.id)self.contents.draw_text(x + 28+16, y, 212, 32, enemy.name, 0)self.contents.font.name = "Cataneo BT"elseself.contents.draw_text(x + 28+16, y, 212, 32, "-----------", 0)self.contents.font.name = "Cataneo BT"returnendif analyze?(@data[index])self.contents.font.color = text_color(3)self.contents.draw_text(x + 256, y, 24, 32, "", 2)self.contents.font.name = "Cataneo BT"endend#--------------------------------------------------------------------------# Analizza le informazioni#--------------------------------------------------------------------------def analyze?(enemy_id)if $game_party.enemy_info[enemy_id] == 2return trueelsereturn falseendendend class Window_MonsterBook_Info < Window_Base#--------------------------------------------------------------------------# INIZIALIZZAZIONE#--------------------------------------------------------------------------def initializesuper(0, 0+64, 640, 480-64)self.contents = Bitmap.new(width - 32, height - 32)self.contents.font.name = "Cataneo BT"end#--------------------------------------------------------------------------# REFRESH#--------------------------------------------------------------------------def refresh(enemy_id)self.contents.clearself.contents.font.size = 22self.contents.font.name = "Cataneo BT"enemy = Game_Enemy_Book.new(enemy_id)draw_enemy_graphic(enemy, 96, 240+48+64, 200)draw_enemy_book_id(enemy, 4, 0)draw_enemy_name(enemy, 48, 0)draw_actor_hp(enemy, 288, 0)draw_actor_sp(enemy, 288+160, 0)draw_actor_parameter(enemy, 288 , 32, 0)self.contents.font.color = system_colorself.contents.draw_text(288+160, 32, 120, 32, Enemy_Book_Config::EVA_NAME)self.contents.font.color = normal_colorself.contents.draw_text(288+160 + 120, 32, 36, 32, enemy.eva.to_s, 2)self.contents.font.name = "Cataneo BT"draw_actor_parameter(enemy, 288 , 64, 3)draw_actor_parameter(enemy, 288+160, 64, 4)draw_actor_parameter(enemy, 288 , 96, 5)draw_actor_parameter(enemy, 288+160, 96, 6)draw_actor_parameter(enemy, 288 , 128, 1)draw_actor_parameter(enemy, 288+160, 128, 2)draw_enemy_exp(enemy, 288, 160)draw_enemy_gold(enemy, 288+160, 160)self.contents.font.name = "Cataneo BT"if analyze?(enemy.id) or !Enemy_Book_Config::DROP_ITEM_NEED_ANALYZEself.contents.draw_text(288, 192, 96, 32, "Oggetti ricevuti")draw_enemy_drop_item(enemy, 288+96+4, 192)self.contents.font.color = normal_colorself.contents.font.name = "Cataneo BT"#draw_element_guard(enemy, 320-32, 160-16+96)endend#--------------------------------------------------------------------------# Analizza le informazioni#--------------------------------------------------------------------------def analyze?(enemy_id)if $game_party.enemy_info[enemy_id] == 2return trueelsereturn falseendendend class Scene_MonsterBook#-----------------------------------------------------------------------------# Scene del bestiario# ----------------------------------------------------------------------------def main$game_temp.enemy_book_data = Data_MonsterBook.new# Creo la finestra del titolo@title_window = Window_Base.new(0, 0, 640, 64)@title_window.contents = Bitmap.new(640 - 32, 64 - 32)@title_window.contents.font.name = "Cataneo BT"@title_window.contents.font.size = 24@title_window.contents.draw_text(100, 0, 320, 32, "Bestiario", 0)if Enemy_Book_Config::SHOW_COMPLETE_TYPE != 0case Enemy_Book_Config::SHOW_COMPLETE_TYPEwhen 1e_now = $game_party.enemy_book_nowe_max = $game_party.enemy_book_maxtext = e_now.to_s + " / " + e_max.to_swhen 2comp = $game_party.enemy_book_complete_percentagetext = comp.to_s + " %"when 3e_now = $game_party.enemy_book_nowe_max = $game_party.enemy_book_maxcomp = $game_party.enemy_book_complete_percentagetext = e_now.to_s + " / " + e_max.to_s + " " + comp.to_s + " %"endif text != nil@title_window.contents.draw_text(280, 0, 288, 32, text, 2)endend@main_window = Window_MonsterBook.new@main_window.active = true# Creo la finestra delle informazioni@info_window = Window_MonsterBook_Info.new@info_window.z = 110@info_window.visible = false@info_window.active = false@visible_index = 0 # Cambio di graficaGraphics.transition# Inizio Cicloloop do# Aggiorno la graficaGraphics.update# Update dell'inputInput.update# updateupdate# se la scene è diversa interrompo il cicloif $scene != selfbreakendend# Congelo la graficaGraphics.freeze# Cancellazione finestre@main_window.dispose@info_window.dispose@title_window.dispose@comment_window.dispose if @comment_window != nilend#--------------------------------------------------------------------------# Update#--------------------------------------------------------------------------def update# Update delle finestre@main_window.update@info_window.updateif @info_window.activeupdate_inforeturnend# Se è attiva la finestra principale la aggiornoif @main_window.activeupdate_mainreturnendend#--------------------------------------------------------------------------# Update della finestra principale#--------------------------------------------------------------------------def update_main# Se il tasto premuto è la B torno alla mappaif Input.trigger?(Input::B)# Suono se è il tasto premuto$game_system.se_play($data_system.cancel_se)$scene = Scene_Map.newreturnend# Se il tasto premuto è C scrivo la pagina del bestiarioif Input.trigger?(Input::C)if @main_window.item == nil or @main_window.show?(@main_window.item) == false# Suono se premuto$game_system.se_play($data_system.buzzer_se)returnend# faccio comparire la pagina del bestiario$game_system.se_play($data_system.decision_se)@main_window.active = false@info_window.active = true@info_window.visible = true@visible_index = @main_window.index@info_window.refresh(@main_window.item)if @comment_window != nil@comment_window.refresh(@main_window.item)if @comment_on@comment_window.visible = trueelse@comment_window.visible = falseendendreturnendend#--------------------------------------------------------------------------# Aggiorno le informazioni#--------------------------------------------------------------------------def update_info# Se il tasto premuto è B ritorno alla pagina principale del bestiarioif Input.trigger?(Input::B)# Suono SE$game_system.se_play($data_system.cancel_se)@main_window.active = true@info_window.active = false@info_window.visible = false@comment_window.visible = false if @comment_window != nilreturnend# Se il tasto premuto è C apro la pagina dei commentiif Input.trigger?(Input::C)if @comment_window != nil# Suono SE$game_system.se_play($data_system.decision_se)if @comment_on@comment_on = false@comment_window.visible = falseelse@comment_on = true@comment_window.visible = trueendreturnendendif Input.trigger?(Input::L)# Suono SE$game_system.se_play($data_system.decision_se)loop_end = falsewhile loop_end == falseif @visible_index != 0@visible_index -= 1else@visible_index = @main_window.data.size - 1endloop_end = true if @main_window.show?(@main_window.data[@visible_index])endid = @main_window.data[@visible_index]@info_window.refresh(id)@comment_window.refresh(id) if @comment_window != nilreturnendif Input.trigger?(Input::R)# Suono SE$game_system.se_play($data_system.decision_se)loop_end = falsewhile loop_end == falseif @visible_index != @main_window.data.size - 1@visible_index += 1else@visible_index = 0endloop_end = true if @main_window.show?(@main_window.data[@visible_index])endid = @main_window.data[@visible_index]@info_window.refresh(id)@comment_window.refresh(id) if @comment_window != nilreturnendendend # Note by dad;#--------------------------------------------------------------------------# ISTRUZIONI# Ecco alcune istruzioni per l'uso :# 1)Per richiamare questo script dovrete scrivere nell'apposito comando di rpg maker xp# cioè call script,questo "$scene = Scene_MonsterBook.new"# 2)Questo codice è utile per far apparire la percentuale di mostri scoperti ed inseriti# nel proprio bestiario eccolo qui il codice che deve essere sempre inserito nel comando call scrirt:# Script# $game_variables[10] = enemy_book_max# $game_variables[11] = enemy_book_now# $game_variables[12] = enemy_book_comp# Fine script.# 3)Questo codice permette la visuallizzazione subito di tutti i mostri nel bestiario# (piu' che altro serve per vedere le potenzialita del bestiario.# Ecco il pezzo di codice da inserire nell'evento :# Script# data = Data_MonsterBook.new# for i in data.id_data# next if i == 0# $game_party.add_enemy_info(i, 0)# end#Il tasto L corrisponde alla lettera Q e il tasto R alla lettera W## Fine script#----------------------------------------------------------------------- istruzzioni in fondo allo script http://team.ffonline.it/imgpersonaggio/seifer_it.jpg http://team.ffonline.it/imgpersonaggio/kimahri_it.jpg E tu in che personaggio ti identifichi?http://img145.imageshack.us/img145/4716/squallni0.gifhttp://img262.imageshack.us/img262/6382/gohanssj2ky4.gif Link to comment Share on other sites More sharing options...
Question
BabboNatale
http://i59.tinypic.com/n37n6e.png
http://i57.tinypic.com/29lokti.png
Link to comment
Share on other sites
1 answer to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now