百科问答小站 logo
百科问答小站 font logo



如何看待英雄联盟职业选手乐言在峡谷之巅利用新赛季更新后存在的 BUG 上分? 第1页

  

user avatar   hao-ji-liao-3 网友的相关建议: 
      

指路 @敲门哥 大佬的回答

该回答解释了bug数来源以及野怪死亡原因,是我目前觉得最靠谱的说法。

以下为原回答:


啊,-2147483648,如此熟悉的数据溢出~

斗胆提一嘴技术方面的问题,只给大家介绍一下这个数据的来历,权当抛砖引玉,至于bug产生的具体原因,还是要靠官方或者其他大佬来解释了。

这种bug在计算机程序中其实相当常见了,一般认为是int类型溢出导致的。

先解释一下数据在计算机中的存储形式,大家都知道,任何数据在计算机里其实都是0、1、0、1这样的二进制数。

int类型也不例外,int共有32位数据,而int分为usigned int(无符号数)和signed int(有符号数)两种形式。

这个bug数应该是和signed int有关,我们知道signed int一共有32位,每一位都存放0或1这种二进制数,而它的最高位存放的是“标志位”,如果最高位是0,那么代表这个数是非负数,比如

01111111 11111111 11111111 11111111

它的最高位是0,代表它就是一个非负数,剩下的数据就和它的大小有关啦。

这个数,刚好就是signed int能够表示的最大数据,也就是高赞提到的INT_MAX,没有更大的吗?如果我们给这个数加1,把它变成

10000000 00000000 00000000 00000000

会发生什么呢?会比INT_MAX更大吗?

不,这是signed int能表示的最小的数,INT_MIN,也就是本次事件中出现的bug数了,相信计算机专业或者很多游戏玩家没少见过这个数字。

实际上产生“数据溢出”的原因有很多,我不太能确定这个bug数具体产生原因。

高赞回答认为是将伤害初始化为了INT_MIN,也有知友认为是INT_MAX+1实现了溢出。

比较认可的说法是:在对野怪伤害计算逻辑层面,数据的读取或存储发生了错误。因为leeya对野怪而非英雄产生bug伤害,而bug产生原因又是拖动打野刀位置造成的,这个过程中就可能导致“指针”指向错误,比如在写数据的时候指向了空地址,进而导致数据错误。打个比方,我用1L水倒进500mL的杯子肯定要溢出嘛,更何况倒入0mL的杯子。

当然,具体原因可能需要官方或者相关专业的大佬来解释,本文如有解释错误或不到位的地方,还望批评指正。


user avatar   qiao-men-ge-36 网友的相关建议: 
      

不做杠精,只为更好的讨论问题,重新更改一下回答吧。

下面来讲讲我的理解。

一、先说为啥是-2147483648。通俗点,打野刀卖了,这个地址本来有东西的,计算打野刀伤害的时候发现打野刀没了,指向为空,空指针了。需要的打野刀伤害的地址没了,又必须输出一个地址保证系统不崩溃。地址一般会用16进制表示,而常见的数据分配地址就有0x80000000起始到0xFFFFFFFF的区段。本来要去正确的地址比如0x12345678找到对应的数值,现在没有这个地址了。函数栈指针根据这段程序里面的局部变量的内存分配而开始找,就返回了第一个内存地址0x80000000

(当然例如windows系统内存指针出错会返回0xFFFFFFFF也就是常用的-1,其实作为错误返回啥都不重要正常情况都用不上,主要是防止系统崩溃而已)。最可能的毛病就在于直接把这个地址作为伤害变量保存使用了,转换成10进制那伤害就是-2147483648。

其他高赞回答认为是把变量初始化成INT_MIN,这个绝对不可能的,INT_MIN在运算上非常的复杂了,随便加减都同样是-2147483648这样的庞大数字更不要说乘除了。计算用变量初始化最常用的觉对是0或者0.0。

其次INT_MIN对于编译器而言是个表达式(-INT_MAX -1),你说INT_MAX作为初始我还能勉强接受。来看C++底层中的定义

#define INT_MAX 2147483647

#define INT_MIN (-INT_MAX - 1)

32位的INT类型就没有-2147483648这个数,INT_MIN就是用INT_MAX表示的,用INT_MIN还不如直接用INT_MAX呢,不能因为刚好这次bug数值是INT_MIN就强加给他意义。

二、为啥能秒杀不是加血。其实不是没加血,恰恰是加了超大量的血导致生命值数值溢出,野怪剩下的正的血量变成负的血量被判定死的 。可能有人要问那为啥不加成满血,因为是看相加后最后得出的数值,如果大于血量,野怪保持满血,但相加后溢出为负值当然不会满血反而被判定死亡。

例子,如果打野怪伤害100,野怪血量剩50就会减去100变成-50系统判定野怪死亡。蓝色打野刀灼烧伤害-2147483648,然后野怪减去-2147483648血量负负得正变成血量加2147483648,野怪如果还有100血,加完溢出变成负数,判定死亡

总结:这次的bug是给野怪加血太多,野怪剩余生命溢出成负数,被直接判定死亡而不是血量为负的很多死亡。


user avatar   xue-yan-bo-99 网友的相关建议: 
      

不行了,不行了,一大早上要笑死在乐爷的事件里了。

要我说,乐爷就是厉害。场外节目效果,一个比一个多。一个比一个带劲。

之前乐爷出的事,我觉得多少能理解一下。毕竟是没啥经历的小屁孩。这次就不一样了。这次我看完,确认了,乐爷,应该是.......................

先给大家看看这个BUG的触发机制。

看到了吗,这个BUG不是说无意之间的操作就可以做到的。哪个正经人会在回家最后一秒按第五个惩戒,然后到家了迅速卖出打野刀呢?这不扯淡吗?那都是BUG达人,没事天天就研究这玩意。然后在小规模传出来。一般人是不知道的。我不清楚乐爷是怎么知道的。但是我肯定的是,乐爷一定是私底下就操练过的。不为别的,就新版的装备界面,实在太难用了。

然后乐爷也不知道咋了,自己偷偷玩,还不满足,就要在排位里玩,还是峡谷的排位,还是,哈哈哈哈,还自己发微博放视频。哈哈哈哈哈哈哈哈哈。

你说你知道了,你就偷偷的训练模式爽一下,然后录个视频。cue一下官方,说,我,乐言,职业选手,发现了一个重要的bug,我在bug没有传出去之前,就发现了,作为一位热爱lol的说普通也不普通,说不普通也有点普通的职业选手。我战斗在第一线,坚定不移的维护游戏环境,为lol出一份力所能及的事。然后乐言的粉丝们,转发一下。通稿在写一写。说一下这种正能量的行为。这,妥妥的流量啊。

啊,不,我们乐爷是经历过大场面的。真正的男人,从来不偷偷摸摸。要用,就正大光明的用。要死,也得是站着。

是的,他做到了。他成功了,他将会在载入lol的史册,在每一代的召唤师中口口相传。

放心吧,乐爷,即便哪一天,你不在召唤师峡谷了,但是,召唤师峡谷里,永远流传着你的故事。


user avatar   shi-ren-69-74 网友的相关建议: 
      

给不了解状况的兄弟们科普一下,乐言排位卡了个bug,一个普攻秒掉中立野怪,无论大龙小龙先锋远古龙都直接满血秒杀。那场对局对面有个艾克玩家,叫漫天星斗。恶心到艾克以后,艾克回去看了遍录像学习了一下如何卡的bug,然后就开始去打排位,撞车碰到姿态,圣枪哥双排,自家青蛙锤石辅助(感觉像是故意去撞车姿态的),在姿态这场对局乱秒大龙远古龙,青蛙直接挂机想投降,发起投降好像有人没点,感觉艾克这边确实有几个直接不想玩了,后来到结算界面,艾克开始说是乐言先卡bug,他想搞乐言,所以才学的,说号可以不要了,但要搞乐言。姿态已经通知官方了,乐言估计走远了。虎牙逍遥后来在直播间也放了乐言卡bug那局录像,基本上确定是故意卡的,因为乐言一直再排基本没停过也差不多排除朋友上的号。至于我怎么看,我乐爷风评一向不好,这次大概率洗不清了,官方估计也会处理,反正我等个至死不渝。

后续来了后续来了,罚款五万,罚的俱乐部???禁赛全明星????我乐爷能进全明星吗?禁赛德杯?我乐爷打这种级别的联赛吗?春季赛就禁两场???包弟给你磕头了,把乐爷参加s11全球总决赛的权利禁了吧。

还有小伙伴爆的消息,来自艾克撞车姿态圣枪哥对局。

各位看官看着就图一乐就行了,包括我说给乐言s11世界总决赛禁了也是,先不说能不能打进世界赛,打进世界赛还得再打总决赛才给他禁了啊。




  

相关话题

  你觉得《英雄联盟》离彻底跌落还有多久? 
  在竞技游戏中「炸鱼」到底是弱肉强食还是道德问题? 
  你能想象出ai打dota会有哪些匪夷所思的操作? 
  永恩比亚索强在哪里? 
  dota2是不是steam更新最频繁的有影响力的大型游戏? 
  如何看待4月6号JDG赢下RNG? 
  LOL 史上最强的大招机制你认为是什么? 
  《英雄联盟》手游能碾压《王者荣耀》吗? 
  有没有人体验过《英雄联盟手游》但没继续玩下去?是什么原因弃坑了? 
  王者荣耀「长安赛年」的哪些细节能感受到当年的盛唐风貌? 

前一个讨论
为什么开水烫死一只猫会被骂,烫死一只老鼠会被说大快人心?
下一个讨论
老婆再次因吃饭时一点小举动和我妈杠上了,每年都会来那么几次,烦透了,我很失落也很失望,是我错了吗?





© 2024-12-22 - tinynew.org. All Rights Reserved.
© 2024-12-22 - tinynew.org. 保留所有权利