[请益] godot做战棋防SL刷机率作法?

楼主: a159371153 (小白)   2025-11-28 01:33:56
以下是我问Gemini 3 pro (付费)的全文,完全看不懂Gemini在说什么,请问Gemini说的
真的是现在战棋游戏的做法吗? 有人能解释Gemini说的到底是什么意思…
<<<<我>>>>
我想跟你彻彻底底地讨论用godot做战棋游戏的这个问题,问题如下: 我遇到重大问题,
我发现可以重复刷命中率或爆击率耶,攻击后若未命中或未爆击,直接右键重来一次,总
有一次会命中或者爆击,这不对吧? 怎可以这样刷机率?
攻击后仍然要可以悔棋,但不能刷机率!
正确做法是在显示攻击预测视窗时就“决定命中与爆击结果”,悔棋也无法改变。(例如
算好会命中,那么打过去就必命中;算好会爆击,打过去就必爆击,也就是提前计算结果
了,但不要在攻击预测视窗显示这个偷偷计算的结果)ꀊ
应该要用“比对种子”的方法,也就是在显示攻击预测视窗时,其实早就算好结果了,然
后产生独一无二的种子,同时储存这次的“攻击预测视窗的数据”与“命中与爆击的注定
结果”到“暂存区”,若某次攻击的种子与这次完全相同,则把该种子在暂存区的“攻击
预测视窗的数据”与“命中与爆击的注定结果”调用出来取代该次的“攻击预测视窗的数
据”与“命中与爆击的注定结果”。ꀊ
而种子就利用这些数据“第几回合、攻击者ID、攻击者座标、被攻击者ID、被攻击者座标
、技能ID、闪避命中爆击公式的相关参数”来生成,种子要独一无二,且要确定数据相同
时算出来的种子必相同。(闪避命中爆击公式的相关参数如SKL、LUK......等)
而这个“暂存区”在我测试时要永久存在,但关闭测试视窗时暂存区要清除。单场战斗(
不是单次攻击,是单场战斗)要保留这个暂存区是为了设计“真正的悔棋”,就是可以跨
回合悔棋的机制,就算是跨回合悔棋,用完完全全相同数据的方式攻击,仍然会产生相同
的种子,导致攻击结果与之前相同。 这样的想法是对的吗?
作者: zxc9764315 (Norus)   2025-11-28 02:29:00
你先查一下随机算法,应该就能理解何谓固定种子
楼主: a159371153 (小白)   2025-11-28 03:48:00
但gemini说的很奇怪,什么用那些数据计算出一个1-100的数,然后大于命中率就打不中,小于命中率就打得中,完全不是常见的那种种子…常见的种子不是一串很长的数字吗? 所以我才会觉得gemini说的这套很怪
作者: wangm4a1 (水兵)   2025-11-28 07:40:00
没看到1-100 还是你指0-1.0 种子它是用hash
作者: yukari8 (林檎)   2025-11-28 10:38:00
是用种子去算数字吧 种子固定不变+其他参数去算0-1.0的数字来判断有没有命中 因为种子固定 如果悔棋后又做出一样的操作 全部参数都会一样所以会算出同样数字产生同样结果
作者: wulouise (在线上!=在电脑前)   2025-11-28 12:17:00
同seed, rand结果一样,命中率90, 小于90都中也没错
作者: BSpowerx (B.S)   2025-11-28 13:07:00
根本设计上战棋就不该搞爆击/miss这种赛机率的东西了= =
作者: NDark (溺于黑暗)   2025-11-28 16:52:00
XCOM确实被诟病95% miss这种东西
楼主: a159371153 (小白)   2025-11-28 17:24:00
那怎不做种子就好,然后比对种子就好,为何还要特地把它转换成1-100的数? 然后把这个数跟命中率比对的这点是我最无法理解的东西,用一堆跟命中率无关的数据(例如座标)算出来的数字,跟命中率根本是不同的东西,怎可以比? 就好像拿公斤跟公尺比大小一样
作者: LPH66 (-6.2598534e+18f)   2025-11-29 12:08:00
你把他回你的东西全部混在一起了他不只回你种子设计还回你怎么做判定然后你以为全部都是在讲种子的事

Links booklink

Contact Us: admin [ a t ] ucptt.com