UltimaForum

Skrypty [XP] - Bestiariusz

Seivoth - Czw 01 Paź, 2009 13:57
Temat postu: Bestiariusz
Witam!
Swego czasu znalazłem na jednej z japońskich stron skrypt który dodaje bestiariusz do głównego menu!
Wklejamy skrypt nad main.

Skrypt włączamy:

Kod:
$scene = Scene_MonsterBook.new


Screen:


Spoiler:

Kod:

#=========================================================
# ~ Bestiariusz ~
# Data publikacji: 20.07.2009
# Autor: ?
# Poprawki: SeIVoth [se4oth@o2.pl]
# Zapraszamy na stronę Ultima Forum - http://www.ultimateam.pl
# =========================================================
# Instalacja: Umieść ten skrypt nad Main w Edytorze Skryptu.
# =========================================================
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

# -----------------------------POCZĄTEK SKRYPTU ----------------------------------------------

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 draw_enemy_drop_item(enemy, x, y)
  self.contents.font.color = normal_color
  self.contents.font.bold = true
  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
    name = "No Item"
  end
  self.contents.draw_text(x+28, y, 212, 32, name)
end
#--------------------------------------------------------------------------
def refresh
    self.contents.font.color = normal_color
    self.contents.font.bold = true
  end




def draw_enemy_book_id(enemy, x, y)
  self.contents.font.color = normal_color
  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.bold = true
  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.draw_text(x, y, 120, 32, "EXP")
  self.contents.font.color = normal_color
  self.contents.font.bold = true
  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.bold = true
  self.contents.font.color = system_color
  self.contents.draw_text(x, y, 120, 32, $data_system.words.gold)
  self.contents.font.color = normal_color
  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] =~ /&#22259;&#37969;&#30331;&#37682;&#28961;&#21177;/
      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
  #@data.sort!
  @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.bold = true
  self.contents.font.color = normal_color
  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.draw_text(x + 256, y, 24, 32, "?", 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.size = 22
  self.contents.font.bold = true
  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.bold = true
  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
    self.contents.font.bold = true
    #draw_element_guard(enemy, 320-32, 160-16+96)
  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 refresh
    self.contents.font.color = normal_color
    self.contents.font.bold = true
  end
 
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.font.bold = true
  @title_window.contents.draw_text(4, 0, 320, 32, "Bestiariusz", 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
     
      def refresh
    self.contents.font.color = normal_color
    self.contents.font.bold = true
  end     
      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::B)
    $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::B)
    $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)
    #$game_system.se_play($data_system.decision_se)
    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
   

# --------------------------------- KONIEC SKRYPTU -------------------------------------------
# www.ultimateam.pl


Mam nadzieję że komuś się przysłuży.

Pozdrawiam

Greed - Pon 05 Paź, 2009 17:20

Super sprawa, szkoda że nie ma tu takiego skryptu do VX
adek16 - Sro 30 Gru, 2009 18:09

mam jedno pytanko zacząłem od niedawna tworzyć grę i co do wywoływania skryptów za bardzo nie rozumiem wklejam skrypt wszystko działa gra się odpala można grać i jest wszystko ok tylko że zmiana nie jest widoczna czy ktoś mógł by mi wytłumaczyć jak go wywołać ,Proszę o jak najszybszą odpowiedź i pozdrawiam wszystkich uczestników forum :-) :-)
Ayene - Sro 30 Gru, 2009 18:22

Poniższe odwołanie umieść w poleceniu Script / Skrypt, które znajduje się na 3 stronie edycji zdarzeń.
Kod:
$scene = Scene_MonsterBook.new

patrz screenshot:
Spoiler:


adek16 - Sro 30 Gru, 2009 18:28

dzięki tylko mogłabyś jeszcze raz wkleić oryginalny skopiowany skrypt bez tego początek skryptu i tak dalej z góry dziękuję :-)
Malian - Sro 30 Gru, 2009 20:13

Pomocy jak włączam beztiurasz i z niego wychodzę robi mi się błąd na temat Ring menu co zrobić?
Ayene - Sro 30 Gru, 2009 21:18

malian napisał/a:
Pomocy jak włączam beztiurasz i z niego wychodzę robi mi się błąd na temat Ring menu co zrobić?

Podmień skrypt z pierwszego posta. Wniosłam odpowiednie poprawki - tak i się przynajmniej wydaje ;-)

adek16 napisał/a:
dzięki tylko mogłabyś jeszcze raz wkleić oryginalny skopiowany skrypt bez tego początek skryptu i tak dalej z góry dziękuję :-)

Nie za bardzo rozumiem? A w czym przeszkadzają?

adek16 - Czw 31 Gru, 2009 09:21

no a mogę skrypt wkleić z tym początkiem i tak dalej
?

Ayene - Czw 31 Gru, 2009 15:19

Cały skrypt, który znajduje się po rozwinięciu spoilera, można bezpiecznie umieścić w swoim projekcie.
adek16 - Czw 31 Gru, 2009 15:39

ok zaraz zobacze czy działa

[ Dodano: Czw 31 Gru, 2009 15:41 ]
thx wszystko ładni chodzi :-)

Czeliosss - Nie 10 Sty, 2010 20:21

A można coś zrobić, żeby na ring menu on był?
Ayene - Nie 10 Sty, 2010 20:29

A z którego Ring Menu korzystasz? Tego który jest zamieszczony na forum? Można zmodyfikować nieco skrypt i dodać Bestiariusz.
Czeliosss - Pon 11 Sty, 2010 21:08

Już mam bo napisałaś w innym temacie.
MaTe - Pią 22 Sty, 2010 19:54

Gdy włączam Bestariusza wszystko jest OK, ale gdy wybiorę potwora, wyskakuje taki blad i gra się wyłącza:

Script 'Game_Enemy' line:19 NoMethodError occurred.

undefinded method 'enemy_id' for:NilClass


Wiecie może co z tym zrobić?? A i autora Bestiariusza, jeśli to możliwe prosiłbym o zrobienie, aby potwor dodawal sie jak sie go zobaczy, a nie koniecznie pokona, bo robię gre Pokemon i to by się przydalo. Z góry bardzo dziękuje za pomoc w Probelmie lub Problemach.

Ayene - Pią 22 Sty, 2010 20:10

Mam kilka pytań: Błąd się pojawia, gdy 'wybierzesz potwora'? Ale podczas walki? Jakiego Maker'a używasz: polskiego czy angielskiego?

Jeśli chodzi o autora, to jest on nieznany. Skryptu nie warto przerabiać, jeśli Tobie nie będzie działać ;-)

MaTe - Pią 22 Sty, 2010 20:12

Cytat:
Mam kilka pytań: Błąd się pojawia, gdy 'wybierzesz potwora'? Ale podczas walki? Jakiego Maker'a używasz: polskiego czy angielskiego?


Gdy wybiore potwora( wtedy keidy ma się pojawić okienko z jego statystykami) , podczas walki i podczas bycia na mapie, zawsze (mam nowe ptwory jak coś, nie podstawowe. Makera Polskiego.

Ayene - Pią 22 Sty, 2010 20:22

Ciężko w takim razie stwierdzić. Albo skrypt wchodzi w kolizję z innymi skryptami, albo po prostu nie chodzi na polskim RPG Maker'ze. Ostatni powód jest bardzo prawdopodobny... dzisiaj już miałam sytuację, w której skrypt działał na angielskiej wersji, a na polskiej - nie.
MaTe - Pią 22 Sty, 2010 20:58

Ayene, czy moglbys podac mi co masz w skrypcie Game_Enemy w linijce 19 ??

[ Dodano: Pon 25 Sty, 2010 21:41 ]
A czy ma ktoś RPG Maker XP z rpgmaker.pl i dzial mu ten skrypt ?

pw115 - Pią 19 Lut, 2010 14:50

Sorry ze freeshuje temat ale (głupie pytanie) nie wiem jak się dodaje potwory do tego bestiariusza
Ayene - Pią 19 Lut, 2010 15:57

pw115, info o potworze pojawia się automatycznie po jego pokonaniu :-> Nic nie trzeba więcej robić.
pw115 - Pią 19 Lut, 2010 16:04

AAAAA....
A jak zrobić żeby zrobiły się tylko wybrane potwory np. Bossy

Ayene - Pią 19 Lut, 2010 18:27

Zrobiłam coś takiego... sprawdź, czy o to Tobie chodziło.
Spoiler:

Kod:
#=========================================================
# ~ Bestiariusz ~
# Data publikacji: 20.07.2009
# Autor: ?
# Poprawki: SeIVoth [se4oth@o2.pl]
# Zapraszamy na stronę Ultima Forum - http://www.ultimateam.pl
# =========================================================
# Instalacja: Umieść ten skrypt nad Main w Edytorze Skryptu.
# =========================================================
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

# -----------------------------POCZĄTEK SKRYPTU ----------------------------------------------

module Enemy_Book_Config
DROP_ITEM_NEED_ANALYZE = false
EVA_NAME = "Evasion"           
SHOW_COMPLETE_TYPE = 3   
UKRYJ_BESTIE = [1, 2, 3]   # <- ID bestii, których dane mają nie wyświetlać                   
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 - Enemy_Book_Config::UKRYJ_BESTIE.size
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 == "" or Enemy_Book_Config::UKRYJ_BESTIE.include?(i)
    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 draw_enemy_drop_item(enemy, x, y)
  self.contents.font.color = normal_color
  self.contents.font.bold = true
  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
    name = "No Item"
  end
  self.contents.draw_text(x+28, y, 212, 32, name)
end
#--------------------------------------------------------------------------
def refresh
    self.contents.font.color = normal_color
    self.contents.font.bold = true
  end




def draw_enemy_book_id(enemy, x, y)
  self.contents.font.color = normal_color
  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.bold = true
  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.draw_text(x, y, 120, 32, "EXP")
  self.contents.font.color = normal_color
  self.contents.font.bold = true
  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.bold = true
  self.contents.font.color = system_color
  self.contents.draw_text(x, y, 120, 32, $data_system.words.gold)
  self.contents.font.color = normal_color
  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] =~ /&#22259;&#37969;&#30331;&#37682;&#28961;&#21177;/
      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
  #@data.sort!
  @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 or Enemy_Book_Config::UKRYJ_BESTIE.include?(id)
    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.bold = true
  self.contents.font.color = normal_color
  draw_enemy_book_id(enemy, x, y)
 
  if Enemy_Book_Config::UKRYJ_BESTIE.include?(enemy.id)
    self.contents.draw_text(x + 28+16, y, 212, 32, "---", 0)   
   
  elsif 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.draw_text(x + 256, y, 24, 32, "?", 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.size = 22
  self.contents.font.bold = true
  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.bold = true
  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
    self.contents.font.bold = true
    #draw_element_guard(enemy, 320-32, 160-16+96)
  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 refresh
    self.contents.font.color = normal_color
    self.contents.font.bold = true
  end
 
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.font.bold = true
  @title_window.contents.draw_text(4, 0, 320, 32, "Bestiariusz", 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
     
      def refresh
    self.contents.font.color = normal_color
    self.contents.font.bold = true
  end     
      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::B)
    $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::B)
    $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)
    #$game_system.se_play($data_system.decision_se)
    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
   

# --------------------------------- KONIEC SKRYPTU -------------------------------------------
# www.ultimateam.pl


Konfiguruj tę linijkę:
Kod:
UKRYJ_BESTIE = [1, 2, 3]   # <- ID bestii, których dane mają nie

pw115 - Pią 19 Lut, 2010 18:33

Tak!!! Dzięki jesteś wielka
Flanagan - Nie 02 Maj, 2010 19:00

Mam pytanie jak zrobić że po wduszeniu np. przycisku np. ''W,, włącza się bestriariusz???
pw115 - Nie 02 Maj, 2010 19:14

W równoległych zdarzeniach robisz: (proces równoległy)
warunek : przycisk ...(ten twój) jest naciśnięty
(wywołaj skrypt) $scene = Scene_MonsterBook.new

Fixed - Nie 02 Maj, 2010 19:22

Możesz też dać w "Scene_Map":
Po:
Kod:
loop do

Daj:
Kod:
if Input.trigger?(Input::F5)
$scene = Scene_MonsterBook.new
end


Np. Klawisz "F5".
Pzdr

sitax5 - Wto 08 Cze, 2010 17:36

A gdzie wkleić kod żeby włączyć skrypt?
Czeliosss - Wto 08 Cze, 2010 17:38

3 zakładka opcja Script.
Pzdr.

Bulooo - Sro 30 Cze, 2010 18:55

Mi wyskakuje coś takiego

Ayene - Czw 01 Lip, 2010 07:17

Bulooo, w którym momencie wyskakuje ten błąd? Wygląda na to, że nie może przyporządkować definicji, gdy klasa jest pusta - w tym przypadku jest to info o potworach.
Bulooo - Czw 01 Lip, 2010 07:38

wyskakuję zaraz jak otwieram bestiariusz
nie wiem czy to nie przez abs mr mo.
błąd pisze że jest na 58 linijce
Czyli
Cytat:
now_enemy_info = @enemy_info.keys

Ayene - Czw 01 Lip, 2010 09:13

Do skryptu z Bestiariuszem dodaj fragment:
Spoiler:

Kod:
class Game_Enemy < Game_Battler
  def initialize(troop_id, member_index)
    super()
    @troop_id = troop_id
    @member_index = member_index
    troop = $data_troops[@troop_id]
    @enemy_id = 1
    enemy = $data_enemies[@enemy_id]
    @battler_name = enemy.battler_name
    @battler_hue = enemy.battler_hue
    @hp = maxhp
    @sp = maxsp
    @hidden = false
    @immortal = false
  end
end


W skrypcie "Mr.Mo's ABS V4.5" znajdź fragment:
Kod:
#Return true if the e is dead

i dodaj po nim:
Kod:
$game_party.add_enemy_info(enemy.id, 0)

U mnie działa. Mam nadzieję, że u Ciebie też będzie. Tylko musisz sprawdzić, czy działa, nie korzystając z zapisu. Zacznij od początku.

Bulooo - Czw 01 Lip, 2010 12:09

A gdzie mam w bestiariuszu dodać to
Cytat:
class Game_Enemy < Game_Battler
def initialize(troop_id, member_index)
super()
@troop_id = troop_id
@member_index = member_index
troop = $data_troops[@troop_id]
@enemy_id = 1
enemy = $data_enemies[@enemy_id]
@battler_name = enemy.battler_name
@battler_hue = enemy.battler_hue
@hp = maxhp
@sp = maxsp
@hidden = false
@immortal = false
end
end

Bulooo - Czw 01 Lip, 2010 13:32

Włączyło się okno.
Zabiłem ducha.
I miałem go tam w 3 rubryce.
kliknełem na niego i pokazał się błąd w 19 linijce Game_Enemy

Ayene - Czw 01 Lip, 2010 17:56

A wkleiłeś ten fragment podany powyżej:
Spoiler:

Kod:
class Game_Enemy < Game_Battler
  def initialize(troop_id, member_index)
    super()
    @troop_id = troop_id
    @member_index = member_index
    troop = $data_troops[@troop_id]
    @enemy_id = 1
    enemy = $data_enemies[@enemy_id]
    @battler_name = enemy.battler_name
    @battler_hue = enemy.battler_hue
    @hp = maxhp
    @sp = maxsp
    @hidden = false
    @immortal = false
  end
end



Niemniej jednak wysłałam Tobie poprawiony projekt na PW.

pageon - Pon 05 Lip, 2010 08:51

Ayene a mogła byś wysłać mi skrypt cały przerobiony do skryptu blizzard abs bo gdy zabijam potwora to nie mam nic w info o nim a chciałbym mieć
Izaya - Czw 15 Lip, 2010 08:43

Na prawdę Super skrypt.
Bestiariusz Fajnie wygląda tylko
po lewej stronie tak Pusto :-?
Ale to drobnostka...
Pozdrawiam :papa:

R.I.P. - Czw 15 Lip, 2010 19:23

Fajny skrypcik nadaje się gdy ktoś robi np. grę z Pokemon :mrgreen: , Super że ktoś to wrzucił.
Bulooo - Sob 17 Lip, 2010 17:52

Spoiler:


Mam ABS mr mo's
Wyskakuję mi kiedy atakuję potwora i do walki dołącza się rycerz i mi próbuje pomóc i atakuję bestię.


42 linijka
Cytat:
if @enemy_info[enemy_id] == 2

Flanagan - Sob 17 Lip, 2010 17:55

prawdopodobnie skrypty nie współgrają ze sobą
Bulooo - Sob 17 Lip, 2010 18:12

a gadasz że nie współpracują.
Współpracują bo zalicza mi potworki jak je zabije.
Tylko jak ktoś mi pomaga zabić potworka się pokazuję błąd.
Raz już mi to Ayene przerobiła

Tylko teraz dopiero pokazał się błąd

MaTe - Nie 18 Lip, 2010 15:32

Ayene czy mogłabyś mi też wysłać poprawiony projekt na PW, bo mam to samo co Bulooo. Z góry bardzo dziękuję.

[ Dodano: Sro 21 Lip, 2010 14:48 ]
Ok już mi działa, ale teraz mam inny problem, robię grę pokemon. Więc najpierw pokazuje się trener, a potem przekształcam go na pokemona. I tu sie pojawia problem, gdy walka się zaczyna trener wygląda jak podstawowy duch z RPT, jednak jeśli nie używam Bestiariusz wszystko jest OK.

[ Dodano: Pią 30 Lip, 2010 17:11 ]
A czy mógłby ktoś może przerobyć ten skrypt:

Cytat:
#===============================================================================
#--------# Fantasy Bestiary #--------------------------------------------
#--------# version 1.0 #--------------------------------------------
#--------# by Thieffer and Dante #--------------------------------------------
#--------# 10.07.2010 #--------------------------------------------
#===============================================================================


#===============================================================================
#--------# INFO #--------------------------------------------
#===============================================================================
# Wklej skrypt nad Main.
# Do prawidłowego działania potrzebna jest czcionka używana przez skrypt (standardowo Galileo Font)
# Bestiariusz wywołuje się komendą:
# $scene = Scene_Fantasy_Bestiary.new
# Po każdej wygranej bitwie, w bestiariuszu pojawia się nowo poznany potwór.
# Możesz również ręcznie dodać poznanego potwora. Użyj komendy:
# $game_party.add_known_enemy(id)
# gdzie zamiast id wpisz numer ID potwora z bazy danych.
#===============================================================================

module Fantasy_Bestiary
DATA_BESTIARY = {

#===============================================================================
#--------# OPISY POTWORÓW #--------------------------------------------
#===============================================================================
# Schemat tworzenia opisów:
# ID_Potwora => [1 linijka opisu, 2 linijka opisu, 3 linijka opisu]
# Każdy z takich elementów musi być odzielony przecinkiem.
# W opisie potwora możesz użyć od 1 do 3 linjek tekstu.
# Jeśli nie stworzysz opisu potwora, to w bestiariuszu pozostanie puste miejsce.

1 => ["1 linijka opisu", "2 linijka opisu", "3 linijka opisu"],
2 => ["1 linijka opisu", "2 linijka opisu"],
3 => ["1 linijka opisu", "2 linijka opisu", "3 linijka opisu"],
4 => ["1 linijka opisu"]

#===============================================================================
}

#===============================================================================
#--------# CONFIG #--------------------------------------------
#===============================================================================
# Nazwa czcionki
FONT_NAME = "Trebuchet MS"
# Kolor czcionki komend, nagłówka
FONT_COLOR = Color.new(230, 230, 150, 255)
# Kolor czcionki statystyk
FONT_COLOR2 = Color.new(255, 255, 255, 255)
# Kolor czcionki liczby znanych potworów
FONT_COLOR3 = Color.new(255, 255, 255, 150)
# Rozmiar czcionki
FONT_SIZE = 18
# Nieprzezroczystość okienek (0-255)
OPACITY = 200
# Nieprzezroczystość obrazku tła (0-255)
BACKGROUND_OPACITY = 150
# Tekst nagłówka
HEADING_TEXT = "Pokedex"
# Rozmiar czcionki nagłówka
HEADING_FONT_SIZE = 30
# Grafika windowskina
WINDOWSKIN_GRAPHIC = "Windowskin4"
#===============================================================================

#===============================================================================
# Fantasy_Bestiary::Window_Command
#===============================================================================
class Window_Command < Window_Selectable
def initialize(width, commands)
super(32, 104, width, commands.size * 32 + 32)
@item_max = commands.size
@commands = commands
self.contents = Bitmap.new(width - 32, @item_max * 32)
self.opacity = Fantasy_Bestiary::OPACITY
self.windowskin = RPG::Cache.windowskin(Fantasy_Bestiary::WINDOWSKIN_GRAPHIC)
refresh
self.index = 0
end
def refresh
self.contents.clear
self.contents.font.name = Fantasy_Bestiary::FONT_NAME
for i in 0...@item_max
c = Fantasy_Bestiary::FONT_COLOR
draw_item(i, c)
end
end
def draw_item(index, color)
self.contents.font.color = color
rect = Rect.new(4, 32 * index, self.contents.width - 8, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
self.contents.draw_text(rect, @commands[index])
end
def disable_item(index)
draw_item(index, disabled_color)
end
end

#===============================================================================
# Fantasy_Bestiary::Window_Heading
#===============================================================================
class Window_Heading < Window_Base
def initialize
super(32, 32, 576, 64)
self.contents = Bitmap.new(width - 32, height - 32)
self.opacity = Fantasy_Bestiary::OPACITY
self.windowskin = RPG::Cache.windowskin(Fantasy_Bestiary::WINDOWSKIN_GRAPHIC)
refresh
end
def refresh
self.contents.clear
self.contents.font.name = Fantasy_Bestiary::FONT_NAME
self.contents.font.color = Fantasy_Bestiary::FONT_COLOR
self.contents.font.size = Fantasy_Bestiary::HEADING_FONT_SIZE
self.contents.draw_text(0, 0, 544, 32, Fantasy_Bestiary::HEADING_TEXT, 1)
# Liczba poznanych potworów
self.contents.font.size = Fantasy_Bestiary::FONT_SIZE
self.contents.font.color = Fantasy_Bestiary::FONT_COLOR3
text = $game_party.number_of_known_enemies.to_s + " / " + ($data_enemies.size-1).to_s
self.contents.draw_text(484, 10, 60, 32, text, 2)
end
end

#===============================================================================
# Fantasy_Bestiary::Window_Enemy_Description
#===============================================================================
class Window_Enemy_Description < Window_Base
attr_accessor :enemy_id
def initialize
super(240, 104, 368, 344)
self.contents = Bitmap.new(width - 32, height - 32)
self.opacity = Fantasy_Bestiary::OPACITY
self.windowskin = RPG::Cache.windowskin(Fantasy_Bestiary::WINDOWSKIN_GRAPHIC)
if $game_party.number_of_known_enemies == 0
@enemy_id = -1
else
@enemy_id = $game_party.known_enemies[0].id
end
refresh
end
def refresh
self.contents.clear
self.contents.font.name = Fantasy_Bestiary::FONT_NAME
self.contents.font.size = Fantasy_Bestiary::FONT_SIZE
if @enemy_id >=0
enemy = $data_enemies[@enemy_id]
draw_enemy_battler(enemy)
# HP
self.contents.font.color = Fantasy_Bestiary::FONT_COLOR
self.contents.draw_text(165,0,171,32,"HP: ")
self.contents.font.color = Fantasy_Bestiary::FONT_COLOR2
self.contents.draw_text(195,0,141,32,enemy.maxhp.to_s)
# SP
self.contents.font.color = Fantasy_Bestiary::FONT_COLOR
self.contents.draw_text(165,32,171,32,"SP: ")
self.contents.font.color = Fantasy_Bestiary::FONT_COLOR2
self.contents.draw_text(195,32,141,32,enemy.maxsp.to_s)
# Atk
self.contents.font.color = Fantasy_Bestiary::FONT_COLOR
self.contents.draw_text(165,64,171,32,"Atak: ")
self.contents.font.color = Fantasy_Bestiary::FONT_COLOR2
self.contents.draw_text(205,64,131,32,enemy.maxhp.to_s)
# PDEF
self.contents.font.color = Fantasy_Bestiary::FONT_COLOR
self.contents.draw_text(165,96,171,32,"Obrona fizyczna: ")
self.contents.font.color = Fantasy_Bestiary::FONT_COLOR2
self.contents.draw_text(282,96,54,32,enemy.pdef.to_s)
# MDEF
self.contents.font.color = Fantasy_Bestiary::FONT_COLOR
self.contents.draw_text(165,128,171,32,"Obrona magiczna: ")
self.contents.font.color = Fantasy_Bestiary::FONT_COLOR2
self.contents.draw_text(287,128,49,32,enemy.mdef.to_s)
# Opis
if Fantasy_Bestiary::DATA_BESTIARY[@enemy_id] != nil
self.contents.font.color = Fantasy_Bestiary::FONT_COLOR
self.contents.draw_text(20,205,100,32,"Opis: ")
self.contents.font.color = Fantasy_Bestiary::FONT_COLOR2
for i in 0..Fantasy_Bestiary::DATA_BESTIARY[@enemy_id].size-1
self.contents.draw_text(0,225+25*i,336,32,Fantasy_Bestiary::DATA_BESTIARY[@enemy_id][i])
end
end
end
end

def draw_enemy_battler(enemy)
# skalowanie grafiki battlera
bitmap=Bitmap.new("Graphics/Battlers/"+enemy.battler_name)
w=bitmap.width
h=bitmap.height
if w/150.0 >= h/200.0
skala = w/150.0
else
skala = h/200.0
end
new_w = w/skala
new_h = h/skala
self.contents.stretch_blt(Rect.new(0,0,new_w,new_h), RPG::Cache.battler(enemy.battler_name,0), Rect.new(0,0,w,h))
end

end
end

#===============================================================================
# Game_Party
#===============================================================================
class Game_Party
alias fantasy_bestiary_initialize initialize
def initialize
@known_enemies = []
fantasy_bestiary_initialize
end
def add_known_enemy(id)
@known_enemies << $data_enemies[id] if not @known_enemies.include?($data_enemies[id])
end
def number_of_known_enemies
return @known_enemies.size
end
def known_enemies
return @known_enemies
end
end

#===============================================================================
# Scene_Battle
#===============================================================================
class Scene_Battle
alias fantasy_bestiary_start_phase5 start_phase5
def start_phase5
for enemy in $game_troop.enemies
unless enemy.hidden
$game_party.add_known_enemy(enemy.id)
end
end
fantasy_bestiary_start_phase5
end
end

#===============================================================================
# Scene_Fantasy_Bestiary
#===============================================================================
class Scene_Fantasy_Bestiary
def main
names = []
@id_array = []
for i in 0..$game_party.number_of_known_enemies-1
names << $game_party.known_enemies[i].name
@id_array << $game_party.known_enemies[i].id
end
names << "Brak" if names.size == 0
@id_array << -1 if @id_array.size == 0
@cmd_window = Fantasy_Bestiary::Window_Command.new(200,names)
@cmd_window.height = 344
@heading_window = Fantasy_Bestiary::Window_Heading.new
@description_window = Fantasy_Bestiary::Window_Enemy_Description.new
@spriteset = Spriteset_Map.new
@tlo = Sprite.new
@tlo.bitmap = RPG::Cache.picture("fantasy_background")
@tlo.opacity = Fantasy_Bestiary::BACKGROUND_OPACITY
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@spriteset.dispose
@cmd_window.dispose
@heading_window.dispose
@tlo.dispose
@description_window.dispose
end

def update
@spriteset.update
@cmd_window.update
if @cmd_window.active
update_command
end
end

def update_command
if Input.trigger?(Input::B)
$game_system.se_play($data_system.cancel_se)
$scene = Scene_Map.new
end
if Input.trigger?(Input::C)
$game_system.se_play($data_system.decision_se)
@description_window.enemy_id = @id_array[@cmd_window.index]
@description_window.refresh
end
end
end


Aby było można zrobić potowry, które się nie wyświetlaja?

[ Dodano: Pią 30 Lip, 2010 17:53 ]
BUMP!!!!!!!!!

topola - Pią 01 Paź, 2010 13:43

jak próbuję otworzyć bestariusz to wyskakuje mi to
screen
da sie cos z tym zrobic?

Ayene - Pią 01 Paź, 2010 16:19

topola, co to za skrypt o nazwie "batt"? Sprawdź linijkę 76 może coś niepotrzebnie tam wpisałeś... albo spróbuj usunąć skrypt i odpalić grę.
Czeliosss - Sob 09 Paź, 2010 10:18

Załatw sobie angielską wersję. Polska ma błędy w skryptach i nie tylko. Na Polskim możesz się dopiero uczyć robić gry bez skryptów itp. Natomiast jak chcesz zrobić poważniejszy projekt musisz mieć angielską.
Konrader97 - Sob 09 Paź, 2010 10:29

Tyle że ja już zaczółem robić grę, ale dobra zna ktoś stronkę z downloadem??
Czeliosss - Sob 09 Paź, 2010 15:48

http://www.ultimateam.pl/viewtopic.php?t=2448
Tutaj masz.

Jak chcesz skopiować bazę danych i mapy to skopiuj plik Data

Konrader97 - Pon 11 Paź, 2010 12:10

Dzięki :mrgreen: Mam już wszystkie mapy i skrypty, ale musiałem trochę pokombinować, lecz bestariusz niedziała wogóle test gry się nie włącza.

Ps. Mam cracka :mrgreen:

shiwt - Pon 11 Paź, 2010 13:19

A można wiedzieć jakie poprawki wprowadziłeś do skryptu ?
Konrader97 - Pon 11 Paź, 2010 15:18

Dobra sprawdziłem i jest inny problem, korzystam z wersji angielskiej z krakiem i nizależ nie jaką mapę i czy ze skryptami, gdy probuje włączyć test to niedziała, niema erroru tylko wyskakuje okienko i nagle znika.
Ayene - Wto 12 Paź, 2010 07:21

Konrader97, najprawdopodobniej nie masz bibliotek RGSS. Sprawdź wersję RM albo po prostu wklej wszystkie do folderu z grą :arrow: http://www.ultimateam.pl/viewtopic.php?t=2026
Konrader97 - Wto 12 Paź, 2010 19:06

Dzięki za wszystko teraz wszysko działa :mrgreen:
szobal1 - Sob 13 Lis, 2010 10:24

A czy nie lepiej zrobić własny bestariusz?? wystarczy mieć ikonkę jakiejś książki i pobawić się typowymi zdarzeniami. Czy to takie trudne ???
Ayene - Sob 13 Lis, 2010 10:31

Oczywiście, większość rzeczy można zrobić za pomocą zdarzeń i odpowiedniej grafiki. Nie dadzą one jednak takiego efektu, jak skrypty. Jestem zdecydowaną zwolenniczką skryptów... a bestiariusz... cóż po niewielkich przeróbkach i dodatkach w postaci symulacji walk, może być całkiem profesjonalny ;-)
Cloudziuszek - Nie 12 Gru, 2010 17:18

No cóż. Powiem tak. Mam dosyć spory problem, gdyż zacząłem robić już własnego RPG. Gdy zauważyłem że można mieć bestiariusz to prawie się posikałem z radości. W każdym razie. Problem polega na tym, że gdy pokonam jakiegoś przeciwnika (Duch) to potem w bestiariuszu jest cały niebieski ekran. Owszem jak kliknę na jedno z miejsc gdzie POWINIEN być ten przeciwnik to on się pojawia lecz bez statystyk. Co tu mam zrobić?

Ups. Zrobiłem to co napisałaś tamtemu Panu przede mną. W każdym razie... Dzięki za pomoc! Genialny temat. <3

Nemma12 - Pią 11 Lut, 2011 07:18

Mam pytanie jak wchodze w gre po dodaniu skryptu to wtedy wyskakuje ze blond mam w 26 linijce " Systemtrack error
pomorze ktos??
Mam polskiego rpg maker

Ayene - Pią 11 Lut, 2011 10:58

Na forum nie wspieramy piractwa, przez co nie stanowimy grupy wsparcia dla osób korzystających z polskiego RM. Zainstaluj sobie próbną wersję angielską lub wykup licencję. Pozdrawiam.
Shlizer - Pią 11 Lut, 2011 13:29

Nemma12 napisał/a:
Mam pytanie jak wchodze w gre po dodaniu skryptu to wtedy wyskakuje ze blond mam w 26 linijce " Systemtrack error
pomorze ktos??
Mam polskiego rpg maker

Ja w swoich linijkach nie mam żadnego koloru blond.. dziwne.
No i ja jestem z pomorza, ale nie wiem co to ma do tematu.

Swoją drogą - po co Ci program w polskiej wersji językowej? Nie lepiej wybrać wersję języka, którą znasz i umiesz się posługiwać zamiast męczyć się w nieznanym Ci języku?

Nemma12 - Pią 11 Lut, 2011 16:56

ten pl jest tylko tymczasowo chce zrobić grę i potem eng możne kupie
LordVitas - Sob 05 Lis, 2011 13:58

Mam pewien problem z tym skryptem.
Niby wszystko działa. Ale jak spotka się potwora a potem wejdzie w bestiariusz
to nie ma napisów. A jak się wejdzie w danego potwora to jest tylko
battlers. Da się to jakoś naprawić?
Pozdro! Vitas!

Ayene - Sob 05 Lis, 2011 17:03

A jakiego masz 'mejkera'? Polskiego czy angielskiego? ;->
LordVitas - Sob 05 Lis, 2011 17:28

Polskiego. Ale już rozumiem w czym problem. Ściągam właśnie angielskiego.
PaayJer - Sob 05 Lis, 2011 18:04

@UP
No wątpie, że to jest problemem...
A w ogóle ściągasz rozumiem wersję DEMO?

tracersgta - Sob 05 Lis, 2011 18:22

Nie ma wersji Demo, jest tylko wersja Trial, no i piracka, którą zapewne ściąga...
Pepczak - Nie 18 Gru, 2011 14:10
Temat postu: klawisz
a ja mam pytanie, czy da się zrobić tak zeby bestiariusz włączał się gdy naciśniemy jakiś klawisz?
tracersgta - Nie 18 Gru, 2011 14:34

Jasne! W równoległych zdarzeniach ;-)
Roki132 - Pią 13 Kwi, 2012 16:59

Cześć, mam problem. Chciałbym użyć tego skryptu, ale nie działa mi do końca.
Napisy się pokazują, wszystko ok, tylko że jak pokonam przeciwnika, to mi się nie odblokowuje. Kiedyś znalazłem skrypt walki:
Custom Battle System (CTB) by Charlie Lee
http://www.rpgrevolution....?showtopic=8220
Mógłby mi ktoś przerobić ten skrypt, by współgrał właśnie z tym do walki?

Ayene - Pią 13 Kwi, 2012 20:55

Roki132, zauważ, że w temacie do którego podałeś link, nie ma downloadu. Postaraj się jakoś udostępnić skrypt, bo bez tego nie wniesie się odpowiednich poprawek.
Roki132 - Pią 13 Kwi, 2012 22:20

Proszę, zamieszam tutaj obecny projekt.
http://www.wrzuc.to/usRd1FpYL.wt

I tak jeszcze przy okazji się spytam, jak zwiększyć liczbę slotów w skryptach?
Żeby było można więcej skryptów wgrać.

Tracker009 - Sob 14 Kwi, 2012 11:11

Klikasz ppm na puste miejsce i Insert ta pierwsza opcja ;)
Ayene - Sob 14 Kwi, 2012 14:52

Roki132, żeby skrypt Tobie działał w skrypcie 'CTB by Charlie - Scene_Battle' znajdź:
Kod:
def start_phase5 # [modified by Charlie]

po tym dodaj:
Kod:
for enemy in $game_troop.enemies
      unless enemy.hidden
        $game_party.add_enemy_info(enemy.id, 0)
      end
    end

Następnie w skrypcie na 'Scene_MonsterBook' znajdź:
Kod:
draw_enemy_graphic(enemy, 96, 240+48+64, 200)

zamień ją na:
Kod:
draw_enemy_graphic(enemy, 96, 48+64, 200)

Następnie znajdź fragment:
Kod:
cw = bitmap.width
  ch = bitmap.height

zamień na:
Kod:
cw = bitmap.width / 4
  ch = bitmap.height / 11

Następnie znajdź:
Kod:
super(2, 1)

zamień na:
Kod:
super(1, 0)

Roki132 - Sob 14 Kwi, 2012 16:38

Bardzo dziękuję, działa.
bluemike - Nie 05 Sie, 2012 17:59

Mam prośbę, czy ktoś mógłby edytować tak ten skrypt ,aby działał z tym systemem walki?
http://members.jcom.home....pt/rtab_107.txt
A, i jeszcze pytanie czy da się sprawdzić ile potworków zostało juz odblokowanych?
Chciałem zrobić taki Bonus po odblokowaniu 80%.
Jak coś skrypt działał mi dobrze ze standardowym systemem walki ,jeśli nie będzie się dało to najwyżej odpuszczę sobie ten "Bonus" i bestariusz.

The Big Master - Sob 12 Sty, 2013 14:23

Siemka mam Ring Menu również twojego autorstwa, i chciałbym dodac tam ten Monster Book, ale nie wiem jak :C próbowałem na własną ręke ale mało co kojarzę ruby i mi prawie rozdupcyło projekt naszczęście mam kopie zapasowe ;) mógłbyś mi powiedzieć jak umieścić Bestariusz w RING MENU ??



Otworzyłem Bestariusz w nowym projekcie i nie było napisów ale sam sobie dałem z tym rade i poprawiłem tak by działały ale mam znów inny problem gdyż pojawiają się wszystkie napisy z wyjątkiem:"Bestariusz" ale bez tego też można żyć ;D


Powered by phpBB modified by Przemo © 2003 phpBB Group