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

[Ab Lua] 宠物换肤

[复制链接]
匿名
匿名  发表于 2023-2-22 15:06:36 |阅读模式
  1. function ShowHead(meindex, talkerindex)
  2.         if npc.isFaceToFace(meindex, talkerindex) == 1 then
  3.                 token = "3                『" .. char.getChar(meindex, "名字") .. "』\n"
  4.                                                 .."\n          请问您需要些什么服务呢??"
  5.                                                 .."\n               〖更换宠物外形〗"
  6.                                                 .."\n               〖恢复宠物外形〗"
  7.                 lssproto.windows(talkerindex, "选择框", "取消", 1, char.getWorkInt( meindex, "对象"), token)
  8.         end
  9. end

  10. function Talked(meindex, talkerindex , szMes, color )
  11.         if npc.isFaceToFace(meindex, talkerindex) == 1 then
  12.                 ShowHead(meindex, talkerindex)
  13.         end
  14. end

  15. function WindowTalked ( meindex, talkerindex, seqno, select, data)
  16.         if seqno == 1 then
  17.                 if select == 2 or select == 8 then
  18.                         return
  19.                 end
  20.                 local num = other.atoi(data)
  21.                 if num == 1 then
  22.                         local str
  23.                         if paymod == 1 then
  24.                                 str = "\n需要消耗〖" ..TM_JINBI.."金币〗\n按确定开始变身!"
  25.                         elseif paymod == 2 then
  26.                                 str = "\n需要消耗〖" ..TM_Fame.."声望〗与〖" ..TM_Vigor.."活力〗\n按确定开始变身!"
  27.                         end
  28.                         token = "\n宠物可互换外形,互换后不增加宠物属性"
  29.                         .."\n    ★★被提取外形的宠物会被删除★★"
  30.                         .."\n      ★★骑宠转换后不可骑乘★★"
  31.                         .."\n    ★★可骑乘的宠物不可提取外形★★"
  32.                         ..str
  33.                         lssproto.windows(talkerindex, "对话框", "确定|取消", 2, char.getWorkInt( meindex, "对象"), token)
  34.                 elseif num == 2 then
  35.                         if paymod == 1 then
  36.                                 token = "\n" .. "\n恢复宠物外形\n需要消耗〖" ..TM_JINBI.."金币〗\n按确定开始变身!"
  37.                         elseif paymod == 2 then
  38.                                 token = "\n" .. "\n恢复宠物外形\n需要消耗〖" ..TM_Fame.."声望〗与〖" ..TM_Vigor.."活力〗\n按确定开始变身!"
  39.                         end
  40.                         lssproto.windows(talkerindex, "对话框", "确定", 7, char.getWorkInt( meindex, "对象"), token)
  41.                 end
  42.         elseif seqno == 2 then
  43.                 if select == 1 or select == 4 then
  44.                         if paymod == 1 then
  45.                                 local TM_MYJB = sasql.getVipPoint(talkerindex)
  46.                                 if TM_MYJB<TM_JINBI then
  47.                                         char.TalkToCli(talkerindex, -1, "〖温馨提示〗你的金币都不够,还想更换宠物外形?!", "随机色")
  48.                                         return
  49.                                 end                       
  50.                         elseif paymod == 2 then
  51.                                 local TM_MySW = char.getInt(talkerindex, "声望")
  52.                                 local TM_MyHL = char.getInt(talkerindex, "活力")
  53.                        
  54.                                 if TM_MySW < TM_Fame*100 then
  55.                                         char.TalkToCli(talkerindex, meindex, "〖温馨提示〗你的声望都不够,还想更换宠物外形?多挂机少说话~", "随机色")
  56.                                         return
  57.                                 end
  58.                        
  59.                                 if TM_MyHL < TM_Vigor then
  60.                                         char.TalkToCli(talkerindex, meindex, "〖温馨提示〗你的活力都不够,这次是帮不到你了,多在线点时间,活力自然就多了。", "随机色")
  61.                                         return
  62.                                 end
  63.                         end
  64.                         token = "\n"
  65.                                         .. "\n请选择需要换皮肤的宠物"
  66.                         lssproto.windows(talkerindex, "对话框", "确定", 3, char.getWorkInt( meindex, "对象"), token)
  67.                 end
  68.         elseif seqno == 3 then
  69.                 lssproto.windows(talkerindex, "宠物框", "取消", 4, char.getWorkInt( meindex, "对象"), "")
  70.         elseif seqno == 4 then
  71.                 pethaveid1 = other.atoi(data)
  72.                 if pethaveid1 < 1 or pethaveid1 > 5 then
  73.                         return
  74.                 end
  75.                 TM_PetIndex1 = char.getCharPet(talkerindex,pethaveid1-1)
  76.                 pet1 = TM_PetIndex1
  77.                 petpic1 = char.getInt(TM_PetIndex1,"图像号")
  78.                 yuanpetpic1 = char.getInt(TM_PetIndex1,"整数存储1")
  79.                 if yuanpetpic1 == pet1pic1 then
  80.                         char.TalkToCli(talkerindex, -1, "〖温馨提示〗此宠物曾经已经更换过外形,请恢复原本的样子再来吧!", "随机色")
  81.                         return
  82.                 elseif yuanpetpic1 ~= 0 then
  83.                         char.TalkToCli(talkerindex, -1, "〖温馨提示〗此宠物已经更换过外形,请恢复原本的样子再来吧!", "随机色")
  84.                         return
  85.                 end
  86.                 for i=1, #_PET do
  87.                         if _PET[i] == petpic1 then
  88.                                 char.TalkToCli(talkerindex, -1, "〖温馨提示〗此宠物无法变更外形!", "随机色")
  89.                                 return
  90.                         end
  91.                 end
  92.                
  93.                 token = "\n"
  94.                                         .. "\n         请选择用哪只宠物的外形"
  95.                                         .. "\n    ★★被提取外形的宠物会被删除★★"
  96.                                         .. "\n     ★★请慎重考虑好再点确定★★"
  97.                         lssproto.windows(talkerindex, "对话框", "确定", 5, char.getWorkInt( meindex, "对象"), token)
  98.         elseif seqno == 5 then
  99.                 lssproto.windows(talkerindex, "宠物框", "取消", 6, char.getWorkInt( meindex, "对象"), "")
  100.         elseif seqno == 6 then
  101.                 pethaveid2 = other.atoi(data)
  102.                 if pethaveid2 < 1 or pethaveid2 > 5 then
  103.                         return
  104.                 end
  105.                 TM_PetIndex2 = char.getCharPet(talkerindex,pethaveid2-1)
  106.                 pet2 = TM_PetIndex2
  107.                 petpic2 = char.getInt(TM_PetIndex2,"图像号")
  108.                
  109.                 if pet1 == pet2 then
  110.                         char.TalkToCli(talkerindex, -1, "〖温馨提示〗同一只宠物无法更换外形", "随机色")
  111.                         return       
  112.                 elseif petpic2 == petpic1 then
  113.                         char.TalkToCli(talkerindex, -1, "〖温馨提示〗两只一样外形的宠物无法更换外形", "随机色")
  114.                         return
  115.                 elseif char.getInt(TM_PetIndex2,"整数存储1") ~= 0 then
  116.                         char.TalkToCli(talkerindex, -1, "〖温馨提示〗更换过外形的宠物无法提取形象,请先恢复宠物外形", "随机色")
  117.                         return
  118.                 end
  119.                 for i=1 , #_RIDE do
  120.                         if _RIDE[i] == petpic2 then
  121.                                 char.TalkToCli(talkerindex, -1, "〖温馨提示〗更换外形失败,骑宠无法提取外形。", "随机色")
  122.                                 return
  123.                         end
  124.                 end
  125.                 if paymod == 1 then
  126.                         local TM_MYJB = sasql.getVipPoint(talkerindex)
  127.                         if TM_MYJB<TM_JINBI then
  128.                                 char.TalkToCli(talkerindex, -1, "〖温馨提示〗你的金币都不够,还想更换宠物外形?!", "随机色")
  129.                                 return
  130.                         end
  131.                         sasql.setVipPoint(talkerindex,TM_MYJB-TM_JINBI)
  132.                 elseif paymod == 2 then
  133.                         local TM_MySW = char.getInt(talkerindex, "声望")
  134.                         local TM_MyHL = char.getInt(talkerindex, "活力")       
  135.                         if TM_MySW < TM_Fame*100 then
  136.                                 char.TalkToCli(talkerindex, meindex, "〖温馨提示〗你的声望都不够,还想换宠物外形?多挂机少说话~", "随机色")
  137.                                 return
  138.                         end
  139.                         if TM_MyHL < TM_Vigor then
  140.                                 char.TalkToCli(talkerindex, meindex, "〖温馨提示〗你的活力都不够,这次是帮不到你了,多在线点时间,活力自然就多了。", "随机色")
  141.                                 return
  142.                         end
  143.                         char.setInt(talkerindex, "声望", char.getInt(talkerindex, "声望") - TM_Fame*100)
  144.                         char.setInt(talkerindex, "活力", char.getInt(talkerindex, "活力") - TM_Vigor)
  145.                 end
  146.                 --char.TalkToCli(talkerindex, -1, "更换前pet1图像号"..char.getInt(pet1,"图像号"), "随机色")
  147.                 --char.TalkToCli(talkerindex, -1, "更换前pet2图像号".. char.getInt(pet2,"图像号"), "随机色")
  148.                 --char.TalkToCli(talkerindex, -1, "更换前pet1原图像号"..char.getInt(pet1,"原图像号"), "随机色")
  149.                 --char.TalkToCli(talkerindex, -1, "更换前pet2原图像号"..char.getInt(pet2,"原图像号"), "随机色")
  150.                 char.setInt(pet1,"图像号",petpic2)
  151.                 char.setInt(pet2,"图像号",petpic1)
  152.                 char.setInt(pet1,"原图像号",petpic2)
  153.                 char.setInt(pet2,"原图像号",petpic1)
  154.                 char.setInt(TM_PetIndex1,"整数存储1",petpic1)
  155.                 char.setInt(TM_PetIndex2,"整数存储1",petpic2)
  156.                 --char.TalkToCli(talkerindex, -1, "更换后整数存储1="..char.getInt(TM_PetIndex1,"整数存储1"), "随机色")
  157.                 --char.TalkToCli(talkerindex, -1, "更换后pet1图像号"..char.getInt(pet1,"图像号"), "随机色")
  158.                 --char.TalkToCli(talkerindex, -1, "更换后pet2图像号"..char.getInt(pet2,"图像号"), "随机色")
  159.                 --char.TalkToCli(talkerindex, -1, "更换后pet1原图像号"..char.getInt(pet1,"原图像号"), "随机色")
  160.                 --char.TalkToCli(talkerindex, -1, "更换后pet2原图像号"..char.getInt(pet2,"原图像号"), "随机色")
  161.                 char.sendStatusString(talkerindex, "K" .. pethaveid1 - 1)
  162.                 char.sendStatusString(talkerindex, "K" .. pethaveid2 - 1)
  163.                 if deletepet == 1 then
  164.                         char.DelPet(talkerindex, pet2)--删除被提取外形的宠物
  165.                 end
  166.                 if paymod == 1 then
  167.                         char.TalkToCli(talkerindex, -1, "〖温馨提示〗变身消耗了您 "..TM_JINBI.." 金币!" , "随机色")
  168.                 elseif paymod == 2 then
  169.                         char.TalkToCli(talkerindex, -1, "〖温馨提示〗变身消耗了您 "..TM_Fame.." 声望!" , "随机色")
  170.                         char.TalkToCli(talkerindex, -1, "〖温馨提示〗变身消耗了您 "..TM_Vigor.." 活力!" , "随机色")
  171.                 end
  172.                 char.TalkToCli(talkerindex, -1, "〖温馨提示〗恭喜您的宠物成功改变外形。" , "随机色")
  173.         elseif seqno == 7 then
  174.                 lssproto.windows(talkerindex, "宠物框", "取消", 8, char.getWorkInt( meindex, "对象"), "")
  175.         elseif seqno == 8 then
  176.                
  177.                 pethaveid1 = other.atoi(data)
  178.                 if pethaveid1 < 1 or pethaveid1 > 5 then
  179.                         return
  180.                 end

  181.                 if paymod == 1 then
  182.                         local TM_MYJB = sasql.getVipPoint(talkerindex)
  183.                         if TM_MYJB<TM_JINBI then
  184.                                 char.TalkToCli(talkerindex, -1, "〖温馨提示〗你的金币都不够,还想更换宠物外形?!", "随机色")
  185.                                 return
  186.                         end
  187.                         sasql.setVipPoint(talkerindex,TM_MYJB-TM_JINBI)
  188.                 elseif paymod == 2 then
  189.                         local TM_MySW = char.getInt(talkerindex, "声望")
  190.                         local TM_MyHL = char.getInt(talkerindex, "活力")
  191.                        
  192.                         if TM_MySW < TM_Fame*100 then
  193.                                 char.TalkToCli(talkerindex, meindex, "〖温馨提示〗你的声望都不够,还想换宠物外形?多挂机少说话~", "随机色")
  194.                                 return
  195.                         end
  196.                        
  197.                         if TM_MyHL < TM_Vigor then
  198.                                 char.TalkToCli(talkerindex, meindex, "〖温馨提示〗你的活力都不够,这次是帮不到你了,多在线点时间,活力自然就多了。", "随机色")
  199.                                 return
  200.                         end       
  201.                         char.setInt(talkerindex, "声望", char.getInt(talkerindex, "声望") - TM_Fame*100)
  202.                         char.setInt(talkerindex, "活力", char.getInt(talkerindex, "活力") - TM_Vigor)
  203.                 end

  204.                 TM_PetIndex1 = char.getCharPet(talkerindex,pethaveid1-1)
  205.                 pet1 = TM_PetIndex1
  206.                 petpic1 = char.getInt(TM_PetIndex1,"图像号")
  207.                 yuanpetpic1 = char.getInt(TM_PetIndex1,"整数存储1")
  208.                 if yuanpetpic1 == 0 then
  209.                         char.TalkToCli(talkerindex, -1, "〖温馨提示〗宠物已经是原本的形象,无需恢复", "随机色")
  210.                         return
  211.                 end
  212.                 char.setInt(pet1,"图像号",yuanpetpic1)
  213.                 char.setInt(pet1,"原图像号",yuanpetpic1)
  214.                 char.setInt(TM_PetIndex1,"整数存储1",0)
  215.                 char.sendStatusString(talkerindex, "K" .. pethaveid1 - 1)
  216.                 if paymod == 1 then
  217.                         char.TalkToCli(talkerindex, -1, "〖温馨提示〗变身消耗了您 "..TM_JINBI.." 金币!" , "随机色")
  218.                 elseif paymod == 2 then
  219.                         char.TalkToCli(talkerindex, -1, "〖温馨提示〗变身消耗了您 "..TM_Fame.." 声望!" , "随机色")
  220.                         char.TalkToCli(talkerindex, -1, "〖温馨提示〗变身消耗了您 "..TM_Vigor.." 活力!" , "随机色")
  221.                 end
  222.                 char.TalkToCli(talkerindex, -1, "〖温馨提示〗恭喜您的宠物外形成功恢复。" , "随机色")
  223.         elseif seqno == 9 then
  224.                 return
  225.         end
  226.        
  227. end


  228. function Create(name, metamo, floor, x, y, dir)
  229.         npcindex = npc.CreateNpc(name, metamo, floor, x, y, dir)
  230.         char.setFunctionPointer(npcindex, "对话事件", "Talked", "")
  231.         char.setFunctionPointer(npcindex, "窗口事件", "WindowTalked", "")
  232. end

  233. function data()
  234.         pet1 = 0
  235.         pet2 = 0
  236.         petpic1 = 0
  237.         petpic2 = 0
  238.         yuanpetpic1 = 0
  239.         yuanpetpic2 = 0
  240.         pethaveid1 = 0
  241.         pethaveid2 = 0
  242.         TM_PetIndex1 = 0
  243.         TM_PetIndex2 = 0
  244.         paymod = 1 --付款方式1为金币2为声望活力
  245.         TM_JINBI = 50 --需要金币
  246.         TM_Fame = 1 --需要声望
  247.         TM_Vigor = 1 --需要活力
  248.         deletepet = 1 --是否删除被提取外形的宠物1为是0为不删除
  249.         _PET = {101427,101424,101425,101426}--不能更换形象的宠物
  250.         _RIDE = {100327,100328,100329,100330}--不能提取形象的宠物
  251. end

  252. function main()
  253.         Create("宠物换肤大师", 100780, 2000, 61, 33, 4)
  254.         data()
  255. end
复制代码


回复

使用道具 举报

10

主题

35

回帖

62

积分

注册会员

积分
62
石币
17
发表于 2023-3-14 12:02:06 | 显示全部楼层
好东西,必须顶
回复

使用道具 举报

5

主题

439

回帖

812

积分

高级会员

积分
812
石币
368
发表于 2023-3-17 02:43:36 | 显示全部楼层
原來是這樣 收下了
回复

使用道具 举报

10

主题

35

回帖

62

积分

注册会员

积分
62
石币
17
发表于 2023-3-30 12:57:35 | 显示全部楼层
顶一个顶一个
回复

使用道具 举报

0

主题

28

回帖

33

积分

新手上路

积分
33
石币
5
发表于 2023-10-6 11:26:00 | 显示全部楼层
谢谢大佬 感觉这个很厉害啊
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-29 08:41 , Processed in 1.646257 second(s), 22 queries .

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