Project1

标题: 超级雷人死板起名系统 [打印本页]

作者: EngShun    时间: 2010-12-31 14:33
标题: 超级雷人死板起名系统
本帖最后由 EngShun 于 2010-12-31 15:03 编辑

简介:雷人,为什么雷人,看脚本就懂了,死板,应为界面有些死板
使用方法:在main之前插入
功能:
可以设置许多页,但一定要照着顺序
比如说第一页为Character[0]第二也就必须Character[1]...以此类推
每一页的最后四个一定要是"上页","下页","退格","确定"这四个(意思一样也可以)
这是脚本:
  1. module NameInput
  2.   Character = []
  3.   Character[0] = ["赵","钱","孙","李","周","吴","郑","王","冯","陈",
  4.                   "褚","卫","蒋","沈","韩","杨","朱","秦","尤","许",
  5.                   "何","吕","施","张","孔","曹","严","华","金","魏",
  6.                   "陶","姜","戚","谢","邹","喻","柏","水","窦","章",
  7.                   "云","苏","潘","葛","奚","范","彭","郎","鲁","韦",
  8.                   "昌","马","苗","凤","花","方","俞","任","袁","柳",
  9.                   "酆","鲍","史","唐","费","廉","岑","薛","雷","贺",
  10.                   "倪","汤","滕","殷","罗","毕","上页","下页","退格","确认"]
  11.   Character[1] = ["郝","邬","安","常","乐","于","时","傅","皮","卞",
  12.                   "齐","康","伍","余","元","卜","顾","孟","平","黄",
  13.                   "和","穆","萧","尹","姚","邵","堪","汪","祁","毛",
  14.                   "禹","狄","米","贝","明","臧","计","伏","成","戴",
  15.                   "谈","宋","茅","庞","熊","纪","舒","屈","项","祝",
  16.                   "董","粱","杜","阮","蓝","闵","席","季","麻","强",
  17.                   "贾","路","娄","危","江","童","颜","郭","梅","盛",
  18.                   "林","刁","钟","徐","邱","骆","上页","下页","退格","确认"]
  19.   Character[2] = ["高","夏","蔡","田","樊","胡","凌","霍","虞","万",
  20.                   "支","柯","咎","管","卢","莫","经","房","裘","缪",
  21.                   "干","解","应","宗","宣","丁","贲","邓","郁","单",
  22.                   "杭","洪","包","诸","左","石","崔","吉","钮","龚",
  23.                   "程","嵇","邢","滑","裴","陆","荣","翁","荀","羊",
  24.                   "於","惠","甄","魏","加","封","芮","羿","储","靳",
  25.                   "汲","邴","糜","松","井","段","富","巫","乌","焦",
  26.                   "巴","弓","牧","隗","山","谷","上页","下页","退格","确认"]
  27.   Character[3] = ["车","侯","宓","蓬","全","郗","班","仰","秋","仲",
  28.                   "伊","宫","宁","仇","栾","暴","甘","钭","厉","戎",
  29.                   "祖","武","符","刘","姜","詹","束","龙","叶","幸",
  30.                   "司","韶","郜","黎","蓟","薄","印","宿","白","怀",
  31.                   "蒲","台","从","鄂","索","咸","籍","赖","卓","蔺",
  32.                   "屠","蒙","池","乔","阴","郁","胥","能","苍","双",
  33.                   "闻","莘","党","翟","谭","贡","劳","逄","姬","申",
  34.                   "扶","堵","冉","宰","郦","雍","上页","下页","退格","确认"]
  35.   Character[4] = ["郤","璩","桑","桂","濮","牛","寿","通","边","扈",
  36.                   "燕","冀","郏","浦","尚","农","温","别","庄","晏",
  37.                   "柴","瞿","阎","充","慕","连","茹","习","宦","艾",
  38.                   "鱼","容","向","古","易","慎","戈","廖","庚","终",
  39.                   "暨","居","衡","步","都","耿","满","弘","匡","国",
  40.                   "文","寇","广","禄","阙","东","殴","殳","沃","利",
  41.                   "蔚","越","夔","隆","师","巩","厍","聂","晁","勾",
  42.                   "敖","融","冷","訾","辛","阚","上页","下页","退格","确认"]
  43.   Character[5] = ["那","简","饶","空","曾","毋","沙","乜","养","鞠",
  44.                   "须","丰","巢","关","蒯","相","查","后","荆","红",
  45.                   "游","竺","权","逯","盖","益","桓","公","万","俟",
  46.                   "司","马","上","官","欧","阳","夏","侯","诸","葛",
  47.                   "闻","人","东","方","赫","连","皇","甫","尉","迟",
  48.                   "公","羊","澹","台","公","冶","宗","政","濮","阳",
  49.                   "淳","于","仲","孙","太","叔","申","屠","公","孙",
  50.                   "乐","正","轩","辕","令","狐","上页","下页","退格","确认"]
  51.   Character[6] = ["钟","离","闾","丘","长","孙","慕","容","鲜","于",
  52.                   "宇","文","司","徒","司","空","亓","官","司","寇",
  53.                   "仉","督","子","车","颛","孙","端","木","巫","马",
  54.                   "公","西","漆","雕","乐","正","壤","驷","公","良",
  55.                   "拓","拔","夹","谷","宰","父","谷","粱","晋","楚",
  56.                   "闫","法","汝","鄢","涂","段","干","百","里","东",
  57.                   "郭","南","门","呼","延","妫","海","羊","舌","微",
  58.                   "生","岳","帅","缑","亢","况","上页","下页","退格","确认"]
  59.   Character[7] = ["後","有","琴","梁","丘","左","丘","东","门","西",
  60.                   "门","商","牟","佘","佴","伯","赏","南","宫","墨",
  61.                   "哈","谯","笪","年","爱","阳","佟","第","五","言",
  62.                   "福","百","家","姓","续","林","狗","猫","蛇","鼠",
  63.                   "大","小","上","下","英","有","去","无","回","雷",
  64.                   "人","俊","豪","杰","顺","利","上页","下页","退格","确认"]
  65.   Character[8] = ["A","B","C","D","E","F","G","H","I","J",
  66.                   "K","L","M","N","O","P","Q","R","S","T",
  67.                   "U","V","W","X","Y","Z","a","b","c","d",
  68.                   "e","f","g","h","i","j","k","l","m","n",
  69.                   "o","p","q","r","s","t","u","v","w","x",
  70.                   "y","z","0","1","2","3","4","5","6","7",
  71.                   "8","9",",",".","/",";","'","[","]","`",
  72.                   "-","=","<",">","?",":","上页","下页","退格","确认"]
  73.   Character[9] = ["{","}","!","@","$","%","^","&","*","(",
  74.                   ")","_","+","|","☆","★","○","●","◎","◇",
  75.                   "◆","□","■","△","▲","※","→","←","↑","↓",
  76.                   "〓","上页","下页","退格","确认"]
  77.   Character[10] = ["あ","い","う","え","お","か","き","く","け","こ",
  78.                    "さ","し","す","せ","そ","た","ち","つ","て","と",
  79.                    "な","に","ぬ","ね","の","は","ひ","ふ","へ","ほ",
  80.                    "ま","み","む","め","も","や", "ゆ","よ","ら","り",
  81.                    "る","れ","ろ","わ", "を","ん","が","ぎ","ぐ","げ",
  82.                    "ご","ざ","じ","ず","ぜ","ぞ","だ","ぢ","づ","で",
  83.                    "ど","ば","び","ぶ","べ","ぼ","ぱ","ぴ","ぷ","ぺ",
  84.                    "ぽ","ゃ","上页","下页","退格","确认"]
  85. end
  86. class Window_Name_Input < Window_Selectable
  87.   def initialize(command=[])
  88.     super(144,160, 352, 288)
  89.     @item_max = command.size
  90.     @column_max = 10
  91.     @commands = command
  92.     self.contents = Bitmap.new(320, 256)
  93.     refresh
  94.     self.index = 0
  95.   end
  96.   #--------------------------------------------------------------------------
  97.   # ● 刷新
  98.   #--------------------------------------------------------------------------
  99.   def refresh(cmd=@commands)
  100.     @commands = cmd
  101.     @item_max = @commands.size
  102.     self.contents.clear
  103.     for i in 0...@item_max
  104.       draw_item(i, normal_color)
  105.     end
  106.   end
  107.   #--------------------------------------------------------------------------
  108.   # ● 描绘项目
  109.   #     index : 项目编号
  110.   #     color : 文字色
  111.   #--------------------------------------------------------------------------
  112.   def draw_item(index, color)
  113.     self.contents.font.color = color
  114.     # 计算得出当前index所对应的内容所在的行
  115.     row_index = index / @column_max
  116.     # 根据余数得出所在的列
  117.     for i in 0...@column_max
  118.       if index % @column_max == i
  119.         rect = Rect.new(i * 32 + 2, 32 * row_index, 28,32)
  120.         self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  121.         self.contents.draw_text(rect, @commands[index].to_s,1)
  122.         break
  123.       end
  124.     end
  125.   end
  126.   def update_cursor_rect
  127.     # 光标位置不满 0 的情况下
  128.     if @index < 0
  129.       self.cursor_rect.empty
  130.       return
  131.     end
  132.     # 获取当前的行
  133.     row = @index / @column_max
  134.     # 当前行被显示开头行前面的情况下
  135.     if row < self.top_row
  136.       # 从当前行向开头行滚动
  137.       self.top_row = row
  138.     end
  139.     # 当前行被显示末尾行之后的情况下
  140.     if row > self.top_row + (self.page_row_max - 1)
  141.       # 从当前行向末尾滚动
  142.       self.top_row = row - (self.page_row_max - 1)
  143.     end
  144.     # 计算光标的宽度
  145.     cursor_width = (self.width - 32) / @column_max
  146.     # 计算光标坐标
  147.     x = @index % @column_max * (cursor_width)
  148.     y = @index / @column_max * 32 - self.oy
  149.     # 更新光标矩形
  150.     self.cursor_rect.set(x, y, cursor_width, 32)
  151.   end
  152. end

  153. class Scene_Name
  154.   include NameInput
  155.   def main
  156.     @spriteset = Spriteset_Map.new
  157.     @actor = $game_actors[$game_temp.name_actor_id]
  158.     @name = $game_actors[$game_temp.name_actor_id].name
  159.     @defult_name = $game_actors[$game_temp.name_actor_id].name
  160.     @max = $game_temp.name_max_char
  161.     @pages = 0
  162.     @character = Character[@pages]
  163.     @edit_window = Window_Name_Input.new(@character)
  164.     @name_window = Window_Base.new(144,64,352,96)
  165.     @name_window.contents = Bitmap.new(320,64)
  166.     refresh
  167.     Graphics.transition
  168.     loop do
  169.       Input.update
  170.       Graphics.update
  171.       update
  172.       break if $scene != self
  173.     end
  174.     Graphics.freeze
  175.     @spriteset.dispose
  176.     @edit_window.dispose
  177.     @name_window.dispose
  178.   end
  179.   def update
  180.     @edit_window.update
  181.     if Input.trigger?(Input::L)
  182.       if Character.size != 1
  183.         @pages -= 1
  184.         @pages = Character.size - 1 if @pages < 0
  185.         @character = Character[@pages]
  186.         @edit_window.index = @character.size - 1 if @edit_window.index >= @character.size
  187.         @edit_window.refresh(@character)
  188.       end
  189.     elsif Input.trigger?(Input::R)
  190.       if Character.size != 1
  191.         @pages += 1
  192.         @pages = 0 if @pages >= Character.size
  193.         @character = Character[@pages]
  194.         @edit_window.index = @character.size - 1 if @edit_window.index >= @character.size
  195.         @edit_window.refresh(@character)
  196.       end
  197.     elsif Input.trigger?(Input::B)
  198.       $game_system.se_play($data_system.cancel_se)
  199.       if @name != ""
  200.         @scan = @name.scan(/./)
  201.         @scan[@scan.size - 1] = nil
  202.         @name = ""
  203.         for i in [email protected]
  204.           @name += @scan[i] if @scan[i] != nil
  205.         end
  206.         refresh
  207.       end
  208.     elsif Input.trigger?(Input::C)
  209.       $game_system.se_play($data_system.decision_se)
  210.       case @edit_window.index
  211.       when @character.size - 1
  212.         @name = @defult_name if @name == ""
  213.         $game_actors[$game_temp.name_actor_id].name = @name
  214.         $scene = Scene_Map.new
  215.         return
  216.       when @character.size - 2
  217.         if @name != ""
  218.           @scan = @name.scan(/./)
  219.           @scan[@scan.size - 1] = nil
  220.           @name = ""
  221.           for i in [email protected]
  222.             @name += @scan[i]
  223.           end
  224.         end
  225.       when @character.size - 3
  226.         if Character.size != 1
  227.           @pages += 1
  228.           @pages = 0 if @pages >= Character.size
  229.           @character = Character[@pages]
  230.           @edit_window.index = @character.size - 1 if @edit_window.index >= @character.size
  231.           @edit_window.refresh(@character)
  232.         end
  233.       when @character.size - 4
  234.         if Character.size != 1
  235.           @pages -= 1
  236.           @pages = Character.size - 1 if @pages < 0
  237.           @character = Character[@pages]
  238.           @edit_window.index = @character.size - 1 if @edit_window.index >= @character.size
  239.           @edit_window.refresh(@character)
  240.         end
  241.       else
  242.         if @name.scan(/./).size < @max
  243.           @name += @character[@edit_window.index]
  244.         end
  245.       end
  246.       refresh
  247.     end
  248.   end
  249.   def refresh
  250.     @name_window.contents.clear
  251.     @name_window.draw_actor_graphic(@actor, 32, 64)
  252.     text = ""
  253.     for i in 0...@max
  254.       if @name.scan(/./)[i] != nil
  255.         text += @name.scan(/./)[i]
  256.       else
  257.         text += ".."
  258.       end
  259.     end
  260.     @name_window.contents.draw_text(0,0,320,64,text,1)
  261.   end
  262. end
复制代码
------------------------------------------补充------------------------------------------
每页选项最多八十个,超出就不好看了
作者: stevenrock    时间: 2010-12-31 22:09
制作的非常精美啊~很好用!
作者: enghao_lim    时间: 2010-12-31 22:31
这下可好了……撞帖了……不过是n年前的事……
苹果梨也写过一个……不过他是活用 Character = {}
作者: zhixin1997    时间: 2011-1-10 21:32
非常麻烦啊- -
有没有个范例教程?
作者: aya163    时间: 2011-1-18 16:22
不错支持一下。
作者: 姬文翔    时间: 2011-1-21 02:39
啊……这……还不如用那个拼音输入的好。至少在扩展性方面差太多了




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1