风色幻想 发表于 2024-8-5 17:50:59

关于随机数的问题(R or T)

!!VRy1:S0 R3;//感觉像伪随机
!!VRy1:S0 T3;//感觉像真随机
以下脚本用到随机数

**为木精灵、大精灵、三种幻影射手添加随机连射(变量0-1)
!?BG&1000;
!!BG:Q?y1 N?y2 E?y3 A?y4;         //y4为当前堆栈动作编号,y1为所属
**BHy1:N?y5; //当前攻方英雄编号
**HEy1:E?y6/?y7/2; //y6当前攻方英雄级别off
**VRy8&y7<11:S2;//每10级+1攻击次数off
!!VRy9&y4=7:S0 T3;//规则-随机化
!!FU9999993&y4=7:Py2/y3/y9;//对全体英雄生效(x3=1,近战y4=6)
;
!?FU9999993;
**A堆栈射击B堆栈且产生伤害(箭塔射击除外)
**x1=堆栈号
**x2=目标堆栈号
**x3=射击次数(需>0)
!!FU|x1<0/x1>41/x2<0/x2>41/x1=x2/x3<1:E;[#0]
!!BMx1:T?y-1 N?y-2;   [#1]
!!BMx2:T?y-11 N?y-12;
!!FU|y-1<0/y-11<0/y-2<1/y-12<1/y-1=149/y-11=149:E;//149为箭塔
*!FU&y-1>144/y-1<150:E; [排除战争机器]
*!FU&y-1<>18/y-1<>19/y-1<>137/y-1<>170/y-1<>171:E;//规则-木精灵、幻影射手等
*!FU&y-1=19/x3=1:E;//规则-大精灵少一发
!!BMx1:F?i U3/?j;   [标志与弹药]
!!VRi:&4;
!!FU|i<>4/j<1:E;      [非箭手或无弹药(若无射击动作会崩溃)]
!!UN:C6919200/4/?y-0; [内存]
!!VRy-3:Sx1 *1352 +21708 +y-0;
!!VRy-13:Sx2 *1352 +21708 +y-0;
!!SN:E4453920/2/y-3/y-13;      [射击且伤害]
**BMx1:U3/d-1;                [额外减少弹药?]
!!VRx3:-1;
!!SN&x3>0:G0;               [循环代码]






**战争祭司近战连击(变量2-3)
!?BG&1000;
!!BG:N?y20 E?y21 A?y22;
!!VRy23:S0 T2;
!!FU9999994&y22=6:Py20/y21/y23;
;
!?FU9999994;
**x1=堆栈号
**x2=目标堆栈号
**x3=击次数(需>0)
!!FU|x1<0/x1>41/x2<0/x2>41/x1=x2/x3<1:E;[#0]
!!BMx1:T?y-21 N?y-22;   [#1]
!!BMx2:T?y-31 N?y-32;
!!FU|y-21<0/y-31<0/y-22<1/y-32<1:E;
*!FU&y-21>144/y-21<150:E; [排除战争机器]
!!VRy-21:S169;
*!FU&y-21<>169:E;
!!BMx1:P?y-23I?j; 必要带I?j
!!BMx2:P?y-33;
VRy-24:Sy-23 :17 +1;
!!VRy-34:Sy-33 :17 +1;
!!VRy-30&y-24=y-34:S1;
!!VRy-30&y-24<y-34:S2;
!!VRy-30&y-24>y-34:S0;
!!UN:C6919200/4/?y-20; [内存]
!!VRy-25:Sx1 *1352 +21708 +y-20;
!!VRy-35:Sx2 *1352 +21708 +y-20;
!!SN:E4461360/2/y-25/y-35/y-30;      [击且伤害]
!!VRx3:-1;
!!SN&x3>0:G0;               [循环代码]






!#MA&v7183=1:X120/?i;
!#VRi&v7183=1:|16;精神元素有生命
!#VRi&v7183=1:|131072;精神元素无士气
!#MA&v7183=1:X120/i;
!#MA&v7183=1:X121/?i;
!#VRi&v7183=1:|131088;魔法元素有生命且无士气
!#MA&v7183=1:X121/i;
**精神/魔法元素战斗瞬间无生命v7225(变量4)
**比如给梦魇上连击,它在不贴身攻击时先算额外攻击的,在最后一击时才贴身,额外攻击既不是6肉搏也不是7射击
!?BG0;
!!BG:A?y40 E?y41; 动作A、所属方Q、英雄H、动作堆栈N、目标堆栈E
!!BMy41&y40=6:T?y42;       检测受攻击怪物的编号
!!VRy42&y42=121:-1;
!!BMy41&y42=120/y40=6:F?y43;
!!VRy43&y42=120/y40=6:&16;      检查受攻击者是否为活体
!!VRv7225&y42=120/y43>0/y40=6:Sy41; 保存受攻击方堆栈
!!BMv7225&y42=120/y43>0/y40=6:Fd-16; 去除生命体特性
!?BG1;
!!BMv7225&y41>-1:Fd16;添加生命特性

风色幻想 发表于 2024-8-5 17:57:30

感觉找到了任意生物用近战动画直接射击的思路:
1.赋予射击特性与弹药,考虑近战伤害不减;
2.赋予额外的射击次数,额外射击时还是采用近战的动作并且减弹药,而额外近战攻击只会停在原地,不会真的贴身肉搏;
3.由于额外攻击完成才进行正常攻击,在额外攻击完成后想办法停止正常攻击,就不会触发没动画的错误吧?

Archer30 发表于 2024-8-5 23:05:10

VR:T还是VR:R:
在默认的英雄无敌3中,只有伪随机的做法(VR:R)。VR:T是真随机(以当前时间为随机种子)。绝大多数情况下,出于兼容性考虑,都应该用VR:R,但如果是不涉及多人游戏的脚本,VR:T也能接受

任意生物用近战动画直接射击的解决方案楼主的想法有点新颖,不妨直接测试一下告诉我们答案。

风色幻想 发表于 2024-8-7 22:28:12

Archer30 发表于 2024-8-5 23:05
VR:T还是VR:R:
在默认的英雄无敌3中,只有伪随机的做法(VR:R)。VR:T是真随机(以当前时间为随机种子) ...

可我不会erm;sw;
页: [1]
查看完整版本: 关于随机数的问题(R or T)

捐赠