Jump to content
Rpg²S Forum

Spiderman 2099

Utenti
  • Posts

    73
  • Joined

  • Last visited

Everything posted by Spiderman 2099

  1. Scusate, faccio una domanda abbastanza scema xD : Siccome starei usando un menu che non occupa l'intero schermo ma compare di lato e lascia visibile la mappa, ci sarebbe un modo, tramite script, per rendere la mappa in bianco e nero quando si chiama il menu e farla tornare normale quando si esce? Saprei farlo via eventi ma pensavo che tramite script forse si potrebbe "salvare" la tonalità dello schermo prima di chiamare il menu e ripristinarlo quando si esce dal menu, perchè tipo se la mappa è già scura di suo, facendolo via eventi dopo mi si sballa la tonalità propria della mappa.... Ok, mi sono spiegato una schifezza, spero abbiate capito xD
  2. avendo fatto da beta-tester non posso non commentare, anche se in realtà il mio parere già lo sai. Si vede lontano un miglio che hai perso la vita sociale per fare tutto alla perfezione. A me non ha mai laggato quindi ho potuto provarlo tranquillamente e mi è parso ottimo in tutto; la parte dello story giocabile si potrebbe migliorare dal punto di vista del mapping, ma è una demo e ti sei concentrato sugli aspetti della programmazione quindi ci sta. Continua perchè il progetto può solo migliorare andando avanti, e si può perfezionare il tutto.
  3. Grazie dell'informazione, infatti ora vanno xD
  4. scusate ma se provo a scaricare i pack il sito giappo mi manda ad una pagina di yahoo giappo che penso voglia dirmi che i file non sono più disponibili. Siccome lo stile era molto carino, non è che qualche anima pia che aveva già scaricato i pack li possa riuppare da qualche parte? *_*
  5. Quelli per il takentai sono molto belli, e soprattutto sono diversi dal solito xD Li hai fatti tu?
  6. Molto meglio così. Solo una cosa, marò quanto so pignolo, ma siccome SiD cammina a 4 zampe non dovresti fargli anche una posa da fermo a mò di gorilla?
  7. Si Sid, sono proprio io XD Comunque per quanto riguarda il chars, bello, però anche io l'avevo immaginato più scuro, oltre che i capelli secondo me sono meglio su un viola molto scuro, ma qui si parla di gusti personali. Oltre che nella pic non si nota che il personaggio ha mezza testa rasata XD
  8. Più che One Piece mi ricorda Il Pianeta del Tesoro! Per il resto, bello tutto, son sicuro che svilupperai qualcosa di originale e affascinante.
  9. Seguendo i consigli ho dato una modifica alla mappa che ora si presenta così: http://i209.photobucket.com/albums/bb92/SalvyTheCrow/screen-1.png Siccome ci sono diversi eventi "ornamentali", ho fatto anche un po' di screen, ma siccome sono tanti(10 xD) ne posto solo alcuni: http://i209.photobucket.com/albums/bb92/SalvyTheCrow/screen8.png http://i209.photobucket.com/albums/bb92/SalvyTheCrow/screen-2.png http://i209.photobucket.com/albums/bb92/SalvyTheCrow/screen3.png http://i209.photobucket.com/albums/bb92/SalvyTheCrow/screen5.png http://i209.photobucket.com/albums/bb92/SalvyTheCrow/screen4.png Criticate pure, così vedo dove posso migliorare :smile: P.S. La statua non è di Budda :E, si tratta del primo barone della città *.*
  10. Le porte le faccio animate, quindi ad eventi, per questo non si vedono xD Comunque, continuando ad usare le aiuole ho sistemato un po' le strade e per ora questa prima parte della città si presenta così: http://img134.imageshack.us/img134/7348/screen2hl3.th.png Ovviamente mancano ancora i particolari e di fatti è tutto un po' vuoto. Dove si incontrano le strade a sinistra dovrei piazzarci una statua; vicino ai negozi(edificio in alto a destra) non saprei che mettere, ma mi pare il punto più vuoto della mappa; nel piccolo parco in alto devo metterci qualche venditore ambulante con tutte le sue casse di merce ed altro; devo popolarla un po' xD; nei due giardini vicino la casa centrale ci sono a sx una fontana e a dx vorrei metterci qualcosa tipo una tovaglia da picnic, ma mi pare assurdo fare picnic fuori casa e quindi non so cosa mettere xD
  11. Salve, più che uno screen vorrei un consiglio sulla mappa che sto ultimando(oddio, sto ancora al fondo stradale xD) http://img72.imageshack.us/img72/7215/screen1yt0.th.png In pratica, vorrei lasciare ampi spazi verdi perchè la città (che si estenderà su circa 4 mappe 70x50) dovrebbe essere una bella cittadina a terrazze giocosa e festosa. Ora però, siccome è comunque una città importante, sede del palazzo del duca di quella zona e così via, non vorrei fare le strade così poco "regolari" come invece sto facendo per i villaggi(la parte più alta dello screen per intenderci) e quindi avevo pensato di delimitarle con quelle "aiuole" e farle più regolari, secondo voi l'effetto è buono o sembra troppo un'accozzaglia di cose? altrimenti, che suggerimento potreste darmi per rendere bene le strade?
  12. scusa ma non basterebbe fare una copia dei battlers e capovolgerli con un qualsiasi programma di grafica?(oddio lo fa anche il visualizzatore di immagini di windows)
  13. vabè, sto lavorando alle altre mappe se no resto su questa per l'eternità xD spero che vengano meglio.
  14. vabè ma cmq è la prima mappa che si vede per 2 secondi per l'intro del gioco xD e inoltre rappresenta un salotto vuoto di una villa sciccosa xD solitamente le grandi ville immense hanno stanze vuote xD
  15. grazie per i consigli, sto aggiustando la mappa... avevo completamente dimenticato i muri alle pareti laterali xD
  16. Grazie Soul! ^^ Intanto gradirei mostrarvi il primo screen del gioco, una scena tratta dall'introduzione, anche per questo è in bianco e nero, non fate caso ai charset perchè andranno sostituiti con le versioni feline appena queste saranno ultimate... Ecco a voi lo screen! xD http://i209.photobucket.com/albums/bb92/SalvyTheCrow/intro1.png
  17. infatti sto per inviargli una mail ^^ Cmq sui chip sono sicuro per ora, ho un bel pò di roba e penso vada tutta bene. Devo solo iniziare a programmare, e ovviamente trovare un'anima pia che mi aiuti con i chars xD Grazie per i complimenti, se riesco a fare qualcosa di concreto in breve tempo potrei provare a partecipare al contest.... mai dire mai! xD
  18. DOH! xD scusate ho sbagliato, ho postato di la lo stesso post e ho dimenticato di modificare il link xD ecco il link giusto: http://www.rpg2s.net/forum/index.php?showtopic=2449
  19. Proprio per mostrarvi quanto ci tengo al progetto "Hit The Road Jack" apro subito anche un topic di "arruolamento" xD quello di cui ho bisogno è un grafico che mi aiuti principalmente con i charsets, si tratta di chars quasi totalmente dotati della sola camminata, niente pose particolari, al massimo per i personaggi principali ce ne saranno una o 2 oltre la camminata. Per il resto ho già un bel pò di materiale, ma sapete com'è, gatti umanoidi non se ne trovano in giro xD Questo è il link al topic del progetto, spero che qualcuno sia interessato wink.gif Modifica: L'Inquisizione non è d'accordo...
  20. Allora, questo è il primo progetto che presento su questa community, anticipo che per ora dei miei progetti neanche uno è stato completato per la mia "incapacità" in campo grafico xD A questo però ci tengo e conto di portarlo a termine. Si tratta di un gioco che nella struttura ricalcherà uno dei game amatoriali che più mi è piaciuto: I casi di Jemery Tarly. Sarà quindi un gioco senza combattimenti o cose del genere, dove l'esplorazione e l'ingegno saranno la cosa principale, insomma... una sorta di avventura grafica senza mouse XD. Ma veniamo alla particolarità del gioco: i personaggi non saranno esseri umani ma gatti! avete capito bene! xD gatti umanoidi per essere precisi xD l'idea mi è venuta guardando gli stupendi schizzi creati per realizzare Lackadaisy Cats e presenti su deviantart. è un progetto a cui tengo particolarmente perchè è diverso dai soliti RPG e perchè solo l'idea di chiamare una spogliarellista Fuffy o un personaggio Fabricio Micio mi esalta x°D Ma ora parliamo di cose serie, ecco a voi la trama del gioco fatta a mo di piccola anteprima: Trama Jack Cat è un investigatore privato di (nome da decidere)… o meglio, ex investigatore privato. Dopo essersi dedicato alla risoluzione di diversi casi negli anni addietro, Jack si ritrova ora senza lavoro poiché, dopo la nomina a sindaco di Luigi McFeet, in città ogni caso viene subito risolto dalla polizia o archiviato e i poveri investigatori, se scoperti ad indagare, vengono arrestati e i clienti multati. Ovviamente in queste condizioni è impossibile operare e per questo il sempre giovane felino avrebbe intenzione di ritirarsi dal campo dell’investigazione per iniziare a lavorare con il fratello in bottega. I piani originari di Jack vengono però stravolti dall’arrivo di una giovane e affascinante micia nell’ufficio dell’investigatore. Arlene Shinycoat, questo il suo nome, si reca dal nostro Jack per proporgli un incarico, far luce sulla morte di sua cugina, Esther Padeu, avvenuta 2 settimane prima e subito archiviata come incidente. Messa in guardia dei pericoli che si corrono nell’assumere un detective privato, Arlene insiste affinché Jack accetti il caso. Il felino, ammaliato dalla bellezza della giovane cliente non può non accettare un incarico che lo porterà a visitare Alberghi, Chiese, Casinò, Bische clandestine, Night Clubs e tanti altri luoghi in un’atmosfera che mette subito in chiaro cosa sono gli anni ’50, tra gangster e giocatori d’azzardo e sotto le note irrefrenabili della musica Jazz. P.S. = il (nome da decidere) sta per il nome della città che ancora non l'ho deciso xD sono indeciso tra San Micio o Catsinhton xD Ora vi spiego invece cose prettamente tecniche: - Il gioco sarà ricco di enigmi. - Conto di fargli vantare un menu alla Syberia, premendo esc dovrebbe uscire una sorta di pop up laterale con gli oggetti, beh, io vorrei prima far comparire un pop up con il ritratto del protagonista e la possibilità di scegliere tra Oggetti, Salva, Carica, Opzioni ed Esci. - Sarà possibile interagire con quasi tutti gli oggetti presenti nell'ambiente di gioco. - Probabilmente i messaggi saranno in ballons da fumetto. Ora la mia solita pecca... la Grafica! xD Sono deciso nel contribuire anche in questo campo ed infatti sto modificando un char di prova che vi mostrerò qualche riga più in basso XD. Inizialmente volevo dare uno stile particolarmente cartoonesco al gioco usando come stile dei chars quello di Sam, il cane poliziotto di Sam & Max: http://i209.photobucket.com/albums/bb92/SalvyTheCrow/sam_face_south.gif Però, dato che non sono un grafico per niente xD ho ritenuto troppo difficile la cosa e quindi ho deciso di modificare i chars RTP, questa che ora vedrete è una prima prova del lavoro, avevo terminato la camminata ma barcollava in maniera esponenziale e quindi ho deciso di rifarla da capo... non ora xD: http://i209.photobucket.com/albums/bb92/SalvyTheCrow/gatto1.png P.S. Non fate caso al rettangolo, mi serviva per importare i colori. la cosa finita definitivamente è, come al solito, il title che è il seguente: http://i209.photobucket.com/albums/bb92/SalvyTheCrow/hittheroadjack2copy.jpg in basso a destra potete ammirare il ritratto del protagonista che ho preso appunto da uno degli schizzi del fumetto online citato all'inizio del topic... Dato che il mio gioco è amatoriale non ci dovrebbero essere problemi sui copryright... correggetemi se sbaglio che modifico subito xD Ora, come al solito chiedo un aiuto grafico, però si tratta di poca roba, giusto i chars del protagonista e dei personaggi principali, sono quasi sicuramente senza pose, al massimo una o due, ma almeno quelli vorrei farli apparire belli xD Per il resto sto lavorando, graficamente parlando, da solo... lentamente e non al meglio xD Che dire... penso di aver finito, commentate eventualmente la trama e datemi un consiglio anche sulla grafica, al più presto posterò degli screens aggiornando questo post.
  21. grande Leonhart! xD hai permesso ai miei dubbi di dissolversi xD, cmq la cosa che so è che per far parlare l'evento con cui si interagisce basta lo 0 xD per gli altri si mette l'id! olè, finalmente potròl uscare completamente lo script xD
  22. dato ke lo script qui nn è completo e io sono in possesso della versione corretta ho pensato di far felice qualcuno postandolo, ma mi è sembrato inutile aprire un nuovo topic dato che questo non è mai stato "aggiornato" allora, lo script da mettere in una nuova classe sopra main è il seguente: #============================================================================== # ++ メッセージふきだし表示 ver. 1.16 ++ #  Script by パラ犬 #------------------------------------------------------------------------------ # ふきだし表示をするには、 # テール用画像「(スキン名)-top」「(スキン名)-under」を # 「Graphics/Windowskins」フォルダにインポートしておく必要があります。 #------------------------------------------------------------------------------ # # [ふきだし表示の使い方] # イベントコマンド「スクリプト」で「$mes_id」にイベントIDを代入することで # そのイベントにふきだしがポップするようになります。 # (記述例: $mes_id=4 ) # IDに-1を代入するとプレイヤー、0でそのイベント自身。 # nilまたは""を代入すると、通常のメッセージ表示に戻ります。 # 表示位置はイベント「文章オプション」で変更できます。 # 表示位置に「中央」を指定すると、イベントの位置に関係なく # 画面中央に表示されます。 # # [名前ウインドウの使い方] # イベントコマンド「スクリプト」で「$mes_name」に文字列を代入することで # 名前ウインドウを表示します。 # (記述例: $mes_name="アルシェス" ) # ""またはnilを代入すると、非表示になります。 # # 二つの機能は独立していますので、それぞれ単体で使えます。 #  $mes_id=(ID) + $mes_name="名前" :ふきだし表示 + 名前ウインドウ #  $mes_id=(ID) + $mes_name="" :ふきだし表示 (名前なし) #  $mes_id=nil + $mes_name="名前" :デフォルトウインドウ + 名前ウインドウ #  $mes_id=nil + $mes_name="" :デフォルトウインドウ (名前なし) # # [メッセージ表示スピードの変更法] # イベントコマンド「スクリプト」で「$mes_speed」に数値を代入します。 # (記述例: $mes_speed=1 ) #============================================================================== module FUKI # スキンの設定 # ウインドウスキンと同じものを使うときは「""」 FUKI_SKIN_NAME = "001-Blue01" # ふきだし用スキン NAME_SKIN_NAME = "001-Blue01" # 名前表示用スキン # フォントサイズ MES_FONT_SIZE = 20 # メッセージウインドウとふきだし NAME_FONT_SIZE = 20 # 名前ウインドウ # ウインドウの透明度 FUKI_OPACITY = 255 # ふきだしウインドウ MES_OPACITY = 255 # 通常のメッセージウインドウ NAME_OPACITY = 255 # 名前ウインドウ # 名前ウインドウの相対位置 NAME_SHIFT_X = 0 # 横位置 NAME_SHIFT_Y = 16 # 縦位置 # 画面の一番端ではふきだしを少しずらす # 角の丸いスキンを使っていて、枠の角がふきだしと重なる場合に true にする CORNER_SHIFT = false SHIFT_PIXEL = 4 # trueの時にずらすピクセル数 # キャラクターの縦のサイズ CHARACTOR_HEIGHT = 48 # ふきだしの相対位置(縦位置) POP_SHIFT_TOP = 0 # 表示位置が上のとき POP_SHIFT_UNDER = -16 # 表示位置が下のとき # メッセージ表示速度(数字が小さいほど速い。0で瞬間表示) # $mes_speedに数値を代入することで、ゲーム中に変更可。 MES_SPEED = 1 end #============================================================================== # □ Window_FukiMessage #============================================================================== class Window_FukiMessage < Window_Selectable #-------------------------------------------------------------------------- # ○ オブジェクト初期化 #-------------------------------------------------------------------------- def initialize super(80, 304, 480, 160) self.contents = Bitmap.new(width - 32, height - 32) self.visible = false self.z = 9998 @fade_in = false @fade_out = false @contents_showing = false @cursor_width = 0 self.active = false self.index = -1 self.contents.font.name = "Arial" @w = 0 @h = 0 @wait = 0 @dx = 0 @dy = 0 $mes_speed = FUKI::MES_SPEED end #-------------------------------------------------------------------------- # ○ サイズを決定してウインドウを作成 #-------------------------------------------------------------------------- def refresh_create self.contents.clear self.contents.font.color = normal_color self.contents.font.size = FUKI::MES_FONT_SIZE self.contents.font.name = "Arial" # ウインドウサイズを取得 get_windowsize w = @w + 32 + 8 h = @h * (self.contents.font.size + 10) + 26 # ふきだしウインドウを作成 set_fukidasi(self.x, self.y, w, h) # 名前ウインドウを作成 set_namewindow # メッセージ表示用変数の初期化 @dx = @dy = 0 @cursor_width = 0 @contents_drawing = true # 瞬間表示の場合、ここで表示処理 if $mes_speed == 0 # 描画処理をループ while $game_temp.message_text != "" draw_massage end draw_opt_text @contents_showing_end = true @contents_drawing = false else # 一文字ずつ描画 refresh_drawtext end end #-------------------------------------------------------------------------- # ○ 一文字ずつ描画 #-------------------------------------------------------------------------- def refresh_drawtext if $game_temp.message_text != nil if @wait > 0 @wait -= 1 elsif @wait == 0 # 描画処理 draw_massage @wait = $mes_speed end end # 描画終了 if $game_temp.message_text == "" draw_opt_text @contents_showing_end = true @contents_drawing = false end end #----------------------------------- if @face != nil @face_win.visible = true if @face_win.visible == false @face_win.contents.clear pic_x = @face_win.contents.width - @pic_width pic_y = @face_win.contents.height / 2 - @pic_height / 2 dest = Rect.new(pic_x, pic_y, @pic_width, @pic_height) src = Rect.new(0, 0, @face.width, @face.height) @face_win.contents.stretch_blt(dest, @face, src) end #----------------------------------------------------------------------- #-------------------------------------------------------------------------- # ○ ウインドウサイズを取得 #-------------------------------------------------------------------------- def get_windowsize x = y = 0 @h = @w = 0 @cursor_width = 0 # 選択肢なら字下げを行う if $game_temp.choice_start == 0 x = 8 end # 表示待ちのメッセージがある場合 if $game_temp.message_text != nil text = $game_temp.message_text.clone # 制御文字処理 begin last_text = text.clone text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] } end until text == last_text text.gsub!(/\\[Nn]\[([0-9]+)\]/) do $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : "" end # 便宜上、"\\\\" を "0" に変換 text.gsub!(/\\\\/) { "0" } # "\\C" を "1" に、"\\G" を "2" に変換 text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "1[#{$1}]" } text.gsub!(/\\[Gg]/) { "2" } # c に 1 文字を取得 (文字が取得できなくなるまでループ) while ((c = text.slice!(/./m)) != nil) # \\ の場合 if c == "0" # 本来の文字に戻す c = "\\" end # \C[n] または \G の場合 if c == "1" or c == "2" # 次の文字へ next end # 改行文字の場合 if c == "\n" # y に 1 を加算 y += 1 # 縦横サイズを取得 @h = y @w = x > @w ? x : @w if y >= $game_temp.choice_start @w = x + 8 > @w ? x + 8 : @w end x = 0 # 選択肢なら字下げを行う if y >= $game_temp.choice_start x = 8 end # 次の文字へ next end # x に描画した文字の幅を加算 x += self.contents.text_size(c).width end end # 数値入力の場合 if $game_temp.num_input_variable_id > 0 digits_max = $game_temp.num_input_digits_max number = $game_variables[$game_temp.num_input_variable_id] @h += 1 x = digits_max * self.contents.font.size + 16 self.contents.font.name = "Arial" @w = x > @w ? x : @w end end #-------------------------------------------------------------------------- # ○ 描画処理 #-------------------------------------------------------------------------- def draw_massage # 表示待ちのメッセージがある場合 if $game_temp.message_text != nil text = $game_temp.message_text # 制御文字処理 begin last_text = text.clone text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] } end until text == last_text text.gsub!(/\\[Nn]\[([0-9]+)\]/) do $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : "" end # 便宜上、"\\\\" を "0" に変換 text.gsub!(/\\\\/) { "0" } # "\\C" を "1" に、"\\G" を "2" に変換 text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "1[#{$1}]" } text.gsub!(/\\[Gg]/) { "2" } # c に 1 文字を取得 if ((c = text.slice!(/./m)) != nil) # 選択肢の場合 if @dy >= $game_temp.choice_start # 字下げを行う @dx = 8 # 文字を描画 self.contents.draw_text(4 + @dx, 32 * @dy, 40, 32, c) self.contents.font.name = "Arial" # x に描画した文字の幅を加算 @dx += self.contents.text_size(c).width self.contents.font.name = "Arial" # ループ while ((c = text.slice!(/./m)) != "\n") # 文字を描画 self.contents.draw_text(4 + @dx, 32 * @dy, 40, 32, c) self.contents.font.name = "Arial" # x に描画した文字の幅を加算 @dx += self.contents.text_size(c).width end if c == "\n" # カーソルの幅を更新 @cursor_width = [@cursor_width, @dx].max # y に 1 を加算 @dy += 1 @dx = 0 end return end # \\ の場合 if c == "0" # 本来の文字に戻す c = "\\" end # \C[n] の場合 if c == "1" # 文字色を変更 text.sub!(/\[([0-9]+)\]/, "") color = $1.to_i if color >= 0 and color <= 7 self.contents.font.color = text_color(color) self.contents.font.name = "Arial" end end # \G の場合 if c == "2" # ゴールドウィンドウを作成 if @gold_window == nil @gold_window = Window_Gold.new @gold_window.x = 560 - @gold_window.width if $game_temp.in_battle @gold_window.y = 192 else @gold_window.y = self.y >= 128 ? 32 : 384 end @gold_window.opacity = self.opacity @gold_window.back_opacity = self.back_opacity self.contents.font.name = "Arial" end end # 改行文字の場合 if c == "\n" # y に 1 を加算 @dy += 1 @dx = 0 end # 文字を描画 self.contents.font.size = FUKI::MES_FONT_SIZE font_size = self.contents.font.size self.contents.draw_text(4+@dx, (font_size+10)*@dy, font_size, font_size, c) self.contents.font.name = "Arial" # x に描画した文字の幅を加算 @dx += self.contents.text_size(c).width self.contents.font.name = "Arial" end end end #-------------------------------------------------------------------------- # ○ 選択肢と数値入力を有効に #-------------------------------------------------------------------------- def draw_opt_text # 選択肢の場合 if $game_temp.choice_max > 0 @item_max = $game_temp.choice_max self.active = true self.index = 0 self.contents.font.name = "Arial" end # 数値入力の場合 if $game_temp.num_input_variable_id > 0 digits_max = $game_temp.num_input_digits_max number = $game_variables[$game_temp.num_input_variable_id] @input_number_window = Window_InputNumber.new(digits_max) @input_number_window.number = number @input_number_window.x = self.x + 8 @input_number_window.y = self.y + $game_temp.num_input_start * 32 end end #-------------------------------------------------------------------------- # ○ ふきだしを表示 #-------------------------------------------------------------------------- def set_fukidasi(x, y, width, height) # $mes_id が空のときはふきだしを表示しない if $mes_id == nil or $mes_id == "" del_fukidasi reset_window else # ポーズサインを非表示 self.pause = false self.contents.font.name = "Arial" # キャラクターを取得 character = get_character($mes_id) if character == nil # キャラクターが存在しないときは通常のメッセージウインドウに del_fukidasi reset_window return end # マップがスクロールされていないときの座標処理 if $game_map.display_x == 0 x = character.x * 32 - (width / 2) + 16 elsif $game_map.display_x == ($game_map.width - 20) * 128 x = ( character.real_x - $game_map.display_x + 64 ) / 128 * 32 - (width / 2) + 16 else x = ( character.real_x - $game_map.display_x + 64 ) / 128 * 32 - (width / 2) end # はみ出すときは画面内に収まるように移動 if x + width > 640 x = 640 - width elsif x < 0 x = 0 end # ウインドウの位置を決定 case $game_system.message_position when 0 # 上 y = ( (character.real_y - $game_map.display_y + 64) / 128) * 32 - height + 16 - FUKI::CHARACTOR_HEIGHT + FUKI::POP_SHIFT_TOP when 1 # 中 y = (480 - height) / 2 x = (640 - width) / 2 when 2 # 下 y = ( (character.real_y - $game_map.display_y + 64) / 128) * 32 + 48 + FUKI::POP_SHIFT_UNDER end skin = FUKI::FUKI_SKIN_NAME != "" ? FUKI::FUKI_SKIN_NAME : $game_system.windowskin_name # ふきだし用メッセージウインドウを作成 self.windowskin = RPG::Cache.windowskin(skin) self.x = x self.y = y self.height = height self.width = width self.contents.dispose self.contents = Bitmap.new(width - 32, height - 32) self.back_opacity = FUKI::FUKI_OPACITY self.contents.clear self.contents.font.color = normal_color self.contents.font.size = FUKI::MES_FONT_SIZE self.contents.font.name = "Arial" # ふきだしのテールを描画 if $game_system.message_frame == 0 @fuki = Sprite.new case $game_system.message_position when 0 # 上 @fuki.bitmap = RPG::Cache.windowskin(skin + "-top") # マップがスクロールされていないときの座標処理 if $game_map.display_x == 0 @fuki.x = character.x * 32 elsif $game_map.display_x == ($game_map.width - 20) * 128 @fuki.x = ( character.real_x - $game_map.display_x + 64 ) / 128 * 32 else @fuki.x = ( character.real_x - $game_map.display_x + 64 ) / 128 * 32 - 16 end # 画面端では位置をずらす if FUKI::CORNER_SHIFT if @fuki.x == 0 @fuki.x = FUKI::SHIFT_PIXEL elsif @fuki.x == 640 - 32 @fuki.x = 640 - 32 - FUKI::SHIFT_PIXEL end end @fuki.y = y + height - 16 @fuki.z = self.z + 1 when 1 # 中 @fuki.dispose @fuki = nil when 2 # 下 @fuki.bitmap = RPG::Cache.windowskin(skin + "-under") # マップがスクロールされていないときの座標処理 if $game_map.display_x == 0 @fuki.x = character.x * 32 elsif $game_map.display_x == ($game_map.width - 20) * 128 @fuki.x = ( character.real_x - $game_map.display_x + 64 ) / 128 * 32 else @fuki.x = ( character.real_x - $game_map.display_x + 64 ) / 128 * 32 - 16 end # 画面端では位置をずらす if FUKI::CORNER_SHIFT if @fuki.x == 0 @fuki.x = FUKI::SHIFT_PIXEL elsif @fuki.x == 640 - 32 @fuki.x = 640 - 32 - FUKI::SHIFT_PIXEL end end @fuki.y = y - 16 @fuki.z = self.z + 1 end end end end #-------------------------------------------------------------------------- # ○ 名前ウインドウを表示 #-------------------------------------------------------------------------- def set_namewindow # $mes_name が空のときは名前ウインドウを表示しない if $mes_name == nil or $mes_name == "" return else # 変数をセット mes_name = $mes_name name_width = mes_name.size / 2 * FUKI::NAME_FONT_SIZE name_height = FUKI::NAME_FONT_SIZE name_x = x + FUKI::NAME_SHIFT_X name_y = y - name_height - 16 + FUKI::NAME_SHIFT_Y # 名前ウインドウ(枠のみ)を作成 @name_win = Window_Base.new(name_x, name_y, name_width + 16, name_height + 16) skin = FUKI::NAME_SKIN_NAME != "" ? FUKI::NAME_SKIN_NAME : $game_system.windowskin_name @name_win.windowskin = RPG::Cache.windowskin(skin) @name_win.back_opacity = FUKI::NAME_OPACITY @name_win.z = self.z + 1 # 余白をwindowクラスの限界よりも小さくするため、二重構造に viewport = Viewport.new(name_x+12, name_y+8, name_width, name_height) viewport.z = @name_win.z + 1 @name_contents = Sprite.new(viewport) @name_contents.bitmap = Bitmap.new(name_width, name_height) @name_contents.z = @name_win.z + 2 @name_contents.bitmap.font.color = normal_color @name_contents.bitmap.font.size = FUKI::NAME_FONT_SIZE # ウインドウサイズを調整 rect = @name_contents.bitmap.text_size(mes_name) @name_win.width = rect.width + 32 # 名前を描画 @name_contents.bitmap.draw_text(rect, mes_name) end end #-------------------------------------------------------------------------- # ○ ふきだしと名前ウインドウを破棄 #-------------------------------------------------------------------------- def del_fukidasi if @fuki != nil @fuki.dispose @fuki = nil end if @name_win != nil @name_win.dispose @name_win = nil @name_contents.dispose @name_contents = nil end self.opacity = 0 self.x = 80 self.width = 480 self.height = 160 self.contents.dispose self.contents = Bitmap.new(width - 32, height - 32) self.pause = true self.contents.font.name = "Arial" end #-------------------------------------------------------------------------- # ○ キャラクターの取得 # parameter : パラメータ #-------------------------------------------------------------------------- def get_character(parameter) # パラメータで分岐 case parameter when -1 # プレイヤー return $game_player when 0 # このイベント events = $game_map.events return events == nil ? nil : events[$active_event_id] else # 特定のイベント events = $game_map.events return events == nil ? nil : events[parameter] end end #-------------------------------------------------------------------------- # ○ ウィンドウの位置と不透明度の設定 #-------------------------------------------------------------------------- def reset_window if $game_temp.in_battle self.y = 16 self.contents.font.name = "Arial" else case $game_system.message_position when 0 # 上 self.y = 16 self.contents.font.name = "Arial" when 1 # 中 self.y = 160 self.contents.font.name = "Arial" when 2 # 下 self.y = 304 self.contents.font.name = "Arial" end end if $game_system.message_frame == 0 self.opacity = 255 self.contents.font.name = "Arial" else self.opacity = 0 self.contents.font.name = "Arial" end self.back_opacity = FUKI::MES_OPACITY self.contents.font.name = "Arial" end #-------------------------------------------------------------------------- # ○ フレーム更新 #-------------------------------------------------------------------------- def update super # フェードインの場合 if @fade_in self.contents_opacity += 24 self.contents.font.name = "Arial" if @name_win != nil @name_win.opacity += 24 end if @fuki != nil @fuki.opacity += 24 end if @input_number_window != nil @input_number_window.contents_opacity += 24 end if self.contents_opacity == 255 @fade_in = false end return end # メッセージ表示中の場合 if @contents_drawing refresh_drawtext return end # 数値入力中の場合 if @input_number_window != nil @input_number_window.update # 決定 if Input.trigger?(Input::C) $game_system.se_play($data_system.decision_se) $game_variables[$game_temp.num_input_variable_id] = @input_number_window.number $game_map.need_refresh = true # 数値入力ウィンドウを解放 @input_number_window.dispose @input_number_window = nil terminate_message end return end # メッセージ表示終了の場合 if @contents_showing_end # 選択肢の表示中でなければポーズサインを表示 # ふきだしモードでは非表示 if $game_temp.choice_max == 0 and @fuki == nil self.pause = true self.contents.font.name = "Arial" else self.pause = false self.contents.font.name = "Arial" end # キャンセル if Input.trigger?(Input::B) if $game_temp.choice_max > 0 and $game_temp.choice_cancel_type > 0 $game_system.se_play($data_system.cancel_se) $game_temp.choice_proc.call($game_temp.choice_cancel_type - 1) terminate_message end end # 決定 if Input.trigger?(Input::C) if $game_temp.choice_max > 0 $game_system.se_play($data_system.decision_se) $game_temp.choice_proc.call(self.index) end terminate_message # ふきだしを破棄 del_fukidasi end return end # フェードアウト中以外で表示待ちのメッセージか選択肢がある場合 if @fade_out == false and $game_temp.message_text != nil @contents_showing = true $game_temp.message_window_showing = true reset_window refresh_create if @name_win != nil @name_win.opacity = 0 end if @fuki != nil @fuki.opacity = 0 end Graphics.frame_reset self.visible = true self.contents_opacity = 0 self.contents.font.name = "Arial" if @input_number_window != nil @input_number_window.contents_opacity = 0 end @fade_in = true return end # 表示すべきメッセージがないが、ウィンドウが可視状態の場合 if self.visible @fade_out = true self.opacity -= 48 self.contents.font.name = "Arial" if @name_win != nil @name_win.opacity -= 48 end if @fuki != nil @fuki.opacity -= 48 end if self.opacity == 0 self.visible = false self.contents.font.name = "Arial" @fade_out = false $game_temp.message_window_showing = false del_fukidasi end return end end #-------------------------------------------------------------------------- # ○ 解放 #-------------------------------------------------------------------------- def dispose terminate_message $game_temp.message_window_showing = false if @input_number_window != nil @input_number_window.dispose end super end #-------------------------------------------------------------------------- # ○ メッセージ終了処理 #-------------------------------------------------------------------------- def terminate_message self.active = false self.pause = false self.index = -1 self.contents.clear self.contents.font.name = "Arial" # 表示中フラグをクリア @contents_showing = false @contents_showing_end = false # メッセージ コールバックを呼ぶ if $game_temp.message_proc != nil $game_temp.message_proc.call end # 文章、選択肢、数値入力に関する変数をクリア $game_temp.message_text = nil $game_temp.message_proc = nil $game_temp.choice_start = 99 $game_temp.choice_max = 0 $game_temp.choice_cancel_type = 0 $game_temp.choice_proc = nil $game_temp.num_input_start = 99 $game_temp.num_input_variable_id = 0 $game_temp.num_input_digits_max = 0 # ゴールドウィンドウを開放 if @gold_window != nil @gold_window.dispose @gold_window = nil end end #-------------------------------------------------------------------------- # ○ カーソルの矩形更新 #-------------------------------------------------------------------------- def update_cursor_rect if @index >= 0 n = $game_temp.choice_start + @index self.cursor_rect.set(8, n * 32, @cursor_width, 32) self.contents.font.name = "Arial" else self.cursor_rect.empty self.contents.font.name = "Arial" end end end #============================================================================== # ■ Interpreter #============================================================================== class Interpreter #-------------------------------------------------------------------------- # ● イベントのセットアップ # event_id : イベント ID #-------------------------------------------------------------------------- alias setup_fuki setup def setup(list, event_id) setup_fuki(list, event_id) # 戦闘中でなければ if !($game_temp.in_battle) # イベントIDを記録 $active_event_id = event_id end end end #============================================================================== # ■ Scene_Map #============================================================================== class Scene_Map #-------------------------------------------------------------------------- # ● メイン処理 #-------------------------------------------------------------------------- def main # スプライトセットを作成 @spriteset = Spriteset_Map.new # メッセージウィンドウを作成 @message_window = Window_FukiMessage.new # トランジション実行 Graphics.transition # メインループ loop do # ゲーム画面を更新 Graphics.update # 入力情報を更新 Input.update # フレーム更新 update # 画面が切り替わったらループを中断 if $scene != self break end end # トランジション準備 Graphics.freeze # スプライトセットを解放 @spriteset.dispose # メッセージウィンドウを解放 @message_window.dispose # タイトル画面に切り替え中の場合 if $scene.is_a?(Scene_Title) # 画面をフェードアウト Graphics.transition Graphics.freeze end end end #============================================================================== # ■ Window_InputNumber #============================================================================== class Window_InputNumber < Window_Base #-------------------------------------------------------------------------- # ● オブジェクト初期化 # digits_max : 桁数 #-------------------------------------------------------------------------- def initialize(digits_max) @digits_max = digits_max @number = 0 # 数字の幅からカーソルの幅を計算 (0~9 は等幅と仮定) dummy_bitmap = Bitmap.new(32, 32) dummy_bitmap.font.size = FUKI::MES_FONT_SIZE @cursor_width = dummy_bitmap.text_size("0").width + 8 dummy_bitmap.dispose super(0, 0, @cursor_width * @digits_max + 32, 64) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.size = FUKI::MES_FONT_SIZE self.z += 9999 self.opacity = 0 self.contents.font.name = "Arial" @index = 0 refresh update_cursor_rect end end #============================================================================== # ■ Window_Gold #============================================================================== class Window_Gold < Window_Base #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- def initialize height = FUKI::MES_FONT_SIZE + 32 super(0, 0, 160, height) self.contents = Bitmap.new(width - 32, height - 32) self.back_opacity = FUKI::MES_OPACITY self.contents.font.size = FUKI::MES_FONT_SIZE self.contents.font.name = "Arial" refresh end #-------------------------------------------------------------------------- # ● リフレッシュ #-------------------------------------------------------------------------- def refresh self.contents.clear cx = contents.text_size($data_system.words.gold).width self.contents.font.color = normal_color self.contents.draw_text(4, 0, 120-cx-2, FUKI::MES_FONT_SIZE, $game_party.gold.to_s, 2) self.contents.font.color = system_color self.contents.draw_text(124-cx, 0, cx, FUKI::MES_FONT_SIZE, $data_system.words.gold, 2) self.contents.font.name = "Arial" end end per far comparire il ballon far eseguire dall'evento col quale si parla tale script $mes_id=0 N.B. Basta eseguirlo una sola volta e compariranno sempre i ballon fino a che non facciate eseguire quests'altra stringa qua: $mes_id=nil Il problema è che non so come si fa a far parlare una terza persona col Fuki, mi pare esista una demo a tal proposito, però non l'ho a disposizione, se qualche anima pia ce l'ha sul pc e potrebbe upparla penso faccia un piacere a molti oltre che al sottoscritto xD
  23. Scusate, so che forse non è molto corretto come primo post riesumare un topic vecchio, tuttavia vorrei chiedere se qualcuno sa come poter disattivare completamente l'HUD per poi richiamarlo quando si vuole. Intendo, tramite evento far eseguire una stringa che permetta di far scomparire non solo l'immagine base dell'Hud, ma anche le barre e le varie scritte... spero vivamente possiate aiutarmi. P.S. per chi interessa (che tradotto significa per chi di ruby è ancora più niubbo di me xD) per far scomparire solo l'immagine di sfondo dell'HUD basta far eseguire da un evento su mappa tale stringa: $ABS.hudname = "" e per poi richiamarla così $ABS.hudname = "HUD-DisplayX" dove la X sta per il numero presente nel nome della imma.
×
×
  • Create New...