Project1

标题: 怎么做可以随机丢掉背包内一半的物品 [打印本页]

作者: yang1zhi    时间: 2016-4-7 13:44
标题: 怎么做可以随机丢掉背包内一半的物品
想做角色死亡后就损失掉背包一半的物品和一半的金钱。

钱做好了。

物品感觉挺麻烦的。

身上穿着的不丢。
背包里的随机丢掉一半,背包里的不管武器防具物品都一样。
作者: cinderelmini    时间: 2016-4-7 14:59
采集了背包所有物品数量的一半然后逐个随机减掉一半……
不知道算法是不是对的……有坑再说……
使用方法是在事件里用【脚本】输入:
  1. $game_party.lost_half_items
复制代码
代码放在【Game_Party】下面

作者: yang1zhi    时间: 2016-4-7 20:48
cinderelmini 发表于 2016-4-7 14:59
采集了背包所有物品数量的一半然后逐个随机减掉一半……
不知道算法是不是对的……有坑再说……
使用方法是 ...

我把你写的这个改了下。结果数量变成了小数点




RUBY 代码复制
  1. class Game_Party
  2.  
  3.   def lost_half_items
  4.     list_all = [@items, @weapons, @armors]
  5.     half_num = 0
  6.     list_all.each do |list|
  7.       list.values.each do |l|
  8.         half_num += l
  9.       end
  10.     end
  11.     return if half_num == 0
  12.     while half_num > 0
  13.       list = list_all[rand(3)]
  14.       next if list.size <= 0
  15.       rand_items_id = @items.keys[rand(@items.keys.size)]
  16.       rand_weapons_id = @weapons.keys[rand(@weapons.keys.size)]
  17.       rand_armors_id = @armors.keys[rand(@armors.keys.size)]
  18.  
  19.  
  20.       if @items[rand_items_id] > 1
  21.         lose_num = @items[rand_items_id]
  22.         rand_item_number = rand($game_party.item_number(lose_num))
  23.         @items[rand_items_id] -= rand_item_number.abs
  24.         half_num -= 1
  25.       else
  26.         @items.delete(rand_items_id)
  27.         half_num -= 1
  28.       end
  29.  
  30.  
  31.             if @weapons[rand_weapons_id] > 1
  32.         lose_num = @weapons[rand_weapons_id]
  33.         rand_item_number = rand($game_party.item_number(lose_num))
  34.         @weapons[rand_weapons_id] -= rand_item_number.abs
  35.         half_num -= 1
  36.       else
  37.         @items.delete(rand_items_id)
  38.         half_num -= 1
  39.       end
  40.  
  41.  
  42.  
  43.             if @armors[rand_armors_id] > 1
  44.         lose_num = @armors[rand_armors_id]
  45.         rand_item_number = rand($game_party.item_number(lose_num))
  46.         @armors[rand_armors_id] -= rand_item_number.abs
  47.         half_num -= 1
  48.       else
  49.         @items.delete(rand_items_id)
  50.         half_num -= 1
  51.       end
  52.  
  53.     end
  54.   end
  55. end





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