Jump to content
Rpg²S Forum

VisualMidi Standard BS - una versione ritoccata del BS frontale standard


Midi
 Share

Recommended Posts

VisualMidi Standard BS



Descrizione


Questo script modifica leggermente il BS frontale standard. In particolare:


- la finestra del Party mostra i face degli Actor e ha un layout migliorato;


- invece della consueta finestra di selezione dei nemici, viene usato un cursore dinamico direttamente nella schermata principale, che mostra anche il nome del nemico selezionato.


 


http://imageshack.com/a/img194/1680/64tv.png


 


Si tratta dello stesso BS utilizzato dalla versione 1.1 di The Dreamer.



Autore


Midi



Allegati


Nessuno



Istruzioni per l'uso


Incollare lo script nella sezione "Materials", sopra il "Main".



Script




#=============================================================================
# VisualMidi Standard BS
#-----------------------------------------------------------------------------
# vers. 1.1.0 (23-02-2014)
# by Midi
#-----------------------------------------------------------------------------
# Change log
# ## vers. 1.1.0:
# - aggiunto cursore dinamico per la selezione dei nemici.
#=============================================================================
# ** DESCRIZIONE **
# Questo script modifica leggermente il BS frontale standard. In particolare:
# - la finestra del Party mostra i face degli Actor e ha un layout migliorato;
# - invece della consueta finestra di selezione dei nemici viene usato un
# cursore dinamico direttamente nella schermata principale, che mostra anche
# il nome dei singoli nemici.
#=============================================================================
#=============================================================================
# ** CONDIZIONI DI UTILIZZO **
# Questo script è sotto licenza Creative Commons BY-NC-SA
# (Attribuzione-NonCommerciale-CondividiAlloStessoModo 3.0 Unported).
# - Attribuzione : è obbligatorio creditare l'autore.
# - NonCommerciale: non si può utilizzare questo script per scopi
# commerciali.
# - CondividiAlloStessoModo: se si modifica, trasforma o utilizza questo
# script in un'opera, l'opera risultante può essere
# distribuita solo sotto la stessa o compatibile licenza.
# Per più informazioni, http://creativecommons.org/licenses/by-nc-sa/3.0/
#=============================================================================

class Window_PartyCommand < Window_Command
def window_width
return 112
end
end

class Window_ActorCommand < Window_Command
def window_width
return 112
end
end

class Window_BattleStatus < Window_Selectable

def initialize
super(0, 0, window_width, window_height)
contents.font.size = 16
refresh
self.openness = 0
end

def spacing
return 0
end

def window_width
Graphics.width - 112
end

def draw_item(index)
offset_x = 3
actor = $game_party.battle_members[index]
draw_basic_area(item_rect(index), actor, offset_x)
draw_gauge_area(item_rect(index), actor, offset_x)
end

def draw_basic_area(rect, actor, offset_x)
draw_actor_face(actor, rect.x + offset_x, rect.y, true)
draw_actor_name(actor, rect.x + offset_x, rect.y, 100)
draw_actor_icons(actor, rect.x + offset_x, rect.y + 16)
end

def draw_gauge_area(rect, actor, offset_x)
if $data_system.opt_display_tp
draw_gauge_area_with_tp(rect, actor, offset_x)
else
draw_gauge_area_without_tp(rect, actor, offset_x)
end
end

def draw_gauge_area_with_tp(rect, actor, offset_x)
draw_actor_hp(actor, rect.x + offset_x, rect.y + 66, 96)
draw_actor_mp(actor, rect.x + offset_x, rect.y + 78, 46)
draw_actor_tp(actor, rect.x + 50 + offset_x, rect.y + 78, 46)
end

def draw_gauge_area_without_tp(rect, actor, offset_x)
draw_actor_hp(actor, rect.x + offset_x, rect.y + 66, 96)
draw_actor_mp(actor, rect.x + offset_x, rect.y + 78, 96)
end

def col_max
return 4
end

def item_width
return 102
end

def item_height
return 96
end

def draw_actor_hp(actor, x, y, width = 124)
draw_gauge(x, y, width, actor.hp_rate, hp_gauge_color1, hp_gauge_color2)
change_color(system_color)
contents.font.size = 16
draw_text(x, y, 30, line_height, Vocab::hp_a)
draw_current_value(x, y, width, actor.hp, hp_color(actor), normal_color)
end

def draw_actor_mp(actor, x, y, width = 124)
draw_gauge(x, y, width, actor.mp_rate, mp_gauge_color1, mp_gauge_color2)
change_color(system_color)
draw_text(x, y, 30, line_height, Vocab::mp_a)
draw_current_value(x, y, width, actor.mp, mp_color(actor), normal_color)
end

def draw_actor_tp(actor, x, y, width = 124)
draw_gauge(x, y, width, actor.tp_rate, tp_gauge_color1, tp_gauge_color2)
change_color(system_color)
draw_text(x, y, 30, line_height, Vocab::tp_a)
change_color(tp_color(actor))
draw_text(x + width - 42, y, 42, line_height, actor.tp.to_i, 2)
end

def draw_gauge(x, y, width, rate, color1, color2)
fill_w = (width* rate).to_i
gauge_y = y + 10
contents.fill_rect(x, gauge_y, width, 8, gauge_back_color)
contents.gradient_fill_rect(x, gauge_y, fill_w, 8, color1, color2)
end

def draw_current_value(x, y, width, current, color1, color2)
change_color(color1)
xr = x + width
if width < 96
draw_text(xr - 40, y, 42, line_height, current, 2)
else
draw_text(x + 30, y, width - 30, line_height, current, 2)
end
end
end

class Window_BattleEnemy < Window_Selectable

alias midi_initialize initialize

def initialize(info_viewport, spriteset)
midi_initialize(info_viewport)
@spriteset = spriteset
end

def col_max
return 1
end

alias midi_show show
def show
select(0)
create_cursor
@cursor.show
self
end

alias midi_hide hide
def hide
@cursor.hide
@cursor.dispose
super
end

def update
super
@cursor.update(enemy) if self.active && @cursor
end

def cursor_right(wrap = false)
cursor_down(wrap)
end

def cursor_left(wrap = false)
cursor_up(wrap)
end

def dispose
super
@cursor.dispose if @cursor
end

def create_cursor
@cursor = Battle_Cursor.new(@spriteset.viewport1, @spriteset)
end

end

class Spriteset_Battle
attr_reader :viewport1

def get_enemy_sprite(battler)
ary = @enemy_sprites.select {|sprite| battler.equal?(sprite.battler)}
if ary
sprite = ary[0]
end
return sprite
end
end

class Battle_Cursor
def initialize(viewport, spriteset)
init_cursor
@viewport = viewport
create_text(nil)
@spriteset = spriteset
hide
end

def init_cursor
@alpha_value = 64
@alpha_base = 64
@color_ascending = true
@prev_enemy = nil
@color_base = Color.new(255,255,255)
end

def update(enemy)
if enemy
enemy_sprite = @spriteset.get_enemy_sprite(enemy)
if !enemy.equal?(@prev_enemy)
if @prev_enemy
restore_color(@prev_enemy)
end
@alpha_value = @alpha_base
dispose
@prev_enemy = enemy
create_text(enemy)
end
if @sprite.visible
if @color_ascending
@alpha_value += 3
else
@alpha_value -= 3
end
if @alpha_value >= 160
@alpha_value = 160
@color_ascending = false
elsif @alpha_value <= 64
@alpha_value = 64
@color_ascending = true
end
enemy_sprite.color = @color_base
enemy_sprite.color.alpha = @alpha_value
sub_y = 0
if enemy_sprite
sub_y = enemy_sprite.bitmap.height
end
@sprite.x = enemy.screen_x
final_y = enemy.screen_y - sub_y
final_y = 26 if final_y < 26
@sprite.y = final_y
end
end
end

def restore_color(enemy)
enemy_sprite = @spriteset.get_enemy_sprite(enemy) if enemy
if enemy_sprite
enemy_sprite.color.alpha = 0
end
end

def create_text(enemy)
@sprite = ::Sprite.new(@viewport)
bitmap = Bitmap.new(220, 26)
@sprite.bitmap = bitmap
@sprite.ox = bitmap.width / 2
@sprite.oy = bitmap.height
@sprite.x = 0
@sprite.y = 0
@sprite.z += 99999
if enemy
text = enemy.original_name
bitmap.font.color.set(Color.new(0,0,0))
bitmap.draw_text(2, 2, 220, 26, text, 1)
bitmap.font.color.set(Color.new(255,255,255))
bitmap.draw_text(0, 0, 220, 26, text, 1)
end
end

def show
@sprite.visible = true
end

def hide
@sprite.visible = false
restore_color(@prev_enemy)
end

def dispose
@sprite.dispose unless @sprite.disposed?
end

end

class Scene_Battle < Scene_Base

def update_info_viewport
move_info_viewport(0) if @party_command_window.active
move_info_viewport(112) if @actor_command_window.active
move_info_viewport(64) if BattleManager.in_turn?
end

def create_status_window
@status_window = Window_BattleStatus.new
@status_window.x = 112
end

def create_enemy_window
@enemy_window = Window_BattleEnemy.new(@info_viewport, @spriteset)
@enemy_window.set_handler(:ok, method(:on_enemy_ok))
@enemy_window.set_handler(:cancel, method(:on_enemy_cancel))
end

alias midi_select_enemy_selection select_enemy_selection

def select_enemy_selection
midi_select_enemy_selection
@skill_window.hide
@item_window.hide
end

def on_enemy_cancel
@enemy_window.hide
case @actor_command_window.current_symbol
when :attack
@actor_command_window.activate
when :skill
@skill_window.show
@skill_window.activate
when :item
@item_window.show
@item_window.activate
end
end
end

 



Bugs e Conflitti Noti


N/A



Altri dettagli


Lo script è sotto licenza Creative Commons BY-NC-SA 3.0. Quindi è possibile usarlo e distribuirlo liberamente purché:


- venga creditato l'autore;


- non venga utilizzato con finalità commerciali;


- tutti le opere derivate e/o basate su esso siano distribuite con la stessa licenza o con licenza compatibile.


Edited by Midi

Aurora Dreaming


The Dreamer (v. 1.1) - standalone


72 MB - Il prequel ad Aurora Dreaming



segui il dev-diary ufficiale di Aurora Dreaming!



Bacheca Premi


http://www.rpg2s.net/forum/uploads/monthly_01_2014/post-6-0-39588100-1390575633.png

Link to comment
Share on other sites

Altro ottimo scriptino con le preziose aggiunte di nome mostro selezionato e face! ^ ^

 

Continua a riempirci così! E:3

(\_/)
(^ ^) <----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

  • 3 weeks later...

Ciao Midi, è possibile aggiungere il portrait invece del face nel Window_BattleStatus nella parte della sezione

def draw_basic_area(rect, actor, offset_x)
draw_actor_face(actor, rect.x + offset_x, rect.y, true) (Qui)
draw_actor_name(actor, rect.x + offset_x, rect.y, 100)
draw_actor_icons(actor, rect.x + offset_x, rect.y + 16)
end

Essa dovrebbe comprendere la selezione target (party) quando usi una cura sul personaggio.

Ho provato ad aggiungere draw_actor_portrait(actor, rect.x + offset_x, rect.y, true)

sono andato in window_base aggiungendo

 

def draw_portrait(portrait_name, portrait_index, x, y, enabled = true)
bitmap = Cache.portrait(portrait_name)
rect = Rect.new(portrait_index % 4 * 96, portrait_index / 4 * 96, 96, 96)
contents.blt(x, y, bitmap, rect, enabled ? 255 : translucent_alpha)
bitmap.dispose
end

 

def draw_actor_portrait(actor, x, y, enabled = true)
draw_portrait(actor.portrait_name, actor.portrait_index, x, y, enabled)
end

 

poi in game_actor

 

attr_reader :potrait_name
attr_reader :potrait_index

 

ma continua a dare errore ma in % >_< .

 

Dove sbaglio xd?

1° Progetto http://www.rpg2s.net/forum/index.php/topic/17667-cheran-e-il-libro-magico/

Genere : Jrpg

Titolo: Cheran e il libro magico

Programma: Rpg Maker Vx Ace

Percentuale completamento: 5%

Orario di gioco attuale 1h 20m

__________________________

 

2° Progetto a presto il link al progetto...

Genere : Jrpg

Titolo: Kyros e la linfa magica

Programma: Rpg Maker Xp

Prime Immagini (Consigli & Modifiche): http://www.rpg2s.net/forum/index.php/topic/17980-immagini-battaglia-e-altro-consiglimodifiche-ecc/

Link to comment
Share on other sites

Lo script è sotto licenza Creative Commons BY-NC-SA 3.0. Quindi è possibile usarlo e distribuirlo liberamente purché:

- venga creditato l'autore;

- non venga utilizzato con finalità commerciali;

- tutti le opere derivate e/o basate su esso siano distribuite con la stessa licenza o con licenza compatibile.

 

 

Però permettimi un appunto:

 

Molti utenti non hanno idea di cosa sia effettivmente una licenza CC, ne sanno come distribuire opere con tale licenza ed in buona fede potrebbero pubblicare il gioco senza alcuna licenza.

Quindi, permettimi di consigliarti di spiegare meglio come e cosa significa ottenere una licenza compatibile perchè per quanto il tuo modo di esporlo sia corretto, sarebbe un peccato se qualche utente si ritrovasse impelagato in beghe legali per aver pasticciato con un maker...

 

Detto questo:

Ottimo script, complimenti.

Edited by nomorehero

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

 

Link to comment
Share on other sites

Che errore ti dà di preciso? Non riesco a capire... (magari sono io che sono gnucco...).

Dava errore nella % mi riportava a questo codice

(portrait_index % 4 * 96, portrait_index / 4 * 96, 96, 96)

togliendo la % poi dava errore in / togliendolo tutto n'altro errore che non ricordo >_< (sicuramente al 100% che i codici che ho utilizzato sono sbagliati).

Comunque utilizzando questo script, almeno nel mio gioco inizia a laggare di brutto.

In un progetto originale invece è tutto regolare :) .

 

Il tuo script è perfetto, il mio problema sta nel far apparire il portrait (sò inesperto e gnucco io xd).

1° Progetto http://www.rpg2s.net/forum/index.php/topic/17667-cheran-e-il-libro-magico/

Genere : Jrpg

Titolo: Cheran e il libro magico

Programma: Rpg Maker Vx Ace

Percentuale completamento: 5%

Orario di gioco attuale 1h 20m

__________________________

 

2° Progetto a presto il link al progetto...

Genere : Jrpg

Titolo: Kyros e la linfa magica

Programma: Rpg Maker Xp

Prime Immagini (Consigli & Modifiche): http://www.rpg2s.net/forum/index.php/topic/17980-immagini-battaglia-e-altro-consiglimodifiche-ecc/

Link to comment
Share on other sites

@EmanueleSpeed:

Hmm... così a una rapida occhiata quella riga mi sembra a posto.

Postami l'errore completo, così come esce nella finestrella di popup. Forse riesco a risalire al problema.

 

@nomorehero:

 

Molti utenti non hanno idea di cosa sia effettivmente una licenza CC, ne sanno come distribuire opere con tale licenza ed in buona fede potrebbero pubblicare il gioco senza alcuna licenza.

Quindi, permettimi di consigliarti di spiegare meglio come e cosa significa ottenere una licenza compatibile perchè per quanto il tuo modo di esporlo sia corretto, sarebbe un peccato se qualche utente si ritrovasse impelagato in beghe legali per aver pasticciato con un maker...

 

 

Hai perfettamente ragione, e forse dovrei spiegare meglio cos'è una licenza CC... ma forse no. :)

Conta che comunque nello script c'è il link alla pagina della licenza.

 

Metto subito in chiaro una cosa: se un utente usasse il mio script fuori dai limiti della licenza ma in assoluta buona fede (vuoi per ignoranza, vuoi per scarsa esperienza) non mi metterei certo in testa di trascinarlo davanti a un giudice.

Per cosa poi? Per uno script che mi è costato sì e no 2 ore di lavoro e che avrei realizzato comunque perché utile per il mio progetto? :)

 

Un breve chiarimento e gli concederei una deroga alla licenza. Amici come prima.

 

Mi rendo conto che molti maker realizzano giochi più per passatempo che altro. Non è certo per loro che ho messo i miei lavori sotto CC.

 

Ma per chi invece ha intenzione di realizzare un gioco "seriamente", non c'è santo che tenga: se vuoi distribuire un gioco (e magari venderlo) DEVI sapere come funzionano le licenze, e devi conoscere cosa puoi e non puoi fare con una "CC BY-NC-SA". E non sono io a dover fornire informazioni, bensì chi utilizza lo script a doversi informare. :)

 

Infine una nota.

Se si copia-incolla lo script per intero nel progetto (come fanno il 99,9% dei makeratori), si copia anche il riferimento alla licenza.

Dal punto di vista legale, se non ricordo male, basta quel riferimento per far diventare l'intero progetto CC BY-NC-SA.

Se poi si copia lo script cancellando appositamente il riferimento alla licenza, be'... quello è un caso di "mala fede". E lì si che mi potrebbe venir voglia di trascinare qualcuno in tribunale... ^.^

 

Comunque forse in parte hai ragione.

Credo che inserirò un link alla pagina della Creative Commons direttamente nel primo post. Così chi avrà voglia potrà andarsi a leggere la licenza direttamente, per capire come funziona. :)

Aurora Dreaming


The Dreamer (v. 1.1) - standalone


72 MB - Il prequel ad Aurora Dreaming



segui il dev-diary ufficiale di Aurora Dreaming!



Bacheca Premi


http://www.rpg2s.net/forum/uploads/monthly_01_2014/post-6-0-39588100-1390575633.png

Link to comment
Share on other sites

Si, infatti come dicevo tu lo hai esposto correttamente, ma sai com'è...

Meglio prevenire che curare! :D

 

Lo so è capisco il tuo punto di vista, ma se per ogni script che pubblico dovessi spiegare anche cos'è e come funziona la CC... mi passa la voglia di pubblicare. xD

 

Io conto sul fatto che l'utente trovi lo script, legga la scritta "licenza" e si vada a informare...

Sono troppo ottimista? xD

Aurora Dreaming


The Dreamer (v. 1.1) - standalone


72 MB - Il prequel ad Aurora Dreaming



segui il dev-diary ufficiale di Aurora Dreaming!



Bacheca Premi


http://www.rpg2s.net/forum/uploads/monthly_01_2014/post-6-0-39588100-1390575633.png

Link to comment
Share on other sites

Allora l'ho riprovato su un progetto con script originali.

Questo è quello che ho fatto:

 

Window_BattleStatus

http://imageshack.com/a/img849/7122/2j0t.jpg

 

Window_Base

http://imageshack.com/a/img23/1835/rdvm.jpg

http://imageshack.com/a/img849/3962/qt4i.jpg

 

Game_Actor

http://imageshack.com/a/img21/5518/mjfe.jpg

http://imageshack.com/a/img32/6892/b6hn.jpg

http://imageshack.com/a/img43/1806/pvxu.jpg

 

Errore

http://imageshack.com/a/img819/6695/b7ex.jpg

1° Progetto http://www.rpg2s.net/forum/index.php/topic/17667-cheran-e-il-libro-magico/

Genere : Jrpg

Titolo: Cheran e il libro magico

Programma: Rpg Maker Vx Ace

Percentuale completamento: 5%

Orario di gioco attuale 1h 20m

__________________________

 

2° Progetto a presto il link al progetto...

Genere : Jrpg

Titolo: Kyros e la linfa magica

Programma: Rpg Maker Xp

Prime Immagini (Consigli & Modifiche): http://www.rpg2s.net/forum/index.php/topic/17980-immagini-battaglia-e-altro-consiglimodifiche-ecc/

Link to comment
Share on other sites

Dunque, vado a occhio...

Le righe 62 e 63 di Game_Actor non dovrebbero essere valide.

Quando scrivi

actor.portrait_name
actor.portrait_index

stai chiamando il metodo "actor" di Game_Actor, il quale restituisce un oggetto di questo tipo:

$data_actors[@actor_id]

Tutti gli oggetti contenuti in $data_actors sono degli RPG::Actor... ovvero gli oggetti "standard" che l'RGSS3 usa per definire gli actor di gioco.

Puoi provare a cercare RPG::Actor nella guida premendo F1.

Ti troverai una classe così definita

class RPG::Actor < RPG::BaseItem
  def initialize
    super
    @nickname = ''
    @class_id = 1
    @initial_level = 1
    @max_level = 99
    @character_name = ''
    @character_index = 0
    @face_name = ''
    @face_index = 0
    @equips = [0,0,0,0,0]
  end
  attr_accessor :nickname
  attr_accessor :class_id
  attr_accessor :initial_level
  attr_accessor :max_level
  attr_accessor :character_name
  attr_accessor :character_index
  attr_accessor :face_name
  attr_accessor :face_index
  attr_accessor :equips
end

Come puoi notare, non esiste nessun "portrait_name" o "portrait_index" in questa classe.

Quindi quando chiami "actor.portrait_name" o "actor.portrait_index" ti va in errore.

 

Dovresti estendere la classe RPG::Actor aggiungendo i campi portrait_name e portrait_index... ma non è facile, perché mentre gli altri campi della classe vengono "riempiti automaticamente" dal tool tramite quello che scrivi nelle pagine dell'editor, questi campi nuovi non sono previsti, quindi dovresti andare a inizializzarli tu per ogni oggetto RPG::Actor ogniqualvolta questi oggetti vengono caricati (vedi "DataManager", metodo "self.load_normal_database").

 

È un po' complicato, ma spero di essermi spiegato chiaramente... :|

Edited by Midi

Aurora Dreaming


The Dreamer (v. 1.1) - standalone


72 MB - Il prequel ad Aurora Dreaming



segui il dev-diary ufficiale di Aurora Dreaming!



Bacheca Premi


http://www.rpg2s.net/forum/uploads/monthly_01_2014/post-6-0-39588100-1390575633.png

Link to comment
Share on other sites

  • 2 weeks later...

Domandina: Sarebbe possibile inserire, anzichè il nome sopra al nemico selezionato, un'icona X, magari con un effetto di movimento?

Esempio: La classica manina che indica dei vari FF.

Edited by nomorehero

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

 

Link to comment
Share on other sites

Per la manina senza effetto di movimento è una modifica molto rapida.

 

Metti la tua icona/manina nella cartella Graphics/System del gioco, chiamandola "cursor.png".

 

Dopodiché sostituisci questa porzione dello script

  def create_text(enemy)
    @sprite = ::Sprite.new(@viewport)
    bitmap = Bitmap.new(220, 26)
    @sprite.bitmap = bitmap
    @sprite.ox = bitmap.width / 2
    @sprite.oy = bitmap.height
    @sprite.x = 0
    @sprite.y = 0
    @sprite.z += 99999
    if enemy
      text = enemy.original_name
      bitmap.font.color.set(Color.new(0,0,0))
      bitmap.draw_text(2, 2, 220, 26, text, 1)
      bitmap.font.color.set(Color.new(255,255,255))
      bitmap.draw_text(0, 0, 220, 26, text, 1)
    end
  end

con questa:

  def create_text(enemy)
    @sprite = ::Sprite.new(@viewport)
    bitmap = Cache.system("cursor")
    @sprite.bitmap = bitmap
    @sprite.ox = bitmap.width / 2
    @sprite.oy = bitmap.height
    @sprite.x = 0
    @sprite.y = 0
    @sprite.z += 99999
  end

Non ho provato, ma dovrebbe funzionare.

 

La manina animata però richiede una modifica più sostanziale della classe Battle_Cursor, che andrebbe poi ritestata.

Attualmente mi spiace ma non penso di avere il tempo fisico di farlo... :|

Edited by Midi

Aurora Dreaming


The Dreamer (v. 1.1) - standalone


72 MB - Il prequel ad Aurora Dreaming



segui il dev-diary ufficiale di Aurora Dreaming!



Bacheca Premi


http://www.rpg2s.net/forum/uploads/monthly_01_2014/post-6-0-39588100-1390575633.png

Link to comment
Share on other sites

Nel mio progetto alcuni personaggi hanno solo la barra di HP ed Mp, altri solo quella di HP e TP ed altri ancora addirittura solo gli HP.

 

Finora usavo questo script:

 

 

	

    #=です=です=です=です=です=です=です=です=です=です=です=です=です=です=です=です=です=です=です=です==
    #
    # Change Gauge Display (2.0)
    # 29/1/2012
    # By Pacman
    # This script allows you to change if TP is displayed throughout the game. You
    # can also set actors to not have their TP, HP or MP gauges drawn in battle.
    # To change the displaying of TP, use the following script call:
    # change_tp_display(true / false)
    # Putting the argument as true will make the TP display, false will make it not
    # display. Having no argument will simply toggle it.
    # To have an actor's TP not drawn in battle, place the following tag in their
    # notebox:
    # \no_tp_display
    # Similarly, to have an actor's HP or MP not drawn in battle, place the
    # following tags in their notebox, respectively:
    # \no_hp_display
    # \no_mp_display
    #
    #=です=です=です=です=です=です=です=です=です=です=です=です=です=です=です=です=です=です=です=です==
     
    #==============================================================================
    # ** RPG::Actor
    #------------------------------------------------------------------------------
    #  Data class for actors. Subclass of RPG::BaseItem. Some Japanese twaddle.
    #==============================================================================
     
    class RPG::Actor < RPG::BaseItem
      #--------------------------------------------------------------------------
      # * Don't display actor's TP?
      #--------------------------------------------------------------------------
      def no_tp_display?
        return !self.note[/\\no[_ ]?tp[_ ]?display/i].nil?
      end
      #--------------------------------------------------------------------------
      # * Don't display actor's MP?
      #--------------------------------------------------------------------------
      def no_mp_display?
        return !self.note[/\\no[_ ]?mp[_ ]?display/i].nil?
      end
      #--------------------------------------------------------------------------
      # * Don't display actor's HP?
      #--------------------------------------------------------------------------
      def no_hp_display?
        return !self.note[/\\no[_ ]?hp[_ ]?display/i].nil?
      end
    end
     
    #==============================================================================
    # ** Game_System
    #------------------------------------------------------------------------------
    # Something in Japanese, desu desu desu.
    #==============================================================================
     
    class Game_System
      #--------------------------------------------------------------------------
      # Puclic Instance Variables no desu
      #--------------------------------------------------------------------------
      attr_accessor :opt_display_tp
      #--------------------------------------------------------------------------
      # Alias listing desu
      #--------------------------------------------------------------------------
      alias tp_change_init initialize
      #--------------------------------------------------------------------------
      # * Object Initialization
      #--------------------------------------------------------------------------
      def initialize(*args) # Desu
        @opt_display_tp = $data_system.opt_display_tp
        tp_change_init(*args)
      end
    end
     
    #==============================================================================
    # ** Game_Interpreter
    #------------------------------------------------------------------------------
    #  どのように私はこの日本殴り書きを読むのですか desu?
    #==============================================================================
     
    class Game_Interpreter
      #--------------------------------------------------------------------------
      # * Alter displaying of TP
      #     boo : Argument to decide the state of TP. If left out, desu.
      #--------------------------------------------------------------------------
      def change_tp_display(boo = nil)
        $game_system.opt_display_tp = boo == nil ? !$game_system.opt_display_tp :
        boo
      end
    end
     
    #=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
    # ** Window_BattleStatus
    #!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~!~
    #  です です です です です です です です です です です です です です です です です です です
    #=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
     
    class Window_BattleStatus < Window_Selectable
      #--------------------------------------------------------------------------
      # * Draw Actor Gauges です
      #--------------------------------------------------------------------------
      def draw_gauge_area(rect, actor, *a)
        if $game_system.opt_display_tp && !actor.actor.no_tp_display?
          if actor.actor.no_mp_display? && !actor.actor.no_hp_display?
            draw_gauge_area_without_mp(rect, actor, *a)
          elsif actor.actor.no_hp_display? && !actor.actor.no_mp_display?
            draw_gauge_area_without_hp(rect, actor, *a)
          elsif actor.actor.no_hp_display? && actor.actor.no_mp_display?
            draw_gauge_area_without_mp_hp(rect, actor, *a)
          else
            draw_gauge_area_with_tp(rect, actor, *a)
          end
        else
          if actor.actor.no_mp_display? && !actor.actor.no_hp_display?
            draw_gauge_area_without_tp_mp(rect, actor, *a)
          elsif actor.actor.no_hp_display? && !actor.actor.no_mp_display?
            draw_gauge_area_without_tp_hp(rect, actor, *a)
          elsif actor.actor.no_hp_display? && actor.actor.no_mp_display?
            draw_gauge_area_blank(rect, actor, *a)
          else
            draw_gauge_area_without_tp(rect, actor, *a)
          end
        end
      end
      #--------------------------------------------------------------------------
      # * Draw without MP
      #--------------------------------------------------------------------------
      def draw_gauge_area_without_mp(rect, actor)
        draw_actor_hp(actor, rect.x + 0, rect.y, 134)
        draw_actor_tp(actor, rect.x + 144, rect.y, 76)
      end
      #--------------------------------------------------------------------------
      # * Draw without HP
      #--------------------------------------------------------------------------
      def draw_gauge_area_without_hp(rect, actor)
        draw_actor_mp(actor, rect.x + 0, rect.y, 134)
        draw_actor_tp(actor, rect.x + 144, rect.y, 76)
      end
      #--------------------------------------------------------------------------
      # * Draw without TP and HP
      #--------------------------------------------------------------------------
      def draw_gauge_area_without_tp_hp(rect, actor)
        draw_actor_mp(actor, rect.x + 0, rect.y, rect.width)
      end
      #--------------------------------------------------------------------------
      # * Draw without MP and HP
      #--------------------------------------------------------------------------
      def draw_gauge_area_without_mp_hp(rect, actor)
        draw_actor_tp(actor, rect.x + 0, rect.y, rect.width)
      end
      #--------------------------------------------------------------------------
      # * Draw without TP and MP
      #--------------------------------------------------------------------------
      def draw_gauge_area_without_tp_mp(rect, actor)
        draw_actor_hp(actor, rect.x + 0, rect.y, rect.width)
      end
      #--------------------------------------------------------------------------
      # * Draw blank (useless method ;])
      #--------------------------------------------------------------------------
      def draw_gauge_area_blank(*a)
      end
    end
     
    $imported ||= {}
    $imported[:pac_gauge_change] = [2.0]
     
    #=です=です=です=です=です=です=です=です=です=です=です=です=です=です=です=です=です=です=です=です==
    #
    # END OF SCRIPT. です.
    #
    #=です=です=です=です=です=です=です=です=です=です=です=です=です=です=です=です=です=です=です=です==


 

 

 

Però pare che il tuo se ne infischi e mi inserisca comunque entrambe le barre,

E' possibile renderli compatibili (o includere un opzione simile nel tuo script)?

 

Grazie per l'attenzione

Link to comment
Share on other sites

Il mio script era pensato per interagire solo con il BS standard, non con eventuali add-on. :)

E siccome il BS standard non prevede l'assenza della barra MP, se è presente la barra TP disegna sia la prima che la seconda.

 

I due script dovrebbero essere compatibili, però forse le barre non vengono disegnate correttamente.

Devi mettere il mio script SOPRA il tuo.

 

Dopodiché nel tuo caso devi provare a modificare questa porzione nel tuo script:

      #--------------------------------------------------------------------------
      # * Draw without MP
      #--------------------------------------------------------------------------
      def draw_gauge_area_without_mp(rect, actor)
        draw_actor_hp(actor, rect.x + 0, rect.y, 134)
        draw_actor_tp(actor, rect.x + 144, rect.y, 76)
      end
      #--------------------------------------------------------------------------
      # * Draw without HP
      #--------------------------------------------------------------------------
      def draw_gauge_area_without_hp(rect, actor)
        draw_actor_mp(actor, rect.x + 0, rect.y, 134)
        draw_actor_tp(actor, rect.x + 144, rect.y, 76)
      end
      #--------------------------------------------------------------------------
      # * Draw without TP and HP
      #--------------------------------------------------------------------------
      def draw_gauge_area_without_tp_hp(rect, actor)
        draw_actor_mp(actor, rect.x + 0, rect.y, rect.width)
      end
      #--------------------------------------------------------------------------
      # * Draw without MP and HP
      #--------------------------------------------------------------------------
      def draw_gauge_area_without_mp_hp(rect, actor)
        draw_actor_tp(actor, rect.x + 0, rect.y, rect.width)
      end
      #--------------------------------------------------------------------------
      # * Draw without TP and MP
      #--------------------------------------------------------------------------
      def draw_gauge_area_without_tp_mp(rect, actor)
        draw_actor_hp(actor, rect.x + 0, rect.y, rect.width)
      end

modificando i numeri che trovi, rendendoli simili a quelli nel mio script:

def draw_gauge_area_with_tp(rect, actor, offset_x)
    draw_actor_hp(actor, rect.x + offset_x, rect.y + 66, 96)
    draw_actor_mp(actor, rect.x + offset_x, rect.y + 78, 46)
    draw_actor_tp(actor, rect.x + 50 + offset_x, rect.y + 78, 46)
  end

  def draw_gauge_area_without_tp(rect, actor, offset_x)
    draw_actor_hp(actor, rect.x + offset_x, rect.y + 66, 96)
    draw_actor_mp(actor, rect.x + offset_x, rect.y + 78, 96)
  end

I numeri indicano le posizione delle barre nella finestra.

Dovrai farti un po' di tentativi, io attualmente non riesco a lavorarci su... :|

Aurora Dreaming


The Dreamer (v. 1.1) - standalone


72 MB - Il prequel ad Aurora Dreaming



segui il dev-diary ufficiale di Aurora Dreaming!



Bacheca Premi


http://www.rpg2s.net/forum/uploads/monthly_01_2014/post-6-0-39588100-1390575633.png

Link to comment
Share on other sites

Che sono incompatibili, perché il mio script prevede anche una variabile "offset_x" che il tuo script non prevede.

 

Niente, andrebbe modificato il mio script ma onestamente non penso di aver tempo di farlo. Mi spiace.

Aurora Dreaming


The Dreamer (v. 1.1) - standalone


72 MB - Il prequel ad Aurora Dreaming



segui il dev-diary ufficiale di Aurora Dreaming!



Bacheca Premi


http://www.rpg2s.net/forum/uploads/monthly_01_2014/post-6-0-39588100-1390575633.png

Link to comment
Share on other sites

Togliendo brutalmente la variabile offset in tutte le occorrenze succedono tanti casini, Midi? D:

(\_/)
(^ ^) <----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

Il fatto è che non basta. Andrebbero modificati i punti in cui vengono chiamati i metodi "draw_gauge_<xyz>".

Non è una roba complessa, ma richiede tempo. E altro tempo per essere testata.

Aurora Dreaming


The Dreamer (v. 1.1) - standalone


72 MB - Il prequel ad Aurora Dreaming



segui il dev-diary ufficiale di Aurora Dreaming!



Bacheca Premi


http://www.rpg2s.net/forum/uploads/monthly_01_2014/post-6-0-39588100-1390575633.png

Link to comment
Share on other sites

Ah capisco, volevo tentare una modifica bruta dopo aver letto il numero errato di argomenti, ma allora mi sto fermo che sembra essere più complessa la cosa! XD

^ ^

(\_/)
(^ ^) <----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

  • 5 months later...

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