cgmsv引擎论坛

 找回密码
 注册/Sign up
搜索
查看: 4511|回复: 4

[LUA] 合并后的宠物大师,可以算档、随机挡位、满档 用完保证你...

[复制链接]

Rank: 1

发表于 2021-7-7 21:30:42 | 显示全部楼层 |阅读模式


  1. local msg = "";
  2. local Msg = "";
  3. local pet_index = "";
  4. local selectitem = "";
  5. local m = "";
  6. local X = "";
  7. local biao = {};
  8. table.insert(biao,1, "你好!!年轻人,欢迎使用宠物算档系统,俺可以瞬间计算出你所选择宠物的档位排布哟!!你确定要计算你的宠物档位么?!!.....");
  9. table.insert(biao,2, "我马上要给你的宠物算档了哟.......\\n请在下表选择你的宠物!...");
  10. table.insert(biao,3, "你好!!年轻人,欢迎使用宠物重生系统,俺可以将非1级宠物重置为1级,也可以将1级宠物档位重新排布哟!!!你确定要重生你的宠物么?!!......");
  11. table.insert(biao,4, "你确定要重生你的宠物么?!!!............\\n那么请在下表选择你的宠物!...");
  12. table.insert(biao,5, "你好!!年轻人,欢迎使用宠物满档系统,俺可以瞬间将你的宠物重置为满档!!非1级的宠物重置满档后会变成1级哟,你确定要重置你的宠物为满档么?!!......");
  13. table.insert(biao,6, "请你准备好呀,嗖的一下,你的宠物就可以满档!..\\n请在下表选择你的宠物!...");
  14. table.insert(biao,7, "您确定要进行宠物算档么?!!......");
  15. table.insert(biao,8, "您确定要进行宠物重生么?!!......");
  16. table.insert(biao,9, "您确定要进行宠物满档么?!!......");
  17. local Biao = {};
  18. table.insert(Biao,1, "一");
  19. table.insert(Biao,2, "二");
  20. table.insert(Biao,3, "三");
  21. table.insert(Biao,4, "四");
  22. table.insert(Biao,5, "五");
  23. local biaO = {};
  24. table.insert(biaO,8, "』已经重生了哟!");
  25. table.insert(biaO,9, "』已经满档了哟!");
  26. --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  27. Delegate.RegInit("PetRebirth_Init");   
  28.                
  29. function PetRebirth_Init()
  30.         PetRebirth_Creat();
  31. end
  32.         
  33. function InitFuncName()
  34.         return true;
  35. end
  36. --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  37. function PetRebirth_Creat()
  38.         if (PetRebirth_index == nil) then
  39.                 PetRebirth_index = NL.CreateNpc(nil, "InitFuncName");
  40.                 Char.SetData(PetRebirth_index, %对象_形象%, 231088);
  41.                 Char.SetData(PetRebirth_index, %对象_原形%, 231088);
  42.                 Char.SetData(PetRebirth_index, %对象_MAP%, 0);
  43.                 Char.SetData(PetRebirth_index, %对象_地图%, 1000);
  44.                 Char.SetData(PetRebirth_index, %对象_X%, 228);
  45.                 Char.SetData(PetRebirth_index, %对象_Y%, 83);
  46.                 Char.SetData(PetRebirth_index, %对象_方向%, %右下%);
  47.                 Char.SetData(PetRebirth_index, %对象_原名%, "宠物大师");
  48.                 NLG.UpChar(PetRebirth_index);
  49.                 if (Char.SetTalkedEvent(nil, "PetRebirth_Talked", PetRebirth_index) < 0) then
  50.                         print("PetRebirth_Talked 注册事件失败。");
  51.                         return false;
  52.                 end
  53.                 if (Char.SetWindowTalkedEvent(nil, "PetRebirth_WindowTalked", PetRebirth_index) < 0) then
  54.                         print("PetRebirth_WindowTalked 注册事件失败。");
  55.                         return false;
  56.                 end               
  57.         end
  58. end
  59. --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  60. function PetRebirth_Talked( _MePtr,_TalkPtr)        
  61.         if (NLG.CanTalk(_MePtr,_TalkPtr) == true) then
  62.                 msg = "3\\n    你好!!亲爱的["..Char.GetData(_TalkPtr,%对象_原名%).."],请选择你要办理的业务吧!!!......"..NLG.c("\\n\\n宠物算档".."\\n\\n宠物重生".."\\n\\n宠物满档");
  63.                 NLG.ShowWindowTalked(_TalkPtr, _MePtr, %窗口_选择框%, %按钮_关闭%,1,msg);
  64.         end
  65. end
  66. --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  67. function PetRebirth_WindowTalked(_MePtr,_TalkPtr,_Seqno,_Select,_Data)        
  68.                         selectitem = tonumber(_Data)-1;
  69.                         
  70.         
  71.         if (_Select == 2 or _Select == "2") and _Data ~= nil then
  72.                 return;
  73.         elseif _Seqno == 1 and (_Select ~= 2 and _Select ~= "2") and _Data ~= nil then        
  74.                         if selectitem == 0 then
  75.                                 m = 7;
  76.                         elseif selectitem == 2 then
  77.                                 m = 8;
  78.                         elseif selectitem == 4 then
  79.                                 m = 9;                        
  80.                         end
  81.                 mSg = "\\n"..biao[m].."\\n"               
  82.                 Msg = "3\\n"..biao[tonumber(_Data)+1].."\\n\\n";        
  83.                 msg = "\\n    "..biao[tonumber(_Data)];
  84.                 NLG.ShowWindowTalked(_TalkPtr, _MePtr, %窗口_选择框%,%按钮_上下取消%,2,msg);               
  85.         elseif _Seqno == 2 and (_Select == 16 or _Select == "16") and _Data ~= nil then
  86.                 return PetRebirth_Talked( _MePtr,_TalkPtr);
  87.         elseif _Seqno == 2 and (_Select == 32 or _Select == "32") and _Data ~= nil then
  88.                 for i=0,4 do
  89.                         local pet = Char.GetPet(_TalkPtr,i);
  90.                                 if(VaildChar(pet) == false) then
  91.                                         Msg = Msg..  " 空\\n";
  92.                                 else
  93.                                         Msg = Msg.." "..Char.GetData(pet,%对象_原名%).."\\n";
  94.                                 end
  95.                 end
  96.                 NLG.ShowWindowTalked(_TalkPtr, _MePtr,%窗口_选择框%,%按钮_上取消%,3,Msg);
  97.         elseif _Seqno == 3 and (_Select == 0 or _Select == "0")  and _Data ~= nil then
  98.                 X = tonumber(_Data);
  99.                 pet_index = Char.GetPet(_TalkPtr,selectitem);
  100.                 if (selectitem == nil or (selectitem ~= nil and (selectitem > 4 or selectitem < 0))) then
  101.                         NLG.ShowWindowTalked(_TalkPtr, _MePtr,%窗口_选择框%,%按钮_上取消%,4,"\\n您所选择的位置不正常!");        
  102.                 elseif (VaildChar(pet_index) == false) then
  103.                         NLG.ShowWindowTalked(_TalkPtr, _MePtr,%窗口_选择框%,%按钮_上取消%,5,"\\n请确定您对应的宠物栏有宠物!");
  104.                 elseif (selectitem ~= nil and (selectitem >=0 and selectitem <= 4)) then        
  105.                         NLG.ShowWindowTalked(_TalkPtr, _MePtr,%窗口_选择框%,%按钮_是否%,6,mSg);
  106.                 end
  107.         elseif _Seqno == 3 and (_Select == 16 or _Select == "16") and _Data ~= nil then
  108.                 return NLG.ShowWindowTalked(_TalkPtr, _MePtr, %窗口_选择框%,%按钮_上下取消%,2,msg);
  109.         elseif (_Seqno == 4 or _Seqno == 5) and (_Select == 16 or _Select == "16") and _Data ~= nil then
  110.                 return NLG.ShowWindowTalked(_TalkPtr, _MePtr,%窗口_选择框%,%按钮_上取消%,3,Msg);
  111.         elseif _Seqno == 6 and (_Select == 8 or _Select == "8") and _Data ~= nil then
  112.                 return;
  113.         elseif _Seqno == 6 and (_Select == 4 or _Select == "4") and _Data ~= nil then
  114.                 if m == 7 and (selectitem >=0 and selectitem <= 4) then        
  115.                         local arr_rank1 = Pet.GetArtRank(pet_index,%宠档_体成%);
  116.                         local arr_rank11 = Pet.FullArtRank(pet_index,%宠档_体成%);
  117.                         local arr_rank2 = Pet.GetArtRank(pet_index,%宠档_力成%);
  118.                         local arr_rank21 = Pet.FullArtRank(pet_index,%宠档_力成%);
  119.                         local arr_rank3 = Pet.GetArtRank(pet_index,%宠档_强成%);
  120.                         local arr_rank31 = Pet.FullArtRank(pet_index,%宠档_强成%);
  121.                         local arr_rank4 = Pet.GetArtRank(pet_index,%宠档_敏成%);
  122.                         local arr_rank41 = Pet.FullArtRank(pet_index,%宠档_敏成%);
  123.                         local arr_rank5 = Pet.GetArtRank(pet_index,%宠档_魔成%);
  124.                         local arr_rank51 = Pet.FullArtRank(pet_index,%宠档_魔成%);
  125.                         local a1 = math.abs(arr_rank1 - arr_rank11);
  126.                         local a2 = math.abs(arr_rank2 - arr_rank21);
  127.                         local a3 = math.abs(arr_rank3 - arr_rank31);
  128.                         local a4 = math.abs(arr_rank4 - arr_rank41);
  129.                         local a5 = math.abs(arr_rank5 - arr_rank51);
  130.                         local a6 = a1 + a2+ a3+ a4+ a5;
  131.                         local a11 = math.abs(arr_rank11);
  132.                         local a21 = math.abs(arr_rank21);
  133.                         local a31 = math.abs(arr_rank31);
  134.                         local a41 = math.abs(arr_rank41);
  135.                         local a51 = math.abs(arr_rank51);
  136.                         local a61 = a11 + a21+ a31+ a41+ a51;
  137.                         local a12 = math.abs(arr_rank1);
  138.                         local a22 = math.abs(arr_rank2);
  139.                         local a32 = math.abs(arr_rank3);
  140.                         local a42 = math.abs(arr_rank4);
  141.                         local a52 = math.abs(arr_rank5);
  142.                         local a62 = a12 + a22+ a32+ a42+ a52;                        
  143.                         if(a6 == 0) then
  144.                                 msg = "\\n宠物名:"..Char.GetData(pet_index,%对象_名字%).."\\n".."\\n\\n恭喜你!!!\\n\\n该宠物总掉档数: 掉["..a6.."]档\\n";
  145.                         else
  146.                                 msg = "\\n宠 物 名:  "..Char.GetData(pet_index,%对象_名字%)..""
  147.                                 .."\\n体力档数:  -"..a1.." 档 ("..a12.."/"..a11..") "
  148.                                 .."\\n力量档数:  -"..a2.." 档 ("..a22.."/"..a21..") "
  149.                                 .."\\n防御档数:  -"..a3.." 档 ("..a32.."/"..a31..")"
  150.                                 .."\\n敏捷档数:  -"..a4.." 档 ("..a42.."/"..a41..")"
  151.                                 .."\\n魔法档数:  -"..a5.." 档 ("..a52.."/"..a51..")"
  152.                                 .."\\n最    高: "..a61.." 档 "
  153.                                 .."\\n当    前: "..a62.." 档 "
  154.                                 .."\\n掉 档 数:  "..a6.." 档\\n";
  155.                         end
  156.                                 NLG.ShowWindowTalked(_TalkPtr, _MePtr,%窗口_选择框%,%按钮_确定%,7,msg);
  157.                 elseif (m == 8 or m==9) and (selectitem >=0 and selectitem <= 4) then
  158.                         if m == 8 then
  159.                                 Pet.SetArtRank(pet_index,%宠档_体成%,Pet.FullArtRank(pet_index,%宠档_体成%) - math.random(0,4));
  160.                                 Pet.SetArtRank(pet_index,%宠档_力成%,Pet.FullArtRank(pet_index,%宠档_力成%) - math.random(0,4));
  161.                                 Pet.SetArtRank(pet_index,%宠档_强成%,Pet.FullArtRank(pet_index,%宠档_强成%) - math.random(0,4));
  162.                                 Pet.SetArtRank(pet_index,%宠档_敏成%,Pet.FullArtRank(pet_index,%宠档_敏成%) - math.random(0,4));
  163.                                 Pet.SetArtRank(pet_index,%宠档_魔成%,Pet.FullArtRank(pet_index,%宠档_魔成%) - math.random(0,4));
  164.                                 Pet.ReBirth(_TalkPtr,pet_index);
  165.                                 Pet.UpPet(_TalkPtr,pet_index);        
  166.                         elseif m == 9 then
  167.                                  Pet.SetArtRank(pet_index,%宠档_体成%,Pet.FullArtRank(pet_index,%宠档_体成%));
  168.                                         Pet.SetArtRank(pet_index,%宠档_力成%,Pet.FullArtRank(pet_index,%宠档_力成%));
  169.                                                Pet.SetArtRank(pet_index,%宠档_强成%,Pet.FullArtRank(pet_index,%宠档_强成%));
  170.                                         Pet.SetArtRank(pet_index,%宠档_敏成%,Pet.FullArtRank(pet_index,%宠档_敏成%));
  171.                                         Pet.SetArtRank(pet_index,%宠档_魔成%,Pet.FullArtRank(pet_index,%宠档_魔成%));
  172.                                         Pet.ReBirth(_TalkPtr, pet_index);
  173.                                 Pet.UpPet(_TalkPtr,pet_index);        
  174.                         end
  175.                         msg = NLG.c("\\n\\n\\n\\n\\n您选择的第"        ..Biao[X]..        "栏宠物『"..Char.GetData(pet_index,%对象_名字%)..biaO[m]);
  176.                         NLG.ShowWindowTalked(_TalkPtr,_MePtr,%窗口_选择框%,%按钮_确定%,8,msg);
  177.                         msg = "[系统]您选择的第"..Biao[X].."栏宠物『"..Char.GetData(pet_index,%对象_名字%)..biaO[m];
  178.                         NLG.SystemMessage(_TalkPtr,msg)
  179.                 end                        
  180.         end
  181. end
  182. --print("Seqno:".._Seqno.."  Select:".._Select.."  Data:".._Data.."  selectitem:"..selectitem.."  m:"..m.."  pet_index:"..pet_index.."  X:"..X.."  BiaoX:"..Biao[tonumber(X)].."  Biaom:"..biaO[tonumber(m)])
复制代码

PetRebirth.rar

2.32 KB, 下载次数: 0, 下载积分: 金币 -1

用完想打我的留个言激励一下呗

Rank: 1

发表于 2021-7-10 11:42:17 | 显示全部楼层
没金币只能看看了·····

Rank: 1

 楼主| 发表于 2021-7-10 21:31:53 | 显示全部楼层
liubobucuo 发表于 2021-7-10 11:42
没金币只能看看了·····

不用金币呀 少年 直接复制呀

Rank: 1

发表于 2021-7-11 14:38:07 | 显示全部楼层
厉害了,谢谢分享!

Rank: 1

发表于 2021-7-13 20:23:19 | 显示全部楼层
nofix 里面有个相同的文件.
实际上不同的内容哇?
您需要登录后才可以回帖 登录 | 注册/Sign up

本版积分规则

手机版|cgmsv引擎论坛

GMT+8, 2024-11-21 21:39 , Processed in 0.188112 second(s), 10 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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