Project1

标题: 随机获得道具 [打印本页]

作者: feizhaodan    时间: 2011-9-3 23:47
标题: 随机获得道具
本帖最后由 feizhaodan 于 2011-9-3 23:54 编辑

本人脚本第四弹:
  1. #============================================================================
  2. # 囧 随机获得道具
  3. #    制作:feizhaodan
  4. #    版本号:1.0.0(这个也不会动了(笑))
  5. #============================================================================
  6. #==============================================================================
  7. # ■ Random_Got
  8. #------------------------------------------------------------------------------
  9. #   随机获取道具的设置页。
  10. #==============================================================================
  11. module Random_Got
  12.   
  13.   Item_List = {} # ←请不要动这个。
  14.   
  15.   
  16.   # 在这里开始设置随机道具表
  17.   # 格式:Item_List[id] = [[kind, gid, num, per],...]
  18.   # ID是执行随机的道具ID
  19.   # kind 是获得的道具的种类
  20.   # gid 是获得的道具的ID
  21.   # num 是获得的道具的数量
  22.   # per 是获得的几率。实际几率为所有道具的几率分之per
  23.   # 有几个道具就写几个内容。
  24.   
  25.   Item_List[21] = [[0, 6, 1, 25], [1, 25, 1, 25], [2, 1, 5, 50]]
  26.   
  27. end

  28. #囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧囧

  29. #==============================================================================
  30. # ■ Game_Interpreter
  31. #------------------------------------------------------------------------------
  32. #  执行事件命令的解释器。本类在 Game_Map 类、Game_Troop 类、与
  33. # Game_Event 类的内部使用。
  34. #==============================================================================

  35. class Game_Interpreter
  36.   alias random_command_126 command_126
  37.   #--------------------------------------------------------------------------
  38.   # ● 增减物品
  39.   #--------------------------------------------------------------------------
  40.   def command_126
  41.     if Random_Got::Item_List.include?(@params[0])
  42.       got_random_item
  43.     else
  44.       random_command_126
  45.     end
  46.   end
  47.   #--------------------------------------------------------------------------
  48.   # ● 计算获取随机道具
  49.   #--------------------------------------------------------------------------
  50.   def got_random_item
  51.     list = Random_Got::Item_List[@params[0]].clone
  52.     range = []
  53.     max = list.size
  54.     per = 0
  55.     num = 0
  56.     for i in list
  57.       per += i[3]
  58.       range[num] = per
  59.       num += 1
  60.     end
  61.     rand_num = (rand(per) + 1)
  62.     p rand_num
  63.     for i in 0...max
  64.       if rand_num <= range[i]
  65.         got_in_list = i
  66.         break
  67.       end
  68.     end
  69.     _list = list[got_in_list]
  70.     case _list[0]
  71.     when 0
  72.       item = $data_weapons[_list[1]]
  73.     when 1
  74.       item = $data_armors[_list[1]]
  75.     when 2
  76.       item = $data_items[_list[1]]
  77.     end
  78.     value = _list[2]
  79.     $game_party.gain_item(item, value)
  80.   end
  81. end
复制代码
用法:在开头的设置里设置玩了之后,在游戏中用增减道具,把道具调成你设置的。注意,在这里设置的增加或减少没有用。

好了,本人的脚本第四弹就这样闭幕了。

PS:突然发现,我做的没有一个很闪亮的啊...
PS2:发了之后才发现已经有相似的。假如有问题的话PM下,我删。
PS3:在写东西时很会想用这个PS对吧?
作者: fux2    时间: 2011-9-3 23:53
其实实现这个,10行以内代码足矣,还可以直接用道具注释。
作者: summer92    时间: 2011-9-5 22:53
支持LZ啊,直白也没什么不好
作者: 一瞬间的幻觉    时间: 2012-10-17 04:33
还是不错了,就和楼上说的一样,表达简单,易于理解




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