设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1790|回复: 2
打印 上一主题 下一主题

[已经解决] 怎么做可以随机丢掉背包内一半的物品

[复制链接]

Lv4.逐梦者

梦石
0
星屑
12157
在线时间
4435 小时
注册时间
2014-4-11
帖子
5955

开拓者

跳转到指定楼层
1
发表于 2016-4-7 13:44:22 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
想做角色死亡后就损失掉背包一半的物品和一半的金钱。

钱做好了。

物品感觉挺麻烦的。

身上穿着的不丢。
背包里的随机丢掉一半,背包里的不管武器防具物品都一样。

评分

参与人数 1星屑 +35 收起 理由
RyanBern + 35 手动认可奖励

查看全部评分

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9397
在线时间
2748 小时
注册时间
2008-9-5
帖子
3543

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

2
发表于 2016-4-7 14:59:00 | 只看该作者
采集了背包所有物品数量的一半然后逐个随机减掉一半……
不知道算法是不是对的……有坑再说……
使用方法是在事件里用【脚本】输入:
  1. $game_party.lost_half_items
复制代码
代码放在【Game_Party】下面

评分

参与人数 1梦石 +1 收起 理由
RyanBern + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
12157
在线时间
4435 小时
注册时间
2014-4-11
帖子
5955

开拓者

3
 楼主| 发表于 2016-4-7 20:48:02 | 只看该作者
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

点评

事实上意义是一样的……嘛……不解释了…………照着乃能理解的方式肝~  发表于 2016-4-8 13:18
这样更随机一些  发表于 2016-4-7 22:50
为啥这样改,窝上面那样写一句包含了武器防具→_→  发表于 2016-4-7 21:22
我傻了,ABS是绝对值  发表于 2016-4-7 21:18
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-30 08:33

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表