骑马与砍杀中文站论坛

 找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

搜索
购买CDKEY 小黑盒加速器
查看: 36163|回复: 62

[分享] 【修改】战利品算法改进

  [复制链接]

12

主题

41

回帖

141

积分

见习骑士

Rank: 3

UID
116736
第纳尔
755
精华
0
互助
17
荣誉
4
贡献
0
魅力
24
注册时间
2009-2-22
鲜花(36) 鸡蛋(0)
发表于 2013-11-10 17:10:02 | 显示全部楼层 |阅读模式
本帖最后由 jppjpp 于 2013-11-11 14:47 编辑

战利品撸(loot)法改进:

一、概要
所谓战利品,指的是战斗胜利后,玩家从每个参战敌人的物品栏撸东西,1人撸1次,撸完取最贵96个,特殊战利品不在此列。
战团1.153的战利品算法基本原理就是,每次战后派一个“中间人”把敌人撸一遍,撸满96个物品结束。
潘德3.611的战利品算法有所改进,每次战后派三个“中间人”把敌人撸一遍,撸满288个物品后取最贵96个物品结束。
上述算法都有个问题:不管是撸96个还是撸288个,如果撸满了,剩下的敌人就不撸了。
而玩家的心理期望值是,打完的敌人都能撸到一条裤衩不剩才好,然后拿96个最贵的,撸不撸的出东西看运气。

下面我们实战演练说明问题:
演习男主角:初级斗士。(他当男主角不是因为长得帅,而是这家伙包里只有一双破鞋,撸没撸到一目了然)。
(点击展开 / 收起)

第一次演习:(老算法)玩家 VS “马儿踢死恐惧军团”
(点击展开 / 收起)

第二次演习:(老算法)玩家 VS “马儿踢死恐惧军团”+1500男主角
(点击展开 / 收起)

第三次演习:(新算法)玩家 VS “马儿踢死恐惧军团”+1500男主角
(点击展开 / 收起)


(点击展开 / 收起)


需要说明的是,由于troop_loot_troop的特性,老算法是能满足大多数情况下的要求的,所以玩家是否采用新算法取决于个人,感觉问题不大也没必要非得改。
另外,我们注重延展性和通用性,新算法别说几千人的战团规模,就是把整个地球人都拉上去干一架,新算法也能把他们撸到一条裤衩都不剩。



二、算法改进思路:
战利品算法有两个基本要求:1是全部撸完,2是挑最贵96件。
满足这两点,玩家就基本上没什么异议了。
按照这个思路,最机械的算法就是:撸满95件后,每撸1件进行比较,始终把最差的1件扔掉,一直到撸完。
这个最机械的撸法如下:
  1.         (troop_loot_troop, "trp_temp_troop", "被撸的人", "撸的参数"),
  2.         (troop_sort_inventory, "trp_temp_troop"),
  3.         (troop_ensure_inventory_space, "trp_temp_troop", 1),
复制代码
上面只是代码循环里面的核心部分,实际上还要把扔掉的东西暂存最后加回去,但这个最机械算法是个坑爹算法,所以没必要完善了,大概就是这个意思。
这个最机械算法其实是可以满足要求的,而且看上去很简洁,短短几个代码就搞定了,但他的效率实在是太坑爹了,坑爹就坑爹在“troop_sort_inventory”这个操作上。
粗略估算,1条“troop_sort_inventory”操作在2个物品的情况下相当于6条“assign”操作,95个物品时相当于4500×6=27000条“assign”操作,
再把“troop_sort_inventory”加入到人数循环里,5000个敌人相当于执行135000000条“assign”操作。
实际上我用这个最机械算法撸5000个敌人,大概花了5秒钟才撸出来。
虽然5秒不是很长,人少的时候玩家也感觉不到,但坑爹毕竟是坑爹,修改党毕竟也要讲节操。
所以这个最机械算法应该被抛弃。

三、新算法隆重登场:
为大家看得容易,贴的是PY代码
(点击展开 / 收起)

新算法的基本思路就是,为中间人的物品栏建立指针关系,在撸到有保存价值的物品时加入物品栏并修正指针,然后把最小值物品暂存,开始下次撸。
保证全部撸完,留96件最佳物品,因为你永远不知道下一件会撸出什么,
用指针可以避免大量的重复计算。


四、新算法TXT修改(适用所有采用原版算法的MOD)
还是修改scripts.txt,用记事本打开,找到下面:
(点击展开 / 收起)

中间红色的代码,改成下面:
(点击展开 / 收起)




~~~~~~~~~~~~~~~~~~~议论~~~~~~~~~~~~~~
(点击展开 / 收起)


end.

评分

参与人数 5第纳尔 +10 互助 +1 魅力 +4 收起 理由
丶旅荇 + 1 牛逼的要死
angeltian + 1 请不要挖坟[已过时效性的帖子]。(版规4-3)
为什逼我要昵称 + 1 原创内容,值得鼓励!
wym1989 + 1 又一位代码帝现身了
vvtonycc + 10 + 1 一些研究经费,有空时再实测详评。

查看全部评分

鲜花鸡蛋

Dyte  在2018-9-6 22:15  送朵鲜花  并说:我非常同意你的观点,送朵鲜花鼓励一下
blackerlt  在2014-1-5 19:54  送朵鲜花  并说:这样的好帖我居然才看见
左手晨曦  在2013-11-26 21:39  送朵鲜花  并说:反正看着代码我是晕了,求小白鼠
星海晦暝  在2013-11-11 19:52  送朵鲜花  并说:求小白鼠
zjb19900706  在2013-11-11 19:06  送朵鲜花  并说:技术帝,膜拜
280701275  在2013-11-11 10:06  送朵鲜花  并说:嘿嘿,以后打叛变骑士更舒服了,打精灵妈妈再也不用担心我损兵折将了
妖精的眼泪  在2013-11-10 19:16  送朵鲜花  并说:楼主有心了~~~

36

主题

704

回帖

242

积分

见习骑士

Rank: 3

UID
1187781
第纳尔
1641
精华
0
互助
4
荣誉
0
贡献
0
魅力
1
注册时间
2013-2-3
鲜花(15) 鸡蛋(0)
发表于 2013-11-10 17:28:09 | 显示全部楼层
内场前排坐等
十年生死两茫茫,喜羊羊,灰太狼。舒克贝塔,蓝猫话凄凉。纵使相逢应不识,圣斗士,美猴王。老夫聊发少年狂,治肾亏,不含糖。锦帽貂裘,洗衣用奇强。为报倾城随太守,三百年,九芝堂。夜来幽梦忽还乡,学外语,新东方。相顾无言,洗洗更健康。料得年年肠断处,找工作,富士康。

30

主题

1823

回帖

936

积分

骑士

Rank: 4Rank: 4

UID
869801
第纳尔
2724
精华
0
互助
50
荣誉
13
贡献
0
魅力
39
注册时间
2012-7-2

骑士美德之英勇勋章[杰出会员活跃勋章]

鲜花(85) 鸡蛋(0)
发表于 2013-11-10 17:53:34 | 显示全部楼层
坐等更新

1

主题

72

回帖

27

积分

随仆

Rank: 1

UID
1642857
第纳尔
280
精华
0
互助
1
荣誉
0
贡献
0
魅力
0
注册时间
2013-11-2
鲜花(0) 鸡蛋(0)
发表于 2013-11-10 17:54:47 | 显示全部楼层
不明觉厉

5

主题

79

回帖

35

积分

扈从

Rank: 2Rank: 2

UID
1589534
第纳尔
833
精华
0
互助
0
荣誉
1
贡献
0
魅力
0
注册时间
2013-10-8

元老骑士勋章霸主正版勋章

鲜花(6) 鸡蛋(0)
发表于 2013-11-10 18:02:13 | 显示全部楼层
有白老鼠吗

8

主题

22

回帖

9

积分

平民

Rank: 1

UID
1661595
第纳尔
246
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2013-11-9
鲜花(0) 鸡蛋(0)
发表于 2013-11-10 18:37:56 | 显示全部楼层
出错了,进不去了

点评

还没贴完呢,新TXT前面有个176,现在加进去了  发表于 2013-11-10 18:51

1

主题

72

回帖

27

积分

随仆

Rank: 1

UID
1642857
第纳尔
280
精华
0
互助
1
荣誉
0
贡献
0
魅力
0
注册时间
2013-11-2
鲜花(0) 鸡蛋(0)
发表于 2013-11-10 18:44:49 | 显示全部楼层
0

1

主题

72

回帖

27

积分

随仆

Rank: 1

UID
1642857
第纳尔
280
精华
0
互助
1
荣誉
0
贡献
0
魅力
0
注册时间
2013-11-2
鲜花(0) 鸡蛋(0)
发表于 2013-11-10 18:51:45 | 显示全部楼层
出错了......

点评

现在贴完了,可以检验了  发表于 2013-11-10 18:55

1

主题

72

回帖

27

积分

随仆

Rank: 1

UID
1642857
第纳尔
280
精华
0
互助
1
荣誉
0
贡献
0
魅力
0
注册时间
2013-11-2
鲜花(0) 鸡蛋(0)
发表于 2013-11-10 18:57:34 | 显示全部楼层
仔细看了,好像红色的码和我家的不一样......

点评

刚才忘记删除DEBUG语句了,现在对了,老算法第一个数是136就是对的  发表于 2013-11-10 19:06

30

主题

1823

回帖

936

积分

骑士

Rank: 4Rank: 4

UID
869801
第纳尔
2724
精华
0
互助
50
荣誉
13
贡献
0
魅力
39
注册时间
2012-7-2

骑士美德之英勇勋章[杰出会员活跃勋章]

鲜花(85) 鸡蛋(0)
发表于 2013-11-10 18:59:00 | 显示全部楼层
lz求分析为什么新算法比老算法撸出的东西多。。算法效率什么的显然跟撸出的东西的数量品质无关

点评

实际一样多,老算法受限于288个格子,多出来的就不撸了,troop_loot_troop是一样的  发表于 2013-11-10 19:03

1

主题

72

回帖

27

积分

随仆

Rank: 1

UID
1642857
第纳尔
280
精华
0
互助
1
荣誉
0
贡献
0
魅力
0
注册时间
2013-11-2
鲜花(0) 鸡蛋(0)
发表于 2013-11-10 19:00:36 | 显示全部楼层
真的?我再去试试

1

主题

72

回帖

27

积分

随仆

Rank: 1

UID
1642857
第纳尔
280
精华
0
互助
1
荣誉
0
贡献
0
魅力
0
注册时间
2013-11-2
鲜花(0) 鸡蛋(0)
发表于 2013-11-10 19:03:15 | 显示全部楼层
哦哦,进去了

36

主题

704

回帖

242

积分

见习骑士

Rank: 3

UID
1187781
第纳尔
1641
精华
0
互助
4
荣誉
0
贡献
0
魅力
1
注册时间
2013-2-3
鲜花(15) 鸡蛋(0)
发表于 2013-11-10 19:09:57 | 显示全部楼层
这得什么规模的战斗效果会比较明显呢

点评

战利品总数超过288就有,不过troop_loot_troop的特性使这种情况发生概率降低,以少胜多时比较明显  发表于 2013-11-11 10:29
十年生死两茫茫,喜羊羊,灰太狼。舒克贝塔,蓝猫话凄凉。纵使相逢应不识,圣斗士,美猴王。老夫聊发少年狂,治肾亏,不含糖。锦帽貂裘,洗衣用奇强。为报倾城随太守,三百年,九芝堂。夜来幽梦忽还乡,学外语,新东方。相顾无言,洗洗更健康。料得年年肠断处,找工作,富士康。

3

主题

280

回帖

95

积分

扈从

Rank: 2Rank: 2

UID
1198444
第纳尔
351
精华
0
互助
0
荣誉
1
贡献
0
魅力
4
注册时间
2013-2-17
QQ
鲜花(2) 鸡蛋(0)
发表于 2013-11-10 19:16:04 | 显示全部楼层
完全的看不懂啊!不过还是感谢楼主~~~楼主幸苦了~~~

15

主题

72

回帖

26

积分

随仆

Rank: 1

UID
1583589
第纳尔
463
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2013-10-4
鲜花(2) 鸡蛋(0)
发表于 2013-11-10 19:22:03 | 显示全部楼层
不明觉厉   话说这个可以加到下个版本嘛

15

主题

910

回帖

758

积分

骑士

Rank: 4Rank: 4

UID
1313442
第纳尔
4102
精华
0
互助
52
荣誉
22
贡献
0
魅力
64
注册时间
2013-4-26
鲜花(287) 鸡蛋(0)
发表于 2013-11-10 19:38:27 | 显示全部楼层
同样的方法我已经在G281Plus里面使用了...虽然没有验证过...

点评

I`m waiting~~~~  发表于 2013-11-11 12:22
对,玩多了才发现,一般感觉不到有  发表于 2013-11-11 10:30

152

主题

880

回帖

310

积分

见习骑士

Rank: 3

UID
1360739
第纳尔
1920
精华
0
互助
0
荣誉
0
贡献
0
魅力
9
注册时间
2013-5-20

战团正版勋章拿破仑正版勋章

鲜花(21) 鸡蛋(0)
发表于 2013-11-10 19:58:54 | 显示全部楼层
是不是只要看见敌人身上穿的好东西,打败他就基本能爆出来了??

点评

只能让他爆出了不被挤掉,爆不爆看RP  发表于 2013-11-11 10:32

30

主题

1823

回帖

936

积分

骑士

Rank: 4Rank: 4

UID
869801
第纳尔
2724
精华
0
互助
50
荣誉
13
贡献
0
魅力
39
注册时间
2012-7-2

骑士美德之英勇勋章[杰出会员活跃勋章]

鲜花(85) 鸡蛋(0)
发表于 2013-11-10 20:14:26 | 显示全部楼层
总算搞明白了,LZ辛苦

63

主题

5847

回帖

2743

积分

男爵[离任版主]

圣殿骑士团[KT]
战团ID:KT_vvtonycc

  兵器匠人

Rank: 5Rank: 5Rank: 5

UID
10956
第纳尔
30094
精华
0
互助
160
荣誉
17
贡献
1090
魅力
827
注册时间
2007-3-2

骑士美德之忠诚勋章[杰出会员精华勋章]骑士美德之英勇勋章[杰出会员活跃勋章]骑士美德之仁慈勋章[杰出会员互助勋章]元老骑士勋章战团正版勋章骑士美德之奉献勋章骑士美德之高贵勋章骑士美德之正义勋章[杰出会员荣誉勋章]维京征服正版勋章

鲜花(252) 鸡蛋(0)
发表于 2013-11-10 20:21:44 | 显示全部楼层
本帖最后由 vvtonycc 于 2013-11-10 20:47 编辑

我觉得问题点在于为什么从初级斗士开始撸,等级从低到高?还是刚好随机到这个兵种?
为了避免卡顿应该要降低撸的次数,如果可以做到先随机之后再撸的话相信不是都那破鞋子。

如果所撸的对象兵种本身每次在撸之前就先随机了,那撸96次跟288次结果都是差不多的了。
撸个战利品等个5秒钟我实在接受不了。

虽然在实现上有数学的计算上的有实际机率的问题。

这样说吧
我感觉站在游戏性的角度上看,撸出来的东西有好的也有破烂的,
这样一对比之下好的战利品才令人惊喜,如果全部都撸一遍,一旦高级兵种量多过96,出来就全是他的装备了,通常高级兵的装备较具有价值。
玩家的利益获得的是高了,不过那样的战利品也变得没什么价值了。

点评

几个月前我就发过帖子潘德千人大战奖励都是坑,版主说已经参照R大改了,原来是参照三年前的288人上限……  发表于 2013-11-16 23:12
跟生成party时的id有关,生成早的靠前。实际上最先考虑的按兵种撸,借用156SLOT暂存撸数即可,但这么撸主观性太强,通用性还是受限,特别是现在兵种越来越多  发表于 2013-11-11 10:47

949

主题

1万

回帖

1万

积分

侯爵[超级版主]

枢机主教

Rank: 8Rank: 8Rank: 8Rank: 8

UID
45575
第纳尔
41708
精华
20
互助
1060
荣誉
584
贡献
1796
魅力
1700
注册时间
2007-10-24

骑砍中文站APP会员勋章元老骑士勋章原版正版勋章战团正版勋章火与剑正版勋章拿破仑正版勋章维京征服正版勋章骑士美德之英勇勋章[杰出会员活跃勋章]骑士美德之大无畏勋章[杰出会员高级活跃勋章]骑士美德之仁慈勋章[杰出会员互助勋章]骑士美德之侠义勋章[杰出会员高级互助勋章]骑士美德之谦恭勋章[杰出会员财富勋章]骑士美德之公正勋章[杰出会员高级财富勋章]骑士美德之忠诚勋章[杰出会员精华勋章]骑士美德之正义勋章[杰出会员荣誉勋章]骑士美德之荣耀勋章[杰出会员高级荣誉勋章]骑士美德之圣洁勋章[杰出会员高级精华勋章]杰出汉化小组成员勋章骑士美德之慷慨勋章骑士荣誉之原版汉化勋章骑士荣誉之战团汉化勋章骑士美德之高贵勋章骑士美德之奉献勋章汉匈决战正版勋章

鲜花(2609) 鸡蛋(8)
发表于 2013-11-10 20:23:32 | 显示全部楼层
本帖最后由 rubik 于 2013-11-10 20:38 编辑

潘德的预言没有与时俱进啊,扒的是我3年前的坟:
http://bbs.mountblade.com.cn/forum.php?mod=viewthread&tid=142747

我的MOD关于战利品早就改进了,战后的战利品栏从96格扩展到960格了,也就是最多10个战利品库。 每个战利品库都可以单独查看,也就是每件战利品都可以亲自过目。 关键是,所有的战利品都是按价格依次排列到所有的战利品库中。而且不存在效率问题,是瞬间生成并拍好序的。 再配合NPC自动拾取战利品和NPC自动出售战利品,几乎保证每一件战利品都不会被遗漏或者被迫放弃。

点评

果然R大才是正主!!!壮哉我R大。。。  发表于 2013-11-11 12:21
对,960格够用了,原来潘德这块用的也是你的代码啊  发表于 2013-11-11 10:50

鲜花鸡蛋

铁甲依然在!  在2022-12-1 17:26  送朵鲜花  并说:我非常同意你的观点,送朵鲜花鼓励一下
zedlike  在2013-11-12 08:24  送朵鲜花  并说:拔了3年前的坟。我表示潘德预言了这一切,支持技术流,力挺R大
库吉特重步  在2013-11-10 22:14  送朵鲜花  并说:太帅气了,帖子相见恨晚,我一直奇怪为什么领军打丝袜这么容易出板甲,其他mod全是新军装备,原来原因在这里
rubik

99

主题

3293

回帖

1018

积分

骑士

Rank: 4Rank: 4

UID
105128
第纳尔
11737
精华
0
互助
0
荣誉
0
贡献
0
魅力
30
注册时间
2008-12-21

骑士美德之忠诚勋章[杰出会员精华勋章]原版正版勋章战团正版勋章元老骑士勋章

QQ
鲜花(17) 鸡蛋(0)
发表于 2013-11-11 10:07:36 | 显示全部楼层
本帖最后由 280701275 于 2013-11-11 10:09 编辑
greole 发表于 2013-11-10 19:38
同样的方法我已经在G281Plus里面使用了...虽然没有验证过...

居然整合了,坐等下个月G2.91Plus。是可以掠夺数千人的话我下次就不修改了
I am boy!

106

主题

4941

回帖

1580

积分

骑士长

Rank: 5Rank: 5Rank: 5

UID
1128310
第纳尔
1725
精华
0
互助
11
荣誉
1
贡献
0
魅力
50
注册时间
2012-12-23

骑士美德之英勇勋章[杰出会员活跃勋章]

鲜花(111) 鸡蛋(4)
发表于 2013-11-11 10:22:05 | 显示全部楼层
可惜啊,物品无法叠加,要不然就发达了。
永夜将至,
我将开始奋战,
至死方休。
我愿化身破晓之光,
划破天空,
唤醒沉睡的英魂,
只为这片热爱的故土,
我将成为寒夜中的利剑。
挥洒炽热的鲜血。
燃尽黑暗。
只为背后守望的亲人。
我将舍弃懦弱,
舍弃思念,
舍弃荣辱,
舍弃生命,
守护于此。
今夜如此,
夜夜皆然。

25

主题

1万

回帖

5505

积分

男爵[离任版主]

自由骑士
战团ID:finnel

Rank: 5Rank: 5Rank: 5

UID
777867
第纳尔
25072
精华
0
互助
147
荣誉
19
贡献
1260
魅力
1002
注册时间
2012-5-3

原版正版勋章战团正版勋章火与剑正版勋章拿破仑正版勋章维京征服正版勋章骑士美德之英勇勋章[杰出会员活跃勋章]骑士美德之大无畏勋章[杰出会员高级活跃勋章]骑士美德之仁慈勋章[杰出会员互助勋章]骑士美德之忠诚勋章[杰出会员精华勋章]骑士美德之正义勋章[杰出会员荣誉勋章]末日浩劫勋章骑士美德之奉献勋章骑士美德之高贵勋章骑砍中文站微博会员勋章骑士美德之谦恭勋章[杰出会员财富勋章]元老骑士勋章汉匈决战正版勋章霸主正版勋章骑士美德之公正勋章[杰出会员高级财富勋章]

鲜花(727) 鸡蛋(7)
发表于 2013-11-11 10:29:24 | 显示全部楼层
看了看日期,竟然不是坟


18

主题

187

回帖

62

积分

扈从

Rank: 2Rank: 2

UID
1584903
第纳尔
446
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2013-10-5
QQ
鲜花(10) 鸡蛋(0)
发表于 2013-11-11 12:31:05 | 显示全部楼层
LZ好人,但数据不一样也,我全部复制查找找不到也,

0

主题

304

回帖

92

积分

扈从

Rank: 2Rank: 2

UID
1223697
第纳尔
1391
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2013-3-9
鲜花(4) 鸡蛋(0)
发表于 2013-11-11 14:29:26 | 显示全部楼层
LZ我咱就看不懂呢

75

主题

239

回帖

104

积分

见习骑士

Rank: 3

UID
168408
第纳尔
1776
精华
0
互助
0
荣誉
1
贡献
0
魅力
8
注册时间
2009-11-16

原版正版勋章战团正版勋章

鲜花(0) 鸡蛋(0)
发表于 2013-11-11 17:30:07 | 显示全部楼层
要重开游戏不?

9

主题

72

回帖

29

积分

扈从

Rank: 2Rank: 2

UID
1566543
第纳尔
341
精华
0
互助
1
荣誉
0
贡献
0
魅力
0
注册时间
2013-9-23
鲜花(1) 鸡蛋(0)
发表于 2013-11-11 18:25:46 | 显示全部楼层
我靠我是笑着看完的……楼主文风好幽默

2

主题

17

回帖

6

积分

平民

Rank: 1

UID
384288
第纳尔
189
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2011-2-26
鲜花(0) 鸡蛋(0)
发表于 2013-11-16 18:38:51 | 显示全部楼层
实验一下 看着很好的样子 每次对方队伍里混进了难民 农民 农妇之类的东西 最后战利品里都有破菜刀啊 破鞋啊 破衣服之类的 坑死了

4

主题

16

回帖

6

积分

平民

Rank: 1

UID
761972
第纳尔
234
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2012-4-23
鲜花(0) 鸡蛋(0)
发表于 2013-11-16 19:25:31 | 显示全部楼层
不明觉厉,真心给力!!!  解决了好久的疑惑....

36

主题

90

回帖

38

积分

扈从

Rank: 2Rank: 2

UID
1640196
第纳尔
831
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2013-10-31
鲜花(0) 鸡蛋(0)
发表于 2013-11-26 00:58:59 | 显示全部楼层
为什么我用了新算法之后战利品比以前少了的?还是我自己带兵数量太多了呢?
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

Archiver|手机版|小黑屋|骑马与砍杀中文站

GMT+8, 2024-12-19 18:11 , Processed in 0.193621 second(s), 62 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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