Jump to content
Rpg²S Forum

Nortas

Utenti
  • Posts

    75
  • Joined

  • Last visited

Posts posted by Nortas

  1. Allora dopo ore di sbattimento ho partorito questo:

    /*
     *=============================================================================
     *  Random Gold MV Version
     *  By Nortas
     *  rnd_Gold.js
     *  Version: 1.0
     *  Free for commercial and non commercial use.
     *=============================================================================
     */
    /*:
     * @help
     *                                   Plugin Commands
     *=============================================================================
     *  
     *     █ Genera un valore random di oro da assegnare al gruppo
     * 
     *          Help:
     *                  Oro Minimo		 = Il valore minimo di oro
     *					Oro Massimo		 = Il valore massimo di oro
     *          Esempio:
     *				1) Seleziona la funzione "Comando Plugin"
     *				2) Inserisci il comando:
     *             			rndGold 20 100
     *              Il gruppo otterrà un valore random compreso tra 20 e 100
     * 
     *=============================================================================
     * @plugindesc Genera un valore random di oro da assegnare al gruppo.
     *
     * @author Nortas
     * 
     * @param Messaggio
     * @desc Selezion ON se vuoi visualizzare un messaggio e OFF se non lo vuoi.
     * @default OFF
     *=============================================================================
     */
    
    var parametri = PluginManager.parameters('rnd_Gold');
    var comandoBase = Game_Interpreter.prototype.pluginCommand;
    Game_Interpreter.prototype.pluginCommand = function (command, args) {
        comandoBase.apply(this);
        if (command === 'rndGold') {
            if (args[0] >= 0) {
                if (args[1] >= args[0]){
                    var minG = args[0];
                    var maxG = args[1];
                    var rnd = Math.random();  
                   var numOro=Math.floor(rnd * (maxG - minG + 1)) + minG;
                    $gameParty.gainGold(numOro);
                    if (String(parametri['Messaggio'])==="ON") {
                        $gameMessage.add("Ricevute n° "+numOro+" monete d'oro!");
                    }                   
                }                            	
            }
            
        }
    }
    
    
    
    
    

    Funziona bene ma solo se metto i valori a mano nello script....e questo non ha vermante senso ragazzi...

     

    cioè se invece che scrivere:

    var numOro=Math.floor(rnd * (maxG - minG + 1)) + minG;

    scrivo:

    var numOro=Math.floor(0.282202820* (40 - 20 + 1)) + 20;
    

    Tenete conto che tramite un debugger ho verificato il valore delle variabili ed è identico alla valorizzazione manuale data da me in questo esempio!

     

    Non ho idea di come possa succedere una cosa del genere....

     

     

    Ps: per farlo funzionare lancio un COMANDO PLUGIN dal mio RPG MV con scritto:

    rndGold 20 40
    

    (dove 20 è il valore minimo e 40 quello massimo che desidero assegnare)...

     

    Qualcuno può darmi un giudizio? :/

  2. Si si! La prende su SCRIPT:

    var oro=Math.floor((Math.random() * 100) + 1);
    $gameParty.gainGold(oro);
    $gameMessage.add("Trovate "+oro+" monete")
    

    In questo modo mi da un valore random tra 1 e 100!

    Io però volevo creare qualcosa che si possa richiamare passando le variabili proprio come si fa in Js!

    Tipo aprire lo script e scrivere:

    miaFunzioneGold(10,100);
    

    e basta! E poi stoccare tutto il resto della funzione altrove! Per adesso l'unica cosa che mi viene in mente è quella di valorizzare 2 delle variabili di controllo e passare quelle però così ho 3 passaggi da fare (valorizzare varMin, valorizzare VarMax, chiamare funzione) mentre volevo ridurre tutto a una semplice chiamata e pensavo magari che coi plug-in si potesse fare! Di fatto il codice Js lo ho già sul mio file Js....non so come farlo funzionare all'interno del game!

    Mi sa che devo studiare ancora un bel po per capire come interagisce il js con RPG mV :(

  3. Ciao a tutti! Essendo programmatore e conoscendo diversi linguaggi non sto trovando grossi intomppi nell'apprendere il JS.

    Il mio unico problema è capire come i plug-in creati poi interagiscano con RPG MAKER MV (tipo valorizzare le variabili da plug-in ecc)

    Sto iniziando a documentarmi su sta cosa (sto seguendo i vostri tutorial) ma nel frattempo avrei bisogno di un piccolo plug-in per il gioco che sto sviluppando.

     

    Mi piacerebbe avere una funzione da richiamare con un call che aggiungesse un valore RANDOM di oro al mio eroe attenendosi a un valore MIN e MAX che passerei io a funzione.

    tipo:

    rndGold(20,150)

    Grazie :)

  4. Nella variabile viene salvato il numero ID dell'oggetto.

    Quindi se tu devi usare l'oggetto chiave rossa che nel database ha ID 4 ti basta fare una condizione del tipo...

    se variabile scelta è = 4

    ---- fai quel che devi fare

    ---- rompi la chiave

    altrimenti

    ---- messaggio non è l'oggetto giusto

    fine

    ^ ^

     

    Aaaaaaah ora ho capito! Con selezionaElemento mi mette nella variabile scelta l'id dell'oggetto! e dopo gestisco io! BELLISSIMO! Grazie!!!

  5. C'è l'MV che ha questa opzione già implementata, dato che non basta usare l'oggetto, ma anche calcolare coordinate e cose simili. Fortunatamente da MV in poi hanno messo il comando "seleziona elemento". Ti permette di selezionare in un pratico menù trasparente gli oggetti ed a seconda dell'oggetto scelto cambiare il valore di una variabile, così da creare i meccanismi di scelta che desideri.

    ^ ^

    Ti ringrazio! Sto guardando questa funzione che è davvero utile ma non è specifica! Io voglio creare una reazione solo se si una un determinato oggetto mentre questa funzione qualsiasi oggetto seleziono fa cambiare la variabile! :(

  6. A me funziona tutto sinchè non inserisco lo script:

    Graphics.resize_screen(1680, 1050)

     

    Funziona tutto nel senso che non zooma più (e quindi vedo la finestra in HD ma piccolissima)....appena metto quella stringa torna normale...

    C'è da dire che il mio vx ace mi genera la dll di nome: RGSS301.dll e non RGSS300.dll! Io ho rinominato quella modificata non so se questo possa essere un intoppo! :(

     

     

    UPDATE:

    Come non detto non funziona proprio! Semplicemente disattivava il FULLSCREEN...anche con la DLL originale e senza script Graphics mi apre in hd ma finestra piccola (senza F.Screen appunto)

  7. No no il peso di PS non è un problema per il mio pc, solo mi sembrava più un software per lavorare su grandi immagini! Credevo esistesse qualche editor apposito per fare character o sprites che partisse già di base in pixel (tipo dove io lavoro sui pixel e affianco mi desse una preview in grandezza normale del chara visto che superzoomato non si capisce granche)

  8. Ciao a tutti!
    Sto usando uno script per avere la passabilità stella anche sui tileset della sezione A.

    Non so perchè ma quando metto un tileset B in quella regione finisce sotto il tileset A (mentre dovrebbe rimanere sopra).

    Ho provato a manipolare le priorità ma non cambia nulla :/ Con gli eventi non succede (rimangono in primo piano).

     

    Lo script è questo:

    ###--------------------------------------------------------------------------###
    #  CP Terrain Tags script                                                      #
    #  Version 1.2                                                                 #
    #                                                                              #
    #      Credits:                                                                #
    #  Original code by: Neon Black                                                #
    #  Modified by:                                                                #
    #                                                                              #
    #  This work is licensed under the Creative Commons Attribution-NonCommercial  #
    #  3.0 Unported License. To view a copy of this license, visit                 #
    #  http://creativecommons.org/licenses/by-nc/3.0/.                             #
    #  Permissions beyond the scope of this license are available at               #
    #  http://cphouseset.wordpress.com/liscense-and-terms-of-use/.                 #
    #                                                                              #
    #      Contact:                                                                #
    #  NeonBlack - neonblack23@live.com (e-mail) or "neonblack23" on skype         #
    ###--------------------------------------------------------------------------###
    
    ###--------------------------------------------------------------------------###
    #      Revision information:                                                   #
    #  V1.2 - 12.22.2012                                                           #
    #   Fixed an issue related to loading a saved game                             #
    #  V1.1 - 12.3.2012                                                            #
    #   Rewrote passage checking                                                   #
    #   Fixed various passability issues                                           #
    #  V1.0 - 11.30.2012                                                           #
    #   Wrote and debugged main script                                             #
    ###--------------------------------------------------------------------------###
    
    ###--------------------------------------------------------------------------###
    #      Compatibility:                                                          #
    #  Alias       - Game_CharacterBase: passable?                                 #
    #                Game_Player: moveto                                           #
    #                Game_Follower: chase_preceding_character                      #
    #                Game_Map: setup,                                              #
    #                Scene_Load: on_load_success                                   #
    #  Overwrites  - Game_Player: move_by_input                                    #
    #                Game_Map: check_passage                                       #
    #  New Objects - Game_CharacterBase: move_slope, slope_passable?               #
    #                Game_Player: move_modif_direction, move_slope                 #
    #                Game_Map: reset_map, init_fold, init_setup, add_tile_id,      #
    #                          bridge_flip, bridge?                                #
    ###--------------------------------------------------------------------------###
    
    ###--------------------------------------------------------------------------###
    #      Instructions:                                                           #
    #  Place this script in the "Materials" section of the scripts above main.     #
    #  This script allows tiles on a map to be tagged using regions to change the  #
    #  properties of those tiles.  This includes slopes, cover, blockers, and      #
    #  bridges.  Each terrain type is detailed with each config option below.      #
    ###--------------------------------------------------------------------------###
    
    ###--------------------------------------------------------------------------###
    #      Config:                                                                 #
    #  This is the config section of the script.  This script is split into a few  #
    #  parts to make using it a little easier.  You may change these values to     #
    #  fit your liking.                                                            #
    #                                                                              #
    module CP      # Do not edit                                                   #
    module TERRAIN #  these lines.                                                 #
    #                                                                              #
    ###-----                                                                -----###
    #      Slope Options:                                                          #
    # Slope terrains cause the player to move diagonally while walking over them,  #
    # much like a horizontal stair case.  This only affects horizontal movement    #
    # and has no effect on vertical movement.  As a general rule of thumb, all     #
    # stair tiles must be marked with these tags even if they cannot be walked on. #
    # Also, both slopes do not work if the bottom edges are touching, so avoid     #
    # creating maps where this happens.  Note that events are no affected by these #
    # tags, only player and followers are.                                         #
    #                                                                              #
    # Region tag for a slope with a shape like \.                                  #
    DOWN_RIGHT = 3 # Default = 16                                                 #
    #                                                                              #
    # Region tag for a slope with a shape like /.                                  #
    DOWN_LEFT  = 4 # Default = 17                                                 #
    #                                                                              #
    ###-----                                                                -----###
    #      Cover Options:                                                          #
    # This affects cover and blocking region tags.  Cover tags cause the tile      #
    # tagged to appear above characters and events.  Block tags cause the tagged   #
    # tile to become impassible.  Because auto tiles have odd passage settings on  #
    # inside tiles, it is recommended to use these tags on edges of cover tiles.   #
    #                                                                              #
    # The region tag for cover tiles.                                              #
    COVER = 1 # Default = 18                                                      #
    #                                                                              #
    # The region id to use for block tiles.                                        #
    BLOCK = 2 # Default = 19                                                      #
    #                                                                              #
    ###-----                                                                -----###
    #      Bridge Options:                                                         #
    # This affects bridge and catwalk type tiles.  Bridges use tileset A while     #
    # catwalks use tilesets B-E.  Bridges flip when the player steps onto a region #
    # tagged as a lower or upper tile.  To prevent bugs, a player can only step    #
    # from a bridge or catwalk tile onto another bridge or catwalk tile or a       #
    # lower/upper region of the same type.  Also note that bridges use the CLEAR   #
    # tile from above for when the bridge is flipped to lower.  Events also do NOT #
    # function properly with bridges, so avoid having events on bridges.           #
    #                                                                              #
    # The region IDs to use for bridges and catwalks.                              #
    BRIDGE = 5 # Default = 20                                                     #
    CATWALK = 6 # Default = 21                                                    #
    #                                                                              #
    # The region tags for the upper and lower enterances of the bridge.            #
    LOWER = 7 # Default = 22                                                      #
    UPPER = 8 # Default = 23                                                      #
    ###--------------------------------------------------------------------------###
    
    
    ###--------------------------------------------------------------------------###
    #  The following lines are the actual core code of the script.  While you are  #
    #  certainly invited to look, modifying it may result in undesirable results.  #
    #  Modify at your own risk!                                                    #
    ###--------------------------------------------------------------------------###
    
    
    end
    end
    
    $imported = {} if $imported.nil?
    $imported["CP_TERRAIN"] = 1.1
    
    class Game_CharacterBase
      def move_slope(horz, vert)
        @move_succeed = slope_passable?(x, y, horz, vert)
        if @move_succeed
          @x = $game_map.round_x_with_direction(@x, horz)
          @y = $game_map.round_y_with_direction(@y, vert)
          @real_x = $game_map.x_with_direction(@x, reverse_dir(horz))
          @real_y = $game_map.y_with_direction(@y, reverse_dir(vert))
          increase_steps
        end
        set_direction(horz) if @direction == reverse_dir(horz)
        set_direction(vert) if @direction == reverse_dir(vert)
      end
      
      def slope_passable?(x, y, horz, vert)
        x2 = $game_map.round_x_with_direction(x, horz)
        y2 = $game_map.round_y_with_direction(y, vert)
        return false unless $game_map.valid?(x2, y2)
        return true if @through || debug_through?
        return false if collide_with_characters?(x2, y2)
        (map_passable?(x, y, horz) && map_passable?(x2, y2, reverse_dir(vert))) ||
        (map_passable?(x, y, vert) && map_passable?(x2, y2, reverse_dir(horz)))
      end
      
      alias cp_terrain_pass passable?
      def passable?(x, y, d)
        x2 = $game_map.round_x_with_direction(x, d)
        y2 = $game_map.round_y_with_direction(y, d)
        if region_id == CP::TERRAIN::BRIDGE || region_id == CP::TERRAIN::CATWALK
          return true if @through || debug_through?
          sets = [CP::TERRAIN::BRIDGE, CP::TERRAIN::CATWALK]
          $game_map.bridge? ? sets.push(CP::TERRAIN::LOWER) : sets.push(CP::TERRAIN::UPPER)
          return false unless sets.include?($game_map.region_id(x2, y2))
        end
        cp_terrain_pass(x, y, d)
      end
    end
    
    class Game_Player < Game_Character
      def move_by_input
        return if !movable? || $game_map.interpreter.running?
        move_modif_direction
      end
    
      def move_modif_direction
        dir = Input.dir4
        return if dir <= 0
        case dir
        when 4
          if region_id == CP::TERRAIN::DOWN_LEFT
            set_direction(4)
            move_slope(4, 2)
          elsif $game_map.region_id(@x - 1, @y) == CP::TERRAIN::DOWN_RIGHT
            set_direction(4)
            move_slope(4, 8)
          else
            move_straight(dir)
          end
        when 6
          if region_id == CP::TERRAIN::DOWN_RIGHT
            set_direction(6)
            move_slope(6, 2)
          elsif $game_map.region_id(@x + 1, @y) == CP::TERRAIN::DOWN_LEFT
            set_direction(6)
            move_slope(6, 8)
          else
            move_straight(dir)
          end
        else
          move_straight(dir)
        end
        $game_map.bridge_flip(region_id)
      end
      
      def move_slope(horz, vert)
        @followers.move if slope_passable?(@x, @y, horz, vert)
        super
      end
      
      alias cp_fix_moveto moveto
      def moveto(x, y)
        cp_fix_moveto(x, y)
        $game_map.bridge_flip(region_id)
      end
    end
    
    class Game_Follower < Game_Character
      alias cp_slopes_chase chase_preceding_character
      def chase_preceding_character
        set_direction(@preceding_character.direction) unless moving?
        cp_slopes_chase
      end
    end
    
    class Game_Map
      alias cp_terrain_setup setup
      def setup(map_id)
        init_fold
        cp_terrain_setup(map_id)
        init_setup
      end
      
      def reset_map
        tf = @flip
        init_fold
        @map = load_data(sprintf("Data/Map%03d.rvdata2", @map_id))
        @tileset_id = @map.tileset_id
        init_setup
        id = tf ? CP::TERRAIN::LOWER : CP::TERRAIN::UPPER
        bridge_flip(id)
      end
      
      def init_fold
        @flip = false if @flip.nil?
        return_tiles
      end
      
      def init_setup
        @bridges = []; @catwalks = []; @tile_flag_set = {}
        width.times do |x|
          height.times do |y|
            id = region_id(x, y)
            if id == CP::TERRAIN::BRIDGE || id == CP::TERRAIN::UPPER
              bset = [x, y]
              bset.push(data[x, y, 2])
              bset.push(tileset.flags[data[x, y, 0]])
              @bridges.push(bset)
              add_tile_id(data[x, y, 0])
            end
            if id == CP::TERRAIN::CATWALK
              bset = [x, y]
              bset.push(tileset.flags[data[x, y, 2]])
              @catwalks.push(bset) 
            end
            next unless id == CP::TERRAIN::COVER
            add_tile_id(data[x, y, 0])
            data[x, y, 2] = data[x, y, 0]
            data[x, y, 0] = 0
            tileset.flags[data[x, y, 2]] = 0x10
          end
        end
      end
      
      def add_tile_id(id)
        @tile_flag_set = {} if @tile_flag_set.nil?
        return if @tile_flag_set.include?(id)
        @tile_flag_set[id] = tileset.flags[id]
      end
      
      def check_passage(x, y, bit)
        @tile_flag_set = {} if @tile_flag_set.nil?
        rid = region_id(x, y)
        return false if rid == CP::TERRAIN::BLOCK
        all_tiles(x, y).each do |tile_id|
          if (rid == CP::TERRAIN::BRIDGE && bridge?) ||
             (rid == CP::TERRAIN::COVER && tile_id == 0)
            flag = 0x600
          elsif @tile_flag_set.include?(tile_id) && rid != CP::TERRAIN::COVER
            flag = @tile_flag_set[tile_id]
          else
            flag = tileset.flags[tile_id]
          end
          next if flag & 0x10 != 0            # [☆]: No effect on passage
          return true  if flag & bit == 0     # [○] : Passable
          return false if flag & bit == bit   # [×] : Impassable
        end
        return false                          # Impassable
      end
      
      def bridge_flip(id)
        @flip = false if @flip.nil?
        case id
        when CP::TERRAIN::LOWER
          return if @flip
          @bridges.each do |set|
            x, y = set[0..1]
            data[x, y, 2] = data[x, y, 0]
            data[x, y, 0] = 0
            tileset.flags[data[x, y, 2]] = 0x10
          end
          @catwalks.each do |set|
            x, y = set[0..1]
            tileset.flags[data[x, y, 2]] = 0x10
          end
          @flip = true
        when CP::TERRAIN::UPPER
          return_tiles
        end
      end
      
      def return_tiles
        return if !@flip
        @bridges.each do |set|
          x, y = set[0..1]
          data[x, y, 0] = data[x, y, 2]
          data[x, y, 2] = set[2]
          tileset.flags[data[x, y, 0]] = set[3]
        end
        @catwalks.each do |set|
          x, y = set[0..1]
          tileset.flags[data[x, y, 2]] = set[2]
        end
        @flip = false
      end
      
      def bridge?
        @flip = false if @flip.nil?
        return @flip
      end
    end
    
    class Scene_Load < Scene_File
      alias cp_terrain_load on_load_success
      def on_load_success
        $game_map.reset_map
        cp_terrain_load
      end
    end
    
    
    ###--------------------------------------------------------------------------###
    #  End of script.                                                              #
    ###---------------------------------------------------------------
    

    Qualcuno riesce a capire perchè fa questo problema? O magari avete qualche scritp + stabile da suggerire che faccia la stessa cosa? Grazie :)

  9. Buona trovata anche per il blocco condizionale, anche se così funziona solo se usi eroi singoli, giusto? Non viene mostrato uguale il primo eroe su mappa anche se è vivo? ^ ^

     

     

    Si ho risolto così perchè il mio gioco non prevede party con più membri! Credo che però creando un piccolo script che cicla su tutti i membri non sia complicatissimo convertire la cosa!

     

    Grazie ancora!

  10. ahahah no non metto mondo! Era per rendere l'idea! Cmq ho cercato un po in giro!
    Io sono un buon programmatore di vari linguaggi ma RUBY e RGSS3 non li conosco proprio...

    Il fatto di essere già avezzo alla programmazione mi ha consentito frugando un po di scoprire dove cavolo sono stoccate le variabili locali di RPGM VX ACE!

    In sostanza basta inserire al posto della stringa $game_variables[1].to_s

     

    la funzione .to_s serve proprio a convertire il valore numerico in stringa!

    In sostanza ho creato un evento comune che richiamo ogni volta che devo togliere punti vita all'eroe popolo la mia bella variabile[0001] con il valore e la passo in questo modo allo script:

    SceneManager.scene.damage(-1, "Hai perso " + $game_variables[1].to_s, 5, [255,0,0])
    

    (ovviamente se la variabile fosse la 0023 cambierei l'ID che qui è 1.

    Una cosa ulteriore che ho riscontrato è che se consentiamo la morte del Chara dopo un'ennesima perdita di HP il tutto crasha (presumo perchè il gioco fa partire contemporaneamente la funzione di Game Over e quella del testo Popup quindi ho risolto mettendo un bel blocco condizionale:

    @>Blocco Condizionale: Script: $game_party.members[0].hp>0
         @>Script: lo script visto sopra
         @>
    : Fine Blocco
    @>
    

    In questo modo esegue lo script solo se l'eroe ha + di 0 come HP ($game_party.members[0].hp>0)

     

    Sta scoperta delle variabili locali mi aprirà un mondo :D

    Grazie ancora!!!!

  11. Ciao a tutti!
    Il gioco che sto sviluppando è un gioco che non avrà BS statici (stile final fantasy per intenderci) ma i combattimenti saranno in tempo reale nella mappa stessa!

    Per fare questo vorrei creare uno script che visualizzi un piccolo testo sopra l'eroe quando subisce un danno! tipo scorrimento su circa 2 cm di schermo che poi sparisca.


    Es:

    Tocco una trappola mi toglie 100 HP vorrei apparisse in "fade" sopra l'eroe la scrittina "-100 hp"

     

     

    Solo che non so se sia fattibile e nel caso come!


    Avete consigli? Grazie!

  12. Ok ho fatto tutto grazie! ;)

    Ora però ho un altro problema! Siccome la cornice che sto usano è un po "ingombrante" volevo sapere se agendo sullo script di sistema c'era la possibilità di spostare le coordinate di default in cui appaiono i testi + l'avatar dei messaggi!

    Grazie ;)

  13. Scusa, sapendo che la risoluzione (di default) di RPG Maker VX Ace è di 544x416 e sapendo che il primo pixel in alto a sinistra ha coordinate 0,0 non ci vuole molto a capire come usare le coordinate. Fai qualche prova, come hanno fatto tutti all'inizio. Non ti costa niente.

    Esatto! Sapendolo! Ma io non lo sapevo! :P

     

    Ho chiesto perchè mi è già capitato di usare il mostra immagine ed ho dovuto fare 2000 giri per centrarla perchè ero convinto la risoluzione fosse 640x480!

     

    Ora cmq riordino tutto e provo a fare come state dicendo voi! Anche se prima di provare con rpg vx devo mettermi a preparare la grafica dello sfondo/cornice...(ecco perchè chiedevo se ci fosse un immagine in giro per far le prove!)

     

    Grazie ancora!

  14. Rieccomi qui! :D

    Non spaventatevi per il titolo! Non ho i mente di fare una grafica per ogni arma/armatura :P Giusto una cosa generica!
    Se il mio eroe ha in mano una spada almeno voglio che si veda, idem se ha una mazza o un'ascia o uno scudo e così via!

    Per la grafica no problem! Me la sbroglio con Photoshop!

    Idem per i comandi da usare: Blocco Condizionale + Cambia Grafica eroe

     

    La mia domanda è...come rendo la cosa automatica? Devo fare un evento comune come processo parallelo?

    Dite che la cosa rallenterà un po il gameplay?!?

     

    Grazie

  15. Si si ma infatti ho capito cosa andrò a fare! Solo che non avendo mai usato il comando "Mostra Immagine" non son molto pratico di:

    Dimensioni
    Risoluzioni
    Coordinate di posizionamento

     

    ecc ecc

     

    Per quello chiedevo se esiste un immagine già "settata" come caratteristiche per fare quel che mi serve!

×
×
  • Create New...