-
Posts
30 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Posts posted by Zaoldieck
-
-
UPDATE: aggiornamento sullo script, nel gioco si otterranno 3 tipi di pentoloni alchemici differenti.
con il primo si possono unire solo 2 ingredienticon 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
-
Funziona!! risultato ottimale :D grazie a tutti!!!
PS: ickh sempre il migliore!
-
questo devo aggiungerlo sotto matierial?
provo e pubblico il risultato.
-
quindi come devo fare? :C
mi ricapitolate il tutto? -
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 >_<
-
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"
-
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?
-
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
-
magari prova a spiegare piu nel dettaglio con qualche screen che ci fa capire bene la situazione in cui ti trovi , sicuramente possiamo aiutarti meglio :3
-
Ottimo, prego! Occhio ^ hai doppipost però che son controregolamento, usa il tasto modifica! ^ ^
non lo sapevo! ci prestero' attenzione d'ora in poi!
-
apposto funziona DIVINAMENTE! thx ^_^
-
sisi sto ancora provando xD
-
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?
-
non ho urgenza perhce sono comunque agli inizi del gioco e ho un sacco di altre cose da fare, ma ci conto! ^_^ grazie ancora! in anticipo :)
-
Grazie mille!!! ^_^
-
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?
-
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!
-
gia! infatti si vede che ne sa! poco dopo la mia richiesta aveva gia fatto lo script! Grazie ickh sei davvero bravo
-
OK e' perfetto
ho provato ad utilizzare il codice di ickhclass 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
ende 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
-
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.
-
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
-
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
-
non ho molta praticita' con gli script, come faccio ad installare questo script nel mio progetto? nn ho capito bene dove si deve inserire
-
sto dedicando molto tempo al mio gioco, non ho molta voglia di creare una demo anche perche dovrei creare un altro progetto a parte. cmq ho spiegato bene si capisce gia cosi :D

*King Alchimia :D
in Scripts RGSS3 (VX-Ace)
Posted · Edited by Zaoldieck
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