传奇行会竞价系统:将元宝支付改为每次10万金币

来源: 作者: 点击:
将原脚本中的元宝(GAMEGOLD)支付方式替换为金币(CREDITPOINT),并设定每次竞价固定增加10万金币,需修改检测条件、扣款逻辑及提示文本。以下是完整修改方案。

修改核心变量与提示文本

在[@main]段落中,将“元宝”相关描述替换为“金币”,并将金额单位明确为“10万”。原句:

改为:

同时,将界面中显示的竞标价格变量保持不变,但其数值单位已转为金币。

替换[@cyjj]竞价逻辑

原脚本使用CHECKGAMEGOLD和GAMEGOLD操作元宝,需全部替换为金币相关指令。金币在多数引擎中对应CREDITPOINT变量。

原代码:
[@cyjj]
IF
HAVEGUILD
ISGUILDMASTER
CHECKGAMEGOLD>
ACT
INCG56100
GAMEGOLD-
...

修改后代码:
[@cyjj]
IF
HAVEGUILD
ISGUILDMASTER
CHECKCREDITPOINT>
ACT
MOVS0;读取当前竞价金额
INCS0100000;增加10万金币
MOVG56;更新G56为新竞价额
CREDITPOINT-;扣除玩家10万金币(注意:此处扣的是新增后的总额?需修正)

但上述逻辑有误:原意是“支付比当前多10万”,即新出价=当前价+100000,而扣款应为这10万,而非新总价。

正确逻辑应为:
[@cyjj]
IF
HAVEGUILD
ISGUILDMASTER
ACT
MOVS0100000;本次竞价增量:10万
MOVS1;读取当前竞价额
ADDS1S0;S1=G56+100000(新出价)
IF
CHECKCREDITPOINT>S0;检查玩家是否有10万金币
ACT
CREDITPOINT-S0;扣除10万金币
MOVG56;更新行会竞价为新出价
movA30
movA31
Messagebox[成功]:您在行会竞价板上花费【100000】金币竞得。
SendCenterMsg2500【】在行会竞价板为行会【】出价金币!
GuildNoticeMsg2500【】在行会竞价板为行会【】出价金币!
GOTO@main
BREAK
ELSEACT
Messagebox[失败]:您的金币不足10万,无法参与竞价。

修正失败提示中的货币名称

原[@cyjj]末尾的#ELSEACT提示为“金币不足或者您没有行会”,但原脚本实际检测的是元宝。现因改为金币,且前置条件已包含行会与掌门判断,故提示应精准:

ELSEACT
Messagebox[失败]:您不是行会掌门,或未创建行会。

但更完整的失败分支应拆分为多个条件。建议重构[@cyjj]入口判断:

[@cyjj]
IF
EQUALA30;若尚无行会竞标
ACT
Messagebox[提示]:当前无行会参与竞标,请先由其他行会出价。
GOTO@main
BREAK

IF
!HAVEGUILD
ACT
Messagebox[失败]:您尚未加入任何行会。
BREAK

IF
!ISGUILDMASTER
ACT
Messagebox[失败]:只有行会掌门才能参与竞价。
BREAK

ACT
MOVS0100000
MOVS1
ADDS1S0
IF
CHECKCREDITPOINT
movA30
movA31
Messagebox[成功]:您已成功加价10万金币!当前行会竞价为金币。
SendCenterMsg2500【】为行会【】加价至金币!
GuildNoticeMsg2500【】为行会【】加价至金币!
GOTO@main

其他注意事项

金币变量确认:部分引擎使用CHECKGOLD/GOLD而非CREDITPOINT。请根据服务端类型确认:
GOM引擎:通常用CREDITPOINT
Hero引擎:可能用GOLD
若不确定,可测试CHECKGOLD>100000是否生效

初始竞价处理:若G56初始为0,首次竞价应直接设为100000,而非0+100000。上述脚本已兼容此情况。

界面显示格式化:若G56数值过大(如1000000),可在显示时用字符串分割插入逗号,但非必需。

完成以上修改后,行会竞价系统将完全基于金币运作,每次加价固定10万,失败不扣款,成功仅扣除增量部分,符合需求。
[顶部]