石器时代LA官方

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3045|回复: 0

[Ab Lua] LUA人物骑乘权限提取

[复制链接]

1万

主题

491

回帖

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35504
石币
24669
发表于 2022-7-23 21:17:02 | 显示全部楼层 |阅读模式
  1. function checkEmptItemNum(charaindex)
  2.         EmptyItemNum = 0
  3.         for i = 9, 23 do
  4.                 if char.getItemIndex(charaindex, i) == -1 then
  5.                         EmptyItemNum = EmptyItemNum + 1
  6.                 end
  7.         end
  8.         return EmptyItemNum
  9. end

  10. function ShowDlg(meindex, talkerindex, page )
  11.                 token = "2                  『" .. char.getChar(meindex, "名字") .. "』\n"
  12.                                         .."请问你要提取哪样权限证书?\n"

  13.                 for i = 1, 6 do
  14.                         if (i + (page - 1) * 6) > table.getn(ride) then
  15.                                 break
  16.                         end
  17.                         token = token ..string.format("  %-22s会员点:%d\n", ride[i + (page - 1) * 6][1], ride[i + (page - 1) * 6][3])
  18.                 end

  19.                 if maxpage == 1 then
  20.                         button = "取消"
  21.                 elseif page == 1 and page < maxpage then
  22.                         button = "下一页"
  23.                 elseif page > 1 and page < maxpage then
  24.                         button = "上一页|下一页"
  25.                 elseif page == maxpage then
  26.                         button = "上一页"
  27.                 end
  28.                
  29.                 lssproto.windows(talkerindex, "选择框", button, page, char.getWorkInt( meindex, "对象"), token)
  30. end


  31. --NPC对话事件(NPC索引)
  32. function Talked(meindex, talkerindex, szMes, color )
  33.         if npc.isFaceToFace(meindex, talkerindex) == 1 then
  34.                 token = "                『" .. char.getChar(meindex, "名字") .. "』\n\n"
  35.                             .."请问您要把您拥有的骑乘权限提取出证书吗?一但提取出证书,您将会失去该骑宠权限哦~"
  36.                 lssproto.windows(talkerindex, "对话框", "确定|取消", 0, char.getWorkInt( meindex, "对象"), token)
  37.         end
  38. end

  39. --NPC窗口事件(NPC索引)
  40. function WindowTalked ( meindex, talkerindex, seqno, select, data)
  41.         if npc.isFaceToFace(meindex, talkerindex) == 1 then
  42.                 if seqno < 100 then
  43.                         if select == 0 then
  44.                                 local num = tonumber(data) + (seqno - 1) * 6
  45.                                 token = "                『" .. char.getChar(meindex, "名字") .. "』\n\n"
  46.                             .."你确定要提取" .. ride[num][1] .. "骑乘权限吗?但必需支付会员点:" .. ride[num][3] .. "点"
  47.                                 lssproto.windows(talkerindex, "对话框", "确定|取消", 100 + num, char.getWorkInt( meindex, "对象"), token)
  48.                         elseif select == 1 then
  49.                                 ShowDlg(meindex, talkerindex, 1)
  50.                         elseif select == 16 then
  51.                                 ShowDlg(meindex, talkerindex, seqno - 1)
  52.                         elseif select == 32 then
  53.                                 ShowDlg(meindex, talkerindex, seqno + 1)
  54.                         end
  55.                 else
  56.                         if select == 1 then
  57.                                 local id = seqno - 100
  58.                                 if id < 0 or id > table.getn(ride) then
  59.                                         return
  60.                                 end
  61.                                 if checkEmptItemNum(talkerindex) == 0 then
  62.                                         char.TalkToCli(talkerindex, meindex, "很抱歉,您的身上物品已满!", "红色")
  63.                                         return
  64.                                 end
  65.                                 if other.DataAndData(char.getInt(talkerindex, "证书骑宠"), ride[id][2]) == 0 then
  66.                                         char.TalkToCli(talkerindex, meindex, "很抱歉,你并没有" .. ride[id][1] .. "资格!", "红色")
  67.                                         return
  68.                                 end
  69.                                
  70.                                 if sasql.getVipPoint(talkerindex) < ride[id][3] then
  71.                                         char.TalkToCli(talkerindex, meindex, "很抱歉,你的会员点数少于" .. ride[id][3] .. "点!", "红色")
  72.                                         return
  73.                                 end
  74.                                
  75.                                 itemindex = char.Additem(talkerindex, 23150)
  76.                                 if itemindex > -1 then
  77.                                         sasql.setVipPoint(talkerindex, sasql.getVipPoint(talkerindex) - ride[id][3])
  78.                                         if other.DataAndData(char.getInt(talkerindex, "证书骑宠"), ride[id][2]) ~= 0 then
  79.                                                 char.setInt(talkerindex, "证书骑宠", char.getInt(talkerindex, "证书骑宠") - 2^ride[id][2])
  80.                                         end
  81.                                         item.setChar(itemindex, "名称", ride[id][1])
  82.                                         item.setChar(itemindex, "显示名", item.getChar(itemindex, "名称"))
  83.                                         item.setChar(itemindex, "字段", ride[id][2])
  84.                                         item.setChar(itemindex, "说明", "使用后可以获得" .. ride[id][1])
  85.                                         item.UpdataItemOne(talkerindex, itemindex)
  86.                                         char.TalkToCli(talkerindex, -1, "获得" .. item.getChar(itemindex, "名称") .. "物品,取消您原有的".. ride[id][1] .."并扣除会员点" .. ride[id][3] .. "点", "黄色")
  87.                                         char.complianceParameter(talkerindex)
  88.                                         char.ToAroundChar(talkerindex)
  89.                                 end
  90.                         end
  91.                 end
  92.         end
  93. end

  94. function Create(name, metamo, floor, x, y, dir)
  95.         --创建NPC(NPC名字,图像号,地图号,坐标X,坐标Y,方向号)将返回一个NPC索引
  96.         npcindex = npc.CreateNpc(name, metamo, floor, x, y, dir)
  97.         --设置事件触发(NPC索引,事件,执行函数,执行函数文件路径)
  98.         char.setFunctionPointer(npcindex, "对话事件", "Talked", "")

  99.         char.setFunctionPointer(npcindex, "窗口事件", "WindowTalked", "")
  100. end

  101. function data()
  102.         ride = {{"帖拉所伊朵骑乘权限", 0  , 99}
  103.                                 , {"贝鲁夏骑乘权限", 1  , 99}
  104.                                 , {"普鲁夏骑乘权限", 2  , 99}
  105.                                 }
  106.         maxpage = math.ceil(table.getn(ride) / 7)
  107. end  

  108. function main()
  109.         data()
  110.         Create("骑证提取师", 16050, 2005, 25, 28, 6)
  111. end
复制代码


回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|石器时代LA官方

GMT+8, 2024-4-29 10:35 , Processed in 0.106560 second(s), 21 queries .

Copyright © 2001-2023, Tencent Cloud.

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