石器时代LA官方

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

[Ab Lua] 泡点练术师

[复制链接]

1万

主题

491

回帖

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35504
石币
24669
发表于 2022-7-23 21:26:31 | 显示全部楼层 |阅读模式
  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 getIntPart(x)
  11.     if x <= 0 then
  12.        return math.ceil(x);
  13.     end

  14.     if math.ceil(x) == x then
  15.        x = math.ceil(x);
  16.     else
  17.        x = math.ceil(x) - 1;
  18.     end
  19.     return x;
  20. end

  21. --NPC对话事件(NPC索引)
  22. function Talked(meindex, talkerindex , szMes, color )
  23.         if npc.isFaceToFace(meindex, talkerindex) == 1 then
  24.                 token = "3                  『" .. char.getChar(meindex, "名字") .. "』\n"
  25.                                          .. "\n请问我有什么可以帮到您呢?"
  26.                                          .. "\n                 【查看我的泡点】"
  27.                                          .. "\n                 【泡点换兑声望】"
  28.                                          .. "\n                 【泡点换兑贝壳】"
  29.                                          .. "\n                 【泡点换兑活力】"
  30.                                          .. "\n                 【泡点换兑离线】"


  31.                 lssproto.windows(talkerindex, "选择框", "取消", 1, char.getWorkInt( meindex, "对象"), token)
  32.         end
  33. end

  34. --NPC窗口事件(NPC索引)
  35. function WindowTalked ( meindex, talkerindex, seqno, select, data)
  36.         point =  getIntPart(char.getInt(talkerindex, "在线时间") / 60 / 60) * 10
  37.         if seqno == 1 then
  38.                 if select == 0 then
  39.                         num = other.atoi(data)
  40.                         if num == 1 then
  41.                                 minute = getIntPart(char.getInt(talkerindex, "在线时间") / 60)
  42.                                 token = "                 『" .. char.getChar(meindex, "名字") .. "』\n"
  43.                                                                 .. "\n您当前的在线泡点时间:" .. getIntPart(minute / 60) .. "小时" .. minute % 60 .. "分钟"
  44.                                                                 .. "\n预计可换兑声望点数为:" .. point
  45.                                                                 .. "\n预计可换兑贝壳点数为:" .. point
  46.                                                                 .. "\n预计可换兑活力点数为:" .. getIntPart(point / 10)
  47.                                                                 .. "\n\nPS:每小时换兑10点声望或10点贝壳"
  48.                                 lssproto.windows(talkerindex, "对话框", "确定", 1, char.getWorkInt( meindex, "对象"), token)
  49.                         elseif num == 2 then
  50.                                 token = "\n                 『" .. char.getChar(meindex, "名字") .. "』\n\n"
  51.                                                                 .. "你目前最大可以换兑 " .. point .. " 声望!\n\n\n"
  52.                                                                 .. "请输入你需要换兑的声望数目:"
  53.                                 lssproto.windows(talkerindex, "输入框", "确定|取消", 2, char.getWorkInt( meindex, "对象"), token)
  54.                         elseif num == 3 then
  55.                                 token = "\n                 『" .. char.getChar(meindex, "名字") .. "』\n\n"
  56.                                                                 .. "你目前最大可以换兑 " .. point .. " 贝壳!\n\n\n"
  57.                                                                 .. "请输入你需要换兑的贝壳数目:"
  58.                                 lssproto.windows(talkerindex, "输入框", "确定|取消", 3, char.getWorkInt( meindex, "对象"), token)
  59.                         elseif num == 4 then
  60.                                 token = "\n                 『" .. char.getChar(meindex, "名字") .. "』\n\n"
  61.                                                                 .. "你目前最大可以换兑 " .. getIntPart(point / 10) .. " 活力!\n"
  62.                                                                 .. "活力换兑最低100起换!\n\n"
  63.                                                                 .. "请输入你需要换兑的活力数目:"
  64.                                 lssproto.windows(talkerindex, "输入框", "确定|取消", 4, char.getWorkInt( meindex, "对象"), token)
  65.                         elseif num == 5 then
  66.                                 token = "                 『" .. char.getChar(meindex, "名字") .. "』\n"
  67.                                                                 .. "\n每个离线之果需要24点泡点换兑,请问你是否需要换兑离线手环吗??"
  68.                                 lssproto.windows(talkerindex, "对话框", "确定|取消", 5, char.getWorkInt( meindex, "对象"), token)

  69.                         end
  70.                 end
  71.         elseif seqno == 2 then
  72.                 if select == 1 then
  73.                         num = other.atoi(data)
  74.                         if num < 0 then
  75.                                 char.TalkToCli(talkerindex, meindex, "请正确输入你要换兑的点数", "黄色")
  76.                                 return
  77.                         end
  78.                         if num <= point then
  79.                                 char.setInt(talkerindex, "在线时间", char.getInt(talkerindex, "在线时间") - num * 60 * 6)
  80.                                 char.setInt(talkerindex, "声望", char.getInt(talkerindex, "声望") + num * 100)
  81.                                 char.TalkToCli(talkerindex, -1, "恭喜你,成功换兑" .. num .. "个声望", "黄色")
  82.                         else
  83.                                 char.TalkToCli(talkerindex, -1, "换兑失败,你目前最大只能换兑" .. point .. "点声望!", "黄色")
  84.                         end
  85.                 end
  86.         elseif seqno == 3 then
  87.                 if select == 1 then
  88.                         num = other.atoi(data)
  89.                         if num < 0 then
  90.                                 char.TalkToCli(talkerindex, meindex, "请正确输入你要换兑的点数", "黄色")
  91.                                 return
  92.                         end
  93.                         if num <= point then
  94.                                 char.setInt(talkerindex, "在线时间", char.getInt(talkerindex, "在线时间") - num * 60 * 6)
  95.                                 char.setInt(talkerindex, "贝壳", char.getInt(talkerindex, "贝壳") + num)
  96.                                 char.TalkToCli(talkerindex, -1, "恭喜你,成功换兑" .. num .. "个贝壳", "黄色")
  97.                         else
  98.                                 char.TalkToCli(talkerindex, -1, "换兑失败,你目前最大只能换兑" .. point .. "点贝壳!", "黄色")
  99.                         end
  100.                 end
  101.         elseif seqno == 4 then
  102.                 if select == 1 then
  103.                         num = other.atoi(data)
  104.                         if num < 100 then
  105.                                 char.TalkToCli(talkerindex, meindex, "活力换兑最低100起换!", "黄色")
  106.                                 return
  107.                         end
  108.                         if num <= getIntPart(point / 10) then
  109.                                 char.setInt(talkerindex, "在线时间", char.getInt(talkerindex, "在线时间") - num * 60 * 60)
  110.                                 char.setInt(talkerindex, "活力", char.getInt(talkerindex, "活力") + num)
  111.                                 char.TalkToCli(talkerindex, -1, "恭喜你,成功换兑" .. num .. "个活力", "黄色")
  112.                         else
  113.                                 char.TalkToCli(talkerindex, -1, "换兑失败,你目前最大只能换兑" .. getIntPart(point / 10) .. "点活力!", "黄色")
  114.                         end
  115.                 end
  116.         elseif seqno == 5 then
  117.                 if select == 1 then
  118.                         if checkEmptItemNum(talkerindex) == 0 then
  119.                                 char.TalkToCli(talkerindex, meindex, "很抱歉,你的物品已满了!", "红色")
  120.                                 return
  121.                         end
  122.                         local minute = getIntPart(char.getInt(talkerindex, "在线时间") / 60 / 60)
  123.                         if minute < 24 then
  124.                                 char.TalkToCli(talkerindex, meindex, "你的在线时间不足,无法为你换兑离线之果!", "黄色")
  125.                                 return
  126.                         end
  127.                         char.setInt(talkerindex, "在线时间", char.getInt(talkerindex, "在线时间") - 24 * 60 * 60)
  128.                         char.TalkToCli(talkerindex, -1, "已扣除24点在线时间!", "黄色")
  129.                         npc.AddItem(talkerindex, 20848)
  130.                 end
  131.         end
  132. end

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

  138.         char.setFunctionPointer(npcindex, "窗口事件", "WindowTalked", "")
  139. end


  140. function main()
  141.         Create("泡点练术师", 16444, 2000, 62, 56, 6)
  142. end

复制代码


回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 09:54 , Processed in 0.101853 second(s), 21 queries .

Copyright © 2001-2023, Tencent Cloud.

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