Project1

标题: 关于xp背单词的脚本移植va并改进问题 [打印本页]

作者: situkei    时间: 2014-6-22 22:20
标题: 关于xp背单词的脚本移植va并改进问题
本帖最后由 situkei 于 2014-6-22 22:25 编辑

需要大神帮忙看看,
把柳柳xp经典的背单词改进下,还是能从txt里读取题库,但是判断的方式改进下
这个是参考的背单词软件截图,已放在附件中了,
问题从txt中随机抽取

这个是我需要改进的范例,也放入附件中了

还有题库样式,也可以稍加改变,方便简洁好维护为主,
答案要在选项中随机排列不能每次相同,问题下面的第一的为正确答案


需要的附件包 新建文件夹.zip
115网盘礼包码:5lbd8ibeb6u9
http://115.com/lb/5lbd8ibeb6u9
作者: 喵呜喵5    时间: 2014-6-22 23:39
本帖最后由 喵呜喵5 于 2014-6-23 00:07 编辑
第一步

第二步

第三步

第四步

其余的说明

作者: situkei    时间: 2014-6-23 02:22
喵呜喵5 发表于 2014-6-22 23:39
[fold=第三步]
执行事 ...

执行事件,
第一个ID对应的变量的值变成题目的内容
第二个ID对应的变量的值变成正确的答案
第三个ID对应的变量的值变成答案的总数
剩下的ID对应的变量的值变成其余的错误答案(错误答案的个数超过你给出的变量ID的数目的话,多出来的那些错误答案将被忽
可能这部分我还是没理解透!

我的意思是想text.txt中正确答案是备选答案中的第一个。但在游戏中四个备选答案每次出现都会乱序,现可以用txt题库中的题了,但是备选答案不能自动乱序啊??估计是我事件写法写的不对 ?或者是不是不能用事件中的选项做了?得另外生成窗口?请喵呜喵5再帮我看看,万分感谢



作者: 喵呜喵5    时间: 2014-6-23 02:39
situkei 发表于 2014-6-23 02:22
执行事件,
第一个ID对应的变量的值变成题目的内容
第二个ID对应的变量的值变成正确的答案

错误的选项会自动乱序,正确的选项你可以直接用事件中的随机数加上条件分支来做啊
作者: situkei    时间: 2014-6-23 03:22
本帖最后由 situkei 于 2014-6-23 03:48 编辑
喵呜喵5 发表于 2014-6-23 02:39
错误的选项会自动乱序,正确的选项你可以直接用事件中的随机数加上条件分支来做啊 ...


您还没睡啊?辛苦哈,您说的小的还是没有领悟啊,厚颜无耻的传上附件,您帮忙改下?辛苦啊
需修改的范例.zip
115网盘礼包码:5lbbkxvxucpw
http://115.com/lb/5lbbkxvxucpw

另外:这个脚本 https://rpg.blue/forum.php?mod=v ... F%E6%9C%BA%E6%8E%92   说的是选项随机排列,能加到我这个范列里吗?
作者: 喵呜喵5    时间: 2014-6-23 12:11

作者: situkei    时间: 2014-6-23 20:54
领悟的一瞬间,
彻底在风中凌乱了,
眼眶中溢满了泪水,
这是要我弄24个变量的节奏吗?


0        1        2        3        4        5        6        7        8        9        10        11
正确        正确        正确        正确        正确        正确        错1        错1        错1        错1        错1        错1
错1        错1        错2        错2        错3        错3        正确        正确        错2        错2        错3        错3
错2        错3        错3        错1        错1        错2        错2        错3        错3        正确        正确        错2
错3        错2        错1        错3        错2        错1        错3        错2        正确        错3        错2        正确

12        13        14        15        16        17        18        19        20        21        22        23
错2        错2        错2        错2        错2        错2        错3        错3        错3        错3        错3        错3
正确        正确        错1        错1        错3        错3        正确        正确        错1        错1        错2        错2
错1        错3        正确        错3        错1        正确        错1        错2        正确        错2        正确        错1
错3        错1        错3        正确        正确        错1        错2        错1        错2        正确        错1        正确

不过还是逐一写进去了,泪奔~~o(>_<)o ~~  笨鸟只能这样了!!

不过还是达成我想要的效果了,万分感谢,怎么发经验和好人卡啊?
作者: situkei    时间: 2014-7-2 00:43
本帖最后由 situkei 于 2014-7-2 00:49 编辑
喵呜喵5 发表于 2014-6-22 23:39
[fold=第三步]
执行事 ...


def read_txt
  @file = []
  @next_question = true  
  IO.foreach("text.txt") do |line|
    text = line.chomp.gsub("\xEF\xBB\xBF", "")
    if text == ""
      @next_question = true
    else
      if @next_question
        @file.push([text])
        @next_question = false
      else
        @file[-1].push(text)
      end
    end
  end
  $m5_question = @file
end
read_txt if true
class Game_Interpreter
  def chouti(question,answer,amount,*var)
    temp = $m5_question.sample   
    $game_variables[question] = temp[0]
    $game_variables[answer]   = temp[1]
    $game_variables[amount]   = temp.size - 1
    var.shuffle!
    temp.each_with_index do |wrong,index|
      next if index < 2
      var_id = var[index-2]
      $game_variables[var_id] = wrong if var_id
    end
  end
end

这个脚本真好用,我自己又学习改了几个变种,但是问题来了,我现在不止一个text文本,我还有text1,txt   text2,txt   text3,txt  text4,txt,     怎么能把文件名的变量在事件中带出来??我自己尝试着修改结果冲突报错,用修改脚本吗?
我有种思路您评判下?记得您有一个<事件脚本增强>可以突破事件脚本行数限制,我用那个脚本后再把上面的脚本复制到事件脚本中可以完美解决冲突报错的问题吧?
作者: 喵呜喵5    时间: 2014-7-2 00:47
situkei 发表于 2014-7-2 00:43
def read_txt
  @file = []
  @next_question = true  

你得先描述清楚你要实现的效果……
这几个txt有什么区别么?为什么不一起读取?
作者: situkei    时间: 2014-7-2 00:52
喵呜喵5 发表于 2014-7-2 00:47
你得先描述清楚你要实现的效果……
这几个txt有什么区别么?为什么不一起读取? ...

比如说text1是 数学选择题,text2是语文选择题,不同的事件触发不同的题库,不知道我描述的清楚吗?
作者: 喵呜喵5    时间: 2014-7-2 01:03
插入下面这个修改好的脚本:
  1. class Game_Interpreter
  2.   def duti(filename)
  3.     $m5_question = []
  4.     @next_question = true  
  5.     IO.foreach(filename) do |line|
  6.       text = line.chomp.gsub("\xEF\xBB\xBF", "")
  7.       if text == ""
  8.         @next_question = true
  9.       else
  10.         if @next_question
  11.           $m5_question.push([text])
  12.           @next_question = false
  13.         else
  14.           $m5_question[-1].push(text)
  15.         end
  16.       end
  17.     end
  18.   end
  19.   def chouti(question,answer,amount,*var)
  20.     duti("Text.txt") unless $m5_question
  21.     temp = $m5_question.sample
  22.     $game_variables[question] = temp[0]
  23.     $game_variables[answer]   = temp[1]
  24.     $game_variables[amount]   = temp.size - 1
  25.     var.shuffle!
  26.     temp.each_with_index do |wrong,index|
  27.       next if index < 2
  28.       var_id = var[index-2]
  29.       $game_variables[var_id] = wrong if var_id
  30.     end
  31.   end
  32. end
复制代码
使用指令
  1. duti("TXT文件名.txt")
复制代码
切换题库
作者: situkei    时间: 2014-7-2 01:14
喵呜喵5 发表于 2014-7-2 01:03
插入下面这个修改好的脚本:使用指令切换题库

搞定了,谢谢,您这个txt脚本节省了很多时间啊,
我还准备照着您这个txt脚本导入,自己研究做一个随机npc发放任务系统
txt第一行,为任务描述变量
txt第2行,为完成任务需要的物品变量
txt第3行,为完成任务需要的物品变量
txt第4行,为完成任务给的奖励
然后在事件中引用
太方便了  呵呵




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