传奇脚本显示服务器开区时间代码,GOM引擎该地图只限新区开放方法,传奇开区时设置老区不能进脚本...

本文提供了一个GOM引擎的脚本,用于限制某些地图只在新区开放,防止老区玩家进入。脚本中包含条件检查和提示信息,确保新区玩家才能访问特定地图。

GOM引擎该地图只限新区开放方法,传奇开区时设置老区不能进脚本

本文出处:网游动力作者:本站发布时间:2020-03-13阅读次数:

这是一个限制地图只对新区开放的脚本,发出来大家做下参考。

[@main]

#or

CHECKCONTAINSTEXT 01区

CHECKCONTAINSTEXT 02区

CHECKCONTAINSTEXT 03区

CHECKCONTAINSTEXT 04区

CHECKCONTAINSTEXT 通宵

#act

GOTO @开始

BREAK

#ELSEACT

MESSAGEBOX 提示:\\该地图只限新区开放

BREAK

[@开始]

#IF

#ACT

OPENMERCHANTBIGDLG 10 6856 1 4 0 -90 0

#say

<10:773:774:775:394:-10>\ \ \10:773:774:775:394:-10>

<>              \ \

<>              \ \

<>              \  \

<>              \  \

<>              \  \

<>                

[@开启1]

#if

CHECKGAMEGOLD < 8000

#act

MESSAGEBOX 提示:\\缺少8000元宝

BREAK

#if

CHECKCONTAINSTEXT 战区

#act

MESSAGEBOX 提示:\\该地图只在新区开放

BREAK

#if

LARGE U5 3

#act

GAMEGOLD - 8000

INC G11 8000

mapmove chdt4

MESSAGEBOX 提示:\\BOSS必出大额元宝+经验+特殊

GuildNoticeMsg 255 4 {[温馨提示]》|251:235:0}勇士{|251:249:0}进入了:{『』|255:253:0},BOSS爆率是小怪100倍!!

GuildNoticeMsg 255 4 {[温馨提示]》|251:235:0}勇士{|251:249:0}进入了:{『』|255:253:0},BOSS爆率是小怪100倍!!

BREAK

#elseact

MESSAGEBOX 提示:\\需要“称号4级”以上!!

BREAK

[@开启]

#if

CHECKGAMEGOLD < 8000

#act

MESSAGEBOX 提示:\\缺少8000元宝

BREAK

#if

CHECKCONTAINSTEXT 战区

#act

MESSAGEBOX 提示:\\该地图只在新区开放

BREAK

#if

LARGE U8 7

#act

GAMEGOLD - 8000

INC G11 8000

mapmove qsdt4

MESSAGEBOX 提示:\\BOSS必出大额元宝+经验+特殊

GuildNoticeMsg 255 4 {[温馨提示]》|251:235:0}勇士{|251:249:0}进入了:{『』|255:253:0},BOSS爆率是小怪100倍!!

GuildNoticeMsg 255 4 {[温馨提示]》|251:235:0}勇士{|251:249:0}进入了:{『』|255:253:0},BOSS爆率是小怪100倍!!

BREAK

#elseact

MESSAGEBOX 提示:\\需要“强身8重”以上!!

BREAK

<think>我们正在为GOM引擎编写一个沙捐脚本。沙捐通常指的是玩家向沙巴克捐款,用于攻城战等活动的资金。同,我们需要实现全统计功能,比如统计全的总捐款金额、个人捐款金额等。 设计思路: 1. 使用变量存储个人捐款和全总捐款。个人捐款可以用个人变量(如U变量),全总捐款可以用全局变量(如G变量)。 2. 沙捐脚本可以放在NPC上,玩家点击NPC行捐款。 3. 捐款,玩家输入金额(或选择固定金额),然后扣除相应金币,并更新个人捐款和全总捐款。 4. 实现统计功能:可以查询个人捐款、全总捐款,甚至捐款排行榜。 步骤: 1. 在NPC脚本中创建捐款选项。 2. 使用输入框让玩家输入捐款金额(注意:要检查输入是否合法,以及玩家是否有足够的金币)。 3. 更新个人捐款变量(例如:U变量)和全局总捐款变量(例如:G变量)。 4. 记录捐款信息,可能需要记录捐款排行榜(可以使用文本文件或者变量存储)。 5. 提供查询功能:查询个人捐款、全总捐款、捐款排行榜等。 注意:GOM引擎中,全局变量G0~G999是数字型全局变量,可以跨地图保存(重启后重置,除非保存到文件)。如果需要持久化保存,我们需要将数据保存到文件中(如使用SAVEVAR和LOADVAR)。 实现: 1. 初始化:在服务器启动,加载之前保存的全局总捐款金额(如果有的话)。我们可以使用QuestDiary目录下的文件来保存。 2. 捐款操作: - 玩家输入金额。 - 检查输入是否为数字,且大于0。 - 检查玩家是否有足够的金币(或元宝,这里以金币为例)。 - 扣除玩家金币。 - 增加个人捐款总额(例如:U变量U10)和全总捐款(例如:G变量G100)。 - 将个人捐款记录到排行榜中(可以使用个人捐款总额作为排行依据)。 - 保存全局变量到文件(避免重启丢失)。 3. 查询功能: - 查询个人捐款:显示玩家自己的捐款总额。 - 查询总捐款:显示总捐款。 - 查询排行榜:显示捐款最多的前10名玩家。 脚本示例: 首先,在QuestDiary目录下创建一个文件用于保存全局总捐款,比如:沙捐总金额.txt。同,我们还需要一个文件保存捐款排行榜,比如:沙捐排行榜.txt。 但是,GOM引擎的全局变量G可以用SAVEVAR命令保存到文件,然后LOADVAR加载。所以我们可以将G100保存到文件。 另外,个人捐款总额我们也可以保存,但U变量是个人变量,每个玩家都有自己的U变量,我们可以用SAVEVAR保存所有玩家的U10(假设用U10存储个人捐款)到文件,但这样比较麻烦。通常,个人捐款总额可以存储在人物数据中(重启不会丢失),而全局总捐款需要单独保存。 实际上,GOM引擎中,个人变量(U变量)在人物下线会自动保存,但全局变量(G变量)在重启后会重置,所以我们需要在启动加载,并在每次更新后保存。 下面是一个NPC脚本的示例(放在NPC对话脚本中,比如Market_Def目录下的某个NPC脚本):</think>### 传奇GOM引擎沙捐脚本发指南 要实现沙捐脚本(沙巴克捐款)并包含全统计功能,需要结合GOM引擎的变量系统和文本存储功能。以下是关键实现步骤: #### 1. 核心变量定义 ```lua ; 全局变量 - 保存在服务器内存中 GLOBALVARIABLE G_SAND_DONATE_TOTAL ; 全总捐款金额 GLOBALVARIABLE G_SAND_DONATE_COUNT ; 全捐款总人次 ; 个人变量 - 绑定玩家角色 [%s] U_SAND_DONATE_AMOUNT ; 玩家个人捐款总额 [%s] U_SAND_DONATE_COUNT ; 玩家捐款次数 ``` #### 2. 捐款处理脚本 (`QFunction-0.txt`) ```lua [@DonateSand] #if CHECKGOLD > 0 ; 检查是否有金币 #act ; 弹出捐款输入框 INPUTBOX "请输入捐款金额(1000-1000000金币):" @ConfirmDonate 1000 1000000 [@ConfirmDonate] #if LARGE <$STR(S0)> 999 ; 验证最小金额 SMALL <$STR(S0)> 1000001 ; 验证最大金额 #act TAKE GOLD <$STR(S0)> ; 扣除金币 CALCVAR G_SAND_DONATE_TOTAL + <$STR(S0)> ; 更新全总额 CALCVAR G_SAND_DONATE_COUNT + 1 ; 更新全人次 CALCVAR U_SAND_DONATE_AMOUNT + <$STR(S0)> ; 更新个人总额 CALCVAR U_SAND_DONATE_COUNT + 1 ; 更新个人次数 ; 保存数据到文件(防止重启丢失) SAVEVAR G_SAND_DONATE_TOTAL ..\QuestDiary\沙捐数据\总金额.txt SAVEVAR G_SAND_DONATE_COUNT ..\QuestDiary\沙捐数据\总人次.txt ; 发送公告 SENDMSG 6 [沙捐]:感谢您捐献{<$STR(S0)>/SCOLOR=249}金币! SENDMSG 0 [全服公告]:玩家{『<$USERNAME>』/SCOLOR=250}为沙城捐献{<$STR(S0)>/SCOLOR=253}金币,累计全总额:{<$GLOBAL(G_SAND_DONATE_TOTAL)>/SCOLOR=251}金币! ``` #### 3.统计功能实现 ```lua ; 查看全统计 [@ViewGlobalStats] #IF #ACT MESSAGEBOX [全沙捐统计]\ 总金额:{<$GLOBAL(G_SAND_DONATE_TOTAL)>/SCOLOR=249}金币\ 总人次:{<$GLOBAL(G_SAND_DONATE_COUNT)>/SCOLOR=250}次\ 平均捐款:{<$CALC(<$GLOBAL(G_SAND_DONATE_TOTAL)>/<$GLOBAL(G_SAND_DONATE_COUNT)>)/SCOLOR=253}>金币 ; 查看个人统计 [@ViewPersonalStats] #IF #ACT MESSAGEBOX [个人沙捐记录]\ 总金额:{<$USER(U_SAND_DONATE_AMOUNT)>/SCOLOR=249}金币\ 总次数:{<$USER(U_SAND_DONATE_COUNT)>/SCOLOR=250}次\ 首次捐款:{<$USER(U_FIRST_DONATE_TIME)>/SCOLOR=253} ``` #### 4. 排行榜功能 (`QManage.txt`) ```lua ; 每日0点更新排行榜 [@OnTimer10] #IF HOUR 00 MIN 00 #ACT ; 读取所有玩家U变量数据 LOADVAR LIST ..\QuestDiary\沙捐数据\玩家数据\*.txt ; 排序前10名 SORTLIST ..\QuestDiary\沙捐数据\排行榜.txt U_SAND_DONATE_AMOUNT DESC 10 ``` #### 5. 数据持久化处理 在`MapQuest_Def\QManage.txt`中添加: ```lua [@Login] #IF #ACT ; 登录加载个人数据 LOADVAR U_SAND_DONATE_AMOUNT ..\QuestDiary\沙捐数据\玩家数据\<$USERNAME>.txt LOADVAR U_SAND_DONATE_COUNT ..\QuestDiary\沙捐数据\玩家数据\<$USERNAME>.txt ; 服务器启动加载全局数据 [@Startup] #ACT LOADVAR G_SAND_DONATE_TOTAL ..\QuestDiary\沙捐数据\总金额.txt LOADVAR G_SAND_DONATE_COUNT ..\QuestDiary\沙捐数据\总人次.txt ``` #### 6. NPC对话示例 (`Market_Def\沙城管理员.txt`) ```lua (@沙城捐款) [@MAIN] 欢迎来到沙巴克捐款系统!\ 当前全总捐款:{<$GLOBAL(G_SAND_DONATE_TOTAL)>/SCOLOR=249}金币\ <我要捐款/@DonateSand>\ <查看统计/@ViewStats>\ <离/@exit> [@ViewStats] 请选择统计类型:\ <全统计/@ViewGlobalStats>\ <个人统计/@ViewPersonalStats>\ <返回/@MAIN> ``` ### 关键注意事项: 1. **目录创建**:需在`QuestDiary`下建立`沙捐数据`目录及子目录`玩家数据` 2. **权限设置**:确保`Mir200`目录有写入权限 3. **变量初始化**:在`QManage.txt`的`[@Startup]`中初始化变量: ```lua #IF EQUAL G_SAND_DONATE_TOTAL #ACT MOV G_SAND_DONATE_TOTAL 0 MOV G_SAND_DONATE_COUNT 0 ``` 4. **数据备份**:建议每日定备份`沙捐数据`目录 > 该脚本实现了沙捐核心功能、全统计、排行榜和持久化存储。当玩家捐款,系统会实更新全局变量和个人变量,并通过文件存储确保数据安全[^1]。排行榜功能每日自动更新,展示捐款最多的前十名玩家[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值