Jump to content
Rpg²S Forum

*Vedere oggetti ricevuti!


Andre4e
 Share

Recommended Posts

Visualizzare oggetti ricevuti

Descrizione

 

Questo script è bellissimo secondo me,
e quindi ho deciso di metterlo in questo forum perchè non c'era!
Questo script fa vedere gli oggetti ricevuti direttamente sulla mappa tramite l'icona dell'oggetto!
Visualizza oggetti,armi,armature e soldi!
Spero vi piaccia! :biggrin:

Autore

 

Tibuda


Allegati

 

Demo

Screenshot:


post-2796-1251985255.jpg

post-2796-1251985267.jpg

Istruzioni per l'uso

 

Inserite lo script in una classe sopra main

Script:

 

#==============================================================================
# ** Item Popup
#------------------------------------------------------------------------------
# Tibuda
# Version 1.12
# 02.23.07
#------------------------------------------------------------------------------
# * Version History :
# 01.11.07 - Version 1.00
# 01.13.07 - Version 1.01
# - Bug fix: Bug while tryin' to unequip an item in the equipment scene
# - Added: Item number font customization
# 01.19.07 - Version 1.10
# - Added: Fading icons when losing items (optional)
# - Added: Background image (optional)
# - Added: Custom colors for each item
# - Added: You can show a icon in events
# - Added: Custom colors when calling the popup_icon
# 01.23.07 - Version 1.11
# - Bug fix: Bug while changin'g class or changin' equip in the map
# 02.23.07 - Version 1.12 (one month)
# - Bug fix: Showing icon with 0 items/gold
#------------------------------------------------------------------------------
# * Instructions
# - To show an icon call the following script:
# $game_player.popup_icon(icon_name[, number, color])
# for the player
# self.event.popup_icon(icon_name[, number, color])
# for the current event
# $game_map.events[id].popup_icon(icon_name[, number, color])
# for the the event id
# - Customizing the duration
# ICON_TIME è il tempo per dare visualizzare l'item
# ICON_DELAY è la durata di visualizzazione
# - Colori
# NUMBER_COLOR --> Colore default per tutti i tipi di item
# GOLD_NUMBER_COLOR --> Colore per i soldi
# ITEM_NUMBER_COLOR --> Colore per un specifico item.
# Puoi aggiungere un colore in questo modo
# ITEM_NUMBER_COLOR = {item_id => item_color, item_id => item_color....}
# Se vuoi un colore di default per tutti gli item
# Puoi usare --> item_id 0
# WEAPON_NUMBER_COLOR per le armi
# ARMOR_NUMBER_COLOR per le armature,elmi,scudi ecc..
#==============================================================================

#--------------------------------------------------------------------------
# module Popup_Item
#--------------------------------------------------------------------------
module Popup_Item
	# Fading icons
	FADE_LOSE = false
	# The time we show the icon
	ICON_TIME = 20
	# The time before show a new item
	ICON_DELAY = 24
	# Icon to show when the player gets money
	GOLD_ICON = "032-Item01"
	# A 32x32 background image
	BACKGROUND = ""
	# Font for the item number
	NUMBER_FONT = "Tahoma"
	NUMBER_SIZE = 12
	NUMBER_COLOR = Color.new(255, 255, 255)
	# Custom font color for specific items
	GOLD_NUMBER_COLOR = Color.new(255, 255, 0)
	ITEM_NUMBER_COLOR = {}
	ARMOR_NUMBER_COLOR = {}
	WEAPON_NUMBER_COLOR = {}
	# True if using Trickster's Method & Class Library
	TRICK_MACL = false
end

#--------------------------------------------------------------------------
# Game_Character
#--------------------------------------------------------------------------
class Game_Character
	attr_accessor :popup_icons
	alias popup_gm_party_init initialize
	def initialize
		popup_gm_party_init
		@popup_icons = []
	end
	def popup_icon(icon_name, number = 1, color = Popup_Item::NUMBER_COLOR)
		@popup_icons.push([icon_name, number, color])
	end
	def fade_icon(icon_name, number = 1, color = Popup_Item::NUMBER_COLOR)
		popup_icon(icon_name, -number, color) if Popup_Item::FADE_LOSE
	end
end
#--------------------------------------------------------------------------
# Game_Party
#--------------------------------------------------------------------------
class Game_Party
	attr_accessor :ignore_icon
	alias popup_gm_party_init initialize
	def initialize
		popup_gm_party_init
		@ignore_icon = false
	end
	def popup_icon(icon_name, number = 1, color = Popup_Item::NUMBER_COLOR)
		$game_player.popup_icon(icon_name, number, color)
	end
	def fade_icon(icon_name, number = 1, color = Popup_Item::NUMBER_COLOR)
		$game_player.fade_icon(icon_name, number, color)
	end
	alias popup_gm_party_gain_gold gain_gold
	def gain_gold(n)
		popup_gm_party_gain_gold(n)
		return if @ignore_icon || n < 1
		if Popup_Item::GOLD_ICON != "" and $scene.is_a?(Scene_Map)
			if Popup_Item::GOLD_NUMBER_COLOR.is_a?(Color)
				color = Popup_Item::GOLD_NUMBER_COLOR
			else
				color = Popup_Item::NUMBER_COLOR
			end
			popup_icon(Popup_Item::GOLD_ICON, n, color)
		end
	end
	
	
	
	alias popup_gm_party_gain_item gain_item
	def gain_item(id, n)
		popup_gm_party_gain_item(id, n)
		return if id < 1 or id >= $data_items.size or @ignore_icon || n < 1
		if $scene.is_a?(Scene_Map)
			if Popup_Item::ITEM_NUMBER_COLOR[id].is_a?(Color)
				color = Popup_Item::ITEM_NUMBER_COLOR[id]
			elsif Popup_Item::ITEM_NUMBER_COLOR[0].is_a?(Color)
				color = Popup_Item::ITEM_NUMBER_COLOR[0]
			else
				color = Popup_Item::NUMBER_COLOR
			end
			popup_icon($data_items[id].icon_name, n, color)
		end
	end
	alias popup_gm_party_gain_weapon gain_weapon
	def gain_weapon(id, n)
		popup_gm_party_gain_weapon(id, n)
		return if id < 1 or id >= $data_weapons.size or @ignore_icon || n < 1
		if $scene.is_a?(Scene_Map)
			if Popup_Item::WEAPON_NUMBER_COLOR[id].is_a?(Color)
				color = Popup_Item::WEAPON_NUMBER_COLOR[id]
			elsif Popup_Item::WEAPON_NUMBER_COLOR[0].is_a?(Color)
				color = Popup_Item::WEAPON_NUMBER_COLOR[0]
			else
				color = Popup_Item::NUMBER_COLOR
			end
			popup_icon($data_weapons[id].icon_name, n, color)
		end
	end
	alias popup_gm_party_gain_armor gain_armor
	def gain_armor(id, n)
		popup_gm_party_gain_armor(id, n)
		return if id < 1 or id >= $data_armors.size or @ignore_icon || n < 1
		if $scene.is_a?(Scene_Map)
			if Popup_Item::ARMOR_NUMBER_COLOR[id].is_a?(Color)
				color = Popup_Item::ARMOR_NUMBER_COLOR[id]
			elsif Popup_Item::ARMOR_NUMBER_COLOR[0].is_a?(Color)
				color = Popup_Item::ARMOR_NUMBER_COLOR[0]
			else
				color = Popup_Item::NUMBER_COLOR
			end
			popup_icon($data_armors[id].icon_name, n, color)
		end
	end
end
#--------------------------------------------------------------------------
# Game_Actor
#--------------------------------------------------------------------------
class Game_Actor
	alias popup_gm_actor_equip equip
	def equip(equip_type, id)
		$game_party.ignore_icon = true
		popup_gm_actor_equip(equip_type, id)
		$game_party.ignore_icon = false
	end
end
#--------------------------------------------------------------------------
# module RPG
#--------------------------------------------------------------------------
module RPG
	#--------------------------------------------------------------------------
	# RPG::Sprite
	#--------------------------------------------------------------------------
	class Sprite
		def popup_icon(name, number = 1, color = Popup_Item::NUMBER_COLOR)
			return if name == "" or name == nil
			return if number.is_a?(Numeric) and number < 0 and !Popup_Item::FADE_LOSE
			@icons = [] if !@icons.is_a?(Array)
			icon = {}
			icon["time"] = 0 - @icons.size * Popup_Item::ICON_DELAY
			if number.is_a?(Numeric) and number < 0
				icon["fade"] = true
				number = - number
			else
				icon["fade"] = false
			end
			icon["sprite"] = RPG::Sprite.new(self.viewport)
			if Popup_Item::BACKGROUND != ""
				bitmap = RPG::Cache.picture(Popup_Item::BACKGROUND)
				icon["sprite"].bitmap = Bitmap.new(bitmap.width, bitmap.height)
				icon["sprite"].bitmap.blt(0, 0, bitmap, Rect.new(0,0,bitmap.width,bitmap.width))
			else
				icon["sprite"].bitmap = Bitmap.new(32,32)
				
			end
			bitmap = RPG::Cache.icon(name)
			icon["sprite"].bitmap.blt(4, 4, bitmap, Rect.new(0,0,24,24))
			if Popup_Item::NUMBER_SIZE > 0 and number != 1 and number != ""
				icon["sprite"].bitmap.font.outline = true if Popup_Item::TRICK_MACL
				icon["sprite"].bitmap.font.name = Popup_Item::NUMBER_FONT
				icon["sprite"].bitmap.font.size = Popup_Item::NUMBER_SIZE
				icon["sprite"].bitmap.font.color = color
				icon["sprite"].bitmap.draw_text(5, 28 - Popup_Item::NUMBER_SIZE - 1, 27, Popup_Item::NUMBER_SIZE, number.to_s)
			end
			icon["sprite"].ox = 0
			icon["sprite"].oy = 20
			icon["sprite"].x = self.x
			icon["sprite"].y = self.y - self.oy / 2 + 1 - icon["time"]
			icon["sprite"].z = 3000
			icon["sprite"].visible = false
			@icons.push(icon)
		end
		def update_icons
			return unless @icons.is_a?(Array)
			return if Graphics.frame_count % 2 != 0
			i = 0
			while i < @icons.size
				if @icons[i]["time"] > Popup_Item::ICON_TIME
					@icons[i]["sprite"].bitmap.dispose
					@icons[i]["sprite"].dispose
					@icons.delete_at(i)
				else
					@icons[i]["time"] += 1
					if @icons[i]["fade"]
						op = [255 * (1 - @icons[i]["time"] / Popup_Item::ICON_TIME),0].max
						@icons[i]["sprite"].opacity = op
						@icons[i]["sprite"].update
					else
						@icons[i]["sprite"].y -= 1
					end
					@icons[i]["sprite"].visible = @icons[i]["time"] >= 0
					i += 1
				end
			end
		end
		alias popup_sprite_update update
		def update
			popup_sprite_update
			update_icons
		end
	end
end
#--------------------------------------------------------------------------
# Sprite_Character
#--------------------------------------------------------------------------
class Sprite_Character
	alias popup_spr_char_update update
	def update
		popup_spr_char_update
		if @character.is_a?(Game_Character)
			while @character.popup_icons.size > 0
				popup_icon(@character.popup_icons[0][0], @character.popup_icons[0][1],
				@character.popup_icons[0][2])
				@character.popup_icons.delete_at(0)
			end
		end
		update_icons
	end
end

 



Bugs e Conflitti Noti

 

N/A

Altri Dettagli

 

N/A

Edited by Dilos
Applicato tag code.

 

 

http://files.nireblog.com/blogs4/narutozorro9kolas/files/firma-naruto-y-yondaime.gif

 

 

Link to comment
Share on other sites

Ottimo, comunque il nome dell'autore sarebbe più utile se scrivi il suo forum di provenienza

Per qualsiasi motivo non aprite questo spoiler.

 

 

Ho detto di non aprirlo !

 

 

Se lo apri ancora esplode il mondo.

 

 

Aaaaaa è un vizio.

 

 

Contento? Il mondo è esploso, sono tutti morti

per colpa della tua curiosità .

 

 

Vuoi che ti venga anche il morbillo, la varicella e l'AIDS???

 

 

O bravo ora sei un malato terminale e nessuno

ti puo curare, sono tutti morti !

 

 

Se clicchi ancora una volta il PC esplode.

 

 

E dai smettila !!

 

Uff!! Hai cliccato tante volte che ho dovuto sostituirlo con un codebox.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

http://s8.postimg.org/yntv9nxld/Banner.png

http://img204.imageshack.us/img204/8039/sccontest3octpl3.gif

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...