Vai al contenuto


Foto
- - - - -

Avere un bestiario


  • Per cortesia connettiti per rispondere
13 risposte a questa discussione

#1 Ale13

Ale13

    Cavia

  • Members
  • StellettaStellettaStelletta
  • 117 messaggi

Inviato 02 settembre 2007 - 08:46

Questo script permette di visualizzare l'elenco dei mostri combattuti.

Create sopra Main la classe Monster_Diary ed inserite questo:

CODICE
# by DaD and RagnarokM

module Enemy_Book_Config
DROP_ITEM_NEED_ANALYZE = false
EVA_NAME = "Evasion"
SHOW_COMPLETE_TYPE = 3
end

class Game_Temp
attr_accessor :enemy_book_data
alias temp_enemy_book_data_initialize initialize
def initialize
temp_enemy_book_data_initialize
@enemy_book_data = Data_MonsterBook.new
end
end

class Game_Party
attr_accessor :enemy_info
#--------------------------------------------------------------------------
alias book_info_initialize initialize
def initialize
book_info_initialize
@enemy_info = {}
end
#--------------------------------------------------------------------------
def add_enemy_info(enemy_id, type = 0)
case type
when 0
if @enemy_info[enemy_id] == 2
return false
end
@enemy_info[enemy_id] = 1
when 1
@enemy_info[enemy_id] = 2
when -1
@enemy_info[enemy_id] = 0
end
end
#--------------------------------------------------------------------------
def enemy_book_max
return $game_temp.enemy_book_data.id_data.size - 1
end
#--------------------------------------------------------------------------
def enemy_book_now
now_enemy_info = @enemy_info.keys
no_add = $game_temp.enemy_book_data.no_add_element
new_enemy_info = []
for i in now_enemy_info
enemy = $data_enemies[i]
next if enemy.name == ""
if enemy.element_ranks[no_add] == 1
next
end
new_enemy_info.push(enemy.id)
end
return new_enemy_info.size
end
#--------------------------------------------------------------------------
def enemy_book_complete_percentage
e_max = enemy_book_max.to_f
e_now = enemy_book_now.to_f
comp = e_now / e_max * 100
return comp.truncate
end
end

class Interpreter
def enemy_book_max
return $game_party.enemy_book_max
end
def enemy_book_now
return $game_party.enemy_book_now
end
def enemy_book_comp
return $game_party.enemy_book_complete_percentage
end
end

class Scene_Battle
alias add_enemy_info_start_phase5 start_phase5
def start_phase5
for enemy in $game_troop.enemies
unless enemy.hidden
$game_party.add_enemy_info(enemy.id, 0)
end
end
add_enemy_info_start_phase5
end
end

class Window_Base < Window

def initialize(x, y, width, height)
super()
self.contents = Bitmap.new(width - 32, height - 32)
self.contents.font.name = $fontface
@windowskin_name = $game_system.windowskin_name
self.windowskin = RPG::Cache.windowskin(@windowskin_name)
self.x = x
self.y = y
self.width = width
self.height = height
self.z = 100
end
#--------------------------------------------------------------------------
def draw_enemy_drop_item(enemy, x, y)
self.contents.font.color = normal_color
self.contents.font.name = $fontface
treasures = []
if enemy.item_id > 0
treasures.push($data_items[enemy.item_id])
end
if enemy.weapon_id > 0
treasures.push($data_weapons[enemy.weapon_id])
end
if enemy.armor_id > 0
treasures.push($data_armors[enemy.armor_id])
end
if treasures.size > 0
item = treasures[0]
bitmap = RPG::Cache.icon(item.icon_name)
opacity = 255
self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
name = treasures[0].name
else
self.contents.font.color = disabled_color
self.contents.font.name = $fontface
name = "No Item"
end
self.contents.draw_text(x+28, y, 212, 32, name)
end
#--------------------------------------------------------------------------
def draw_enemy_book_id(enemy, x, y)
self.contents.font.color = normal_color
self.contents.font.name = $fontface
id = $game_temp.enemy_book_data.id_data.index(enemy.id)
self.contents.draw_text(x, y, 32, 32, id.to_s)
end
#--------------------------------------------------------------------------
def draw_enemy_name(enemy, x, y)
self.contents.font.color = normal_color
self.contents.font.name = $fontface
self.contents.draw_text(x, y, 152, 32, enemy.name)
end
#--------------------------------------------------------------------------
def draw_enemy_graphic(enemy, x, y, opacity = 255)
bitmap = RPG::Cache.battler(enemy.battler_name, enemy.battler_hue)
cw = bitmap.width
ch = bitmap.height
src_rect = Rect.new(0, 0, cw, ch)
x = x + (cw / 2 - x) if cw / 2 > x
self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect, opacity)
end
#--------------------------------------------------------------------------
def draw_enemy_exp(enemy, x, y)
self.contents.font.color = system_color
self.contents.font.name = $fontface
self.contents.draw_text(x, y, 120, 32, "EXP")
self.contents.font.color = normal_color
self.contents.font.name = $fontface
self.contents.draw_text(x + 120, y, 36, 32, enemy.exp.to_s, 2)
end
#--------------------------------------------------------------------------
def draw_enemy_gold(enemy, x, y)
self.contents.font.color = system_color
self.contents.font.name = $fontface
self.contents.draw_text(x, y, 120, 32, $data_system.words.gold)
self.contents.font.color = normal_color
self.contents.font.name = $fontface
self.contents.draw_text(x + 120, y, 36, 32, enemy.gold.to_s, 2)
end
end

class Game_Enemy_Book < Game_Enemy
#--------------------------------------------------------------------------
def initialize(enemy_id)
super(2, 1)
@enemy_id = enemy_id
enemy = $data_enemies[@enemy_id]
@battler_name = enemy.battler_name
@battler_hue = enemy.battler_hue
@hp = maxhp
@sp = maxsp
end
end

class Data_MonsterBook
attr_reader :id_data
#--------------------------------------------------------------------------
def initialize
@id_data = enemy_book_id_set
end
#--------------------------------------------------------------------------
def no_add_element
no_add = 0
for i in 1...$data_system.elements.size
if $data_system.elements[i] =~ /Monster Book/
no_add = i
break
end
end
return no_add
end
#--------------------------------------------------------------------------
def enemy_book_id_set
data = [0]
no_add = no_add_element
for i in 1...$data_enemies.size
enemy = $data_enemies[i]
next if enemy.name == ""
if enemy.element_ranks[no_add] == 1
next
end
data.push(enemy.id)
end
return data
end
end


class Window_MonsterBook < Window_Selectable
attr_reader :data
#--------------------------------------------------------------------------
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
@item_max = @data.size
self.index = 0
refresh if @item_max > 0
end
#--------------------------------------------------------------------------
def data_set
data = $game_party.enemy_info.keys
data.sort!
newdata = []
for i in data
next if $game_party.enemy_info[i] == 0
if book_id(i) != nil
newdata.push(i)
end
end
return newdata
end
#--------------------------------------------------------------------------
def show?(id)
if $game_party.enemy_info[id] == 0 or $game_party.enemy_info[id] == nil
return false
else
return true
end
end
#--------------------------------------------------------------------------
def book_id(id)
return @book_data.index(id)
end
#--------------------------------------------------------------------------
def item
return @data[self.index]
end
#--------------------------------------------------------------------------
def refresh
if self.contents != nil
self.contents.dispose
self.contents = nil
end
self.contents = Bitmap.new(width - 32, row_max * 32)
if @item_max > 0
for i in 0...@item_max
draw_item(i)
end
end
end
#--------------------------------------------------------------------------
def draw_item(index)
enemy = $data_enemies[@data[index]]
return if enemy == nil
x = 4 + index % 2 * (288 + 32)
y = index / 2 * 32
rect = 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_color
self.contents.font.name = $fontface
draw_enemy_book_id(enemy, x, y)
if show?(enemy.id)
self.contents.draw_text(x + 28+16, y, 212, 32, enemy.name, 0)
else
self.contents.draw_text(x + 28+16, y, 212, 32, "-----", 0)
return
end
if analyze?(@data[index])
self.contents.font.color = text_color(3)
self.contents.font.name = $fontface
self.contents.draw_text(x + 256, y, 24, 32, "Cancel", 2)
end
end
#--------------------------------------------------------------------------
def analyze?(enemy_id)
if $game_party.enemy_info[enemy_id] == 2
return true
else
return false
end
end
end


class Window_MonsterBook_Info < Window_Base
include Enemy_Book_Config
#--------------------------------------------------------------------------
def initialize
super(0, 0+64, 640, 480-64)
self.contents = Bitmap.new(width - 32, height - 32)
end
#--------------------------------------------------------------------------
def refresh(enemy_id)
self.contents.clear
self.contents.font.name = $fontface
self.contents.font.size = 22
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_color
self.contents.draw_text(288+160, 32, 120, 32, EVA_NAME)
self.contents.font.color = normal_color
self.contents.draw_text(288+160 + 120, 32, 36, 32, enemy.eva.to_s, 2)
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)
if analyze?(enemy.id) or !DROP_ITEM_NEED_ANALYZE
self.contents.draw_text(288, 192, 96, 32, "Drop Item")
draw_enemy_drop_item(enemy, 288+96+4, 192)
self.contents.font.color = normal_color
end
end
#--------------------------------------------------------------------------
def analyze?(enemy_id)
if $game_party.enemy_info[enemy_id] == 2
return true
else
return false
end
end
end


class Scene_MonsterBook
include Enemy_Book_Config
#--------------------------------------------------------------------------
def main
$game_temp.enemy_book_data = Data_MonsterBook.new
@title_window = Window_Base.new(0, 0, 640, 64)
@title_window.contents = Bitmap.new(640 - 32, 64 - 32)
@title_window.contents.draw_text(4, 0, 320, 32, "Monster Book", 0)
if SHOW_COMPLETE_TYPE != 0
case SHOW_COMPLETE_TYPE
when 1
e_now = $game_party.enemy_book_now
e_max = $game_party.enemy_book_max
text = e_now.to_s + "/" + e_max.to_s
when 2
comp = $game_party.enemy_book_complete_percentage
text = comp.to_s + "%"
when 3
e_now = $game_party.enemy_book_now
e_max = $game_party.enemy_book_max
comp = $game_party.enemy_book_complete_percentage
text = e_now.to_s + "/" + e_max.to_s + " " + comp.to_s + "%"
end
if text != nil
@title_window.contents.draw_text(320, 0, 288, 32, text, 2)
end
end
@main_window = Window_MonsterBook.new
@main_window.active = true
@info_window = Window_MonsterBook_Info.new
@info_window.z = 110
@info_window.visible = false
@info_window.active = false
@visible_index = 0
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@main_window.dispose
@info_window.dispose
@title_window.dispose
end
#--------------------------------------------------------------------------
def update
@main_window.update
@info_window.update
if @info_window.active
update_info
return
end
if @main_window.active
update_main
return
end
end
#--------------------------------------------------------------------------
def update_main
if Input.trigger?(Input::cool.gif
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Map.new
return
end
if Input.trigger?(Input::C)
if @main_window.item == nil or @main_window.show?(@main_window.item) == false
$game_system.se_play($data_system.buzzer_se)
return
end
$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)
return
end
end
#--------------------------------------------------------------------------
def update_info
if Input.trigger?(Input::cool.gif
$game_system.se_play($data_system.cancel_se)
@main_window.active = true
@info_window.active = false
@info_window.visible = false
return
end
if Input.trigger?(Input::C)
return
end
if Input.trigger?(Input::L)
$game_system.se_play($data_system.decision_se)
loop_end = false
while loop_end == false
if @visible_index != 0
@visible_index -= 1
else
@visible_index = @main_window.data.size - 1
end
loop_end = true if @main_window.show?(@main_window.data[@visible_index])
end
id = @main_window.data[@visible_index]
@info_window.refresh(id)
return
end
if Input.trigger?(Input::R)
$game_system.se_play($data_system.decision_se)
loop_end = false
while loop_end == false
if @visible_index != @main_window.data.size - 1
@visible_index += 1
else
@visible_index = 0
end
loop_end = true if @main_window.show?(@main_window.data[@visible_index])
end
id = @main_window.data[@visible_index]
@info_window.refresh(id)
return
end
end
end


Ora per visualizzare il bestiario durante il gioco, andate in Eventi comuni nel database, create l'evento "bestiatio", inserite tra i comandi lo script
CODICE
$scene = Scene_MonsterBook.new

assegnate l'evento a un oggetto e quando lo andrete a selezionare apparir

#2 Masahiro

Masahiro

    Iniziato

  • Members
  • StellettaStelletta
  • 60 messaggi

Inviato 03 settembre 2007 - 06:42

ciao, vorrei ringraziare te e tutti gli altri utenti (e Tio) per il lavoro che fate, poi avrei una domanda da farti:
ho copiato questo code seguendo le istruzioni, ma andando a testare il gioco appare un messaggio di errore di sintassi alla riga 421

$game_system.se_play($data_system.cancel_se)

sbaglio qualcosa io?
I don't want to cross over,
between this genre, that genre.
Between you and I's where,
I want to cross over, cross the line.
I just want to go further,
between here and there, grow wiser.
Together you and I,
We can cross our borders, you and I.
Only...only...only....ahh...


You are always gonna be my love
Itsu ka dare ka to mata koi ni ochite mo
I'll remember to love, you taught me how
You are always gonna be the one
Ima wa mada kanashii love song
Atarashii uta utaeru made


Thorough mountains high and valleys low
The ocean, through the desert, snow
We'll say goodbye to the friends we know,
This is our exodus '04
Through traffic jams in Tokyo
New music on the radio
We'll say goodbye to the world we know,
This is our exodus '04



Anata no shiawase negau hodo wagamama ga fueteku yo
Soredemo anata wo hikitometai itsu datte sou
Dareka no negai ga kanau koro ano ko ga naiteru yo
Sono mama tobira no oto wa naranai

#3 Zen

Zen

    Molosso Infernale

  • Members
  • StellettaStellettaStellettaStellettaStelletta
  • 613 messaggi

Inviato 07 settembre 2007 - 02:53

correggi tutti i if Input.trigger?(Input....(e tutto quello che si e scritto dopo:D)
con if Input.trigger?(Input::C)

Dovrebbe andare...


Dalle fiamme rosse e blu compaiono due guerrieri.....Siete pronti per l'eterna lotta fra la fiamma blu e la fiamma rossa????
"T2F"The Two Flames:La leggenda delle due fiammeGioco realizzato per RPGMAKER XP 1.02 con il nuovissimo e unico MBS(Multi-Battle-Sistem)......Prima demo del Bs......
http://lnx.phantomca...?showtopic=2009

#4 Dandar

Dandar

    Demone Sanguinario

  • Members
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 1121 messaggi

Inviato 31 marzo 2008 - 07:41

#


Messaggio modificato da Dandar, 11 ottobre 2017 - 05:51


Ecco un progetto degno di nota dopo il fantastico "Shadow Battle" (di havana24) eil magnifico "Fifth Era: Pieces Of The Holy Stone" (di lollo rocket).
Spero bene anche per Oromis'Tale. Almeno mi ha molto colpito da come presentato.
Trailer

#5 Kakyoin

Kakyoin

    Principe delle Tenebre

  • Members
  • StellettaStellettaStellettaStellettaStellettaStellettaStellettaStellettaStelletta
  • 7244 messaggi

Inviato 31 marzo 2008 - 08:22

CITAZIONE (Dandar @ Mar 31 2008, 08:41 PM) <{POST_SNAPBACK}>
scusate ma non mi funziona questo script...cio

Cliccami!


Life is muda da...Without Blue Shoes of Wrryyy

#6 Dandar

Dandar

    Demone Sanguinario

  • Members
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 1121 messaggi

Inviato 31 marzo 2008 - 08:33

#


Messaggio modificato da Dandar, 11 ottobre 2017 - 05:52


Ecco un progetto degno di nota dopo il fantastico "Shadow Battle" (di havana24) eil magnifico "Fifth Era: Pieces Of The Holy Stone" (di lollo rocket).
Spero bene anche per Oromis'Tale. Almeno mi ha molto colpito da come presentato.
Trailer

#7 Kakyoin

Kakyoin

    Principe delle Tenebre

  • Members
  • StellettaStellettaStellettaStellettaStellettaStellettaStellettaStellettaStelletta
  • 7244 messaggi

Inviato 31 marzo 2008 - 08:36

CITAZIONE (Dandar @ Mar 31 2008, 09:33 PM) <{POST_SNAPBACK}>
faccio l'evento comune e da li faccio lo script $scene = Scene_MonsterBook.new
e quindi lo carico...cos

Cliccami!


Life is muda da...Without Blue Shoes of Wrryyy

#8 Dandar

Dandar

    Demone Sanguinario

  • Members
  • StellettaStellettaStellettaStellettaStellettaStelletta
  • 1121 messaggi

Inviato 31 marzo 2008 - 08:43

#


Messaggio modificato da Dandar, 11 ottobre 2017 - 05:52


Ecco un progetto degno di nota dopo il fantastico "Shadow Battle" (di havana24) eil magnifico "Fifth Era: Pieces Of The Holy Stone" (di lollo rocket).
Spero bene anche per Oromis'Tale. Almeno mi ha molto colpito da come presentato.
Trailer

#9 Kakyoin

Kakyoin

    Principe delle Tenebre

  • Members
  • StellettaStellettaStellettaStellettaStellettaStellettaStellettaStellettaStelletta
  • 7244 messaggi

Inviato 01 aprile 2008 - 11:55

nel chiama script che ci hai scritto?
"$scene = Scene_MonsterBook.new" oppure "$scene = Scene_MonsterBook"?

Comunque il primo

Cliccami!


Life is muda da...Without Blue Shoes of Wrryyy

#10 Mattone

Mattone

    Giovane Padawan

  • Members
  • StellettaStellettaStellettaStellettaStellettaStellettaStellettaStelletta
  • 3574 messaggi

Inviato 02 aprile 2008 - 03:58

A me non vengono fuori i nomi dei mostri, una volta sconfitti... c'

#11 Kakyoin

Kakyoin

    Principe delle Tenebre

  • Members
  • StellettaStellettaStellettaStellettaStellettaStellettaStellettaStellettaStelletta
  • 7244 messaggi

Inviato 02 aprile 2008 - 04:14

Devi modificare il main con quello di DaD

Cliccami!


Life is muda da...Without Blue Shoes of Wrryyy

#12 Darkside

Darkside

    Iniziato

  • Members
  • StellettaStelletta
  • 37 messaggi

Inviato 14 aprile 2008 - 12:09

Scusate, ma
GRANDISSIMO FAN DI RPG MAKER!!








#13 Cyberk

Cyberk

    Iniziato

  • Members
  • StellettaStelletta
  • 63 messaggi

Inviato 03 giugno 2008 - 03:52

Raga c'
Venite tutti sul forum-colo!!Forumcolo

VENITE NUMEROSI E AIUTATECI A MIGLIORARLO!!

Il mio nome

#14 supervegeta91

supervegeta91

    Novizietto

  • Members
  • Stelletta
  • 12 messaggi

Inviato 05 giugno 2008 - 08:41

Scusa ma funziona solo con il menu classico del xp?
Perche con quello funziona ma con gli altri menu no.




0 utente(i) stanno leggendo questa discussione

0 utenti, 0 visitatori, 0 utenti anonimi