-
Posts
20 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Posts posted by Magimario
-
-
Premetto di non avere alcuna competenza sul Ruby. In un progetto (con combattimento in tempo reale) sto usando un HUD, e mi sono chiesto se può essere usato anche durante gli scontri con i boss per visualizzare la loro energia. Lo script in questione è questo:
#======================================================================
========
# ■ Kingdom Hearts HUD
#------------------------------------------------------------------------------
# by Skive
# skivedaft@yahoo.com
#
# --
#
# released on 5th March 2006
#==============================================================================
#==============================================================================
# ■ Sprite_HP
#------------------------------------------------------------------------------
# the HUD's hp bar
#==============================================================================
class Sprite_HP < Sprite
#--------------------------------------------------------------------------
# ● instances
#--------------------------------------------------------------------------
attr_writer :actor
#--------------------------------------------------------------------------
# ● initialize
#--------------------------------------------------------------------------
def initialize(actor = nil)
super(nil)
self.z = 202
self.bitmap = Bitmap.new(60, 26)
@actor = actor
if !@actor.nil?
@hp = @actor.hp
@maxhp = @actor.maxhp
end
refresh
end
#--------------------------------------------------------------------------
# ● refresh
#--------------------------------------------------------------------------
def refresh
self.bitmap.clear
return if @actor.nil?
@hp = @actor.hp
@maxhp = @actor.maxhp
draw_bar(20, 6)
self.angle = 270
end
#--------------------------------------------------------------------------
# ● update
#--------------------------------------------------------------------------
def update
super
if @actor.nil?
self.bitmap.clear
return
end
if @hp != @actor.hp or @maxhp != @actor.maxhp
refresh
end
end
#--------------------------------------------------------------------------
# ● draw_bar
#--------------------------------------------------------------------------
def draw_bar(radius, width)
max = (@actor.hp * 360) / @actor.maxhp
for j in 1..width
for i in 0..max
bx = Math.cos( (i * Math::PI) / 360) * (radius + j)
by = Math.sin( (i * Math::PI) / 360) * (radius + j)
case j
when 1
color = Color.new(74, 112, 29)
when 2
color = Color.new(77, 120, 29)
when 3
color = Color.new(80, 131, 28)
when 4
color = Color.new(85, 144, 27)
when 5
color = Color.new(89, 156, 26)
when 6
color = Color.new(93, 167, 26)
end
self.bitmap.set_pixel(30 + bx, by, color)
end
end
end
end
#==============================================================================
# ■ Sprite_SP
#------------------------------------------------------------------------------
# the HUD's sp bar
#==============================================================================
class Sprite_SP < Sprite
#--------------------------------------------------------------------------
# ● instances
#--------------------------------------------------------------------------
attr_writer :actor
#--------------------------------------------------------------------------
# ● initialize
#--------------------------------------------------------------------------
def initialize(actor = nil)
super(nil)
self.z = 202
self.bitmap = Bitmap.new(60, 26)
@actor = actor
if !@actor.nil?
@sp = @actor.sp
@maxsp = @actor.maxsp
end
refresh
end
#--------------------------------------------------------------------------
# ● refresh
#--------------------------------------------------------------------------
def refresh
self.bitmap.clear
return if @actor.nil?
@sp = @actor.sp
@maxsp = @actor.maxsp
draw_bar(20, 6)
self.angle = 90
self.mirror = true
end
#--------------------------------------------------------------------------
# ● update
#--------------------------------------------------------------------------
def update
super
if @actor.nil?
self.bitmap.clear
return
end
if @sp != @actor.sp or @maxsp != @actor.maxsp
refresh
end
end
#--------------------------------------------------------------------------
# ● draw_bar
#--------------------------------------------------------------------------
def draw_bar(radius, width)
max = (@actor.sp * 360) / @actor.maxsp
for j in 1..width
for i in 0..max
bx = Math.cos( (i * Math::PI) / 360) * (radius + j)
by = Math.sin( (i * Math::PI) / 360) * (radius + j)
case j
when 1
color = Color.new(29, 82, 112)
when 2
color = Color.new(29, 86, 120)
when 3
color = Color.new(28, 90, 131)
when 4
color = Color.new(27, 96, 144)
when 5
color = Color.new(26, 102, 156)
when 6
color = Color.new(26, 106, 167)
end
self.bitmap.set_pixel(30 + bx, by, color)
end
end
end
end
#==============================================================================
# ■ Sprite_HUD
#------------------------------------------------------------------------------
# draws the HUD on the map
#==============================================================================
class Sprite_HUD < Sprite
#--------------------------------------------------------------------------
# ● initialize
#--------------------------------------------------------------------------
def initialize(corner = 4)
super(nil)
self.z = 200
for actor in $game_party.actors
next if actor.dead?
@actor = actor
@actor_index = $game_party.actors.index(@actor)
break
end
@hp_sprite = Sprite_HP.new(@actor)
@sp_sprite = Sprite_SP.new(@actor)
self.bitmap = Bitmap.new(60, 60)
case corner
when 1
x = 16
y = 16
when 2
x = 640 - 52 - 16
y = 16
when 3
x = 16
y = 480 - 52 - 16
when 4
x = 640 - 52 - 16
y = 480 - 52 - 16
end
self.x = x
self.y = y
@hp_sprite.x = x + 27
@hp_sprite.y = y - 3
@sp_sprite.x = x + 27 - 1
@sp_sprite.y = y - 3 - 1 + 60
refresh
end
#--------------------------------------------------------------------------
# ● refresh
#--------------------------------------------------------------------------
def refresh
self.bitmap.clear
return if @actor.nil?
bmp = RPG::Cache.character(@actor.character_name, @actor.character_hue)
rect = Rect.new(0, 0, bmp.width / 4, (bmp.height / 4))
self.bitmap.blt(27 - bmp.width / 8, 5, bmp, rect)
self.bitmap.blt(0, 0, RPG::Cache.picture("hud"), Rect.new(0, 0, 60, 60))
end
#--------------------------------------------------------------------------
# ● update
#--------------------------------------------------------------------------
def update
super
@hp_sprite.update
@sp_sprite.update
if @actor != $game_party.actors[@actor_index]
@actor = $game_party.actors[@actor_index]
@hp_sprite.actor = @actor
@sp_sprite.actor = @actor
@hp_sprite.refresh
@sp_sprite.refresh
refresh
end
end
end
#==============================================================================
# ■ Scene_Map
#------------------------------------------------------------------------------
# draws the hud on the map screen
# @khhud_corner is the corner you want the hud to be displayed in.
# 1 is upper left, 2 is upper right, 3 is bottom left and 4 is bottom right
#==============================================================================
class Scene_Map
alias main_khhud main
alias update_khhud update
alias transfer_khhud transfer_player
#--------------------------------------------------------------------------
# ● initialize
#--------------------------------------------------------------------------
def initialize
@khhud_corner = 4 # 1 or 2 or 3 or 4
end
#--------------------------------------------------------------------------
# ● main
#--------------------------------------------------------------------------
def main
@hud = Sprite_HUD.new(@khhud_corner)
main_khhud
@hud.dispose
end
#--------------------------------------------------------------------------
# ● update
#--------------------------------------------------------------------------
def update
@hud.update
update_khhud
end
end
Grazie in anticipo a chiunque sia disposto ad aiutarmi

-
Grazie, non avevo pensato alle variabili
Vedrò di cavarmela ad eventi

-
Più o meno... ^^'
Uso poco RPGM, non so usare alla perfezione le funzioni, quindi pensavo di metterne uno a script, ma se ne serve uno ad eventi posso tentare

-
Ho la mezza idea di creare un progetto, in cui usare un sistema di combattimento in tempo reale che si basa sulla fatica dei personaggi, in cui più sale la fatica (che si accumula in minor quantità attaccando e in maggior quantità venendo attaccati) e più energia si perde venendo colpiti, e magari un'altra barra che si riempe col passare del tempo e attaccando, che permette, una volta completata, di utilizzare un attacco speciale (questo si può anche tralasciare se diventa troppo complicato o lagga troppo...).
Sto cercando un modo per realizzarlo, con eventi o con script. Grazie in anticipo

-
Copia e incolla tutto su Word e poi portalo su RPGMXP, dovrebbe andare a capo automaticamente
-
Il salvataggio a tempo non mi convince troppo, permette di aspettare pochi minuti in una zona tranquilla per poter salvare. Personalmente preferisco i save point, ma si potrebbe anche fare che all'inizio e alla fine dei dungeon e dopo le cutscene salva automaticamente, ma sparsi per il gioco si possono trovare oggetti "usa e getta" che permettono di creare un check point dove si vuole, anche se bisogna calibrare bene la loro reperibilità.
-
-
I giochi di Pokémon pullulano di incontri casuali.
Comunque, solitamente i Pokémon si trovano solo in particolari zone, e gli incontri casuali si possono fare soltanto su tutta la mappa sull'XP, a meno che tu non trovi uno script adatto dovresti ricorrere al 2K.
-
Concordo con Tio, nonostante sia già uscita la PS3 la maggior parte dei giochi Sony vengono prodotti ancora per PS2, e poi per Wii è tutta un'altra storia, ancora sono pochi i giochi degni di nota, ma a breve arriveranno capolavori di qualsiasi genere. A mio parere poter muovere Wii Remote e Nunchuk come spade o katane, poter usare il Wii Remote come volante, come pistola, persino come racchetta da tennis o come qualsiasi altro oggetto è molto più divertente e coinvolgente di giocare con un normale joystick. A mio parere, ovviamente ;)
-
Non me ne intendo molto di script, ma potresti provare a togliere questo:
def update if Input.trigger?(Input::C) if @nome_bgm != "" then Audio.bgm_stop end $scene = Scene_Title.new @sprite.bitmap.dispose end end
Io non ho provato, però.
-
Semplicemente stupendi, il secondo postato da Havana lo adoro *_*
-
Se non hai nessuna patch RTP Manager è chiamato Materialbase.
-
Se ho ben capito per cambiarli durante l'avventura basta creare un evento con "Change Actor Graphic", se vuoi cambiare quelli con cui si inizia si fa dal database, in "actors".
-
Il 3D della mappa di FF3 non mi era parso molto difficile da rippare, ma in ogni caso è vero, meglio che ne cerchi una in 2D, altrimenti ne faccio una da me (e conoscendo la mia bravura in grafica sarebbe uno dei tanti modi per devastare un progetto decente XD).
-
Pensavo di prendere i vari elementi e metterli assieme con paint o con photoshop per farne una picture da fare apparire usando un oggetto, non renderli chipset, ma comunque in effetti in 3D non ci starebbero bene... mi arrangerò con un'altra mappa o facendola da me, in ogni caso grazie per l'attenzione ^^
-
Ah, ok, non ci avevo pensato ^^"
-
Con Final Fantasy 3 intendo Final Fantasy 3, per NES XD
Trovo solo risorse della versione originale per NES, ma preferirei usare quelle del remake appena uscito su DS, più simili allo stile che uso per gran parte del gioco.
-
Sto cercando di fare una mappa per un mio progetto, e ho pensato che quella di Final Fantasy III (possibilmente il remake per DS) sia la più adatta. Cercando nei più importanti siti di risorse grafiche (e anche con la funzione cerca in questo forum) ho trovato solo la versione a 8 bit.
Qualcuno ce l'ha?
-
Bello script, mi funzionerebbe alla perfezione se non fosse per le cifre che ogni tanto si sovrappongono... per esempio, quando scelgo la quantità di un oggetto e cambio la quantità a volte capita che il numero nuovo si sovrappone al precedente.


*BS In tempo reale v. 4.1
in Scripts RGSS (XP)
Posted