铁血丹心

 找回密码
 我要成为铁血侠客
搜索
查看: 3731|回复: 0

[通用] 简单的50指令事例——随机遇怪

[复制链接]
发表于 2009-3-7 00:16 | 显示全部楼层 |阅读模式

马上注册,结交更多侠友!

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x
随机一般都用到50指令中的38指令:随机数

下面看一个简单随机遇怪的实例来用上几个50指令

要实现的效果:遇到事件后,有一定的几率遇到怪,不过如果有某人在队伍,则改变几率
假设遇怪几率50%,队伍中有80号人物则改为20%

事件如下:
;Kdefnum=15
  50 38 0 100 1000 0 0 0         ;  50(32):随机数 [X1000]=Random(100)
  50 3 0 0 1000 1000 1 0         ;  50(32):四则运算 [X1000]=[X1000]+1
;先制造一个1~100的随机数
  16 80 14 0                      ;  16(10):队伍是否有[郭襄]是则跳转到:Label0
  50 4 0 1 1000 50 0 0           ;  50(32):变量判断 If[X1000]<=50 then JMP=0 else JMP=1
  36 256 16 0                    ;  36(24):跳转变量JMP是否为0是则跳转到:Label1
  0                              ;  0(0)::空语句(清屏)
  7                              ;  7(7):无条件返回
;有80号人则重新判断是否遇怪,没有则直接判断是否遇怪,如果小于50则遇怪(也就是50%几率)
;:Label0
  50 4 0 1 1000 20 0 0           ;  50(32):变量判断 If[X1000]<=20 then JMP=0 else JMP=1
  36 256 2 0                     ;  36(24):跳转变量JMP是否为0是则跳转到:Label2
  0                              ;  0(0)::空语句(清屏)
  7                              ;  7(7):无条件返回
;有80号人了,重新判断,小于20则遇怪(20%几率);:Label2
;:Label1
  1 0 0 0                        ;  1(1):[小虾米]说:你遇怪了
;(遇怪提示,自行修改,无关紧要)  
  0                              ;  0(0)::空语句(清屏)
  6 0 4 0 0                      ;  6(6):战斗[20]是则跳转到:Label3
  0                              ;  0(0)::空语句(清屏)
  15 0                           ;  15(F):战斗失败,死亡
  7                              ;  7(7):无条件返回
;:Label3
  0                              ;  0(0)::空语句(清屏)
  13                             ;  13(D):重新显示场景
  0                              ;  0(0)::空语句(清屏)
  -1                             ;  -1(FFFF):事件结束
;遇敌后用原版指令操纵事件




其实事件还可以如此优化,利用调用事件
方法:调用事件(几率,队友,有队友改变的几率,战斗编号)

事件如下:
;Kdefnum=16
  50 38 0 100 1000 0 0 0         ;  50(32):随机数 [X1000]=Random(100)
  50 3 0 0 1000 1000 1 0         ;  50(32):四则运算 [X1000]=[X1000]+1
  50 32 0 28928 2 0 0 0          ;  50(32):修改下一条指令参数 下一条指令参数2=[X28928]
  16 0 14 0                      ;  16(10):队伍是否有[小虾米]是则跳转到:Label0
  50 4 1 1 1000 28929 0 0        ;  50(32):变量判断 If[X1000]<=[X28929] then JMP=0 else JMP=1
  36 256 16 0                    ;  36(24):跳转变量JMP是否为0是则跳转到:Label1
  0                              ;  0(0)::空语句(清屏)
  7                              ;  7(7):无条件返回
;:Label0
  50 4 1 1 1000 28930 0 0        ;  50(32):变量判断 If[X1000]<=[X28930] then JMP=0 else JMP=1
  36 256 2 0                     ;  36(24):跳转变量JMP是否为0是则跳转到:Label2
  0                              ;  0(0)::空语句(清屏)
  7                              ;  7(7):无条件返回
;:Label2
;:Label1
  1 0 0 0                        ;  1(1):[小虾米]说: a
  0                              ;  0(0)::空语句(清屏)
  50 32 0 28931 2 0 0 0          ;  50(32):修改下一条指令参数 下一条指令参数2=[X28931]
  6 20 4 0 0                     ;  6(6):战斗[20]是则跳转到:Label3
  0                              ;  0(0)::空语句(清屏)
  15 0                           ;  15(F):战斗失败,死亡
  7                              ;  7(7):无条件返回
;:Label3
  0                              ;  0(0)::空语句(清屏)
  13                             ;  13(D):重新显示场景
  0                              ;  0(0)::空语句(清屏)
  -1                             ;  -1(FFFF):事件结束


这样优化的优越性在于:可随意改变战斗编号,比如我战斗0~4都是打怪的,不过难易程度不同,我想随机遇到其中一场,那么就可以这样

;Kdefnum=18
  50 38 0 4 2000 0 0 0           ;  50(32):随机数 [X2000]=Random(4)
  50 43 16 16 50 80 20 2000      ;  50(32):调用其它事件 Call Sub16(50,80,20,[X2000])
;事件16就是上面那个事件
  0                              ;  0(0)::空语句(清屏)
  -1                             ;  -1(FFFF):事件结束


当然还可以根据实际情况适当加上其他指令,比如得到物品,修改当前定义等……


欢迎讨论、改进。


[发帖际遇]: 柳无色被发现和仪琳一起偷西瓜,赔了银两5.


[ 本帖最后由 柳无色 于 2009-3-7 22:27 编辑 ]

评分

参与人数 1声望 +15 收起 理由
凶神恶煞 + 15 原创好贴

查看全部评分

【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

小黑屋|手机版|铁血丹心

GMT+8, 2024-5-19 06:39

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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