Jump to content
Rpg²S Forum

Ability Point System VX


Sleeping Leonhart
 Share

Recommended Posts

Ability Point System VX

Descrizione

Conversione dello script analogo che ho precedentemente creato per il VX

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.

 

Autore

The 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'uso

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

 

Bugs e Conflitti Noti

N/A

 

Altri Dettagli

Conversione richiesta da Darklink92

Link to comment
Share on other sites

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 by Darklink92

 

 

Partecipante al Rpg2s.net Game Contest 2008/2009

Gioco in Sviluppo:

Fantasy Chronicle

 

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

http://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

UP!

 

 

scusate il fastidioso doppio post,ma mi serve davvero una mano : (

 

 

Partecipante al Rpg2s.net Game Contest 2008/2009

Gioco in Sviluppo:

Fantasy Chronicle

 

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

http://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

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_end

sotto aggiungi

s7 = "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
  end

in

case @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)
  end

in

case @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.new

e sostituiscilo con:

$scene = Scene_Menu.new(2)

Se nn capisci qualcosa chiedi pure.

 

Per le indicazioni invece dove vuoi che appaiono?

Link to comment
Share on other sites

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/2009

Gioco in Sviluppo:

Fantasy Chronicle

 

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

http://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

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.

Link to comment
Share on other sites

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/2009

Gioco in Sviluppo:

Fantasy Chronicle

 

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

http://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

  • 6 months later...

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

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

  • 2 months later...
  • 1 month later...

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

Forse non hai messo skill da apprendere?

http://img256.imageshack.us/img256/7639/ihateyou.gif

Un uomo senza religione è come un pesce senza bicicletta.

http://img18.imageshack.us/img18/3668/decasoft1.png

http://rpg2s.net/gif/SCContest1Oct.gifhttp://rpg2s.net/gif/SCContest2Oct.gifhttp://rpg2s.net/gif/SCContest2Oct.gif

Link to comment
Share on other sites

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

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

Un uomo senza religione è come un pesce senza bicicletta.

http://img18.imageshack.us/img18/3668/decasoft1.png

http://rpg2s.net/gif/SCContest1Oct.gifhttp://rpg2s.net/gif/SCContest2Oct.gifhttp://rpg2s.net/gif/SCContest2Oct.gif

Link to comment
Share on other sites

basta ke ti passi lo script

per il resto è vuoto

c'è solo la traduzione del database

ecco:

 

 

 

#======================================================================
========
# ** 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 :sisi:

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

  • 9 months later...

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 by vincent99
Link to comment
Share on other sites

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 by vincent99
Link to comment
Share on other sites

  • 1 year later...
  • 4 months later...

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...