赞 | 0 |
VIP | 0 |
好人卡 | 1 |
积分 | 1 |
经验 | 19460 |
最后登录 | 2018-3-15 |
在线时间 | 362 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 80
- 在线时间
- 362 小时
- 注册时间
- 2013-12-8
- 帖子
- 427
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 柍若 于 2014-2-10 05:57 编辑
呃……写完才发现好像原来就有一个了_(:з」∠)_
不过那个看起来设置很麻烦的样子,这款应该能简单一点
脚本自由性还算比较高吧XD
灵感来自剑网三 【注意不是复刻基三的阅读系统!只是个简易版。
以下书籍文字抄自基三
- #==============================================================================
- # ■ 书籍阅读系统 Ver.1.0 - By 柍若
- #------------------------------------------------------------------------------
- #
- # [使用方法]
- # 使用add_book("书名")的指令来获得书籍。
- #
- # 书名必须与下列设置相应的书名保持一致。
- # ★请注意,如果书名要用控制符,则add_book("")内的书名也要有控制符。
- #
- #------------------------------------------------------------------------------
- # 当阅读一本书名在下列没有设置相应内容的书籍时,不会显示阅读窗口。
- #------------------------------------------------------------------------------
- #
- # [界面调出方法]
- # SceneManager.call(Scene_Book)
- #==============================================================================
- module Read
- Variable = 2 # 表示已获得书目的游戏变量,这是为了使已获得的书目与存档同步。
- # 请填入一个游戏中无用的、且不会随意改变的变量。
-
- Cancel = true # 是否有“返回”的选项(还可以直接通过B键退出阅读)
- CancelName = "取消" # 还可以是放弃、返回之类的
-
- Width = 304 # 书目窗口的宽度
- Height = 8 # 最高显示的行数(书目窗口高度)
-
-
- SE = "Book2" # 阅读窗口翻页播放的SE
- TextWidth = 544 # 阅读窗口的宽度
- Line_MAX = 12 # 阅读窗口显示多少行文本
-
- NoBook = "暂无书目" # 没书的时候显示的文本
-
- #------------------------------------------------------------------------------
- # 在这里设置书籍。
- #==============================================================================
- # 书名 => 书的内容 ,可用控制符,(控制符打两个\,如\\c[2]),
- # 内容文本暂不支持自动换行。
- # 尝试过一些前辈的自动换行算法,发现不兼容这个阅读系统。
- # 开学之后有空自己会写一个来更新脚本。最近玩RM花了太多时间了= =b
-
- # 多本书之间用逗号隔开。
-
- Book = {
-
- "《\\c[1]\\i[392]剑部第一\\c[0]》" =>
- " 剑篇
- \\c[2]【龙剑】\\c[0]晋库走龙剑,吴室荡燕雏。翠帷双卷出
- 顷城,龙剑破匣双月明。
- \\c[2]【照胆】\\c[0]武丁在位五十九年,以元年岁次午铸一
- 剑,长三尺,铭曰「照胆」,古文篆书。
- \\c[2]【金剑】\\c[0]章帝建初八年,铸金剑令投于伊水中,
- 以压人膝之怪。
- \\c[2]【王氏剑】\\c[0]王氏剑,天下利器也。
- \\c[2]【大剑】\\c[0]周太祖出镇魏州,弘肇议带枢密以行,
- 苏逢吉场邻以为不可,弘肇恨之,明日
- 会饮窦贞固第,弘肇曰:『安朝庭定祸
- 乱,直须长剑大剑,若毛锥子安足用哉
- 。』
- \\c[2]【隋刃】\\c[0]亦名浪剑。剑身用毒药炼铸,伤人即死
- 。隋刃,铸时以毒药并冶,取迎曜如星
- 者,凡十年用成,淬以马血,以金犀饰
- 镡首,伤人即死。浪人所铸故亦名浪剑。
- \\c[2]【浪人剑】\\c[0]为浪人所铸。贞观元十年九月辛卯,
- 南诏献锋槊、浪人剑。亦名『浪剑』。
- \\c[2]【疥痨宾】\\c[0]古代剑名。
- \\c[2]【青霜】\\c[0]古代名剑。此剑之剑光青凛若霜雪,故
- 名。
- \\c[2]【鸦九剑】\\c[0]剑师张鸦九所造之剑。欧治子死千年
- 后,精灵暗授张鸦九,鸦九铸剑吴山
- 中,天与日时神借功。
- \\c[2]【灵宝剑】\\c[0]钱塘闻人绍,一剑削十大钉皆截,剑
- 无纤迹;用力屈之如钩,纵之铿锵有
- 声,复直如弦。古之所谓灵宝剑也。
- \\c[2]【裴旻剑】\\c[0]利剑。
- \\c[2]【破山剑】\\c[0]古名剑。有农夫耕地得剑,磨洗适市
- ,值贾胡售以百千,未可,至百万,
- 约来日取之。夜归语妻子,此何异而
- 价至。是庭中有石,偶以剑指之,立
- 碎。诘旦,胡人载镪呈,则叹叱曰:
- 剑光已尽,不复买。农夫苦问之。曰
- :是破山剑,唯一可用,吾欲持之破
- 宝山耳。
- \\c[2]【青蛇】\\c[0]古剑名。",
- "《\\c[2]太公家教\\c[0]第一章》" =>
- " 愤能积恶,必须忍之;心能造恶,必须净之
- ;口能招祸,必须慎之。见人善事,必须赞之;
- 见人恶事,必须掩之。邻有灾难,必须救之;见
- 人打门,即须谏之;意欲去处,即须番之;见人
- 不是,即须教之;非是时流,即须避之。罗网之
- 鸟,悔不高飞;吞钩之鱼,恨不忍饥;人生误计
- ,恨不三思;祸将及已,恨不忍之。
- 其父出行,子须从后;路逢尊者,齐脚敛手
- ;尊人之前,不得唾地;尊人赐酒,必须拜寿;
- 尊人赐肉,骨不与狗;尊者赐果,怀核在手,苦
- 也弃之,为礼大丑。对客之前,不得垂涕,亦不
- 漱口。记而莫忘,终身无咎。立身之本,义让为
- 先。贱莫与交,贵莫与亲。他奴莫与语,他婢莫
- 与言。衰败之家,慎莫为婚;市道接利,莫与为
- 邻。敬上爱下,泛爱尊贤,孤儿寡妇,特可矜怜。",
- "《万花茶典·上篇》" =>
- " \\c[6]茶之造\\c[0]
- 采茶最佳时节在二月、三月、四月之间。然
- 不同茶品却又有差别,茶笋始抽为最佳。
- 初发嫩芽,凌露采之。丛薄之上,有三枝、
- 四枝者,择枝颖拔者采。知行大师有曰:
- 日有雨不采,晴有云不采;然,天有风云。
- 料不及,严守此法之人不多也!
- 所采茶叶须迅即蒸之,捣之,拍之,焙之,
- 穿之,封之,茶干而成饼,不可耽搁一刻。
- 造茶器具多有如下。
- \\c[2]甑子\\c[0]:或木或瓦,周框封以泥,内中放竹篮
- 为甑箪,以竹篾系牢。始蒸茶叶,
- 将其放入内篮,既熟,取箪,待甑中无水,
- 再倒入茶叶,以木枝三叉者拌之。散所蒸茶叶,
- 畏流其膏。
- \\c[2]杵臼\\c[0]:捣茶所用,又名碓,恒用者佳。
- \\c[2]贯\\c[0]:削竹为之,穿茶以焙之。
- 炙烤茶饼勿于风烬间,风吹焰火飘忽不定,
- 使茶炎凉不均。是以逼火而烤,
- 翻动不止,待出虾蟆背状,去火五寸续烤之
- 。若叶卷而舒,复烤之,其法如前所述。
- 造茶之初,若茶也至嫩者,蒸熟即热捣,叶
- 烂而笋存。即便为力大者持千钧杵捣之亦不能烂。",
- "测试之书" =>
- "控制符测试:\\c[2]红色文字\\c[0]
- 显示1号变量:\\v[1]
- 显示1号主角的名字:\\n[1]
- 描绘一个图标:1000\\i[361]",
- "书名" =>
- "内容",
- }
- #==============================================================================
- end
- class Scene_Book < Scene_MenuBase
- def start
- super
- create_command_window
- end
- def update
- update_basic
- if @booktext_window.visible
- if Input.trigger?(:B) or Input.trigger?(:C)
- @booktext_window.terminate_text
- @command_window.active = true
- elsif Input.trigger?(:R)
- @booktext_window.pagedown
- elsif Input.trigger?(:L)
- @booktext_window.pageup
- end
- end
- end
- def pre_terminate
- super
- returnn
- end
- def create_background
- super
- @background_sprite.tone.set(0, 0, 0, 128)
- end
- def create_command_window
- @command_window = Window_Book.new
- @command_window.set_handler(:book, method(:read))
- @command_window.set_handler(:cancel, method(:return_scene))
- @booktext_window = Window_BookRead.new
- end
- def read
- text = Read::Book[@command_window.current_ext]
- @booktext_window.addmasage = text if text
- @command_window.active = true unless text
- end
- def returnn
- @command_window.close
- @booktext_window.close
- update until @command_window.close?
- end
- end
- class Window_Book < Window_Command
- def initialize
- super(0, 0)
- update_placement
- self.openness = 0
- open
- end
- def window_width
- return Read::Width
- end
- def update_placement
- self.x = (Graphics.width - width) / 2
- self.y = (Graphics.height - height) / 2
- end
- def draw_item(index)
- change_color(normal_color, command_enabled?(index))
- rect = item_rect_for_text(index)
- text = convert_escape_characters(command_name(index))
- pos = {:x => rect.x, :y => rect.y, :new_x => rect.x, :height => calc_line_height(text)}
- process_character(text.slice!(0, 1), text, pos) until text.empty?
- end
- def make_command_list
- if $game_variables[Read::Variable] == 0
- add_command(Read::NoBook, :no_book, false)
- else
- for i in 0..$game_variables[Read::Variable].size-1
- bookname = $game_variables[Read::Variable][i]
- add_command(bookname, :book, true, bookname)
- end
- end
- add_command(Read::CancelName, :cancel) if Read::Cancel
- end
- def window_height
- if item_max <= Read::Height
- fitting_height(visible_line_number)
- else
- fitting_height(Read::Height)
- end
- end
- end
- def add_book(name)
- $game_variables[Read::Variable] = [] if $game_variables[Read::Variable] == 0
- $game_variables[Read::Variable][$game_variables[Read::Variable].size] = name
- end
- class Window_BookRead < Window_Base
- def initialize
- super(0, 0, Read::TextWidth, Read::Line_MAX*line_height)
- update_placement
- self.arrows_visible = false
- hide
- end
- def update_placement
- self.x = (Graphics.width - width) / 2
- self.y = (Graphics.height - height) / 2
- end
- def pagedown
- oy = self.oy
- if self.oy + (Read::Line_MAX-1)*line_height < contents.height
- self.oy += (Read::Line_MAX-1)*line_height
- Audio.se_play('Audio/SE/'+Read::SE,80,100) unless self.oy == oy
- end
- end
- def pageup
- oy = self.oy
- if self.oy != 0
- self.oy -= (Read::Line_MAX-1)*line_height
- Audio.se_play('Audio/SE/'+Read::SE,80,100) unless self.oy == oy
- end
- end
- def start_message
- refresh
- show
- end
- def addmasage=(text)
- @text = text
- start_message
- end
- def refresh
- self.oy = 0
- reset_font_settings
- update_all_text_height
- create_contents
- draw_text_ex(4, 0, @text)
- end
- def update_all_text_height
- @all_text_height = 0
- convert_escape_characters(@text).each_line do |line|
- @all_text_height += calc_line_height(line, false)
- end
- reset_font_settings
- end
- def contents_height
- @all_text_height ? @all_text_height : super
- end
- def terminate_text
- @text = nil
- hide
- end
- end
复制代码 得到书籍的运用:
比如说,阅读某个地方的碑文或者看到谁的日记啦,看完之后这本书就被收录到书籍系统里,下次进入可以看到所有看过的书。
或者得到什么帮助文件啦,国家历史啦之类的物品,使用之后执行公共事件来获得书本以便阅读。
古剑2的水月镜花也有点类似这种get→重复阅读的模式,不过人家的UI更漂亮啦←_←
用法脚本里应该写的够清楚了嗯……不多说了,大家自由发挥XD(好像没什么可发挥的空间啊_(:з」∠)_
⊙▽⊙范例送上,不过我有点穷,嗯。←_←
只要看得懂脚本的其实完全没必要下载范例啦。
书籍阅读系统.zip
(1.44 MB, 下载次数: 161, 售价: 2 星屑)
——————题外话分割线
不要问俺为什么起这么早……(╯‵□′)╯︵┻━┻老子一晚上通宵撸作业就没睡A!!
T_T初三狗好苦逼啊好苦逼!!! |
评分
-
查看全部评分
|