石器时代LA官方

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

[Ab Lua] 诛神小金库师

[复制链接]

1万

主题

491

回帖

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35504
石币
24669
发表于 2022-8-31 10:33:40 | 显示全部楼层 |阅读模式
  1. function ShowHead(meindex, talkerindex)
  2.                 momny = char.getInt(talkerindex,"金库魔币")
  3.                 gold = char.getInt(talkerindex,"金库金币")
  4.                 vipl = char.getInt(talkerindex,"VIP等级")
  5.                 token = "3\n            § 请选择您需要的服务 §\n"
  6.                  .. "      ≡魔币:".. momny .." 金币:".. gold  .." 积分:".. vipl .."≡\n\n"
  7.                                                  .. "           ≡  取出仓库魔币 ≡\n"
  8.                                                  .. "           ≡  取出仓库金币 ≡\n"
  9.                                                  .. "           ≡  存入仓库魔币 ≡\n"
  10.                                                  .. "           ≡  存入仓库金币 ≡\n\n\n"
  11.                                                  --.. "      ≡ 金库现有魔币:".. momny .."  金币:".. gold .." ≡\n\n"
  12.                                                
  13.                 --lssproto.windows(talkerindex, "选择框", 8, 0, char.getWorkInt( meindex, "对象"), token)
  14.                 lssproto.windows(talkerindex, "选择框", "确定", 326, meindex, token)
  15. end

  16. function checkEmptItemNum(charaindex)--检测剩余物品格子
  17.         EmptyItemNum = 0
  18.         for i = 8, 27 do
  19.                 if char.getItemIndex(charaindex, i) == -1 then
  20.                         EmptyItemNum = EmptyItemNum + 1
  21.                 end
  22.         end
  23.         return EmptyItemNum
  24. end
  25. --NPC窗口事件(NPC索引)
  26. function WindowTalked ( meindex, talkerindex, seqno, select, data)
  27.         char.TalkToCli(talkerindex, -1, "Seqno:"..seqno.." | select:"..select.." | data:"..data, "红色")
  28.         if select == 2  then
  29.                 return
  30.         end
  31.        
  32.         --开始检测地图队伍数据
  33.         if seqno == 326 then        --一定要修改 自己的都是这个
  34.                 if select == 0  then --
  35.                         if other.atoi(data) == 1 then
  36.                                 momny = char.getInt(talkerindex,"金库魔币")
  37.                                 char.TalkToCli(talkerindex, -1, "您当前小金库魔币:"..momny, "黄色")
  38.                                 token = "\n   § 小金库管理大师竭诚为您服务 §\n\n\n"
  39.                                                 .. "\n\n\n请您输入要取出多少魔币放入背包"                       
  40.                                 lssproto.windows(talkerindex, "输入框", "确定|取消", 325, meindex, token)
  41.                                 return       
  42.                         end
  43.                         if other.atoi(data) == 2 then
  44.                                 momny = char.getInt(talkerindex,"金库金币")
  45.                                 char.TalkToCli(talkerindex, -1, "您当前小金库金币:"..momny, "黄色")
  46.                                 token = "\n   § 小金库管理大师竭诚为您服务 §\n\n\n"
  47.                                                 .. "\n\n\n请您输入要取出多少金币放入背包"                       
  48.                                 lssproto.windows(talkerindex, "输入框", "确定|取消", 324, meindex, token)
  49.                                 return       
  50.                         end
  51.                        
  52.                         if other.atoi(data) == 3  then
  53.                                 --momny = char.getInt(talkerindex,"金库金币")
  54.                                 --char.TalkToCli(talkerindex, -1, "您当前小金库金币:"..momny, "黄色")
  55.                                 token = "\n   § 小金库管理大师竭诚为您服务 §\n\n\n"
  56.                                                 .. "\n\n您要把魔币存入小金库吗?"
  57.                                                 .. "\n\n请您输入要存入多少魔币放入小金库"                       
  58.                                 lssproto.windows(talkerindex, "输入框", "确定|取消", 323, meindex, token)
  59.                                 --lssproto.windows(talkerindex, "对话框", "确定", 320, meindex, token)
  60.                                 return       
  61.                         end
  62.                        
  63.                         if other.atoi(data) == 4 then
  64.                                 --momny = char.getInt(talkerindex,"金库金币")
  65.                                 --char.TalkToCli(talkerindex, -1, "您当前小金库金币:"..momny, "黄色")
  66.                                 token = "\n   § 小金库管理大师竭诚为您服务 §\n\n\n"
  67.                                                 .. "\n\n您要把金币存入小金库吗?"       
  68.                                                 .. "\n\n请您输入要放入多少金币到小金库"                       
  69.                                 lssproto.windows(talkerindex, "输入框", "确定|取消", 322, meindex, token)                                               
  70.                                 --lssproto.windows(talkerindex, "对话框", "确定", 320, meindex, token)
  71.                                 return       
  72.                         end
  73.                 end
  74.                
  75.         elseif seqno == 322 then
  76.                 if select == 1  then --
  77.                         num = other.atoi(data)
  78.                         char.TalkToCli(talkerindex, -1, "您想要放入小金库金币数量:"..data, "黄色")
  79.                         --要检测取出的小于当前剩余的才可以
  80.                         char.TalkToCli(talkerindex, -1, "您身上金币数量:"..char.getitemunbforid(talkerindex,golditemid) , "黄色")
  81.                         if char.getitemunbforid(talkerindex,golditemid) < num then
  82.                                 char.TalkToCli(talkerindex, -1, "您身上金币数量不足!!", "黄色")
  83.                                 return
  84.                         end
  85.                         char.TalkToCli(talkerindex, -1, "您小金库放入后金币:"..char.getInt(talkerindex,"金库金币") + num, "黄色")
  86.                         char.TalkToCli(talkerindex, -1, "您身上金币:"..char.getInt(talkerindex,"金库金币"), "黄色")
  87.                         --char.TalkToCli(talkerindex, -1, "您仓库魔币:"..char.getInt(talkerindex,"仓库魔币"), "黄色")
  88.                         if char.getInt(talkerindex,"金库金币") + num <= 100000000 and num <= char.getitemunbforid(talkerindex,golditemid) then
  89.                                 momnyrest = char.getInt(talkerindex,"金库金币") + num --加上现在的要写入现在的值
  90.                                 --身上要减少的金币
  91.                                 char.delitemunbforid(talkerindex,golditemid,num)
  92.                                 if momnyrest >= 0 then       
  93.                                         char.setInt(talkerindex,"金库金币",momnyrest)--要检测下是不是还有
  94.                                 end
  95.                                 return
  96.                         else
  97.                                 char.TalkToCli(talkerindex, -1, "您放入的金币数据不对!!!!", "黄色")
  98.                         end                               
  99.                 end
  100.                
  101.         elseif seqno == 323 then
  102.                 if select == 1  then --
  103.                         num = other.atoi(data)
  104.                         char.TalkToCli(talkerindex, -1, "您想要放入小金库魔币:"..data, "黄色")
  105.                         --要检测取出的小于当前剩余的才可以
  106.                         char.TalkToCli(talkerindex, -1, "您小金库放入后魔币:"..char.getInt(talkerindex,"金库魔币") + num, "黄色")
  107.                         char.TalkToCli(talkerindex, -1, "您身上魔币:"..char.getInt(talkerindex,"身上魔币"), "黄色")
  108.                         char.TalkToCli(talkerindex, -1, "您仓库魔币:"..char.getInt(talkerindex,"仓库魔币"), "黄色")
  109.                         if char.getInt(talkerindex,"金库魔币") + num <= 100000000 and num <= char.getInt(talkerindex,"身上魔币") then
  110.                                 momnyrest = char.getInt(talkerindex,"金库魔币") + num --加上现在的要写入现在的值
  111.                                 --身上要减少的魔币
  112.                                 npc.DelGold(talkerindex,num)
  113.                                 char.Updata(talkerindex,"魔币")
  114.                                 if momnyrest >= 0 then       
  115.                                         char.setInt(talkerindex,"金库魔币",momnyrest)--要检测下是不是还有
  116.                                 end
  117.                                 return
  118.                         else
  119.                                 char.TalkToCli(talkerindex, -1, "您放入的魔币数据不对!!!!", "黄色")
  120.                         end                               
  121.                 end

  122.         elseif seqno == 325 then
  123.                 if select == 1  then --
  124.                         num = other.atoi(data)
  125.                         char.TalkToCli(talkerindex, -1, "您想要取出小金库魔币:"..data, "黄色")
  126.                         --要检测取出的小于当前剩余的才可以
  127.                         if char.getInt(talkerindex,"金库魔币") >= num then
  128.                                 momnyrest = char.getInt(talkerindex,"金库魔币") - num
  129.                                 npc.AddGold(talkerindex,num)
  130.                                 char.Updata(talkerindex,"魔币")
  131.                                 if momnyrest >= 0 then       
  132.                                         char.setInt(talkerindex,"金库魔币",momnyrest)--要检测下是不是还有
  133.                                 end
  134.                                 return
  135.                         else
  136.                                 char.TalkToCli(talkerindex, -1, "您想要取的小金库魔币太多了", "黄色")
  137.                         end                               
  138.                 end
  139.                
  140.         elseif seqno == 324 then
  141.                 if select == 1  then --
  142.                         num = other.atoi(data) --取软妹币要增加物品检测物品格子
  143.                         if checkEmptItemNum(talkerindex) == 0 then
  144.                                 char.TalkToCli(talkerindex, meindex, "物品已满,请道具栏留有足够的空位!", "黄色")
  145.                                 return
  146.                         end
  147.                         char.TalkToCli(talkerindex, -1, "您的背包空位置数量:"..checkEmptItemNum(talkerindex), "黄色")
  148.                         char.TalkToCli(talkerindex, -1, "您想要取出小金库软妹币:"..data, "黄色")
  149.                         if char.getInt(talkerindex,"金库金币") >= num then
  150.                                 goldrest = char.getInt(talkerindex,"金库金币") - num
  151.                                 npc.AddItem(talkerindex,golditemid,num)--给金卡
  152.                                 --char.Updata(talkerindex,"魔币")--要刷新物品
  153.                                 if goldrest >= 0 then
  154.                                         char.setInt(talkerindex,"金库金币",goldrest)--设置剩余数量要检测下是不是还有
  155.                                 end
  156.                                 return
  157.                         else
  158.                                 char.TalkToCli(talkerindex, -1, "您想要取的小金库金币太多了", "黄色")
  159.                         end
  160.                 end
  161.        
  162.         elseif seqno == 2 then

  163.         end
  164. end

  165. function ShowWindow(meindex, talkerindex, page, maxpage, seqno, token, mytype)
  166.                 char.setWorkInt(talkerindex,"NPC临时11",page)
  167.                
  168.                 if maxpage == 99 then
  169.                         button = 8
  170.                 elseif maxpage == 1 then
  171.                         button = 12
  172.                 elseif maxpage == 944 then
  173.                         button = 44
  174.                 elseif page == 1 and page < maxpage then
  175.                         button = 40
  176.                 elseif page > 1 and page < maxpage then
  177.                         button = 56
  178.                 elseif page == maxpage then
  179.                         button = 24
  180.                 end
  181.                
  182.                 if mytype == 1 then
  183.                         lssproto.windows(talkerindex, "选择框", button, seqno, char.getWorkInt( meindex, "对象"), token)
  184.                 elseif mytype == 2 then
  185.                         lssproto.windows(talkerindex, "对话框", button, seqno, char.getWorkInt( meindex, "对象"), token)
  186.                 elseif mytype == 3 then
  187.                         lssproto.windows(talkerindex, "宽输入框", button, seqno, char.getWorkInt( meindex, "对象"), token)
  188.                 end
  189. end

  190. --NPC对话事件(NPC索引)
  191. function Talked(meindex, talkerindex, szMes, color )
  192.         print("NPCindex")
  193.         print (meindex)
  194.         print("玩家index")
  195.         print (talkerindex)
  196.         if npc.isFaceToFace(meindex, talkerindex) == 1 then
  197.                 ShowHead(meindex, talkerindex)
  198.         end
  199. end

  200. function RandomIndex(tabNum,indexNum)
  201.         indexNum = indexNum or tabNum
  202.         local t = {}
  203.         local rt = {}
  204.         for i = 1,indexNum do
  205.                 local ri = math.random(1,tabNum + 1 - i)
  206.                 local v = ri
  207.                 for j = 1,tabNum do
  208.                         if not t[j] then
  209.                                 ri = ri - 1
  210.                                 if ri == 0 then
  211.                                         table.insert(rt,j)
  212.                                         t[j] = true
  213.                                 end
  214.                         end
  215.                 end
  216.         end
  217.         return rt
  218. end

  219. function Loop(meindex)
  220.         print("陪练循环函数")
  221.         char.RandRandWalk(meindex)
  222.         --char.ToAroundChar(meindex)
  223.         if char.getInt(meindex, "原图像号") == char.getInt(meindex, "图像号") then
  224.                 --print("1陪练循环函数")
  225.                 char.setInt(meindex, "图像号", 100100)
  226.                 --char.RandRandWalk(meindex)
  227.                 --char.ToAroundChar(meindex)
  228.                 --char.setInt(meindex, "循环事件时间", 2000)
  229.         else
  230.                 --print("2陪练循环函数")
  231.                 char.setInt(meindex, "图像号", char.getInt(meindex, "原图像号"))
  232.                 --char.RandRandWalk(meindex)
  233.                 --char.setInt(meindex, "循环事件时间", 0)
  234.         end
  235.         --char.ToAroundChar(meindex)
  236. end

  237. --NPC重叠事件(NPC索引, 玩家索引)
  238. function Overlap(meindex, toindex)
  239.                 print()
  240.                 print("当前是踩踏事件")
  241.                 print( tonumber(os.date("%M", os.time())))--分钟
  242.                 battleindex = battle.CreateVsEnemy(toindex, meindex, enemytable)
  243.                 --[[char.setWorkInt(meindex, "NPC临时1", other.time() + 60)
  244.                 --战斗宠物数组,设置战斗的宠物ID,最大10只
  245.                 enemyid = char.getWorkInt(meindex, "NPC临时3")
  246.                 battleindex = battle.CreateVsEnemy(toindex, meindex, enemytable)]]
  247. end
  248. --[[
  249. function NetLoopFunction()
  250.         print()
  251.         print("当前小时")
  252.         print( tonumber(os.date("%H", os.time())))--小时
  253.         print("当前分钟")
  254.         print( tonumber(os.date("%M", os.time())))--分钟
  255. end
  256. ]]
  257. --NPC战斗结束事件(NPC索引, 战斗索引,赢败)
  258. function BattleOver(meindex, battleindex, iswin)
  259.                 --当NPC输了
  260.                 print()
  261.                 print("当前是战斗后事件")
  262.                 print("战斗结束了")
  263.                 print(iswin)
  264.                 print()
  265. end


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

  271.         char.setFunctionPointer(npcindex, "窗口事件", "WindowTalked", "")--ok
  272.         char.setInt(npcindex, "循环事件时间", 50000)
  273.         --char.setFunctionPointer(npcindex, "循环事件", "Loop", "")--NPC 走路还没OK 和 这个 没什么关系不能用这个走路要不同步不对应
  274.         --char.setFunctionPointer(npcindex, "重叠事件", "Overlap", "") --ok
  275.         --char.setFunctionPointer(npcindex, "战后事件", "BattleOver", "")
  276. end


  277. function data()               
  278.         golditemid = 55555;
  279.         TM_Gold = {0,0,0,0,0}
  280.        
  281.         TM_Vigor = {0,0,0,0,0}
  282.        
  283.         TM_SW = {0,0,0,0,0}
  284.        
  285.         TM_Point = {0,0,0,0,0}
  286.         TM_MapName = {" 测试法兰城 ","  80级练级地图 ","  30级练级地图 "," 130级内心 ",""}
  287.         --TM_MapName = {" 120级雷龙区 ","  90级雷龙区 ","  80级穿甲区 "," 130级草泥区 ",""}
  288.         --TM_MapName = {" 120级雷龙区 ","  90级雷龙区 ","  80级穿甲区 ",""}
  289.        
  290.         --TM_Map = {500,11004,10001,34567,0}
  291.         TM_Map = {1000,11004,10001,34567,0}
  292.                                                                                 
  293.         EmptyTeamPlayer = {}
  294.         FullTeamPlayer = {}
  295.         EmptyTeamSold = {}
  296.         FullTeamSold = {}
  297.         enemytable = {enemyid, 1, 2, 3, 4, 5, 6, 1, 2, 3}
  298. end

  299. function main()
  300.         data()
  301.         Create("「 诛神小金库师 」", 14154, 1000, 247, 84, 6)--1000, 227, 85, 6)
  302. end
复制代码

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 08:59 , Processed in 0.103557 second(s), 21 queries .

Copyright © 2001-2023, Tencent Cloud.

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