Jump to content
Rpg²S Forum
  • 0

Cambiare Target


Valentino
 Share

Question

Salve a tutti.. Avrei un problema con la scene_battle. Ho modificato lo script in modo che premendo un tasto si possa selezionare tutti i nemici e con un altro tornare a uno solo. Ma una volta premuto il tasto, premendo l'altro non succede niente! Questa è la modifica che ho fatto nel def update_phase3_enemy_select

 

if Input.trigger?(Input::Y)

if @skill.scope == 1

$game_system.se_play($data_system.decision_se)

@skill.scope = 2

end_enemy_select

start_select_all_enemies

end

end

if Input.trigger?(Input::X)

if @skill.scope ==2

$game_system.se_play($data_system.decision_se)

@skill.scope = 1

end_select_all_enemies

start_enemy_select

end

end

 

Link to comment
Share on other sites

12 answers to this question

Recommended Posts

  • 0
  • 0

start_enemy_select e end_enemy_select sono quelli già presenti nella Scene_Battle predefinita.

Invece per start/end_select_all_enemies ho quelli del side view tankentai XP v 1.9 che sarebbero:

start_select_all_enemies

 

def start_select_all_enemies

now_action

@status_window.visible = true

@icone_window.visible = true

@active_battler_window.visible = false

@enemy_arrow_all = Arrow_Enemy_All.new(@spriteset.viewport2)

end

 

di cui l'arrow_enemy_all è

 

class Arrow_Enemy_All < Arrow_Base

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

def initialize(viewport)

super(viewport)

@arrows = []

for battler in $game_troop.enemies

if battler.exist?

@arrows[battler.index] = Arrow_Enemy.new(viewport)

@arrows[battler.index].index = battler.index

end

end

end

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

def update_multi_arrow

super

for i in 0...@arrows.size

enemy = $game_troop.enemies

if enemy != nil && @arrows != nil && @arrows.enemy != nil

@arrows.x = @arrows.enemy.position_x + CURSOR_POSITION[0]

@arrows.y = @arrows.enemy.position_y + CURSOR_POSITION[1] + enemy.enemy_height

end

end

end

end

 

 

mentre end_select_all_enemies:

 

def end_select_all_enemies

@enemy_arrow_all.dispose_multi_arrow

@enemy_arrow_all = nil

@active_battler_window.visible = false if @actor_command_window.index == 0

end

 

per il de update_phase3_enemy_select intendo quello riguardante la parte 3 della scene battle predefinita.

Grazie mille!

Link to comment
Share on other sites

  • 0

Queste parti risultano non essere sufficienti, perchè richiamano codice che non è presente nel battle system di default, come il metodo now_action e la variabile @icone_window, quindi devi avere altre parti modificate. Ma prima di postarle, una domanda.

Stai costruendo tu questo "script" seguendone la logica o stai prendendo pezzi dal tankentai? Perchè nella seconda ipotesi, questa è una strada completamente sballata se non si comprende bene quel che si sta facendo.

Link to comment
Share on other sites

  • 0

Sto agendo direttamente sullo scene_battle di default e per lo start_select_all_enemies e lo end_select_all_enemies li ho presi dal tankentai... comunque @icone_window non centra niente è riguardo una finestra che ho creato nel battle system che fa vedere con delle icone gli status alterati...

now_action invece è definito nel tankentai ma penso serva solo a richiamare degli effetti legati alla skill o l'oggetto usato che setto nel tankentai.

Link to comment
Share on other sites

  • 0
Quindi in sostanza stai cercando di estrapolare questa funzionalità dal tankentai... allora scusami ma il miglior aiuto che ti posso dare è il consiglio di cercare di comprendere come è realizzata questa funzione e di riprodurla, e non facendo copia e incolla di pezzi, che inevitabilmente avranno parti che chiamano in causa roba che non c'entra nulla. Ho inserito questa funzionalità nel mio BS e ti posso dire per esperienza che difficilmente ne puoi venire a capo procedendo per questa strada.
Link to comment
Share on other sites

  • 0

Nono alla fine quello che ho preso dal tankentai è stata solo la funzione per mettere le freccie su tutti i nemici e non...

La abilità cambia target perfettamente se tolgo tutti gli start e gli end enemy_select ma non cambia le freccie...

L'unico mio problema è far apparire e sparire le freccie su tutti e un nemico.

Link to comment
Share on other sites

  • 0

Forse non c'entra nulla, ma nello script Arrow_Enemy_All che hai postato non c'è il metodo (def) dispose_multi_arrow . . .

 

EDIT - Inoltre, sempre ipotizzando, potrebbe essere necessario estendere un'istruzione nel def update_phase3, ossia

if @enemy_arrow != nil

dovrebbe diventare

if @enemy_arrow != nil or @enemy_arrow_all != nil

Edited by giver

 


SCRIPT RGSS (RPG Maker XP) VINTAGE LIBRARY [2018+]


Breaking (in ogni senso) News: "Treno deraglia per via del seno di Sakurai Aoi . . ." - Info nello spoiler !!

 


http://afantasymachine.altervista.org/_altervista_ht/NOOOOOOOOOilMIOtreninooooo_500.gif


Non riesco a smettere di essere affascinato da immagini come questa . . .

http://anime.vl-vostok.ru/art/photos2011/17/78049800/wall_VladAnime_WWA_1885-1680x1050.jpg


Alcuni wallpapers che faccio ruotare sul mio vecchio PC . . .


http://afantasymachine.altervista.org/_altervista_ht/gits_window.jpg

http://afantasymachine.altervista.org/_altervista_ht/madoka_group01.jpg
http://afantasymachine.altervista.org/_altervista_ht/arisu_picipici_01.jpg
http://afantasymachine.altervista.org/_altervista_ht/phantom_wp01_einzwei.jpg


La parte più spassosa della mia vita è quando gli altri cercano di spiegarmi i miei pensieri . . .


BBCode Testing


Typeface & Size



Link to comment
Share on other sites

  • 0

Ho trovato il def dispose multi arrow. Era all'interno di un aggiornamento dell'arrow_base:

 

class Arrow_Base < Sprite

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

include N01

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

def update_multi_arrow

return if @arrows == nil or @arrows == []

for i in 0...@arrows.size

@blink_count = (@blink_count + 1) % 40

if @blink_count < 20

@arrows.src_rect.set(128, 96, 32, 32) if @arrows != nil

else

@arrows.src_rect.set(160, 96, 32, 32) if @arrows != nil

end

end

end

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

def dispose_multi_arrow

for i in 0...@arrows.size

@arrows.dispose if @arrows != nil

end

end

end

 

Comunque anche modificando la phase3 il problema persiste. :sisi:

Link to comment
Share on other sites

  • 0
  • 0

Ecco la demo! (le modifiche sono nella Scene Battle3 comunque ho segnato dove.)

http://www.megaupload.com/?d=HNJR02AD

http://rapidshare.com/files/320846073/Project1.rar.html

Con il primo personaggio premi S quando stai selezionando i nemici e li selezionerà tutti. Il problema è che ripremendolo non torna a uno.

Grazie mille!

Edited by Valentino
Link to comment
Share on other sites

  • 0

Scusa, ma, nel codice che hai postato inizialmente i pulsanti per cambiare la modalità di bersagliamento sono due: button Y e button X . . .

Quindi, non dovresti ripremere S, ma dovresti premere A per riportarla all'originale . . .

 

Se vuoi fare il toggling con un solo pulsante, e funzionasse comeho appena detto, allora dovresti rivedere quella parte di codice, mettendo le due if @skill.scope all'interno della stessa if Input . . .

EDIT - La seconda if, dovrebbe diventare una elsif della prima o essere incorporata nell'else della prima.

Magari ho capito male il tuo ultimo messaggio, però . . .

Edited by giver

 


SCRIPT RGSS (RPG Maker XP) VINTAGE LIBRARY [2018+]


Breaking (in ogni senso) News: "Treno deraglia per via del seno di Sakurai Aoi . . ." - Info nello spoiler !!

 


http://afantasymachine.altervista.org/_altervista_ht/NOOOOOOOOOilMIOtreninooooo_500.gif


Non riesco a smettere di essere affascinato da immagini come questa . . .

http://anime.vl-vostok.ru/art/photos2011/17/78049800/wall_VladAnime_WWA_1885-1680x1050.jpg


Alcuni wallpapers che faccio ruotare sul mio vecchio PC . . .


http://afantasymachine.altervista.org/_altervista_ht/gits_window.jpg

http://afantasymachine.altervista.org/_altervista_ht/madoka_group01.jpg
http://afantasymachine.altervista.org/_altervista_ht/arisu_picipici_01.jpg
http://afantasymachine.altervista.org/_altervista_ht/phantom_wp01_einzwei.jpg


La parte più spassosa della mia vita è quando gli altri cercano di spiegarmi i miei pensieri . . .


BBCode Testing


Typeface & Size



Link to comment
Share on other sites

  • 0

Si bon ho cambiato i tasti perchè alla fine lo avrei messo così, comunque mi pare sia quello che ho fatto.

Comunque adesso l'ho messo così:

 

if Input.trigger?(Input::Y)

# Play cancel SE

$game_system.se_play($data_system.decision_se)

if @skill.scope == 2

@skill.scope = 1

end_select_all_enemies

start_enemy_select

elsif @skill.scope == 1

end_enemy_select

start_select_all_enemies

@skill.scope = 2

end

return

end

 

il risultato è sempre quello :Ok:

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...