-
Posts
75 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Posts posted by Nortas
-
-
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 :( -
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 :)
-
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!!!
-
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! :(
-
D: E' possibile aprire il menu oggetti da evento? Vorrei far si che il giocatore selezioni da solo l'item adatta a sbloccare eventuali ostacoli o aprire determinate porte
-
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) -
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)
-
D: Sto cercando invano di creare la grafica da "Morto" del mio chara...con photoshop è follia! Avete qualche tool da suggerirmi? Grazie :)
-
Ho la 1.02a!
Infatti ho uno script di default che si chiama VXAce Star Passability Bug Fixperò non va lo stesso :(
-
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 :)
-
Ti dovrò fare un monumento!

-
Io non riesco a "sistemare il codice" in quel topic è tutto su una riga e mi incasina non poco la cosa essendo digiuno di Ruby xD
-
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!
-
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_sla 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!!!! -
Solo non riesco a passare le variabili! Tipo se nel valore STRING metto: "Ciao \V[1]" dove la variabile[0001] è "Mondo" mi visualizza il testo "Ciao \V[\1]" :D
-
E' proprio quello che cerco! :D
Grazie!!!E' bellissimo :D
-
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! -
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 ;) -
Ok credo mi darò ai P.Paralleli allora :P
-
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!
-
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 eroeLa 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
-
Chiedo scusa! Non lo sapevo!
Ho modificato il post! I 2 aggiuntivi non me li fa cancellare se puoi farlo tu.... :P
ps: ho notato che su molti forum quando si mettono + post di fila il sistema in automatico li fonde col primo! Non ricordo che piattaforma fosse (Credo V-Bullettin) ma magari c'è questa funzione anche su questo!Grazie ancora!
-
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 posizionamentoecc ecc
Per quello chiedevo se esiste un immagine già "settata" come caratteristiche per fare quel che mi serve!
-
Forse mi serve un immagine di esempio per fare una prova! Ce ne sono da qualche parte? Giusto per provare un po!

Creare una funzione che aggiunga oro random
in Richieste PLUGIN e Javascript
Posted · Edited by Nortas
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:
scrivo:
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:
(dove 20 è il valore minimo e 40 quello massimo che desidero assegnare)...
Qualcuno può darmi un giudizio? :/