找回密码
 register

QQ登录

只需一步,快速开始

查看: 110|回复: 1

[游戏教程] 新手手打代码:简单做一个兑换脚本 多个物品兑换一个道具

[复制链接]

[游戏教程] 新手手打代码:简单做一个兑换脚本 多个物品兑换一个道具

[复制链接]
  • 打卡等级:热心大叔
  • 打卡总天数:94
  • 打卡月天数:17
  • 打卡总奖励:94
  • 最近打卡:2025-01-18 01:28:20
Waylee

主题

0

回帖

1万

积分

仙帝

积分
12360
Waylee 2022-10-15 15:14 | 显示全部楼层 |阅读模式
客户环境:天龙怀旧服
修改要求:多个物品材料兑换一个道具 ,总有三个选项。兑换完成后给予全屏公告

功能代码:[XUEWU-20221015-XQF-1]
购买主题 本主题需向作者支付 20 金币 才能浏览
  • 打卡等级:热心大叔
  • 打卡总天数:94
  • 打卡月天数:17
  • 打卡总奖励:94
  • 最近打卡:2025-01-18 01:28:20
楼主
Waylee 楼主

主题

0

回帖

1万

积分

仙帝

积分
12360
Waylee 2022-10-15 19:57 | 显示全部楼层
兑换属性坐骑界面:这个和上次的一样,代码稍微简化了一点。同时加上了背包栏和材料栏空格的判断。虽然说这个格子可有可无并不影响兑换。但是作为案例和严谨性,需要注意的。
兑换属性坐骑.jpg
我们这个加到最上面,作为脚本的全局变量使用,多个函数可以同时使用。不需要重新声明。
  1. x181002_g_ZuoQi_Items = {10553165,10553166,10553163,10553162} --稀有属性坐骑ID
复制代码
兑换显示内容:
  1. --**********************************
  2. --事件交互入口
  3. --**********************************
  4. function x181002_OnDefaultEvent( sceneId, selfId, targetId )
  5.         BeginEvent( sceneId )
  6.                 strText = "快来看一看啦,全城最畅销的商品,最便宜的价格,客官您赶紧挑几件,绝对超值,包您买回去后今夜做梦都会笑呢~"
  7.                 AddText( sceneId, strText )
  8.                 AddNumText( sceneId, x181002_g_scriptId, "兑换稀有属性坐骑", 6, 3000)
  9.         EndEvent( sceneId )
  10.         DispatchEventList( sceneId, selfId, targetId )
  11. end
复制代码
这里的核心执行代码:
  1. --**********************************
  2. --事件列表选中一项
  3. --**********************************
  4. function x181002_OnEventRequest( sceneId, selfId, targetId, eventId )
  5.         --显示选项[XUEWU-20221015-XQF-2]
  6.         if GetNumText() == 3000 then
  7.                 BeginEvent( sceneId )
  8.                         strText = "    天音玉卷据说乃天音老人撰写,因机缘巧合流传於世,兑换属性坐骑必备之品。只要您集齐100件,即可到我这里任选一件属性坐骑。"
  9.                         for i=1,4 do
  10.                                 AddNumText( sceneId, x181002_g_scriptId, "#Y兑换"..GetItemName( sceneId, x181002_g_ZuoQi_Items[i]), 6, 3000+i)
  11.                         end
  12.                         AddText( sceneId, strText )
  13.                 EndEvent( sceneId )
  14.                 DispatchEventList( sceneId, selfId, targetId )
  15.     end
  16.         
  17.         --执行兑换[XUEWU-20221015-XQF-2]
  18.         if GetNumText() >=3001 and GetNumText() <=3004 then
  19.                 local SelectItem = GetNumText()
  20.                 local MaterialsRequired = 39999910
  21.                
  22.                 --检查数量
  23.                 if LuaFnGetAvailableItemCount(sceneId, selfId, MaterialsRequired) < 100 then
  24.                         x181002_Tips(sceneId,selfId,"你没有足够的材料。")
  25.                         return
  26.                 end
  27.                 local Sdaoju = LuaFnGetPropertyBagSpace( sceneId, selfId )
  28.         local Scailiao = LuaFnGetMaterialBagSpace( sceneId, selfId )
  29.         if (Sdaoju< 1 or  Scailiao < 1) then
  30.                         x181002_Tips( sceneId, selfId, "道具栏和材料栏需要同时最少留1个空位!" )
  31.                         return
  32.         end
  33.                 --满足条件
  34.                 local ret = LuaFnDelAvailableItem(sceneId, selfId, MaterialsRequired, 100)
  35.                 if ret ~= 1 then
  36.                         return   --假如删除操作有任何一个物品失败,则中断操作,不会给予玩家任何物品
  37.                 end

  38.                 --给予坐骑奖励
  39.                 local bagpos01 = TryRecieveItem( sceneId, selfId, x181002_g_ZuoQi_Items[ SelectItem - 3000 ], 1)
  40.                 local itemInfo = GetBagItemTransfer( sceneId, selfId, bagpos01 )
  41.                 local str = format("#P #{_INFOUSR%s}经过一番努力,终于收集全了象征无上至尊的天音玉卷100个。作为酬谢,洛阳女侠[82,179]特赠送#{_INFOMSG%s}一个。",GetName(sceneId,selfId), itemInfo)
  42.                 AddGlobalCountNews( sceneId,str)
  43.                 x181002_Tips(sceneId,selfId,"兑换成功!")

  44.         end
  45. end
复制代码
您需要登录后才可以回帖 登录 | register

本版积分规则

雪舞知识库 | 浙ICP备15015590号-1 | 萌ICP备20232229号|浙公网安备33048102000118号 |天天打卡

GMT+8, 2025-1-19 13:15 , Processed in 0.107144 second(s), 11 queries , Redis On.

Powered by XueWu Licensed

Copyright © Tencent Cloud.

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