-
Posts
175 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Posts posted by makgyver
-
-
Sleeping ho bisogno di un aiutino aiutone. Nel mio progetto ho inserito un BS laterale: il CCOA 3.04 che mi funziona. Poi ho l'aeon system e l'aeon development e ovviamente ho voluto inserire lo script x l'evocazione. Modificati i parametri come servivano mi da un problema: finita l'evocazione dell'eone si blocca il combattimento. Cioè rimane la scritta dell'evocazione in alto e non si può fare niente. Come posso risolvere il problema?? Grazie mille...
PS: lo script per l'evocazione ke ho usato è quello per XRXS_BP(anke se nel CCOA ke uso viene usato XRXS_CP)
-
+vonatar
-
Una domanda:
Con il bs in stile minikoff quale dei tanti script devo inserire?
Se dovessi fare in modo che la summon prende il posto solo di chi evoca, cosa dovrei modificare?
Help grazie!
Credo debba fare così:
Remove_Only_Summoner = {id_skill => true... Summoner_Rest = {id_skill => false... -
E' possibile inserire gli elementi a cui il mostro è debole, magari con delle icone con il nome dell'elemento?
Sarebbe molto utile...
In linea teorica è possibilissimo, io avevo provato a mettere gli elementi deboli in parola purtroppo non ci sono riuscito anke xke mi premeva finire prima un altra cosa. Appena posso riguardo lo script e provo a fare quello ke hai richiesto Amos
-
2 domande:
-1:come faccio ad usarlo?
-2:è compatibile con menù personalizzati?
-1 richiami il menu con $scene = Scene_Rune.new
-2 si è compatibile. forse la grafica avrà alcuni problemi ma credo facilmente risolvibili
-
Ciao a tutti...sono un semi novizio del making...e sto lavorando ad un mio progettuccio...spero di trovarmi bene...e di ricevere molti consigli...
P.S.Bellissimo Forum!!!
Benvenuto David!!!
-
Ti riferisci al fatto di avere alcuni personaggi bloccati?
Si si al fatto di doverli bloccare e sbloccare a piacimento durante il gioco. Per esempio all'avvenimento di un dato evento bloccare il PG 1 e 2 e sbloccare il 3. Per quello gli avevo consigliato di usare quella variabile xke era semplice da modificare e passandola come secondo parametro a Party_Switcher facilitava molto il tutto. Tutto qua. Non volevo assolutamente mettere in dubbio la funzionalità del tuo script anzi, lo sto usando nel mio progetto figuriamoci.
-
@sylaer
Si si il tuo script funziona ma infatti non era per modificare lo script era per riuscire a fare quello ke voleva kenshin basandomi sul tuo script infatti alla fine c'è scritto di richiamare Party_Switcher().
-
Il suo codice non ha mai dato problemi a me. Forse inavvertitamente hai tolto una parte di codice. Prova a ricopiarlo. Se ti da ancora problemi proverò a setacciare bene il codice di sylaer.
-
@kenshin:
il modo ke ti consiglierei io è crearti un array globale con gli indici dei pg ke vuoi ke siano irremovibili tipo così:
$BLOCK_PG = [1]
poi quando a un certo evento devi fare una scelta o devi aggiungere o togliere qualke personaggio dagli irremovibili fai così:
$BLOCK_PG.delete(idPG) #per toglierlo
$BLOCK_PG.push(idPG) #per aggiungerlo
poi alla funzione ke rikiama tutto passi come vettore di secondo argomanto $BLOCK_PG.
Spero di essere stato kiaro. Per problemi kiedi pure.
-
purtroppo non è in quelle righe l'errore forse aprendo lo script non ti mette sulla parte di codice giusta. L'errore è ke non passi nessun argomento a una funzione ke invece ne aspetta uno. Vedi se riesci a trovarlo o al massimo il codice ke hai è identico a quello ke c'è in questo topic???
-
Su quale riga di codice te la da?? se non te la scrive nell'errore apri lo script subito dopo e dove è posizionato il cursore è dove è l'errore. Magari scrivi la riga così ti dico.
-
E' da un po ke cerco di procurarmela ma non riesco. Beh per ora l'SDK non mi è urgentemente servito. Spero continui a essere così finkè non trovo la nuova versione. Cmq Grazie mille dell'aiuto!!
-
il tuo progetto non mi parte xke ho la versione 1.01 e quindi ovviamente non va, ho provato a fare un progetto nuovo e fare tutto di nuovo ma mi da lo stesso probelma. Credo sia quindi un problema di versione.
-
Grazie mille. Ho fatto tutto come mi hai detto il gioco parte(cambiando le scritte da italiano a inglese) ma mi si pianta subito, e mi da errore in Game.exe. Che cosa può essere??
-
Ho visto ke spesso parlate dello script SDK e della sua utilità. Essendo nuovo del forum mi chiedo cosa sia questo SDK (anke se leggendo qua e la forse ho intuito), ma soprattuttodove posso trovarlo. Grazie mille!!
-
Scusate il doppio post, ma volevo avvertirvi ke ho appena apportato delle modifiche al codice ke ora funziona perfettamente. L'unico problema resta la grafica ke, vi avviso in questo post senza dover aggiungerne un altro, credo sistemerò oggi stesso!! Grazie, ciao!!
-
Uao!Mi piace mescolare gli oggetti, molto utile nelle avventure classiche..Se un giorno ne farò una, userò di certo il tuo script!=)
Più ke mescolare gli oggetti "mescola" o meglio dire combina i loro effetti. Cmq grazie mille!!
-
Descrizione:
Avete presente il junction di FF8?! beh è una cosa così vi spiego:
Voi abbinate a un certo parametro un oggetto e questo fa aumentare o diminuire il suo valore in base al suo "potere" ke voi indicate. In più viene data la possibilità di creare delle combinazioni ovvero oltre all'effetto dei singoli oggetti vengono modificati i parametri anke da una combinazione di loro. Es avete in HP, MP, ATT una pozione e nelle combinazioni avete ke 3pozioni in "junction"(kiamiamolo così) fanno aumentare tutti i parametri di 1. E questo sempre lo decidete voi mettendo i valori, ke sono indicati nel codice, come volete.
Autore:IO (makgyver)
Screen:
http://i34.tinypic.com/qxrpms.jpg
Codice:#Script by makgyver #$ID_RUNE = { id_oggetto_db=>quantitࡩn possesso dal party} $ID_RUNE = { 1=>0, 2=>0, 3=>0 } ############## # Parametri # Alcune costanti utili ######################## module Parametri FONT_NAME = "Arial" FONT_SIZE = 24 FONT_COLOR_NORMAL = Color.new(255,255,255) FONT_COLOR_INVERT = Color.new(0,0,0) FONT_COLOR_CRITIC = Color.new(0,255,0) end ################### # Rune Development ################### module Rune_Development #Rune_effect = { id_oggetto => {parametro => percentuale potenziamento}} Rune_effect = { 1 => {"hp"=>100,"mp"=>10,"str"=>-24,"int"=>25,"agi"=>75,"dex"=>0,"atk"=>10,"pdef"=>20,"mdef"=>25,"eva"=>0}, 2 => {"hp"=>200,"mp"=>400,"str"=>15,"int"=>9,"agi"=>13,"dex"=>10,"atk"=>60,"pdef"=>20,"mdef"=>58,"eva"=>0}, 3 => {"hp"=>300,"mp"=>50,"str"=>450,"int"=>19,"agi"=>2,"dex"=>8,"atk"=>200,"pdef"=>35,"mdef"=>80,"eva"=>10} } Rune_effect.default = { "hp"=>0,"mp"=>0,"str"=>0,"int"=>0,"agi"=>0,"dex"=>0,"atk"=>0,"pdef"=>0,"mdef"=>0,"eva"=>0 } #Rune_Combination = { nome combinazione => {parametro => percentuale potenziamento}} Rune_Combination = { "3red" => {"hp"=>100,"mp"=>100,"str"=>-204,"int"=>250,"agi"=>705,"dex"=>0,"atk"=>100,"pdef"=>200,"mdef"=>250,"eva"=>0}, "3yellow" => {"hp"=>25,"mp"=>40,"str"=>15,"int"=>9,"agi"=>13,"dex"=>10,"atk"=>60,"pdef"=>20,"mdef"=>58,"eva"=>0}, "3green" => {"hp"=>15,"mp"=>50,"str"=>45,"int"=>19,"agi"=>2,"dex"=>8,"atk"=>20,"pdef"=>35,"mdef"=>80,"eva"=>10}, "3blue" => {"hp"=>-15,"mp"=>50,"str"=>-45,"int"=>19,"agi"=>2,"dex"=>8,"atk"=>-20,"pdef"=>35,"mdef"=>-80,"eva"=>10}, "allcolor" => {"hp"=>-15,"mp"=>50,"str"=>-45,"int"=>19,"agi"=>2,"dex"=>8,"atk"=>-20,"pdef"=>35,"mdef"=>-80,"eva"=>10} } Rune_Combination.default = { "hp"=>0,"mp"=>0,"str"=>0,"int"=>0,"agi"=>0,"dex"=>0,"atk"=>0,"pdef"=>0,"mdef"=>0,"eva"=>0 } #Rune_object = { id_oggetto => [parametro, colore]} # il parametro non serve a niente ma mettetelo cmq e il colore serve per le combinazioni Rune_object = { 1 => ["hp", "red"], 2 => ["hp", "yellow"], 3 => ["hp", "blue"] } end class Window_Selectable2 < Window_Base #-------------------------------------------------------------------------- # ? Apri una variabile istanza #-------------------------------------------------------------------------- attr_reader :index # Posizione del cursore attr_reader :help_window # Finestra di aiuto #-------------------------------------------------------------------------- # ? Inizializzazione dell'oggetto # x : Coordinate X della finestra # y : Coordinate Y della finestra # width : Larghezza della finestra # height : Altezza della finestra #-------------------------------------------------------------------------- def initialize(x, y, width, height) super(x, y, width, height) @item_max = 1 @column_max = 1 @index = -1 end #-------------------------------------------------------------------------- # ? Sistemazione della posizione del cursore # index : Nuova posizione del cursore #-------------------------------------------------------------------------- def index=(index) @index = index # Viene aggiornato il testo di aiuto # (update_help viene definito dal posto successivo) if self.active and @help_window != nil update_help end # Viene aggiornato il rettangolo del cursore update_cursor_rect end #-------------------------------------------------------------------------- # ? Acquisizione del numero di linee #-------------------------------------------------------------------------- def row_max # Il numero di linee viene elaborato dal numero di oggetti e il numero # delle sequenze return (@item_max + @column_max - 1) / @column_max end #-------------------------------------------------------------------------- # ? Acquisizione di una linea superiore #-------------------------------------------------------------------------- def top_row # Origine di trasmissione dei contenuti di una finestra: # Sulle coordinate Y, l'altezza di una linea viene divisa per 32 return self.oy / 20 end #-------------------------------------------------------------------------- # ? Sistemazione di una linea superiore # row : La linea viene mostrata in cima #-------------------------------------------------------------------------- def top_row=(row) # Quando row 衭inore di zero, allora correggi ed inserisci 0 if row < 0 row = 0 end # Quando row 衭aggiore di row_max - 1, poni row = row_max - 1 if row > row_max - 1 row = row_max - 1 end # row Altezza di una linea. 衬'origine di trasmissione dei contenuti # di una finestra. Si considera come coordinata Y self.oy = row * 20 end #-------------------------------------------------------------------------- # ? 1 Acquisizione del numero di linee che possono essere mostrate # su una pagina #-------------------------------------------------------------------------- def page_row_max # Altezza della finestra del frame. Si sottrare 32 all'altezza di # una linea e si divide per 32 return (self.height - 20) / 20 end #-------------------------------------------------------------------------- # ? 1 Acquisizione del numero di oggetti che possono essere mostrati # su una pagina #-------------------------------------------------------------------------- def page_item_max # Numero di linee, page_row_max il numero di sequenze per # le colonne @column_max return page_row_max * @column_max end #-------------------------------------------------------------------------- # ? Sistemazione della finestra di aiuto # help_window : Nuova finestra di aiuto #-------------------------------------------------------------------------- def help_window=(help_window) @help_window = help_window # Il testo di aiuto viene aggiornato # (update_help viene definito dal posto successivo) if self.active and @help_window != nil update_help end end #-------------------------------------------------------------------------- # ? Aggiornamento del rettangolo del cursore #-------------------------------------------------------------------------- def update_cursor_rect # Posizione del cursore. Quando 衭inore di 0... if @index < 0 self.cursor_rect.empty return end # La linea corrente viene acquisita row = @index / @column_max # Nel caso di prima, la linea corrente viene mostrata in cima if row < self.top_row # Scorre in modo tale che la linea corrente vada in cima self.top_row = row end # Nel caso precedente, la linea corrente viene mostrata fino alla # fine della coda if row > self.top_row + (self.page_row_max - 1) # Scorre in modo tale che la linea corrente vada in coda self.top_row = row - (self.page_row_max - 1) end # Viene calcolata l'ampiezza del cursore cursor_width = self.width / @column_max - 32 # Vengono calcolate le coordinate del cursore x = @index % @column_max * (cursor_width + 20) y = @index / @column_max * 20 - self.oy+5 # Viene aggiornato il rettangolo del cursore self.cursor_rect.set(x, y, cursor_width, 20) end #-------------------------------------------------------------------------- # ? Aggiornamento frame #-------------------------------------------------------------------------- def update super # Quando 衮ello stato in cui si muove il cursore... if self.active and @item_max > 0 and @index >= 0 # Quando il pulsante viene premuto nella direzione bassa... if Input.repeat?(Input::DOWN) # Numero di squenze: 1 nel caso in cui non viene ripetuta su una # direzione del pulsante # Nel caso precedente, la posizione del cursore viene data da: # (Numero di sequenze - Numero degli oggetti) if (@column_max == 1 and Input.trigger?(Input::DOWN)) or @index < @item_max - @column_max # Il cursore viene mosso in basso $game_system.se_play($data_system.cursor_se) @index = (@index + @column_max) % @item_max end end # Quando il pulsante viene premuto nella direzione alta... if Input.repeat?(Input::UP) # Numero di squenze: 1 nel caso in cui non viene ripetuta su una # direzione del pulsante # Nel caso precedente, la posizione del cursore viene data dal # numero di sequenze if (@column_max == 1 and Input.trigger?(Input::UP)) or @index >= @column_max # Il cursore viene mosso verso l'alto $game_system.se_play($data_system.cursor_se) @index = (@index - @column_max + @item_max) % @item_max end end # Quando il pulsante viene premuto nella direzione di destra... if Input.repeat?(Input::RIGHT) # Numero di sequenze >= 2 e @index < (numero di oggetti - 1) quando la # posizione del cursore... if @column_max >= 2 and @index < @item_max - 1 # ...viene mossa verso destra $game_system.se_play($data_system.cursor_se) @index += 1 end end # Quando il pulsante viene premuto nella direzione di sinistra... if Input.repeat?(Input::LEFT) # Numero di sequenze >= 2 e @index > 0 quando la posizione # del cursore... if @column_max >= 2 and @index > 0 # ...viene mossa verso sinistra $game_system.se_play($data_system.cursor_se) @index -= 1 end end # Quando il pulsante R viene premuto... if Input.repeat?(Input::R) # Prima dell'ultima linea sui dati, viene mostrata la linea fino # alla fine della coda if self.top_row + (self.page_row_max - 1) < (self.row_max - 1) # Il cursore si muove avanti di una pagina $game_system.se_play($data_system.cursor_se) @index = [@index + self.page_item_max, @item_max - 1].min self.top_row += self.page_row_max end end # Quando il pulsante L viene premuto... if Input.repeat?(Input::L) # La linea correntemente mostrata in cima, se > 0... if self.top_row > 0 # Il cursore si muove indietro di una pagina $game_system.se_play($data_system.cursor_se) @index = [@index - self.page_item_max, 0].max self.top_row -= self.page_row_max end end end # Viene aggiornato il testo di aiuto # (update_help viene definito dal posto successivo) if self.active and @help_window != nil update_help end # Aggiornamento del rettangolo del cursore update_cursor_rect end end ################# # Game_Actor Add ################# class Game_Actor < Game_Battler attr_accessor :rune_equipped attr_accessor :rune_plus attr_accessor :comb_rune_plus alias setup_old setup def setup(actor_id) @rune_equipped = {} @rune_equipped.default = nil @rune_plus = {} @rune_plus.default = 0 @comb_rune_plus = {} @comb_rune_plus.default = 0 setup_old(actor_id) end alias base_maxhp_old base_maxhp def base_maxhp return base_maxhp_old + @rune_plus["hp"] + @comb_rune_plus["hp"] end alias base_maxsp_old base_maxsp def base_maxsp return base_maxsp_old + @rune_plus["mp"] + @comb_rune_plus["mp"] end alias base_str_old base_str def base_str return base_str_old + @rune_plus["str"] + @comb_rune_plus["str"] end alias base_dex_old base_dex def base_dex return base_dex_old + @rune_plus["dex"] + @comb_rune_plus["dex"] end alias base_agi_old base_agi def base_agi return base_agi_old + @rune_plus["agi"] + @comb_rune_plus["agi"] end alias base_int_old base_int def base_int return base_int_old + @rune_plus["int"] + @comb_rune_plus["int"] end alias base_atk_old base_atk def base_atk return base_atk_old + @rune_plus["atk"] + @comb_rune_plus["atk"] end alias base_pdef_old base_pdef def base_pdef return base_pdef_old + @rune_plus["pdef"] + @comb_rune_plus["pdef"] end alias base_mdef_old base_mdef def base_mdef return base_mdef_old + @rune_plus["mdef"] + @comb_rune_plus["mdef"] end alias base_eva_old base_eva def base_eva return base_eva_old + @rune_plus["eva"] + @comb_rune_plus["eva"] end def rune_effect par = ["hp","mp","atk","pdef","mdef","str","dex","agi","int","eva"] for i in par obj_id = @rune_equipped[i] coeff = Rune_Development::Rune_effect[obj_id][i]/100 @rune_plus[i] = 0 case i when "hp" @rune_plus[i] = base_maxhp*coeff/100 when "mp" @rune_plus[i] = base_maxsp*coeff/100 when "str" @rune_plus[i] = base_str*coeff/100 when "int" @rune_plus[i] = base_int*coeff/100 when "agi" @rune_plus[i] = base_agi*coeff/100 when "dex" @rune_plus[i] = base_dex*coeff/100 when "atk" @rune_plus[i] = base_atk*coeff/100 when "pdef" @rune_plus[i] = base_pdef*coeff/100 when "mdef" @rune_plus[i] = base_mdef*coeff/100 when "eva" @rune_plus[i] = base_eva*coeff/100 end end rune_combination_effect end def rune_combination_effect par = ["hp","mp","atk","pdef","mdef","str","dex","agi","int","eva"] #colors [r,y,g,b] colors = {"red"=>0,"green"=>0,"yellow"=>0,"blue"=>0} for i in par index = "" index = Rune_Development::Rune_object[@rune_equipped[i]][1] if @rune_equipped[i] != nil if (index != "") colors[index] += 1 end end r_string = colors["red"].to_s+"red" y_string = colors["yellow"].to_s+"yellow" b_string = colors["blue"].to_s+"blue" g_string = colors["green"].to_s+"green" count_color = 0 for i in par @comb_rune_plus[i] = 0 end if (Rune_Development::Rune_Combination.has_key?(r_string)) x = Rune_Development::Rune_Combination[r_string] for i in par @comb_rune_plus[i] += x[i] end count_color += 1 end if (Rune_Development::Rune_Combination.has_key?(y_string)) x = Rune_Development::Rune_Combination[y_string] for i in par @comb_rune_plus[i] += x[i] end count_color += 1 end if (Rune_Development::Rune_Combination.has_key?(g_string)) x = Rune_Development::Rune_Combination[g_string] for i in par @comb_rune_plus[i] += x[i] end count_color += 1 end if (Rune_Development::Rune_Combination.has_key?(b_string)) x = Rune_Development::Rune_Combination[b_string] for i in par @comb_rune_plus[i] += x[i] end count_color += 1 end if (count_color == 4) x = Rune_Development::Rune_Combination["all_color"] for i in par @comb_rune_plus[i] += x[i] end end end end class Window_Rune_Item < Window_Selectable attr_accessor :data_id attr_accessor :data attr_accessor :item_max def initialize(actor) super(0, 334, 640, 146) #self.contents = Bitmap.new(width, height) self.index = 0 self.z = 10000 @actor = actor @column_max = 2 @data_id = [] refresh end def refresh if self.contents != nil self.contents.dispose self.contents = nil end @data = [] # Aggiunta di un oggetto for i in 1...$data_items.size if ($ID_RUNE.has_key?(i)) if $game_party.item_number(i) - $ID_RUNE[i] > 0 @data.push($data_items[i]) @data_id.push(i) end end end @item_max = @data.size if @item_max > 0 self.contents = Bitmap.new(width-32, row_max * 32) for i in 0...@item_max draw_item(i) end end end def draw_item(index) item = @data[index] number = $game_party.item_number(item.id) - $ID_RUNE[item.id] self.contents.font.color = normal_color self.contents.font.name = Parametri::FONT_NAME self.contents.font.size = Parametri::FONT_SIZE x = 4 + index % 2 * (288 + 32) y = index / 2 * 32 rect = Rect.new(x, y, self.width / @column_max - 20, 32) self.contents.fill_rect(rect, Color.new(0, 0, 0, 0)) bitmap = RPG::Cache.icon(item.icon_name) opacity = self.contents.font.color == Parametri::FONT_COLOR_INVERT ? 255 : 128 self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity) self.contents.draw_text(x + 28, y, 212, 32, " "+item.name, 0) self.contents.font.size = Parametri::FONT_SIZE + 4 self.contents.draw_text(x + 240, y, 16, 32, ":", 1) self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2) end end class Window_Rune_Link < Window_Selectable2 def initialize(actor) super(0, 64, 320, 270) self.index = 0 self.contents = Bitmap.new(width-32, height-32) @actor = actor @links = ["RHp","RMp","RAtk","RPdef","RMdef", "RStr","RDex","RAgi","RInt","REva"] @item_max = @links.size @column_max = 1 refresh end def refresh self.contents.clear par = ["hp","mp","atk","pdef","mdef","str","dex","agi","int","eva"] for i in 0...@links.size x = 30 y = i*20 self.contents.font.name = Parametri::FONT_NAME self.contents.font.size = Parametri::FONT_SIZE-2 draw_link(x, y, @links[i]) z = @actor.rune_equipped[par[i]] draw_obj_link(x + 60, y, z) end end def draw_link(x, y, str_par) self.contents.font.color = system_color self.contents.draw_text(x , y, 50, 32, str_par) end def draw_obj_link(x, y, obj_id) if (obj_id != nil) bitmap = RPG::Cache.icon($data_items[obj_id].icon_name) self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), 255) end self.contents.font.color = normal_color self.contents.draw_text(x+28, y, 130, 32, (obj_id != nil)? $data_items[obj_id].name : "------") end end class Window_Rune_Status < Window_Base def initialize(actor) super(320, 64, 320, 270) self.contents = Bitmap.new(width-32, height-32) @actor = actor refresh end def refresh(obj_id = -1, link = "") self.contents.clear draw_actor_name(@actor, 30, 0) draw_actor_hp(@actor, 30, 20, 172) draw_actor_sp(@actor, 30, 40, 172) draw_actor_parameter(@actor, 30, 60, 0) draw_actor_parameter(@actor, 30, 80, 1) draw_actor_parameter(@actor, 30, 100, 2) draw_actor_parameter(@actor, 30, 120, 3) draw_actor_parameter(@actor, 30, 140, 4) draw_actor_parameter(@actor, 30, 160, 5) draw_actor_parameter(@actor, 30, 180, 6) self.contents.font.color = system_color self.contents.draw_text(30, 200, 120, 32, "Evasione") self.contents.font.color = normal_color self.contents.draw_text(150, 200, 36, 32, @actor.eva.to_s, 2) if (obj_id != -1) params = copy_parameter ex_obj = @actor.rune_equipped[link] @actor.rune_equipped[link] = obj_id @actor.rune_effect draw_variation(params) @actor.rune_equipped[link] = ex_obj @actor.rune_effect end end def copy_parameter result = Array.new(10) result [0] = @actor.maxhp result [1] = @actor.maxsp result [2] = @actor.atk result [3] = @actor.pdef result [4] = @actor.mdef result [5] = @actor.str result [6] = @actor.dex result [7] = @actor.agi result [8] = @actor.int result [9] = @actor.eva return result end def set_color(pnow, pnext) if (pnow == pnext) return normal_color end if (pnow > pnext) return Color.new(255,0,0) else return Color.new(14,220,55) end end def draw_variation(ex_parameter) now_parameter = copy_parameter for i in 0..9 x = 210 y = 20 + i*20 self.contents.font.color = set_color(ex_parameter[i], now_parameter[i]) self.contents.draw_text(x, y, 100, 32,now_parameter[i].to_s) end end end class Scene_Rune def initialize(actor_index) @actor = $game_party.actors[actor_index] @actor_index = actor_index end def main @help = Window_Help.new @window_link = Window_Rune_Link.new(@actor) @window_link.active = true @window_status = Window_Rune_Status.new(@actor) @window_item = Window_Rune_Item.new(@actor) @window_item.active = false @window_item.visible = false Graphics.transition loop do Graphics.update Input.update update if $scene != self break end end @help.dispose @window_item.dispose @window_link.dispose @window_status.dispose end def update @window_item.update @window_link.update @window_status.update help_update if (@window_link.active) link_update elsif (@window_item.active) item_update end end def link_update par = ["hp","mp","atk","pdef","mdef","str","dex","agi","int","eva"] if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) $scene = Scene_Menu.new(1) end if Input.trigger?(Input::C) if(@window_item.item_max == 0) $game_system.se_play($data_system.buzzer_se) return end $game_system.se_play($data_system.decision_se) @window_link.active = false @window_item.active = true @window_item.visible = true @window_item.index = 0 n = @window_item.data[@window_item.index].id @window_status.refresh(n, par[@window_link.index]) end if Input.trigger?(Input::Z) $game_system.se_play($data_system.buzzer_se) if (@actor.rune_equipped[par[@window_link.index]] != nil) $ID_RUNE[@actor.rune_equipped[par[@window_link.index]]] -= 1 @actor.rune_equipped[par[@window_link.index]] = nil @actor.rune_effect @window_link.refresh @window_status.refresh @window_item.refresh end end if Input.trigger?(Input::L) $game_system.se_play($data_system.cancel_se) @actor_index += $game_party.actors.size - 1 @actor_index %= $game_party.actors.size $scene = Scene_Rune.new(@actor_index) end if Input.trigger?(Input::R) $game_system.se_play($data_system.cancel_se) @actor_index += 1 @actor_index %= $game_party.actors.size $scene = Scene_Rune.new(@actor_index) end end def item_update par = ["hp","mp","atk","pdef","mdef","str","dex","agi","int","eva"] n = @window_item.data[@window_item.index].id if Input.trigger?(Input::RIGHT) n = @window_item.data[@window_item.index].id @window_status.refresh(n, par[@window_link.index]) end if Input.trigger?(Input::LEFT) n = @window_item.data[@window_item.index].id @window_status.refresh(n, par[@window_link.index]) end if Input.trigger?(Input::DOWN) n = @window_item.data[@window_item.index].id @window_status.refresh(n, par[@window_link.index]) end if Input.trigger?(Input::UP) n = @window_item.data[@window_item.index].id @window_status.refresh(n, par[@window_link.index]) end if Input.trigger?(Input::B) @window_status.refresh $game_system.se_play($data_system.cancel_se) @window_link.active = true @window_item.active = false @window_item.visible = false end if Input.trigger?(Input::C) $game_system.se_play($data_system.decision_se) if @actor.rune_equipped[par[@window_link.index]] != nil $ID_RUNE[@actor.rune_equipped[par[@window_link.index]]] -= 1 end $ID_RUNE[n] += 1 @actor.rune_equipped[par[@window_link.index]] = n @window_item.refresh @actor.rune_effect @window_status.refresh @window_link.refresh if (@window_item.item_max == 0) @window_status.refresh @window_link.active = true @window_item.active = false @window_item.visible = false return end @window_item.index = 0 n = @window_item.data[@window_item.index].id @window_status.refresh(n, par[@window_link.index]) end end def help_update n = @window_item.data_id[@window_item.index] @help.set_text((@window_item.active)? $data_items[n].description : "Sviluppa il tuo PG con le Rune.") end endIstruzioni:
Create una classe sopra il main e incollate questo codice. Per togliere un oggetto dal "juction" basta posizionarsi sopra e premere D.
BUG o Conflitti:EDIT : Risolti tutti i problemi!!
-
Strano. Dovresti fare così. Senza cancellare dove ormai l'hai inserita vai e commenti (aggiungendo davanti allariga #) tutte le windowskin ke hai inserito tu poi parti e una alla volta (togliendo il commento) vedi quale inserimento crea il problema e quando lo trovi ovviamente lo togli.
-
beh per ora ank'io ho solo l'idea poi col tempole farò. beh non importa la riga precisa l'importante è ke la inserisci all'interno della funzione def initialize.
-
ok,grazie (quindi la windowskin la devo mettere in tutte le windows tranne quelle con il (*),giusto?
p.s.le entità vorrei metterle (così ne approfitto anche per il menù) solo che nn so cm si fa...
Entità e il nome ke ho dato io per il mio progetto quindi ti direi di cambiare nome. Sarebbero evocazioni di "PG" ke si aggiungono o sostituiscono al party.
Allora la windowskin la aggiungi per il momento solo in window_message poi in window_command e poi in tutte le window_shop... così riesci a vedere tutto in teoria. Poi se ti accorgi ke ti serve in alcune altre classe la aggiungi ma per ora limiti a quelle li!!
-
sisi,visto;ora la windowskin c'è;ma si sovrappone ancora al menù.
p.s.in questa nuova versione,è a posto ache la cosa del cambio party?
Eh devi stare attento a dove la metti. Xke alcune classi devono stare senza windowskin altrimenti si sovrappone al menu. Si la storia del party è a posto xò per farla funzionare come vuoi secondo i tuoi pg devi modificare le variabili $ID_PG_NA e $ID_AEON dove la prima indica la lista di pg ke per ora non devono comparire nel party mentre l'atra indica la lista di id di quei pg ke invece sono eoni(o entità o GF o come li vuoi kiamare) se el tuo progetto non sono contemplati basta ke svuoti l'array ovvero metti $ID_AEON = [].
-
Ke errore ti da?? e quando?
EDIT: Okkio ke il nome della windowskin da me è sfondo da te deve essere 001-blue01!! quindi devi andare sulla riga di codice di window_message e modificarla oppure mette nella cartella windowskin del progetto la windowskin sfondo.

-Orologio analogico
in Scripts RGSS (XP)
Posted
Descrizione:
Un modo carino per personalizzare un pò i nostri menù, o più in generale i nostri giochi è quello di cambiare la solita visuale dell'ora di gioco, ke è sempre composta da quei numerini con un bell'orologio analogico. O magari combinare i 2. Cmq sia un orologio analogico ci può far comodo. A questo scopo ho creato un piccolo script, correlato anke di parte grafica.
Autore:
IO (makgyver). Sia parte grafica che script.
Allegati:
http://rapidshare.com/files/141786409/clock.rar.html
Screen:
http://oi37.tinypic.com/2eq5qwz.jpg
Codice:
class Analog_Clock < Window_Base def initialize(x = 0, y = 0, kind = 0, wskin = true) super(0, 0, 100, 100) @exwskin = self.windowskin @kind = kind self.windowskin = (wskin)? RPG::Cache.windowskin("Sfondo") : nil self.z = 100 self.x = x self.y = y init_clock update end def init_clock @clock = Sprite.new @clock.bitmap = RPG::Cache.picture("clock/clock"+@kind.to_s) @clock.x = 10 + self.x @clock.y = 10 + self.y @minutes = Sprite.new @minutes.bitmap = RPG::Cache.picture("clock/minutes"+@kind.to_s) @minutes.x = 53 + self.x @minutes.y = 53 + self.y @hours = Sprite.new @hours.bitmap = RPG::Cache.picture("clock/hours"+@kind.to_s) @hours.x = 53 + self.x @hours.y = 53 + self.y end def update @total_sec = Graphics.frame_count / Graphics.frame_rate hour = ((@total_sec/60)%12)*30 + (@total_sec % 60) /2 min = (@total_sec % 60) * 6 @hours.angle = -hour + 180 @minutes.angle = -min + 180 if (min <= 180) @mexx = @minutes.x = 53 - min/30 + self.x @mexy = @minutes.y = 53 - min/60 + self.y else @minutes.x = @mexx + (min-180)/30 @minutes.y = @mexy - (min-180)/60 end if (hour <= 180) @hexx = @hours.x = 53 - hour/30 + self.x @hexy = @hours.y = 53 - hour/60 + self.y else @hours.x = @hexx + (hour-180)/30 @hours.y = @hexy - (hour-180)/60 end end alias dispose_old dispose def dispose @clock.dispose @hours.dispose @minutes.dispose end endIstruzioni:
Semplicissimo: mettete la cartella "clock" ke trovate nel rar in ..Graphics/Picture/.
Per richiamare l'orologio basta fare:
Poi andate nell'update della scene in cui avete inserito l'orologio e scrivete appena sotto a
def update questa riga:
Bug o Conflitti:
Nessuno xke è uno script completamente autonomo.
Al massimo se all'orologio si sovrappone qualke window basta cambiare la sua coordinata z.