Jump to content
Rpg²S Forum

Squall_Leonheart

Utenti
  • Posts

    1,352
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by Squall_Leonheart

  1. Ottimo script kmq volevo chiederti se si potesse far si che alcune abilita' e magie potesse essere apprese solo da alcuni personaggi.

     

     

     

     

    Vedi che nella demo c'è il grid editor apposta per creare una scacchiera per ogni personaggio,basta che nn inserisci la stessa magia nei personaggi che nn devono averla.

     

     

     

    scustae il milionesimo ripost ma è troppo importyante questo script x ultimare il mio gioco

     

    vi pego potete rimettere lo script nella solita casella poiler verde invece ce in quella attuale bianca, perchè come già detto, mi si copia su un unica linea invece che nelle varie righe ed è l unico script che fa così

     

    prego qualcuno di ripostarlo o riscriverlo grazie

    never_land Inviato il Ieri, 02:30 PM

    scusate il ripost ma devo avere assolutamente questo script, solamente che come ho già detto, mi si copiatutto su una riga, qualcuno può dirmi come copiarlo (seconde me è per colpa della casella dove vi è inserito lo scipt, che è diversa dalle altre...........boo..........)

     

     

     

    Delle volte mi è capitato,nn so da cosa dipende ma prova a copiarlo prima nel txt oppure nella demo postata da Sleeping copia lo script per intero.

  2. Dunque premetto che non sono un esperto con il ruby,però da quanto leggo l'errore che ti dà dipende da come richiami lo script...

    Nella demo se vedi per richiamarlo utilizzano dei commenti con scritto light e dei numeri,i numeri stanno per il grado d'angolazione che vuoi imporre,oer attivare o disattivare la scena ti consiglio di usare gli switch locali sull'evento.

     

     

    Prova a creare un evento con un commento nel quale devi scivere:

     

    Light

    60|120|150|1|6

     

     

     

     

    Fammi sapere...(Metti animazione on all'evento impostato con azione.)

     

    P.S. Può anke derivare dall'SDK.

  3. Dunque scusate per il doppio post ma in attesa di una risposta volevo segnalarvi che su rmpx.org ho trovato uno script delle limit break compatibile con l'RTAB,però non ci capisco molto e non so come usarlo,purtroppo non sono riuscito a capire l'autore,però dalla mia traduzione ne ho ricavato che non è nient'altro che una modifica del KGC_Overdrive...Qualcuno puoi aiutarmi ad usarlo?

     

     

    #==============================================================================
    # ** KGC_Overdrive
    #------------------------------------------------------------------------------
    #  When the privately drawn gauge becomes filled, the skill attached to it is
    #  enabled.  
    #Edited by MistTribe to make it more FF7 like. I used the KGC_Ringer script placed way at
    #the bottom so if you edit the   OD_GAUGE_MAX(line 17) then you have make   
    #OD_GAUGE_MAX(line 377) the same value. I set it to 500 as so it gains a little faster.
    #==============================================================================
    
    #==============================================================================
    # * Customization Section *
    #==============================================================================
    
    module KGC
     
     # Overdrive gauge maximum.
     OD_GAUGE_MAX = 500
     
     # Overdrive gauge gain rate.
     # The order (index) and conditions are as follows:
     # Order(index) and conditions are as follows:
     #   0 = Attack	  1 = Damage
     #   2 = Victory	 3 = Escape
     #   4 = Alone	   5 = Action
     #   6 = Fatal
     #
     # The accumulation speed of '0'(Attack) and '1'(Damage)  changes based  on the
     # amount of damage. The higher the rate, the faster the overdrive gauge fills.
     OD_GAIN_RATE = [100, 100, 200, 100, 160, 100, 160]
    end
    
     $imported = {} if $imported == nil
     $imported["LimitBreak"] = true
    
     if $game_special_elements == nil
    $game_special_elements = {}
    $data_system = load_data("Data/System.rxdata")
     end
     # OverDrive Attribute
     $game_special_elements["limitbreak"] = $data_system.elements.index("LimitBreak")
    
    
    #==============================================================================
    # ** Game_Battler (Part 3)
    #==============================================================================
    
    class Game_Battler
    
     attr_accessor :base_damage
     #--------------------------------------------------------------------------
     # * Applying Normal Attack Effects (Edited)
     #	 attacker : battler
     #--------------------------------------------------------------------------
     alias attack_effect_KGC_OverDrive attack_effect
     def attack_effect(attacker)
    @base_damage = nil
    # Execute the original process
    result = attack_effect_KGC_OverDrive(attacker)
    if @base_damage == nil
      # Retaining basic damage value
      @base_damage = [attacker.atk - self.pdef / 2, 0].max *
    	(20 + attacker.str) / 20
    end
    # When the damage is received
    if result && self.damage[attacker].is_a?(Numeric)
      # When attacking increase decision
      if attacker.is_a?(Game_Actor) && self.is_a?(Game_Enemy) &&
    	attacker.overdrive_type == 0 && self.base_damage > 0
    	# OD gauge growth calculation
    	od_up = [[self.damage[attacker] * KGC::OD_GAIN_RATE[0] * 10 /
    	  self.base_damage, 1].max, 160].min
    	# OD gauge increase
    	attacker.overdrive += od_up
    	# At the time of suffering damage increase decision
      elsif attacker.is_a?(Game_Enemy) && self.is_a?(Game_Actor) &&
    	self.overdrive_type == 1 && self.base_damage > 0
    	od_up = [self.damage[attacker] * KGC::OD_GAIN_RATE[1] * 10 / 
    	  self.maxhp, 1].max
    	self.overdrive += od_up
      end
    end
    return result
     end
     #--------------------------------------------------------------------------
     # * Apply Skill Effects (Edited)
     #	 user  : the one using skills (battler)
     #	 skill : skill
     #--------------------------------------------------------------------------  
     alias skill_effect_KGC_OverDrive skill_effect
     def skill_effect(user, skill)
    @base_damage = nil
    # Execute the original process
    result = skill_effect_KGC_OverDrive(user, skill)
    if @base_damage == nil
      #Calculating power
      power = skill.power + user.atk * skill.atk_f / 100
      if power > 0
    	power -= self.pdef * skill.pdef_f / 200
    	power -= self.mdef * skill.mdef_f / 200
    	power = [power, 0].max
      end
      # Calculating magnification ratio
      rate = 20
      rate += (user.str * skill.str_f / 100)
      rate += (user.dex * skill.dex_f / 100)
      rate += (user.agi * skill.agi_f / 100)
      rate += (user.int * skill.int_f / 100)
      # Retaining the basic damage
      @base_damage = power * rate / 20
    end
    #When the damage is received
    if result && self.damage[user].is_a?(Numeric)
      # When attacking increase decision
      if user.is_a?(Game_Actor) && self.is_a?(Game_Enemy) &&
    	user.overdrive_type == 0 && self.base_damage > 0
    	# OD gauge growth calculation
    	od_up = [[self.damage[user] * KGC::OD_GAIN_RATE[0] * 10 / 
    	  self.base_damage, 1].max, 160].min
    	# OD gauge increase
    	user.overdrive += od_up
    	# At the time of suffering damage increase decision
      elsif user.is_a?(Game_Enemy) && self.is_a?(Game_Actor) &&
    	self.overdrive_type == 1 && self.base_damage > 0
    	od_up = [self.damage[user] * KGC::OD_GAIN_RATE[1] * 10 /
    	  self.maxhp, 1].max
    	self.overdrive += od_up
      end
    end
    # When overdrive skill is used
    if user.is_a?(Game_Actor) &&
      skill.element_set.include?($game_special_elements["limitbreak"])
      user.overdrive = 0
    end
    return result
     end
    end
    
    
    
    #==============================================================================
    # ** Game_Actor
    #==============================================================================
     KGC_Game_Actor_first = "LimitBreak" unless defined?(KGC_Game_Actor)
     module KGC_Game_Actor
     #--------------------------------------------------------------------------
     # * Active decision of skill
     #--------------------------------------------------------------------------
     if defined?(skill_can_use?) && !@_skill_can_use_overdrive
    alias skill_can_use_KGC_OverDrive skill_can_use?
     else
    @_skill_can_use_overdrive = true
     end
     def skill_can_use?(skill_id)
    result = true
    skill = $data_skills[skill_id]
    if skill != nil &&
      skill.element_set.include?($game_special_elements["limitbreak"])
      result = self.overdrive == KGC::OD_GAUGE_MAX
    end
    if defined?(skill_can_use_KGC_OverDrive)
      return result & skill_can_use_KGC_OverDrive(skill_id)
    else
      return result & super
    end
     end
     module_function :skill_can_use?
     public :skill_can_use?
    end
    
    
    class Game_Actor < Game_Battler
     include KGC_Game_Actor
     attr_writer :overdrive_type
     #--------------------------------------------------------------------------
     # * Setup
     #--------------------------------------------------------------------------
     alias setup_KGC_OverDrive setup
     def setup(actor_id)
    # Executing the processing of the origin
    setup_KGC_OverDrive(actor_id)
    @overdrive, @overdrive_type = 0, 1
     end
     #--------------------------------------------------------------------------
     # * Acquisition of OverDrive gauge
     #--------------------------------------------------------------------------
     def overdrive
    @overdrive = 0 if @overdrive == nil
    return @overdrive
     end
     #--------------------------------------------------------------------------
     # * Operation of OverDrive gauge
     #--------------------------------------------------------------------------
     def overdrive=(value)
    @overdrive = [[value, 0].max, KGC::OD_GAUGE_MAX].min
     end
     #--------------------------------------------------------------------------
     # * Acquisition of OverDrive type
     #--------------------------------------------------------------------------
     def overdrive_type
    @overdrive_type = 0 if @overdrive_type == nil
    return @overdrive_type
    end
     end
    
    
     #==========================================================================
    ====
     # ** Scene_Battle (Part 1)
     #==========================================================================
    ====
     class Scene_Battle
     #--------------------------------------------------------------------------
     # * Battle Ends
     #	 result : results (0:win 1:lose 2:escape)
     #--------------------------------------------------------------------------
     alias battle_end_KGC_OverDrive battle_end
     def battle_end(result)
    case result
    when 0 # Victory
      $game_party.actors.each { |actor|
      next unless actor.exist?
      #When drive type "victory" is, addition
      if actor.overdrive_type == 2
    	actor.overdrive += KGC::OD_GAIN_RATE[2]
      end
      }
    when 1 # Flight
      $game_party.actors.each { |actor|
      next unless actor.exist?
      # When drive type "flight" is, addition
      if actor.overdrive_type == 3
    	actor.overdrive += KGC::OD_GAIN_RATE[3]
      end
      }
    end
     # Defeat
     battle_end_KGC_OverDrive(result)
     end
    end
    
    
    
    #==============================================================================
    # ** Scene_Battle (Part 4)
    #==============================================================================
    
    class Scene_Battle
     #--------------------------------------------------------------------------
     # * Frame Update (main phase step 2 : start action) (Edited)
     #--------------------------------------------------------------------------
     alias update_phase4_step2_KGC_OverDrive update_phase4_step2
     def update_phase4_step2(battler)
    if battler.is_a?(Game_Actor)
      # Gauge increase decision
      case battler.overdrive_type
      when 4 # Lonely battle
    	alone = true
    	$game_party.actors.each { |actor|
      next if actor == battler
    	# When the survivor is, it is not lonely
    	if actor.exist?
    	  alone = false
    	  break
    	end
    	}
    	od_up = alone ? KGC::OD_GAIN_RATE[4] : 0
      when 5 # When acting
    	od_up = KGC::OD_GAIN_RATE[5]
      when 6 # Dying
    	od_up = (battler.hp <= battler.maxhp / 4) ?
    	KGC::OD_GAIN_RATE[6] : 0
      else
    	od_up = 0
      end
      battler.overdrive += od_up
    end
    # Executing the processing of the origin
    update_phase4_step2_KGC_OverDrive(battler)
     end
     #--------------------------------------------------------------------------
     # * Frame Update (main phase step 4 : animation for target) (Meter Edited)
     #--------------------------------------------------------------------------  
     alias update_phase4_step4_KGC_OverDrive update_phase4_step4
     def update_phase4_step4(battler) 
    @status_window.refresh
    update_phase4_step4_KGC_OverDrive(battler)
     end
    end
    
    #==============================================================================
    # ** Window_BattleStatus
    #==============================================================================
    
    class Window_BattleStatus < Window_Base
     #--------------------------------------------------------------------------
     # * Add Overdrive Meters
     #--------------------------------------------------------------------------
     alias refresh_KGC_OverDrive refresh
     def refresh(number = 0)
    if self.contents == nil
      self.contents = Bitmap.new(width - 32, height - 32)
    end
    if number == 0
      for i in 0...$game_party.actors.size
    	draw_actor_od($game_party.actors[i], i * 160 + 4, 88, 120)
      end
    else
      if $game_party.actors[number].is_a?(Game_Actor)
    	draw_actor_od($game_party.actors[number], number * 160 + 4, 88, 120)
      end
    end
    refresh_KGC_OverDrive(number)
     end
     #--------------------------------------------------------------------------
     # * Opacity Fix
     #--------------------------------------------------------------------------
     alias update_KGC_OverDrive update
     def update
    if $game_temp.battle_main_phase
      self.contents_opacity -= 4 if self.contents_opacity > 191
    else
      self.contents_opacity += 4 if self.contents_opacity < 255
    end
     end
     #--------------------------------------------------------------------------
     # * Draw Overdrive Meter
     #--------------------------------------------------------------------------
     def draw_actor_od(actor, x, y, width = 144)
    rate = actor.overdrive.to_f / KGC::OD_GAUGE_MAX
    plus_x = 0
    rate_x = 0
    plus_y = 25
    plus_width = 0
    rate_width = 100
    height = 10
    align1 = 1
    align2 = 2
    align3 = 0
    grade1 = 1
    grade2 = 0
    color1 = Color.new(0, 0, 0, 192)
    color2 = Color.new(255, 255, 192, 192)
    color3 = Color.new(0, 0, 0, 192)
    color4 = Color.new(64, 0, 0, 192)
    color5 = Color.new(80 - 24 * rate, 80 * rate, 14 * rate, 192)
    color6 = Color.new(240 - 72 * rate, 240 * rate, 62 * rate, 192)
    od = (width + plus_width) * actor.overdrive * rate_width / 100 /
      KGC::OD_GAUGE_MAX
    gauge_rect(x + plus_x + width * rate_x / 100, y + plus_y,
    width, plus_width + width * rate_width / 100,
    height, od, align1, align2, align3,
    color1, color2, color3, color4, color5, color6, grade1, grade2)
     end
    end
    #==============================================================================
    # ** KGC_Overdrive Ringer										  (09-05-2006)
    #------------------------------------------------------------------------------
    #	by DerVVulfman
    #
    #-------------------------------------------------------------------------------
    #  A requested feature, this script checks whenever the overdrive bar is filled
    #  and plays a pre-set sound effect accordingly. There isn't much to the script
    #  and was fairly easy to write. It will work with both versions 1 and 2 of the
    #  KGC_Overdrive script that I've posted,  and will probably work with the ori-
    #  ginal version of KGC_Overdrive before it was edited by Minkoff.
    #  
    #==============================================================================
    
    
    
    #============================================================================== 
    # ** Scene_Battle
    #------------------------------------------------------------------------------
    #  This class performs battle screen processing.
    #==============================================================================
    class Scene_Battle
     
     # Overdrive gauge maximum (same value as in KGC_OverDrive Script).
     OD_GAUGE_MAX = 500
     
     #--------------------------------------------------------------------------
     # * Full OD Gauge SE
     #--------------------------------------------------------------------------
     def fullod_se
    Audio.se_play("Audio/SE/015-jump01", 100, 100)
     end
     #--------------------------------------------------------------------------
     # * Frame renewal (OD gauge renewal phase)
     #--------------------------------------------------------------------------
     alias update_phase0_overring update_phase0
     def update_phase0
    # Call the original def from RTAB
    update_phase0_overring
    # Go through the Actors
    $game_party.actors.each { |actor|
      # Only perform if the actor exists
      next unless actor.exist?
      # When the Overdrive bar is set to zero,
      # Reset the Overdrive Ringer to false
      if actor.overdrive == 0
    	actor.overdrive_ring = false
      end
      # When the Overdrive Ringer hasn't rung
      if actor.overdrive_ring == false
    	# But the Overdrive Bar is filled
    	if actor.overdrive == OD_GAUGE_MAX 
    	  # Play the Overdrive Sound Effect
    	  fullod_se
    	  # And Set the Overdrive Ringer to true
    	  actor.overdrive_ring = true
    	end
      end
      }
     end
    end
    
     
    
    #==============================================================================
    # ** Game_Actor
    #------------------------------------------------------------------------------
    #  This class handles the actor. It's used within the Game_Actors class
    #  ($game_actors) and refers to the Game_Party class ($game_party).
    #==============================================================================
    class Game_Actor < Game_Battler
     #--------------------------------------------------------------------------
     # * Public Instance Variables
     #--------------------------------------------------------------------------
      attr_accessor :overdrive_ring
     #--------------------------------------------------------------------------
     # * Setup
     #--------------------------------------------------------------------------
     alias setup_KGC_OverRing setup
     def setup(actor_id)
    # Executing the processing of the origin
    setup_KGC_OverRing(actor_id)
    @overdrive_ring = false
     end
    end

  4. Dunque,grazie per avermi risposto,però ho riscontrato dei problemi,le limit funzionano ma con il sistema di battaglia normale e non con l'RATB.come risolvo?

    Secondo non so dove prendere l'ultimo SDK per far funzionare lo script di Sephiroth Spawn e terzo riguardo la camminata diagonale ho trovato solo quella di Dad.

    Come devo fare?

  5. Dunque siccome con il tasto cerca non ho trovato niente,vi porgo qui la richiesta di questi 3 script(ammesso che esistanoxD)

     

     

     

     

    1)Camminata diagonale

     

    Descrizione:Una volta avevo una demo in cui era inserita a camminata diagonale con il rispettivo frame + la camminata fluida,per farla breve c'era un'animazione a 9 frame per tutti e 8 i lati

     

     

     

    2)Limit Break

     

     

    Descrizione:Sistema di tecniche speciale alla FFVII,non so se sia stato creato però provoXDPossibilmente compatibile con l'RTAB

     

     

     

    3)In pratica vorrei che per esempio in un panorama dover c'è una prateria in primo piano e una casa in secondo,più l'eroe si allontani più si rimpiccioliscie il chara,potrei farlo ad eventi ma credo che gli script evitano dei rallentamenti.

     

     

     

    Scusate se sono seccante ma credo che il forum serva a questo^^

  6. Innanzitutto complimenti all'autore che ha fatto un bel lavoro^^

    Poi volevo chiedere se in questa versione c'è abilitata la funzione che fa si che alcune licenze si attivino solo ad un punto del gioco,tipo per gli esper in FFXII(A me precisamente servirebbe che dopo un determinato evento sia apprendibile una skill)

  7. SCENE CARICAMENTO





    Autore:Io


    Descrizione:Dunque vedendo le varie scene intro postate per i forum,ci ho iniziato a capire qualcosa e ho deciso di fare il mio primo scriptXD
    Dunque questa scene in pratica permette all'utente di far si che una successione di immagini portino a mostrare un caricamento professionaleXD
    In parole povere,quando volete,magari prima di una scena,fate caricare il gioco per dargli un tocco in più.

    Allegati:Nessuno

    Istruzioni per l'uso:

    Innanzitutto create una nuova classe sopra main e chiamatela "Scene_Loading" poi incollateci questo dentro:

     

    #=====================================================
    # ■ Scene_Loading
    #-------------------------------------------------------------------------------
    # Questo è uno script che simula il caricamento di gioco
    # By Squall Leonheart
    # Aggiornato il 8/11/2010
    #-------------------------------------------------------------------------------
    class Scene_Loading
    	#--------------------------------------------------------------------------
    	# ● Main
    	#--------------------------------------------------------------------------
    	def main
    		# Annulla l'esecuzione del bgm e del bgs della mappa.
    		$game_system.bgm_play(nil)
    		$game_system.bgs_play(nil)
    		@sprite = Sprite.new
    		# Ogni display mostra un'immagine, mettete tra parantesi
    		# Il numero di frame e il nome dell'immagine(Picture) tra virgolette.
    		display (100, "Caricamento.Png")
    		# Dispone le immagini.
    		@sprite.dispose
    		# Prepara la transizione.
    		Graphics.transition(120)
    		# Consente l'autoplay dei bgm e dei bgs della mappa.
    		$game_map.autoplay
    		$scene = Scene_Map.new
    	end
    	#------------------------------------------------------------------------------
    	# Def display
    	#------------------------------------------------------------------------------
    	def display (frame, name_pic)
    		@sprite.bitmap = RPG::Cache.picture(name_pic)
    		Graphics.transition(50)
    		loop do
    			frame -=1
    			Graphics.update
    			Input.update
    			if (frame == 0)
    				break
    			end
    		end
    		Graphics.freeze
    	end
    end
    

     



    Ora per utilizzarlo scrivete in un evento con la funzione script "$scene = Scene_Loading.new"
    Vi ricordo che il nome delle immagini è a piacere,basta scriverlo nello script come ho fatto io nell'esempio,ovvero nome dell'immagine più il formato;) A i numeri di fianco sono la durata della visione della picture:)

    Ringrazio tutti gli autori delle scene pre title per avermi ispirato:P Inizio a capirci qualcosaXD
    Ma ora a voi la parola

    ENJOY!!!:)

    Edit : Aggiunta una versione migliore.

  8. Ottimo,bravissimo.

    Però ti segnalo un piccolo bug,se ho equipaggiato nel jhp 100 goccia,essi aumentano del 100% ed è ok,però quando si va in battaglia e si utilizza quella magie l'hp totale non diminuisce,in FFVIII se utilizzavi la magia calava anke il parametro evidenziato^^

    Comunque complimenti lo stesso,magari se aggiusti questa cosa farei un ulteriore abbellimento a questo grande script^^

  9. Da molti errori di sintassi anke se credo dipende da come li copia dentro a maker...

    Per esempio a me dava molti errori perkè divideva i codici in righi etc,a chi accadesse consiglio di cancellare lo spazio e cosi facendo di unire il codice della riga segnalata dal maker a quella del rigo precedente...Cosi facendo mi parte e devo dire niente male;)

  10. Scusami ma non ho capito...

    Adesso per essere + chiaro copio come ho programmato l'evento comune che richiamo

     

    Variabile eroex = eroe x schermo

    Variabile eroey = eroe y schermo

    Variabile nemico1x = nemico x schermo

    Variabile nemico1y = nemico y schermo

     

    If se tasto B premuto

    Se variabile eroe girato = 0

    Cambia grafica eroe in pugno verso destra

    se variabile eroe x <= variabile nemico x

    se variabile eroe y== variabile nemico y

    suona se pugno

    variabile hp nemico - 1

    aspetta 5 frames

    cambia grafica eroe cammina dx

     

    Poi ho fatto lo stesso procedimento nell'altrimenti perkè in pratica utilizzo una variabile in cui se è 0 l'eroe è girato verso destra e quindi ovunque esso vada è girato in quella direzione e se la variabile è 1 essi è girato verso sinsitra;

    Quindi in pratica al posto di mette<= o messo >= e poi la grafica diversa...

    Ora mi accade che l'eroe colpisce ma da qualsiasi distanza,basta che sia sulla stessa asse y;

    Io vorrei che l'eroe quando è girato verso destra colpisse il nemico solo da sinistra e quindi bisognerebbe settare la variabile che analizzi la casella davanti al nemico da sinistra...Idem per la destra...

    Ora credo di essere stato più chiaro,per favore aiutatemi che sono bloccato da giorni col progetto solo per questa maledetta variabileXD

  11. Salve,stavo cercando di fare un bs in tempo reale ad eventi,però mi sono inceppato ad un punto.

    In pratica creando un attacco calcio o pugno non riesco a far si che se le x e y dell'eroe e del nemico coincidano la variabile hp nemico diminuisca.

    Io utilizzo gli eventi comuni che si attivano quando lo switch del combattimento è on,ne ho 2 una per il pugno che in pratica è una condizione if che cambia la grafica dell'eroe per 5 secondi mostrando il pugno e poi torna quella della camminata,lo stesso vale per il calcio.

    Ora non riesco ad impostare che se la variabile eroe x e y coincidano a quella del nemico x e y al momento della pressione di questi tasti permettano la recessione della variabile hp nemico.Come posso fare(Sempre se mi sono spiegato benexD)?

×
×
  • Create New...