Jump to content
Rpg²S Forum

Zaoldieck

Utenti
  • Posts

    30
  • Joined

  • Last visited

Posts posted by Zaoldieck

  1. provo a semplificare la cosa, allora

     

    GIOCO REALE

     

    1) si ottiene il primo pentolone che consente di unire due item.

    2) arrivati a un punto del gioco un npc potenzia il tuo pentolone alchemico in modo che da quel momento in poi puoi unire fino a 3 item.

     

    3) tramite una missione secondaria il tuo pentolone viene potenziato ulteriormente riuscendo ad unire gli oggetti istantaneamente senza aspettare.

     

     

    GIOCO MIO

     

    1) si ottiene il "Pentolone Alchemico" ad un determinato punto del gioco

     

    (le ricette che ti diranno quali oggetti si possono fondere insieme si troveranno in giro nell avventura. e posso fare in modo che finche nn si ottenga il secondo pentolone, si trovino solo ricette da 2 ingredienti)

     

    2) seguendo la storyline si arriva ad un punto dove il pentolone viene "Potenziato" e da quel momento potra fondere fino a 3 item. e faro' in modo che l'oggetto Pentolone Alchemico venga rimosso dall inventario e venga aggiunto tipo un altro oggetto che si chiami "Pentolone Alchemico Potenziato"(che richiami lo stesso script del primo) e da questo momento in poi durante l avventura si troveranno e scopriranno ricette anche da 3 item.

    cioe' essendo lo stesso script anche il primo potrebbe fondere 3 item ma (a meno che nn sia la seconda volta che fai il gioco) il giocatore non conoscera le ricette da 3 perche nell avventura le ricette da 3 si incominceranno a trovare e scoprire solo da quando si otterra il pentolone da 3 in poi

     

    3) il problema in questo modo arriva nel terzo pentolone che dovrebbe azzerare il tempo.

     

     

    PS: nn so se mi sono spiegato bene dimmi se hai capito

  2. UPDATE: aggiornamento sullo script, nel gioco si otterranno 3 tipi di pentoloni alchemici differenti.

    con il primo si possono unire solo 2 ingredienti

     

    con il secondo che si riceve si possono unire fino a 3 ingredienti (pentolone che si ottiene piu avanti con la storia)

     

    con il terzo che si prende gli oggetti vengono craftati istantaneamente senza aspettare (pentolone che si ottiene piu avanti con la storia)

     

    quindi ho pensato di creare 3 item (pentoloni alchemici) diversi.

     

    la mia domanda e'.... "una volta che avro lo script dove si potra settare anche il tempo... potro' incollarlo 3 volte sotto Materials in modo che lo setterò uno per il primo pentolone, uno per il secondo e uno per il terzo?"

     

    in modo che posso impostare che il primo fa solo ricette che richiedono SOLO 2 matieriali(+ il fattore tempo), il secondo imposto ricette del pentolone di prima + ricette fino a 3 materiali(sempre con il fattore tempo) e il terzo con tutte le ricette (pero' senza tempo).

     

    aspetto risposte

  3. se e' un problema non facilmente risolvibile magari apro un topic a parte, non pensavo fosse una cosa cosi complessa :C quindi oltre che dal punto di vista "delle proprieta' " dell'arma si deve modificare anche la scena di combattimento solo nel caso si abbiano equipaggiate quelle armi. in modo che quando sia il turno del personaggio con un arma del genere, nonm chieda di selezionare il bersaglio ma attacchi automaticamente tutti quanti (nel caso si clicca attacca) quindi si dovrebbero riprodurre automaticamente piu animazioni del "colpo" su tutti i bersagli invece che su uno solo.

     

    accidenti che casino <_< aspetto ancora la soluzione, grazie a tutti per il supporto >_<

  4. Hai un alias che non è l'alias di un metodo (alias nome_alias nome_metodo; def nome_metodo; nome_alias; istruzioni; end)

    Ho fatto l'esempio con codice su riga singola, ma si capisce

     

    Inviato dal mio HUAWEI Y600-U20 utilizzando Tapatalk

    quindi come devo fare?

     

    ps: l'oggetto che attacca "ad area" non sono solo le armi di tipo "Boomerang" ma anche la armi di tipo "Frusta"

  5. Potresti fare via script: se vai su Game_BattlerBase riga 711 troverai l'ID della mossa che si esegue quando si attacca normalmente.

    Se la sostituisci con una condizione (ovvero controlli l'ID dell'arma equipaggiata) puoi fargli usare un'altra mossa che colpirà tutti!

    Credo dovrebbe essere:

    def attack_skill_id

    if item.wtype_id = (id del tipo dell'arma nel database)

    return (id della mossa che colpisce tutti)

    else

    return 1

    end

     

    (È consigliato usare un alias ma puoi anche sostituire direttamente il codice base)

    non conosco il linguaggio ruby potresti farmi lo script da mettere in Material? cosi che lo aggiungo senza fare casini pls

     

    PS: Non e' una mossa che colpisce tutti, e' quell arma specifica ad avere questa caratteristica. Cioe devo fare che se equipaggio una semplice spada quando in battaglia vado a fare "Attacca" potro' attaccare solo un bersaglio... mentre se ho equipaggiato un boomerang quando clicco "attacca" non deve farmi selezionare il bersaglio perche il boomerang attacca di default tutti quanti.

     

    non e' un abilita che si usa su un ipotetico menu "skill" o "magie"... e' il semplice "attacca" di base che (se ho equipaggiato un boomerang) deve colpire tutti.

    D: non si puo proprio fare tramite il database?

  6. D: con il mio personaggio posso equipaggiare diverse armi, tra cui spade, lancie, mazze. ecc... ora sto aggiungendo un altro tipo di arma (il boomerang) e devo fare che tutti i boomerang che creero' hanno l'abilita' di base che quando si fa "attacca" si colpiscono tutti i bersargli, invece di uno solo.

     

    nel mio gioco i boomerang hanno un attacco molto ridotto rispetto alle altre armi, pero colpiscono tutti. Non riesco ad impostare l'abilita che colpisca tutti i bersagli apparsi. ho provato a fare in un modo ma quando vado effettivamente a provare mi fa selezionare (e infatti attacca) un bersaglio solo. :(

     

    HELP

  7. D: ho creato un oggetto chiamato "Acqua Santa" e ora dovrei fare in modo che quando viene utilizzato (oggetto consumabile) disattivera' l'incontro dei mostri per i prossimi 60 passi.

    (una specie del REPELLENTE su Pokemon)

     

     

    ho provato a creare un effetto simile con gli eventi ma non riesco. chi mi puo' aiutare?

  8. ciao a tutti! ho recentemente aggiunto questo script di Yanfly per il battle sistem nel mio RPG

     

     

     

    #==============================================================================
    #
    # ¥ Yanfly Engine Ace - Visual Battlers v1.01
    # -- Last Updated: 2012.07.24
    # -- Level: Easy
    # -- Requires: n/a
    #
    # ¥ Modified by:
    # -- Yami
    # -- Kread-Ex
    # -- Archeia_Nessiah
    #==============================================================================

    $imported = {} if $imported.nil?
    $imported["YEA-VisualBattlers"] = true

    #==============================================================================
    # ¥ Updates
    # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    # 2012.12.18 - Added preset views and able to change direction in-game.
    # 2012.07.24 - Finished Script.
    # 2012.01.05 - Started Script.
    #
    #==============================================================================
    # ¥ Introduction
    # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    # This script provides a visual for all actors by default charsets. The actions
    # and movements are alike Final Fantasy 1, only move forward and backward when
    # start and finish actions.
    #
    #==============================================================================
    # ¥ Instructions
    # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    # To change the player direction in-game, use the snippet below in a script
    # call:
    #
    # $game_system.party_direction = n
    #
    # To install this script, open up your script editor and copy/paste this script
    # to an open slot below ¥ Materials but above ¥ Main. Remember to save.
    #
    #==============================================================================
    # ¥ Compatibility
    # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    # This script is made strictly for RPG Maker VX Ace. It is highly unlikely that
    # it will run with RPG Maker VX without adjusting.
    #
    #==============================================================================

    module YEA
    module VISUAL_BATTLERS

    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # - Party Location Setting -
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    # These settings are adjusted for Party Location. Each Actor will have
    # coordinates calculated by below formula. There are two samples coordinates
    # below, change PARTY_DIRECTION to the base index you want to use.
    #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    PARTY_DIRECTION = 2 # This direction is opposite from actual direction.

    PARTY_LOCATION_BASE_COORDINATES ={
    # Index => [base_x, base_y, mod_x, mod_y],
    2 => [ 250, 290, 40, 0], #UP
    4 => [ 150, 280, 20, -20], #LEFT
    3 => [ 460, 280, 30, -10], #RIGHT
    6 => [ 460, 230, 20, 20], #DEFAULT RIGHT
    8 => [ 260, 230, 40, 0], #DOWN
    } # Do not remove this.

    PARTY_LOCATION_FORMULA_X = "base_x + index * mod_x"
    PARTY_LOCATION_FORMULA_Y = "base_y + index * mod_y"

    end # VISUAL_BATTLERS
    end # YEA

    #==============================================================================
    # ¥ Editting anything past this point may potentially result in causing
    # computer damage, incontinence, explosion of user's head, coma, death, and/or
    # halitosis so edit at your own risk.
    #==============================================================================

    #==============================================================================
    # ? ¥ Direction
    #==============================================================================

    module Direction

    #--------------------------------------------------------------------------
    # self.correct
    #--------------------------------------------------------------------------
    def self.correct(direction)
    case direction
    when 1; return 4
    when 3; return 6
    when 7; return 4
    when 9; return 6
    else; return direction
    end
    end

    #--------------------------------------------------------------------------
    # self.opposite
    #--------------------------------------------------------------------------
    def self.opposite(direction)
    case direction
    when 1; return 6
    when 2; return 8
    when 3; return 4
    when 4; return 6
    when 6; return 4
    when 7; return 6
    when 8; return 2
    when 9; return 4
    else; return direction
    end
    end

    end # Direction

    #==============================================================================
    # ? ¥ Game_System
    #==============================================================================

    class Game_System; attr_accessor :party_direction; end

    #==============================================================================
    # ? ¥ Game_BattleCharacter
    #==============================================================================

    class Game_BattleCharacter < Game_Character

    #--------------------------------------------------------------------------
    # initialize
    #--------------------------------------------------------------------------
    def initialize(actor)
    super()
    setup_actor(actor)
    @move_x_rate = 0
    @move_y_rate = 0
    end

    #--------------------------------------------------------------------------
    # setup_actor
    #--------------------------------------------------------------------------
    def setup_actor(actor)
    @actor = actor
    @step_anime = true
    set_graphic(@actor.character_name, @actor.character_index)
    setup_coordinates
    dr = $game_system.party_direction || YEA::VISUAL_BATTLERS::PARTY_DIRECTION
    direction = Direction.opposite(dr)
    set_direction(Direction.correct(direction))
    end

    #--------------------------------------------------------------------------
    # sprite=
    #--------------------------------------------------------------------------
    def sprite=(sprite)
    @sprite = sprite
    end

    #--------------------------------------------------------------------------
    # setup_coordinates
    #--------------------------------------------------------------------------
    def setup_coordinates
    location = ($game_system.party_direction ||
    YEA::VISUAL_BATTLERS::PARTY_DIRECTION)
    base_x = YEA::VISUAL_BATTLERS::PARTY_LOCATION_BASE_COORDINATES[location][0]
    base_y = YEA::VISUAL_BATTLERS::PARTY_LOCATION_BASE_COORDINATES[location][1]
    mod_x = YEA::VISUAL_BATTLERS::PARTY_LOCATION_BASE_COORDINATES[location][2]
    mod_y = YEA::VISUAL_BATTLERS::PARTY_LOCATION_BASE_COORDINATES[location][3]
    @actor.screen_x = eval(YEA::VISUAL_BATTLERS::PARTY_LOCATION_FORMULA_X)
    @actor.screen_y = eval(YEA::VISUAL_BATTLERS::PARTY_LOCATION_FORMULA_Y)
    @actor.origin_x = @actor.screen_x
    @actor.origin_y = @actor.screen_y
    @actor.create_move_to(screen_x, screen_y, 1)
    end

    #--------------------------------------------------------------------------
    # index
    #--------------------------------------------------------------------------
    def index
    return @actor.index
    end

    #--------------------------------------------------------------------------
    # screen_x
    #--------------------------------------------------------------------------
    def screen_x
    return @actor.screen_x
    end

    #--------------------------------------------------------------------------
    # screen_y
    #--------------------------------------------------------------------------
    def screen_y
    return @actor.screen_y
    end

    #--------------------------------------------------------------------------
    # screen_z
    #--------------------------------------------------------------------------
    def screen_z
    return @actor.screen_z
    end

    end # Game_BattleCharacter

    #==============================================================================
    # ? ¥ Game_Battler
    #==============================================================================

    class Game_Battler < Game_BattlerBase

    #--------------------------------------------------------------------------
    # public instance variables
    #--------------------------------------------------------------------------
    attr_accessor :moved_back
    attr_accessor :origin_x
    attr_accessor :origin_y
    attr_accessor :screen_x
    attr_accessor :screen_y
    attr_accessor :started_turn

    #--------------------------------------------------------------------------
    # alias method: execute_damage
    #--------------------------------------------------------------------------
    alias game_battler_execute_damage_vb execute_damage
    def execute_damage(user)
    game_battler_execute_damage_vb(user)
    if @result.hp_damage > 0
    move_backward(24, 6) unless @moved_back
    @moved_back = true
    end
    end

    #--------------------------------------------------------------------------
    # face_opposing_party
    #--------------------------------------------------------------------------
    def face_opposing_party
    direction = ($game_system.party_direction ||
    YEA::VISUAL_BATTLERS::PARTY_DIRECTION)
    character.set_direction(Direction.correct(direction)) rescue 0
    end

    #--------------------------------------------------------------------------
    # new method: face_coordinate
    #--------------------------------------------------------------------------
    def face_coordinate(destination_x, destination_y)
    x1 = Integer(@screen_x)
    x2 = Integer(destination_x)
    y1 = Graphics.height - Integer(@screen_y)
    y2 = Graphics.height - Integer(destination_y)
    return if x1 == x2 and y1 == y2
    #---
    angle = Integer(Math.atan2((y2-y1),(x2-x1)) * 1800 / Math::PI)
    if (0..225) === angle or (-225..0) === angle
    direction = 6
    elsif (226..675) === angle
    direction = 9
    elsif (676..1125) === angle
    direction = 8
    elsif (1126..1575) === angle
    direction = 7
    elsif (1576..1800) === angle or (-1800..-1576) === angle
    direction = 4
    elsif (-1575..-1126) === angle
    direction = 1
    elsif (-1125..-676) === angle
    direction = 2
    elsif (-675..-226) === angle
    direction = 3
    end
    #---
    character.set_direction(Direction.correct(direction)) rescue 0
    end

    #--------------------------------------------------------------------------
    # create_move_to
    #--------------------------------------------------------------------------
    def create_move_to(destination_x, destination_y, frames = 12)
    @destination_x = destination_x
    @destination_y = destination_y
    frames = [frames, 1].max
    @move_x_rate = [(@screen_x - @destination_x).abs / frames, 2].max
    @move_y_rate = [(@screen_y - @destination_y).abs / frames, 2].max
    end

    #--------------------------------------------------------------------------
    # update_move_to
    #--------------------------------------------------------------------------
    def update_move_to
    @move_x_rate = 0 if @screen_x == @destination_x || @move_x_rate.nil?
    @move_y_rate = 0 if @screen_y == @destination_y || @move_y_rate.nil?
    value = [(@screen_x - @destination_x).abs, @move_x_rate].min
    @screen_x += (@destination_x > @screen_x) ? value : -value
    value = [(@screen_y - @destination_y).abs, @move_y_rate].min
    @screen_y += (@destination_y > @screen_y) ? value : -value
    end

    #--------------------------------------------------------------------------
    # move_forward
    #--------------------------------------------------------------------------
    def move_forward(distance = 24, frames = 12)
    direction = forward_direction
    move_direction(direction, distance, frames)
    end

    #--------------------------------------------------------------------------
    # move_backward
    #--------------------------------------------------------------------------
    def move_backward(distance = 24, frames = 12)
    direction = Direction.opposite(forward_direction)
    move_direction(direction, distance, frames)
    end

    #--------------------------------------------------------------------------
    # move_direction
    #--------------------------------------------------------------------------
    def move_direction(direction, distance = 24, frames = 12)
    case direction
    when 1; move_x = distance / -2; move_y = distance / 2
    when 2; move_x = distance * 0; move_y = distance * 1
    when 3; move_x = distance / -2; move_y = distance / 2
    when 4; move_x = distance * -1; move_y = distance * 0
    when 6; move_x = distance * 1; move_y = distance * 0
    when 7; move_x = distance / -2; move_y = distance / -2
    when 8; move_x = distance * 0; move_y = distance * -1
    when 9; move_x = distance / 2; move_y = distance / -2
    else; return
    end
    destination_x = @screen_x + move_x
    destination_y = @screen_y + move_y
    create_move_to(destination_x, destination_y, frames)
    end

    #--------------------------------------------------------------------------
    # forward_direction
    #--------------------------------------------------------------------------
    def forward_direction
    return ($game_system.party_direction ||
    YEA::VISUAL_BATTLERS::PARTY_DIRECTION)
    end

    #--------------------------------------------------------------------------
    # move_origin
    #--------------------------------------------------------------------------
    def move_origin
    create_move_to(@origin_x, @origin_y)
    face_coordinate(@origin_x, @origin_y)
    @moved_back = false
    end

    #--------------------------------------------------------------------------
    # moving?
    #--------------------------------------------------------------------------
    def moving?
    return false if dead? || !exist?
    return @move_x_rate != 0 || @move_y_rate != 0
    end

    end # Game_Battler

    #==============================================================================
    # ? ¥ Game_Actor
    #==============================================================================

    class Game_Actor < Game_Battler

    #--------------------------------------------------------------------------
    # overwrite method: use_sprite?
    #--------------------------------------------------------------------------
    def use_sprite?
    return true
    end

    #--------------------------------------------------------------------------
    # new method: screen_x
    #--------------------------------------------------------------------------
    def screen_x
    return @screen_x rescue 0
    end

    #--------------------------------------------------------------------------
    # new method: screen_y
    #--------------------------------------------------------------------------
    def screen_y
    return @screen_y rescue 0
    end

    #--------------------------------------------------------------------------
    # new method: screen_z
    #--------------------------------------------------------------------------
    def screen_z
    return 100
    end

    #--------------------------------------------------------------------------
    # new method: sprite
    #--------------------------------------------------------------------------
    def sprite
    index = $game_party.battle_members.index(self)
    return SceneManager.scene.spriteset.actor_sprites[index]
    end

    #--------------------------------------------------------------------------
    # new method: character
    #--------------------------------------------------------------------------
    def character
    return sprite.character_base
    end

    #--------------------------------------------------------------------------
    # face_opposing_party
    #--------------------------------------------------------------------------
    def face_opposing_party
    dr = $game_system.party_direction || YEA::VISUAL_BATTLERS::PARTY_DIRECTION
    direction = Direction.opposite(dr)
    character.set_direction(Direction.correct(direction)) rescue 0
    end

    #--------------------------------------------------------------------------
    # forward_direction
    #--------------------------------------------------------------------------
    def forward_direction
    return Direction.opposite(($game_system.party_direction ||
    YEA::VISUAL_BATTLERS::PARTY_DIRECTION))
    end

    end # Game_Actor

    #==============================================================================
    # ? ¥ Game_Enemy
    #==============================================================================

    class Game_Enemy < Game_Battler

    #--------------------------------------------------------------------------
    # new method: sprite
    #--------------------------------------------------------------------------
    def sprite
    return SceneManager.scene.spriteset.enemy_sprites.reverse[self.index]
    end

    #--------------------------------------------------------------------------
    # new method: character
    #--------------------------------------------------------------------------
    def character
    return sprite
    end

    end # Game_Enemy

    #==============================================================================
    # ? ¥ Game_Troop
    #==============================================================================

    class Game_Troop < Game_Unit

    #--------------------------------------------------------------------------
    # alias method: setup
    #--------------------------------------------------------------------------
    alias game_troop_setup_vb setup
    def setup(troop_id)
    game_troop_setup_vb(troop_id)
    set_coordinates
    end

    #--------------------------------------------------------------------------
    # new method: set_coordinates
    #--------------------------------------------------------------------------
    def set_coordinates
    for member in members
    member.origin_x = member.screen_x
    member.origin_y = member.screen_y
    member.create_move_to(member.screen_x, member.screen_y, 1)
    end
    end

    end # Game_Troop

    #==============================================================================
    # ? ¥ Sprite_Battler
    #==============================================================================

    class Sprite_Battler < Sprite_Base

    #--------------------------------------------------------------------------
    # public instance_variable
    #--------------------------------------------------------------------------
    attr_accessor :character_base
    attr_accessor :character_sprite

    #--------------------------------------------------------------------------
    # alias method: dispose
    #--------------------------------------------------------------------------
    alias sprite_battler_dispose_vb dispose
    def dispose
    dispose_character_sprite
    sprite_battler_dispose_vb
    end

    #--------------------------------------------------------------------------
    # new method: dispose_character_sprite
    #--------------------------------------------------------------------------
    def dispose_character_sprite
    @character_sprite.dispose unless @character_sprite.nil?
    end

    #--------------------------------------------------------------------------
    # alias method: update
    #--------------------------------------------------------------------------
    alias sprite_battler_update_vb update
    def update
    sprite_battler_update_vb
    return if @battler.nil?
    update_move_to
    update_character_base
    update_character_sprite
    end

    #--------------------------------------------------------------------------
    # new method: update_character_base
    #--------------------------------------------------------------------------
    def update_character_base
    return if @character_base.nil?
    @character_base.update
    end

    #--------------------------------------------------------------------------
    # new method: update_character_sprite
    #--------------------------------------------------------------------------
    def update_character_sprite
    return if @character_sprite.nil?
    @character_sprite.update
    end

    #--------------------------------------------------------------------------
    # new method: update_move_to
    #--------------------------------------------------------------------------
    def update_move_to
    @battler.update_move_to
    end

    #--------------------------------------------------------------------------
    # new method: moving?
    #--------------------------------------------------------------------------
    def moving?
    return false if @battler.nil?
    return @battler.moving?
    end

    end # Sprite_Battler

    #==============================================================================
    # ? ¥ Sprite_BattleCharacter
    #==============================================================================

    class Sprite_BattleCharacter < Sprite_Character

    #--------------------------------------------------------------------------
    # initialize
    #--------------------------------------------------------------------------
    def initialize(viewport, character = nil)
    super(viewport, character)
    character.sprite = self
    end

    end # Sprite_BattleCharacter

    #==============================================================================
    # ? ¥ Spriteset_Battle
    #==============================================================================

    class Spriteset_Battle

    #--------------------------------------------------------------------------
    # public instance_variable
    #--------------------------------------------------------------------------
    attr_accessor :actor_sprites
    attr_accessor :enemy_sprites

    #--------------------------------------------------------------------------
    # overwrite method: create_actors
    #--------------------------------------------------------------------------
    def create_actors
    total = $game_party.max_battle_members
    @current_party = $game_party.battle_members.clone
    @actor_sprites = Array.new(total) { Sprite_Battler.new(@viewport1) }
    for actor in $game_party.battle_members
    @actor_sprites[actor.index].battler = actor
    create_actor_sprite(actor)
    end
    end

    #--------------------------------------------------------------------------
    # new method: create_actor_sprite
    #--------------------------------------------------------------------------
    def create_actor_sprite(actor)
    character = Game_BattleCharacter.new(actor)
    character_sprite = Sprite_BattleCharacter.new(@viewport1, character)
    @actor_sprites[actor.index].character_base = character
    @actor_sprites[actor.index].character_sprite = character_sprite
    actor.face_opposing_party
    end

    #--------------------------------------------------------------------------
    # alias method: update_actors
    #--------------------------------------------------------------------------
    alias spriteset_battle_update_actors_vb update_actors
    def update_actors
    if @current_party != $game_party.battle_members
    dispose_actors
    create_actors
    end
    spriteset_battle_update_actors_vb
    end

    #--------------------------------------------------------------------------
    # new method: moving?
    #--------------------------------------------------------------------------
    def moving?
    return battler_sprites.any? {|sprite| sprite.moving? }
    end

    end # Spriteset_Battle

    #==============================================================================
    # ? ¥ Scene_Battle
    #==============================================================================

    class Scene_Battle < Scene_Base

    #--------------------------------------------------------------------------
    # public instance variables
    #--------------------------------------------------------------------------
    attr_accessor :spriteset

    #--------------------------------------------------------------------------
    # alias method: process_action_end
    #--------------------------------------------------------------------------
    alias scene_battle_process_action_end_vb process_action_end
    def process_action_end
    start_battler_move_origin
    scene_battle_process_action_end_vb
    end

    #--------------------------------------------------------------------------
    # alias method: execute_action
    #--------------------------------------------------------------------------
    alias scene_battle_execute_action_vb execute_action
    def execute_action
    start_battler_move_forward
    scene_battle_execute_action_vb
    end

    #--------------------------------------------------------------------------
    # new method: start_battler_move_forward
    #--------------------------------------------------------------------------
    def start_battler_move_forward
    return if @subject.started_turn
    @subject.started_turn = true
    @subject.move_forward
    wait_for_moving
    end

    #--------------------------------------------------------------------------
    # new method: start_battler_move_origin
    #--------------------------------------------------------------------------
    def start_battler_move_origin
    @subject.started_turn = nil
    move_battlers_origin
    wait_for_moving
    @subject.face_opposing_party rescue 0
    end

    #--------------------------------------------------------------------------
    # new method: move_battlers_origin
    #--------------------------------------------------------------------------
    def move_battlers_origin
    for member in all_battle_members
    next if member.dead?
    next unless member.exist?
    member.move_origin
    end
    end

    #--------------------------------------------------------------------------
    # new method: wait_for_moving
    #--------------------------------------------------------------------------
    def wait_for_moving
    update_for_wait
    update_for_wait while @spriteset.moving?
    end

    end # Scene_Battle

    #==============================================================================
    #
    # ¥ End of File
    #
    #==============================================================================

     

     

     

    ed ho ottenuto un risultato come in immagine

     

    http://s24.postimg.org/c7n0lsfhh/Immagine.png

     

    abbastanza carino. ora pero ho visto in molti video che durante la battaglia molti hanno (nel menu sotto) le immagini dei personaggi al posto del semplice nome e barre.

    vi mostro una screen trovata

     

    http://s29.postimg.org/r0b0z1fhj/Immagine.jpg

    in questa immagine trovata, (a differenza della mia barra) si vedono le immaggini dei personaggi, una barra HP e MP, e il menu di battaglia laterale.

    che e' quello che vorrei da me.

     

    da quanto ho capito dovrebbe essere un Addon per il battle sistem pero provando a cercare non sono riuscito a trovare lo script che inserisce le immagini con le barre HP e MP sotto, proprio in questo modo come nell immagine!

     

    qualcuno conosce questo script?

     

     

  9. ok cerco di spiegarti al meglio la cosa

     

    praticamente nel gioco reale tu hai questo "Pentolone alchemico" che una volta ottenuto lo puoi usare quando vuoi, a patto di avere i materiali necessari.

    nel gioco vero infatti se vuoi fare una cosa, apri il pentolone, butti dentro gli item richiesti e continui a giocare. dopo un po' di tempo poi si sente fare un "Plin" mentre stai giocando e da quello capisci che il pentolone ha finito quindi puoi andare nella pagina dell alchimia e vedere il risultato. TUTTAVIA il tempo (che non e' tempo ma sono passi) scorre solo se ci si trova in una mappa specifica. ESEMPIO se sto in citta e giro intorno ad un edifico il tempo non passa mai. mentre se esco fuori dalla citta e vado nelle " zone selvaggie " dove posso anche incontrare mob, beh li i passi li conta eccome. quindi l'ideale e' se si puo fare in modo che il tempo sia stabilito con i "passi" che fa il giocatore, e che questi passi vengono contati solo nelle mappe che decido io. quindi servirebbe la possibilita di poter settare in quali mappe conti i passi e in quali mappe no.

     

    un altro accorgimento quindi e' che si deve poter fare SOLO un oggetto alla volta. quindi se attualmente sto gia creando un oggetto non posso metterne a fare altri finche il primo non finisce.

     

     

    ricapitolando:

     

    1) aggiungere la possibilità di settare i passi richiesti per fondere gli oggetti di una ricetta specifica.

    2) aggiungere la possibilità di settare le mappe dove il conteggio passi e' attivo e quali no.

    3) aggiunta di un segnale acustico o messaggio di quando l'oggetto e' pronto, in modo che il giocatore va nell apposito menu e lo prende.

    4) aggiungere la limitazione di un solo item per volta. se ci sta uno in crafting non puoi metterne a fare altri perche il pentolone e' occupato!

  10. OK e' perfetto

    ho provato ad utilizzare il codice di ickh

     

    class Window_MenuCommand < Window_Command

    def make_command_list
    add_main_commands
    add_formation_command
    add_original_commands

    #add_save_command
    add_alchemy_command
    add_game_end_command

    end

    def add_alchemy_command
    add_command
    ("Alchimia", :alchemy)
    end

    end


    class Scene_Menu < Scene_MenuBase

    alias my_create_command_window create_command_window
    def create_command_window
    my_create_command_window

    @command_window.set_handler(:alchemy, method(:command_alchemy))
    end

    def command_alchemy
    SceneManager.call(Scene_Alchemy)
    end

    end

     

     

     

    e funziona pero ora che ci penso dovrei rendere disponibile l'alchimia solo a un determinato punto del gioco

     

    cmq ho avuto un idea, praticamente io devo far si che la possibilità di usare l' alchimia ci sia da un determinato momento. e ora che ci penso, se lo aggiungerei al menu principale non sarebbe cosi.

     

    quindi ho trovato quest'altra soluzione:

     

    ho creato un Evento Comune in Database, chiamato Alchimia e ho impostato che richiami lo script dell alchimia come in immagine

     

    http://s27.postimg.org/vswkbzsw3/soluzione1.jpg

     

     

    successivamente ho creato un oggetto chiamato Pentolone Alchemico e gli ho assegnato l'evento comune Alchemia citato sopra. assegnando consumabile NO e prezzo = 0 (invendibile)

     

    http://s30.postimg.org/ga41k4rgh/soluzione1.jpg

     

    in questo modo posso far ottenere l'oggetto quando voglio al giocatore e lui puo' usarlo dall'inventario in qualsiasi momento.

     

    http://s21.postimg.org/8utdvqtpj/soluzione1.jpg

     

    quindi rimane solo la cosa del "tempo" se si poteva settare un tempo per il crafting sarebbe magnifico

  11. grandioso! sono appena rientrato e ora devo andare a mangiare, appena torno al pc provo il tutto e vi faccio sapere!

     

    la ciliegina sulla torta sarebbe mettere un tempo di craft sulle ricette.

     

    esempio:
    medicina potente = erba medicinale + erba medicinale (tempo 5 min) (o magari si puo fare in "passi")

     

    oppure

    spada mithril = mithrill + mithrill + spada argentea (tempo 20 min)

     

     

    lo script si puo migliorare ancora :D


    cmq GRAZIE DAVVERO TANTO a tutti in questo forum a differenza di altri ci sono persone davvero disponibili. grazie a tutti!!!!!

     

     

     

    e per il salvataggio non sapevo come fare :C l'unica cosa che mi e' venuta in mente di fare non conoscendo quel linguaggio (ma sapendo qualcosa di altri) e' stato di inserire il # per trasformare la riga in commento cosi che nn venisse letta.

  12. ho trovato nell editor degli script su Window_MenuCommand la sezione dove crea il menu di gioco,

     

    http://s21.postimg.org/hc8p3jc9z/Immagine.jpg

     

    infatti e' qua che ho rimosso la possibilita di salvare ovunque ci si trovi. ho provato a modificare qualcosa qua ma non conoscendo il linguaggio Ruby non sono riuscito a fare un granche. quindi aspetto risposte!

     

    vorrei che oltre a

     

    oggetti

    abilita

    equipaggia

    status

    formazione

    termina gioco

     

    ci sia anche tipo "Alchimia" e si aprisse da qua

  13. ok grazie! :D ora volevo chiedere al creatore dello script se era possibile fasre in modo che nel menu apparisse tipo il comando "alchimia" e si apre quel pannello, cioe' attualmente posso aprire il pannello solo tramite evento. e ok anche cosi e' meraviglioso! pero per il mio gioco dovrei averlo proprio nel menu

     

    cioe il menu per fondere oggetti vorrei che apparisse se apro il menu e clicco su un ipotetica sezione "alchimia" che vorrei fosse qua:

     

    http://s12.postimg.org/fv0noy1od/Immagine.jpg

     

    tipo tra Status e Formazione. Non so se si puo fare

×
×
  • Create New...