开启辅助访问      

传世单机社区

 找回密码
 立即注册
https://www.wooolc.com
楼主: 橙子

[定制脚本] 彩虹3拾取极品功能脚本优化。

[复制链接]

升级   100%

 楼主| 发表于 2019-4-1 16:52:59 | 显示全部楼层
嗨佩奇 发表于 2019-4-1 14:08
你最初的说法是随机1-5,所以我把P1,P2都加了1,这样能保证最低有1点加成。你说的这个,你试试是不是可 ...

我又改了一下,不过我是实在不知道怎么写了。效果不理想。

[@拾取物品]
#IF
LARGE $PARAM(23) 10
posinlist $ItemInfo[$PARAM(21)].Stdmode ..\QuestDiary\大极品功能\极品类别.txt
#ELSEACT
break
#act
MOVR P0 6
MOVR P3 6
MOV P1 $STR(P0)
#IF
EQUAL P3 5
#ACT
break
#if
EQUAL P1 5
#ACT
MOV P2 0
DelayGoto 10 @加极品属性
break
#IF
EQUAL P1 4
#ACT
MOV P2 1
DelayGoto 10 @加极品属性
break
#IF
EQUAL P1 3
#ACT
MOV P2 2
DelayGoto 10 @加极品属性
break
#IF
EQUAL P1 2
#ACT
MOV P2 3
DelayGoto 10 @加极品属性
break
#IF
EQUAL P1 1
#ACT
MOV P2 4
DelayGoto 10 @加极品属性
break
#IF
EQUAL P3 4
#ACT
break
#if
EQUAL P1 4
#ACT
MOV P2 0
DelayGoto 10 @加极品属性
break
#IF
EQUAL P1 3
#ACT
MOV P2 1
DelayGoto 10 @加极品属性
break
#IF
EQUAL P1 2
#ACT
MOV P2 2
DelayGoto 10 @加极品属性
break
#IF
EQUAL P1 1
#ACT
MOV P2 3
DelayGoto 10 @加极品属性
break
#IF
EQUAL P1 3
#ACT
MOV P2 1
DelayGoto 10 @加极品属性
break
#IF
EQUAL P3 3
#ACT
break
#if
EQUAL P1 3
#ACT
MOV P2 0
DelayGoto 10 @加极品属性
break
#IF
EQUAL P1 2
#ACT
MOV P2 1
DelayGoto 10 @加极品属性
break
#IF
EQUAL P1 1
#ACT
MOV P2 2
DelayGoto 10 @加极品属性
break
#IF
EQUAL P3 2
#ACT
break
#if
EQUAL P1 2
#ACT
MOV P2 0
DelayGoto 10 @加极品属性
break
#IF
EQUAL P1 1
#ACT
MOV P2 1
DelayGoto 10 @加极品属性
break
#IF
EQUAL P3 1
#ACT
break
#if
EQUAL P1 1
#ACT
MOV P2 0
DelayGoto 10 @加极品属性
break
#IF
EQUAL P1 0
#ACT
MOV P2 1
DelayGoto 10 @加极品属性
break
[@加极品属性]
#IF
CHECKJOB Warrior
#ACT
UPGRADEUSERITEM $ITEMMAKEINDEX[$PARAM(22)] 100 = $STR(P0)
UPGRADEUSERITEM $ITEMMAKEINDEX[$PARAM(22)] 112 = $STR(P2)
UPGRADEUSERITEM $ITEMMAKEINDEX[$PARAM(22)] 113 = $STR(P1)
READRANDOMSTR ..\QuestDiary\大极品功能\颜色.txt S40 $STR(P0)
SENDMSG 0 {<$USERNAME>}在%m(%x,%y)地图击杀怪物获得<$STR(S40)>『<$PARAM(22)>』,让我们一起恭喜他吧!
SENDMSG 14 {<$USERNAME>}在%m(%x,%y)地图击杀怪物获得<$STR(S40)>『<$PARAM(22)>』,让我们一起恭喜他吧
#IF
CHECKJOB WIZARD
#ACT
UPGRADEUSERITEM $ITEMMAKEINDEX[$PARAM(22)] 100 = $STR(P0)
UPGRADEUSERITEM $ITEMMAKEINDEX[$PARAM(22)] 114 = $STR(P2)
UPGRADEUSERITEM $ITEMMAKEINDEX[$PARAM(22)] 115 = $STR(P1)
READRANDOMSTR ..\QuestDiary\大极品功能\颜色.txt S40 $STR(P0)
SENDMSG 0 {<$USERNAME>}在%m(%x,%y)地图击杀怪物获得<$STR(S40)>『<$PARAM(22)>』,让我们一起恭喜他吧!
SENDMSG 14 {<$USERNAME>}在%m(%x,%y)地图击杀怪物获得<$STR(S40)>『<$PARAM(22)>』,让我们一起恭喜他吧
#IF
CHECKJOB TAOS
#ACT
UPGRADEUSERITEM $ITEMMAKEINDEX[$PARAM(22)] 100 = $STR(P0)
UPGRADEUSERITEM $ITEMMAKEINDEX[$PARAM(22)] 116 = $STR(P2)
UPGRADEUSERITEM $ITEMMAKEINDEX[$PARAM(22)] 117 = $STR(P1)
READRANDOMSTR ..\QuestDiary\大极品功能\颜色.txt S40 $STR(P0)
SENDMSG 0 {<$USERNAME>}在%m(%x,%y)地图击杀怪物获得<$STR(S40)>『<$PARAM(22)>』,让我们一起恭喜他吧!
SENDMSG 14 {<$USERNAME>}在%m(%x,%y)地图击杀怪物获得<$STR(S40)>『<$PARAM(22)>』,让我们一起恭喜他吧

回复 支持 反对

使用道具 举报

升级   0%

发表于 2019-4-1 22:02:02 | 显示全部楼层
这个脚本很有意思,学习了!

回复 支持 反对

使用道具 举报

升级   0.6%

发表于 2019-4-1 22:05:09 | 显示全部楼层
橙子 发表于 2019-4-1 16:52
我又改了一下,不过我是实在不知道怎么写了。效果不理想。

[@拾取物品]

你的要求是5中颜色,黄、绿,蓝,紫,橙。颜色不同加点不同。黄色最高1点,橙色最高5点,这里的最高点数是上下限之和。要不要求百分百的爆率?我现在给你写一个,你看一下。

回复 支持 反对

使用道具 举报

升级   100%

 楼主| 发表于 2019-4-1 23:00:23 | 显示全部楼层
嗨佩奇 发表于 2019-4-1 22:05
你的要求是5中颜色,黄、绿,蓝,紫,橙。颜色不同加点不同。黄色最高1点,橙色最高5点,这里的最高点数 ...

好的好的,感激不尽!之前是我没有表达清楚。不要求百分百的爆率。

回复 支持 反对

使用道具 举报

升级   0.6%

发表于 2019-4-2 00:23:10 | 显示全部楼层
橙子 发表于 2019-4-1 23:00
好的好的,感激不尽!之前是我没有表达清楚。不要求百分百的爆率。

[@拾取物品]
#IF
LARGE $PARAM(23) 10
posinlist $ItemInfo[$PARAM(21)].Stdmode ..\QuestDiary\游戏数据\极品类别.txt
#ACT
MOV S40
MOV P1
MOV P2
MOV P3
READRANDOMSTR ..\QuestDiary\游戏数据\颜色.TXT S40
SPLIT $STR(S40) | S40
MOV P1 $STR(S41)
MOV P3 $STR(S41)
INC P3 1
MOVR P2 $STR(P3)
DEC P1 $STR(P2)
#ELSEACT
BREAK
#IF
CHECKJOB WARRIOR
#ACT
UPGRADEUSERITEM $PARAM(21) 100 = $STR(S41)
UPGRADEUSERITEM $PARAM(21) 112 = $STR(P1)
UPGRADEUSERITEM $PARAM(21) 113 = $STR(P2)
SENDMSG 0 {<$USERNAME>}在%m(%x,%y)地图击杀怪物获得<$STR(S40)>『<$PARAM(22)>』,让我们一起

恭喜他吧!
SENDMSG 14 {<$USERNAME>}在%m(%x,%y)地图击杀怪物获得<$STR(S40)>『<$PARAM(22)>』,让我们一起

恭喜他吧
#IF
CHECKJOB WIZARD
#ACT
UPGRADEUSERITEM $PARAM(21) 100 = $STR(S41)
UPGRADEUSERITEM $PARAM(21) 114 = $STR(P1)
UPGRADEUSERITEM $PARAM(21) 115 = $STR(P2)
SENDMSG 0 {<$USERNAME>}在%m(%x,%y)地图击杀怪物获得<$STR(S40)>『<$PARAM(22)>』,让我们一起

恭喜他吧!
SENDMSG 14 {<$USERNAME>}在%m(%x,%y)地图击杀怪物获得<$STR(S40)>『<$PARAM(22)>』,让我们一起

恭喜他吧
#IF
CHECKJOB TAOS
#ACT
UPGRADEUSERITEM $PARAM(21) 100 = $STR(S41)
UPGRADEUSERITEM $PARAM(21) 116 = $STR(P1)
UPGRADEUSERITEM $PARAM(21) 117 = $STR(P2)
SENDMSG 0 {<$USERNAME>}在%m(%x,%y)地图击杀怪物获得<$STR(S40)>『<$PARAM(22)>』,让我们一起

恭喜他吧!
SENDMSG 14 {<$USERNAME>}在%m(%x,%y)地图击杀怪物获得<$STR(S40)>『<$PARAM(22)>』,让我们一起

恭喜他吧

回复 支持 反对

使用道具 举报

升级   0.6%

发表于 2019-4-2 00:25:48 | 显示全部楼层
已经测试过,百分百的几率极品,如果你不想百分百可以加个random的几率判定。
另外UPGRADEUSERITEM $PARAM(21)这个是我把你原来的指令改了,你那个因为是根据物品名称来的,所以会把包里第一个物品属性改变,其余的都变成普通的了,测试了老半天才发现。另外还有个一个问题,就是魅力戒指不会变色,不知道为啥

回复 支持 反对

使用道具 举报

升级   0.6%

发表于 2019-4-2 00:29:01 | 显示全部楼层
颜色文本写成这样
绿色|1
蓝色|2
紫色|3
橙色|4

回复 支持 反对

使用道具 举报

升级   100%

 楼主| 发表于 2019-4-2 21:23:29 | 显示全部楼层
本帖最后由 橙子 于 2019-4-2 21:53 编辑
嗨佩奇 发表于 2019-4-2 00:25
已经测试过,百分百的几率极品,如果你不想百分百可以加个random的几率判定。
另外UPGRADEUSERITEM $PARAM ...

MOV P1 $STR(S41)
MOV P3 $STR(S41)
INC P3 1
MOVR P2 $STR(P3)
DEC P1 $STR(P2)

大佬,恕我愚钝,这个运算,P1永远都是0~4随机数,P2也是0~4的变化,对吗?那为什么没有出现4-4的情况。

回复 支持 反对

使用道具 举报

升级   100%

 楼主| 发表于 2019-4-2 21:26:05 | 显示全部楼层
嗨佩奇 发表于 2019-4-2 00:25
已经测试过,百分百的几率极品,如果你不想百分百可以加个random的几率判定。
另外UPGRADEUSERITEM $PARAM ...

我也测试了,结果确实是0~4的总和。太厉害了,想深入了解一下这个逻辑

回复 支持 反对

使用道具 举报

升级   0.6%

发表于 2019-4-2 21:54:02 | 显示全部楼层
橙子 发表于 2019-4-2 21:26
我也测试了,结果确实是0~4的总和。太厉害了,想深入了解一下这个逻辑

是这样的,颜色文本中颜色有对应数字,分割后数字存入s41中。根据你的意思,不同颜色上下限总和就是颜色对应的数字,那么也就是p1+p2=s41。先利用mov把s41的数值存入p1,在利用p3转存s41后+1,这样movr p2 $str(p3)时,得到的数字就是0-s41的值,也就是说p2的下限是0,上限=s41。这个时候p1=s41,p2=<s41。然后用dec p1 p2,p1中的值也就随p2变成变化的值,且p1+p2=s41。这样就满足你的要求了。

回复 支持 反对

使用道具 举报

懒得打字嘛,点击右侧快捷回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1、请认真发帖,禁止回复纯表情,纯数字等无意义的内容!帖子内容不要太简单!
2、提倡文明上网,净化网络环境!抵制低俗不良违法有害信息。
3、如果你对主帖作者的帖子不屑一顾的话,请勿回帖。谢谢合作!

关闭

站长推荐 上一条 /1 下一条

传奇世界单机版|传世服务端|传世版本|关于我们|小黑屋|手机版| 传世单机社区 |网站地图

GMT+8, 2024-4-30 15:30 , Processed in 0.149231 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2018 Comsenz Inc.

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