cgmsv引擎论坛

 找回密码
 注册/Sign up
搜索
12
返回列表 发新帖
楼主: 象跋

ahsin大佬npc万能脚本 无限转生问题求解

[复制链接]

Rank: 1

发表于 2023-3-5 00:23:30 | 显示全部楼层
xman 发表于 2023-3-4 22:35
event相关资料
https://bbs.cgmsv.com/forum.php?mod=redirect&goto=findpost&ptid=1386&pid=5872

感觉album 可以拿来做个变量!测试了一下,可行。




Block getplayer album19 == 0             #默认album系列变量为0

Window"测试的话album19变量将+1",next
setplayer album19 += 1                   #此处album19 由于+1 所以变量为0
Endwindow "变量已为1"



Block getplayer album19 == 1             #判断album系列变量为1时运行此行
Window"现在已经判断album19为1,点继续让变量再+1",next
setplayer album19 += 1                   #此处album19 由于1+1 所以变量为0
Endwindow "变量已为2"


Block getplayer album19 == 2             #判断album系列变量为2时运行此行
EndWindow"现在已经判断album19为2"

Rank: 1

 楼主| 发表于 2023-3-5 13:12:35 | 显示全部楼层
向各位高手汇报下学习进度:
以下是我修改学习的脚本

block
window"@c\n\n你好,我是转生专员。",next
window"@c\n\n当你达到100级之后,你将获得转生条件!如果转生成功,你的等级将变成1级,但每次转生你将多获得40bp点数。",ok,cancel
window ok getplayer lv < 100
endwindow"@c\n\n你的等级还达不到转生要求!"
endblock
window ok getplayer lv >= 100
window"@c\n\n恭喜你符合的转生要求!",next
window"@c\n\n支付我10万,你就可以转生啦!",yes,no
window no
endwindow"@c\n\n你可以再考虑一下。"
endblock
window yes gold < 100000
endwindow"@c\n\n你钱不够,不能转生。"
endblock
###以下为转生判定开始###
#首次转生
#使用namecolor作为转生次数判定
#有100万
window yes gold >= 100000
addgold -100000
setplayer lv = 1
setplayer exp = 0
setplayer vital = 0
setplayer str = 0
setplayer tough = 0
setplayer quick = 0
setplayer magic = 0
setplayer leveluppoint = 70
setplayer namecolor = 1
endblock
#2转
window yes gold >= 100000 && namecolor =1
addgold -100000
setplayer lv = 1
setplayer exp = 0
setplayer vital = 0
setplayer str = 0
setplayer tough = 0
setplayer quick = 0
setplayer magic = 0
setplayer leveluppoint = 120
setplayer namecolor = 2
endblock
#3转
window yes gold >= 100000 && namecolor =2
addgold -100000
setplayer lv = 1
setplayer exp = 0
setplayer vital = 0
setplayer str = 0
setplayer tough = 0
setplayer quick = 0
setplayer magic = 0
setplayer leveluppoint = 160
setplayer namecolor = 3
endblock
window yes
endwindow"@c\n\n目前魔法的世界限制你最多只有3转哟,敬请期待。"
endblock
--------------
出现的问题:
我用namecolor作为转生数量判定后,我按照这个脚本运行,我的人物可以完成一转。但是二转的时候,npc依然重复一转的脚本,(一转脚本:window yes gold >= 100000)没有根据二转脚本运行第二次转生(二转脚本:window yes gold >= 100000 && namecolor=1)。
我认为可能是一转脚本在排列顺序上靠前,所以npc认为我满足一转和二转的需求,所以优先运行一转的脚本,于是我在一转脚本上做来了些改动,让npc通过我人物名字的颜色来判断读取的顺序(将一转脚本上增加了一个namecolor=0的句子,句子变为如下window yes gold >= 100000 && namecolor=0)。但是运行后npc直接跳过一转、二转、三转的脚本,直接运行了endwindow"@c\n\n目前魔法的世界限制你最多只有3转哟,敬请期待。"这个脚本。我就很迷惑了,难道没有namecolor=0这个句子?于是我在一转脚本中,npc赋予人物namecolor=1这个句子中做了测试,让npc给一个已经完成一转的人物(名字颜色已经变成color=1)setnamecolor=0,结果人物名字颜色变回最初颜色,因此证明namecolor = 0这个句子是存在的。
希望各位朋友能帮我检查一下脚本,究竟哪里出现了问题。
谢谢!

Rank: 1

 楼主| 发表于 2023-3-5 13:58:41 | 显示全部楼层
tjn2837608 发表于 2023-3-5 00:23
感觉album 可以拿来做个变量!测试了一下,可行。

不好意思,因为论坛使用不太熟练,没有看到您的留言放到第二页了,我现在就立刻学习一下您的脚本!

Rank: 1

 楼主| 发表于 2023-3-5 14:05:34 | 显示全部楼层
xman 发表于 2023-3-4 22:15
的确是版本太旧
要20.1c以后才有扩增旗标、配方、图鉴

我漏了这层内容……我没有用新端来修改:(

Rank: 1

 楼主| 发表于 2023-3-5 15:07:32 | 显示全部楼层
终于搞定了。19.6a版本也可以使用
之前我没搞明白“=”和“==”的区别,所以在检查namecolor时使用的是“=”,现在改为“==”用于(==用于判断)就可以顺利运行了。
以下是我修改后的脚本
感谢论坛楼上几位大佬的帮助,也感谢热心群友“虚拟现实”的指导!
——————————————————————————
block
window"@c\n\n你好,我是转生专员。",next
window"@c\n\n当你达到100级之后,我将以物理的方式让你获得转生!如果转生成功,每次你将多获得40bp点数。",ok,cancel
#未达到100级
window ok getplayer lv < 100
endwindow"@c\n\n你的等级还达不到转生要求!"
#达到100级
window ok getplayer lv >= 100
window"@c\n\n恭喜你符合的转生要求!",next
window"@c\n\n支付我10万,你就可以转生啦!",yes,no
window no
endwindow"@c\n\n你可以再考虑一下。"
#没有10万
window yes gold < 100000
endwindow"@c\n\n你钱不够,不能转生。"
###以下为转生判定开始###
#首次转生
#使用namecolor作为转生次数判定(石器时代每次转生玩家名字都会变色)
#有100万并且namecolor是白色
window yes gold >= 100000 && getplayer namecolor ==0
addgold -100000
#等级调整为1
setplayer lv = 1
#经验清空
setplayer exp = 0
#生命点清空
setplayer vital = 0
#力量点清空
setplayer str = 0
#防御点清空
setplayer tough = 0
#敏捷点清空
setplayer quick = 0
#魔法点清空
setplayer magic = 0
#给予可加点数,原生30点+40赠点
setplayer leveluppoint = 70
#标记转生次数为1
setplayer namecolor = 1
#2转
window yes gold >= 100000 && getplayer namecolor ==1
addgold -100000
setplayer lv = 1
setplayer exp = 0
setplayer vital = 0
setplayer str = 0
setplayer tough = 0
setplayer quick = 0
setplayer magic = 0
setplayer leveluppoint = 110
setplayer namecolor = 2
#3转
window yes gold >= 100000 && getplayer namecolor ==2
addgold -100000
setplayer lv = 1
setplayer exp = 0
setplayer vital = 0
setplayer str = 0
setplayer tough = 0
setplayer quick = 0
setplayer magic = 0
setplayer leveluppoint = 150
setplayer namecolor = 3
#4转
window yes gold >= 100000 && getplayer namecolor ==3
addgold -100000
setplayer lv = 1
setplayer exp = 0
setplayer vital = 0
setplayer str = 0
setplayer tough = 0
setplayer quick = 0
setplayer magic = 0
setplayer leveluppoint = 190
setplayer namecolor = 4
#5转
window yes gold >= 100000 && getplayer namecolor ==4
addgold -100000
setplayer lv = 1
setplayer exp = 0
setplayer vital = 0
setplayer str = 0
setplayer tough = 0
setplayer quick = 0
setplayer magic = 0
setplayer leveluppoint = 230
setplayer namecolor = 5
#以此类推
#以下代码必须放在最后
#限制最多几转
window yes
endwindow"@c\n\n目前魔法的世界限制你最多只有5转哟,敬请期待。"

Rank: 1

 楼主| 发表于 2023-3-14 09:34:19 | 显示全部楼层

一起学习~

Rank: 1

发表于 2023-3-18 02:15:40 | 显示全部楼层
由于namecolor超过25以后,在小男生cg里面颜色就不变了。所以我才用的album31,这个是比较开放的,随意。比如目的是9999转,用album31判定转数,指定的阶段如30转前统一一个颜色,50转前另一个颜色,以此类推

Rank: 1

 楼主| 发表于 2023-3-27 12:49:47 | 显示全部楼层
ahsin 发表于 2023-3-18 02:15
由于namecolor超过25以后,在小男生cg里面颜色就不变了。所以我才用的album31,这个是比较开放的,随意。比 ...

谢谢回复!之前不理解album的意思,怕经过修改数字影像游戏体验,所以我参考了石器时代里转生变名字颜色的设定。
您需要登录后才可以回帖 登录 | 注册/Sign up

本版积分规则

手机版|cgmsv引擎论坛

GMT+8, 2024-11-21 21:37 , Processed in 0.108405 second(s), 7 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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