Aesen - Pią 17 Cze, 2011 15:34 Temat postu: Item nameWitam zaprezentuje dziś wam skrypt Item name.
Skrypt jest prosty nie potrzeba żadnych dodatkowych grafik.
Skrypt ten po zdobyciu itemka na mapie wywołuje okno w lewym dolnym rogu z nazwą i wyglądem tego co zdobyliśmy.
Oto skrypt:
Spoiler:
Kod:
#==============================================================================
# Item Name
#==============================================================================
class Window_Reward < Window_Base
def initialize(item, type)
super(0, 416 - (WLH + 32), 224, WLH + 32)
@item = item
@type = type
refresh
end
def refresh
self.contents.clear
case @type
when "item"
draw_item_name(@item, 0, 0)
when "weapon"
draw_item_name(@item, 0, 0)
when "armor"
draw_item_name(@item, 0, 0)
when "skill"
draw_item_name(@item, 0, 0)
when "gold"
draw_currency_value(@item, 0, 0, 172)
end
end
end
#------------------------------------------------------------------------------
class Game_Party < Game_Unit
alias vlad_gain_item gain_item
alias vlad_gain_gold gain_gold
def gain_item(item, n, include_equip = false)
vlad_gain_item(item, n, include_equip = false)
number = item_number(item)
case item
when RPG::Item
Sound.play_decision
$item_name = item; $item_type = "item"; $wait_count = 120
when RPG::Weapon
Sound.play_decision
$item_name = item; $item_type = "weapon"; $wait_count = 120
when RPG::Armor
Sound.play_decision
$item_name = item; $item_type = "armor"; $wait_count = 120
end
n += number
end
def gain_gold(n)
vlad_gain_gold(n)
Sound.play_decision
$item_name = n; $item_type = "gold"; $wait_count = 120
end
def lose_item(item, n, include_equip = false)
lose_item2(item, -n, include_equip)
end
def lose_item2(item, n, include_equip = false)
number = item_number(item)
case item
when RPG::Item
@items[item.id] = [[number + n, 0].max, 99].min
when RPG::Weapon
@weapons[item.id] = [[number + n, 0].max, 99].min
when RPG::Armor
@armors[item.id] = [[number + n, 0].max, 99].min
end
n += number
if include_equip and n < 0
for actor in members
while n < 0 and actor.equips.include?(item)
actor.discard_equip(item)
n += 1
end
end
end
end
end
#------------------------------------------------------------------------------
class Game_Actor < Game_Battler
alias vlad_learn_skill learn_skill
def learn_skill(skill_id)
vlad_learn_skill(skill_id)
Sound.play_decision
$item_name = $data_skills[skill_id]; $item_type = "skill"; $wait_count = 120
end
end
#------------------------------------------------------------------------------
class Scene_Map < Scene_Base
alias scene_map_start start
alias scene_map_update update
alias scene_map_terminate terminate
def start
scene_map_start
$item_name = 0
$item_type = nil
$wait_count = 0
@item_name = Window_Reward.new($item_name, $item_type)
@item_name.active = false
@item_name.visible = false
end
def update
scene_map_update
if $item_name != 0 and $item_type != nil and $wait_count > 0
$wait_count -= 1
@item_name.dispose
@item_name = Window_Reward.new($item_name, $item_type)
@item_name.active = true
@item_name.visible = true
else
$item_name = 0
$item_type = nil
@item_name.active = false
@item_name.visible = false
end
end
def terminate
scene_map_terminate
@item_name.dispose
end
end
[/center]
link do Dema:
http://www.sendspace.pl/f...b473d88daa80663Ayene - Pią 28 Paź, 2011 11:12 Link wygasł. Czy ktoś ma demko i może je nam podrzucić? Z góry dzięki Vrona - Pią 28 Paź, 2011 15:55 To już było.Wiem,bo sam wrzucałem.marcin - Sob 29 Paź, 2011 09:56 Dzięki przyda się do gry:)Tjef - Pon 31 Paź, 2011 11:32 Hmmm mam prośbę.. Czy np, kiedy dostajemy dany przedmiot, można do niego dodać dźwięk jaki występuje w http://www.ultimateam.pl/...7b9b4743c#64188 ?
Ten skrypt byłby idealny dla mnie z tym dźwiękiem ;P a sam nie wiem za bardzo jak je połączyć..tracersgta - Pon 31 Paź, 2011 12:15 A nie lepiej użyć tamtego skryptu?Tjef - Pon 31 Paź, 2011 14:15 Nie podoba mi się tamto okienko :P Za małe jest i często nie mieści się nazwa, i zamieszanie jest z ikonką złota.tracersgta - Pon 31 Paź, 2011 15:02 Wiem o co ci chodzi... O to poprawiony skrypt :
Spoiler:
Kod:
#=====================================================
# Chest Item Pop-Up
#=========================================================
# Autor : OriginalWij
# wersja : 3.0
# "pół" tłumaczenie : bionicl
# Dla: : www.ultimateam.pl
#=========================================================
#
# Automatyczny "popup mode"
# (true = Zawsze "popup" wyskakuje ,false = "popup" nigdy nie wyskakuje)
AUTO_POPUP = true
# Switch do włączania/wyłączenia "popup"
# (aktywuje jeżeli AUTO_POPUP = false) (dezaktywuje jeżeli AUTO_POPUP = true)
POPUP_SWITCH = 10
# ikona złota (bo zawsze jest taka sama)
GOLD_ICON = 205
# grupowanie przedmiotów. true = np. dostałeś 4 takie same zbroje pokazuje:
# dostałeś zbroje, dostałeś zbroje, dostałeś zbroje, dostałeś zbroje
# false = dostałeś 4 zbroje
ONLY_SHOW_ONE = true
# Pokazuje wyniki walki. pokazuje "popup" po walce, gdy coś dostałeś
BATTLE_POP = true
# co pisze (tylko gdy BATTLE_POP = true ) jako "wyniki bitwy.
# np. po walce gdy wygrałeś 5 zł: "xxx 5 zł" ( xxx to właśnie ta nazwa)
BATTLE_REWARD = 'Nagroda po walce: '
# Zagrać dzwięk gdy jest "popup"?
PLAY_P_SND = true
#############################################################
# 3 opcje odnośnie dźwięku (Tylko jeżeli PLAY_P_SND = true) #
#############################################################
# po kolei: jaki dźwięk, głośność (0-100), nastrój (0-300)
P_SND = 'Audio/SE/Chime2'
P_SND_V = 100
P_SND_P = 150 # (standardowo)
class Game_System
#--------------------------------------------------------------------------
# Public Instance Variables (Added)
#--------------------------------------------------------------------------
attr_accessor :battle_pop # holds items to popup after battle
attr_accessor :battle_pop_gold # holds gold to popup after battle
#--------------------------------------------------------------------------
# Initialize (Mod)
#--------------------------------------------------------------------------
alias chest_pop_gs_initialize initialize unless $@
def initialize
chest_pop_gs_initialize
@battle_pop = nil
@battle_pop_gold = 0
end
#--------------------------------------------------------------------------
# Get Battle Pop (New)
#--------------------------------------------------------------------------
def battle_pop
return @battle_pop
end
#--------------------------------------------------------------------------
# Set Battle Pop (New)
#--------------------------------------------------------------------------
def battle_pop=(items)
@battle_pop = items
end
#--------------------------------------------------------------------------
# Get Battle Pop Gold (New)
#--------------------------------------------------------------------------
def battle_pop_gold
return @battle_pop_gold
end
#--------------------------------------------------------------------------
# Set Battle Pop Gold (New)
#--------------------------------------------------------------------------
def battle_pop_gold=(gold)
@battle_pop_gold = gold
end
end
class Scene_Battle < Scene_Base
#--------------------------------------------------------------------------
# Display Gained Experience and Gold (Rewrite)
#--------------------------------------------------------------------------
def display_exp_and_gold
# Save gold to popup after battle
$game_system.battle_pop_gold = $game_troop.gold_total if BATTLE_POP # added
exp = $game_troop.exp_total
gold = BATTLE_POP ? 0 : $game_troop.gold_total # changed
$game_party.gain_gold(gold) unless BATTLE_POP # changed
text = sprintf(Vocab::Victory, $game_party.name)
$game_message.texts.push('\|' + text)
if exp > 0
text = sprintf(Vocab::ObtainExp, exp)
$game_message.texts.push('\.' + text)
end
if gold > 0
text = sprintf(Vocab::ObtainGold, gold, Vocab::gold)
$game_message.texts.push('\.' + text)
end
wait_for_message
end
#--------------------------------------------------------------------------
# Display Gained Drop Items (Mod)
#--------------------------------------------------------------------------
alias chest_pop_display_drop_items display_drop_items unless $@
def display_drop_items
# Save items to popup after battle
$game_system.battle_pop = $game_troop.make_drop_items if BATTLE_POP
return if BATTLE_POP
chest_pop_display_drop_items
end
end
class Chest_Popup < Scene_Base
#--------------------------------------------------------------------------
# Initialize
#--------------------------------------------------------------------------
def initialize(type, amount, index, add = false, x = nil, y = nil)
x = $game_player.screen_x if x == nil
y = $game_player.screen_y if y == nil
$game_switches[POPUP_SWITCH] = !AUTO_POPUP
$scene.disable_blur = true
@x, @y, @amount = x, y, amount
@gold = @no_desc = false
case type
when 0 # Gold
$game_party.gain_gold(amount) if add
@icon = GOLD_ICON
@desc_amount = ''
@desc = @amount.to_s
@amount = 1
@gold = true
when 1 # Items
$game_party.gain_item($data_items[index], amount) if add
@icon = $data_items[index].icon_index
@desc_amount = @amount.to_s + ' x'
@desc_amount = '' if @amount == 1
@no_desc = true if @amount == 1
@desc = $data_items[index].name
@amount = 1 if ONLY_SHOW_ONE
when 2 # Weapons
$game_party.gain_item($data_weapons[index], amount) if add
@icon = $data_weapons[index].icon_index
@desc_amount = @amount.to_s + ' x'
@desc_amount = '' if @amount == 1
@no_desc = true if @amount == 1
@desc = $data_weapons[index].name
@amount = 1 if ONLY_SHOW_ONE
when 3 # Armors
$game_party.gain_item($data_armors[index], amount) if add
@icon = $data_armors[index].icon_index
@desc_amount = @amount.to_s + ' x'
@desc_amount = '' if @amount == 1
@no_desc = true if @amount == 1
@desc = $data_armors[index].name
@amount = 1 if ONLY_SHOW_ONE
end
# Set index
@index = @desc_amount
# Add description to text
if @gold
@desc = @desc + ' '
else
if SHOW_POPUP_TEXT_ICON
@desc = @desc_amount + ' ' + @desc
else
@desc = @desc_amount + ' ' + @desc if @desc_amount != ''
end
end
# If battle reward
item_check = $game_system.battle_pop
gold_check = $game_system.battle_pop_gold
if BATTLE_POP and (item_check != nil or gold_check > 0)
@desc = BATTLE_REWARD + @desc
end
end
#--------------------------------------------------------------------------
# Start
#--------------------------------------------------------------------------
def start
create_background
# Create pop-up window
@popup_window = Item_Popup_Window.new(@x, @y)
end
#--------------------------------------------------------------------------
# Terminate
#--------------------------------------------------------------------------
def terminate
# Dispose windows
@popup_window.dispose
@menuback_sprite.dispose
@name_window.dispose if SHOW_POPUP_TEXT
end
#--------------------------------------------------------------------------
# Return Scene
#--------------------------------------------------------------------------
def return_scene
# Turn off blur and pop-up switch
$scene.disable_blur = false
$game_switches[POPUP_SWITCH] = false
$scene = Scene_Map.new
end
#--------------------------------------------------------------------------
# Update
#--------------------------------------------------------------------------
def update
super
# Update pop-up window
@popup_window.update
@menuback_sprite.update
# Do the actual popping-up
do_popup
end
#--------------------------------------------------------------------------
# Update Basic
#--------------------------------------------------------------------------
def update_basic
Graphics.update
Input.update
end
#--------------------------------------------------------------------------
# Wait
#--------------------------------------------------------------------------
def wait(duration)
# Wait for DURATION frames
for i in 0..duration
update_basic
end
end
#--------------------------------------------------------------------------
# Wait for close
#--------------------------------------------------------------------------
def wait_for_close
count = 0
loop do
update_basic
count += 1
# Close if button 1 pressed
break if Input.trigger?(BUTTON_TO_WAIT_FOR1) and WAIT_FOR_BUTTON
# Close if button 2 pressed
break if Input.trigger?(BUTTON_TO_WAIT_FOR2) and WAIT_FOR_BUTTON
# Close if time elapsed
break if count >= WAIT_FOR_TIME and !WAIT_FOR_BUTTON
end
end
#--------------------------------------------------------------------------
# Create Background
#--------------------------------------------------------------------------
def create_background
# Create modified background
@menuback_sprite = Sprite.new
@menuback_sprite.bitmap = $game_temp.background_bitmap
@menuback_sprite.update
end
#--------------------------------------------------------------------------
# Show Name
#--------------------------------------------------------------------------
def show_name
x = 272
y = TEXT_WINDOW_Y
py = $game_player.screen_y - 32
cy = (py - y).abs
# Offset Y if text box is above player's position
if cy < 128 and TEXT_WINDOW_MOVE
y = py < y ? y + (y / 2) : y - (y / 2)
end
# Create Window
@name_window = Name_Window.new(x, y, @desc, @no_desc, @index, @gold, @icon)
# Wait for button(s) or time
wait_for_close
# Play sound
Audio.se_play(C_SND, C_SND_V, C_SND_P) if WAIT_FOR_BUTTON and PLAY_C_SND
end
#--------------------------------------------------------------------------
# Do Pop-Up
#--------------------------------------------------------------------------
def do_popup
# Pop-up icon(s)
for i in 1..@amount
Audio.se_play(P_SND, P_SND_V, P_SND_P) if PLAY_P_SND
for i in 0..4
@popup_window.pop_up(@icon, 0, i * -4)
@popup_window.update
wait(2)
end
wait(5) if i != @amount and !ONLY_SHOW_ONE
end
wait(5)
# Pop-up text
show_name if SHOW_POPUP_TEXT
# Exit
return_scene
end
end
Tjef - Sro 02 Lis, 2011 15:05 Tak, dokładnie o to mi chodziło :) Teraz wszystko tam widać i w ogóle. Dzięki i dostajesz pomogła :PP
EDIT:
Znaczy chciałbym ci dać, ale to nie mój temat .... I dlatego nie mogę.tracersgta - Sro 02 Lis, 2011 16:02 Odwdzięczysz się innym razem marsonek - Sob 12 Sty, 2013 01:16 Macie może coś podobnego tylko wyskakuje informacja ile zdobylismy doświadczenia ?