Leon Posted December 13, 2006 Share Posted December 13, 2006 (edited) SISTEMA DI AVANZAMENTO STAT PERSONALIZZATO DescrizioneLo script permette di far salire le stat tramite "eventi" in battaglia (esempio):La STR massima aumenterà in base al numero di volte che si fa un attacco fisico.La DEX aumenterà in base al numero di colpi critici andati a buon fine e al numero di cambiamenti di status evitati.Gli HP massimi aumenterrano quando i nemici toglieranno al personaggio una certa % di HP.COMPLETAMENTE personalizzabile.Eccetera eccetera.Inoltre lo script blocca l'avanzamento di livello, ma non toglie i punti EXP guadagnati che possono essere usati magari per l'apprendimento di particolare Skill o quello che vi gira per la testa di fare. AutoreBlizzard(Creditate Blizzard, io ho solo modificato alcune cose e tradotto lo script in italiano ^^). Istruzioni per l'usoTrovate tutto all'interno comodamente scritto in italiano. Non è necessaria alcuna conoscenza di RGSS per modificare e personalizzare lo script. #============================================================================== # Sistema di Avanzamento Stat Personalizzato (CSGS) by Blizzard # versione 1.31b # Data: 20.5.2006 # Data v1.1: 24.5.2006 # Data v1.3b: 26.5.2006 # Data v1.31b: 27.6.2006 # # Ringraziamenti speciali # a Viviatus: per avere richiesto questo script =D # # NOTA IMPORTANTE: # Questo script disattiverà l'avanzamento di livello. E' consigliato l'uso # di uno script personalizzato per l'apprendimento delle skill. # # Compatibilità con l'SDK: # Questp script non è stato testato con l'SDK, ma al 97% dovrebbe funzionare. # CORROMPERA' i vecchi salvataggi di gioco. # # Descrizione: # Questo script disattiva l'avanzamento di livello; l'EXP continuerà ad essere # guadagnato e potrà essere usato per altri scopi. Tramite questo script # le stats del personaggio cambieranno in un modo diverso. # # Spiegazione: # - HP massimi aumenteranno se il personaggio perderà un num. di HP, uguale # ad una specifica (e personalizzabile) percentuale degli HP massimi. # - SP massimi aumenteranno se il personaggio perderà un num. di SP, uguale # ad una specifica (e personalizzabile) percentuale degli SP massimi. # - è anche possibile settare la % di successo di guadagnare HP/SP. # - STR aumenterà se il personaggio attaccherà spesso. # - DEX aumenterà se il personaggio effettuerà un colpo critico o riuscirà # ad evitare un cambio di status. # - INT aumenterà se il personaggio utilizzerà abilità magiche, ma non se # utilizzerà abilità basate su STR, DEX o AGI, ma solo sull'INT. # - AGI aumenterà se il personaggio eviterà attacchi fisici o sarà il primo # ad attaccare durante un turno. # # Lo script è già preconfigurato ma è configurarlo in base # alle proprie esigenze. Premi CTRL+F e scrivi CONFIGURATION, per trovare la # parte che può essere configurata. # # v1.1: # Corretto un bug dove anche i personaggi morti guadagnavano punti stat. # # v1.3b: # Aggiunta una finestra addizionale che mostra la stat che è aumentata. # #============================================================================== #============================================================================== # Game_Actor #============================================================================== class Game_Actor < Game_Battler attr_accessor :dmghp attr_accessor :usesp attr_accessor :xstr attr_accessor :xdex attr_accessor :xint attr_accessor :xagi alias setup_csgs_later setup def setup(actor_id) setup_csgs_later(actor_id) @dmghp = 0 @usesp = 0 @xstr = 0 @xdex = 0 @xint = 0 @xagi = 0 end def exp=(exp) # disabilità l'avanzamento di livello @exp = [[exp, 9999999].min, 0].max # Corregge gli HP/SP attuali @hp = [@hp, self.maxhp].min @sp = [@sp, self.maxsp].min end end #============================================================================== # Game_Battler #============================================================================== class Game_Battler alias attack_effect_csgs_later attack_effect def attack_effect(attacker) # salva l'ultimo numero di HP last_hp = self.hp saving = attack_effect_csgs_later(attacker) # Il personaggio è stato attaccato? if self.is_a?(Game_Actor) # Il personaggio ha subito danni? if last_hp > self.hp self.dmghp += (last_hp - self.hp) end if self.damage == "Mancato" self.xagi += 1 end end # Sta attaccando il personaggio? if attacker.is_a?(Game_Actor) # Il personaggio ha inflitto danni? if last_hp > self.hp attacker.xstr += 1 end # I danni sono stati di tipo critico? if self.critical == true attacker.xdex += 1 end end return saving end alias skill_effect_csgs_later skill_effect def skill_effect(user, skill) # salva l'ultimo numero di HP ed SP last_hp = self.hp last_sp = user.sp saving = skill_effect_csgs_later(user, skill) if self.is_a?(Game_Actor) # Il personaggio ha subito danni? if last_hp > self.hp self.dmghp += (last_hp - self.hp) end if @state_changed == false self.xdex += 1 end end if user.is_a?(Game_Actor) # Il personaggio ha utilizzato gli Punti Abilità? if last_sp > user.sp user.usesp += (last_sp - user.sp) end # L'abilità era di tipo magico? if skill.int_f != 0 user.xint += 1 end end return saving end alias slip_damage_effect_csgs_later slip_damage_effect def slip_damage_effect # salva l'ultimo numero di HP last_hp = self.hp saving = slip_damage_effect_csgs_later if self.is_a?(Game_Actor) # Il personaggio ha subito danni? if last_hp > self.hp self.dmghp += (last_hp - self.hp) end end return saving end end #============================================================================== # Window_StatsUp #============================================================================== class Window_StatsUp < Window_Base attr_accessor :statups def initialize(actor, i) @oldhp = actor.maxhp @oldsp = actor.maxsp @oldstr = actor.str @olddex = actor.dex @oldint = actor.int @oldagi = actor.agi @statups = false @index = i super(0, 80, 160, 240) self.contents = Bitmap.new(width - 32, height - 32) self.back_opacity = 160 self.x = i * 160 self.visible = false end def refresh(actor) self.contents.clear x = 0 y = 0 self.contents.font.color = system_color self.contents.draw_text(x, y, 64, 32, $data_system.words.hp) self.contents.draw_text(x, y + 32, 64, 32, $data_system.words.sp) self.contents.draw_text(x, y + 64, 96, 32, $data_system.words.str) self.contents.draw_text(x, y + 96, 96, 32, $data_system.words.dex) self.contents.draw_text(x, y + 128, 96, 32, $data_system.words.int) self.contents.draw_text(x, y + 160, 96, 32, $data_system.words.agi) self.contents.font.color = normal_color if actor.maxhp != @oldhp new = actor.maxhp - @oldhp self.contents.draw_text(x, y, width - 32, 32, " + " + new.to_s, 2) @statups = true end if actor.maxsp != @oldsp new = actor.maxsp - @oldsp self.contents.draw_text(x, y + 32, width - 32, 32, " + " + new.to_s, 2) @statups = true end if actor.str != @oldstr new = actor.str - @oldstr self.contents.draw_text(x, y + 64, width - 32, 32, " + " + new.to_s, 2) @statups = true end if actor.dex != @olddex new = actor.dex - @olddex self.contents.draw_text(x, y + 96, width - 32, 32, " + " + new.to_s, 2) @statups = true end if actor.int != @oldint new = actor.int - @oldint self.contents.draw_text(x, y + 128, width - 32, 32, " + " + new.to_s, 2) @statups = true end if actor.agi != @oldagi new = actor.agi - @oldagi self.contents.draw_text(x, y + 160, width - 32, 32, " + " + new.to_s, 2) @statups = true end end end #============================================================================== # Window_BattleStatus #============================================================================== class Window_BattleStatus < Window_Base def refresh self.contents.clear @item_max = $game_party.actors.size for i in 0...$game_party.actors.size actor = $game_party.actors[i] actor_x = i * 160 + 4 draw_actor_name(actor, actor_x, 0) draw_actor_hp(actor, actor_x, 32, 120) draw_actor_sp(actor, actor_x, 64, 120) if @level_up_flags[i] and not actor.dead? self.contents.font.color = normal_color self.contents.draw_text(actor_x, 96, 120, 32, "CARATTERISTICA AUMENTATA" else draw_actor_state(actor, actor_x, 96) end end end end #============================================================================== # Scene_Battle #============================================================================== class Scene_Battle alias main_csgs_later main def main #---------------------# # BEGIN CONFIGURATION # #---------------------# @hpchance = 50 # % chance di HP aumentati se il 50% degli HP max sono persi @spchance = 50 # % chance di SP aumentati se il 50% degli SP max sono usati @hplost = 50 # % di HP che deve essere consumata perchè gli HP max aumentino @spused = 50 # % di SP che deve essere consumata perchè gli SP max aumentino @hprate = 100 # quanti HP addizionali @sprate = 100 # quanti SP addizionali @strchance = 70 # % chance di aumento STR @dexchance = 70 # % chance di aumento DEX @intchance = 70 # % chance di aumento INT @agichance = 70 # % chance di aumento AGI @strrate = 7 # quanti punti STR addizionali @dexrate = 7 # quanti punti DEX addizionali @intrate = 7 # quanti punti INT addizionali @agirate = 7 # quanti punti AGI addizionali @strrate_min = 10 # min xstr necessaria per aumentare STR @dexrate_min = 10 # min xstr necessaria per aumentare DEX @intrate_min = 10 # min xstr necessaria per aumentare INT @agirate_min = 10 # min xstr necessaria per aumentare AGI # Nelle parte sotto si può attivare/disattivare il "Reset prima della # Battaglia", che resetterà i contatori che determinano quante volte una # stat è stata "stimolata". Disattivalo solo se vuoi che il contatore sia # RESETTATO A ZERO prima di ogni lotta. Questo vorrà dire che le stat # saliranno più vel.in battaglie LUNGHE che in MOLTE battaglie. for i in 0...$game_party.actors.size actor = $game_party.actors[i] actor.dmghp = 0 actor.usesp = 0 #actor.xstr = 0 # rimuovi il # all'inizio per attivare il "RPB" per STR #actor.xdex = 0 # rimuovi il # all'inizio per attivare il "RPB" per DEX #actor.xint = 0 # rimuovi il # all'inizio per attivare il "RPB" per INT #actor.xagi = 0 # rimuovi il # all'inizio per attivare il "RPB" per AGI end #-------------------# # END CONFIGURATION # #-------------------# main_csgs_later if @statsup_windows != nil for i in @statsup_windows i.dispose end end end alias start_phase5_csgs_later start_phase5 def start_phase5 start_phase5_csgs_later # Aumento stats @statsup_windows = [] for i in 0...$game_party.actors.size actor = $game_party.actors[i] @statsup_windows.push(Window_StatsUp.new(actor, i)) unless actor.dead? # Persi abbastanza HP per l'aumento? if actor.dmghp >= actor.maxhp * @hplost / 100 if rand(100) <= @hpchance actor.maxhp += @hprate @status_window.level_up(i) end end # Persi abbastanza SP per l'aumento? if actor.usesp >= actor.maxsp * @spused / 100 if rand(100) <= @spchance actor.maxsp += @sprate @status_window.level_up(i) end end # Abbastanza xstr guadagnata per aumentare STR? if actor.xstr >= @strrate_min if rand(100) <= @strchance actor.str += @strrate actor.xstr = 0 @status_window.level_up(i) end end # Abbastanza xdex guadagnata per aumentare DEX? if actor.xdex >= @dexrate_min if rand(100) <= @dexchance actor.dex += @dexrate actor.xdex = 0 @status_window.level_up(i) end end # Abbastanza xint guadagnata per aumentare INT? if actor.xint >= @intrate_min if rand(100) <= @intchance actor.int += @intrate actor.xint = 0 @status_window.level_up(i) end end # Abbastanza xagi guadagnata per aumentare AGI? if actor.xagi >= @agirate_min if rand(100) <= @agichance actor.agi += @agirate actor.xagi = 0 @status_window.level_up(i) end end @statsup_windows[i].refresh(actor) end end end alias battle_end_csgs_later battle_end def battle_end(result) if result == 0 flag = true for i in @statsup_windows if i.statups i.visible = true flag = false end end @result_window.visible = false loop do Graphics.update Input.update if flag break end if Input.trigger?(Input::C) break end end end battle_end_csgs_later(result) end alias make_action_orders_csgs_later make_action_orders def make_action_orders make_action_orders_csgs_later if @action_battlers[0].is_a?(Game_Actor) @action_battlers[0].xagi += 1 end end end ConclusioniDovrebbe funzionare tutto, fatemi sapere e per qualsiasi problema non esitate a contattarmi o in questo topic o via pm ^^. Edited December 14, 2006 by Leon http://www.naruto-kun.com/images/narutotest/kakashi.jpgWaiting for Regression Official SiteMelodic/Old School Hardcore from Forlì.Supportate il violento rumore forlivese!http://img360.imageshack.us/img360/4893/firma1gp.pngLeon, the Avenger. Link to comment Share on other sites More sharing options...
Yazus Posted December 16, 2006 Share Posted December 16, 2006 O_Odavvero bravo complimenti! :chirol_buha: :chirol_hello2: Progetti in corsoMaura 2 Wars - La vendetta di Tefix[Rpg Maker XP]Demo = 100% Scaricala! Fare "Salva Oggetto con Nome"Gioco = 40%GRAFICA -Chara = 25%-Battelers = 20%-Battle Baks = 10%-Title Set = 50-Title = 100%SCRIPT -Battle System = 99%-Altri Script = 100% (Se ne trovo altri ancora meglio) MUSICA -BMG = 80%-BGS = 100%-ME = 60%-SE = 30%http://www.ff-fan.com/chartest/banners/tifa.jpgWhich Final Fantasy Character Are You?Final Fantasy 7 Link to comment Share on other sites More sharing options...
Leon Posted December 20, 2006 Author Share Posted December 20, 2006 ^_^Io ho solo tradotto e fatto qualche modifica, i complimenti li devi fare a Blizzard. :chirol_iei2: Comunque grazie lo stesso :chirol_buha: http://www.naruto-kun.com/images/narutotest/kakashi.jpgWaiting for Regression Official SiteMelodic/Old School Hardcore from Forlì.Supportate il violento rumore forlivese!http://img360.imageshack.us/img360/4893/firma1gp.pngLeon, the Avenger. Link to comment Share on other sites More sharing options...
Robertx Posted January 7, 2007 Share Posted January 7, 2007 Leon nn so come mettere uesto script potresti specificare meglio come faccio a meterlo ?oppure posta una demo cosi si fa prima ^_^ Link to comment Share on other sites More sharing options...
Leon Posted January 10, 2007 Author Share Posted January 10, 2007 Leon nn so come mettere uesto script potresti specificare meglio come faccio a meterlo ?Dunque:Se con metterlo intendi dove va inserito, semplicemente crei una classe sopra Main (se hai l'SDK lo metti sotto l'SDK, ma tanto è compatibile) e la chiami come ti pare.Se con metterlo intendi come farlo funzionare le istruzioni sono all'interno dello script passo a passo e sono davvero chiare e immediate: prova a guardarci ^_^ :chirol_buha: oppure posta una demo cosi si fa prima ^_^ Eh già, ma sai com'è, mancava la voglia XDComunque se non riesci a farlo funzionare da solo, posto la demo :chirol_iei2: http://www.naruto-kun.com/images/narutotest/kakashi.jpgWaiting for Regression Official SiteMelodic/Old School Hardcore from Forlì.Supportate il violento rumore forlivese!http://img360.imageshack.us/img360/4893/firma1gp.pngLeon, the Avenger. Link to comment Share on other sites More sharing options...
Robertx Posted January 23, 2007 Share Posted January 23, 2007 ho cercato di corregere l'errore ma nn so mi da sempre quel errore fai tu mi fa cosi :????? 'BSDD' ? 251 ??? SyntaxError ???????? Link to comment Share on other sites More sharing options...
A me mi Posted January 25, 2007 Share Posted January 25, 2007 (edited) fiigo loscript... è lo stesso sistema di evoluzione di ff2 (non 12, 2 quello dell'88) EDIT: manco a me funziona mi dà lo stesso errore di robertx Edited January 26, 2007 by A me mi Altri nickname: FFsaga, YourFF, GameRepublic = Ultima_WeaponRmxp.it, Makerando = EteRNaL FrIgHtfuLnEss Silver Element: io ho divvicoltà a scrivere "Comunque"...a volte diventa comquenu ed a volte comuwaA Me Mi: lolA Me Mi: hai sbajato a scrivere comuqneuA Me Mi: che è un errore grammaticale lolSilver Element: divvicoltà! comuqneu ecc.ecc.Silver Element: quello è dislessico aritscioA Me Mi: "aritscio"?.... Partecipante al Rpg2s.net Game Contest 2007/2008http://www.rpg2s.net/contest/GameContest0708/userbar_r2sgc.gifGiochi in Sviluppo: Slavery: Path to the Light Kingdom of Frank: Dragon Pupil Kyrie & Faithness Link to comment Share on other sites More sharing options...
marigno Posted January 26, 2007 Share Posted January 26, 2007 Molto probabilmente usate qualche script che non combacia alla funzione di questo (nel senso che non possono essere messi insieme) >_ Provate a mettere un "#" (senza virgolette) all'inizio della frase dove si trova l'errore ;) Link to comment Share on other sites More sharing options...
A me mi Posted January 26, 2007 Share Posted January 26, 2007 (edited) ho capito l'errore nella riga 250 la parentesi alla fine della riga non viene chiusa. chiudetela e il gioco partrà comunque io l'ho provato e non sono riusito a far salire le statistiche... anche modificando la configurazione..... edit: quando salgono le aratteristiche fine battaglia mi dà errore alla riga 400 mi pare ""action" notdefinied for nil:NIlclass" o una roba del genere Edited January 27, 2007 by A me mi Altri nickname: FFsaga, YourFF, GameRepublic = Ultima_WeaponRmxp.it, Makerando = EteRNaL FrIgHtfuLnEss Silver Element: io ho divvicoltà a scrivere "Comunque"...a volte diventa comquenu ed a volte comuwaA Me Mi: lolA Me Mi: hai sbajato a scrivere comuqneuA Me Mi: che è un errore grammaticale lolSilver Element: divvicoltà! comuqneu ecc.ecc.Silver Element: quello è dislessico aritscioA Me Mi: "aritscio"?.... Partecipante al Rpg2s.net Game Contest 2007/2008http://www.rpg2s.net/contest/GameContest0708/userbar_r2sgc.gifGiochi in Sviluppo: Slavery: Path to the Light Kingdom of Frank: Dragon Pupil Kyrie & Faithness Link to comment Share on other sites More sharing options...
Drake Posted March 30, 2007 Share Posted March 30, 2007 ha me mi da errore nella riga 251 " else" Link to comment Share on other sites More sharing options...
Cero Posted April 10, 2007 Share Posted April 10, 2007 bellissimo! Grazie! http://img368.imageshack.us/img368/1325/firmanz9.jpgDisponibile 1 invito per eRepublik, chiedete per MP | My WebSite | L'Alleanza dei Dragoni - RPG by Cero & Dexter Link to comment Share on other sites More sharing options...
Guest mcsrms Posted September 2, 2008 Share Posted September 2, 2008 Mi da errore alla riga 251....ho provato a mettere elsif.....boh.....HELP!!! Link to comment Share on other sites More sharing options...
Tribe X Posted February 12, 2009 Share Posted February 12, 2009 mi ricorda tanto final fantasy 2! TRIBE X: MEMBRO FONDATORE DEL DIGITADREAM PROJECTProgetti in corso:ERTHIA - THE LOST DIMENSIONProgetti in sospeso (Da riprendere al più presto):ARKANA CHRONICLESPS: Cercasi Scripter da includere nel team! Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now