查看: 6|回复: 0

传奇单机版游戏内邮件系统怎么实现?一套完整的收发邮件脚本,带代码直接用

41

主题

0

回帖

173

积分

新手上路

积分
173
发表于 昨天 18:52 | 显示全部楼层 |阅读模式
二百论坛
本站支持代销互换开区传奇版本、欢迎广大GM、技术、一条龙等传奇业界好友合作、联系业务QQ:1531850810

QQ交流群①:323634742(推荐 )QQ交流群②:764544814(推荐)

本站提供的传奇版本 由于来源不同 精力有限 无法100%测试 如需使用本传奇版本请切记

下载传奇版本后 先解压 再杀毒 更新官方引擎 最后再配置登陆器 避免被非法木马插件利用


论坛有个帖子叫"邮件系统",54个回复,2200多人看过。说明这个功能很多人在找,但完整的实现教程少之又少。

今天直接上代码,翎风引擎传奇单机版,手把手带你搭一套基础邮件系统。

邮件系统能干什么?

说白了就是:GM或者脚本给指定角色发物品/金币/消息,玩家在NPC处领取。常见用途:

- 首充奖励自动发放
- 节日礼包批量下发
- 活动奖励定向发给获奖玩家
- 充值补单(手动补发)

实现思路

翎风引擎本身没有"邮件表",用变量文件来模拟邮件队列:

1. 发件端:脚本写入一个以角色名命名的邮件变量
2. 收件端:玩家和NPC对话时,脚本检测变量、发放物品、清空记录

核心文件:
- Script/Mail/MailSender.txt —— GM端发送邮件NPC脚本
- Script/Mail/MailReceiver.txt —— 玩家领取邮件NPC脚本

第一步:发件NPC脚本(MailSender.txt)

这个NPC给GM用,只有GM账号能访问:
  1. [@main]
  2. #IF
  3. IsGM
  4. #ACT
  5. GOTO @input_name
  6. #ELSEGOTO @no_perm
  7. [@no_perm]
  8. #ACT
  9. SAY 你没有权限访问邮件系统!GOTO @end
  10. [@input_name]
  11. #ACT
  12. SAY 请输入收件角色名(@名字):INPUT @send_item
  13. [@send_item]
  14. #IF
  15. INPUTSTR > 0
  16. #ACT
  17. SETVAR %_TargetName% $INPUT
  18. SAY 请输入物品编号(格式:物品名 数量):INPUT @confirm_send
  19. #ELSEGOTO @cancel
  20. [@confirm_send]
  21. #ACT
  22. SETVAR %_MailItem% $INPUT
  23. SETVAR %_MAIL_%_TargetName%% 1
  24. SETVAR %_MAILITEM_%_TargetName%% %_MailItem%
  25. SAY 邮件已发送给 %_TargetName%!GOTO @end
  26. [@cancel]
  27. #ACT
  28. SAY 操作已取消。GOTO @end
  29. [@end]
  30. #ACT
复制代码

第二步:收件NPC脚本(MailReceiver.txt)

玩家靠近这个NPC就能领取:
  1. [@main]
  2. #IF
  3. VARGT %_MAIL_$USERNAME%% 0
  4. #ACT
  5. SAY 你有一封新邮件!点击领取。GOTO @receive
  6. #ELSEGOTO @no_mail
  7. [@no_mail]
  8. #ACT
  9. SAY 当前没有邮件,有问题找GM哦!GOTO @end
  10. [@receive]
  11. #IF
  12. VARGT %_MAIL_$USERNAME%% 0
  13. #ACT
  14. GIVE %_MAILITEM_$USERNAME%%
  15. SETVAR %_MAIL_$USERNAME%% 0
  16. SETVAR %_MAILITEM_$USERNAME%% 0
  17. SAY 邮件已领取!祝游戏愉快~GOTO @end
  18. #ELSEGOTO @no_mail
  19. [@end]
  20. #ACT
复制代码

第三步:NPC配置到地图

打开 Config/NPC.txt,追加:
  1. 邮差大叔    1    新手村    200    120    0    Script/Mail/MailReceiver.txt
复制代码

坐标(200, 120)改成你的实际位置。MailSender 配到GM专属区即可。

踩坑提示

1. 中文变量名编码问题
变量名含中文角色名时,脚本文件必须用GBK保存(和引擎编码一致),不然变量读取乱码,邮件永远发不出去。

2. GIVE命令格式
参数格式是:物品名 数量,例如 GIVE 初级药水 99
如果物品名有空格,用英文引号:GIVE "血瓶(大)" 50

3. 单封覆盖问题
这套是单封模式,发第二封会覆盖第一封。需要支持多封邮件的,改用计数器+分编号存储,稍复杂些,有需要回帖我再单独写。

4. 变量持久化
翎风引擎全局变量重启后重置。频繁重启的服务端,建议改用SQLite表存邮件记录,稳定性更高。

进阶方向

基础版只能发单件物品,可以扩展:
- 多附件邮件(物品列表循环发放)
- 邮件过期机制(超过N小时未领取自动失效)
- 邮件日志(记录谁发的、谁领了)

把基础版跑起来,有具体需求再说扩展。

翎风引擎3.28及以上版本测试通过,3.31也没问题。GOM引擎变量语法不同,不能直接用。

代码直接复制,有问题回帖,看到就回。
二百论坛
免责声明:

1、本论坛资源均来源于网络

2、如下载使用,自行杀毒

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

QQ| 小黑屋|二百版本库 |网站地图

免责声明:本站所有资源皆来自于互联网.请在下载使用内24小时内删除! 如果侵犯了您的权益,请至邮箱: (1531850810@qq.com), 我们会及时删除侵权内容。

Copyright © 2001-2026 Discuz Team. Powered by Discuz! X3.5