Jump to content
Rpg²S Forum

Spiderman 2099

Utenti
  • Posts

    73
  • Joined

  • Last visited

Posts 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. 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? *_*
  4. 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

  5. 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à *.*

  6. 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

  7. 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?

  8. 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
  9. 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

  10. 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

  11. 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...

  12. 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.

  13. 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
  14. 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

  15. 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. :sisi:

     

    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...