Jump to content
Rpg²S Forum
  • 0

Non riesco a usare il Tales of Dishes script


Kenshin
 Share

Question

Intanto posto lo script:

 

#===============================================================================
# Tales of Dishes(Abyss) ver 12.1
# by Oz
#
# I made to try to blame the script's proposed food
# Combined with previously made scripts that are not food
# In which one or the other please
# The method of implementation is the same as the
# previous script, KGC Custom Menu Command
# Place below this script
# Here the whole party can only have finished food items
# be effective once per battle
# Food item information placed in notes
#
# TL NOTE: "cooknote", "addstate" and "recovery" are translated script terms
# "Cooknote" was originally "Additional Material" but that's a bit to hefty
#
# use [cooknote] ~ [/cooknote] to define dishes
# [cooknote]
# materials = 43
# addstate = 9,10
# effect = MPrecovery+1%
# [/cooknote]
#    In this case the cooknote (Item ID: 43) by adding
# Increasing the amount of state MPrecovery 1%
# Adding State ID: 9,10 to all party members
#
# You can define special cases by Actor ID when cooking
# more than one level 3
# [cooknote]
# actor = 1
# level = 3
# materials = RICE
# effect = HPrecovery+20%
# [/cooknote]
#  RICE CLASS are registered in the cooknote you specify will be 57,60
# In addition to the default effect of this cooknote by adding either one
# HPrecovery 20% more weight

# In such a feeling to describe, by adding items to the specified ID
# Larger than the effect
#
# When setting the maximum level of learning [ACTOR (actor ID): MAX x]
# This dish is an actor with the specified ID x is the maximum skill
# NEXT_EXP has become the default number of elements.
# Increasing the maximum value can be changed NEXT_EXP elements
# Also, every skill cooknote'm not at most one more Yarenaku, noodles Sounaruto d (ry
# I have no words to be switched.
# Way function, the data referring to the Abyss
# Have not played Abyss (Roar
# Later, Luke likes and dislikes too much=end
#===============================================================================

module COOKING
#Here we define the creatable Dish Item IDs
DISHES = [
60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
70, 71, 72, 73, 74, 75, 76, 77, 78, 79
]
#Ingredient group classifications
#All ingredients need not be described here
MEAT = [21, 22, 23, 24, 25, 26]
FISH = [27, 28, 29, 30, 31, 32, 33, 34]
VEGETABLE = [35, 36, 37, 38, 39, 40, 41, 42]
FRUIT = [43, 44, 45, 46, 47]
RICE = [48, 51]
BREAD = [49, 52]
PASTA = [50, 53]
#Language used to classify the material
#Item classifications can be registered here.
CLASS = {
"MEAT"=>MEAT,"FISH"=>FISH,"VEGETABLE"=>VEGETABLE,"FRUIT"=>FRUIT,
"RICE"=>RICE,"BREAD"=>BREAD,"PASTA"=>PASTA
}
#Add Material in the notes databases you specify MEAT
#MEAT will be what they register as

#Recipes
#Describe the necessary ingredients to make food
RECIPE = [] #Do Not Touch
#Example Recipe Item ID:69 can be made with any Grain material
#if you have more relevant ingredients, consumption is determined at random
RECIPE[60] = [RICE]
RECIPE[61] = [PASTA]
RECIPE[62] = [BREAD]
RECIPE[63] = [MEAT]
RECIPE[64] = [RICE]
RECIPE[65] = [PASTA,57]
RECIPE[66] = [BREAD,58]
RECIPE[67] = [VEGETABLE,35]
RECIPE[68] = [RICE,37]
RECIPE[69] = [PASTA,57]
RECIPE[70] = [BREAD,54,55]
RECIPE[71] = [RICE,54]
RECIPE[72] = [RICE,FISH]
RECIPE[73] = [PASTA,57]
RECIPE[74] = [BREAD,55]
RECIPE[75] = [36,37]
RECIPE[76] = [MEAT,55,58,37]
RECIPE[77] = [FRUIT,FRUIT,FRUIT,55]
RECIPE[78] = [36,47,38,41]
RECIPE[79] = [39,54,57,59]
#The experience needed for next level
Default_Next_EXP = [100,200,300,400,500]
# Define the experience necessary for each actor to reach the next level
Next_EXP = [] # Do Not Touch
# Actor ID[1] default requires 120,240,360,480,600 experience for each level.
Next_EXP[1] = [120,240,360,480,600]
# Success rate for each level
Default_Success = [50,60,70,85,95,99]
# Set the success rate for each actor
Success = [] # Do Not Touch
#Actor ID[1] default success rates 30,40,50,60,70,80
Success[1] = [30,40,50,60,70,80]
#Random Item ID chosen to be created on a failure
Default_Failure = [80,81,82,83,84,85]
#Set for each actor
Failure = [] # Do Not Touch
#Actor ID[1]:Failure hash defined by actor
Failure[1] = [80,81,82]
# Text icons to display the current level of learning
LEVEL = ["","★","★★","★★★","★★★★","★★★★★"]
#アクター毎に覚えることのできない料理を設定する
ACTOR_CANT_LEARN = []
#ACTOR_CANT_LEARN[1] = [0,1] でID:1のキャラは、
#料理番号の0と1を覚えることはできません
ACTOR_CANT_LEARN[1] = [0,1]
#Success Dialogue
#When cooking is successfull display "☆ Success! ☆"
Default_Success_Message = "☆ Success! ☆"
#Set Each Actor's Success message.
Success_Message = []
#Actor ID[1]: "I did it!"
Success_Message[1] = "I did it!"
#Play SE on Success
SUCCESS_SE = "Chime2"
#Gain EXP on Success
SUCCESS_EXP = 30
#Failure Dialaogue
# When cooking is a failure display "Better luck next time..."
Default_Failure_Message = "Better luck next time..."
#Set for each Actor
Failure_Message = []
#Actor ID[1]: "I failed..."
Failure_Message[1] = "I failed..."
#Play SE on Failure
FAILURE_SE = "Down"
#Gaine EXP on Failure
FAILURE_EXP = 10
#Set to True to Display messages.
MESSAGE_FLAG = false
#Display in menu
COOK = "Cooking"
#Place Menu command before Menu option (4) [May not be compatible with all Custom Menu Systems]
COMMAND_COOK = 4
#Display message when trying to make multiple recipes.
NO_MORE_EAT = "You can't eat anymore \n. Please digest and continue fighting"
#To display message for Food effects set to True
EFFECT_MESSAGE_FLAG = true
#Cooking (with sound effects), or in the message?
Now_Cooking = true
#Display Message when cooking
Now_Cooking_Message = "Now Cooking..."
#Cooking time (in frames)
Now_Cooking_Wait = 50
#Play SE when Cooking
Now_Cooking_SE = "Earth9"
#Assigned variable for actors made food
Cooking_Actor_Variable = 1
#Assigned variable for dish success
Cooking_Dish_Variable = 2
end
#===============================================================================
# ■ COOKING::Regexp
#===============================================================================
module COOKING
module Regexp
#料理のcooknote設定 定義開始
ADD_MATERIAL = /\[(?:ADD\s*MATERIALS|cooknote)\]/i
#料理のcooknote設定 定義終了
END_MATERIAL = /\[\/(?:ADD\s*MATERIALS|cooknote)\]/i
#cooknote
MATERIALS = /(?:MATERIALS|材料)\s*(?:=|\=)\s*(\w+)/i
#アクター指定
ACTOR = /(?:ACTOR|アクター)\s*(?:=|\=)\s*(\d+)/i
#レベル指定
LEVEL = /(?:LEVEL|レベル)\s*(?:=|\=)\s*(\d+)/i
#効果指定
EFFECT = /(?:EFFECT|効果)\s*(?:=|\=)\s*((?:HP|HP)recovery|(?:MP|MP)recovery|(?:HPMP|HPMP)recovery)\s*(?:\+|+)(\d+)(?:\%|%)/i
#addstate
ADD_STATE = /(?:ADD\s*STATE|addstate)\s*(?:=|\=)\s*([\d\,]+)/i
#ステート解除
REMOVE_STATE = /(?:REMOVE\sSTATE|ステート解除)\s*(?:=|\=)\s*([\d\,])+/i
#アクター毎の料理の最大レベル
ACTOR_COOKING_MAX_LV = /\[ACTOR\s*(\d+)\:MAX\s*(\d+)\]/i
end
end
#===============================================================================
# ■ Vocab
#===============================================================================
module Vocab
#メニュー項目
def self.cookingform
return COOKING::COOK
end
#連続で料理しようとしたときのメッセージ
def self.no_more_eat
return COOKING::NO_MORE_EAT
end
end
#===============================================================================
# ■ Sound
#===============================================================================
module Sound
#料理で成功した時
def self.cooking_success_play
Audio.se_play("Audio/SE/" + COOKING::SUCCESS_SE,100,100)
end
#料理で失敗した時
def self.cooking_failure_play
Audio.se_play("Audio/SE/" + COOKING::FAILURE_SE,100,100)
end
#料理中の効果音
def self.now_cooking_play
Audio.se_play("Audio/SE/" + COOKING::Now_Cooking_SE, 100, 100)
end
end
#===============================================================================
# ☐ Command
#===============================================================================
module Commands
module_function
def learn_cooking(cooking_id)
for actor in $data_actors
$game_actors[actor.id].learn_cooking(cooking_id)
end
end
end

class Game_Interpreter
include Commands
end
#==============================================================================
# ■ RPG::BaseItem
#==============================================================================
class RPG::BaseItem
#--------------------------------------------------------------------------
# ○ 料理のアクター毎のcooknoteのキャッシュ生成
#--------------------------------------------------------------------------
def create_cooking_add_materials_cache
@add_materials = []
@actor_max_level = {}
self.note.each{|line|
case line
when COOKING::Regexp::ADD_MATERIAL
@cooking = RPG::Cooking.new
when COOKING::Regexp::END_MATERIAL
@add_materials << @cooking
@cooking = nil
when COOKING::Regexp::ACTOR
@cooking.actor_id = $1.to_i
when COOKING::Regexp::MATERIALS
if COOKING::CLASS.include?($1)
@cooking.materials = COOKING::CLASS[$1]
else
$1.scan(/\d+/){|s| @cooking.materials << s.to_i }
end
when COOKING::Regexp::LEVEL
@cooking.level = $1.to_i
when COOKING::Regexp::EFFECT
@cooking.effect = $1
@cooking.recovery = $2.to_i
when COOKING::Regexp::ADD_STATE
$1.scan(/\d+/){|s| @cooking.add_state << s.to_i }
when COOKING::Regexp::REMOVE_STATE
$1.scan(/\d+/){|s| @cooking.recovery_state << s.to_i }
when COOKING::Regexp::ACTOR_COOKING_MAX_LV
@actor_max_level[$1] = $2
end
}
end
#--------------------------------------------------------------------------
# ● 追加料理の取得
#--------------------------------------------------------------------------
def add_materials
create_cooking_add_materials_cache if @add_materials.nil?
return @add_materials
end
#--------------------------------------------------------------------------
# ● アクター毎の最大レベルの取得
#--------------------------------------------------------------------------
def actor_max_level
create_cooking_add_materials_cache if @actor_max_level.nil?
return @actor_max_level
end
end
#==============================================================================
# ■ RPG::Cooking
#==============================================================================
class RPG::Cooking
attr_accessor :materials
attr_accessor :actor_id
attr_accessor :level
attr_accessor :effect
attr_accessor :recovery
attr_accessor :add_state
attr_accessor :recovery_state
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
def initialize
@materials = []
@actor_id = 0
@level = 0
@effect = ""
@recovery = 0
@add_state = []
@recovery_state = []
end
#--------------------------------------------------------------------------
# ● cooknoteのうち 持っている材料の取得
#--------------------------------------------------------------------------
def has_materials
has_materials = []
for material in @materials
has_materials << material if $game_party.item_number($data_items[material]) > 0
end
return has_materials
end
#--------------------------------------------------------------------------
# ● HPのrecovery%
#--------------------------------------------------------------------------
def hp_recovery_rate
recovery_rate = 0
if @effect.upcase.include?("HP") or @effect.upcase.include?("HP")
recovery_rate = @recovery
end
return recovery_rate
end
#--------------------------------------------------------------------------
# ● HPのrecovery%
#--------------------------------------------------------------------------
def mp_recovery_rate
recovery_rate = 0
if @effect.upcase.include?("MP") or @effect.upcase.include?("MP")
recovery_rate = @recovery
end
return recovery_rate
end
end
#===============================================================================
# ■ Game_Actor
#===============================================================================
class Game_Actor < Game_Battler
#-----------------------------------------------------------------------------
# ● アクターの料理スキルの初期化
#-----------------------------------------------------------------------------
attr_accessor :cooking_level
attr_accessor :cooking_next_exp
attr_accessor :cooking_enable
def cooking_status_clear
@cooking_level = []
@cooking_next_exp = []
@cooking_enable = []
COOKING::DISHES.size.times{|i|
@cooking_level[i] = 0
if COOKING::Next_EXP[self.id].nil?
@cooking_next_exp[i] = COOKING::Default_Next_EXP[0]
else
next_exp = COOKING::Next_EXP[self.id]
@cooking_next_exp[i] = next_exp[0]
end
@cooking_enable[i] = false
}
end
#-----------------------------------------------------------------------------
# ● 料理のレベル
#-----------------------------------------------------------------------------
def cooking_level
create_cooking_status_cache if @cooking_level == nil
return @cooking_level
end
#-----------------------------------------------------------------------------
# ● 次のレベルになるための必要経験値
#-----------------------------------------------------------------------------
def cooking_next_exp
create_cooking_status_cache if @cooking_next_exp == nil
return @cooking_next_exp
end
#-----------------------------------------------------------------------------
# ● 料理が作れるか
#-----------------------------------------------------------------------------
def cooking_enable
create_cooking_status_cache if @cooking_enable == nil
return @cooking_enable
end
#--------------------------------------------------------------------------
# ● セットアップ
# actor_id : アクター ID
#--------------------------------------------------------------------------
alias setup_cooking setup
def setup(actor_id)
setup_cooking(actor_id)
cooking_status_clear
end
#-----------------------------------------------------------------------------
# ● 覚える料理
#-----------------------------------------------------------------------------
def learn_cooking(cooking_id)
cant_cooking_list = []
cant_cooking_list = COOKING::ACTOR_CANT_LEARN[self.id]
unless cant_cooking_list.nil?
return if cant_cooking_list.include?(cooking_id)
end
self.cooking_enable[cooking_id] = true
end
end
#==============================================================================
# ■ Game_Temp
#==============================================================================
class Game_Temp
#-----------------------------------------------------------------------------
# ○ハッシュの再定義
#-----------------------------------------------------------------------------
unless method_defined?(:hushredefine)
def hushredefine(list,hash)
if list.has_value?(hash)
key = list.index(hash)
hash+=1
list = hushredefine(list,hash)
list[key] = hash
end
return list
end
end
end
#==============================================================================
# ■ Game_Battler
#==============================================================================
class Game_Battler
def cooking_effect(hp_recovery,mp_recovery,state_recovery,add_states)
for state in state_recovery
remove_state(state)
@removed_states.push(state)
end
return if dead?
@hp+=hp_recovery
@hp = [@hp,maxhp].min
@mp+=mp_recovery
@mp = [@mp,maxmp].min
for state in add_states
add_state(state)
end
end
end
#==============================================================================
# ■ Game_Map
#==============================================================================
class Game_Map
attr_accessor :cooking_flag
end
#==============================================================================
# ■ Window_Command
#==============================================================================
class Window_Command < Window_Selectable
unless method_defined?(:add_command)
#--------------------------------------------------------------------------
# ○ コマンドを追加
# 追加した位置を返す
#--------------------------------------------------------------------------
def add_command(command)
@commands << command
@item_max = @commands.size
item_index = @item_max - 1
refresh_command
draw_item(item_index)
return item_index
end
#--------------------------------------------------------------------------
# ○ コマンドをリフレッシュ
#--------------------------------------------------------------------------
def refresh_command
buf = self.contents.clone
self.height = [self.height, row_max * WLH + 32].max
create_contents
self.contents.blt(0, 0, buf, buf.rect)
buf.dispose
end
#--------------------------------------------------------------------------
# ○ コマンドを挿入
#--------------------------------------------------------------------------
def insert_command(index, command)
@commands.insert(index, command)
@item_max = @commands.size
refresh_command
refresh
end
#--------------------------------------------------------------------------
# ○ コマンドを削除
#--------------------------------------------------------------------------
def remove_command(command)
@commands.delete(command)
@item_max = @commands.size
refresh
end
end
end
#==============================================================================
# □ Window_Dishes_Selectable
#------------------------------------------------------------------------------
#  料理画面でつくる料理を選択するウィンドウです。
#==============================================================================
class Window_Dishes_Selectable < Window_Selectable
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
def initialize
super(0,56,160,360)
self.z = 2000
self.index = 0
@cooking_dishes_actors = []
refresh
end
attr_accessor :cooking_dishes_actors
#--------------------------------------------------------------------------
# ● ウィンドウ内容の作成
#--------------------------------------------------------------------------
def create_contents
self.contents.dispose
self.contents = Bitmap.new(width - 32, [height - 32, row_max * (WLH+12)].max)
end
#--------------------------------------------------------------------------
# ● 先頭の行の取得
#--------------------------------------------------------------------------
def top_row
return self.oy / (WLH+12)
end
#--------------------------------------------------------------------------
# ● 先頭の行の設定
# row : 先頭に表示する行
#--------------------------------------------------------------------------
def top_row=(row)
row = 0 if row < 0
row = row_max - 1 if row > row_max - 1
self.oy = row * (WLH+12)
end
#--------------------------------------------------------------------------
# ● 1 ページに表示できる行数の取得
#--------------------------------------------------------------------------
def page_row_max
return (self.height - 32) / (WLH+12)
end
#--------------------------------------------------------------------------
# ● 項目を描画する矩形の取得
# index : 項目番号
#--------------------------------------------------------------------------
def item_rect(index)
rect = Rect.new(0, 0, 0, 0)
rect.width = (contents.width + @spacing) / @column_max - @spacing
rect.height = (WLH+6)
rect.x = index % @column_max * (rect.width + @spacing)
rect.y = index / @column_max * (WLH+12)
return rect
end
#-----------------------------------------------------------------------------
# ● リフレッシュ
#-----------------------------------------------------------------------------
def refresh
@item_max=COOKING::DISHES.size
create_contents
@item_max.times{|i|
draw_item(i)
}
end
#-----------------------------------------------------------------------------
# ● 料理名の描画
#-----------------------------------------------------------------------------
def draw_item(index)
rect = item_rect(index)
rect.x += 2
rect.width -= 4
member = cooking_can?(index)
self.contents.clear_rect(rect)
if member.size > 0
rect.x += 24
rect.width -= 24
id = COOKING::DISHES[index]
draw_icon($data_items[id].icon_index, rect.x - 24, rect.y + 4, true)
self.contents.draw_text(rect, $data_items[id].name, 1)
else
self.contents.draw_text(rect,"? ? ?",1)
end
@cooking_dishes_actors[index] = member
end
#-----------------------------------------------------------------------------
# ● 料理をつくることができるのか?
#-----------------------------------------------------------------------------
def cooking_can?(index)
member = []
for actor in $game_party.members
next if actor.dead?
member << actor if actor.cooking_enable[index]
end
return member
end
#--------------------------------------------------------------------------
# ● カーソルの更新
#--------------------------------------------------------------------------
def update_cursor
super
self.cursor_rect.y+=2
self.cursor_rect.height = WLH
end
end
#===============================================================================
# □ Window_Cooking_Actor
#-------------------------------------------------------------------------------
#  料理画面でつくるActorを選択するウィンドウです。
#===============================================================================
class Window_Cooking_Actor < Window_Selectable
#-----------------------------------------------------------------------------
# ● 定数
#-----------------------------------------------------------------------------
ACTOR_HEIGHT = 96 #アクター1人分の縦幅
ACTOR_WIDTH = 88 #アクター1人分の横幅
#-----------------------------------------------------------------------------
# ● オブジェクト初期化
#-----------------------------------------------------------------------------
def initialize
super(160,56,248,360)
self.z = 2000
@cooking_member = []
@cooking_index = 0
@column_max = 2
self.active = false
end
#--------------------------------------------------------------------------
# ● ウィンドウ内容の作成
#--------------------------------------------------------------------------
def create_contents
self.contents.dispose
self.contents = Bitmap.new(width - 32,
[height - 32, row_max * (ACTOR_HEIGHT + 12)].max)
end
#--------------------------------------------------------------------------
# ● 先頭の行の取得
#--------------------------------------------------------------------------
def top_row
return self.oy / (ACTOR_HEIGHT + 12)
end
#--------------------------------------------------------------------------
# ● 先頭の行の設定
# row : 先頭に表示する行
#--------------------------------------------------------------------------
def top_row=(row)
super(row)
self.oy = self.oy / WLH * (ACTOR_HEIGHT + 12)
end
#--------------------------------------------------------------------------
# ● 1 ページに表示できる行数の取得
#--------------------------------------------------------------------------
def page_row_max
return (self.height - 32) / (ACTOR_HEIGHT + 12)
end
#--------------------------------------------------------------------------
# ● 項目を描画する矩形の取得
# index : 項目番号
#--------------------------------------------------------------------------
def item_rect(index)
rect = super(index)
rect.height = ACTOR_HEIGHT
rect.width = ACTOR_WIDTH
rect.y = index / @column_max * (ACTOR_HEIGHT + 12)
return rect
end
#-----------------------------------------------------------------------------
# ● 料理をつくることのできるメンバーを取得
#-----------------------------------------------------------------------------
def cooking_member=(member)
@cooking_member = member
refresh
end
#-----------------------------------------------------------------------------
# ● 料理の番号を取得
#-----------------------------------------------------------------------------
def cooking_index=(index)
@cooking_index = index
end
#-----------------------------------------------------------------------------
# ● リフレッシュ
#-----------------------------------------------------------------------------
def refresh
@item_max = @cooking_member.size
create_contents
draw_cooking_actor
end
#--------------------------------------------------------------------------
# ● 料理のできるキャラクターの描画
#--------------------------------------------------------------------------
def draw_cooking_actor
self.contents.clear
content_x = 43
content_y = 65
for actor in @cooking_member
draw_actor_graphic(actor,content_x,content_y)
self.contents.draw_text(content_x-41,content_y-64,88,WLH,actor.name,1)
contents.font.color = text_color(14)
text = COOKING::LEVEL[actor.cooking_level[@cooking_index]]
self.contents.draw_text(content_x-41,content_y,88,WLH,text,1)
contents.font.color = text_color(0)
content_x+=124
if content_x > 270
content_x = 43
content_y += 108
end
end
end
end
#==============================================================================
# □ Window_Dishes_Help
#------------------------------------------------------------------------------
#  料理画面で選択している料理の説明を表示するウィンドウです。
#==============================================================================
class Window_Dishes_Help < Window_Base
#-----------------------------------------------------------------------------
# ● オブジェクト初期化
#-----------------------------------------------------------------------------
def initialize
super(0, 0, 544, WLH + 32)
self.z = 2000
end
#-----------------------------------------------------------------------------
# ● テキスト設定
# text : ウィンドウに表示する文字列
# align : アラインメント (0..左揃え、1..中央揃え、2..右揃え)
#-----------------------------------------------------------------------------
def set_text(text, align = 0)
if text != @text or align != @align
self.contents.clear
self.contents.font.color = normal_color
self.contents.draw_text(4, 0, self.width - 40, WLH, text, align)
@text = text
@align = align
end
end
end
#==============================================================================
# □ Window_Dishes_Recipe
#------------------------------------------------------------------------------
#  料理画面で選択している料理の材料を表示するウィンドウです。
#==============================================================================
class Window_Dishes_Recipe < Window_Selectable
attr_accessor :dish
attr_accessor :actor_add_material
#-----------------------------------------------------------------------------
# ● オブジェクト初期化
#-----------------------------------------------------------------------------
def initialize
super(408,56,136,360)
self.z = 2000
self.active = false
self.index = 0
@dish = -1
@actor_add_material = []
refresh
end
#--------------------------------------------------------------------------
# ● ウィンドウ内容の作成
#--------------------------------------------------------------------------
def create_contents
self.contents.dispose
self.contents = Bitmap.new((width - 32) * @column_max, height - 32)
end
#--------------------------------------------------------------------------
# ● 項目を描画する矩形の取得
# index : 項目番号
#--------------------------------------------------------------------------
def item_rect(index)
rect = Rect.new(0, 0, 0, 0)
rect.width = contents.width / @column_max
rect.height = contents.height
rect.x = index * contents.width / @column_max
rect.y = 0
return rect
end
#-----------------------------------------------------------------------------
# ● リフレッシュ
#-----------------------------------------------------------------------------
def refresh
@item_max = 1
add_material = []
cooking_add_material = $data_items[@dish].add_materials
for material in cooking_add_material
if material.actor_id == 0
add_material << material.materials
else
next
end
end
@item_max += add_material.size
@item_max += @actor_add_material.size
@column_max = @item_max
create_contents
return unless @dish > 0
page = 0
recipe_list = COOKING::RECIPE[@dish]
draw_material(page,"必須食材",recipe_list)
if add_material.size > 0
page+=1
draw_material(page,"追加食材",add_material)
end
for material in @actor_add_material
page+=1
draw_material(page,"追加食材",material)
end
end
#-----------------------------------------------------------------------------
# ● 料理の番号を取得
#-----------------------------------------------------------------------------
def dish=(dish)
@dish = dish
refresh
end
#-----------------------------------------------------------------------------
# ● アクター毎のcooknote
#-----------------------------------------------------------------------------
def actor_add_material=(actor_add_material)
@actor_add_material= actor_add_material
refresh
end
#-----------------------------------------------------------------------------
# ● 食材を描画
#-----------------------------------------------------------------------------
def draw_material(page,text,recipe_list)
rect = item_rect(page)
recipe = recipe_list.uniq
self.contents.draw_text(rect.x,rect.y,rect.width,WLH,text)
self.contents.font.size = 15
self.contents.draw_text(rect.x,rect.height-19,rect.width,WLH,"<< Y") if page != 0
self.contents.draw_text(rect.x,rect.height-19,rect.width,WLH,"X >>",2) if page != @column_max-1
contents_y = WLH
recipe.size.times{|i|
material = recipe[i]
case material
when Numeric
self.contents.draw_text(rect.x,contents_y,rect.width*3/4,WLH,$data_items[material].name)
has_number = $game_party.item_number($data_items[material])
self.contents.draw_text(rect.x,contents_y,rect.width,WLH,has_number,2)
n = recipe_list.find_all{|item| item == material }.size
contents_y+=19
if n > 1
self.contents.draw_text(rect.x,contents_y,rect.width,WLH,sprintf("×%d",n))
contents_y+=19
end
when Array
for array in material
self.contents.draw_text(rect.x,contents_y,rect.width*3/4,WLH,$data_items[array].name)
has_number = $game_party.item_number($data_items[array])
self.contents.draw_text(rect.x,contents_y,rect.width,WLH,has_number,2)
contents_y+=19
end
next unless material.size > 1
n = recipe_list.find_all{|item| item == material }.size
self.contents.draw_text(rect.x,contents_y,rect.width,WLH,sprintf("うち%dつ",n))
contents_y+=19
end
if i < recipe.size-1
self.contents.draw_text(rect.x,contents_y,rect.width,WLH,"+",1)
contents_y+=WLH
end
}
self.contents.font.size = 20
end
#--------------------------------------------------------------------------
# ● カーソルの更新
#--------------------------------------------------------------------------
def update_cursor
rect = item_rect(@index)
self.ox = rect.x
self.cursor_rect.empty # カーソルを無効とする
end
end
#==============================================================================
# □ Window_Cooking_Confirm
#------------------------------------------------------------------------------
#  料理画面で選択している料理をつくるか確認するウィンドウです。
#==============================================================================
class Window_Cooking_Confirm < Window_Selectable
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
def initialize
super(152,194,240,WLH*2 + 32)
@item_max = 2
@column_max = 2
self.active = false
self.index = -1
refresh
end
#--------------------------------------------------------------------------
# ● 項目を描画する矩形の取得
# index : 項目番号
#--------------------------------------------------------------------------
def item_rect(index)
rect = super(index)
rect.y+=WLH
return rect
end
#-----------------------------------------------------------------------------
# ● リフレッシュ
#-----------------------------------------------------------------------------
def refresh
create_contents
self.contents.draw_text(0,0,contents.width,WLH,"Command")
draw_command(0,"Make")
draw_command(1,"Quit")
end
#-----------------------------------------------------------------------------
# ● 項目の描画
#-----------------------------------------------------------------------------
def draw_command(index,text)
rect = item_rect(index)
self.contents.draw_text(rect,text,1)
end
end
#==============================================================================
# □ Window_Cooking_Message
#------------------------------------------------------------------------------
#  料理画面でメッセージを表示するウィンドウです
#==============================================================================
class Window_Cooking_Message < Window_Base
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
def initialize
super(0,0,544,416)
self.active = false
end
#-----------------------------------------------------------------------------
# ● リフレッシュ
#-----------------------------------------------------------------------------
def set_message(message)
max_width = 0
height = 0
text = message.dup
text.each_line{|line|
line.gsub!(/(.*)\n/i) {$1}
width = self.contents.text_size(line).width
max_width = width if max_width < width
height+=WLH
}
self.width = max_width + 32
self.height = height + 32
self.x = (Graphics.width - self.width) / 2
self.y = (Graphics.height - self.height) / 2
create_contents
contents_y = 0
message.each_line{|line|
line.gsub!(/(.*)\n/i) {$1}
width = self.contents.text_size(line).width
max_width = width if max_width < width
self.contents.draw_text(0,contents_y,width,WLH,line)
contents_y+=WLH
}
end
end
#==============================================================================
# ■ Scene_Battle
#------------------------------------------------------------------------------
#  バトル画面の処理を行うクラスです。
#==============================================================================
class Scene_Battle < Scene_Base
#--------------------------------------------------------------------------
# ● 開始処理
#--------------------------------------------------------------------------
alias cooking_start start
def start
$game_map.cooking_flag = true
$game_variables[COOKING::Cooking_Actor_Variable] = 0
$game_variables[COOKING::Cooking_Dish_Variable] = 0
cooking_start
end
end
#===============================================================================
# □ Scene_CookingForm
#-------------------------------------------------------------------------------
#  料理画面の処理を行うクラスです。
#===============================================================================
class Scene_CookingForm < Scene_Base
#--------------------------------------------------------------------------
# ○ 定数
#--------------------------------------------------------------------------
CAPTION_OFFSET = 40 # キャプションウィンドウの位置補正
HOST_MENU = 0 # 呼び出し元 : メニュー
HOST_MAP = 1 # 呼び出し元 : マップ
HOST_BATTLE = 2 # 呼び出し元 : 戦闘
#--------------------------------------------------------------------------
# ● オブジェクト初期化
# menu_index : コマンドのカーソル初期位置
# host_scene : 呼び出し元 (0..メニュー 1..マップ 2..戦闘)
#--------------------------------------------------------------------------
def initialize(menu_index = 0, host_scene = HOST_MENU)
@menu_index = menu_index
@host_scene = host_scene
@message = []
end
#--------------------------------------------------------------------------
# ● 開始処理
#--------------------------------------------------------------------------
def start
super
$game_map.cooking_flag = $game_map.cooking_flag == nil ? true : $game_map.cooking_flag
create_menu_background
create_windows
create_confirm_window
set_dish(0)
end
#--------------------------------------------------------------------------
# ○ ウィンドウの作成
#--------------------------------------------------------------------------
def create_windows
@window_dishes_selectable = Window_Dishes_Selectable.new
@window_cooking_actor = Window_Cooking_Actor.new
@window_dishes_help = Window_Dishes_Help.new
@window_dishes_recipe = Window_Dishes_Recipe.new
@menuback_sprite.z = 1000
end
#--------------------------------------------------------------------------
# ○ 確認ウィンドウの作成
#--------------------------------------------------------------------------
def create_confirm_window
@window_message = Window_Message.new
@window_cooking_confirm = Window_Cooking_Confirm.new
@window_cooking_message = Window_Cooking_Message.new
@window_message.active = false
@window_message.visible = false
end
#--------------------------------------------------------------------------
# ● メニュー画面系の背景作成
#--------------------------------------------------------------------------
def create_menu_background
super
@menuback_sprite.z = 20000
end
#--------------------------------------------------------------------------
# ● 終了処理
#--------------------------------------------------------------------------
def terminate
super
dispose_menu_background
@window_dishes_selectable.dispose
@window_cooking_actor.dispose
@window_dishes_help.dispose
@window_dishes_recipe.dispose
@window_message.dispose
@window_cooking_confirm.dispose
@window_cooking_message.dispose
end
#--------------------------------------------------------------------------
# ● 元の画面へ戻る
#--------------------------------------------------------------------------
def return_scene
case @host_scene
when HOST_MENU
$scene = Scene_Menu.new(@menu_index)
when HOST_MAP
$scene = Scene_Map.new
when HOST_BATTLE
$scene = Scene_Battle.new
end
$game_player.refresh
end
#--------------------------------------------------------------------------
# ● 基本更新処理
# main : メインの update メソッドからの呼び出し
#--------------------------------------------------------------------------
def update_basic(main = false)
Graphics.update unless main # ゲーム画面を更新
Input.update unless main # 入力情報を更新
@window_message.update # メッセージウィンドウを更新
end
#--------------------------------------------------------------------------
# ○ フレーム更新
#--------------------------------------------------------------------------
def update
super
update_basic(true)
update_menu_background
update_window
if $game_message.visible
@window_message.visible = true
if @window_cooking_message.active
cooking_message
end
end
unless $game_message.visible
if @window_cooking_message.active
cooking_message
elsif @window_cooking_actor.active
cooking_actor
elsif @window_dishes_selectable.active
dishes_selectable
elsif @window_cooking_confirm.active
cooking_confirm
end
end
end
#--------------------------------------------------------------------------
# ○ ウィンドウ更新
#--------------------------------------------------------------------------
def update_window
@window_dishes_selectable.update
@window_cooking_actor.update
@window_dishes_help.update
@window_dishes_recipe.update
@window_message.update
@window_cooking_confirm.update
@window_cooking_message.update
end
#--------------------------------------------------------------------------
# ○ フレーム更新 (料理選択画面がアクティブの場合)
#--------------------------------------------------------------------------
def dishes_selectable
if Input.repeat?(Input::UP)
Sound.play_cursor
set_dish(@window_dishes_selectable.index)
elsif Input.repeat?(Input::DOWN)
Sound.play_cursor
set_dish(@window_dishes_selectable.index)
elsif Input.trigger?(Input::X)
@window_dishes_recipe.index-=1
@window_dishes_recipe.index = [0,@window_dishes_recipe.index].max
@window_dishes_recipe.update_cursor
elsif Input.trigger?(Input::Y)
@window_dishes_recipe.index+=1
@window_dishes_recipe.index = [@window_dishes_recipe.item_max-1,@window_dishes_recipe.index].min
@window_dishes_recipe.update_cursor
elsif Input.trigger?(Input::B)
Sound.play_cancel
return_scene
elsif Input.trigger?(Input::C)
unless @window_dishes_selectable.cooking_dishes_actors[@window_dishes_selectable.index].size > 0
Sound.play_buzzer
return
end
Sound.play_decision
@window_dishes_selectable.active = false
@window_cooking_actor.active = true
@window_cooking_actor.index = 0
end
end
#--------------------------------------------------------------------------
# ○ 料理をセット
#--------------------------------------------------------------------------
def set_dish(index)
if @window_dishes_selectable.cooking_dishes_actors[index].size > 0
dish = COOKING::DISHES[index]
@window_dishes_help.set_text($data_items[dish].description)
@window_cooking_actor.cooking_index = index
@window_cooking_actor.cooking_member = @window_dishes_selectable.cooking_dishes_actors[index]
dish = COOKING::DISHES[index]
@window_dishes_recipe.dish = dish
@window_dishes_recipe.index = 0
else
@window_dishes_recipe.dish = -1
@window_dishes_help.set_text("Still Can Not Create")
@window_cooking_actor.cooking_index = index
@window_cooking_actor.cooking_member = @window_dishes_selectable.cooking_dishes_actors[index]
end
end
#-----------------------------------------------------------------------------
# ○ フレーム更新 (アクター選択画面がアクティブの場合)
#-----------------------------------------------------------------------------
def cooking_actor
check_actor_add_material(@window_dishes_selectable.index)
if Input.trigger?(Input::UP)
@window_dishes_recipe.index = 0
@window_dishes_recipe.update_cursor
elsif Input.trigger?(Input::DOWN)
@window_dishes_recipe.index = 0
@window_dishes_recipe.update_cursor
elsif Input.trigger?(Input::LEFT)
@window_dishes_recipe.index = 0
@window_dishes_recipe.update_cursor
elsif Input.trigger?(Input::RIGHT)
@window_dishes_recipe.index = 0
@window_dishes_recipe.update_cursor
elsif Input.trigger?(Input::B)
Sound.play_cancel
@window_cooking_actor.active = false
@window_cooking_actor.index = -1
@window_dishes_selectable.active = true
@window_dishes_recipe.actor_add_material = []
@window_dishes_recipe.index = 0
@window_dishes_recipe.update_cursor
elsif Input.trigger?(Input::C)
unless $game_map.cooking_flag
Sound.play_buzzer
@window_cooking_message.set_message(Vocab.no_more_eat)
@window_cooking_message.active = true
@window_cooking_message.z = 3000
@window_cooking_actor.active = false
return
end
if check_has_material
Sound.play_decision
@window_cooking_actor.active = false
@window_cooking_confirm.active = true
@window_cooking_confirm.z = 3000
@window_cooking_confirm.index = 0
else
Sound.play_buzzer
end
elsif Input.trigger?(Input::X)
@window_dishes_recipe.index-=1
@window_dishes_recipe.index = [0,@window_dishes_recipe.index].max
@window_dishes_recipe.update_cursor
elsif Input.trigger?(Input::Y)
@window_dishes_recipe.index+=1
@window_dishes_recipe.index = [@window_dishes_recipe.item_max-1,@window_dishes_recipe.index].min
@window_dishes_recipe.update_cursor
end
end
#-----------------------------------------------------------------------------
# 作る料理の必要な材料数を所持しているか?
#-----------------------------------------------------------------------------
def check_has_material
recipe_list = COOKING::RECIPE[@window_dishes_recipe.dish]
recipe = recipe_list.uniq
recipe.size.times{|i|
material = recipe[i]
case material
when Numeric
has_number = $game_party.item_number($data_items[material])
n = recipe_list.find_all{|item| item == material }.size
return false unless has_number >= n
when Array
has_number = 0
for ingredient in material
has_number+=$game_party.item_number($data_items[ingredient])
end
n = recipe_list.find_all{|item| item == material }.size
return false unless has_number >= n
end
}
return true
end
#--------------------------------------------------------------------------
# ○ フレーム更新 (確認画面がアクティブの場合)
#--------------------------------------------------------------------------
def cooking_confirm
if Input.trigger?(Input::B)
Sound.play_cancel
@window_cooking_confirm.active = false
@window_cooking_confirm.index = -1
@window_cooking_confirm.z = 0
@window_cooking_actor.active = true
elsif Input.trigger?(Input::C)
if @window_cooking_confirm.index == 0
try_cooking(@window_dishes_selectable.index)
$game_map.cooking_flag = false
@window_dishes_recipe.refresh
@window_cooking_actor.refresh
@window_cooking_confirm.active = false
@window_cooking_confirm.index = -1
@window_cooking_confirm.z = 0
@window_cooking_actor.active = true unless @window_cooking_message.active
elsif @window_cooking_confirm.index == 1
Sound.play_cancel
@window_cooking_confirm.active = false
@window_cooking_confirm.index = -1
@window_cooking_confirm.z = 0
@window_cooking_actor.active = true
end
end
end
#-----------------------------------------------------------------------------
# ● 材料を消費して料理をつくる
#-----------------------------------------------------------------------------
def try_cooking(index)
recipe = COOKING::RECIPE[@window_dishes_recipe.dish]
for material in recipe
case material
when Numeric
$game_party.lose_item($data_items[material],1)
when Array
selected = []
for ingredient in material
if $game_party.item_number($data_items[ingredient]) > 0
selected.push(ingredient)
end
end
$game_party.lose_item($data_items[selected[rand(selected.size)]],1)
end
end
actors = @window_dishes_selectable.cooking_dishes_actors[index]
actor = actors[@window_cooking_actor.index]
$game_variables[COOKING::Cooking_Actor_Variable] = actor.id
rute = rand(100)
if COOKING::Success[actor.id].nil?
success_rate = COOKING::Default_Success[actor.cooking_level[index]]
else
success_rates = COOKING::Success[actor.id]
success_rate = success_rates[actor.cooking_level[index]]
end
if COOKING::Now_Cooking
@window_cooking_message.set_message(COOKING::Now_Cooking_Message)
@window_cooking_message.active = true
@window_cooking_message.z = 3000
Sound.now_cooking_play
Graphics.wait(COOKING::Now_Cooking_Wait)
end
if rute <= success_rate
Sound.cooking_success_play
exp = COOKING::SUCCESS_EXP
dish = $data_items[COOKING::DISHES[index]]
result_display(sprintf("%sができました。", dish.name))
dish_hp_recovery_rate = dish.hp_recovery_rate
dish_mp_recovery_rate = dish.mp_recovery_rate
recovery_state = []
add_state = []
for add_material in dish.add_materials
next if add_material.actor_id != actor.id && add_material.actor_id != 0
next if add_material.level > actor.cooking_level[index]
materials = add_material.has_materials
next unless materials.size > 0
$game_party.lose_item($data_items[materials[rand(materials.size)]],1)
dish_hp_recovery_rate += add_material.hp_recovery_rate
dish_mp_recovery_rate += add_material.mp_recovery_rate
recovery_state.concat(add_material.recovery_state)
add_state.concat(add_material.add_state)
end
if COOKING::Success_Message[actor.id].nil?
message = COOKING::Default_Success_Message
else
message = COOKING::Success_Message[actor.id]
end
result_cooking_message(actor, message)
execute_effect(dish, dish_hp_recovery_rate, dish_mp_recovery_rate, recovery_state, add_state)
else
Sound.cooking_failure_play
if COOKING::Failure[actor.id].nil?
failured_cooking = COOKING::Default_Failure
else
failured_cooking = COOKING::Failure[actor.id]
end
selected_dish = failured_cooking[rand(failured_cooking.size)]
dish = $data_items[selected_dish]
result_display(sprintf("%sになってしまった…\n", dish.name))
if COOKING::Failure_Message[actor.id].nil?
message = COOKING::Default_Failure_Message
else
message = COOKING::Failure_Message[actor.id]
end
result_cooking_message( actor, message)
@message.push(dish.description) unless dish.description.empty?
execute_effect(dish, dish.hp_recovery_rate, dish.mp_recovery_rate)
exp = COOKING::FAILURE_EXP
end
$game_variables[COOKING::Cooking_Dish_Variable] = dish.id
maxlv = dish.actor_max_level[actor.id].nil? ? COOKING::Default_Next_EXP.size : dish.actor_max_level[actor.id]
if actor.cooking_level[index] < maxlv
cooking_level = actor.cooking_level[index]
actor_cooking_exp = actor.cooking_next_exp[index]
actor_cooking_exp -= exp
while actor_cooking_exp < 0
cooking_level += 1
if cooking_level >= maxlv
actor_cooking_exp = 0
break
end
if COOKING::Next_EXP[actor.id].nil?
next_exp = COOKING::Default_Next_EXP[cooking_level]
else
actor_next_exp = COOKING::Next_EXP[actor.id]
next_exp = actor_next_exp[cooking_level]
end
actor_cooking_exp = next_exp + actor_cooking_exp
end
actor.cooking_next_exp[index] = actor_cooking_exp
actor.cooking_level[index] = cooking_level
end
end
#-----------------------------------------------------------------------------
# ● 結果表示
#-----------------------------------------------------------------------------
def result_display(message)
@window_cooking_message.set_message(message)
@window_cooking_message.active = true
@window_cooking_message.z = 3000
end
#-----------------------------------------------------------------------------
# ● 料理後のセリフ
#-----------------------------------------------------------------------------
def result_cooking_message( actor, text)
return unless COOKING::MESSAGE_FLAG
$game_message.texts.push(text)
$game_message.face_name= actor.face_name
$game_message.face_index = actor.face_index
@window_message.z = 3000
@window_message.visible = true
@window_message.open
set_message_waiting
end
#-----------------------------------------------------------------------------
# ● 効果の適用
#-----------------------------------------------------------------------------
def execute_effect( dish, hp_recovery_rate = 100, mp_recovery_rate = 100, recovery_state = [], add_state = [])
for member in $game_party.members
dish_hp_recovery = (member.maxhp*hp_recovery_rate/100 + dish.hp_recovery).to_i
dish_mp_recovery = (member.maxmp*mp_recovery_rate/100 + dish.mp_recovery).to_i
recovery_state.concat(dish.minus_state_set)
add_state.concat(dish.plus_state_set)
member.cooking_effect(dish_hp_recovery,dish_mp_recovery,recovery_state,add_state)
next if member.dead?
if COOKING::EFFECT_MESSAGE_FLAG
@message.push(sprintf(Vocab::ActorRecovery,member.name,"HP",dish_hp_recovery.to_s)) if dish_hp_recovery > 0
@message.push(sprintf(Vocab::ActorRecovery,member.name,"MP",dish_mp_recovery.to_s)) if dish_mp_recovery > 0
end
end
if COOKING::EFFECT_MESSAGE_FLAG
return unless @message.size > 0
for text in @message
$game_message.texts.push(text)
end
@window_message.z = 3000
@window_message.visible = true
@window_message.open
set_message_waiting
end
end
#-----------------------------------------------------------------------------
# ● アクター毎のcooknoteのチェック
#-----------------------------------------------------------------------------
def check_actor_add_material(index)
dish = $data_items[COOKING::DISHES[index]]
actors = @window_dishes_selectable.cooking_dishes_actors[index]
actor = actors[@window_cooking_actor.index]
add_materials = dish.add_materials
add_material = []
for ingredient in add_materials
next if actor.id != ingredient.actor_id
next if actor.cooking_level[index] < ingredient.level
add_material << ingredient.materials
end
return if @window_dishes_recipe.actor_add_material == add_material
@window_dishes_recipe.actor_add_material = add_material
end
#--------------------------------------------------------------------------
# ● メッセージ待機中フラグおよびコールバックの設定
#--------------------------------------------------------------------------
def cooking_message
if Input.trigger?(Input::B) || Input.trigger?(Input::C)
@window_cooking_message.z = 0
@window_cooking_message.width = 544
@window_cooking_message.height = 416
if COOKING::MESSAGE_FLAG && $game_message.texts.empty? == false
for text in @message
$game_message.texts.push(text)
end
@window_message.z = 3000
@message = []
@window_message.visible = true
@window_message.open
set_message_waiting
end
@window_cooking_message.active = false
@window_cooking_actor.active = true
end
end
#--------------------------------------------------------------------------
# ● メッセージ表示が終わるまでウェイト
#--------------------------------------------------------------------------
def set_message_waiting
@window_message.update
while $game_message.visible
update_basic
end
end
end

 



Francamente ho sempre adorato il sistema di cucina dei Tales of, e mi sono cercato lo script (lo cercavo per ACE, ma l'ho trovato solo per VX, per cui ho installato VX appositamente per poter vedere come funzionava, creo un nuovo progetto, metto lo script... e... neanche mi compare nel menu di gioco... controllo meglio lo script e vedo che utilizza il sistema di menu KGC Custom Menu Command, cerco lo script, lo trovo, lo installo... e non cambia niente, continuo a non aver nessuna opzioni per la cucina, qualcuno sa dirmi come risolvere questo problema?

No, non ditemi di metterlo sui un progetto nuovo, perché non avendo mai avuto un progetto su VX, lo ho provato UNICAMENTE su progetti nuovi...

"Giochiamo a: schiettezza o grande impresa eroica!"

Personaggio PBF: Lyriel
PN: 12/20
PV: 2/2
PA: 4 (5 col mantello d'acero)
Equipaggiamento:

Spada comune
Pugnale comune
Arco elfico (magico, ignifugo. Permette di colpire da lunghe distanze. Se distrutto si auto-restaura a fine battaglia. Le frecce scoccate con questo arco ottengono l'effetto dell'incantesimo Folata di vento permettendo di spazzare via piccoli oggetti e creature.)
Faretra con 20 frecce
Cappuccio
Armatura delle ombre borchiata (punti armatura 4, ignifuga, di notte +1 a furtività)
2 anelli di valore
Borsa comune (10 slot)

  • Corda
  • Penna e calamaio
  • Libro vuoto
  • Forma di formaggio
  • Mappa
  • Cannocchiale
  • Tagliola di ferro
  • Campanellino di Maia
  • Mantello d'Acero (+1PA): un mantello pesante di colore rossiccio che presenta dei motivi fiochi, dello stesso colore, a forma di foglie d'acero. E' dotato di un ampio cappuccio e può coprire completamente chi lo indossa. Se si resta fermi in un'area boschiva o tra un gruppo di alberi il mantello è in grado di celare completamente la presenza del possessore dando un grado di furtività pari a gr.5. Nel caso di bestie ed animali dalla visuale meno acuta, se il giocatore è già stato notato od ha notificato in qualche modo la sua presenza può gettarsi a terra tra un gruppo di foglie o tra i cespugli per scomparire completamente dalla visuale di tali nemici.

181 monete d'oro
Cintura porta coltelli (6 slot)

  • Coltello da lancio intarsiato
  • Coltello da lancio in metallo
  • Coltello da lancio in metallo

Campanellino di Maia




Se Lyriel, e solo lui, suona tre volte il campanellino può richiamare una creatura magica che combatterà al suo fianco al prezzo di 3 PN.
L'animale ha l'aspetto di un leopardo delle nevi, i suoi occhi sono viola e così gli artigli, i denti e la punta della coda. Questa è lunga e larga, molto folta e corposa. Il manto a differenza dei leopardi è tutto bianco, inoltre ha una folta criniera circolare intorno al collo a mo' di sciarpa e che si unisce con la sommità della fronte creando un cresta non molto alta pettinata all'indietro.
La creatura combatte indipendentemente dal possessore (il giocatore potrà descriverne il comportamento in battaglia e fuori, ma il master potrà riservarsi il diritto di far compiere alla creatura delle azioni per conto proprio).
La creatura non deve per forza stare vicino all'utilizzatore, ma può essere mandata lontano e tornare da lui su comando.
Lyriel e l'animale hanno un contatto mentale e possono comunicare anche a distanza.
Non vi è limite alla permanenza della creatura una volta evocata, però se i suoi PV raggiungono lo zero dovrà essere risvegliata magicamente da un mago od un curatore esperto. Lyriel può richiamare all'interno del campanellino la creatura quando essa non è impegnata in combattimento od in altre prove senza sforzi, ma dovrà spendere di nuovo 3 PN per richiamarla. Può continuare a combattere se Lyriel viene sconfitto.
L'animale vede bene anche di notte e se c'è nebbia.
Caratteristiche della creatura:
PV 2
PA 2
Atletica Gr.4
Furtività Gr.1
Attacco (tipo descritto dal giocatore nei limiti fisici di artigli e morso) di massimo Gr.5 può dichiarare DIRETTO su armature di cuoio o cuoio borchiato e MAGICO con tutti gli attacchi. Può dichiarare SONNO se artigli e denti viola entrano in contatto diretto con il sangue l'avversario. DIRETTO e SONNO sono due effetti, quindi come da regolamento solo uno può essere scelto. MAGICO può esser combinato con entrambi.
Malus: il campanellino deve tintinnare, quindi Lyriel suonandolo tradirà la sua presenza.
Il campanellino tutte le volte che viene suonato fa venire in mente Maia a Lyriel, quindi il giocatore dovrà scrivere una frase di almeno 3 parole per ricordare la bambina, ogni volta diversa, altrimenti l'evocazione non avrà esito.

 


Personaggio PBF: Wren
PN: 20/20
PV:2/2
PA:0


Borsa Comune

  • 3 filoni di pane
  • 4 mele
  • prosciutto
  • formaggio
  • coltello da cucina

 

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Ma che lingua parla?

Dalle note dello script non si capisce un tubo!

Giochi completi

----------------------------------------------------------------------------------------------------------------------------------------

http://i.imgur.com/rha2Trr.png

[sHORT] ELYON 5 --> http://www.rpg2s.net/forum/index.php/topic/19876-short2015full-elyon-5/

 

Progetti in corso

----------------------------------------------------------------------------------------------------------------------------------------

http://i.imgur.com/5KdJ3fW.png

White Crow --> http://www.rpg2s.net/forum/index.php/topic/20845-white-crow/

Link to comment
Share on other sites

  • 0

Credo in effetti sia tradotto con google, qualcosa è rimasta pure giapponese... ^ ^"

(\_/)
(^ ^) <----coniglietto rosso, me!
(> <)


Il mio Tumblr dove seguire i miei progetti, i progetti della Reverie : : Project ^ ^

http://i.imgur.com/KdUDtQt.png disponibile su Google Play, qui i dettagli! ^ ^

http://i.imgur.com/FwnGMI3.png completo! Giocabile online, qui i dettagli! ^ ^

REVERIE : : RENDEZVOUS (In allenamento per apprendere le buone arti prima di cominciarlo per bene ^ ^) Trovate i dettagli qui insieme alla mia intervista (non utilizzerò più rpgmaker) ^ ^

 

SUWOnzB.jpg 🖤
http://www.rpg2s.net/dax_games/r2s_regali2s.png E:3 http://www.rpg2s.net/dax_games/xmas/gifnatale123.gif
http://i.imgur.com/FfvHCGG.png by Testament (notare dettaglio in basso a destra)! E:3
http://i.imgur.com/MpaUphY.jpg by Idriu E:3

Membro Onorario, Ambasciatore dei Coniglietti (Membro n.44)

http://i.imgur.com/PgUqHPm.png
Ufficiale
"Ad opera della sua onestà e del suo completo appoggio alla causa dei Panda, Guardian Of Irael viene ufficialmente considerato un Membro portante del Partito, e Ambasciatore del suo Popolo presso di noi"


http://i.imgur.com/TbRr4iS.png<- Grazie Testament E:3
Ricorda...se rivolgi il tuo sguardo ^ ^ a Guardian anche Guardian volge il suo sguardo ^ ^ a te ^ ^
http://i.imgur.com/u8UJ4Vm.gifby Flame ^ ^
http://i.imgur.com/VbggEKS.gifhttp://i.imgur.com/2tJmjFJ.gifhttp://projectste.altervista.org/Our_Hero_adotta/ado2.png
Grazie Testament XD Fan n°1 ufficiale di PQ! :D

Viva
il Rhaxen! <- Folletto te lo avevo detto (fa pure rima) che non
avevo programmi di grafica per fare un banner su questo pc XD (ora ho di
nuovo il mio PC veramente :D)

Rosso Guardiano della
http://i.imgur.com/Os5rvhx.png

Rpg2s RPG BY FORUM:

Nome: Darth Reveal

 

PV totali 2
PA totali 16

Descrizione: ragazzo dai lunghi capelli rossi ed occhi dello stesso colore. Indossa una elegante giacca rossa sopra ad una maglietta nera. Porta pantaloni rossi larghi, una cintura nera e degli stivali dello stesso colore. E' solito trasportare lo spadone dietro la schiena in un fodero apposito. Ha un pendente al collo e tiene ben legato un pezzo di stoffa (che gli sta particolarmente a cuore) intorno al braccio sinistro sotto la giacca, copre una cicatrice.
Bozze vesti non definitive qui.

Equipaggiamento:
Indossa:
60$ e 59$ divisi in due tasche interne
Levaitan

Spada a due mani elsa lunga

Guanti del Defender (2PA)
Anello del linguaggio animale (diventato del Richiamo)

Scrinieri da lanciere (2 PA)

Elmo del Leone (5 PA)

Corazza del Leone in Ferro Corrazzato (7 PA)

ZAINO (20) contenente:
Portamonete in pelle di cinghiale contenente: 100$
Scatola Sanitaria Sigillata (può contenere e tenere al sicuro fino a 4 oggetti curativi) (contiene Benda di pronto soccorso x3, Pozione di cura)
Corda
Bottiglia di idromele
Forma di formaggio
Torcia (serve ad illuminare, dura tre settori)

Fiasca di ceramica con Giglio Amaro (Dona +1PN e Velocità all'utilizzatore)
Ampolla Bianca

Semi di Balissa

 

CAVALLO NORMALE + SELLA (30 +2 armi) contentente:
66$
Benda di pronto soccorso x3
Spada a due mani

Fagotto per Adara (fazzoletto ricamato)


 

Link to comment
Share on other sites

  • 0

Infatti ho avuto problemi a capirlo... e come risultato non mi funziona ^^;;;

L'ho preso da rpgmakervx.net che però ora è in manutenzione...

"Giochiamo a: schiettezza o grande impresa eroica!"

Personaggio PBF: Lyriel
PN: 12/20
PV: 2/2
PA: 4 (5 col mantello d'acero)
Equipaggiamento:

Spada comune
Pugnale comune
Arco elfico (magico, ignifugo. Permette di colpire da lunghe distanze. Se distrutto si auto-restaura a fine battaglia. Le frecce scoccate con questo arco ottengono l'effetto dell'incantesimo Folata di vento permettendo di spazzare via piccoli oggetti e creature.)
Faretra con 20 frecce
Cappuccio
Armatura delle ombre borchiata (punti armatura 4, ignifuga, di notte +1 a furtività)
2 anelli di valore
Borsa comune (10 slot)

  • Corda
  • Penna e calamaio
  • Libro vuoto
  • Forma di formaggio
  • Mappa
  • Cannocchiale
  • Tagliola di ferro
  • Campanellino di Maia
  • Mantello d'Acero (+1PA): un mantello pesante di colore rossiccio che presenta dei motivi fiochi, dello stesso colore, a forma di foglie d'acero. E' dotato di un ampio cappuccio e può coprire completamente chi lo indossa. Se si resta fermi in un'area boschiva o tra un gruppo di alberi il mantello è in grado di celare completamente la presenza del possessore dando un grado di furtività pari a gr.5. Nel caso di bestie ed animali dalla visuale meno acuta, se il giocatore è già stato notato od ha notificato in qualche modo la sua presenza può gettarsi a terra tra un gruppo di foglie o tra i cespugli per scomparire completamente dalla visuale di tali nemici.

181 monete d'oro
Cintura porta coltelli (6 slot)

  • Coltello da lancio intarsiato
  • Coltello da lancio in metallo
  • Coltello da lancio in metallo

Campanellino di Maia




Se Lyriel, e solo lui, suona tre volte il campanellino può richiamare una creatura magica che combatterà al suo fianco al prezzo di 3 PN.
L'animale ha l'aspetto di un leopardo delle nevi, i suoi occhi sono viola e così gli artigli, i denti e la punta della coda. Questa è lunga e larga, molto folta e corposa. Il manto a differenza dei leopardi è tutto bianco, inoltre ha una folta criniera circolare intorno al collo a mo' di sciarpa e che si unisce con la sommità della fronte creando un cresta non molto alta pettinata all'indietro.
La creatura combatte indipendentemente dal possessore (il giocatore potrà descriverne il comportamento in battaglia e fuori, ma il master potrà riservarsi il diritto di far compiere alla creatura delle azioni per conto proprio).
La creatura non deve per forza stare vicino all'utilizzatore, ma può essere mandata lontano e tornare da lui su comando.
Lyriel e l'animale hanno un contatto mentale e possono comunicare anche a distanza.
Non vi è limite alla permanenza della creatura una volta evocata, però se i suoi PV raggiungono lo zero dovrà essere risvegliata magicamente da un mago od un curatore esperto. Lyriel può richiamare all'interno del campanellino la creatura quando essa non è impegnata in combattimento od in altre prove senza sforzi, ma dovrà spendere di nuovo 3 PN per richiamarla. Può continuare a combattere se Lyriel viene sconfitto.
L'animale vede bene anche di notte e se c'è nebbia.
Caratteristiche della creatura:
PV 2
PA 2
Atletica Gr.4
Furtività Gr.1
Attacco (tipo descritto dal giocatore nei limiti fisici di artigli e morso) di massimo Gr.5 può dichiarare DIRETTO su armature di cuoio o cuoio borchiato e MAGICO con tutti gli attacchi. Può dichiarare SONNO se artigli e denti viola entrano in contatto diretto con il sangue l'avversario. DIRETTO e SONNO sono due effetti, quindi come da regolamento solo uno può essere scelto. MAGICO può esser combinato con entrambi.
Malus: il campanellino deve tintinnare, quindi Lyriel suonandolo tradirà la sua presenza.
Il campanellino tutte le volte che viene suonato fa venire in mente Maia a Lyriel, quindi il giocatore dovrà scrivere una frase di almeno 3 parole per ricordare la bambina, ogni volta diversa, altrimenti l'evocazione non avrà esito.

 


Personaggio PBF: Wren
PN: 20/20
PV:2/2
PA:0


Borsa Comune

  • 3 filoni di pane
  • 4 mele
  • prosciutto
  • formaggio
  • coltello da cucina

 

Link to comment
Share on other sites

  • 0

Grazie al webcache di Google sono riuscito a recuperare il post, è qui http://webcache.googleusercontent.com/search?q=cache:http://www.rpgmakervx.net/index.php?showtopic=36773

Solo che... ovviamewnte è una cache web, non posso mandare loro domande...

Edited by Kenshin

"Giochiamo a: schiettezza o grande impresa eroica!"

Personaggio PBF: Lyriel
PN: 12/20
PV: 2/2
PA: 4 (5 col mantello d'acero)
Equipaggiamento:

Spada comune
Pugnale comune
Arco elfico (magico, ignifugo. Permette di colpire da lunghe distanze. Se distrutto si auto-restaura a fine battaglia. Le frecce scoccate con questo arco ottengono l'effetto dell'incantesimo Folata di vento permettendo di spazzare via piccoli oggetti e creature.)
Faretra con 20 frecce
Cappuccio
Armatura delle ombre borchiata (punti armatura 4, ignifuga, di notte +1 a furtività)
2 anelli di valore
Borsa comune (10 slot)

  • Corda
  • Penna e calamaio
  • Libro vuoto
  • Forma di formaggio
  • Mappa
  • Cannocchiale
  • Tagliola di ferro
  • Campanellino di Maia
  • Mantello d'Acero (+1PA): un mantello pesante di colore rossiccio che presenta dei motivi fiochi, dello stesso colore, a forma di foglie d'acero. E' dotato di un ampio cappuccio e può coprire completamente chi lo indossa. Se si resta fermi in un'area boschiva o tra un gruppo di alberi il mantello è in grado di celare completamente la presenza del possessore dando un grado di furtività pari a gr.5. Nel caso di bestie ed animali dalla visuale meno acuta, se il giocatore è già stato notato od ha notificato in qualche modo la sua presenza può gettarsi a terra tra un gruppo di foglie o tra i cespugli per scomparire completamente dalla visuale di tali nemici.

181 monete d'oro
Cintura porta coltelli (6 slot)

  • Coltello da lancio intarsiato
  • Coltello da lancio in metallo
  • Coltello da lancio in metallo

Campanellino di Maia




Se Lyriel, e solo lui, suona tre volte il campanellino può richiamare una creatura magica che combatterà al suo fianco al prezzo di 3 PN.
L'animale ha l'aspetto di un leopardo delle nevi, i suoi occhi sono viola e così gli artigli, i denti e la punta della coda. Questa è lunga e larga, molto folta e corposa. Il manto a differenza dei leopardi è tutto bianco, inoltre ha una folta criniera circolare intorno al collo a mo' di sciarpa e che si unisce con la sommità della fronte creando un cresta non molto alta pettinata all'indietro.
La creatura combatte indipendentemente dal possessore (il giocatore potrà descriverne il comportamento in battaglia e fuori, ma il master potrà riservarsi il diritto di far compiere alla creatura delle azioni per conto proprio).
La creatura non deve per forza stare vicino all'utilizzatore, ma può essere mandata lontano e tornare da lui su comando.
Lyriel e l'animale hanno un contatto mentale e possono comunicare anche a distanza.
Non vi è limite alla permanenza della creatura una volta evocata, però se i suoi PV raggiungono lo zero dovrà essere risvegliata magicamente da un mago od un curatore esperto. Lyriel può richiamare all'interno del campanellino la creatura quando essa non è impegnata in combattimento od in altre prove senza sforzi, ma dovrà spendere di nuovo 3 PN per richiamarla. Può continuare a combattere se Lyriel viene sconfitto.
L'animale vede bene anche di notte e se c'è nebbia.
Caratteristiche della creatura:
PV 2
PA 2
Atletica Gr.4
Furtività Gr.1
Attacco (tipo descritto dal giocatore nei limiti fisici di artigli e morso) di massimo Gr.5 può dichiarare DIRETTO su armature di cuoio o cuoio borchiato e MAGICO con tutti gli attacchi. Può dichiarare SONNO se artigli e denti viola entrano in contatto diretto con il sangue l'avversario. DIRETTO e SONNO sono due effetti, quindi come da regolamento solo uno può essere scelto. MAGICO può esser combinato con entrambi.
Malus: il campanellino deve tintinnare, quindi Lyriel suonandolo tradirà la sua presenza.
Il campanellino tutte le volte che viene suonato fa venire in mente Maia a Lyriel, quindi il giocatore dovrà scrivere una frase di almeno 3 parole per ricordare la bambina, ogni volta diversa, altrimenti l'evocazione non avrà esito.

 


Personaggio PBF: Wren
PN: 20/20
PV:2/2
PA:0


Borsa Comune

  • 3 filoni di pane
  • 4 mele
  • prosciutto
  • formaggio
  • coltello da cucina

 

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...