Luke85
-
Posts
80 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Posts posted by Luke85
-
-
Ciao a tutti, dove devo andare nel codice per cambiare le dimensione del font SOLO della descrizione dell'oggetto?
Devo sia ridurla che far sì che la descrizione appaia su più righe (3 o più) di modo da farcene stare di più.
GRAZIE mille!!!
-
Faccio un esempio: nelle formule si parla di "a.atk" ovvero l'attacco del personaggio attaccante, etc
Da codice, se in una variabile voglio mettere, per esempio, l'attacco e l'evasione di un dato personaggio, come posso fare?
Ho consultato la guida di scripting ma non funziona, nel senso che mi blocco persino al primo esercizio con il print, in quanto non produce nulla a video, e si vede che mi sfugge qualcosa.
Se mi fate un esempio di codice su evento (clic su un npc) che mi prende quei due dati e me li mostra a video, penso di poter capire da solo tutto il resto. Grazie mille!
-
Grazie mi sarà molto utile!
Ma se volessi solo ottenerlo da codice, ovvero con un evento prendo il valore di EVA del pg e lo mostro a video?
(sì uso VX ACE!)
-
Ciao a tutti, dopo diversi anni mi rimetto al lavoro su RPG Maker ma avrei bisogno di qualche aiutino iniziale. Premetto che ho cercato sulla rete ma non sono stato capace di trovare nulla.
Il gioco mi da la possibilità di conoscere le statistiche di base del personaggio in qualunque momento, ma solo quelle di base.
Se io voglio, in un dato momento, ottenere ad esempio il rate di Evasione del personaggio, come faccio?
Inoltre: c'è una lista di tutti gli attributi di un personaggio che posso utilizzare negli script per conoscerne il valore?
Ciò che devo fare è solo prendere ognuno di questi valori (tutti quelli esistenti) e metterlo in una variabile da utilizzare e mostrare.
Grazie mille per l'aiuto!
-
Vorrei integrare nella scheda "status" alcune funzionalità dello script "stat points distribution" che potete trovare qui: http://www.rpgmakervx.net/index.php?showtopic=30962
ci sono ad esempio queste righe:
self.contents.draw_text(10,120,100,20,Vocab::atk)self.contents.draw_text(10,140,100,20,(actor.atk-bonus_atk).to_s+" + "+bonus_atk.to_s)
dove viene mostrata la parola "attacco" e poi l'attacco di base (totale - bonus oggetti) e di fianco l'attacco aggiunto dagli oggetti (bonus oggetti)
ad esempio, se ho 10 in attacco e una spada mi da 3, esce:
Attacco 10 + 3per usare quelle variabili "bonus_atk" lo script inizializza ciò:
#1) prende le 5 cose equipaggiateweapon = $data_weapons[actor.weapon_id]
shield = $data_armors[actor.armor1_id]
helm =$data_armors[actor.armor2_id]
body =$data_armors[actor.armor3_id]
accessory =$data_armors[actor.armor4_id]
#2) setta il bonus a zero per inizializzarlo
bonus_atk = 0
#3) se le 5 cose sono equipaggiate, ne somma i bonus attacco individuali mettendoli in bonus_atk
if weapon
bonus_atk += weapon.atk
end
if shield
bonus_atk += shield.atk
end
if helm
bonus_atk += helm.atk
end
if body
bonus_atk += body.atk
end
if accessory
bonus_atk += accessory.atk
end
lo script funziona molto bene e questo è solo un estratto.
tuttavia, prendendo questa parte e mettendola nel menu status da me modificato, mi da un errore dicendo che "non è stato definito il metodo o la classe Actor". Ma, che io sappia, ciò non avviene nemmeno nell'altro script, che ho esaminato da cima a fondo. Eppure l'altro funziona senza bloccarsi, come potete constatare provandolo dal link ad inizio post.
Dunque: che succede? come posso mostrare questa cosa (che ovviamente ripeterò per le altre 3 stat) nella mia finestra status modificata, senza dover usare una finestra in più da menu rappresentata dallo script stat point distribution?
Grazie!!! :rovatfl:
-
Gentilissimo. Avevo già sostituito il font con uno che ci sta decisamente meglio sia a livello visivo che come dimensione (prende meno spazio). A questo punto vorrei ridurre leggermente la finestra di destra ed espandere quella di sinistra:
. ho trovato la dimensione della finestra di destra (in window_menustatus) e l'ho ridotta a destra
. ho trovato la posizione della finestra di destra (in scene_menu) e l'ho spostata a destra
. ho trovato la dimensione della finestra di sinistra (in scene menu) e l'ho aumentata a destra
. ho trovato la dimensione della finestra dell'oro (in window_gold) e l'ho aumentata a destra
Ora la scritta "Equipaggiamento" c'entra tutta e le 3 finestre sono perfettamente allineate tra loro. Evviva! ^o^
-
D. Dato che la parola "Equipaggiamento" mi viene rimpicciolita nel menù, e che nella pagina scene_menu non c'è alcuna riga dove posso definire la larghezza massima della stringa, come e dove posso agire per far sì che la parola, anche se lunga, non venga rimpicciolita, o abbia la lunghezza max da me scelta?
Grazie ^^
(ormai sono cliente abituale)
-
Ho risolto... mi piacerebbe poter dire come, ma non ne ho idea. Direi che è più corretto dire che "si è risolto". Ho cancellato tutto di nuovo, non ho importato i vecchi progetti, e lo faceva lo stesso. Ho ri-cancellato tutto per la 3' volta, progetti nuovi compresi, ho riavviato per la 2' volta, ho reinstallato e non ho più avuto il problema, anche importando i vecchi progetti. Non ci ho capito nulla e spero sinceramente che non capiti a nessuno e che sia un problema del mio pc o del mio sistema operativo perché non ho spiegazioni, né per questo, né per quelle scritte giapponesi, né per quei caratteri che sono apparsi dalla notte al giorno, etc...
-
Come temevo: disinstallato, cancellato tutto, reinstallato, importato il vecchio progetto... stesso errore di prima :(
Credo che potrei passarvi un progetto appena iniziato che fa l'errore allo stesso modo:
mi fa la stessa cosa anche con gli altri database degli altri progetti! in un mappa vuota metto un evento che aggiunge vari item fra cui uno creato da me... li aggiunge tutti tranne quello!così lo potete provare... ma a questo punto ho paura che si diffonda nel vostro programma e ve lo comprometta assieme agli altri progetti...
comunque anche dopo ave reinstallato, non solo i progetti vecchi ma anche quelli nuovi fanno lo stesso problema... dimenticavo: non solo non funzionano tutti quelli modificati o fatti nuovi, ma l'oggetto 31 delle armature, anche se non toccato! (il famoso mio "vestito" nell'altro progetto, che di standard è "robe" - non è una traduzione, è proprio un'altra cosa)
credo che la soluzione sia capire il problema e correggerlo, perché se è insito anche nei progetti, non posso rifare daccapo un gioco su cui sto lavorando da mesi...
-
E' possibile avere una lista degli errori corretti con questa traduzione, così da poterli correggere mantenendo il gioco in inglese? Mi riferisco a come correggere il famoso "bug delle variabili" ed a quanto altro eventualmente è stato corretto in questa patch ^^
-
Ho un grosso problema. Il gioco mi funziona perfettamente e spesso modifico oggetti nel database e ne creo di nuovi, e quando li inserisco nel gioco (ad esempio con un evento di prova per raccoglierli al passaggio) questi appaiono nell'equipggiamento. Tuttavia, da quando ho modificato l'oggetto 13 nella sezione armature (da quello di default, "robe", ad uno fatto da me, "vestito", con un icona del set predefinito, un nome ed una descrizione senza caratteri speciali, con prezzo 20 e difesa+2), non riesco più a far entrare nel gioco gli oggetti nuovi, modificati, oppure anche copia-incollati. Faccio eventi che aggiungono i più svariati oggetti, standard o comunque creati o modificati precedentemente, e li aggiunge tutti tranne quel "vestito" e qualsiasi altra cosa che abbia fatto sul db da lì in poi, Ad esempio, non mi aggiunge un nuovo oggetto aggiunto nel DB, oppure un oggetto già esistente che sia stato copiato ed incollato in un nuovo slot. Ho riavviato sia il programma che il gioco, lavorando dunque su salvataggi non vecchi: non cambia nulla. Che succede? :( Aiuto!
EDIT: in realtà non so se l'evento scatenante è stato l'oggetto "vestito". E' solo l'ultima cosa che ricordo (fatta stanotte). Da stamattina non funziona più. Gli script che uso li avevo inseriti tutti prima che succedesse questo, e funzionava tutto perfettamente.
Se può essere d'aiuto, da stamattina, nella sezione "modifica script", accanto a "scenes", "material", etc vedo delle frecce nere verso il basso (carattere ASCII) che prima non c'erano. Prima c'era un carattere a quadratino come quando qualcosa non viene riconosciuto.
Inoltre stanotte, facendo un copia-incolla di un nome di un oggetto, invece che uscirmi quel nome mi sono usciti dei caratteri giapponesi (???). Ho rifatto il copia-incolla ed è andato tutto bene.
Ho la vaga impressione che tutto questo c'entri qualcosa con un qualche cambio di font del programma, anche se non lo vedo...
EDIT2: mi fa la stessa cosa anche con gli altri database degli altri progetti! in un mappa vuota metto un evento che aggiunge vari item fra cui uno creato da me... li aggiunge tutti tranne quello! spero di non dover rifare tutto daccapo, ci ho lavorato per mesi, perché se si è buggato il programma non posso nemmeno reinstallarlo e rimettere il progetto, dato che anche ogni progetto sembra buggato... :( :( :( ho cercato su internet e non ho trovato nessun altro con il mio stesso problema...
-
Grazie!!!
-
Pardon, mi accorgo solo ora che la stringa non è venuta scritta^^ la rimetto:
self.contents.draw_text(200,30,200,20,"Esperienza: ")era la 3' riga del post precedente, che penso ora si capisca :P
-
Ah ma è come le funzioni del c++ allora :)
Faccio un esempio più pratico:
quello che sono riuscito a capire è che questa funzione scrive "esperienza : " e lo fa a partire dalla coordinata x=190, y=30 e.... il resto non capisco. modifico i numeri ma non mi è chiaro in base a cosa il testo si sposta.
questa riga è una delle tante tratte da uno script che, in cima, non ha alcuna dichiarazione di tale funzione, e dunque non posso leggere a cosa servono gli ultimi 2 numeri... :(
quella funzione la vedo anche fuori dallo script e dunque mi viene da pensare che sia una cosa standard dell'rpg maker vx... ma non ne conosco i parametri, tranne i primi 2 che sono palesi ed il 5' che è il testo ^^
-
Sì del 4% etc c'è nella documentazione, infatti ho scritto che l'ho letto proprio lì ^^
Ho capito il problema: quel "wich cause greater than normal damage" l'avevo interpretato come un "[se attivi quest'opzione] il danno critico farà ancora più danno del normale [danno critico]"... e invece significa semplicemente che il danno critico fa più danno del normale... era scontato ma avevo interpretato oltre, qualcosa che non c'era ^^
Dunque il danno critico, con quell'opzione o meno, aumenta solo di probabilità ma non di danno (che resta moltiplicato per 3)!
Grazie: ora ho anche visto dove cambiare le cifre ^^'
---
D. Analizzando alcuni script (non conosco ancora il linguaggio script) ho notato che per posizionare scritte ed immagini si usano array di 4 numeri, tipo "39, 58, 83, 255". Facendo modifiche qua e la ho solo capito che il 1' ed il 3' numero si riferiscono all'asse x, mentre gli altri due all'asse y. tuttavia non capisco bene come funzionano... hanno a che fare con l'allineamento del testo? Cosa fanno esattamente? Perché non c'è solo un numero per coordinata?
-
Ciao ragazzi, eccomi ancora qui al vostro sportello XD
Dunque ho notato un'incongruenza tra le meccaniche di RPG Maker VX e le sue didascalie.
D: Nella scheda "Eroi" del database, alla spunta "incrementa critici" appare una didascalia che descrive l'opzione come un raddoppio della possibilità di fare colpi critici, ed un aumento del loro danno. Per quanto ne sappia (fonte: il manuale del gioco) la percentuale di critici per gli eroi è del 4% (a fronte del 10% per i nemici), e con quell'opzione si raddoppia ad 8%... ma nella documentazione ufficiale non c'è nessuna traccia di un aumento dei danni! Dunque: con quell'opzione i danni aumentano? Se sì, e considerando che normalmente vengono moltiplicati per 3: come vengono calcolati?
Grazie!
-
ci avevo provato ad eventi, ma era da spaccarsi la testa... tieni presente che anche se ci smanetto da mesi posso considerarmi "nuovo" ^^
comunque, come dicevo uno script c'è già, quindi qualcuno si è messo a farlo :P parlo di quel "point spend system"
ma ha alcuni difetti. su un altro forum me ne hanno consigliato uno che sembra funzionare e che va solo personalizzato. per chi ha il mio stesso bisogno segnalo che lo script esiste:
Nome Script: Distribuzione Punti
Versione: 1.7
Autore/i: Lettuce
tra l'altro offre anche di più rispetto a quello che avevo pensato.. ma le funzioni indesiderate si possono sempre disattivare. grazie comunque per l'aiuto! ^^
-
Scrivo qui dato che nel supporto mi hanno consigliato di non intervenire su uno script decisamente buggato ma di cercarne un altro.
Cerco dunque uno script che non sia quello di "drago del fato" ("point spend system") che, date le stat iniziali del personaggio (magari mantenute tali da liv 1 a 99 dunque anche senza dover inserire una funzione che ignori le 6 curve impostate del pg), permetta di assegnare i punti delle 6 stat al pg man mano che livella. L'ideale sarebbe farlo alla diablo, ovviamente non come grafica ma come concetto: quando si passa di livello appare un indicatore (ad esempio un [+] di fianco al nome del pg) che mi segnala che posso entrare nel pg ed assegnarli le stat (poi mi vedo io la quantità di punti e quanto deve alzare le stat per ogni punto che assegno ad ognuna). Un buon script dovrebbe permettere:
a) di non obbligare ad assegnare le stat in un momento preciso, quindi posso entrare, vedere, magari anche toccare, ma uscire senza salvare le modifiche
b) far partire un suono (ad esempio "chime2" tanto per dire) al passaggio di livello
c) permettere di assegnare, nel momento che voglio, anche solo uno o alcuni dei punti guadagnati, salvare le modifiche, e poi tornare al gioco, tenendomi gli altri
d) accumulare i punti non spesi nei livelli passati e sommarli ai nuovi, anche quelli spesi solo parzialmente
e) conservare i punti non spesi anche da una partita salvata e caricata
f) continuare a segnalare con un [+] o simile il pg finché i punti da assegnare siano anche solo uno, e poi nessuna segnalazione nel momento che non ce ne sono più
lo script che ho avuto per le mani mancava i punti a, b ed e, fondamentali.
uno script del genere sarebbe ottimo perché non chiuderebbe il giocatore in un pg predefinito ma potrebbe personalizzarlo, giocare a modo suo, affrontare il gioco in modi sempre diversi, etc
grazie mille per l'aiuto...!!!
-
Ne conoscete qualcuno?
Ho usato la ricerca ma non ho trovato nulla.
Ho visto che in rete si parla di un "KGC distributor" o qualcosa del genere, ma non solo non lo trovo in una lingua che non sia il giapponese, ma appena lo metto non mi parte, mi da errori e mi sembra strano dato che KGC sembra essere uno famoso per le cose che ha fatto e per la sua bravura...
-
Ciao, ho scaricato questo script nella versione per il vx, ma mi da diversi problemi.
Serve a disabilitare l'aumento delle stat in favore dell'aggiunta delle stesse da parte del giocatore: ad ogni level up si sommano tot punti che io deciderò quando e a che caratteristiche assegnarli. Indispensabile per il gioco che sto sviluppando.
Il sito ufficiale è questo: http://rmscripts.net78.net/
Cliccate su "RPG Maker VX - Point Spend System"
Oppure potete leggerlo qui in spoiler:
#======================================================================
========
# ** RMVX Drago del Fato - PointSpendSystem
# - Type: Custom Material
# - Author: Drago del Fato
# - Version: 1.05
# - RPG Maker Version: VX
# - Implementation: Put in Materials list.
#------------------------------------------------------------------------------
# When you gain a new level in your RPG your character attributes will need to
# be manually increased instead of automatically. You can set a specified number
# of points user can spend on each level as well as how much each attribute will
# be increased. If you use this script please give credits, thx ^^
#==============================================================================
#--------------------------------------------------------------------------
# * Phase 1 - Language and Other Resources
#--------------------------------------------------------------------------
#--- Main Text Resources
PSS_TEXT = "You've got to a new level! Do you want to spend your points now?"
PSS_ANSWERS = ["Yes","No"]
PSS_ACTOR_TEXT = "[Lv +]"
PSS_DESCRIPTION = "Left - Decrease, Right - Increase, C - Confirm, B - Cancel"
PSS_B1 = "Reset Current Modifications"
PSS_B2 = "Save Modifications"
PSS_B3 = "Cancel"
PSS_RES1 = "Special Points Left - "
PSS_RES2 = "Are you sure with this?"
PSS_SEP = " <> "
PSS_NAME = "Name"
#--- Other Resources
$PSS_POINTS = 6
PSS_HP = 10
PSS_MP = 10
PSS_ATK = 1
PSS_DEF = 2
PSS_SPI = 3
PSS_AGI = 4
#--- Set to True if you want to be notified until that character has points left
PSS_NOTIFY_POINTS = true
#--- Global Resources (do not modify if you arent skilled in RGSS)
$PSS_ACTOR_POINTS = []
$PSS_ACTOR_LVL_UP = []
$PSS_ACTOR_ATTR = [1,1,1,1,1,1]
$PSS_ACTOR_ADD = [1,1,1,1,1,1]
$PSS_RETURN_POINTS = 0
$PSS_POINTER = [PSS_HP, PSS_MP, PSS_ATK, PSS_DEF, PSS_SPI, PSS_AGI]
#--------------------------------------------------------------------------
# * Phase 2 - Class Modifications
#--------------------------------------------------------------------------
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# * Change Experience
# exp : New experience
# show : Level up display flag
#--------------------------------------------------------------------------
def change_exp(exp, show)
last_level = @level
last_skills = skills
@exp = [[exp, 9999999].min, 0].max
while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
level_up
#-- Overwrite the new level parameters with past level one.
if !$BTEST
actor.parameters[0, @level] = actor.parameters[0, @level - 1]
actor.parameters[1, @level] = actor.parameters[1, @level - 1]
actor.parameters[2, @level] = actor.parameters[2, @level - 1]
actor.parameters[3, @level] = actor.parameters[3, @level - 1]
actor.parameters[4, @level] = actor.parameters[4, @level - 1]
actor.parameters[5, @level] = actor.parameters[5, @level - 1]
end
#-- Add Points to an actor when he levels up.
$PSS_ACTOR_LVL_UP[@actor_id] = true
$PSS_ACTOR_POINTS[@actor_id] += $PSS_POINTS
end
#-- Level down is deleted.
@hp = [@hp, maxhp].min
@mp = [@mp, maxmp].min
if show and @level > last_level
display_level_up(skills - last_skills)
end
end
def pss_change_actor_params(param_id, new_value)
actor.parameters[param_id, @level] = new_value
end
end
class Scene_Title < Scene_Base
#--------------------------------------------------------------------------
# * Create Game Objects
#--------------------------------------------------------------------------
def create_game_objects
$game_temp = Game_Temp.new
$game_message = Game_Message.new
$game_system = Game_System.new
$game_switches = Game_Switches.new
$game_variables = Game_Variables.new
$game_self_switches = Game_SelfSwitches.new
$game_actors = Game_Actors.new
$game_party = Game_Party.new
$game_troop = Game_Troop.new
$game_map = Game_Map.new
$game_player = Game_Player.new
for i in 0..$data_actors.size - 2
$PSS_ACTOR_POINTS.push(0)
$PSS_ACTOR_LVL_UP.push(false)
end
end
end
#-- Draw Level Up when a character goes to a new level, delete this class if
#-- you don't like this
class Window_Base < Window
def draw_actor_name(actor, x, y)
self.contents.font.color = hp_color(actor)
if $PSS_ACTOR_POINTS[actor.id] == 0
self.contents.draw_text(x, y, 108, WLH, actor.name)
else
ts = self.contents.text_size(actor.name + PSS_ACTOR_TEXT)
self.contents.draw_text(x, y, ts.width, ts.height, actor.name + PSS_ACTOR_TEXT)
end
end
end
#-- End of Level Up Character Name
class Scene_Status < Scene_Base
def start
#-- Original Status commands
super
create_menu_background
@actor = $game_party.members[@actor_index]
@status_window = Window_Status.new(@actor)
#-- End
if $PSS_ACTOR_LVL_UP[@actor_index + 1]
@pss_help = Window_PSS_Help.new
@pss_help.z = 9998
@pss_help.refresh_3
@status_window.opacity = 100
@status_window.contents_opacity = 100
@pss_confirm = Window_Command.new(300, [PSS_ANSWERS[0], PSS_ANSWERS[1]])
@pss_confirm.x = 245
@pss_confirm.y = 255
@pss_confirm.active = true
end
end
def update
if @pss_confirm != nil and @pss_confirm.active
@pss_confirm.update
if Input.trigger?(Input::C)
case @pss_confirm.index
when 0
@pss_confirm.visible = false
@pss_help.visible = false
$scene = Scene_PSS.new(@actor_index + 1)
when 1
@pss_confirm.visible = false
@pss_help.visible = false
@status_window.opacity = 160
@status_window.contents_opacity = 255
end
elsif Input.trigger?(Input::B)
@pss_confirm.visible = false
@pss_help.visible = false
@status_window.opacity = 160
@status_window.contents_opacity = 255
end
end
#-- Original Status commands
update_menu_background
@status_window.update
if Input.trigger?(Input::B)
Sound.play_cancel
return_scene
elsif Input.trigger?(Input::R)
Sound.play_cursor
next_actor
elsif Input.trigger?(Input::L)
Sound.play_cursor
prev_actor
end
super
#-- End
end
def terminate
#-- Original Status Commands
super
dispose_menu_background
@status_window.dispose
#-- End
@pss_confirm.dispose if @pss_confirm != nil
@pss_help.dispose if @pss_help != nil
end
end
#--------------------------------------------------------------------------
# * Phase 3 - PointSpendSystem Scene
#--------------------------------------------------------------------------
class Window_PSS_Help < Window_Base
def initialize
super(0,352,544,64)
refresh
end
def refresh
self.contents.clear
ts = self.contents.text_size(PSS_DESCRIPTION)
self.contents.draw_text(0,0,ts.width,ts.height, PSS_DESCRIPTION)
end
def refresh_2
self.contents.clear
ts = self.contents.text_size(PSS_RES2)
self.contents.draw_text(0,0,ts.width,ts.height, PSS_RES2)
end
def refresh_3
self.contents.clear
ts = self.contents.text_size(PSS_TEXT)
self.contents.draw_text(0,0,ts.width,ts.height, PSS_TEXT)
end
end
class Window_PSS_Main < Window_Selectable
def initialize(actor)
super(0, 0, 544, 352)
@actor = actor
refresh
self.index = 0
end
def refresh
self.contents.clear
#-- Draw Text Data
ts = self.contents.text_size(PSS_NAME)
self.contents.draw_text(160,32,ts.width,ts.height, PSS_NAME)
ts_a = self.contents.text_size(@actor.name)
self.contents.draw_text(170 + ts.width,32,ts_a.width,ts_a.height, @actor.name)
ts = self.contents.text_size(Vocab.level_a)
self.contents.draw_text(160,50,ts.width,ts.height,Vocab.level_a)
ts_a = self.contents.text_size(@actor.level)
self.contents.draw_text(170 + ts.width,50,ts_a.width,ts_a.height, @actor.level)
ts = self.contents.text_size(Vocab.atk)
self.contents.draw_text(160,96,ts.width,ts.height,Vocab.atk)
ts_a = self.contents.text_size(@actor.base_atk)
self.contents.draw_text(170 + ts.width,96,ts_a.width,ts_a.height, @actor.base_atk)
ts = self.contents.text_size(Vocab.def)
self.contents.draw_text(160,128,ts.width,ts.height,Vocab.def)
ts_a = self.contents.text_size(@actor.base_def)
self.contents.draw_text(170 + ts.width,128,ts_a.width,ts_a.height, @actor.base_def)
ts = self.contents.text_size(Vocab.spi)
self.contents.draw_text(160,160,ts.width,ts.height,Vocab.spi)
ts_a = self.contents.text_size(@actor.base_spi)
self.contents.draw_text(170 + ts.width,160,ts_a.width,ts_a.height, @actor.base_spi)
ts = self.contents.text_size(Vocab.agi)
self.contents.draw_text(160,192,ts.width,ts.height,Vocab.agi)
ts_a = self.contents.text_size(@actor.base_agi)
self.contents.draw_text(170 + ts.width,192,ts_a.width,ts_a.height, @actor.base_agi)
ts = self.contents.text_size(Vocab.hp)
self.contents.draw_text(160,224,ts.width,ts.height,Vocab.hp)
ts_a = self.contents.text_size(@actor.base_maxhp)
self.contents.draw_text(170 + ts.width,224,ts_a.width,ts_a.height, @actor.base_maxhp)
ts = self.contents.text_size(Vocab.mp)
self.contents.draw_text(160,256,ts.width,ts.height,Vocab.mp)
ts_a = self.contents.text_size(@actor.base_maxmp)
self.contents.draw_text(170 + ts.width,256,ts_a.width,ts_a.height, @actor.base_maxmp)
p_text = PSS_RES1 + $PSS_ACTOR_POINTS[@actor.id].to_s
ts_a = self.contents.text_size(p_text)
self.contents.draw_text(170 + ts.width,290,ts_a.width,ts_a.height, p_text)
#-- Draw Face
draw_actor_face(@actor, 8, 32)
draw_actor_graphic(@actor, 64, 180)
s1 = Vocab.hp + " " + $PSS_ACTOR_ATTR[0].to_s + PSS_SEP + $PSS_ACTOR_ADD[0].to_s
s2 = Vocab.mp + " " + $PSS_ACTOR_ATTR[1].to_s + PSS_SEP + $PSS_ACTOR_ADD[1].to_s
s3 = Vocab.atk + " " + $PSS_ACTOR_ATTR[2].to_s + PSS_SEP + $PSS_ACTOR_ADD[2].to_s
s4 = Vocab.def + " " + $PSS_ACTOR_ATTR[3].to_s + PSS_SEP + $PSS_ACTOR_ADD[3].to_s
s5 = Vocab.spi + " " + $PSS_ACTOR_ATTR[4].to_s + PSS_SEP + $PSS_ACTOR_ADD[4].to_s
s6 = Vocab.agi + " " + $PSS_ACTOR_ATTR[5].to_s + PSS_SEP + $PSS_ACTOR_ADD[5].to_s
@commands = [s1,s2,s3,s4,s5,s6]
for i in 0...6
draw_item(i)
end
@item_max = 6
@column_max = 1
end
def item_rect(index)
rect = Rect.new(0, 0, 0, 0)
rect.width = 200
rect.height = WLH
rect.x = 280 + (index % @column_max * (rect.width + @spacing))
rect.y = 96 + (index / @column_max * WLH)
return rect
end
def draw_item(index, enabled = true)
rect = item_rect(index)
rect.x += 30
self.contents.clear_rect(rect)
self.contents.font.color = normal_color
self.contents.font.color.alpha = enabled ? 255 : 128
self.contents.draw_text(rect, @commands[index])
end
def update
super
end
end
class Scene_PSS < Scene_Base
def initialize(actor_id)
@actor = $game_actors[actor_id]
end
def start
get_attributes
@pss_main = Window_PSS_Main.new(@actor)
@pss_help = Window_PSS_Help.new
@pss_confirm = Window_Command.new(300, [PSS_B1, PSS_B2, PSS_B3])
@pss_confirm.x = 245
@pss_confirm.y = 245
@pss_confirm.visible = false
end
def set_attributes
@actor.pss_change_actor_params(0,$PSS_ACTOR_ADD[0])
@actor.pss_change_actor_params(1,$PSS_ACTOR_ADD[1])
@actor.pss_change_actor_params(2,$PSS_ACTOR_ADD[2])
@actor.pss_change_actor_params(3,$PSS_ACTOR_ADD[3])
@actor.pss_change_actor_params(4,$PSS_ACTOR_ADD[4])
@actor.pss_change_actor_params(5,$PSS_ACTOR_ADD[5])
end
def get_attributes
$PSS_ACTOR_ATTR[0] = @actor.maxhp
$PSS_ACTOR_ATTR[1] = @actor.maxmp
$PSS_ACTOR_ATTR[2] = @actor.base_atk
$PSS_ACTOR_ATTR[3] = @actor.base_def
$PSS_ACTOR_ATTR[4] = @actor.base_spi
$PSS_ACTOR_ATTR[5] = @actor.base_agi
for i in 0..$PSS_ACTOR_ADD.size - 1
$PSS_ACTOR_ADD = $PSS_ACTOR_ATTR
end
$PSS_RETURN_POINTS = $PSS_ACTOR_POINTS[@actor.id]
end
def subtract_points
$PSS_ACTOR_ADD[@pss_main.index] -= $PSS_POINTER[@pss_main.index]
#-- When subtracted, add points back
$PSS_ACTOR_POINTS[@actor.id] += 1
#-- No subtraction if values is less than original
if $PSS_ACTOR_ADD[@pss_main.index] < $PSS_ACTOR_ATTR[@pss_main.index]
$PSS_ACTOR_ADD[@pss_main.index] = $PSS_ACTOR_ATTR[@pss_main.index]
$PSS_ACTOR_POINTS[@actor.id] -= 1
end
end
def add_points
if $PSS_ACTOR_POINTS[@actor.id] > 0
$PSS_ACTOR_ADD[@pss_main.index] += $PSS_POINTER[@pss_main.index]
$PSS_ACTOR_POINTS[@actor.id] -= 1
end
end
def update
@pss_main.update if @pss_main.active
@pss_confirm.update if @pss_confirm.active
if Input.trigger?(Input::LEFT)
if @pss_main.active
subtract_points
@pss_main.refresh
end
elsif Input.trigger?(Input::RIGHT)
if @pss_main.active
add_points
@pss_main.refresh
end
elsif Input.trigger?(Input::C)
if @pss_main.active
@pss_main.opacity = 100
@pss_main.contents_opacity = 100
@pss_help.refresh_2
@pss_confirm.visible = true
@pss_confirm.active = true
@pss_main.active = false
elsif @pss_confirm.active
case @pss_confirm.index
when 0
for i in 0..$PSS_ACTOR_ADD.size - 1
$PSS_ACTOR_ADD = $PSS_ACTOR_ATTR
end
$PSS_ACTOR_POINTS[@actor.id] = $PSS_RETURN_POINTS
@pss_main.refresh
pss_return_back
when 1
set_attributes
$PSS_ACTOR_LVL_UP[@actor.id] = false
if PSS_NOTIFY_POINTS
$PSS_ACTOR_LVL_UP[@actor.id] = true if $PSS_ACTOR_POINTS[@actor.id] > 0
end
$scene = Scene_Map.new
when 2
pss_return_back
end
end
elsif Input.trigger?(Input::B)
if @pss_main.active
$scene = Scene_Map.new
elsif @pss_confirm.active
pss_return_back
end
end
end
def pss_return_back
@pss_main.opacity = 255
@pss_main.contents_opacity = 255
@pss_help.refresh
@pss_confirm.visible = false
@pss_confirm.active = false
@pss_main.active = true
end
def pre_terminate
@pss_main.dispose
@pss_help.dispose
@pss_confirm.dispose
end
end
Ecco i problemi:
1) Se con le frecce assegno i punti (uno, qualcuno o tutti) e non premo il pulsante di conferma che apre il menù con le tre scelte (resetta le modifiche, conferma le modifiche, cancella) ma bensì premo il pulsante per uscire, mi ritorna al gioco avendo sprecato rispettivamente quell'uno, qualcuno o tutti punti assegnati ma non confermati, che sono letteralmente spariti. se qualcuno li mette per prova poi non conferma ma esce direttamente dalla funzione, e rientra, non se li trova più
2) Se acquisisco dei punti e non li assegno ma salvo il gioco, caricando il gioco perderò i punti non assegnati!
3) Anche se assegno i punti, salvando e caricando le statistiche del mio pg torneranno ad essere quelle di base (!!!)
A volte può non capitare con un solo salvataggio\caricamento ma con due. In ogni caso succede ed è davvero svilente... sapete aiutarmi?
PS: il 1' problema l'ho "risolto" mettendo come commenti le righe che compiono azioni alla pressione del pulsante "b":
elsif Input.trigger?(Input::B)if @pss_main.active
# $scene = Scene_Map.new
# elsif @pss_confirm.active
# pss_return_back
# end
end
in questo modo mi disabilita il tasto per uscire, ma comunque non è bello e poi per uscire bisogna prima confermare, poi fare "salva le modifiche ed esci", etc
insomma ci sono questi 3 problemi. potete aiutarmi? GRAZIE!
PPS: se avete script migliori di questo - e non buggati come questo - per assegnare i punti guadagnati con il level up, in stile diablo, accetto volentieri!!!
-
mi era scappata la condizione sbagliata d'attivazione dell'evento checkpoint, che quindi non partiva mai XD
funziona tutto, grazie!
adesso cerco di capire come personalizzarlo un po' :P
-
Grazie :)
Anche se, dopo aver inserito lo script sotto materials ed aver avviato una nuova partita cercando scontri fino a morire, devo dire che ahimé non funziona: esce la schermata di game over e torna al menù iniziale del gioco :(
-
Ok lo spiego ^^
Praticamente la soluzione suggeritami da Holy, cioè di oscurare lo schermo (fade out) prima del combattimento da evento e di mostrarlo di nuovo (fade in) in caso di vittoria o, solo dopo il teletrasporto dove voglio, in caso di sconfitta, ha i seguenti svantaggi:
a) non si vede l'animazione di transizione dalla mappa al combattimento
b) non si vede lo sfondo durante il combattimento (risulta tutto nero)
c) si potrebbe comunque fare solo nei combattimenti ad evento (cioè che attivo con istruzioni-eventi sulla mappa) e non su quelli casuali (nell'erba alta, etc)
Dunque: come posso fare, premesso che ho cercato script sia in questo sito che in altri e non ho trovato nulla?
PS: scusate se risulto tedioso ma nessuno, nemmeno su altri forum, è riuscito a rispondermi :(
PPS: entro un mesetto, con il vostro aiuto, dovrei aver tirato fuori la demo di un gioco che dovrebbe farmi perdonare ^^'
-
Holy ha detto che ci son diversi script provato a cercarli?
Sì ci ho provato nella sezione script ma non ho trovato nulla. Ho cercato "script morte", "teletrasporto", "pokemon" ma onestamente non saprei che altro cercare.
non ho capito... perchè c'è un ripristino totale ed un teletrasporto? Ti riferisci a prima della battaglia o dopo? Visto che dici 2eroe prima di iniziare... "presente il classico gioco dei pokemon? quando "muori" ti ritrovi "teletrasportato" al più vicino centro, e totalmente ricaricato. sto facendo un gioco diverso ma l'idea è quella: non esiste il game over, ma solo un avanzamento\miglioramento continuo, faticoso a volte ma senza mai potersi bloccare. Ovviamente il centro lo salvo io precedentemente in un gruppo di 3 variabili (mappa, x, y) ma non posso fare in modo che ciò avvenga nelle battaglie casuali. Negli scontri predeterminati posso inserire negli eventi qualche istruzione come mi ha detto holy ma comunque ci sarebbero i problemi sopra riportati (sparisce l'animazione di inizio battaglia, sparisce lo sfondo battaglia), e negli scontri casuali non posso inserire alcuna istruzione. Dunque penso di dover mettere uno script proprio nella struttura del gioco, che agisca a monte ovvero ad ogni combattimento, ma il linguaggio script non lo conosco e cercando gli script non li ho trovati :(
Intanto provo a cercare ancora

Modifica font descrizione oggetto
in Supporto RGSS3 (VX-Ace)
Posted
...c'è nessuno?