Jump to content
Rpg²S Forum

Squall_Leonheart

Utenti
  • Posts

    1,352
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by Squall_Leonheart

  1. L'arma sembra praticamente legata al primo eroe del database. Infatti se in Game_Actor 5 cambi

    if @actor_id == 1 -------------------(od era 0?)

    con

    if @actor_id == 2

    Lo dà ad un altro eroe e quindi non compare, però non saprei come poi farglielo equipaggiare, è come se lo creasse all'inizio... creare due eroi e scambiarli? Però servono tutte le grafiche doppie! > <

    Guardian ho provato ad introdurre questo in game_actor :

     

     

      def set_sp_wea_id
        if $game_switches [50] == true
        if @actor_id == 1
          @sp_wea_id = 1
          end

    In modo da collegarlo ad uno switch che attiverei tramite evento per raccogliere l'arma ed equipaggiarla.

    Però subentra il problema dell'aggiornamento. Cosa ne pensi? Vorrei evitare lo sdoppiamento delle char >.<

     

  2. XD

    Forse è in qualche script l'equipaggiamento iniziale? Magari se non lo trovi puoi fare l'inverso di quel che ti ho suggerito: disequipaggiare tramite comando l'arma dell'eroe e toglierla, sempre tramite comando, dall'inventario! ^ ^

    Appunto. Anche se metto un evento per rimuovere l'arma, continua ad essere equipaggiata e a fare l'animazione.

  3. Ok, quindi il problema è che tu vuoi che l'eroe parta col coltello, ma non puoi darlo da database?

    Non puoi semplicemente darglielo con un comando all'inizio del gioco? Durante l'intro o prima di farlo muovere al giocatore? Ci sono anche comandi per equipaggiare l'oggetto all'eroe.

    ^ ^

    No Guardian il contrario! Io voglio che il coltello lo trovi XD Ma nonostante imposti l'eroe senza l'arma, la ritrovo equipaggiata e attivata!

  4. Ho il PC rotto e non posso provare direttamente su rpg maker, però non ho ben capito la questione... quale è il problema? Il fatto di non avere il coltello come arma equipaggiata all'inizio dà problemi con lo script che non lo visualizza? > <

    Il problema è che l'eroe non è impostato per partire con il coltello (dovrebbe trovarlo in una mappa) però comunque si attiva grafica e colpo >-<

  5. Guardian ho un altro problema con lo stesso script.
    Praticamente come arma corpo a corpo è impostato il coltello. Ora ho modificato tenendo conto dalle mie esigenze, ma anche qui vorrei che l'arma fosse trovata anziché essere equipaggiata dall'inizio. Il problema nasce dal fatto che nello Scene_Title vedo che vengono caricate le Armi di partenza, ma nel database il coltello non è impostato come partente.
    La questione del pulsante viene gestita negli eventi comuni:

    If Tasto A premuto
    If weapon ID check (1) #Dovrebbe controllare se l'arma 1 è in possesso dell'eroe
    Chiama evento Knife
    #Nell'evento Knife viene richiamato lo script delle collisione e impostata la grafica.


    Non capisco da dove nasca il problema. Ho provato a rintracciare anche nei vari Script ma non trovo nulla che imposti l'arma come obbligatoria o predefinita.

  6. Se non trovi nulla, come ultima spiaggia posso provare a farteli io.

    Come ultima spiaggia perchè son abituata a chara del vx ace.

    No vabbè io mi occupo di grafica quindi non è il problema di farseli... Siccome ho poco tempo se c'era una base l'avrei utilizzata per velocizzare il lavoro.

     

    quindi grafica xp? Non chibi? Poiché la maggior parte degli rpg maker usa grafica diversa da quella xp, ci sarà meno materiale. Prova con google combinando un po' di termini di ricerca sopratutto in inglese.

    Poi se sono pose statiche si tratterebbe solo di aggiungere lo strumento in pixel art sopra ad abiti adeguati

    Assolutamente no chibi, li odio Z.Z

    Purtroppo non trovo niente, ma nessuno ha mai pixellato un orchestra XD?

  7. Così dovrebbe andare, ma testa bene, potrebbe esplodere qualcosa! XD

     

    Al posto di Scene_Map 1

     

     

    #==============================================================================

    # * Scene_Map

    #------------------------------------------------------------------------------

    #  It is the class which processes the map picture.

    #==============================================================================

     

    class Scene_Map

    #--------------------------------------------------------------------------

    # - Main processing

    #--------------------------------------------------------------------------

    def main

    # Drawing up sprite set

    @spriteset = Spriteset_Map.new

    # Drawing up the message window

    @message_window = Window_Message.new

    # Draw HP Window

    draw_hp

    hide_hud

    # Transition execution

    Graphics.transition

    # Main loop

    loop do

    # Renewing the game picture

    Graphics.update

    # Updating the information of input

    Input.update

    @hp_slide.ox += 1

    # Frame renewal

    update

    # When the picture changes, discontinuing the loop

    if $scene != self

    break

    end

    end

    # Transition preparation

    Graphics.freeze

    # Releasing sprite set

    @spriteset.dispose

    # Releasing the message window

    @message_window.dispose

    dispose_hp

    # When it changes to the title picture and it is in

    if $scene.is_a?(Scene_Title)

    # Fading out picture

    Graphics.transition

    Graphics.freeze

    end

    end

    #--------------------------------------------------------------------------

    # - Frame renewal

    #--------------------------------------------------------------------------

    def update

    # oop

    loop do

    # The map, it renews to the order of the interpreter and the prayer

    # (As for this renewal order, when the condition for executing the event is satisfied

    # In the reason such that the opportunity which instant is moved in the prayer is not given the importance)

    $game_map.update

    $game_system.map_interpreter.update

    $game_player.update

    # e system (the timer), renewing the picture

    $game_system.update

    $game_screen.update

    # If it is not the place on the move of the prayer, discontinuing the loop

    unless $game_temp.player_transferring

    break

    end

    # Executing place movement

    transfer_player

    # When it is in the midst of transition processing, discontinuing the loop

    if $game_temp.transition_processing

    break

    end

    end

    hide_hud

    # Renewing sprite set

    @spriteset.update

    # Renewing the message window

    @message_window.update

    @hp_window.update

    @viewport_bor.update

    @hp_bor.update

    # When it is the game over

    if $game_temp.gameover

    # Change to game over picture

    $scene = Scene_Gameover.new

    return

    end

    # When you reset to the title picture

    if $game_temp.to_title

    # Change to title picture

    $scene = Scene_Title.new

    return

    end

    # When it is in the midst of transition processing

    if $game_temp.transition_processing

    # During transition processing clearing the flag

    $game_temp.transition_processing = false

    # Transition execution

    if $game_temp.transition_name == ""

    Graphics.transition(20)

    else

    Graphics.transition(40, "Graphics/Transitions/" +

    $game_temp.transition_name)

    end

    end

    # When it is in the midst of message window indicating

    if $game_temp.message_window_showing

    return

    end

    # When encounter count with 0, Encounter is not the sky

    if $game_player.encounter_count == 0 and $game_map.encounter_list != []

    # If it is not in the midst of event executing or in the midst of encounter prohibiting

    unless $game_system.map_interpreter.running? or

    $game_system.encounter_disabled

    # Deciding the troop

    n = rand($game_map.encounter_list.size)

    troop_id = $game_map.encounter_list[n]

    # If troop validity

    if $data_troops[troop_id] != nil

    # Setting the battle call flag

    $game_temp.battle_calling = true

    $game_temp.battle_troop_id = troop_id

    $game_temp.battle_can_escape = true

    $game_temp.battle_can_lose = false

    $game_temp.battle_proc = nil

    end

    end

    end

    # The B when button is pushed

    if Input.trigger?(Input::B)

    # If it is not in the midst of event executing or in the midst of menu prohibiting

    unless $game_system.map_interpreter.running? or

    $game_system.menu_disabled

    # Setting the menu call flag and the SE performance flag

    $game_temp.menu_calling = true

    $game_temp.menu_beep = true

    end

    end

    # When debugging mode ON and the F8 key are pushed

    if $DEBUG and Input.press?(Input::F8)

    # Performing decision SE

    $game_system.se_play($data_system.decision_se)

    # Reforming the attitude of the prayer

    $game_player.straighten

    # Change to saving picture

    $scene = Scene_Save.new

    end

    # When debugging mode ON and the F9 key are pushed

    if $DEBUG and Input.press?(Input::F9)

    # Setting the debugging call flag

    $game_temp.debug_calling = true

    end

    # When it is not on the move of the prayer

    unless $game_player.moving?

    # Executing the call of various pictures

    if $game_temp.battle_calling

    call_battle

    elsif $game_temp.shop_calling

    call_shop

    elsif $game_temp.name_calling

    call_name

    elsif $game_temp.menu_calling

    call_menu

    elsif $game_temp.save_calling

    call_save

    elsif $game_temp.debug_calling

    call_debug

    elsif $game_temp.shoot

    @spriteset.shoot

    $game_temp.shoot = false

    elsif $game_temp.hit

    $game_temp.hit = false

    end

    end

    end

    #--------------------------------------------------------------------------

    # - Place movement of prayer

    #--------------------------------------------------------------------------

    def transfer_player

    # Clearing the prayer place portable flag

    $game_temp.die_point = true

    $game_temp.player_transferring = false

    # When the tip of moving differs from the present map

    if $game_map.map_id != $game_temp.player_new_map_id

    #Setting up the new map

    $game_map.setup($game_temp.player_new_map_id)

    end

    $game_temp.die_point = false

    # Setting the position of the prayer

    $game_player.moveto($game_temp.player_new_x, $game_temp.player_new_y)

    case $game_temp.player_new_direction

    when 2 # Down

    $game_player.turn_down

    when 4 # Left

    $game_player.turn_left

    when 6 # Right

    $game_player.turn_right

    when 8 # Up

    $game_player.turn_up

    end

    # Map renewal (parallel event execution)

    $game_map.update

    # Rewriting sprite set

    @spriteset.dispose

    @spriteset = Spriteset_Map.new

    # When it is in the midst of transition processing

    if $game_temp.transition_processing

    # During transition processing clearing the flag

    $game_temp.transition_processing = false

    # Transition execution

    Graphics.transition(20)

    end

    # Executing the automatic operation change of BGM and BGS which are set to the map

    $game_map.autoplay

    # Frame reset

    Graphics.frame_reset

    # Updating the information of input

    Input.update

    end

    end

     

     

     

    Al posto di Scene_Map 2

     

     

    #==============================================================================

    # * Scene_Map

    #------------------------------------------------------------------------------

    #  It is the class which processes the map picture.

    #==============================================================================

     

    class Scene_Map

    #--------------------------------------------------------------------------

    # - Draw HP Window

    #--------------------------------------------------------------------------

    def draw_hp

    # Draw HP Window

     

    @hp_window = Window_Sta.new

    @hp_window.back_opacity = 160

    @viewport_bor= Viewport.new(91, 26, 55, 32)

    @viewport_bor.z = 220

    @hp_slide = Plane.new(@viewport_bor)

    @hp_slide.bitmap = RPG::Cache.title("life")

    @hp_bor = Sprite.new(@viewport_bor)

    @hp_bor.bitmap = RPG::Cache.title("life_bor")

    @hp_bor.z = 240

    end

    #--------------------------------------------------------------------------

    # - Dispose HP Window

    #--------------------------------------------------------------------------

    def dispose_hp

    @hp_window.dispose

    @viewport_bor.dispose

    @hp_slide.dispose

    @hp_bor.dispose

    end

    #--------------------------------------------------------------------------

    # - Refresh Windows

    #--------------------------------------------------------------------------

    def re_window

    @hp_window.refresh

    end

    #--------------------------------------------------------------------------

    # - Refresh Windows

    #--------------------------------------------------------------------------

    def re_window_2

    @hp_window.visible = true

    @hp_slide.visible = true

    @hp_bor.visible = true

    end

    #--------------------------------------------------------------------------

    # - Hide HUD

    #--------------------------------------------------------------------------

    def hide_hud

    if $game_switches[50] == false

    @hp_window.visible = true

    @hp_slide.visible = true

    @hp_bor.visible = true

    else

    @hp_window.visible = false

    @hp_slide.visible = false

    @hp_bor.visible = false

    end

    end

    end

     

     

     

    ^ ^

    Ok...Quindi se ho capito è tutto collegato allo Switch 50 adesso giusto? Lo disattivo e attivo in base a se voglio o meno l'hud?

  8. Problema di hud energia? Possibili alternative...

    - cancellarlo via script prima (quindi cercare quei comandi che vanno a disegnarlo cancellarlo) e poi riattivarlo sempre manualmente.

    - modificare la z dell'HUD di modo che sia dietro la mappa se la cancellazione non è facile

    - coprirlo mettendo una picture nera via script od evento: prova processo parallelo su mappa prima al posto di inizio automatico, a volte è più veloce

    - simulare i comandi fade in fade out via script

    ^ ^

    Ma via Script non rimane poi il problema dell'aggiornamento ? XD

    Essendo questo disegnato direttamente sulla Scene_Map la vedo dura cancellarlo. Ho provato con un evento ad inizio automatico a utilizzare lo script @hp_window.visible == false e continua questo benedetto errore di metodo <.<

  9. No Guardian perdonami, il wait funziona e ti ringrazio.
    Purtroppo il tuo suggerimento lo avevo già provato mettendo il refresh nella condizione... E non capisco perché mi da un method error.
    Lo Switches 1 è legato alla questione shot.
    Quindi rimane il problema dell'update, che praticamente mi rende impossibile fare cutscene decenti... Con l'energia sempre visibile.
    E quel benedetto comando per la tonalità mi costringerà ad una mappa nera di transizione :smileright:

  10. Niente, non va. Adesso posto lo script, magari beccate la falla.

    In più resto in attesa per la tonalità.



    #==============================================================================
    # * Scene_Map
    #------------------------------------------------------------------------------
    #  It is the class which processes the map picture.
    #==============================================================================

    class Scene_Map
    #--------------------------------------------------------------------------
    # - Draw HP Window
    #--------------------------------------------------------------------------
    def draw_hp
    # Draw HP Window
    @hp_window = Window_Sta.new
    @hp_window.back_opacity = 0
    @viewport_bor= Viewport.new(91, 26, 55, 32)
    @viewport_bor.z = 220
    @hp_slide = Plane.new(@viewport_bor)
    @hp_slide.bitmap = RPG::Cache.title("life")
    @hp_bor = Sprite.new(@viewport_bor)
    @hp_bor.bitmap = RPG::Cache.title("life_bor")
    @hp_bor.z = 240
    if $game_variables[1] == 1
    @hp_slide.visible = false
    @hp_bor.visible = false
    @hp_window.visible = false
    @viewport_bor.visible = false
    end
    if $game_switches[1] == false
    @hp_slide.visible = false
    @hp_bor.visible = false
    end
    end
    #--------------------------------------------------------------------------
    # - Dispose HP Window
    #--------------------------------------------------------------------------
    def dispose_hp
    @hp_window.dispose
    @viewport_bor.dispose
    @hp_slide.dispose
    @hp_bor.dispose
    end
    #--------------------------------------------------------------------------
    # - Refresh Windows
    #--------------------------------------------------------------------------
    def re_window
    @hp_window.refresh
    @viewport_bor.refresh
    @hp_slide.refresh
    @hp_bor.refresh
    end
    #--------------------------------------------------------------------------
    # - Refresh Windows
    #--------------------------------------------------------------------------
    def re_window_2
    @hp_window.visible = true
    @hp_slide.visible = true
    @hp_bor.visible = true
    end
    end


     

  11. Ma ti serve specificatamente che sia da script? Intendo dire... mettere una mappa vuota e nera non va bene? Serve che rimanga il title per un po'? ^ ^

     

    Anche io non rieco a capire quale è il call script che permette di cambiare tonalità, anche prendendolo dall'interpreter non funziona, manca sempre qualcosa! > <

    Si Guardian. Inoltre ho anche un problema. Sto utilizzando un BS a script stile Resident Evil in tempo reale e quindi vorrei disattivare la finestra dell'equip quando non mi serve.

     

    Il codice è :

     

    def draw_hp

    # Draw HP Window

    @hp_window = Window_Sta.new

    @hp_window.back_opacity = 0

    @viewport_bor= Viewport.new(91, 26, 55, 32)

    @viewport_bor.z = 220

    @hp_slide = Plane.new(@viewport_bor)

    @hp_slide.bitmap = RPG::Cache.title("life")

    @hp_bor = Sprite.new(@viewport_bor)

    @hp_bor.bitmap = RPG::Cache.title("life_bor")

    @hp_bor.z = 240

    end

    if $game_switches[1] == false

    @hp_slide.visible = false

    @hp_bor.visible = false

    end

    end

     

    Ora dovrebbe sparire con la disattivazione dello switch 1. Il problema è che si disattiva, ma solo quando esco dal menù. Come se mancasse qualche refresh ma non capisco dove.

  12. Ragazzi mi servirebbero due dritte:

    La prima è se in XP esiste un comando "wait" preimpostato da inserire in una scene_... Tipo ad esempio dopo new game anzichè andare subito alla mappa vorrei un attesa di qualche secondo. Ho provato Graphics.wait(100) ma niente. Wait(100) nemmeno. Non riesco a ricordare.

    Poi mi servirebbe cambiare la tonalità dello schermo attraverso la funzione script in un evento. Ho provato con $game_screen_change (Tone.new (10, 10, 10, 10) 150) ma niente.

  13. conosco un tipo che ha fatto un gioco dell'oca misto ad un rpg con una vecchia versione di rpg maker tutto ad eventi.

    Tutto è possibile se hai pazienza e il giusto tempo.

    Ottimo esempio, però Testament è il Santo Graal del Making XD

    Mi ripeto.. Se qualcuno volesse fare una demo tecnica sarebbe un bel progetto. Grafiche rippate.

    Altrimenti mi dovrò ingegnare qualcosa, sarebbe un traguardo significativo programmare un Beat em up con RPGmaker

  14. Beh a finale quindi bisognerebbe capire come programmare il salto con attacco e poi?
    Subentra un altro problema: IA.

    Pensateci bene, creare in un simile gioco una serie di avversari con caratterisitche definite è forse ancor più difficile.

    Ad esempio se volessi tornare al famoso elicottero stile Metal Slug dovremmo capire come programmare bombe e proiettile nonché il famoso salto dell'eroe.

    Oltretutto, spesso questo genere di giochi sono multiplayer... Insomma sarebbe un bel lavoro.
    Ancora ho molti dubbi e l'idea di creare un demo tecnica mi stuzzica. C'è qualcuno interessato?

  15. Spulciando sui forum stranieri ho trovato un sistema di battaglia simile. Ovviamente essendo tale diciamo che funziona solamente nella fase di "battaglia". Però se tutto ciò diventerebbe perenne il gioco sarebbe fatto.

    https://atelierrgss.wordpress.com/rgss3-lmbs-linear-motion-battle-system/

    Invece qui ho trovato uno script simile a quello che avevo pensato, dove vengono "forzate" le direzioni.

    https://forums.rpgmakerweb.com/index.php?threads/2d-fixed-direction-horizontal-vertical.68417/

  16. Ormai sai che (quasi) tutto è possibile con RPG Maker VX Ace, e tutto con MV, ma più ti allontani dai canoni di un gioco di ruolo e più diventa talmente complesso che fai prima ad usare un altro ruolo.

    Allora, riguardo RPG Maker VX Ace, avevo messo a punto un sistema di collisioni per un ipotetico minigame sparatutto orizzontale da usare in Overdrive. Ho trovato un tutorial per quanto riguarda l'algoritmo delle collisioni su Unity, e grossomodo funziona così.

    Immagina di avere due oggetti:

    Senza-titolo-2.png

    Come fai a capire se questi due oggetti collidono? Prendendo coordinate e dimensioni e vedendo se si sovrappongono.

    Ovviamente gli sprite sono più complessi di semplici quadrilateri, quindi dobbiamo prendere il sottoquadrato sovrapposto e controllare pixel per pixel che per entrambi gli sprite, a quella coordinata ci sia un pixel non trasparente

    bitmap.get_pixel(x,y).alpha > 0
    

    Per quanto riguarda MV, la logica è la stessa ma non ho al momento le funzioni per ricavarti i pixel degli sprite.

     

    Il problema principale è che RPG Maker VX Ace si basa unicamente sul singolo core del processore, mentre con MV puoi utilizzare WebGL per passare questo compito alla GPU in modo da massimizzare le prestazioni.

    Non conosco VX Ace ma suppongo il linguaggio sia bene o male simile all' XP. Questo sistema sarebbe interessante per uno sparatuttto.. Sinceramente non saprei come "aggiornarlo" per creare un picchiaduro.

     

     

    Beh, a eventi lo escluderei a priori.

     

    Il problema di RPG Maker sono proprio le collisioni, non essendoci di fatto funzioni prefatte per capire se un'immagine collide con un'altra, si basa tutto su collisione fra evento eroe e altri eventi, comunque definiti dal quadratino del tile su cui sono montati, indipendentemente da quanto lo sprite efettivo sia grosso.

    Oppure diventa il circo del calcolo delle distanze fra evento eroe ed evento1, evento eroe ed evento2, ecc, per tutto quello che sta a schermo.

     

    Senza contare che in un picchiaduro in 2.5 D alla Final Fight, non basta essere sovrapposti per menarsi, si deve essere sulla stessa linea a portata di pugno, anzi non si deve essere proprio sovrapposti, bisogna che sia sovrapposto l'hitbox del pungo o del calcio o dell'arma e il nemico sul piano giusto per infliggergli danno.

     

     

    Ho visto dei risultati riusciti su VX per quel che riguarda action game/platform puramente 2D laterale, non ricordo di aver visto picchiaduro in 2.5D, ma dato che il mondo è pieno di pazzi smanettoni, qualcuno sicuramente avrà realizzato qualcosa.

     

    Io però, onestamente, penserei ad un altro tool.

     

     

    Edit: Ecco, appunto:

    Ecco XD Qualcosa di simile come partenza sarebbe meglio. Manca l'attacco con il salto e il nemico che spara.

    Vedo che il progetto non è reperibile e la homepage è offline

  17. Salve a tutti ragazzi!
    Non scrivo da molto sul forum, avendo iniziato a lavorare a tempo pieno e per forza di cose avere meno tempo per essere attivo digitalmente.

    Ma parliamo della mia idea. (mi scuso se la sezione non è giusta)
    Da tempo mi ronza in testa un progetto Beat em up avendo la parte grafica molto avanti.
    Ma come programmarlo? Ovviamente i miei primi tentativi si sono svolti su Rpgmaker, prima 2k poi XP.
    Nel primo, disponendo solo degli eventi sono riuscito a creare una mappa dove c’era un nemico capace di sparare e colpirti, nulla di particolare ma con un dettaglio : l’impostazione grafica.
    I picchiaduro a scorrimento necessitano di un movimento totale verso le 8 direzioni per essere gradevoli, magari aggiungendo attacco speciale, salto etc.
    A questo punto sono “avanzato” avendo più vantaggi di Scripting con XP.
    Ok, imposto le 8 direzioni ed insorgo nel primo problema.
    Andare verso l’alto nei Beat em up vuol dire: se sei girato a sinistra cammini in alto verso sinistra, il contrario se a destra. Questo passo sono riuscito a superarlo inserendo una variabile che dice se eroe girato a DX utilizza Ero1DX dove impostavo la grafica giusta (ovviamente inserendo anche la condizione per il lato sinistro).
    Cosa resta quindi nella mia idea che non trova soluzione?
    Le collisioni.

    Spesso in questi giochi ci sono nemici con diverse caratteristiche (elicottero che spara, gente con coltello, spada) ed io, volendo emulare Final Fight, con i charset ben più grandi, non riesco a sincronizzare il proiettile, i movimenti di ricezione del colpo, il salto, con attacco e senza e tante altre cose.
    Secondo voi esistono soluzioni valide con RPGmaker?
    Sarebbe carino se l’idea che mettiamo su fossero funzionali creare una demo tecnica del genere. La grafica è tutta rippata.

    Cosa ne pensate?

    Vi lascio un video di Final Fight nel caso non lo conosceste:

     

×
×
  • Create New...