Cosa non riesci a capire del codice aggiuntivo che ha fornito Selchar?
Devi incollare questa parte di codice, che è il metodo che andrai a chiamare quando userai il call script, sotto lo script originale; e penso che qui c'eri arrivato.
class Game_Interpreter
def appraise_equip(actor_id, slot=0, chance=0.5)
equip = $game_actors[actor_id].equips[slot]
if rand <= chance
#What happens with a success goes here.
#set_suffix(equip, 62) #Sets a suffix to your equip, from Tsukihime's Affixes
return true
else
#What happens with failure goes here
equip.durability -= rand(10)+1 #(loose between 1 and 10 durability
if equip.durability < 0
equip.durability = 0
equip.break_by_durability($game_actors[actor_id])
end
return false
end
end
end
Per quanto ri guarda questo:
a = $game_variables[7] #Whatever variable you set the actor id to.
s = $game_variables[8] #Whatever variable you set the slot id to if applicable
if appraise_equip(a, s)
$game_switches[5] = true #Switch you use for eventing after this scriptcall for dialogue/etc...
else
$game_switches[5] = false#Switch you use for eventing after this scriptcall for dialogue/etc...
end
Devi copiare tutte le sette righe di codice nel call script e modificarlo secondo le tue esigenze:
a = $game_variables[7]
Questa linea significa che l'interprete andrà nella variabile di gioco n°7 e il valore che troverà all'interno di essa sarà l'id dell'actor designato. Quindi basta cambiare il numero 7 dentro le parentesi quadre con un altro numero, per cambiare la variabile di gioco in cui l'interprete andrà a lavorare.
s = $game_variables[8]
Come sopra, solamente che stavolta la variabile numero 8 conterrà l'id dello slot dell'equipaggiamento dell'actor selezionato prima.
if appraise_equip(a, s)
Ok, questo invece è un po' diverso. Di default la possibilità di ridurre la durabilità tramite questo call script è del 50%. Se vuoi aumentare o ridurre questa possibilità, dentro le parentesi tonde e dopo il carattere 's' aggiungi una virgola ed un numero compreso tra 0 e 1 (dove 1 rappresenta il 100% di successo dell'operazione); ad esempio:
if appraise_equip(a, s, 0.7)
Significa che ora chiamando questo script si ha il 70% di possibilità che la riduzione di durabilità avvenga.
Quello che succede invece nella riga successiva (o nelle righe successive, potresti aggiungere altro codice) fino alla parola chiave 'else' succede solamente se la riduzione di durabilità non ha avuto successo. Lui nello script mette ON su uno switch probabilmente per far partire un evento comune. Invece quello che succede nelle righe sottostanti 'else' fino ad 'end' ha effetto se la riduzione di durabilità è avvenuta (questa volta mette OFF lo switch di gioco numero 5).
-
Alternativamente puoi, tramite eventi, usare un conditional branch basato su questo codice
appraise_equip(a, s, c)
dove al posto di 'a' va inserito l'ID dell'actor, al posto di 's' il numero dello slot dell'equipaggiamento e al posto di 'c' la probabilità di successo (come prima).
Ah, non l'ho testato
Modificato da Axel Phantom, 03 September 2014 - 14:49 PM.