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

[Ab Lua] 诛神转生师

[复制链接]

1万

主题

491

回帖

3万

积分

管理员

积分
35668
石币
24817
发表于 2022-8-31 10:32:30 | 显示全部楼层 |阅读模式
  1. function ShowHead(meindex, talkerindex)
  2.                 momny = char.getInt(talkerindex,"金库魔币")
  3.                 gold = char.getInt(talkerindex,"金库金币")
  4.                 vipl = char.getInt(talkerindex,"VIP等级")
  5.                 trans = char.getInt(talkerindex,"转生次数")
  6.                 token = "3\n            § 请选择您需要的服务 §\n\n\n"
  7.                                                  .. "           ≡  转生角色 ≡\n"
  8.                                                  .. "           ≡  转生宠物 ≡\n\n"
  9.                                                  --.. "           ≡  存入小金库魔币 ≡\n"
  10.                                                  --.. "           ≡  存入金库软妹币 ≡\n\n"
  11.                                                  --.. "      ≡ 金库现有魔币:".. momny .."  金币:".. gold .." ≡\n\n"
  12.                                                  .. "           ≡     您当前转生次数:".. trans .."  ≡\n"
  13.                                                  .. "      ≡ 金库魔币:".. momny .."  金币:".. gold  .."    VIP积分:".. vipl .."  ≡\n\n"
  14.                                                  
  15.                 --lssproto.windows(talkerindex, "选择框", 8, 0, char.getWorkInt( meindex, "对象"), token)
  16.                 lssproto.windows(talkerindex, "选择框", "确定", 326, meindex, token)
  17. end

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

  124.         elseif seqno == 325 then--转生角色
  125.                 if select == 1  then --
  126.                         trans = char.getInt(talkerindex,"转生次数")
  127.                         char.TalkToCli(talkerindex, -1, "您当前转生次数:"..trans, "黄色")
  128.                         --要检测下一转需要条件没转对应等级和对应的转生需要物品
  129.                         if trans == 0 then --0转1
  130.                                 char.TalkToCli(talkerindex, -1, "您体力点数:"..char.getInt(talkerindex,"体力"), "黄色")
  131.                                 char.TalkToCli(talkerindex, -1, "您腕力点数:"..char.getInt(talkerindex,"腕力"), "黄色")
  132.                                 char.TalkToCli(talkerindex, -1, "您耐力点数:"..char.getInt(talkerindex,"耐力"), "黄色")
  133.                                 char.TalkToCli(talkerindex, -1, "您速度点数:"..char.getInt(talkerindex,"速度"), "黄色")
  134.                                 char.TalkToCli(talkerindex, -1, "您魔法点数:"..char.getInt(talkerindex,"魔法"), "黄色")
  135.                                 char.TalkToCli(talkerindex, -1, "您升级点点数:"..char.getInt(talkerindex,"升级点"), "黄色")
  136.                                 if char.getInt(talkerindex, "等级") < 400 then --等级不够
  137.                                         char.TalkToCli(talkerindex, -1, "您当前转生次数:"..trans.."需要400级才能进修到下次转生!当前您等级不够请努力进修!", "黄色")
  138.                                         return
  139.                                 end
  140.                                 --加检测身上物品
  141.                                 if char.getitemunbforid(talkerindex,66610) < 5 then
  142.                                         char.TalkToCli(talkerindex, -1, "您身上转生石数量不足!!", "黄色")
  143.                                         return
  144.                                 end
  145.                                 char.delitemunbforid(talkerindex,66610,5)
  146.                                 --开始写转生需要处理的属性全部清0 在增加对应的属性                               
  147.                                 char.setInt(talkerindex,"体力",0)
  148.                                 char.setInt(talkerindex,"腕力",0)
  149.                                 char.setInt(talkerindex,"耐力",0)
  150.                                 char.setInt(talkerindex,"速度",0)
  151.                                 char.setInt(talkerindex,"魔法",0)
  152.                                 char.setInt(talkerindex,"升级点",500)
  153.                                 char.setInt(talkerindex, "等级",1)
  154.                                 char.Updata(talkerindex,"全部")
  155.                                 char.TalkToCli(talkerindex, -1, "您转生后的点数", "黄色")
  156.                                 char.TalkToCli(talkerindex, -1, "您腕力点数:"..char.getInt(talkerindex,"腕力"), "黄色")
  157.                                 char.TalkToCli(talkerindex, -1, "您耐力点数:"..char.getInt(talkerindex,"耐力"), "黄色")
  158.                                 char.TalkToCli(talkerindex, -1, "您速度点数:"..char.getInt(talkerindex,"速度"), "黄色")
  159.                                 char.TalkToCli(talkerindex, -1, "您魔法点数:"..char.getInt(talkerindex,"魔法"), "黄色")
  160.                                 char.TalkToCli(talkerindex, -1, "您升级点点数:"..char.getInt(talkerindex,"升级点"), "黄色")
  161.                                 char.setInt(talkerindex,"转生次数",1)
  162.                         end               

  163.                         if trans == 1 then --1转2
  164.                                 char.TalkToCli(talkerindex, -1, "您体力点数:"..char.getInt(talkerindex,"体力"), "黄色")
  165.                                 char.TalkToCli(talkerindex, -1, "您腕力点数:"..char.getInt(talkerindex,"腕力"), "黄色")
  166.                                 char.TalkToCli(talkerindex, -1, "您耐力点数:"..char.getInt(talkerindex,"耐力"), "黄色")
  167.                                 char.TalkToCli(talkerindex, -1, "您速度点数:"..char.getInt(talkerindex,"速度"), "黄色")
  168.                                 char.TalkToCli(talkerindex, -1, "您魔法点数:"..char.getInt(talkerindex,"魔法"), "黄色")
  169.                                 char.TalkToCli(talkerindex, -1, "您升级点点数:"..char.getInt(talkerindex,"升级点"), "黄色")
  170.                                 if char.getInt(talkerindex, "等级") < 450 then --等级不够
  171.                                         char.TalkToCli(talkerindex, -1, "您当前转生次数:"..trans.."需要450级才能进修到下次转生!当前您等级不够请努力进修!", "黄色")
  172.                                         return
  173.                                 end
  174.                                 --开始写转生需要处理的属性全部清0 在增加对应的属性                                                               
  175.                                 char.setInt(talkerindex,"体力",0)
  176.                                 char.setInt(talkerindex,"腕力",0)
  177.                                 char.setInt(talkerindex,"耐力",0)
  178.                                 char.setInt(talkerindex,"速度",0)
  179.                                 char.setInt(talkerindex,"魔法",0)
  180.                                 char.setInt(talkerindex,"升级点",1000)       
  181.                                 char.setInt(talkerindex, "等级",1)
  182.                                 char.Updata(talkerindex,"全部")
  183.                                 char.TalkToCli(talkerindex, -1, "您转生后的点数", "黄色")
  184.                                 char.TalkToCli(talkerindex, -1, "您腕力点数:"..char.getInt(talkerindex,"腕力"), "黄色")
  185.                                 char.TalkToCli(talkerindex, -1, "您耐力点数:"..char.getInt(talkerindex,"耐力"), "黄色")
  186.                                 char.TalkToCli(talkerindex, -1, "您速度点数:"..char.getInt(talkerindex,"速度"), "黄色")
  187.                                 char.TalkToCli(talkerindex, -1, "您魔法点数:"..char.getInt(talkerindex,"魔法"), "黄色")
  188.                                 char.TalkToCli(talkerindex, -1, "您升级点点数:"..char.getInt(talkerindex,"升级点"), "黄色")
  189.                                 char.setInt(talkerindex,"转生次数",2)
  190.                         end                               
  191.                 end
  192.                
  193.         elseif seqno == 324 then
  194.                 if select == 1  then --
  195.                         num = other.atoi(data) --取软妹币要增加物品检测物品格子
  196.                         if checkEmptItemNum(talkerindex) == 0 then
  197.                                 char.TalkToCli(talkerindex, meindex, "物品已满,请道具栏留有足够的空位!", "黄色")
  198.                                 return
  199.                         end
  200.                         char.TalkToCli(talkerindex, -1, "您的背包空位置数量:"..checkEmptItemNum(talkerindex), "黄色")
  201.                         char.TalkToCli(talkerindex, -1, "您想要取出小金库软妹币:"..data, "黄色")
  202.                         if char.getInt(talkerindex,"金库金币") >= num then
  203.                                 goldrest = char.getInt(talkerindex,"金库金币") - num
  204.                                 npc.AddItem(talkerindex,473658,num)--给金卡
  205.                                 --char.Updata(talkerindex,"魔币")--要刷新物品
  206.                                 if goldrest >= 0 then
  207.                                         char.setInt(talkerindex,"金库金币",goldrest)--设置剩余数量要检测下是不是还有
  208.                                 end
  209.                                 return
  210.                         else
  211.                                 char.TalkToCli(talkerindex, -1, "您想要取的小金库金币太多了", "黄色")
  212.                         end
  213.                 end
  214.        
  215.         elseif seqno == 2 then

  216.         end
  217. end

  218. function ShowWindow(meindex, talkerindex, page, maxpage, seqno, token, mytype)
  219.                 char.setWorkInt(talkerindex,"NPC临时11",page)
  220.                
  221.                 if maxpage == 99 then
  222.                         button = 8
  223.                 elseif maxpage == 1 then
  224.                         button = 12
  225.                 elseif maxpage == 944 then
  226.                         button = 44
  227.                 elseif page == 1 and page < maxpage then
  228.                         button = 40
  229.                 elseif page > 1 and page < maxpage then
  230.                         button = 56
  231.                 elseif page == maxpage then
  232.                         button = 24
  233.                 end
  234.                
  235.                 if mytype == 1 then
  236.                         lssproto.windows(talkerindex, "选择框", button, seqno, char.getWorkInt( meindex, "对象"), token)
  237.                 elseif mytype == 2 then
  238.                         lssproto.windows(talkerindex, "对话框", button, seqno, char.getWorkInt( meindex, "对象"), token)
  239.                 elseif mytype == 3 then
  240.                         lssproto.windows(talkerindex, "宽输入框", button, seqno, char.getWorkInt( meindex, "对象"), token)
  241.                 end
  242. end

  243. --NPC对话事件(NPC索引)
  244. function Talked(meindex, talkerindex, szMes, color )
  245.         print("NPCindex")
  246.         print (meindex)
  247.         print("玩家index")
  248.         print (talkerindex)
  249.         if npc.isFaceToFace(meindex, talkerindex) == 1 then
  250.                 ShowHead(meindex, talkerindex)
  251.         end
  252. end

  253. function RandomIndex(tabNum,indexNum)
  254.         indexNum = indexNum or tabNum
  255.         local t = {}
  256.         local rt = {}
  257.         for i = 1,indexNum do
  258.                 local ri = math.random(1,tabNum + 1 - i)
  259.                 local v = ri
  260.                 for j = 1,tabNum do
  261.                         if not t[j] then
  262.                                 ri = ri - 1
  263.                                 if ri == 0 then
  264.                                         table.insert(rt,j)
  265.                                         t[j] = true
  266.                                 end
  267.                         end
  268.                 end
  269.         end
  270.         return rt
  271. end

  272. function Loop(meindex)
  273.         print("陪练循环函数")
  274.         char.RandRandWalk(meindex)
  275.         --char.ToAroundChar(meindex)
  276.         if char.getInt(meindex, "原图像号") == char.getInt(meindex, "图像号") then
  277.                 --print("1陪练循环函数")
  278.                 char.setInt(meindex, "图像号", 100100)
  279.                 --char.RandRandWalk(meindex)
  280.                 --char.ToAroundChar(meindex)
  281.                 --char.setInt(meindex, "循环事件时间", 2000)
  282.         else
  283.                 --print("2陪练循环函数")
  284.                 char.setInt(meindex, "图像号", char.getInt(meindex, "原图像号"))
  285.                 --char.RandRandWalk(meindex)
  286.                 --char.setInt(meindex, "循环事件时间", 0)
  287.         end
  288.         --char.ToAroundChar(meindex)
  289. end

  290. --NPC重叠事件(NPC索引, 玩家索引)
  291. function Overlap(meindex, toindex)
  292.                 print()
  293.                 print("当前是踩踏事件")
  294.                 print( tonumber(os.date("%M", os.time())))--分钟
  295.                 battleindex = battle.CreateVsEnemy(toindex, meindex, enemytable)
  296.                 --[[char.setWorkInt(meindex, "NPC临时1", other.time() + 60)
  297.                 --战斗宠物数组,设置战斗的宠物ID,最大10只
  298.                 enemyid = char.getWorkInt(meindex, "NPC临时3")
  299.                 battleindex = battle.CreateVsEnemy(toindex, meindex, enemytable)]]
  300. end
  301. --[[
  302. function NetLoopFunction()
  303.         print()
  304.         print("当前小时")
  305.         print( tonumber(os.date("%H", os.time())))--小时
  306.         print("当前分钟")
  307.         print( tonumber(os.date("%M", os.time())))--分钟
  308. end
  309. ]]
  310. --NPC战斗结束事件(NPC索引, 战斗索引,赢败)
  311. function BattleOver(meindex, battleindex, iswin)
  312.                 --当NPC输了
  313.                 print()
  314.                 print("当前是战斗后事件")
  315.                 print("战斗结束了")
  316.                 print(iswin)
  317.                 print()
  318. end


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

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


  330. function data()                       
  331.         TM_Gold = {0,0,0,0,0}
  332.        
  333.         TM_Vigor = {0,0,0,0,0}
  334.        
  335.         TM_SW = {0,0,0,0,0}
  336.        
  337.         TM_Point = {0,0,0,0,0}
  338.         TM_MapName = {" 测试法兰城 ","  80级练级地图 ","  30级练级地图 "," 130级内心 ",""}
  339.         --TM_MapName = {" 120级雷龙区 ","  90级雷龙区 ","  80级穿甲区 "," 130级草泥区 ",""}
  340.         --TM_MapName = {" 120级雷龙区 ","  90级雷龙区 ","  80级穿甲区 ",""}
  341.        
  342.         --TM_Map = {500,11004,10001,34567,0}
  343.         TM_Map = {1000,11004,10001,34567,0}
  344.                                                                                 
  345.         EmptyTeamPlayer = {}
  346.         FullTeamPlayer = {}
  347.         EmptyTeamSold = {}
  348.         FullTeamSold = {}
  349.         enemytable = {enemyid, 1, 2, 3, 4, 5, 6, 1, 2, 3}
  350. end

  351. function main()
  352.         data()
  353.         Create("「 诛神转生师 」", 100000, 1000, 227, 87, 6)--1000, 227, 85, 6)
  354. end
复制代码


回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-1 08:36 , Processed in 0.145727 second(s), 22 queries .

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