NewJessy Novice
Posts : 223 Thanked : 4 Engine : RMXP Skill : Beginner Type : Artist
| Subyek: Cupski CNS 2010-03-22, 18:32 | |
| Cupski CNSScriptnya kenapa kotak2?(apalah gitu) karena aku tesnya di Demo Punya Orang.. Enjoy! Insert atau ganti dan copas Window_NameInput: - Spoiler:
- Code:
-
#============================================================================== # ■ Window_NameInput #------------------------------------------------------------------------------ # 名前入力画面で、文字を選択するウィンドウです。 #==============================================================================
class Window_NameInput < Window_Base CHARACTER_TABLE = [ "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", " ", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", " ", "+", "-", ";", ":", "'", ",", ".",
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", " ", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", " ", "[", "]", "{", "}", "<", ">", "?", ] #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- def initialize super(160, 128, 320, 352) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $defaultfonttype # "Edit Name" window font self.contents.font.size = $defaultfontsize @index = 0 refresh update_cursor_rect end #-------------------------------------------------------------------------- # ● 文字の取得 #-------------------------------------------------------------------------- def character return CHARACTER_TABLE[@index] end #-------------------------------------------------------------------------- # ● リフレッシュ #-------------------------------------------------------------------------- def refresh self.contents.clear for i in 0..89 x = 4 + i / 5 / 9 * 152 + i % 5 * 28 y = i / 5 % 9 * 32 self.contents.draw_text(x, y, 28, 32, CHARACTER_TABLE[i], 1) end self.contents.draw_text(225, 9 * 32, 64, 32, "OK", 1) end #-------------------------------------------------------------------------- # ● カーソルの矩形更新 #-------------------------------------------------------------------------- def update_cursor_rect # カーソル位置が [決定] の場合 if @index >= 90 self.cursor_rect.set(225, 9 * 32, 64, 32) # カーソル位置が [決定] 以外の場合 else x = 4 + @index / 5 / 9 * 152 + @index % 5 * 28 y = @index / 5 % 9 * 32 self.cursor_rect.set(x, y, 28, 32) end end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- def update super # カーソル位置が [決定] の場合 if @index >= 90 # カーソル下 if Input.trigger?(Input::DOWN) $game_system.se_play($data_system.cursor_se) @index -= 90 end # カーソル上 if Input.repeat?(Input::UP) $game_system.se_play($data_system.cursor_se) @index -= 90 - 40 end # カーソル位置が [決定] 以外の場合 else # 方向ボタンの右が押された場合 if Input.repeat?(Input::RIGHT) # 押下状態がリピートでない場合か、 # カーソル位置が右端ではない場合 if Input.trigger?(Input::RIGHT) or @index / 45 < 3 or @index % 5 < 4 # カーソルを右に移動 $game_system.se_play($data_system.cursor_se) if @index % 5 < 4 @index += 1 else @index += 45 - 4 end if @index >= 90 @index -= 90 end end end # 方向ボタンの左が押された場合 if Input.repeat?(Input::LEFT) # 押下状態がリピートでない場合か、 # カーソル位置が左端ではない場合 if Input.trigger?(Input::LEFT) or @index / 45 > 0 or @index % 5 > 0 # カーソルを左に移動 $game_system.se_play($data_system.cursor_se) if @index % 5 > 0 @index -= 1 else @index -= 45 - 4 end if @index < 0 @index += 90 end end end # 方向ボタンの下が押された場合 if Input.repeat?(Input::DOWN) # カーソルを下に移動 $game_system.se_play($data_system.cursor_se) if @index % 45 < 40 @index += 5 else @index += 90 - 40 end end # 方向ボタンの上が押された場合 if Input.repeat?(Input::UP) # 押下状態がリピートでない場合か、 # カーソル位置が上端ではない場合 if Input.trigger?(Input::UP) or @index % 45 >= 5 # カーソルを上に移動 $game_system.se_play($data_system.cursor_se) if @index % 45 >= 5 @index -= 5 else @index += 90 end end end # L ボタンか R ボタンが押された場合 if Input.repeat?(Input::L) or Input.repeat?(Input::R) # ひらがな / カタカナ 移動 $game_system.se_play($data_system.cursor_se) if @index / 45 < 2 @index += 90 else @index -= 90 end end end update_cursor_rect end end
Window_NameEdit - Spoiler:
- Code:
-
#============================================================================== # ■ Window_NameEdit #------------------------------------------------------------------------------ # 名前入力画面で、名前を編集するウィンドウです。 #==============================================================================
class Window_NameEdit < Window_Base #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_reader :name # 名前 attr_reader :index # カーソル位置 #-------------------------------------------------------------------------- # ● オブジェクト初期化 # actor : アクター # max_char : 最大文字数 #-------------------------------------------------------------------------- def initialize(actor, max_char) super(0, 0, 640, 115) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $defaultfonttype # "Edit Name" window font self.contents.font.size = $defaultfontsize @actor = actor @name = actor.name @max_char = max_char # 名前を最大文字数以内に収める name_array = @name.split(//)[0...@max_char] @name = "" for i in 0...name_array.size @name += name_array[i] end @default_name = @name @index = name_array.size refresh update_cursor_rect end #-------------------------------------------------------------------------- # ● デフォルトの名前に戻す #-------------------------------------------------------------------------- def restore_default @name = @default_name @index = @name.split(//).size refresh update_cursor_rect end #-------------------------------------------------------------------------- # ● 文字の追加 # character : 追加する文字 #-------------------------------------------------------------------------- def add(character) if @index < @max_char and character != "" @name += character @index += 1 refresh update_cursor_rect end end #-------------------------------------------------------------------------- # ● 文字の削除 #-------------------------------------------------------------------------- def back if @index > 0 # 一字削除 name_array = @name.split(//) @name = "" for i in 0...name_array.size-1 @name += name_array[i] end @index -= 1 refresh update_cursor_rect end end #-------------------------------------------------------------------------- # ● リフレッシュ #-------------------------------------------------------------------------- def refresh self.contents.clear # 名前を描画 name_array = @name.split(//) for i in 0...@max_char c = name_array[i] if c == nil c = "" end x = 320 - @max_char * 14 + i * 28 self.contents.draw_text(x, 32, 28, 32, c, 1) end # グラフィックを描画 draw_actor_graphic(@actor, 320 - @max_char * 14 - 167, 75) end #-------------------------------------------------------------------------- # ● カーソルの矩形更新 #-------------------------------------------------------------------------- def update_cursor_rect x = 320 - @max_char * 14 + @index * 28 self.cursor_rect.set(x, 32, 28, 32) end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- def update super update_cursor_rect end end
Scene_Name - Spoiler:
- Code:
-
#============================================================================== # ■ Scene_Name #------------------------------------------------------------------------------ # 名前入力画面の処理を行うクラスです。 #==============================================================================
class Scene_Name #-------------------------------------------------------------------------- # ● メイン処理 #-------------------------------------------------------------------------- def main # アクターを取得 @actor = $game_actors[$game_temp.name_actor_id] # ウィンドウを作成 @edit_window = Window_NameEdit.new(@actor, $game_temp.name_max_char) @input_window = Window_NameInput.new #Make spritesets map @map_Terlihat= Spriteset_Map.new # トランジション実行 Graphics.transition # メインループ loop do # ゲーム画面を更新 Graphics.update # 入力情報を更新 Input.update # フレーム更新 update # 画面が切り替わったらループを中断 if $scene != self break end end # トランジション準備 Graphics.freeze # ウィンドウを解放 @map_Terlihat.dispose @edit_window.dispose @input_window.dispose end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- def update # ウィンドウを更新 @map_Terlihat.update @edit_window.update @input_window.update # B ボタンが押された場合 if Input.repeat?(Input::B) # カーソル位置が 0 の場合 if @edit_window.index == 0 return end # キャンセル SE を演奏 $game_system.se_play($data_system.cancel_se) # 文字を削除 @edit_window.back return end # C ボタンが押された場合 if Input.trigger?(Input::C) # カーソル位置が [決定] の場合 if @input_window.character == nil # 名前が空の場合 if @edit_window.name == "" # デフォルトの名前に戻す @edit_window.restore_default # 名前が空の場合 if @edit_window.name == "" # ブザー SE を演奏 $game_system.se_play($data_system.buzzer_se) return end # 決定 SE を演奏 $game_system.se_play($data_system.decision_se) return end # アクターの名前を変更 @actor.name = @edit_window.name # 決定 SE を演奏 $game_system.se_play($data_system.decision_se) # マップ画面に切り替え $scene = Scene_Map.new return end # カーソル位置が最大の場合 if @edit_window.index == $game_temp.name_max_char # ブザー SE を演奏 $game_system.se_play($data_system.buzzer_se) return end # 文字が空の場合 if @input_window.character == "" # ブザー SE を演奏 $game_system.se_play($data_system.buzzer_se) return end # 決定 SE を演奏 $game_system.se_play($data_system.decision_se) # 文字を追加 @edit_window.add(@input_window.character) return end end end
- Spoiler:
Enjoy Edited Version
Terakhir diubah oleh RekkaCupski tanggal 2010-03-22, 23:58, total 1 kali diubah | |
|
yerry_great @> Moderator
Posts : 1251 Thanked : 15 Engine : Multi-Engine User Skill : Very Beginner Type : Jack of All Trades
| Subyek: Re: Cupski CNS 2010-03-22, 18:54 | |
| Buat sendiri nih? Haha, sertakan credit pembuat aslinya ya, scriptnya keren~ | |
|
shikami Member 1000 Konsep
Posts : 3744 Thanked : 31 Engine : Multi-Engine User Skill : Beginner Type : Developer
Trophies
Awards:
| Subyek: Re: Cupski CNS 2010-03-22, 21:26 | |
| - Quote :
- Woalah.. kirain apa...
Ternyata CMS (Not CNS) Diberi penjelasan hehe...
kayaknya maksudnya Custom Name Script (CNS). jadi gak salah dunk dia kasi penjelasan cc biar gak bingung.. translate juga lah .. | |
|
yerry_great @> Moderator
Posts : 1251 Thanked : 15 Engine : Multi-Engine User Skill : Very Beginner Type : Jack of All Trades
| Subyek: Re: Cupski CNS 2010-03-23, 00:02 | |
| Waduh, maksudnya edit pake template INIHaha, ~ edit lagi gih | |
|