Ogłoszenie 

Uwaga! To forum jest w trybie offline.
Wszelką pomoc uzyskasz pod adresem
forum.ultimateam.pl


Administracja Forum


Poprzedni temat «» Następny temat
Zamknięty przez: CrasheR
Pią 08 Kwi, 2011 21:22
skill shop "ważne"
Autor Wiadomość
CrasheR 




Pomógł: 123 razy
Dołączył: 20 Gru 2010
Posty: 609
Skąd: Nibelheim
  Wysłany: Wto 29 Mar, 2011 10:45
skill shop "ważne"
Znacie jakiś skill shop???

kiedy dodaję ten
Spoiler:

#==============================================================================
# Skill Shop for RMVX Ver 3.5
#==============================================================================
# By Nechigawara Sanzenin
# WARNING!! : This script can use on RPG Maker VX Only!! (XP Not Support)
#==============================================================================
# Buy Skill Option For RMVX
#==============================================================================
#Version Log
#==============================================================================
#2.0 Add Level requirement - Change Hero Select Window
#3.0 Change How to set Price , Add wait Level Up option
#3.5 Updated to match SEL SCENE Styles & offer skills based on class not actor
#==============================================================================
=begin

How to Use:

You will add "$skill_shop =[Id of Skill]"
To Call Script to set id of skill for sell.
You will add "$scene = Scene_Skill_Shop.new"
To Call Skill Shop Windows.

Example:
$skill_shop = [1,2,3,6,7]
$scene = Scene_Skill_Shop.new

You can turn on/off option under "# Setting".
You can set text to use in Skill Shop under "# Learn Text".
You can add "\p[Price]" for set Skill Price at Note in Skill Database.
You can set Skill that the fighter each person can learn under "# Hero Data".

You will setting look like this in Hero Data
[ID of skill, Level requirement for learn]

Example : if you want actor id 1 can learn skill id 1 at Lv 4
and can learn skill id 2 at lv 3. You will setting look like this

1 => [ #Id of Actor

[1,4],[2,3],

],

=end

module Cache
def self.menu(filename)
load_bitmap("Graphics/Menus/", filename)
end
end
#==============================================================================
#module SKILL_SHOP
#==============================================================================
module SKILL_SHOP
# Setting
Wait_Lv_Up = false # Wait 1 Lv up for use skill from buy
Show_cha = true # Show Charactor Graphic in Select Window
# Learn Text
How_Learn = "Who can learn?"
Can_Learn = "Can Learn"
Can_Learn_Lv = "On Lv"
Cant_Learn = "Can't Learn"
Learnt = "Learnt"
Teach = "Teach"
Cancel = "Cancel"
Next_Lv = "Next Lvl"
Can_use = "%s can use now!"
# Price Data For Non Set
PRICE = 100
# Hero Data
SKILL_BUY = {
# Add what skill can hero buy Here
# Class ID => [ID of skill,Level]
1 => [[33,1],[2,3],[3,1],],
2 => [[1,4],[2,3],[3,1],],
3 => [[5,1],[2,3],[3,1],],
}
# Add Price
def self.skill_price(id)
text = $data_skills[id].note
if (/\A\\[Pp]\[([0-9]+)\]/.match(text)) != nil then
price = $1.to_i
else
price = PRICE
end
return price
end
# Add Hero id
def self.skill_buy(id)
if SKILL_BUY.include?(id)
return SKILL_BUY[id]
else
return []
end
end
end
#==============================================================================
#class Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
def setup(actor_id)
actor = $data_actors[actor_id]
@actor_id = actor_id
@name = actor.name
@character_name = actor.character_name
@character_index = actor.character_index
@face_name = actor.face_name
@face_index = actor.face_index
@class_id = actor.class_id
@weapon_id = actor.weapon_id
@armor1_id = actor.armor1_id
@armor2_id = actor.armor2_id
@armor3_id = actor.armor3_id
@armor4_id = actor.armor4_id
@level = actor.initial_level
@exp_list = Array.new(101)
make_exp_list
@exp = @exp_list[@level]
@skills = []
@le_skills = []
@le = []
for i in self.class.learnings
learn_skill(i.skill_id) if i.level <= @level
end
clear_extra_values
recover_all
end
#--------------------------------------------------------------------------
def le_skills
result = []
for i in @le_skills
result.push($data_skills[i])
end
return result
end
#--------------------------------------------------------------------------
def learn_le_skill(skill_id)
unless skill_learn?($data_skills[skill_id])
@le_skills.push(skill_id)
@le_skills.sort!
end
end
#--------------------------------------------------------------------------
def forget_skill(skill_id)
@skills.delete(skill_id)
@le_skills.delete(skill_id)
end
#--------------------------------------------------------------------------
def skill_learn?(skill)
if @skills.include?(skill.id)
return true
elsif @le_skills.include?(skill.id)
return true
else
return false
end
end
#--------------------------------------------------------------------------
def le_learn_skill(skill_id)
unless @skills.include?(skill_id)
@skills.push(skill_id)
@skills.sort!
end
end
#--------------------------------------------------------------------------
def skill_can_use?(skill)
return false if @le_skills.include?(skill.id)
return false unless skill_learn?(skill)
return super
end
#--------------------------------------------------------------------------
def learn?(skill)
learn = skill_learn?(skill)
if learn == true
return false
else
return true
end
end
#--------------------------------------------------------------------------
def le_skill?(skill)
return @le_skills.include?(skill.id)
end
#--------------------------------------------------------------------------
def display_level_up(new_skills)
$game_message.new_page
text = sprintf(Vocab::LevelUp, @name, Vocab::level, @level)
$game_message.texts.push(text)
for skill in new_skills
unless @le.include?(skill.id)
text = sprintf(Vocab::ObtainSkill, skill.name)
$game_message.texts.push(text)
end
end
for i in 0...@le.size
id = @le[i]
name = $data_skills[id].name
text = sprintf(SKILL_SHOP::Can_use, name)
$game_message.texts.push(text)
end
@le = []
end
#--------------------------------------------------------------------------
alias inc_level_up level_up
def level_up
inc_level_up
@le = []
for i in 0...@le_skills.size
id = @le_skills[i]
le_learn_skill(id)
@le.push(id)
end
@le_skills = []
end
end
#==============================================================================
#class Window_Skill_ShopBuy
#==============================================================================
class Window_Skill < Window_Selectable
#--------------------------------------------------------------------------
def refresh
@data = []
for skill in @actor.skills
@data.push(skill)
if skill.id == @actor.last_skill_id
self.index = @data.size - 1
end
end
for skill in @actor.le_skills
@data.push(skill)
end
@item_max = @data.size
create_contents
for i in 0...@item_max
draw_item(i)
end
end
#--------------------------------------------------------------------------
def draw_item(index)
rect = item_rect(index)
self.contents.clear_rect(rect)
skill = @data[index]
if skill != nil
rect.width -= 4
enabled = @actor.skill_can_use?(skill)
draw_item_name(skill, rect.x, rect.y, enabled)
if @actor.le_skill?(skill)
text = SKILL_SHOP::Next_Lv
else
text = @actor.calc_mp_cost(skill)
end
self.contents.draw_text(rect, text, 2)
end
end
end
#==============================================================================
#class Window_Skill_ShopBuy
#==============================================================================
class Window_Skill_ShopBuy < Window_Selectable
#--------------------------------------------------------------------------
def initialize(x, y)
super(x, y, 250, 225)
@skill_shop_goods = $skill_shop
refresh
self.index = 0
end
#--------------------------------------------------------------------------
def skill
return @data[self.index]
end
#--------------------------------------------------------------------------
def refresh
@data = []
for i in 0...@skill_shop_goods.size
skill = $data_skills[@skill_shop_goods[i]]
if skill != nil
@data.push(skill)
end
end
@item_max = @data.size
create_contents
for i in 0...@item_max
draw_item(i)
end
end
#--------------------------------------------------------------------------
def draw_item(index)
skill = @data[index]
price = SKILL_SHOP.skill_price(skill.id)
enabled = (price <= $game_party.gold)
rect = item_rect(index)
self.contents.clear_rect(rect)
draw_item_name(skill, rect.x, rect.y, enabled)
rect.width -= 4
self.contents.draw_text(rect, price, 2)
end
#--------------------------------------------------------------------------
def update_help
@help_window.set_text(skill == nil ? "" : skill.description)
end
end
#==============================================================================
#class Window_Skill_ShopStatus
#==============================================================================
class Window_Skill_ShopStatus < Window_Selectable
#--------------------------------------------------------------------------
def initialize(x, y)
super(x, y, 270, 240)
@item = nil
refresh
self.active = false
self.index = -1
end
#--------------------------------------------------------------------------
def refresh
self.contents.clear
@item_max = $game_party.members.size
if @item != nil
self.contents.font.color = system_color
self.contents.draw_text(4, 0, 200, WLH, SKILL_SHOP::How_Learn)
for actor in $game_party.members
x = 4
y = WLH * (1 + actor.index * 2)
draw_actor_can_learn(actor, x, y)
end
end
end
#--------------------------------------------------------------------------
def draw_actor_can_learn(actor, x, y)
can = false
lv = false
ac_lv = 0
can_learn = SKILL_SHOP.skill_buy(actor.class_id)
id = @item.id
for i in 0...can_learn.size
if can_learn[i][0] == id
can = true
if can_learn[i][1] <= actor.level
lv = true
else
lv = false
ac_lv = can_learn[i][1]
end
break
else
can = false
end
end
enabled = (can and lv and actor.learn?(@item))
self.contents.font.color = normal_color
self.contents.font.color.alpha = enabled ? 255 : 128
if SKILL_SHOP::Show_cha
name = actor.character_name
index = actor.character_index
size = contents.text_size(actor.name).width
draw_character(name, index, x + 20 + size , y + 30)
end
self.contents.draw_text(x, y, 200, WLH, actor.name)
if can == false
text = SKILL_SHOP::Cant_Learn
elsif can == true and lv == false
ac = ac_lv.to_s
text = SKILL_SHOP::Can_Learn_Lv + " " + ac + "+"
elsif actor.learn?(@item) == false
text = SKILL_SHOP::Learnt
else
text = SKILL_SHOP::Can_Learn
end
self.contents.draw_text(x, y, 200, WLH, text, 2)
end
#--------------------------------------------------------------------------
def item=(item)
if @item != item
@item = item
refresh
end
end
#--------------------------------------------------------------------------
def update_cursor
if @index < 0
self.cursor_rect.empty
elsif @index < @item_max
y = WLH * (2 + @index * 2)
unless SKILL_SHOP::Show_cha
self.cursor_rect.set(0, y , contents.width, WLH)
else
self.cursor_rect.set(0, y - 4, contents.width,34)
end
end
end
end
#==============================================================================
#class Scene_Skill_Shop
#==============================================================================
class Scene_Skill_Shop < Scene_Base
#--------------------------------------------------------------------------
def start
super
@msk_back1 = Plane.new
@msk_back1.bitmap = Cache.menu("Background")
@msk_lay = Sprite.new
@msk_lay.bitmap = Cache.menu("Shop_lay")
@viewport = Viewport.new(0, 0, 544, 416)

@gold_window = Window_Gold.new(384, -5)
@dummy_window = Window_Base.new(0, 112, 544, 304)
@buy_window = Window_Skill_ShopBuy.new(-10, 140)
@buy_window.active = true
@buy_window.visible = true
@buy_window.help_window = @help_window
@status_window = Window_Skill_ShopStatus.new(275, 128)
@status_window.visible = true
@status_window.active = false
@status_window.opacity = 0
@buy_window.opacity = 0
@gold_window.opacity = 0
@dummy_window.opacity = 0
end
#--------------------------------------------------------------------------
def terminate
super
@gold_window.dispose
@dummy_window.dispose
@buy_window.dispose
@status_window.dispose
end
#--------------------------------------------------------------------------
def update
super
@msk_back1.ox += 1
@gold_window.update
@dummy_window.update
@buy_window.update
@status_window.update
if @buy_window.active
update_buy_selection
elsif @status_window.active
update_target_selection
end
if Input.trigger?(Input::B)
Sound.play_cancel
$scene = Scene_Map.new
end
end
#--------------------------------------------------------------------------
def update_buy_selection
@status_window.item = @buy_window.skill
if Input.trigger?(Input::B)
Sound.play_cancel
@dummy_window.visible = true
@buy_window.active = false
@buy_window.visible = false
@status_window.visible = false
@status_window.item = nil
return
end
if Input.trigger?(Input::C)
@item = @buy_window.skill
@price = SKILL_SHOP.skill_price(@item.id)
enabled = (@price <= $game_party.gold)
if not enabled
Sound.play_buzzer
else
Sound.play_decision
show_target_window
end
end
end
#--------------------------------------------------------------------------
def update_target_selection
if Input.trigger?(Input::B)
Sound.play_cancel
hide_target_window
elsif Input.trigger?(Input::C)
@actor = $game_party.members[@status_window.index]
can = false
lv = false
can_learn = SKILL_SHOP.skill_buy(@actor.id)
id = @item.id
for i in 0...can_learn.size
if can_learn[i][0] == id
can = true
if can_learn[i][1] <= @actor.level
lv = true
else
lv = false
end
break
else
can = false
end
end
enabled = (can and lv and @actor.learn?(@item))
if not enabled
Sound.play_buzzer
else
learn_target(@item.id)
end
end
end
#--------------------------------------------------------------------------
def learn_target(skill_id)
Sound.play_shop
unless SKILL_SHOP::Wait_Lv_Up
@actor.learn_skill(skill_id)
else
@actor.learn_le_skill(skill_id)
end
$game_party.lose_gold(@price)
@buy_window.refresh
@gold_window.refresh
@status_window.refresh
hide_target_window
end
#--------------------------------------------------------------------------
def show_target_window
@buy_window.active = false
@status_window.active = true
@status_window.index = 0
end
#--------------------------------------------------------------------------
def hide_target_window
@buy_window.active = true
@status_window.active = false
@status_window.index =- 1
end
end



Nie działa mi Job change :P
________________________



 
 
 
Ayene 




Ranga RM:
4 gry

Pomogła: 232 razy
Dołączyła: 18 Wrz 2007
Posty: 2424
Wysłany: Pią 08 Kwi, 2011 21:12
Skrypt, który wrzuciłeś powyżej nadpisuje większość klas/definicji. Próbowałeś umieścić go nad skryptem 'Job change'?
________________________


 
 
 
CrasheR 




Pomógł: 123 razy
Dołączył: 20 Gru 2010
Posty: 609
Skąd: Nibelheim
Wysłany: Pią 08 Kwi, 2011 21:22
Działa :-P Dzięki.
________________________



 
 
 
Wyświetl posty z ostatnich:   
Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group | Template Klam by Ayene