Per il mio progetto mi diverto a fare delle piccole modifiche nello script per soddisfare le mie esigenze, visto che sono modifiche brevi che non necessitano la ricerca di uno script adeguato. Non essendo esperto di programmazione RGSS3, mi limito a fare dei piccoli script che modificano certe funzionalità
Tra le varie modifiche, ce ne sono un paio che possono essere d'aiuto anche ad altre persone, che magari sono meno pratiche con lo scripting. Quindi volevo condividerle qui, nel caso servissero a qualcuno (se c'è gente che usa ancora VX Ace. XD)
Tutti gli script sono semplici, quindi non è necessario creditarmi. Però chi lo fa è una persona simpatica.
Select Item/Weapon/Armor
Script che modifica il comando "seleziona oggetto".
Ora attraverso una variabile è possibile indicare ogni volta da quale sezione dell'inventario il giocatore andrà a selezionare un oggetto.
Spoiler
#==============================================================================
=begin
Script che modifica il comando "seleziona oggetto".
Ora attraverso una variabile è possibile indicare ogni volta da quale
sezione dell inventario il giocatore andrà a selezionare un oggetto.
Variabile = 0: seleziona dagli oggetti chiave (DEFAULT)
Variabile = 1: seleziona dagli oggetti base
Variabile = 2: seleziona dalle armi
Variabile = 3: seleziona dalle armature
=end
#==============================================================================
module SELECT_ITEM
#Variabile che determina la categoria dove selezionare
CATEGORY_VAR = 169
end
class Window_KeyItem < Window_ItemList
#OVERRIDE!
def start
case $game_variables[SELECT_ITEM::CATEGORY_VAR]
when 0
self.category = :key_item
when 1
self.category = :item
when 2
self.category = :weapon
when 3
self.category = :armor
else
p "numero selezione errato"
end
update_placement
refresh
select(0)
open
activate
end
end
Number Input Limit
Script che permette alla finestra "Input numero" di non poter essere confermata quando supera un certo valore.
Spoiler
#==============================================================================
=begin
Script che permette alla finestra "Input numero" di non poter essere
confermata quando supera un certo valore.
Lo script è da attivare/disattivare con uno switch, e quando attivo se
il valore selezionato supera il valore dato nella variabile preimpostata,
il numero diventerà grigio e non si potrà confermare la scelta, prevenendo
un controllo per verificare se si possiede quella cifra.
=end
#==============================================================================
module SELECT_ITEM
#Variabile che indica il limite del numero da selezionare
LIMIT_VAR = 168
#Switch che attiva/disattiva lo script
TOGGLE_SWITCH = 398
#quando lo script è attivo il giocatore può premere il tasto
#annulla per uscire dalla finestra. Verrà contato uno 0 in input.
CAN_CANCEL = true
end
class Window_NumberInput < Window_Base
alias process_limit_ok process_ok
def process_ok
if(@number <= $game_variables[SELECT_ITEM::LIMIT_VAR] || !$game_switches[SELECT_ITEM::TOGGLE_SWITCH])
process_limit_ok
else
Sound.play_buzzer
end
end
alias default_process_cancel process_cancel
def process_cancel
if($game_switches[SELECT_ITEM::TOGGLE_SWITCH] && SELECT_ITEM::CAN_CANCEL)
@number = 0
process_ok
end
default_process_cancel
end
#OVERRIDE
def refresh
contents.clear
if(@number > $game_variables[SELECT_ITEM::LIMIT_VAR] && $game_switches[SELECT_ITEM::TOGGLE_SWITCH])
change_color(gray_color)
else
change_color(normal_color)
end
s = sprintf("%0*d", @digits_max, @number)
@digits_max.times do |i|
rect = item_rect(i)
rect.x += 1
draw_text(rect, s[i,1], 1)
end
end
end
Lock Screen
Script che blocca lo scroll della telecamera in una specifica direzione.
Utile per limitare la visuale del giocatore invece di usare più mappe.
Per i miei scopi ho pure aggiunto una funzione dove se tutte le direzioni sono bloccate, teletrasportare il giocatore nella stessa mappa non sposterà la telecamera.
Spoiler
#==============================================================================
=begin
Script che blocca lo scroll della telecamera in una specifica direzione.
Utile per limitare la visuale del giocatore invece di usare più mappe.
Definire lo switch che bloccherà lo scrolling dello schermo in quella direzione.
è possibile assegnare il blocco di tutte le direzioni ad un unico switch.
Se tutte le direzioni sono bloccate, teletrasportare il giocatore nella stessa
mappa non sposterà la telecamera.
=end
#==============================================================================
module LOCK_SCREEN
LOCK_DOWN_SWITCH = 117 #Switch che blocca lo scrolling in giù
LOCK_LEFT_SWITCH = 118 #Switch che blocca lo scrolling a sinstra
LOCK_RIGHT_SWITCH = 119 #Switch che blocca lo scrolling a destra
LOCK_UP_SWITCH = 120 #Switch che blocca lo scrolling in su
end
class Game_Player < Game_Character
#--------------------------------------------------------------------------
# * Scroll Processing
#--------------------------------------------------------------------------
#OVERRIDE!
def update_scroll(last_real_x, last_real_y)
ax1 = $game_map.adjust_x(last_real_x)
ay1 = $game_map.adjust_y(last_real_y)
ax2 = $game_map.adjust_x(@real_x)
ay2 = $game_map.adjust_y(@real_y)
$game_map.scroll_down (ay2 - ay1) if ay2 > ay1 && ay2 > center_y && $game_switches[LOCK_SCREEN::LOCK_DOWN_SWITCH] == false
$game_map.scroll_left (ax1 - ax2) if ax2 < ax1 && ax2 < center_x && $game_switches[LOCK_SCREEN::LOCK_LEFT_SWITCH] == false
$game_map.scroll_right(ax2 - ax1) if ax2 > ax1 && ax2 > center_x && $game_switches[LOCK_SCREEN::LOCK_RIGHT_SWITCH] == false
$game_map.scroll_up (ay1 - ay2) if ay2 < ay1 && ay2 < center_y && $game_switches[LOCK_SCREEN::LOCK_UP_SWITCH] == false
end
#OVERRIDE!
def moveto(x, y)
super
if(!($game_switches[LOCK_SCREEN::LOCK_DOWN_SWITCH] && $game_switches[LOCK_SCREEN::LOCK_LEFT_SWITCH] && $game_switches[LOCK_SCREEN::LOCK_RIGHT_SWITCH] && $game_switches[LOCK_SCREEN::LOCK_UP_SWITCH]))
center(x, y)
end
make_encounter_count
vehicle.refresh if vehicle
@followers.synchronize(x, y, direction)
end
end
Don't remove equip
Impedisce che l'opzione "ottimizza" modifichi certi slot di equipaggiamento.
Utile per evitare che ti metta l'accessorio con più attacco quando avevi già messo quello che ti dava rigene. :triggedorf:
Spoiler
#==============================================================================
=begin
Impedisce che l opzione "ottimizza" modifichi certi slot di equipaggiamento
=end
#==============================================================================
#Definire qui quali equipaggiamenti verranno ottimizzati
module OPTIMIZE_EQUIP
OPTIMIZE_WEAPON = true
OPTIMIZE_SHIELD = false
OPTIMIZE_HELM = true
OPTIMIZE_ARMOR = true
OPTIMIZE_ACCESSORY = false
end
class Game_Actor < Game_Battler
#OVERRIDE!
def optimize_equipments
equip_ok = [OPTIMIZE_EQUIP::OPTIMIZE_WEAPON,OPTIMIZE_EQUIP::SHIELD,OPTIMIZE_EQUIP::HELM,OPTIMIZE_EQUIP::ARMOR,OPTIMIZE_EQUIP::ACCESSORY]
clear_basic_equipments
equip_slots.size.times do |i|
next if !equip_change_ok?(i) || !equip_ok[i]
items = $game_party.equip_items.select do |item|
item.etype_id == equip_slots[i] &&
equippable?(item) && item.performance >= 0
end
change_equip(i, items.max_by {|item| item.performance })
end
end
#New method
def clear_basic_equipments
remove_ok = [OPTIMIZE_EQUIP::OPTIMIZE_WEAPON,OPTIMIZE_EQUIP::SHIELD,OPTIMIZE_EQUIP::HELM,OPTIMIZE_EQUIP::ARMOR,OPTIMIZE_EQUIP::ACCESSORY]
equip_slots.size.times do |i|
change_equip(i, nil) if equip_change_ok?(i) && remove_ok[i]
end
end
end
Specific TP
Script per far cominciare i combattimenti con TP specifici per ogni personaggio.
Con inoltre effetto per l'equipaggiamento di conferire TP bonus a inizio battaglia
Spoiler
#==============================================================================
=begin
Script per far cominciare i personaggi con specifici TP ad ogni battaglia.
Nei commenti di ogni attore mettere la seguente linea:
<pa_iniziali: x>
Se non utilizzato il calcolo dei TP sarà quello di default.
Per aggiungere un effetto all equipaggiamento per aumentare il numero di TP
con cui cominciare una battaglia, inserire la seguente nota:
<pa_extra: x>
=end
#==============================================================================
class Game_Battler < Game_BattlerBase
#--------------------------------------------------------------------------
# * Initialize TP
#--------------------------------------------------------------------------
alias spec_init_tp init_tp
def init_tp
spec_init_tp
if self.is_a?(Game_Actor)
self.note.split(/[\r\n]+/).each { |line|
case line
when /<(?:PA_INIZIALI|pa_iniziali):[ ](\d+)>/i
self.tp = $1.to_i
end
}
self.equips.each do |item|
if item != nil
item.note.split(/[\r\n]+/).each { |line|
case line
when /<(?:PA_EXTRA|pa_extra):[ ](\d+)>/i
self.tp += $1.to_i
end
}
end
end
end
end
end
🖤 E:3 by Testament (notare dettaglio in basso a destra)! E:3 by Idriu E:3
Membro Onorario, Ambasciatore dei Coniglietti (Membro n.44)
Ufficiale "Ad opera della sua onestà e del suo completo appoggio alla causa dei Panda, Guardian Of Irael viene ufficialmente considerato un Membro portante del Partito, e Ambasciatore del suo Popolo presso di noi"
<- Grazie Testament E:3 Ricorda...se rivolgi il tuo sguardo ^ ^ a Guardian anche Guardian volge il suo sguardo ^ ^ a te ^ ^ by Flame ^ ^
Grazie Testament XD Fan n°1 ufficiale di PQ! :D
Viva
il Rhaxen! <- Folletto te lo avevo detto (fa pure rima) che non
avevo programmi di grafica per fare un banner su questo pc XD (ora ho di
nuovo il mio PC veramente :D)
Rosso Guardiano della
Rpg2s RPG BY FORUM:
Spoiler
Nome: Darth Reveal
PV totali 2 PA totali 16
Descrizione: ragazzo dai lunghi capelli rossi ed occhi dello stesso colore. Indossa una elegante giacca rossa sopra ad una maglietta nera. Porta pantaloni rossi larghi, una cintura nera e degli stivali dello stesso colore. E' solito trasportare lo spadone dietro la schiena in un fodero apposito. Ha un pendente al collo e tiene ben legato un pezzo di stoffa (che gli sta particolarmente a cuore) intorno al braccio sinistro sotto la giacca, copre una cicatrice.
Bozze vesti non definitive qui.
Equipaggiamento:
Indossa:
60$ e 59$ divisi in due tasche interne
Levaitan
Spada a due mani elsa lunga
Guanti del Defender (2PA)
Anello del linguaggio animale (diventato del Richiamo)
Scrinieri da lanciere (2 PA)
Elmo del Leone (5 PA)
Corazza del Leone in Ferro Corrazzato (7 PA)
ZAINO (20) contenente:
Portamonete in pelle di cinghiale contenente: 100$
Scatola Sanitaria Sigillata (può contenere e tenere al sicuro fino a 4 oggetti curativi) (contiene Benda di pronto soccorso x3, Pozione di cura)
Corda
Bottiglia di idromele
Forma di formaggio
Torcia (serve ad illuminare, dura tre settori)
Fiasca di ceramica con Giglio Amaro (Dona +1PN e Velocità all'utilizzatore)
Ampolla Bianca
Semi di Balissa
CAVALLO NORMALE + SELLA (30 +2 armi) contentente:
66$
Benda di pronto soccorso x3
Spada a due mani