找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 263|回复: 9

[翎风] CDK领取功能实现

[复制链接]

7

主题

66

回帖

310

积分

管理员

元宝
368
金币
-141
金刚石
0

荣誉管理论坛元老打工达人

发表于 2026-7-28 15:52:39 | 显示全部楼层 |阅读模式
给玩家发一个CDK码,他在游戏中点击一个NPC,输入CDK就可以领取对应的福利,这个在游戏中怎么用脚本实现。@82PC小秘书
回复

使用道具 举报

0

主题

70

回帖

19

积分

新手上路

元宝
0
金币
3
金刚石
0
发表于 2026-7-28 15:52:40 | 显示全部楼层
在NPC脚本中用`CheckVar`验证CDK状态,`#IF`判断有效性:
  1. [@main]
  2. #SAY
  3. 请输入CDK码:<输入/@@InPutString5>\

  4. [@InPutString5]
  5. #IF
  6. CheckVar HUMAN CDK_<$STR(S5)> = 未使用
  7. #ACT
  8. ; 执行奖励
  9. give 金币 100000
  10. CHANGEEXP + 10000
  11. MOV HUMAN CDK_<$STR(S5)> 已使用
  12. SENDMSG 6 CDK兑换成功!
  13. #ELSEACT
  14. SENDMSG 6 CDK无效或已使用。
复制代码
需提前用`MOV`预设CDK变量,或从文本列表读取。禁止修改客户端数据,服务器端变量保证安全。
回复

使用道具 举报

7

主题

66

回帖

310

积分

管理员

元宝
368
金币
-141
金刚石
0

荣誉管理论坛元老打工达人

 楼主| 发表于 2026-7-28 15:55:31 | 显示全部楼层
82PC小秘书 发表于 2026-7-28 15:52
在NPC脚本中用`CheckVar`验证CDK状态,`#IF`判断有效性:

[@main]

建议使用TXT存储CDK,用另一个TXT存储已领取列表,还要做到一个区只能领取一次的功能。@82PC小秘书
回复

使用道具 举报

0

主题

70

回帖

19

积分

新手上路

元宝
0
金币
3
金刚石
0
发表于 2026-7-28 15:55:32 | 显示全部楼层
NPC脚本示例:  
  1.   
  2. [@main]  
  3. #ACT  
  4. MOV S1  
  5. INPUTSTRING 请输入CDK码  
  6. GOTO @CheckCDK
  7. [@CheckCDK]  
  8. #IF  
  9. EQUAL S1  
  10. #ACT  
  11. MESSAGEBOX 输入不能为空。  
  12. BREAK  
  13. #IF  
  14. CHECKTEXTLIST ..\QuestDiary\CDK\已使用.txt <$STR(S1)>  
  15. #ACT  
  16. MESSAGEBOX 此CDK已被使用或无效。  
  17. BREAK  
  18. #ELSEACT  
  19. ADDTEXTLIST ..\QuestDiary\CDK\已使用.txt <$STR(S1)>  
  20. GIVE 金条 1  
  21. SENDMSG 6 CDK领取成功,获得金条x1!  
复制代码

需在QuestDiary\CDK目录下创建“已使用.txt”,CDK预先生成并交给玩家。
回复

使用道具 举报

7

主题

66

回帖

310

积分

管理员

元宝
368
金币
-141
金刚石
0

荣誉管理论坛元老打工达人

 楼主| 发表于 2026-7-28 16:52:12 | 显示全部楼层
@82PC小秘书 你小子还挺可以的,是个合格的技术,有两把刷子,给你加个大鸡腿,好好努力
回复

使用道具 举报

0

主题

70

回帖

19

积分

新手上路

元宝
0
金币
3
金刚石
0
发表于 2026-7-28 16:52:12 | 显示全部楼层
在NPC脚本中通过输入框获取CDK,校验并发放奖励。使用个人标记防止重复领取。
  1. [@main]
  2. #IF
  3. CHECK [200] 0
  4. #SAY
  5. 输入CDK兑换福利:<输入CDK码/@@InPutString1>
  6. #ELSESAY
  7. 你已经领取过CDK福利了。
  8. [@InPutString1]
  9. #IF
  10. CHECK [200] 0
  11. #ACT
  12. MOV S1 <$STR(S1)>
  13. ; 假设合法CDK为"2025NEWYEAR"
  14. #IF
  15. EQUAL S1 2025NEWYEAR
  16. #ACT
  17. SET [200] 1
  18. GIVE 金币 1000000
  19. GIVE 祝福油 5
  20. SENDMSG 6 CDK兑换成功,请查收背包。
  21. BREAK
  22. #ELSEACT
  23. SENDMSG 6 CDK无效,请检查后重试。
  24. BREAK
复制代码

将CDK列表、对应奖励存储在文本中循环校验可实现多CDK支持。
回复

使用道具 举报

6

主题

9

回帖

74

积分

注册会员

元宝
2
金币
57
金刚石
0
发表于 2026-7-28 22:51:38 来自手机 | 显示全部楼层
82PC小秘书 发表于 2026-7-28 16:52
在NPC脚本中通过输入框获取CDK,校验并发放奖励。使用个人标记防止重复领取。


真的这么厉害吗
回复

使用道具 举报

0

主题

70

回帖

19

积分

新手上路

元宝
0
金币
3
金刚石
0
发表于 2026-7-30 16:30:02 | 显示全部楼层
CDK通过检测文本文件实现,每个CDK一行,已使用则删除或标记。  

[
  1.   
  2. [@main]  
  3. #ACT  
  4. MOV S$输入CDK  
  5. #SAY  
  6. 请输入CDK码:\  
  7. <输入CDK码/@@InPutString80>\  
  8. <退出/@exit>  
  9. [@InPutString80]  
  10. #IF  
  11. CheckStringlength S80 > 0  
  12. #ACT  
  13. MOV S$输入CDK <$STR(S80)>  
  14. GOTO @CheckCDK  
  15. #ELSEACT  
  16. MESSAGEBOX 请输入有效CDK码。  
  17. [@CheckCDK]  
  18. #IF  
  19. CheckTextFile CDK列表.txt S$输入CDK  
  20. #ACT  
  21. #ELSEACT  
  22. MESSAGEBOX CDK码无效或已使用。  
  23. BREAK  
  24. #IF  
  25. CheckTextFile CDK已用.txt S$输入CDK  
  26. #ACT  
  27. MESSAGEBOX 该CDK已被领取。  
  28. BREAK  
  29. #ACT  
  30. AddTextList CDK已用.txt S$输入CDK  
  31. DelTextList CDK列表.txt S$输入CDK  
  32. GIVE 金条 1  
  33. GIVE 祝福油 1  
  34. SENDMSG 6 你成功领取了CDK奖励:金条、祝福油。  
  35. CLOSE  
复制代码


备好“CDK列表.txt”存放有效CDK,“CDK已用.txt”记录已领取。如需限制单角色,可用个人变量或数据文件记录。
回复

使用道具 举报

0

主题

56

回帖

2

积分

新手上路

元宝
0
金币
2
金刚石
0
发表于 2026-8-2 10:10:06 | 显示全部楼层
这个思路不难,NPC对话框里整个输入框,读表校验CDK对应奖励,然后发道具就行,建议加个防重复领取标记。
回复

使用道具 举报

11

主题

66

回帖

389

积分

中级会员

元宝
0
金币
330
金刚石
0
发表于 2026-8-8 14:23:32 | 显示全部楼层
搞个界面输入CDK,后端查表发奖励,注意防重复领取就行。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|八·二单机论坛 ( 冀ICP备2026022037号-1 )

GMT+8, 2026-8-31 14:51 , Processed in 0.089894 second(s), 31 queries .

Powered by 82pc U5.0

© 2026-2026 八二论坛.