Sleeping Leonhart Posted November 27, 2008 Share Posted November 27, 2008 Ability Point System VXDescrizioneConversione dello script analogo che ho precedentemente creato per il VXQuesto script permette di apprendere le magie attraverso l'uso di Ability Point.Prima di andare in battaglia si seleziona la skill che si vuole appprendere, a fine battaglia si acquisiscono degli Ability Point che verranno sommati a quelli già posseduti, se gli Ability Point raggiungono la quantità richiesta la skill viene appresa in modo definitivo. AutoreThe Sleeping Leonhart Script#============================================================================== # ** Ability Point System VX #------------------------------------------------------------------------------ # Autore: The Sleeping Leonhart # Versione: 1.0 # Data di rilascio: 27/11/2008 #------------------------------------------------------------------------------ # Descrizione: # Questo script permette di apprendere le magie attraverso l'uso di # Ability Point. Prima di andare in battaglia si seleziona la skill # che si vuole appprendere, a fine battaglia si acquisiscono degli # Ability Point che verranno sommati a quelli già posseduti, se gli # Ability Point raggiungono la quantità richiesta la skill viene appresa # in modo definitivo. #------------------------------------------------------------------------------ # Istruzioni: # Con il comando degli eventi Cambia Magie se la magia è inclusa nelle # skill che richiedono Ability Point questa viene aggiunta al menu delle # skill temporanee nel quale è possibile selezionare la skill a cui # verranno assegnati gli Ability Point. # Per richiamare il menù delle skill temporanee inserire # il seguente codice attraverso il comando Script degli eventi: # $scene = Scene_LearningSkill.new # Per personalizzare lo script andate nella sezione Configurazione. #============================================================================== #============================================================================== # Configurazione #============================================================================== module Ability_Point_System #========================================================================= # Skill_AP: Imposta le skill che richiedono Ability Point. #------------------------------------------------------------------------- # Sintassi: # Skill_AP = Skill_ID=>Ap_Number,...} # Parametri: # Skill_ID: Id della skill nel database # Ap_Number: Numero di Ability Point richiesti per apprendere la skill #========================================================================= Skill_AP = {1 => 10, 2 => 50} #========================================================================= # Enemy_AP: Imposta il numero di Ability Point ricevuti da ciascun mostro. #------------------------------------------------------------------------- # Sintassi: # Enemy_AP = Enemy_ID=>Ap_Number,...} # Parametri: # Enemy_ID: Id del Nemico nel database # Ap_Number: Numero di Ability Point ricevuti dal mostro #========================================================================= Enemy_AP = {1 => 5} #========================================================================= # Enemy_AP.default: Imposta il numero di Ability Point ricevuti da # ciascun mostro non definito in Enemy_AP. #------------------------------------------------------------------------- # Sintassi: # Enemy_AP.default = Ap_Number # Parametri: # Ap_Number: Numero di Ability Point ricevuti dal mostro #========================================================================= Enemy_AP.default = 1 #========================================================================= # AP_Name: Imposta il simbolo degli Ability Point. #------------------------------------------------------------------------- # Sintassi: # AP_Name = String # Parametri: # String: Simbolo degli Ability Point #========================================================================= AP_Name = "AP" end class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :active_skill attr_reader :temp_skills #-------------------------------------------------------------------------- # * Setup # actor_id : actor ID #-------------------------------------------------------------------------- alias tslaps_gameactor_setup setup def setup(actor_id) @active_skill = nil @temp_skills = [] @skill_ap = {} @skill_ap.default = 0 tslaps_gameactor_setup(actor_id) end #-------------------------------------------------------------------------- # * Return the current Skill Ap # skill_id : skill ID #-------------------------------------------------------------------------- def skill_ap(skill_id) return @skill_ap[skill_id] end #-------------------------------------------------------------------------- # * Learn Temp Skill # skill_id : skill ID #-------------------------------------------------------------------------- def learn_temp_skill(skill_id) if skill_id > 0 and not temp_skill_learned?(skill_id) @temp_skills.push(skill_id) @temp_skills.sort! end end #-------------------------------------------------------------------------- # * Add Ap to Skill # ap : ap #-------------------------------------------------------------------------- def add_skills_ap(ap) if @active_skill != nil @skill_ap[@active_skill] += ap if @skill_ap[@active_skill] >= Ability_Point_System::Skill_AP[@active_skill] learn_skill(@active_skill) @temp_skills.delete(@active_skill) @active_skill = nil if @temp_skills.size > 0 @active_skill = @temp_skills[rand(@temp_skills.size)] end end end end #-------------------------------------------------------------------------- # * Learn Skill # skill_id : skill ID #-------------------------------------------------------------------------- alias tslaps_gameactor_learn_skill learn_skill def learn_skill(skill_id) if Ability_Point_System::Skill_AP.include?(skill_id) and @skill_ap[skill_id] < Ability_Point_System::Skill_AP[skill_id] @active_skill = skill_id if @active_skill == nil learn_temp_skill(skill_id) else tslaps_gameactor_learn_skill(skill_id) end end #-------------------------------------------------------------------------- # * Determine if Finished Learning Temp Skill # skill_id : skill ID #-------------------------------------------------------------------------- def temp_skill_learned?(skill_id) return @temp_skills.include?(skill_id) end end class Scene_Battle #-------------------------------------------------------------------------- # * Victory Processing #-------------------------------------------------------------------------- alias tslaps_scenebattle_process_victory process_victory def process_victory ap = 0 for enemy in $game_troop.members unless enemy.hidden ap += Ability_Point_System::Enemy_AP[enemy.id] end end @ap = ap for i in 0...$game_party.members.size actor = $game_party.members[i] actor.add_skills_ap(ap) end tslaps_scenebattle_process_victory end #-------------------------------------------------------------------------- # * Display Gained Experience and Gold #-------------------------------------------------------------------------- alias tslaps_scenebattle_display_exp_and_gold display_exp_and_gold def display_exp_and_gold tslaps_scenebattle_display_exp_and_gold if @ap > 0 text = sprintf("%s %s ottenuti!", @ap, Ability_Point_System::AP_Name) $game_message.texts.push('\.' + text) end wait_for_message end end class RPG::Skill #-------------------------------------------------------------------------- # * Define Ap Cost #-------------------------------------------------------------------------- def ap_cost return Ability_Point_System::Skill_AP[id] end end class Window_LearningSkill < Window_Selectable #-------------------------------------------------------------------------- # * Object Initialization # actor : actor #-------------------------------------------------------------------------- def initialize(actor) super(0, 112, 544, 304) @actor = actor @column_max = 2 refresh self.index = 0 end #-------------------------------------------------------------------------- # * Acquiring Skill #-------------------------------------------------------------------------- def skill return @data[self.index] end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh @data = [] for i in 0...@actor.temp_skills.size skill = $data_skills[@actor.temp_skills[i]] if skill != nil @data.push(skill) end end # If item count is not 0, make a bit map and draw all items @item_max = @data.size create_contents if @item_max > 0 #self.contents = Bitmap.new(width - 32, row_max * 32) for i in 0...@item_max draw_item(i) end end end #-------------------------------------------------------------------------- # * Draw Item # index : item number #-------------------------------------------------------------------------- def draw_item(index) rect = item_rect(index) self.contents.clear_rect(rect) skill = @data[index] if @actor.active_skill == skill.id self.contents.font.color = normal_color else self.contents.font.color = Color.new(128, 128, 128) end if skill != nil rect.width -= 4 enabled = self.contents.font.color == normal_color ? true : false draw_icon(skill.icon_index, rect.x, rect.y, enabled) self.contents.draw_text(rect.x + 24, rect.y, 240, 24, skill.name + " - " + @actor.skill_ap(skill.id).to_s+"/"+Ability_Point_System::Skill_AP[skill.id].to_s) end end #-------------------------------------------------------------------------- # * Help Text Update #-------------------------------------------------------------------------- def update_help @help_window.set_text(self.skill == nil ? "" : self.skill.description) end end class Scene_LearningSkill #-------------------------------------------------------------------------- # * Object Initialization # actor_index : actor index #-------------------------------------------------------------------------- def initialize(actor_index = 0) @actor_index = actor_index end #-------------------------------------------------------------------------- # * Main Processing #-------------------------------------------------------------------------- def main # Get actor @actor = $game_party.members[@actor_index] # Make help window, status window, and skill window @help_window2 = Window_Help.new @help_window2.set_text("Seleziona una Skill da Apprendere", 1) @help_window = Window_Help.new @help_window.y = 56 @skill_window = Window_LearningSkill.new(@actor) # Associate help window @skill_window.help_window = @help_window # Execute transition Graphics.transition # Main loop loop do # Update game screen Graphics.update # Update input information Input.update # Frame update update # Abort loop if screen is changed if $scene != self break end end # Prepare for transition Graphics.freeze # Dispose of windows @help_window.dispose @help_window2.dispose @skill_window.dispose end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update # Update windows @help_window.update @help_window2.update @skill_window.update # If skill window is active: call update_skill if @skill_window.active update_skill return end end #-------------------------------------------------------------------------- # * Frame Update (if skill window is active) #-------------------------------------------------------------------------- def update_skill # If B button was pressed if Input.trigger?(Input::B) # Play cancel SE Sound.play_cancel # Switch to menu screen $scene = Scene_Map.new return end # If C button was pressed if Input.trigger?(Input::C) # Get currently selected data on the skill window @skill = @skill_window.skill @actor.active_skill = @skill.id Sound.play_decision @skill_window.refresh end # If R button was pressed if Input.trigger?(Input::R) # Play cursor SE Sound.play_cursor # To next actor @actor_index += 1 @actor_index %= $game_party.members.size # Switch to different skill screen $scene = Scene_LearningSkill.new(@actor_index) return end # If L button was pressed if Input.trigger?(Input::L) # Play cursor SE Sound.play_cursor # To previous actor @actor_index += $game_party.members.size - 1 @actor_index %= $game_party.members.size # Switch to different skill screen $scene = Scene_LearningSkill.new(@actor_index) return end end end Istruzioni per l'usoCon il comando degli eventi Cambia Magie se la magia è inclusa nelle skill che richiedono Ability Point questa viene aggiunta al menu delle skill temporanee nel quale è possibile selezionare la skill a cui verranno assegnati gli Ability Point.Per richiamare il menù delle skill temporanee inserire il seguente codice attraverso il comando Script degli eventi:$scene = Scene_LearningSkill.new Bugs e Conflitti NotiN/A Altri DettagliConversione richiesta da Darklink92 http://img296.imageshack.us/img296/8784/csuserbarew2.pngScarica la Demo!Tutti i miei script(o quasi) li trovi Qui! Link to comment Share on other sites More sharing options...
Darklink92 Posted November 27, 2008 Share Posted November 27, 2008 (edited) Grazie Sleep!!!!!Penso che mi servirà nel mio gioco! EDIT! Lo script funziona,ma c'è un problema,sembra che abbia effetto solo sul primo pg in lista,è normale?è un bug?Perfavore aiutami,così potro replicare il sistema di apprendimeto di ff9(piu o meno XD) Edit dell' edit ho notato che con q è possibile selezionare un'altro pg,mi chiedo se è possibile far si che si puo selezionare direttamente dal menù,poi sarebbe piu bello se lo scrip desse indicazioni come "con q selezioni un altro pg" e il char del pg (o il face) che indica quale è selezionato. Edited November 27, 2008 by Darklink92 Partecipante al Rpg2s.net Game Contest 2008/2009http://www.rpg2s.net/contest/GameContest0809/gc0809-bannerino.jpgGioco in Sviluppo: Fantasy Chronicle Disponibile Versione demo!(capitolo 1)Sarica e commenta anche tu! http://img120.imageshack.us/img120/3914/adlucariodd0.pnghttp://img74.imageshack.us/img74/8841/admariomc6.pnghttp://img177.imageshack.us/img177/8113/adzsamuszd3.pnghttp://img359.imageshack.us/img359/9097/adfalcoqq6.pnghttp://img382.imageshack.us/img382/3572/adlucasom6.pnghttp://img501.imageshack.us/img501/5646/adsnakepp3.png http://team.ffonline.it/imgpersonaggio/cloud_it.jpghttp://team.ffonline.it/imgpersonaggio/cyan_it.jpghttp://team.ffonline.it/imgpersonaggio/steiner_it.jpg Un tizio riguardo Mario Galaxy io l'ho provato, molto divertente e colorato, ma nn c'entra nulla il termine "cpaolavoro" o "miglior gioco" x un gioco del genere, e ha se, nn puo essere paragonato a "veri" giochi del calibro di resident evil,tekken,gran turismo,rachet e clank,assassin's creed ecc..... Link to comment Share on other sites More sharing options...
Darklink92 Posted November 27, 2008 Share Posted November 27, 2008 UP! scusate il fastidioso doppio post,ma mi serve davvero una mano : ( Partecipante al Rpg2s.net Game Contest 2008/2009http://www.rpg2s.net/contest/GameContest0809/gc0809-bannerino.jpgGioco in Sviluppo: Fantasy Chronicle Disponibile Versione demo!(capitolo 1)Sarica e commenta anche tu! http://img120.imageshack.us/img120/3914/adlucariodd0.pnghttp://img74.imageshack.us/img74/8841/admariomc6.pnghttp://img177.imageshack.us/img177/8113/adzsamuszd3.pnghttp://img359.imageshack.us/img359/9097/adfalcoqq6.pnghttp://img382.imageshack.us/img382/3572/adlucasom6.pnghttp://img501.imageshack.us/img501/5646/adsnakepp3.png http://team.ffonline.it/imgpersonaggio/cloud_it.jpghttp://team.ffonline.it/imgpersonaggio/cyan_it.jpghttp://team.ffonline.it/imgpersonaggio/steiner_it.jpg Un tizio riguardo Mario Galaxy io l'ho provato, molto divertente e colorato, ma nn c'entra nulla il termine "cpaolavoro" o "miglior gioco" x un gioco del genere, e ha se, nn puo essere paragonato a "veri" giochi del calibro di resident evil,tekken,gran turismo,rachet e clank,assassin's creed ecc..... Link to comment Share on other sites More sharing options...
Sleeping Leonhart Posted November 27, 2008 Author Share Posted November 27, 2008 Con il procedimento che ti indico adesso metterai il comando Apprendi sotto il Comando Skill.1)In Scene Menu cerca questo pezzo: def create_command_window s1 = Vocab::item s2 = Vocab::skill s3 = Vocab::equip s4 = Vocab::status s5 = Vocab::save s6 = Vocab::game_endsotto aggiungis7 = "Apprendi"Apprendi è la voce che apparirà nel menù puoi cambiarla se vuoi. 2)Modifica @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])in@command_window = Window_Command.new(160, [s1, s2, s7, s3, s4, s5, s6]) 3)Sotto def update_command_selection modifica case @command_window.index when 0 # Item $scene = Scene_Item.new when 1,2,3 # Skill, equipment, status start_actor_selection when 4 # Save $scene = Scene_File.new(true, false, false) when 5 # End Game $scene = Scene_End.new endincase @command_window.index when 0 # Item $scene = Scene_Item.new when 1,2,3,4 # Skill, equipment, status start_actor_selection when 5 # Save $scene = Scene_File.new(true, false, false) when 6 # End Game $scene = Scene_End.new end 4)Poi modifica sotto def update_actor_selection case @command_window.index when 1 # skill $scene = Scene_Skill.new(@status_window.index) when 2 # equipment $scene = Scene_Equip.new(@status_window.index) when 3 # status $scene = Scene_Status.new(@status_window.index) endincase @command_window.index when 1 # skill $scene = Scene_Skill.new(@status_window.index) when 2 # apprendi $scene = Scene_LearningSkill.new(@status_window.index) when 3 # equipment $scene = Scene_Equip.new(@status_window.index) when 4 # status $scene = Scene_Status.new(@status_window.index) end Ora ti si presenteranno 2 problemi, il primo è che quando esci dai sotto menu Equip,Status,Salva e Esci il cursore si troverà nella posizione sbagliata, per correggere vai in Scene_Equip, Scene_Status, Scene_File e Scene_End, troverai $scene = Scene_Menu.new(n), bene incrementa n di 1.Il secondo problema è che quando esci dal menù di apprendimento skill ti ritrovi sulla mappa, per correggere cerca:$scene = Scene_Map.newe sostituiscilo con:$scene = Scene_Menu.new(2)Se nn capisci qualcosa chiedi pure. Per le indicazioni invece dove vuoi che appaiono? http://img296.imageshack.us/img296/8784/csuserbarew2.pngScarica la Demo!Tutti i miei script(o quasi) li trovi Qui! Link to comment Share on other sites More sharing options...
Darklink92 Posted November 27, 2008 Share Posted November 27, 2008 non riesco ad aggiustare lo scene map.il resto procedimento che mi hai descritto per tutto il resto è pi o meno quello che ho usato io,ma non mi funzionava XD.Comunque qundo vinco una battaglia non escono gli ap ottenuti.Le indicazioni le vorrei in cima dove dice "seleziona le skill" Partecipante al Rpg2s.net Game Contest 2008/2009http://www.rpg2s.net/contest/GameContest0809/gc0809-bannerino.jpgGioco in Sviluppo: Fantasy Chronicle Disponibile Versione demo!(capitolo 1)Sarica e commenta anche tu! http://img120.imageshack.us/img120/3914/adlucariodd0.pnghttp://img74.imageshack.us/img74/8841/admariomc6.pnghttp://img177.imageshack.us/img177/8113/adzsamuszd3.pnghttp://img359.imageshack.us/img359/9097/adfalcoqq6.pnghttp://img382.imageshack.us/img382/3572/adlucasom6.pnghttp://img501.imageshack.us/img501/5646/adsnakepp3.png http://team.ffonline.it/imgpersonaggio/cloud_it.jpghttp://team.ffonline.it/imgpersonaggio/cyan_it.jpghttp://team.ffonline.it/imgpersonaggio/steiner_it.jpg Un tizio riguardo Mario Galaxy io l'ho provato, molto divertente e colorato, ma nn c'entra nulla il termine "cpaolavoro" o "miglior gioco" x un gioco del genere, e ha se, nn puo essere paragonato a "veri" giochi del calibro di resident evil,tekken,gran turismo,rachet e clank,assassin's creed ecc..... Link to comment Share on other sites More sharing options...
Sleeping Leonhart Posted November 28, 2008 Author Share Posted November 28, 2008 Che siginifica che non riesci ad aggiustare lo scene map?Cmq per cambiare la scritta delle istruzioni basta che cerchi@help_window2.set_text("Seleziona una Skill da Apprendere", 1)e lo modifichi con la scritta che vuoi tu.Mentre per gli Ap non visualizzati forse è dato dal fatto che non usi un BS standard. http://img296.imageshack.us/img296/8784/csuserbarew2.pngScarica la Demo!Tutti i miei script(o quasi) li trovi Qui! Link to comment Share on other sites More sharing options...
Darklink92 Posted November 29, 2008 Share Posted November 29, 2008 no problem,ho risolto!Per gli ap,sto cercando di risolvere da solo.L'unica cosa che mi sarebbe piaciuto avere,è inserire il chara e/o il face del pg che deve imparare l'abilità. Partecipante al Rpg2s.net Game Contest 2008/2009http://www.rpg2s.net/contest/GameContest0809/gc0809-bannerino.jpgGioco in Sviluppo: Fantasy Chronicle Disponibile Versione demo!(capitolo 1)Sarica e commenta anche tu! http://img120.imageshack.us/img120/3914/adlucariodd0.pnghttp://img74.imageshack.us/img74/8841/admariomc6.pnghttp://img177.imageshack.us/img177/8113/adzsamuszd3.pnghttp://img359.imageshack.us/img359/9097/adfalcoqq6.pnghttp://img382.imageshack.us/img382/3572/adlucasom6.pnghttp://img501.imageshack.us/img501/5646/adsnakepp3.png http://team.ffonline.it/imgpersonaggio/cloud_it.jpghttp://team.ffonline.it/imgpersonaggio/cyan_it.jpghttp://team.ffonline.it/imgpersonaggio/steiner_it.jpg Un tizio riguardo Mario Galaxy io l'ho provato, molto divertente e colorato, ma nn c'entra nulla il termine "cpaolavoro" o "miglior gioco" x un gioco del genere, e ha se, nn puo essere paragonato a "veri" giochi del calibro di resident evil,tekken,gran turismo,rachet e clank,assassin's creed ecc..... Link to comment Share on other sites More sharing options...
gianmarco Posted June 16, 2009 Share Posted June 16, 2009 Ottimo script, ho solo un piccolo problema, quando imposto gli AP che da ogni mostro, nonostante scriva l'id del nemico e il numero di AP, tutti i mostri mi danno sempre il numero di AP di default. Come risolvo?Grazie in anticipo! Link to comment Share on other sites More sharing options...
beorn Posted June 22, 2009 Share Posted June 22, 2009 Ottimo script, ho solo un piccolo problema, quando imposto gli AP che da ogni mostro, nonostante scriva l'id del nemico e il numero di AP, tutti i mostri mi danno sempre il numero di AP di default. Come risolvo?Grazie in anticipo! cerca questa riga : ap += Ability_Point_System::Enemy_AP[enemy.id]e sostituiscila con questa : ap += Ability_Point_System::Enemy_AP[enemy.enemy_id] Almeno mi pare di ricordare che ho sistemato questo piccolo bug in questo modo. Ciao. P.S.Lo sto usando da parecchio questo script e mi pare che sia l'unico bug che aveva, per cui resta validissimo. Link to comment Share on other sites More sharing options...
Dragonskiller Posted September 10, 2009 Share Posted September 10, 2009 Una domanda, è possibile inserire il messaggio che la "Skill X è stata imparata"? No, perché io quando la apprendo non mi appare nessun messaggio. Non è possibile farlo apparire? Giusto per amore della accuratezza... -_-' Scusate tanto... Link to comment Share on other sites More sharing options...
AlixT Posted October 23, 2009 Share Posted October 23, 2009 Ho un problema con la finestra:mi si apre senza problemi ma una volta aperta visualizza solo il cursore di selezionamento(il rettangolo che ti indica quale skill stai per selezionare) e niente altro... http://it.netlogstatic.com/p/oo/098/851/98851443.jpg Come risolvo?? Piovono gatti dal cielo!!!!....spero che quello non sia il mio.......Si mi sa ke è il tuo... >.>- - - -<.< Ops!Qui sotto la biografia:Nome:AlixTProfessione:Programmer,Mapping ,Beta Tester.Giochi preferiti:DMC 3 e 4, Prince of Persia 2 e 3, tutta la serie di Final Fantasy 7 (before crisis, crisis core,FF7, ma non Drige of Cerberus, quello no...Hobby:Cercare disperatamente di far fungere gli script scaricati da qst forum. Che però, in quanto il sottoscritto è pseudofisicamente incapace, si limita a guardare con ammirazione.Cosa sta fando: è lieto di aiutare chiunque abbia bisogno a creare un game, piuttosto di non fare una cicca... Link to comment Share on other sites More sharing options...
MasterSion Posted October 23, 2009 Share Posted October 23, 2009 Forse non hai messo skill da apprendere? http://img256.imageshack.us/img256/7639/ihateyou.gifUn uomo senza religione è come un pesce senza bicicletta.http://img18.imageshack.us/img18/3668/decasoft1.pnghttp://rpg2s.net/gif/SCContest1Oct.gifhttp://rpg2s.net/gif/SCContest2Oct.gifhttp://rpg2s.net/gif/SCContest2Oct.gif Link to comment Share on other sites More sharing options...
AlixT Posted October 23, 2009 Share Posted October 23, 2009 nono le ho messe, anke se ho messo a tutte un valore di 10 AP per essere apprese, dovrebbero funzionare...ma il punto è perchè nn le visualizza? Piovono gatti dal cielo!!!!....spero che quello non sia il mio.......Si mi sa ke è il tuo... >.>- - - -<.< Ops!Qui sotto la biografia:Nome:AlixTProfessione:Programmer,Mapping ,Beta Tester.Giochi preferiti:DMC 3 e 4, Prince of Persia 2 e 3, tutta la serie di Final Fantasy 7 (before crisis, crisis core,FF7, ma non Drige of Cerberus, quello no...Hobby:Cercare disperatamente di far fungere gli script scaricati da qst forum. Che però, in quanto il sottoscritto è pseudofisicamente incapace, si limita a guardare con ammirazione.Cosa sta fando: è lieto di aiutare chiunque abbia bisogno a creare un game, piuttosto di non fare una cicca... Link to comment Share on other sites More sharing options...
MasterSion Posted October 23, 2009 Share Posted October 23, 2009 Dovrei vedere il progetto per dirtelo con esatezza... Magari non le può apprendere quella determinata classe, guarda ho l'impressione che sia un errore molto stupido dovuto a una distrazione perchè l'rgss non da errori. http://img256.imageshack.us/img256/7639/ihateyou.gifUn uomo senza religione è come un pesce senza bicicletta.http://img18.imageshack.us/img18/3668/decasoft1.pnghttp://rpg2s.net/gif/SCContest1Oct.gifhttp://rpg2s.net/gif/SCContest2Oct.gifhttp://rpg2s.net/gif/SCContest2Oct.gif Link to comment Share on other sites More sharing options...
AlixT Posted October 23, 2009 Share Posted October 23, 2009 basta ke ti passi lo scriptper il resto è vuotoc'è solo la traduzione del databaseecco: #====================================================================== ======== # ** Ability Point System VX #------------------------------------------------------------------------------ # Autore: The Sleeping Leonhart # Versione: 1.0 # Data di rilascio: 27/11/2008 #------------------------------------------------------------------------------ # Descrizione: # Questo script permette di apprendere le magie attraverso l'uso di # Ability Point. Prima di andare in battaglia si seleziona la skill # che si vuole appprendere, a fine battaglia si acquisiscono degli # Ability Point che verranno sommati a quelli già posseduti, se gli # Ability Point raggiungono la quantità richiesta la skill viene appresa # in modo definitivo. #------------------------------------------------------------------------------ # Istruzioni: # Con il comando degli eventi Cambia Magie se la magia è inclusa nelle # skill che richiedono Ability Point questa viene aggiunta al menu delle # skill temporanee nel quale è possibile selezionare la skill a cui # verranno assegnati gli Ability Point. # Per richiamare il menù delle skill temporanee inserire # il seguente codice attraverso il comando Script degli eventi: # $scene = Scene_LearningSkill.new # Per personalizzare lo script andate nella sezione Configurazione. #============================================================================== #============================================================================== # Configurazione #============================================================================== module Ability_Point_System #========================================================================= # Skill_AP: Imposta le skill che richiedono Ability Point. #------------------------------------------------------------------------- # Sintassi: # Skill_AP = Skill_ID=>Ap_Number,...} # Parametri: # Skill_ID: Id della skill nel database # Ap_Number: Numero di Ability Point richiesti per apprendere la skill #========================================================================= Skill_AP = {1 => 10, 2 => 10,3 => 10,4 => 10,5 => 10,6 => 10,7 => 10,8 => 10, 9 => 10,10 => 10,11 => 10,12 => 10,13 => 10,14 => 10,15 => 10,16 => 10, 17 => 10,18 => 10,19 => 10,20 => 10,21 => 10,22 => 10,23 => 10,24 => 10, 25 => 10,26 => 10,27 => 10,28 => 10,29 => 10,30 => 10,31 => 10,32 => 10, 33 => 10,34 => 10,35 => 10,36 => 10,37 => 10,38 => 10,39 => 10,40 => 10, 41 => 10,42 => 10,43 => 10,44 => 10,45 => 10,46 => 10,47 => 10,48 => 10, 49 => 10,50 => 10,51 => 10,52 => 10,53 => 10,54 => 10,55 => 10,56 => 10, 57 => 10,58 => 10,59 => 10,60 => 10,61 => 10,62 => 10,63 => 10,64 => 10, 65 => 10,66 => 10,67 => 10,68 => 10,69 => 10,70 => 10,71 => 10,72 => 10, 73 => 10,74 => 10,75 => 10,76 => 10,77 => 10,78 => 10,79 => 10,80 => 10, 81 => 10,82 => 10,83 => 10} #========================================================================= # Enemy_AP: Imposta il numero di Ability Point ricevuti da ciascun mostro. #------------------------------------------------------------------------- # Sintassi: # Enemy_AP = Enemy_ID=>Ap_Number,...} # Parametri: # Enemy_ID: Id del Nemico nel database # Ap_Number: Numero di Ability Point ricevuti dal mostro #========================================================================= Enemy_AP = {1 => 5} #========================================================================= # Enemy_AP.default: Imposta il numero di Ability Point ricevuti da # ciascun mostro non definito in Enemy_AP. #------------------------------------------------------------------------- # Sintassi: # Enemy_AP.default = Ap_Number # Parametri: # Ap_Number: Numero di Ability Point ricevuti dal mostro #========================================================================= Enemy_AP.default = 5 #========================================================================= # AP_Name: Imposta il simbolo degli Ability Point. #------------------------------------------------------------------------- # Sintassi: # AP_Name = String # Parametri: # String: Simbolo degli Ability Point #========================================================================= AP_Name = "AP" end class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :active_skill attr_reader :temp_skills #-------------------------------------------------------------------------- # * Setup # actor_id : actor ID #-------------------------------------------------------------------------- alias tslaps_gameactor_setup setup def setup(actor_id) @active_skill = nil @temp_skills = [] @skill_ap = {} @skill_ap.default = 0 tslaps_gameactor_setup(actor_id) end #-------------------------------------------------------------------------- # * Return the current Skill Ap # skill_id : skill ID #-------------------------------------------------------------------------- def skill_ap(skill_id) return @skill_ap[skill_id] end #-------------------------------------------------------------------------- # * Learn Temp Skill # skill_id : skill ID #-------------------------------------------------------------------------- def learn_temp_skill(skill_id) if skill_id > 0 and not temp_skill_learned?(skill_id) @temp_skills.push(skill_id) @temp_skills.sort! end end #-------------------------------------------------------------------------- # * Add Ap to Skill # ap : ap #-------------------------------------------------------------------------- def add_skills_ap(ap) if @active_skill != nil @skill_ap[@active_skill] += ap if @skill_ap[@active_skill] >= Ability_Point_System::Skill_AP[@active_skill] learn_skill(@active_skill) @temp_skills.delete(@active_skill) @active_skill = nil if @temp_skills.size > 0 @active_skill = @temp_skills[rand(@temp_skills.size)] end end end end #-------------------------------------------------------------------------- # * Learn Skill # skill_id : skill ID #-------------------------------------------------------------------------- alias tslaps_gameactor_learn_skill learn_skill def learn_skill(skill_id) if Ability_Point_System::Skill_AP.include?(skill_id) and @skill_ap[skill_id] < Ability_Point_System::Skill_AP[skill_id] @active_skill = skill_id if @active_skill == nil learn_temp_skill(skill_id) else tslaps_gameactor_learn_skill(skill_id) end end #-------------------------------------------------------------------------- # * Determine if Finished Learning Temp Skill # skill_id : skill ID #-------------------------------------------------------------------------- def temp_skill_learned?(skill_id) return @temp_skills.include?(skill_id) end end class Scene_Battle #-------------------------------------------------------------------------- # * Victory Processing #-------------------------------------------------------------------------- alias tslaps_scenebattle_process_victory process_victory def process_victory ap = 0 for enemy in $game_troop.members unless enemy.hidden ap += Ability_Point_System::Enemy_AP[enemy.enemy_id] end end @ap = ap for i in 0...$game_party.members.size actor = $game_party.members[i] actor.add_skills_ap(ap) end tslaps_scenebattle_process_victory end #-------------------------------------------------------------------------- # * Display Gained Experience and Gold #-------------------------------------------------------------------------- alias tslaps_scenebattle_display_exp_and_gold display_exp_and_gold def display_exp_and_gold tslaps_scenebattle_display_exp_and_gold if @ap > 0 text = sprintf("%s %s ottenuti!", @ap, Ability_Point_System::AP_Name) $game_message.texts.push('\.' + text) end wait_for_message end end class RPG::Skill #-------------------------------------------------------------------------- # * Define Ap Cost #-------------------------------------------------------------------------- def ap_cost return Ability_Point_System::Skill_AP[id] end end class Window_LearningSkill < Window_Selectable #-------------------------------------------------------------------------- # * Object Initialization # actor : actor #-------------------------------------------------------------------------- def initialize(actor) super(0, 112, 544, 304) @actor = actor @column_max = 2 refresh self.index = 0 end #-------------------------------------------------------------------------- # * Acquiring Skill #-------------------------------------------------------------------------- def skill return @data[self.index] end #-------------------------------------------------------------------------- # * Refresh #-------------------------------------------------------------------------- def refresh @data = [] for i in 0...@actor.temp_skills.size skill = $data_skills[@actor.temp_skills[i]] if skill != nil @data.push(skill) end end # If item count is not 0, make a bit map and draw all items @item_max = @data.size create_contents if @item_max > 0 #self.contents = Bitmap.new(width - 32, row_max * 32) for i in 0...@item_max draw_item(i) end end end #-------------------------------------------------------------------------- # * Draw Item # index : item number #-------------------------------------------------------------------------- def draw_item(index) rect = item_rect(index) self.contents.clear_rect(rect) skill = @data[index] if @actor.active_skill == skill.id self.contents.font.color = normal_color else self.contents.font.color = Color.new(128, 128, 128) end if skill != nil rect.width -= 4 enabled = self.contents.font.color == normal_color ? true : false draw_icon(skill.icon_index, rect.x, rect.y, enabled) self.contents.draw_text(rect.x + 24, rect.y, 240, 24, skill.name + " - " + @actor.skill_ap(skill.id).to_s+"/"+Ability_Point_System::Skill_AP[skill.id].to_s) end end #-------------------------------------------------------------------------- # * Help Text Update #-------------------------------------------------------------------------- def update_help @help_window.set_text(self.skill == nil ? "" : self.skill.description) end end class Scene_LearningSkill #-------------------------------------------------------------------------- # * Object Initialization # actor_index : actor index #-------------------------------------------------------------------------- def initialize(actor_index = 0) @actor_index = actor_index end #-------------------------------------------------------------------------- # * Main Processing #-------------------------------------------------------------------------- def main # Get actor @actor = $game_party.members[@actor_index] # Make help window, status window, and skill window @help_window2 = Window_Help.new @help_window2.set_text("Seleziona una Skill da Apprendere", 1) @help_window = Window_Help.new @help_window.y = 56 @skill_window = Window_LearningSkill.new(@actor) # Associate help window @skill_window.help_window = @help_window # Execute transition Graphics.transition # Main loop loop do # Update game screen Graphics.update # Update input information Input.update # Frame update update # Abort loop if screen is changed if $scene != self break end end # Prepare for transition Graphics.freeze # Dispose of windows @help_window.dispose @help_window2.dispose @skill_window.dispose end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update # Update windows @help_window.update @help_window2.update @skill_window.update # If skill window is active: call update_skill if @skill_window.active update_skill return end end #-------------------------------------------------------------------------- # * Frame Update (if skill window is active) #-------------------------------------------------------------------------- def update_skill # If B button was pressed if Input.trigger?(Input::B) # Play cancel SE Sound.play_cancel # Switch to menu screen $scene = Scene_Menu.new(2) return end # If C button was pressed if Input.trigger?(Input::C) # Get currently selected data on the skill window @skill = @skill_window.skill @actor.active_skill = @skill.id Sound.play_decision @skill_window.refresh end # If R button was pressed if Input.trigger?(Input::R) # Play cursor SE Sound.play_cursor # To next actor @actor_index += 1 @actor_index %= $game_party.members.size # Switch to different skill screen $scene = Scene_LearningSkill.new(@actor_index) return end # If L button was pressed if Input.trigger?(Input::L) # Play cursor SE Sound.play_cursor # To previous actor @actor_index += $game_party.members.size - 1 @actor_index %= $game_party.members.size # Switch to different skill screen $scene = Scene_LearningSkill.new(@actor_index) return end end end Altri script che uso:Quest_System (che nn mi va)Skill_Shop(ke nn mi va)e questo (ke nn mi va) questo è quanto Piovono gatti dal cielo!!!!....spero che quello non sia il mio.......Si mi sa ke è il tuo... >.>- - - -<.< Ops!Qui sotto la biografia:Nome:AlixTProfessione:Programmer,Mapping ,Beta Tester.Giochi preferiti:DMC 3 e 4, Prince of Persia 2 e 3, tutta la serie di Final Fantasy 7 (before crisis, crisis core,FF7, ma non Drige of Cerberus, quello no...Hobby:Cercare disperatamente di far fungere gli script scaricati da qst forum. Che però, in quanto il sottoscritto è pseudofisicamente incapace, si limita a guardare con ammirazione.Cosa sta fando: è lieto di aiutare chiunque abbia bisogno a creare un game, piuttosto di non fare una cicca... Link to comment Share on other sites More sharing options...
vincent99 Posted August 22, 2010 Share Posted August 22, 2010 (edited) Ancora un ottimo script di questo utente geniale!!Ho seguito tutto passo passo e ora va a meraviglia ;)Volevo solo chiedere, se è possibile vedere un messaggio del tipo (XXX ha imparato XXX) quando appunto, apprendo l'abilità desiderata. E' forse troppo oppure con qualke passaggio si potrebbe realizzare? EDIT:c'è un piccolo bug...appena premo X, mi apre il menu e se lo premo again, il cursore si muove su apprendi, e quindi non mi fa tornare + alla mappa...come posso fare? Edited August 23, 2010 by vincent99 Link to comment Share on other sites More sharing options...
vincent99 Posted August 23, 2010 Share Posted August 23, 2010 (edited) Scusa il doppio post (anke se è passato one day) ma:HO RISOLTOOOOOOOOOOOOOOO!!!Mi sarò confuso nel seguire le istruzioni per copiare il comando apprendi! Infatti ho cancellato tutto lo script dello "scene_menu", ho ricopiato quello originale, ho ri-eseguito le istruzioni e ora va a meraviglia :D Ps: mi piace sempre di + smanettare con gli script xD xD EDIT (xD)Non c'è un modo per far apparire un messaggio del tipo "pino ha imparare la skill"? Edited August 23, 2010 by vincent99 Link to comment Share on other sites More sharing options...
vincent99 Posted August 24, 2010 Share Posted August 24, 2010 Ma ke fine ha fatto sleeping? :( Link to comment Share on other sites More sharing options...
rizzuccio Posted September 27, 2011 Share Posted September 27, 2011 Io ho un problema abbastanza piu' grosso...ho fatto tutto come detto ma appena apro la finestra non mi appare nulla, solo la classica finestra dei menu' ma totalmente vuota O.O http://www.freankexpo.net/signature.php?gid=683.png Link to comment Share on other sites More sharing options...
Astro86 Posted February 4, 2012 Share Posted February 4, 2012 cerca questa riga : ap += Ability_Point_System::Enemy_AP[enemy.id]e sostituiscila con questa : ap += Ability_Point_System::Enemy_AP[enemy.enemy_id] Almeno mi pare di ricordare che ho sistemato questo piccolo bug in questo modo. Ciao. P.S.Lo sto usando da parecchio questo script e mi pare che sia l'unico bug che aveva, per cui resta validissimo. Non mi va.. ora non mi da proprio punti 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