cgmsv引擎论坛

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

关于新框架加入佣兵后,挂端报错问题,请大佬帮忙看看

[复制链接]

Rank: 1

发表于 2023-12-17 21:48:17 | 显示全部楼层 |阅读模式
新框架加入佣兵后,打不了几仗就挂端了,报错为:Error: c0000005,如下图:



以下是佣兵代码,麻烦大佬帮看看是哪里出问题,该如何修改,谢谢!

  1. local yb = ModuleBase:createModule('yb')
  2. wanjia = {}--玩家表
  3. for bbb = 0,800 do
  4.         wanjia[bbb] = {}
  5.         wanjia[bbb][0] = 0--ai统计
  6.         for ccc = 1,100 do
  7.                 wanjia[bbb][ccc] = -1
  8.         end
  9. end
  10. local ybtable = {"弓箭手星织","弓箭手七冰","格斗八重切","格斗红莲","主教奈麻","战斧重音","战斧凛音","剑士绵津见","骑士伊吹"}--佣兵表
  11. local ybctrl = {"开除所有佣兵","治疗佣兵和佣兵宠物","W站位(队长站后排)","一字站位","宠物待命","开除指定佣兵","佣兵打卡开启(打卡重置卡时)","召回佣兵","大地鼠出战","噩梦鼠出战","火焰鼠出战","宝石鼠出战","僵尸出战","丧尸出战","食尸鬼出战","腐尸出战"}--佣兵遥控器
  12. local partyname = {}--开除指定佣兵
  13. function yb:petlevelup(player)
  14.         if Char.IsDummy(player) then
  15.                 local pet = Char.GetPet(player,0)
  16.                 local MF = Char.GetData(pet,%对象_魔法%)
  17.                 local TL = Char.GetData(pet,%对象_体力%)
  18.                 if MF > TL then
  19.                         Char.SetData(pet, CONST.CHAR_魔法, 100 + MF);
  20.                         Pet.UpPet(player,pet);
  21.                 else
  22.                         Char.SetData(pet, CONST.CHAR_体力, 100 + TL);
  23.                         Pet.UpPet(player,pet);
  24.                 end
  25.         end
  26. end
  27. function yb:yblevelup(player)
  28.         if Char.IsDummy(player) then
  29.                 local MF = Char.GetData(player,%对象_魔法%)
  30.                 local TL = Char.GetData(player,%对象_体力%)
  31.                 local LL = Char.GetData(player,%对象_力量%)
  32.                 local SD = Char.GetData(player,%对象_速度%)
  33.                 if Char.GetData(player, %对象_名字%)=="主教奈麻" then
  34.                         Char.SetData(player, CONST.CHAR_体力, 200+TL);
  35.                         Char.SetData(player, CONST.CHAR_速度, 100+SD);
  36.                         Char.SetData(player, CONST.CHAR_魔法, 100+MF);
  37.                         NLG.UpChar(player);
  38.                 else
  39.                         Char.SetData(player, CONST.CHAR_力量, 200+LL);
  40.                         Char.SetData(player, CONST.CHAR_速度, 200+SD);
  41.                         NLG.UpChar(player);
  42.                 end
  43.         end
  44. end
  45. function yb:ybwarp(player, Ori_MapId, Ori_FloorId, Ori_X, Ori_Y, Target_MapId, Target_FloorId, Target_X, Target_Y)--传送后若ai掉队则加回队伍来
  46.         for csdd = 1,9 do
  47.                 if Char.PartyNum(wanjia[player][csdd]) == -1 then
  48.                         Char.Warp(wanjia[player][csdd], Target_MapId, Target_FloorId, Target_X, Target_Y)
  49.                         Char.JoinParty(wanjia[player][csdd],player);
  50.                 end
  51.         end
  52. end
  53. function yb:yboffline(player)--玩家下线清空自己召唤的ai
  54.         for xxqk = 1,9 do
  55.                 if wanjia[player][xxqk] > 0 then
  56.                         Char.DelDummy(wanjia[player][xxqk])
  57.                         wanjia[player][0] = 0
  58.                 end
  59.         end
  60.         wanjia[player][0] = 0
  61. end
  62. local function calcWarp()--计算页数和最后一页数量
  63.   local totalpage = math.modf(#ybtable / 8) + 1
  64.   local remainder = math.fmod(#ybtable, 8)
  65.   return totalpage, remainder
  66. end
  67. local function calcWarp1()--计算页数和最后一页数量
  68.   local totalpage1 = math.modf(#ybctrl / 8) + 1
  69.   local remainder1 = math.fmod(#ybctrl, 8)
  70.   return totalpage1, remainder1
  71. end
  72. --- 加载模块钩子
  73. function yb:onLoad()
  74.         self:logInfo('load')
  75.         self:logDebugF('npcIndex: %s, playerIndex: %s, text: %s, msg: %s', npc, player, text, msg)
  76.         self:regCallback("AfterWarpEvent", Func.bind(self.ybwarp, self))
  77.         self:regCallback("LogoutEvent", Func.bind(self.yboffline, self))
  78.         self:regCallback("PetLevelUpEvent", Func.bind(self.petlevelup, self))
  79.         self:regCallback("LevelUpEvent", Func.bind(self.yblevelup, self))
  80.         local warpNPC = self:NPC_createNormal('佣兵统领', 105502, { x = 236, y = 83, mapType = 0, map = 1000, direction = 4 });
  81.         local ctrlNPC = self:NPC_createNormal('佣兵遥控器', 105502, { x = 4, y = 4, mapType = 0, map = 666, direction = 4 });
  82.         local testNPC = self:NPC_createNormal('佣兵遥控器', 105502, { x = 4, y = 6, mapType = 0, map = 666, direction = 4 });
  83.         self:NPC_regWindowTalkedEvent(warpNPC, function(npc, player, _seqno, _select, _data)
  84.         local suiji = math.random(100,100)--90~100的随机数--然后ai参考人物生成浮动bp
  85.         local rlv = Char.GetData(player,%对象_等级%)
  86.         local rlv = rlv /100 * suiji
  87.         local rx = Char.GetData(player,%对象_体力%)
  88.         local rx = rx / 100 * suiji
  89.         local rm = Char.GetData(player,%对象_魔法%)
  90.         local rm = rm / 100 * suiji
  91.         local rg = Char.GetData(player,%对象_力量%)
  92.         local rg = rg / 100 * suiji
  93.         local rf = Char.GetData(player,%对象_强度%)
  94.         local rf = rf / 100 * suiji
  95.         local rs = Char.GetData(player,%对象_速度%)
  96.         local rs = rs / 100 * suiji
  97.         local rzy = rlv*200+1300--主要属性
  98.         local rcy = rzy-rs--次要属性
  99.         local rzycj = (rzy + 100)/2
  100.         local rcycj = rzy - rzycj
  101.         local agong = {2000,2010,2022,2035,2049,2055,2063,2071,2082,2095}--1-10级A弓
  102.         local azhang = {2400,2413,2435,2447,2449,2461,2473,2488,2492,2493}--1-10级A杖
  103.         local bzhang = {2402,2418,2434,2446,2450,2462,2478,2486,2495,2497}--1-10级B杖
  104.         local afu = {805,812,820,830,841,854,863,878,883,890}--1-10级A斧
  105.         local ajian = {8,16,22,37,42,56,67,70,87,94}--1-10级A剑
  106.         local aqiang = {1608,1619,1629,1635,1643,1657,1663,1678,1684,1698}--1-10级A枪
  107.         local amao = {4004,4011,4022,4032,4040,4054,4064,4070,4082,4091}--1-10级A帽
  108.         local ayi = {4803,4812,4823,4834,4845,4855,4867,4871,4882,4892}--1-10级A衣
  109.         local axie = {6001,6010,6022,6033,6042,6054,6064,6072,6080,6090}--1-10级A鞋
  110.         local akui = {3601,3611,3622,3632,3642,3654,3662,3670,3683,3693}--1-10级A盔
  111.         local akai = {4400,4410,4420,4430,4442,4459,4464,4470,4484,4490}--1-10级A铠
  112.         local axue = {5600,5614,5620,5630,5640,5653,5664,5671,5680,5690}--1-10级A靴
  113.         local adun = {6401,6410,6427,6437,6447,6458,6461,6470,6480,6490}--1-10级A盾
  114.         local apao = {5206,5212,5224,5233,5242,5250,5261,5272,5281,5290}--1-10级A袍
  115.         local petjn = {{1430,1530,1630,1730,1330},{1432,1532,1632,1732,1332},{1434,1534,1634,1734,1334},{1436,1536,1636,1736,1336},{1438,1538,1638,1738,1338},}--宠物抗性技能
  116.         local zblv = math.floor(rlv/10) + 1--佣兵装备等级
  117.         local jnlv = math.floor(rlv/20) + 1--宠物技能等级
  118.         local sjlv = 0
  119.         local column = tonumber(_data)
  120.     local page = tonumber(_seqno)
  121.     local warpPage = page;
  122.     local winMsg = "1\\n请选择想并肩作战的佣兵\\n"
  123.     local winButton = CONST.BUTTON_关闭;
  124.     local totalPage, remainder = calcWarp()
  125.     --上页16 下页32 关闭/取消2
  126.         if _select > 0 then
  127.                 if _select == CONST.BUTTON_下一页 then
  128.                         warpPage = warpPage + 1
  129.                         if (warpPage == totalPage) or ((warpPage == (totalPage - 1) and remainder == 0)) then
  130.                                 winButton = CONST.BUTTON_上取消
  131.                         else
  132.                                 winButton = CONST.BUTTON_上下取消
  133.                         end
  134.                 elseif _select == CONST.BUTTON_上一页 then
  135.                         warpPage = warpPage - 1
  136.                         if warpPage == 1 then
  137.                                 winButton = CONST.BUTTON_下取消
  138.                         else
  139.                                 winButton = CONST.BUTTON_上下取消
  140.                         end
  141.                 elseif _select == 2 then
  142.                         warpPage = 1
  143.                         return
  144.                 end
  145.                 local count = 8 * (warpPage - 1)
  146.                 if warpPage == totalPage then
  147.                         for i = 1 + count, remainder + count do
  148.                                 winMsg = winMsg .. ybtable[i] .. "\\n"
  149.                         end
  150.                 else
  151.                         for i = 1 + count, 8 + count do
  152.                                 winMsg = winMsg .. ybtable[i] .. "\\n"
  153.                         end
  154.                 end
  155.                 NLG.ShowWindowTalked(player, npc, CONST.窗口_选择框, winButton, warpPage, winMsg);
  156.         else
  157.                 local count = 8 * (warpPage - 1) + column
  158.                 if count == 1 then
  159.         if wanjia[player][0] > 3 then
  160.                 NLG.SystemMessage(player, '您已经召唤了4位小伙伴了,不能再召唤了。' )
  161.         elseif wanjia[player][1] <= 0 then
  162.         local charIndex1 = Char.CreateDummy()--生成ai佣兵
  163.         wanjia[player][0] = wanjia[player][0] + 1--统计ai佣兵数量
  164.         wanjia[player][1] = charIndex1
  165.                 Char.SetData(charIndex1, CONST.CHAR_X, Char.GetData(player, CONST.CHAR_X));
  166.                 Char.SetData(charIndex1, CONST.CHAR_Y, Char.GetData(player, CONST.CHAR_Y));
  167.                 Char.SetData(charIndex1, CONST.CHAR_地图, Char.GetData(player, CONST.CHAR_地图));
  168.                 Char.SetData(charIndex1, CONST.CHAR_名字, '弓箭手星织');
  169.                 Char.SetData(charIndex1, CONST.CHAR_地图类型, Char.GetData(player, CONST.CHAR_地图类型));
  170.                 Char.SetData(charIndex1, CONST.CHAR_形象, 100302);
  171.                 Char.SetData(charIndex1, CONST.CHAR_原形, 100302);
  172.                 Char.SetData(charIndex1, CONST.CHAR_原始图档, 100302);
  173.                 if rlv >= 80 then
  174.                 Char.SetData(charIndex1, CONST.CHAR_体力, rzy);
  175.                 Char.SetData(charIndex1, CONST.CHAR_力量, rcy);
  176.                 Char.SetData(charIndex1, CONST.CHAR_强度, 0);
  177.                 Char.SetData(charIndex1, CONST.CHAR_速度, rs);
  178.                 Char.SetData(charIndex1, CONST.CHAR_魔法, 0);
  179.                 Char.SetData(charIndex1, CONST.CHAR_等级, rlv);
  180.                 else
  181.                 Char.SetData(charIndex1, CONST.CHAR_体力, rcy);
  182.                 Char.SetData(charIndex1, CONST.CHAR_力量, rzy);
  183.                 Char.SetData(charIndex1, CONST.CHAR_强度, 0);
  184.                 Char.SetData(charIndex1, CONST.CHAR_速度, rs);
  185.                 Char.SetData(charIndex1, CONST.CHAR_魔法, 0);
  186.                 Char.SetData(charIndex1, CONST.CHAR_等级, rlv);
  187.                 end
  188.                 NLG.UpChar(charIndex1);
  189.                 Char.SetData(charIndex1, CONST.CHAR_职业, 44);
  190.                 Char.SetData(charIndex1, CONST.CHAR_职类ID, 40);
  191.                 Char.SetData(charIndex1, CONST.CHAR_职阶, 3);
  192.                 if rlv >= 100 then
  193.                         sjlv = 10
  194.                 else
  195.                         sjlv = zblv
  196.                 end
  197.                 Char.GiveItem(charIndex1, agong[sjlv], 1);
  198.                 Char.GiveItem(charIndex1, amao[sjlv], 1);
  199.                 Char.GiveItem(charIndex1, ayi[sjlv], 1);
  200.                 Char.GiveItem(charIndex1, axie[sjlv], 1);
  201.                 Item.SetData(Char.GetItemIndex(charIndex1, 8), %道具_已鉴定%, 1)
  202.                 Item.SetData(Char.GetItemIndex(charIndex1, 9), %道具_已鉴定%, 1)
  203.                 Item.SetData(Char.GetItemIndex(charIndex1, 10), %道具_已鉴定%, 1)
  204.                 Item.SetData(Char.GetItemIndex(charIndex1, 11), %道具_已鉴定%, 1)
  205.                 Item.UpItem(charIndex1, -1);
  206.                 NLG.UpChar(charIndex1);
  207.                 Char.GiveItem(charIndex1, 900191, 1);
  208.                 Char.GiveItem(charIndex1, 900329, 1);
  209.                 Char.GiveItem(charIndex1, 900333, 1);
  210.                 Char.MoveItem(charIndex1, 8, CONST.EQUIP_左手, -1);
  211.                 Char.MoveItem(charIndex1, 9, CONST.EQUIP_头, -1);
  212.                 Char.MoveItem(charIndex1, 10, CONST.EQUIP_身, -1);
  213.                 Char.MoveItem(charIndex1, 11, CONST.EQUIP_腿, -1);
  214.                 Char.MoveItem(charIndex1, 12, CONST.EQUIP_水晶, -1);
  215.                 Char.MoveItem(charIndex1, 13, CONST.EQUIP_首饰1, -1);
  216.                 Char.MoveItem(charIndex1, 14, CONST.EQUIP_首饰2, -1);
  217.                 Char.GiveItem(charIndex1, 18196, 1);
  218.                 Char.GiveItem(charIndex1, 18315, 19);
  219.                 Char.SetData(charIndex1, CONST.CHAR_血, Char.GetData(charIndex1, CONST.CHAR_最大血));
  220.                 Char.SetData(charIndex1, CONST.CHAR_魔, Char.GetData(charIndex1, CONST.CHAR_最大魔));
  221.                 Char.AddSkill(charIndex1, 71);
  222.                 Char.AddSkill(charIndex1, 13);
  223.                 Char.AddSkill(charIndex1, 15);
  224.                 Char.AddSkill(charIndex1, 17);
  225.                 Char.SetSkillLevel(charIndex1,0,2);
  226.                 Char.SetSkillLevel(charIndex1,1,2);
  227.                 Char.SetSkillLevel(charIndex1,2,2);
  228.                 Char.SetSkillLevel(charIndex1,3,2);
  229.                 Char.GivePet(charIndex1, 900004);
  230.                 local charIndex2 = Char.GetPet(charIndex1,0)
  231.                 if rlv > 1 then
  232.                         local hdjy = rlv^4
  233.                         Char.SetData(charIndex2,%对象_经验%,hdjy);
  234.                         Pet.UpPet(charIndex1,charIndex2);
  235.                         local petFP = Char.GetData(charIndex2,%对象_魔法%)
  236.                         local petFPP = (rlv - 1)*100 + petFP
  237.                         Char.SetData(charIndex2, CONST.CHAR_升级点, 0);
  238.                         Char.SetData(charIndex2, CONST.CHAR_魔法, petFPP);
  239.                         Pet.UpPet(charIndex1,charIndex2);
  240.                         Char.SetData(charIndex2, CONST.CHAR_血, Char.GetData(charIndex2, CONST.CHAR_最大血));
  241.                         Char.SetData(charIndex2, CONST.CHAR_魔, Char.GetData(charIndex2, CONST.CHAR_最大魔));
  242.                 end
  243.                 if rlv >= 100 then
  244.                         sjlv = 5
  245.                 else
  246.                         sjlv = jnlv
  247.                 end
  248.                         Pet.AddSkill(charIndex2, petjn[sjlv][1]);
  249.                         Pet.AddSkill(charIndex2, petjn[sjlv][2]);
  250.                         Pet.AddSkill(charIndex2, petjn[sjlv][3]);
  251.                         Pet.AddSkill(charIndex2, petjn[sjlv][4]);
  252.                 Char.SetPetDepartureState(charIndex1, 0, CONST.PET_STATE_战斗);
  253.                 NLG.UpChar(charIndex1);
  254.                 Pet.UpPet(charIndex1,charIndex2);
  255.                 Item.UpItem(charIndex1, -1);
  256.                 NLG.SystemMessage(player, '召唤佣兵: 弓箭手' )
  257.                 Char.JoinParty(charIndex1, player);
  258.         else
  259.                 NLG.SystemMessage(player, '只能召唤1位弓箭手。' )
  260.         end
  261.                 elseif count == 2 then
  262.         if wanjia[player][0] > 3 then
  263.                 NLG.SystemMessage(player, '您已经召唤了4位小伙伴了,不能再召唤了。' )
  264.         elseif wanjia[player][2] <= 0 then
  265.         local charIndex1 = Char.CreateDummy()--生成ai佣兵
  266.         wanjia[player][0] = wanjia[player][0] + 1--统计ai佣兵数量
  267.         wanjia[player][2] = charIndex1
  268.                 Char.SetData(charIndex1, CONST.CHAR_X, Char.GetData(player, CONST.CHAR_X));
  269.                 Char.SetData(charIndex1, CONST.CHAR_Y, Char.GetData(player, CONST.CHAR_Y));
  270.                 Char.SetData(charIndex1, CONST.CHAR_地图, Char.GetData(player, CONST.CHAR_地图));
  271.                 Char.SetData(charIndex1, CONST.CHAR_名字, '弓箭手七冰');
  272.                 Char.SetData(charIndex1, CONST.CHAR_地图类型, Char.GetData(player, CONST.CHAR_地图类型));
  273.                 Char.SetData(charIndex1, CONST.CHAR_形象, 100370);
  274.                 Char.SetData(charIndex1, CONST.CHAR_原形, 100370);
  275.                 Char.SetData(charIndex1, CONST.CHAR_原始图档, 100370);
  276.                 if rlv >= 80 then
  277.                 Char.SetData(charIndex1, CONST.CHAR_体力, rzy);
  278.                 Char.SetData(charIndex1, CONST.CHAR_力量, rcy);
  279.                 Char.SetData(charIndex1, CONST.CHAR_强度, 0);
  280.                 Char.SetData(charIndex1, CONST.CHAR_速度, rs);
  281.                 Char.SetData(charIndex1, CONST.CHAR_魔法, 0);
  282.                 Char.SetData(charIndex1, CONST.CHAR_等级, rlv);
  283.                 else
  284.                 Char.SetData(charIndex1, CONST.CHAR_体力, rcy);
  285.                 Char.SetData(charIndex1, CONST.CHAR_力量, rzy);
  286.                 Char.SetData(charIndex1, CONST.CHAR_强度, 0);
  287.                 Char.SetData(charIndex1, CONST.CHAR_速度, rs);
  288.                 Char.SetData(charIndex1, CONST.CHAR_魔法, 0);
  289.                 Char.SetData(charIndex1, CONST.CHAR_等级, rlv);
  290.                 end
  291.                 NLG.UpChar(charIndex1);
  292.                 Char.SetData(charIndex1, CONST.CHAR_职业, 44);
  293.                 Char.SetData(charIndex1, CONST.CHAR_职类ID, 40);
  294.                 Char.SetData(charIndex1, CONST.CHAR_职阶, 3);
  295.                 if rlv >= 100 then
  296.                         sjlv = 10
  297.                 else
  298.                         sjlv = zblv
  299.                 end
  300.                 Char.GiveItem(charIndex1, agong[sjlv], 1);
  301.                 Char.GiveItem(charIndex1, amao[sjlv], 1);
  302.                 Char.GiveItem(charIndex1, ayi[sjlv], 1);
  303.                 Char.GiveItem(charIndex1, axie[sjlv], 1);
  304.                 Item.SetData(Char.GetItemIndex(charIndex1, 8), %道具_已鉴定%, 1)
  305.                 Item.SetData(Char.GetItemIndex(charIndex1, 9), %道具_已鉴定%, 1)
  306.                 Item.SetData(Char.GetItemIndex(charIndex1, 10), %道具_已鉴定%, 1)
  307.                 Item.SetData(Char.GetItemIndex(charIndex1, 11), %道具_已鉴定%, 1)
  308.                 Item.UpItem(charIndex1, -1);
  309.                 NLG.UpChar(charIndex1);
  310.                 Char.GiveItem(charIndex1, 900192, 1);
  311.                 Char.GiveItem(charIndex1, 900329, 1);
  312.                 Char.GiveItem(charIndex1, 900333, 1);
  313.                 Char.MoveItem(charIndex1, 8, CONST.EQUIP_左手, -1);
  314.                 Char.MoveItem(charIndex1, 9, CONST.EQUIP_头, -1);
  315.                 Char.MoveItem(charIndex1, 10, CONST.EQUIP_身, -1);
  316.                 Char.MoveItem(charIndex1, 11, CONST.EQUIP_腿, -1);
  317.                 Char.MoveItem(charIndex1, 12, CONST.EQUIP_水晶, -1);
  318.                 Char.MoveItem(charIndex1, 13, CONST.EQUIP_首饰1, -1);
  319.                 Char.MoveItem(charIndex1, 14, CONST.EQUIP_首饰2, -1);
  320.                 Char.GiveItem(charIndex1, 18196, 1);
  321.                 Char.GiveItem(charIndex1, 18315, 19);
  322.                 Char.SetData(charIndex1, CONST.CHAR_血, Char.GetData(charIndex1, CONST.CHAR_最大血));
  323.                 Char.SetData(charIndex1, CONST.CHAR_魔, Char.GetData(charIndex1, CONST.CHAR_最大魔));
  324.                 Char.AddSkill(charIndex1, 71);
  325.                 Char.AddSkill(charIndex1, 13);
  326.                 Char.AddSkill(charIndex1, 15);
  327.                 Char.AddSkill(charIndex1, 17);
  328.                 Char.SetSkillLevel(charIndex1,0,2);
  329.                 Char.SetSkillLevel(charIndex1,1,2);
  330.                 Char.SetSkillLevel(charIndex1,2,2);
  331.                 Char.SetSkillLevel(charIndex1,3,2);
  332.                 Char.GivePet(charIndex1, 900005);
  333.                 local charIndex2 = Char.GetPet(charIndex1,0)
  334.                 if rlv > 1 then
  335.                         local hdjy = rlv^4
  336.                         Char.SetData(charIndex2,%对象_经验%,hdjy);
  337.                         Pet.UpPet(charIndex1,charIndex2);
  338.                         local petFP = Char.GetData(charIndex2,%对象_魔法%)
  339.                         local petFPP = (rlv - 1)*100 + petFP
  340.                         Char.SetData(charIndex2, CONST.CHAR_魔法, petFPP);
  341.                         Char.SetData(charIndex2, CONST.CHAR_升级点, 0);
  342.                         Pet.UpPet(charIndex1,charIndex2);
  343.                         Char.SetData(charIndex2, CONST.CHAR_血, Char.GetData(charIndex2, CONST.CHAR_最大血));
  344.                         Char.SetData(charIndex2, CONST.CHAR_魔, Char.GetData(charIndex2, CONST.CHAR_最大魔));
  345.                 end
  346.                 if rlv >= 100 then
  347.                         sjlv = 5
  348.                 else
  349.                         sjlv = jnlv
  350.                 end
  351.                         Pet.AddSkill(charIndex2, petjn[sjlv][1]);
  352.                         Pet.AddSkill(charIndex2, petjn[sjlv][2]);
  353.                         Pet.AddSkill(charIndex2, petjn[sjlv][3]);
  354.                         Pet.AddSkill(charIndex2, petjn[sjlv][4]);
  355.                 Char.SetPetDepartureState(charIndex1, 0, CONST.PET_STATE_战斗);
  356.                 NLG.UpChar(charIndex1);
  357.                 Pet.UpPet(charIndex1,charIndex2);
  358.                 Item.UpItem(charIndex1, -1);
  359.                 NLG.SystemMessage(player, '召唤佣兵: 弓箭手' )
  360.                 Char.JoinParty(charIndex1, player);
  361.         else
  362.                 NLG.SystemMessage(player, '只能召唤1位弓箭手。' )
  363.         end
  364.                 elseif count == 3 then
  365.         if wanjia[player][0] > 3 then
  366.                 NLG.SystemMessage(player, '您已经召唤了4位小伙伴了,不能再召唤了。' )
  367.         elseif wanjia[player][3] <= 0 then
  368.         local charIndex1 = Char.CreateDummy()--生成ai佣兵
  369.         wanjia[player][0] = wanjia[player][0] + 1--统计ai佣兵数量
  370.         wanjia[player][3] = charIndex1
  371.                 Char.SetData(charIndex1, CONST.CHAR_X, Char.GetData(player, CONST.CHAR_X));
  372.                 Char.SetData(charIndex1, CONST.CHAR_Y, Char.GetData(player, CONST.CHAR_Y));
  373.                 Char.SetData(charIndex1, CONST.CHAR_地图, Char.GetData(player, CONST.CHAR_地图));
  374.                 Char.SetData(charIndex1, CONST.CHAR_名字, '格斗八重切');
  375.                 Char.SetData(charIndex1, CONST.CHAR_地图类型, Char.GetData(player, CONST.CHAR_地图类型));
  376.                 Char.SetData(charIndex1, CONST.CHAR_形象, 100102);
  377.                 Char.SetData(charIndex1, CONST.CHAR_原形, 100102);
  378.                 Char.SetData(charIndex1, CONST.CHAR_原始图档, 100102);
  379.                 Char.SetData(charIndex1, CONST.CHAR_体力, rcy);
  380.                 Char.SetData(charIndex1, CONST.CHAR_力量, rzy);
  381.                 Char.SetData(charIndex1, CONST.CHAR_强度, 0);
  382.                 Char.SetData(charIndex1, CONST.CHAR_速度, rs);
  383.                 Char.SetData(charIndex1, CONST.CHAR_魔法, 0);
  384.                 Char.SetData(charIndex1, CONST.CHAR_等级, rlv);
  385.                 NLG.UpChar(charIndex1);
  386.                 Char.SetData(charIndex1, CONST.CHAR_职业, 144);
  387.                 Char.SetData(charIndex1, CONST.CHAR_职类ID, 140);
  388.                 Char.SetData(charIndex1, CONST.CHAR_职阶, 3);
  389.                 if rlv >= 100 then
  390.                         sjlv = 10
  391.                 else
  392.                         sjlv = zblv
  393.                 end
  394.                 Char.GiveItem(charIndex1, amao[sjlv], 1);
  395.                 Char.GiveItem(charIndex1, ayi[sjlv], 1);
  396.                 Char.GiveItem(charIndex1, axie[sjlv], 1);
  397.                 Item.SetData(Char.GetItemIndex(charIndex1, 8), %道具_已鉴定%, 1)
  398.                 Item.SetData(Char.GetItemIndex(charIndex1, 9), %道具_已鉴定%, 1)
  399.                 Item.SetData(Char.GetItemIndex(charIndex1, 10), %道具_已鉴定%, 1)
  400.                 Item.UpItem(charIndex1, -1);
  401.                 NLG.UpChar(charIndex1);
  402.                 Char.GiveItem(charIndex1, 900193, 1);
  403.                 Char.GiveItem(charIndex1, 900329, 1);
  404.                 Char.GiveItem(charIndex1, 900333, 1);
  405.                 Char.MoveItem(charIndex1, 8, CONST.EQUIP_头, -1);
  406.                 Char.MoveItem(charIndex1, 9, CONST.EQUIP_身, -1);
  407.                 Char.MoveItem(charIndex1, 10, CONST.EQUIP_腿, -1);
  408.                 Char.MoveItem(charIndex1, 11, CONST.EQUIP_水晶, -1);
  409.                 Char.MoveItem(charIndex1, 12, CONST.EQUIP_首饰1, -1);
  410.                 Char.MoveItem(charIndex1, 13, CONST.EQUIP_首饰2, -1);
  411.                 Char.GiveItem(charIndex1, 18196, 1);
  412.                 Char.GiveItem(charIndex1, 18315, 19);
  413.                 Char.SetData(charIndex1, CONST.CHAR_血, Char.GetData(charIndex1, CONST.CHAR_最大血));
  414.                 Char.SetData(charIndex1, CONST.CHAR_魔, Char.GetData(charIndex1, CONST.CHAR_最大魔));
  415.                 Char.AddSkill(charIndex1, 71);
  416.                 Char.AddSkill(charIndex1, 13);
  417.                 Char.AddSkill(charIndex1, 15);
  418.                 Char.AddSkill(charIndex1, 17);
  419.                 Char.SetSkillLevel(charIndex1,0,2);
  420.                 Char.SetSkillLevel(charIndex1,1,2);
  421.                 Char.SetSkillLevel(charIndex1,2,2);
  422.                 Char.SetSkillLevel(charIndex1,3,2);
  423.                 Char.GivePet(charIndex1, 900005);
  424.                 local charIndex2 = Char.GetPet(charIndex1,0)
  425.                 if rlv > 1 then
  426.                         local hdjy = rlv^4
  427.                         Char.SetData(charIndex2,%对象_经验%,hdjy);
  428.                         Pet.UpPet(charIndex1,charIndex2);
  429.                         local petFP = Char.GetData(charIndex2,%对象_魔法%)
  430.                         local petFPP = (rlv - 1)*100 + petFP
  431.                         Char.SetData(charIndex2, CONST.CHAR_魔法, petFPP);
  432.                         Char.SetData(charIndex2, CONST.CHAR_升级点, 0);
  433.                         Pet.UpPet(charIndex1,charIndex2);
  434.                         Char.SetData(charIndex2, CONST.CHAR_血, Char.GetData(charIndex2, CONST.CHAR_最大血));
  435.                         Char.SetData(charIndex2, CONST.CHAR_魔, Char.GetData(charIndex2, CONST.CHAR_最大魔));
  436.                 end
  437.                 if rlv >= 100 then
  438.                         sjlv = 5
  439.                 else
  440.                         sjlv = jnlv
  441.                 end
  442.                         Pet.AddSkill(charIndex2, petjn[sjlv][1]);
  443.                         Pet.AddSkill(charIndex2, petjn[sjlv][2]);
  444.                         Pet.AddSkill(charIndex2, petjn[sjlv][3]);
  445.                         Pet.AddSkill(charIndex2, petjn[sjlv][4]);
  446.                 Char.SetPetDepartureState(charIndex1, 0, CONST.PET_STATE_战斗);
  447.                 NLG.UpChar(charIndex1);
  448.                 Pet.UpPet(charIndex1,charIndex2);
  449.                 Item.UpItem(charIndex1, -1);
  450.                 NLG.SystemMessage(player, '召唤佣兵: 格斗' )
  451.                 Char.JoinParty(charIndex1, player);
  452.         else
  453.                 NLG.SystemMessage(player, '只能召唤1位格斗。' )
  454.         end
  455.                 elseif count == 4 then
  456.         if wanjia[player][0] > 3 then
  457.                 NLG.SystemMessage(player, '您已经召唤了4位小伙伴了,不能再召唤了。' )
  458.         elseif wanjia[player][4] <= 0 then
  459.         local charIndex1 = Char.CreateDummy()--生成ai佣兵
  460.         wanjia[player][0] = wanjia[player][0] + 1--统计ai佣兵数量
  461.         wanjia[player][4] = charIndex1
  462.                 Char.SetData(charIndex1, CONST.CHAR_X, Char.GetData(player, CONST.CHAR_X));
  463.                 Char.SetData(charIndex1, CONST.CHAR_Y, Char.GetData(player, CONST.CHAR_Y));
  464.                 Char.SetData(charIndex1, CONST.CHAR_地图, Char.GetData(player, CONST.CHAR_地图));
  465.                 Char.SetData(charIndex1, CONST.CHAR_名字, '格斗红莲');
  466.                 Char.SetData(charIndex1, CONST.CHAR_地图类型, Char.GetData(player, CONST.CHAR_地图类型));
  467.                 Char.SetData(charIndex1, CONST.CHAR_形象, 100320);
  468.                 Char.SetData(charIndex1, CONST.CHAR_原形, 100320);
  469.                 Char.SetData(charIndex1, CONST.CHAR_原始图档, 100320);
  470.                 print('charIndex1', charIndex1)
  471.                 Char.SetData(charIndex1, CONST.CHAR_体力, rcy);
  472.                 Char.SetData(charIndex1, CONST.CHAR_力量, rzy);
  473.                 Char.SetData(charIndex1, CONST.CHAR_强度, 0);
  474.                 Char.SetData(charIndex1, CONST.CHAR_速度, rs);
  475.                 Char.SetData(charIndex1, CONST.CHAR_魔法, 0);
  476.                 Char.SetData(charIndex1, CONST.CHAR_等级, rlv);
  477.                 NLG.UpChar(charIndex1);
  478.                 Char.SetData(charIndex1, CONST.CHAR_职业, 144);
  479.                 Char.SetData(charIndex1, CONST.CHAR_职类ID, 140);
  480.                 Char.SetData(charIndex1, CONST.CHAR_职阶, 3);
  481.                 if rlv >= 100 then
  482.                         sjlv = 10
  483.                 else
  484.                         sjlv = zblv
  485.                 end
  486.                 Char.GiveItem(charIndex1, amao[sjlv], 1);
  487.                 Char.GiveItem(charIndex1, ayi[sjlv], 1);
  488.                 Char.GiveItem(charIndex1, axie[sjlv], 1);
  489.                 Item.SetData(Char.GetItemIndex(charIndex1, 8), %道具_已鉴定%, 1)
  490.                 Item.SetData(Char.GetItemIndex(charIndex1, 9), %道具_已鉴定%, 1)
  491.                 Item.SetData(Char.GetItemIndex(charIndex1, 10), %道具_已鉴定%, 1)
  492.                 Item.UpItem(charIndex1, -1);
  493.                 NLG.UpChar(charIndex1);
  494.                 Char.GiveItem(charIndex1, 900194, 1);
  495.                 Char.GiveItem(charIndex1, 900329, 1);
  496.                 Char.GiveItem(charIndex1, 900333, 1);
  497.                 Char.MoveItem(charIndex1, 8, CONST.EQUIP_头, -1);
  498.                 Char.MoveItem(charIndex1, 9, CONST.EQUIP_身, -1);
  499.                 Char.MoveItem(charIndex1, 10, CONST.EQUIP_腿, -1);
  500.                 Char.MoveItem(charIndex1, 11, CONST.EQUIP_水晶, -1);
  501.                 Char.MoveItem(charIndex1, 12, CONST.EQUIP_首饰1, -1);
  502.                 Char.MoveItem(charIndex1, 13, CONST.EQUIP_首饰2, -1);
  503.                 Char.GiveItem(charIndex1, 18196, 1);
  504.                 Char.GiveItem(charIndex1, 18315, 19);
  505.                 Char.SetData(charIndex1, CONST.CHAR_血, Char.GetData(charIndex1, CONST.CHAR_最大血));
  506.                 Char.SetData(charIndex1, CONST.CHAR_魔, Char.GetData(charIndex1, CONST.CHAR_最大魔));
  507.                 Char.AddSkill(charIndex1, 71);
  508.                 Char.AddSkill(charIndex1, 13);
  509.                 Char.AddSkill(charIndex1, 15);
  510.                 Char.AddSkill(charIndex1, 17);
  511.                 Char.SetSkillLevel(charIndex1,0,2);
  512.                 Char.SetSkillLevel(charIndex1,1,2);
  513.                 Char.SetSkillLevel(charIndex1,2,2);
  514.                 Char.SetSkillLevel(charIndex1,3,2);
  515.                 Char.GivePet(charIndex1, 900006);
  516.                 local charIndex2 = Char.GetPet(charIndex1,0)
  517.                 if rlv > 1 then
  518.                         local hdjy = rlv^4
  519.                         Char.SetData(charIndex2,%对象_经验%,hdjy);
  520.                         Pet.UpPet(charIndex1,charIndex2);
  521.                         local petFP = Char.GetData(charIndex2,%对象_魔法%)
  522.                         local petFPP = (rlv - 1)*100 + petFP
  523.                         Char.SetData(charIndex2, CONST.CHAR_魔法, petFPP);
  524.                         Char.SetData(charIndex2, CONST.CHAR_升级点, 0);
  525.                         Pet.UpPet(charIndex1,charIndex2);
  526.                         Char.SetData(charIndex2, CONST.CHAR_血, Char.GetData(charIndex2, CONST.CHAR_最大血));
  527.                         Char.SetData(charIndex2, CONST.CHAR_魔, Char.GetData(charIndex2, CONST.CHAR_最大魔));
  528.                 end
  529.                 if rlv >= 100 then
  530.                         sjlv = 5
  531.                 else
  532.                         sjlv = jnlv
  533.                 end
  534.                         Pet.AddSkill(charIndex2, petjn[sjlv][1]);
  535.                         Pet.AddSkill(charIndex2, petjn[sjlv][2]);
  536.                         Pet.AddSkill(charIndex2, petjn[sjlv][3]);
  537.                         Pet.AddSkill(charIndex2, petjn[sjlv][4]);
  538.                 Char.SetPetDepartureState(charIndex1, 0, CONST.PET_STATE_战斗);
  539.                 NLG.UpChar(charIndex1);
  540.                 Pet.UpPet(charIndex1,charIndex2);
  541.                 Item.UpItem(charIndex1, -1);
  542.                 NLG.SystemMessage(player, '召唤佣兵: 格斗' )
  543.                 Char.JoinParty(charIndex1, player);
  544.         else
  545.                 NLG.SystemMessage(player, '只能召唤1位格斗。' )
  546.         end
  547.                 elseif count == 5 then
  548.         if wanjia[player][0] > 3 then
  549.                 NLG.SystemMessage(player, '您已经召唤了4位小伙伴了,不能再召唤了。' )
  550.         elseif wanjia[player][5] <= 0 then
  551.         local charIndex1 = Char.CreateDummy()--生成ai佣兵
  552.         wanjia[player][0] = wanjia[player][0] + 1--统计ai佣兵数量
  553.         wanjia[player][5] = charIndex1
  554.                 Char.SetData(charIndex1, CONST.CHAR_X, Char.GetData(player, CONST.CHAR_X));
  555.                 Char.SetData(charIndex1, CONST.CHAR_Y, Char.GetData(player, CONST.CHAR_Y));
  556.                 Char.SetData(charIndex1, CONST.CHAR_地图, Char.GetData(player, CONST.CHAR_地图));
  557.                 Char.SetData(charIndex1, CONST.CHAR_名字, '主教奈麻');
  558.                 Char.SetData(charIndex1, CONST.CHAR_地图类型, Char.GetData(player, CONST.CHAR_地图类型));
  559.                 Char.SetData(charIndex1, CONST.CHAR_形象, 100333);
  560.                 Char.SetData(charIndex1, CONST.CHAR_原形, 100333);
  561.                 Char.SetData(charIndex1, CONST.CHAR_原始图档, 100333);
  562.                 if rlv >= 83 then
  563.                 Char.SetData(charIndex1, CONST.CHAR_体力, rzy);
  564.                 Char.SetData(charIndex1, CONST.CHAR_力量, 0);
  565.                 Char.SetData(charIndex1, CONST.CHAR_强度, 0);
  566.                 Char.SetData(charIndex1, CONST.CHAR_速度, rs);
  567.                 Char.SetData(charIndex1, CONST.CHAR_魔法, rcy);
  568.                 Char.SetData(charIndex1, CONST.CHAR_等级, rlv);
  569.                 else
  570.                 Char.SetData(charIndex1, CONST.CHAR_体力, rzy);
  571.                 Char.SetData(charIndex1, CONST.CHAR_力量, 0);
  572.                 Char.SetData(charIndex1, CONST.CHAR_强度, 0);
  573.                 Char.SetData(charIndex1, CONST.CHAR_速度, rzycj);
  574.                 Char.SetData(charIndex1, CONST.CHAR_魔法, rcycj);
  575.                 Char.SetData(charIndex1, CONST.CHAR_等级, rlv);
  576.                 end
  577.                 NLG.UpChar(charIndex1);
  578.                 Char.SetData(charIndex1, CONST.CHAR_职业, 64);
  579.                 Char.SetData(charIndex1, CONST.CHAR_职类ID, 60);
  580.                 Char.SetData(charIndex1, CONST.CHAR_职阶, 3);
  581.                 if rlv >= 100 then
  582.                         sjlv = 10
  583.                 else
  584.                         sjlv = zblv
  585.                 end
  586.                 Char.GiveItem(charIndex1, bzhang[sjlv], 1);
  587.                 Char.GiveItem(charIndex1, amao[sjlv], 1);
  588.                 Char.GiveItem(charIndex1, apao[sjlv], 1);
  589.                 Char.GiveItem(charIndex1, axie[sjlv], 1);
  590.                 Item.SetData(Char.GetItemIndex(charIndex1, 8), %道具_已鉴定%, 1)
  591.                 Item.SetData(Char.GetItemIndex(charIndex1, 9), %道具_已鉴定%, 1)
  592.                 Item.SetData(Char.GetItemIndex(charIndex1, 10), %道具_已鉴定%, 1)
  593.                 Item.SetData(Char.GetItemIndex(charIndex1, 11), %道具_已鉴定%, 1)
  594.                 Item.UpItem(charIndex1, -1);
  595.                 NLG.UpChar(charIndex1);
  596.                 Char.GiveItem(charIndex1, 900192, 1);
  597.                 Char.GiveItem(charIndex1, 900330, 1);
  598.                 Char.GiveItem(charIndex1, 900331, 1);
  599.                 Char.MoveItem(charIndex1, 8, CONST.EQUIP_左手, -1);
  600.                 Char.MoveItem(charIndex1, 9, CONST.EQUIP_头, -1);
  601.                 Char.MoveItem(charIndex1, 10, CONST.EQUIP_身, -1);
  602.                 Char.MoveItem(charIndex1, 11, CONST.EQUIP_腿, -1);
  603.                 Char.MoveItem(charIndex1, 12, CONST.EQUIP_水晶, -1);
  604.                 Char.MoveItem(charIndex1, 13, CONST.EQUIP_首饰1, -1);
  605.                 Char.MoveItem(charIndex1, 14, CONST.EQUIP_首饰2, -1);
  606.                 Char.GiveItem(charIndex1, 18196, 1);
  607.                 Char.GiveItem(charIndex1, 18315, 19);
  608.                 Char.SetData(charIndex1, CONST.CHAR_血, Char.GetData(charIndex1, CONST.CHAR_最大血));
  609.                 Char.SetData(charIndex1, CONST.CHAR_魔, Char.GetData(charIndex1, CONST.CHAR_最大魔));
  610.                 Char.AddSkill(charIndex1, 71);
  611.                 Char.AddSkill(charIndex1, 13);
  612.                 Char.AddSkill(charIndex1, 15);
  613.                 Char.AddSkill(charIndex1, 17);
  614.                 Char.SetSkillLevel(charIndex1,0,2);
  615.                 Char.SetSkillLevel(charIndex1,1,2);
  616.                 Char.SetSkillLevel(charIndex1,2,2);
  617.                 Char.SetSkillLevel(charIndex1,3,2);
  618.                 Char.GivePet(charIndex1, 900004);
  619.                 local charIndex2 = Char.GetPet(charIndex1,0)
  620.                 if rlv > 1 then
  621.                         local hdjy = rlv^4
  622.                         Char.SetData(charIndex2,%对象_经验%,hdjy);
  623.                         Pet.UpPet(charIndex1,charIndex2);
  624.                         local petFP = Char.GetData(charIndex2,%对象_体力%)
  625.                         local petFPP = (rlv - 1)*100 + petFP
  626.                         Char.SetData(charIndex2, CONST.CHAR_体力, petFPP);
  627.                         Char.SetData(charIndex2, CONST.CHAR_升级点, 0);
  628.                         Pet.UpPet(charIndex1,charIndex2);
  629.                         Char.SetData(charIndex2, CONST.CHAR_血, Char.GetData(charIndex2, CONST.CHAR_最大血));
  630.                         Char.SetData(charIndex2, CONST.CHAR_魔, Char.GetData(charIndex2, CONST.CHAR_最大魔));
  631.                 end
  632.                 if rlv >= 100 then
  633.                         sjlv = 5
  634.                 else
  635.                         sjlv = jnlv
  636.                 end
  637.                         Pet.AddSkill(charIndex2, petjn[sjlv][1]);
  638.                         Pet.AddSkill(charIndex2, petjn[sjlv][2]);
  639.                         Pet.AddSkill(charIndex2, petjn[sjlv][5]);
  640.                         Pet.AddSkill(charIndex2, petjn[sjlv][4]);
  641.                 Char.SetPetDepartureState(charIndex1, 0, CONST.PET_STATE_战斗);
  642.                 NLG.UpChar(charIndex1);
  643.                 Pet.UpPet(charIndex1,charIndex2);
  644.                 Item.UpItem(charIndex1, -1);
  645.                 NLG.SystemMessage(player, '召唤佣兵: 传教' )
  646.                 Char.JoinParty(charIndex1, player);
  647.         else
  648.                 NLG.SystemMessage(player, '只能召唤1位传教。' )
  649.         end
  650.                 elseif count == 6 then
  651.         if wanjia[player][0] > 3 then
  652.                 NLG.SystemMessage(player, '您已经召唤了4位小伙伴了,不能再召唤了。' )
  653.         elseif wanjia[player][6] <= 0 then
  654.         local charIndex1 = Char.CreateDummy()--生成ai佣兵
  655.         wanjia[player][0] = wanjia[player][0] + 1--统计ai佣兵数量
  656.         wanjia[player][6] = charIndex1
  657.                 Char.SetData(charIndex1, CONST.CHAR_X, Char.GetData(player, CONST.CHAR_X));
  658.                 Char.SetData(charIndex1, CONST.CHAR_Y, Char.GetData(player, CONST.CHAR_Y));
  659.                 Char.SetData(charIndex1, CONST.CHAR_地图, Char.GetData(player, CONST.CHAR_地图));
  660.                 Char.SetData(charIndex1, CONST.CHAR_名字, '战斧重音');
  661.                 Char.SetData(charIndex1, CONST.CHAR_地图类型, Char.GetData(player, CONST.CHAR_地图类型));
  662.                 Char.SetData(charIndex1, CONST.CHAR_形象, 100270);
  663.                 Char.SetData(charIndex1, CONST.CHAR_原形, 100270);
  664.                 Char.SetData(charIndex1, CONST.CHAR_原始图档, 100270);
  665.                 if rlv >= 80 then
  666.                 Char.SetData(charIndex1, CONST.CHAR_体力, rzy);
  667.                 Char.SetData(charIndex1, CONST.CHAR_力量, rcy);
  668.                 Char.SetData(charIndex1, CONST.CHAR_强度, 0);
  669.                 Char.SetData(charIndex1, CONST.CHAR_速度, rs);
  670.                 Char.SetData(charIndex1, CONST.CHAR_魔法, 0);
  671.                 Char.SetData(charIndex1, CONST.CHAR_等级, rlv);
  672.                 else
  673.                 Char.SetData(charIndex1, CONST.CHAR_体力, rcy);
  674.                 Char.SetData(charIndex1, CONST.CHAR_力量, rzy);
  675.                 Char.SetData(charIndex1, CONST.CHAR_强度, 0);
  676.                 Char.SetData(charIndex1, CONST.CHAR_速度, rs);
  677.                 Char.SetData(charIndex1, CONST.CHAR_魔法, 0);
  678.                 Char.SetData(charIndex1, CONST.CHAR_等级, rlv);
  679.                 end
  680.                 NLG.UpChar(charIndex1);
  681.                 Char.SetData(charIndex1, CONST.CHAR_职业, 24);
  682.                 Char.SetData(charIndex1, CONST.CHAR_职类ID, 20);
  683.                 Char.SetData(charIndex1, CONST.CHAR_职阶, 3);
  684.                 if rlv >= 100 then
  685.                         sjlv = 10
  686.                 else
  687.                         sjlv = zblv
  688.                 end
  689.                 Char.GiveItem(charIndex1, afu[sjlv], 1);
  690.                 Char.GiveItem(charIndex1, akui[sjlv], 1);
  691.                 Char.GiveItem(charIndex1, akai[sjlv], 1);
  692.                 Char.GiveItem(charIndex1, axue[sjlv], 1);
  693.                 Item.SetData(Char.GetItemIndex(charIndex1, 8), %道具_已鉴定%, 1)
  694.                 Item.SetData(Char.GetItemIndex(charIndex1, 9), %道具_已鉴定%, 1)
  695.                 Item.SetData(Char.GetItemIndex(charIndex1, 10), %道具_已鉴定%, 1)
  696.                 Item.SetData(Char.GetItemIndex(charIndex1, 11), %道具_已鉴定%, 1)
  697.                 Item.UpItem(charIndex1, -1);
  698.                 NLG.UpChar(charIndex1);
  699.                 Char.GiveItem(charIndex1, 900191, 1);
  700.                 Char.GiveItem(charIndex1, 900329, 1);
  701.                 Char.GiveItem(charIndex1, 900333, 1);
  702.                 Char.MoveItem(charIndex1, 8, CONST.EQUIP_左手, -1);
  703.                 Char.MoveItem(charIndex1, 9, CONST.EQUIP_头, -1);
  704.                 Char.MoveItem(charIndex1, 10, CONST.EQUIP_身, -1);
  705.                 Char.MoveItem(charIndex1, 11, CONST.EQUIP_腿, -1);
  706.                 Char.MoveItem(charIndex1, 12, CONST.EQUIP_水晶, -1);
  707.                 Char.MoveItem(charIndex1, 13, CONST.EQUIP_首饰1, -1);
  708.                 Char.MoveItem(charIndex1, 14, CONST.EQUIP_首饰2, -1);
  709.                 Char.GiveItem(charIndex1, 18196, 1);
  710.                 Char.GiveItem(charIndex1, 18315, 19);
  711.                 Char.SetData(charIndex1, CONST.CHAR_血, Char.GetData(charIndex1, CONST.CHAR_最大血));
  712.                 Char.SetData(charIndex1, CONST.CHAR_魔, Char.GetData(charIndex1, CONST.CHAR_最大魔));
  713.                 Char.AddSkill(charIndex1, 71);
  714.                 Char.AddSkill(charIndex1, 13);
  715.                 Char.AddSkill(charIndex1, 15);
  716.                 Char.AddSkill(charIndex1, 17);
  717.                 Char.SetSkillLevel(charIndex1,0,2);
  718.                 Char.SetSkillLevel(charIndex1,1,2);
  719.                 Char.SetSkillLevel(charIndex1,2,2);
  720.                 Char.SetSkillLevel(charIndex1,3,2);
  721.                 Char.GivePet(charIndex1, 900005);
  722.                 local charIndex2 = Char.GetPet(charIndex1,0)
  723.                 if rlv > 1 then
  724.                         local hdjy = rlv^4
  725.                         Char.SetData(charIndex2,%对象_经验%,hdjy);
  726.                         Pet.UpPet(charIndex1,charIndex2);
  727.                         local petFP = Char.GetData(charIndex2,%对象_体力%)
  728.                         local petFPP = (rlv - 1)*100 + petFP
  729.                         Char.SetData(charIndex2, CONST.CHAR_体力, petFPP);
  730.                         Char.SetData(charIndex2, CONST.CHAR_升级点, 0);
  731.                         Pet.UpPet(charIndex1,charIndex2);
  732.                         Char.SetData(charIndex2, CONST.CHAR_血, Char.GetData(charIndex2, CONST.CHAR_最大血));
  733.                         Char.SetData(charIndex2, CONST.CHAR_魔, Char.GetData(charIndex2, CONST.CHAR_最大魔));
  734.                 end
  735.                 if rlv >= 100 then
  736.                         sjlv = 5
  737.                 else
  738.                         sjlv = jnlv
  739.                 end
  740.                         Pet.AddSkill(charIndex2, petjn[sjlv][1]);
  741.                         Pet.AddSkill(charIndex2, petjn[sjlv][2]);
  742.                         Pet.AddSkill(charIndex2, petjn[sjlv][5]);
  743.                         Pet.AddSkill(charIndex2, petjn[sjlv][4]);
  744.                 Char.SetPetDepartureState(charIndex1, 0, CONST.PET_STATE_战斗);
  745.                 NLG.UpChar(charIndex1);
  746.                 Pet.UpPet(charIndex1,charIndex2);
  747.                 Item.UpItem(charIndex1, -1);
  748.                 NLG.SystemMessage(player, '召唤佣兵: 战斧' )
  749.                 Char.JoinParty(charIndex1, player);
  750.         else
  751.                 NLG.SystemMessage(player, '只能召唤1位战斧。' )
  752.         end
  753.                 elseif count == 7 then
  754.         if wanjia[player][0] > 3 then
  755.                 NLG.SystemMessage(player, '您已经召唤了4位小伙伴了,不能再召唤了。' )
  756.         elseif wanjia[player][7] <= 0 then
  757.         local charIndex1 = Char.CreateDummy()--生成ai佣兵
  758.         wanjia[player][0] = wanjia[player][0] + 1--统计ai佣兵数量
  759.         wanjia[player][7] = charIndex1
  760.                 Char.SetData(charIndex1, CONST.CHAR_X, Char.GetData(player, CONST.CHAR_X));
  761.                 Char.SetData(charIndex1, CONST.CHAR_Y, Char.GetData(player, CONST.CHAR_Y));
  762.                 Char.SetData(charIndex1, CONST.CHAR_地图, Char.GetData(player, CONST.CHAR_地图));
  763.                 Char.SetData(charIndex1, CONST.CHAR_名字, '战斧凛音');
  764.                 Char.SetData(charIndex1, CONST.CHAR_地图类型, Char.GetData(player, CONST.CHAR_地图类型));
  765.                 Char.SetData(charIndex1, CONST.CHAR_形象, 100295);
  766.                 Char.SetData(charIndex1, CONST.CHAR_原形, 100295);
  767.                 Char.SetData(charIndex1, CONST.CHAR_原始图档, 100295);
  768.                 if rlv >= 80 then
  769.                 Char.SetData(charIndex1, CONST.CHAR_体力, rzy);
  770.                 Char.SetData(charIndex1, CONST.CHAR_力量, rcy);
  771.                 Char.SetData(charIndex1, CONST.CHAR_强度, 0);
  772.                 Char.SetData(charIndex1, CONST.CHAR_速度, rs);
  773.                 Char.SetData(charIndex1, CONST.CHAR_魔法, 0);
  774.                 Char.SetData(charIndex1, CONST.CHAR_等级, rlv);
  775.                 else
  776.                 Char.SetData(charIndex1, CONST.CHAR_体力, rcy);
  777.                 Char.SetData(charIndex1, CONST.CHAR_力量, rzy);
  778.                 Char.SetData(charIndex1, CONST.CHAR_强度, 0);
  779.                 Char.SetData(charIndex1, CONST.CHAR_速度, rs);
  780.                 Char.SetData(charIndex1, CONST.CHAR_魔法, 0);
  781.                 Char.SetData(charIndex1, CONST.CHAR_等级, rlv);
  782.                 end
  783.                 NLG.UpChar(charIndex1);
  784.                 Char.SetData(charIndex1, CONST.CHAR_职业, 24);
  785.                 Char.SetData(charIndex1, CONST.CHAR_职类ID, 20);
  786.                 Char.SetData(charIndex1, CONST.CHAR_职阶, 3);
  787.                 if rlv >= 100 then
  788.                         sjlv = 10
  789.                 else
  790.                         sjlv = zblv
  791.                 end
  792.                 Char.GiveItem(charIndex1, afu[sjlv], 1);
  793.                 Char.GiveItem(charIndex1, akui[sjlv], 1);
  794.                 Char.GiveItem(charIndex1, akai[sjlv], 1);
  795.                 Char.GiveItem(charIndex1, axue[sjlv], 1);
  796.                 Item.SetData(Char.GetItemIndex(charIndex1, 8), %道具_已鉴定%, 1)
  797.                 Item.SetData(Char.GetItemIndex(charIndex1, 9), %道具_已鉴定%, 1)
  798.                 Item.SetData(Char.GetItemIndex(charIndex1, 10), %道具_已鉴定%, 1)
  799.                 Item.SetData(Char.GetItemIndex(charIndex1, 11), %道具_已鉴定%, 1)
  800.                 Item.UpItem(charIndex1, -1);
  801.                 NLG.UpChar(charIndex1);
  802.                 Char.GiveItem(charIndex1, 900192, 1);
  803.                 Char.GiveItem(charIndex1, 900329, 1);
  804.                 Char.GiveItem(charIndex1, 900333, 1);
  805.                 Char.MoveItem(charIndex1, 8, CONST.EQUIP_左手, -1);
  806.                 Char.MoveItem(charIndex1, 9, CONST.EQUIP_头, -1);
  807.                 Char.MoveItem(charIndex1, 10, CONST.EQUIP_身, -1);
  808.                 Char.MoveItem(charIndex1, 11, CONST.EQUIP_腿, -1);
  809.                 Char.MoveItem(charIndex1, 12, CONST.EQUIP_水晶, -1);
  810.                 Char.MoveItem(charIndex1, 13, CONST.EQUIP_首饰1, -1);
  811.                 Char.MoveItem(charIndex1, 14, CONST.EQUIP_首饰2, -1);
  812.                 Char.GiveItem(charIndex1, 18196, 1);
  813.                 Char.GiveItem(charIndex1, 18315, 19);
  814.                 Char.SetData(charIndex1, CONST.CHAR_血, Char.GetData(charIndex1, CONST.CHAR_最大血));
  815.                 Char.SetData(charIndex1, CONST.CHAR_魔, Char.GetData(charIndex1, CONST.CHAR_最大魔));
  816.                 Char.AddSkill(charIndex1, 71);
  817.                 Char.AddSkill(charIndex1, 13);
  818.                 Char.AddSkill(charIndex1, 15);
  819.                 Char.AddSkill(charIndex1, 17);
  820.                 Char.SetSkillLevel(charIndex1,0,2);
  821.                 Char.SetSkillLevel(charIndex1,1,2);
  822.                 Char.SetSkillLevel(charIndex1,2,2);
  823.                 Char.SetSkillLevel(charIndex1,3,2);
  824.                 Char.GivePet(charIndex1, 900007);
  825.                 local charIndex2 = Char.GetPet(charIndex1,0)
  826.                 if rlv > 1 then
  827.                         local hdjy = rlv^4
  828.                         Char.SetData(charIndex2,%对象_经验%,hdjy);
  829.                         Pet.UpPet(charIndex1,charIndex2);
  830.                         local petFP = Char.GetData(charIndex2,%对象_体力%)
  831.                         local petFPP = (rlv - 1)*100 + petFP
  832.                         Char.SetData(charIndex2, CONST.CHAR_体力, petFPP);
  833.                         Char.SetData(charIndex2, CONST.CHAR_升级点, 0);
  834.                         Pet.UpPet(charIndex1,charIndex2);
  835.                         Char.SetData(charIndex2, CONST.CHAR_血, Char.GetData(charIndex2, CONST.CHAR_最大血));
  836.                         Char.SetData(charIndex2, CONST.CHAR_魔, Char.GetData(charIndex2, CONST.CHAR_最大魔));
  837.                 end
  838.                 if rlv >= 100 then
  839.                         sjlv = 5
  840.                 else
  841.                         sjlv = jnlv
  842.                 end
  843.                         Pet.AddSkill(charIndex2, petjn[sjlv][1]);
  844.                         Pet.AddSkill(charIndex2, petjn[sjlv][2]);
  845.                         Pet.AddSkill(charIndex2, petjn[sjlv][5]);
  846.                         Pet.AddSkill(charIndex2, petjn[sjlv][4]);
  847.                 Char.SetPetDepartureState(charIndex1, 0, CONST.PET_STATE_战斗);
  848.                 NLG.UpChar(charIndex1);
  849.                 Pet.UpPet(charIndex1,charIndex2);
  850.                 Item.UpItem(charIndex1, -1);
  851.                 NLG.SystemMessage(player, '召唤佣兵: 战斧' )
  852.                 Char.JoinParty(charIndex1, player);
  853.         else
  854.                 NLG.SystemMessage(player, '只能召唤1位战斧。' )
  855.         end
  856.                 elseif count == 8 then
  857.         if wanjia[player][0] > 3 then
  858.                 NLG.SystemMessage(player, '您已经召唤了4位小伙伴了,不能再召唤了。' )
  859.         elseif wanjia[player][8] <= 0 then
  860.         local charIndex1 = Char.CreateDummy()--生成ai佣兵
  861.         wanjia[player][0] = wanjia[player][0] + 1--统计ai佣兵数量
  862.         wanjia[player][8] = charIndex1
  863.                 Char.SetData(charIndex1, CONST.CHAR_X, Char.GetData(player, CONST.CHAR_X));
  864.                 Char.SetData(charIndex1, CONST.CHAR_Y, Char.GetData(player, CONST.CHAR_Y));
  865.                 Char.SetData(charIndex1, CONST.CHAR_地图, Char.GetData(player, CONST.CHAR_地图));
  866.                 Char.SetData(charIndex1, CONST.CHAR_名字, '剑士绵津见');
  867.                 Char.SetData(charIndex1, CONST.CHAR_地图类型, Char.GetData(player, CONST.CHAR_地图类型));
  868.                 Char.SetData(charIndex1, CONST.CHAR_形象, 100045);
  869.                 Char.SetData(charIndex1, CONST.CHAR_原形, 100045);
  870.                 Char.SetData(charIndex1, CONST.CHAR_原始图档, 100045);
  871.                 if rlv >= 80 then
  872.                 Char.SetData(charIndex1, CONST.CHAR_体力, rzy);
  873.                 Char.SetData(charIndex1, CONST.CHAR_力量, rcy);
  874.                 Char.SetData(charIndex1, CONST.CHAR_强度, 0);
  875.                 Char.SetData(charIndex1, CONST.CHAR_速度, rs);
  876.                 Char.SetData(charIndex1, CONST.CHAR_魔法, 0);
  877.                 Char.SetData(charIndex1, CONST.CHAR_等级, rlv);
  878.                 else
  879.                 Char.SetData(charIndex1, CONST.CHAR_体力, rcy);
  880.                 Char.SetData(charIndex1, CONST.CHAR_力量, rzy);
  881.                 Char.SetData(charIndex1, CONST.CHAR_强度, 0);
  882.                 Char.SetData(charIndex1, CONST.CHAR_速度, rs);
  883.                 Char.SetData(charIndex1, CONST.CHAR_魔法, 0);
  884.                 Char.SetData(charIndex1, CONST.CHAR_等级, rlv);
  885.                 end
  886.                 NLG.UpChar(charIndex1);
  887.                 Char.SetData(charIndex1, CONST.CHAR_职业, 14);
  888.                 Char.SetData(charIndex1, CONST.CHAR_职类ID, 10);
  889.                 Char.SetData(charIndex1, CONST.CHAR_职阶, 3);
  890.                 if rlv >= 100 then
  891.                         sjlv = 10
  892.                 else
  893.                         sjlv = zblv
  894.                 end
  895.                 Char.GiveItem(charIndex1, ajian[sjlv], 1);
  896.                 Char.GiveItem(charIndex1, adun[sjlv], 1);
  897.                 Char.GiveItem(charIndex1, akui[sjlv], 1);
  898.                 Char.GiveItem(charIndex1, akai[sjlv], 1);
  899.                 Char.GiveItem(charIndex1, axue[sjlv], 1);
  900.                 Item.SetData(Char.GetItemIndex(charIndex1, 8), %道具_已鉴定%, 1)
  901.                 Item.SetData(Char.GetItemIndex(charIndex1, 9), %道具_已鉴定%, 1)
  902.                 Item.SetData(Char.GetItemIndex(charIndex1, 10), %道具_已鉴定%, 1)
  903.                 Item.SetData(Char.GetItemIndex(charIndex1, 11), %道具_已鉴定%, 1)
  904.                 Item.SetData(Char.GetItemIndex(charIndex1, 12), %道具_已鉴定%, 1)
  905.                 Item.UpItem(charIndex1, -1);
  906.                 NLG.UpChar(charIndex1);
  907.                 Char.GiveItem(charIndex1, 900193, 1);
  908.                 Char.GiveItem(charIndex1, 900329, 1);
  909.                 Char.GiveItem(charIndex1, 900333, 1);
  910.                 Char.MoveItem(charIndex1, 8, CONST.EQUIP_左手, -1);
  911.                 Char.MoveItem(charIndex1, 9, CONST.EQUIP_右手, -1);
  912.                 Char.MoveItem(charIndex1, 10, CONST.EQUIP_头, -1);
  913.                 Char.MoveItem(charIndex1, 11, CONST.EQUIP_身, -1);
  914.                 Char.MoveItem(charIndex1, 12, CONST.EQUIP_腿, -1);
  915.                 Char.MoveItem(charIndex1, 13, CONST.EQUIP_水晶, -1);
  916.                 Char.MoveItem(charIndex1, 14, CONST.EQUIP_首饰1, -1);
  917.                 Char.MoveItem(charIndex1, 15, CONST.EQUIP_首饰2, -1);
  918.                 Char.GiveItem(charIndex1, 18196, 1);
  919.                 Char.GiveItem(charIndex1, 18315, 19);
  920.                 Char.SetData(charIndex1, CONST.CHAR_血, Char.GetData(charIndex1, CONST.CHAR_最大血));
  921.                 Char.SetData(charIndex1, CONST.CHAR_魔, Char.GetData(charIndex1, CONST.CHAR_最大魔));
  922.                 Char.AddSkill(charIndex1, 71);
  923.                 Char.AddSkill(charIndex1, 13);
  924.                 Char.AddSkill(charIndex1, 15);
  925.                 Char.AddSkill(charIndex1, 17);
  926.                 Char.SetSkillLevel(charIndex1,0,2);
  927.                 Char.SetSkillLevel(charIndex1,1,2);
  928.                 Char.SetSkillLevel(charIndex1,2,2);
  929.                 Char.SetSkillLevel(charIndex1,3,2);
  930.                 Char.GivePet(charIndex1, 900006);
  931.                 local charIndex2 = Char.GetPet(charIndex1,0)
  932.                 if rlv > 1 then
  933.                         local hdjy = rlv^4
  934.                         Char.SetData(charIndex2,%对象_经验%,hdjy);
  935.                         Pet.UpPet(charIndex1,charIndex2);
  936.                         local petFP = Char.GetData(charIndex2,%对象_体力%)
  937.                         local petFPP = (rlv - 1)*100 + petFP
  938.                         Char.SetData(charIndex2, CONST.CHAR_体力, petFPP);
  939.                         Char.SetData(charIndex2, CONST.CHAR_升级点, 0);
  940.                         Pet.UpPet(charIndex1,charIndex2);
  941.                         Char.SetData(charIndex2, CONST.CHAR_血, Char.GetData(charIndex2, CONST.CHAR_最大血));
  942.                         Char.SetData(charIndex2, CONST.CHAR_魔, Char.GetData(charIndex2, CONST.CHAR_最大魔));
  943.                 end
  944.                 if rlv >= 100 then
  945.                         sjlv = 5
  946.                 else
  947.                         sjlv = jnlv
  948.                 end
  949.                         Pet.AddSkill(charIndex2, petjn[sjlv][1]);
  950.                         Pet.AddSkill(charIndex2, petjn[sjlv][2]);
  951.                         Pet.AddSkill(charIndex2, petjn[sjlv][5]);
  952.                         Pet.AddSkill(charIndex2, petjn[sjlv][4]);
  953.                 Char.SetPetDepartureState(charIndex1, 0, CONST.PET_STATE_战斗);
  954.                 NLG.UpChar(charIndex1);
  955.                 Pet.UpPet(charIndex1,charIndex2);
  956.                 Item.UpItem(charIndex1, -1);
  957.                 NLG.SystemMessage(player, '召唤佣兵: 剑士' )
  958.                 Char.JoinParty(charIndex1, player);
  959.         else
  960.                 NLG.SystemMessage(player, '只能召唤1位剑士。' )
  961.         end
  962.                 elseif count == 9 then
  963.         if wanjia[player][0] > 3 then
  964.                 NLG.SystemMessage(player, '您已经召唤了4位小伙伴了,不能再召唤了。' )
  965.         elseif wanjia[player][9] <= 0 then
  966.         local charIndex1 = Char.CreateDummy()--生成ai佣兵
  967.         wanjia[player][0] = wanjia[player][0] + 1--统计ai佣兵数量
  968.         wanjia[player][9] = charIndex1
  969.                 Char.SetData(charIndex1, CONST.CHAR_X, Char.GetData(player, CONST.CHAR_X));
  970.                 Char.SetData(charIndex1, CONST.CHAR_Y, Char.GetData(player, CONST.CHAR_Y));
  971.                 Char.SetData(charIndex1, CONST.CHAR_地图, Char.GetData(player, CONST.CHAR_地图));
  972.                 Char.SetData(charIndex1, CONST.CHAR_名字, '骑士伊吹');
  973.                 Char.SetData(charIndex1, CONST.CHAR_地图类型, Char.GetData(player, CONST.CHAR_地图类型));
  974.                 Char.SetData(charIndex1, CONST.CHAR_形象, 100070);
  975.                 Char.SetData(charIndex1, CONST.CHAR_原形, 100070);
  976.                 Char.SetData(charIndex1, CONST.CHAR_原始图档, 100070);
  977.                 if rlv >= 80 then
  978.                 Char.SetData(charIndex1, CONST.CHAR_体力, rzy);
  979.                 Char.SetData(charIndex1, CONST.CHAR_力量, rcy);
  980.                 Char.SetData(charIndex1, CONST.CHAR_强度, 0);
  981.                 Char.SetData(charIndex1, CONST.CHAR_速度, rs);
  982.                 Char.SetData(charIndex1, CONST.CHAR_魔法, 0);
  983.                 Char.SetData(charIndex1, CONST.CHAR_等级, rlv);
  984.                 else
  985.                 Char.SetData(charIndex1, CONST.CHAR_体力, rcy);
  986.                 Char.SetData(charIndex1, CONST.CHAR_力量, rzy);
  987.                 Char.SetData(charIndex1, CONST.CHAR_强度, 0);
  988.                 Char.SetData(charIndex1, CONST.CHAR_速度, rs);
  989.                 Char.SetData(charIndex1, CONST.CHAR_魔法, 0);
  990.                 Char.SetData(charIndex1, CONST.CHAR_等级, rlv);
  991.                 end
  992.                 NLG.UpChar(charIndex1);
  993.                 Char.SetData(charIndex1, CONST.CHAR_职业, 34);
  994.                 Char.SetData(charIndex1, CONST.CHAR_职类ID, 30);
  995.                 Char.SetData(charIndex1, CONST.CHAR_职阶, 3);
  996.                 if rlv >= 100 then
  997.                         sjlv = 10
  998.                 else
  999.                         sjlv = zblv
  1000.                 end
  1001.                 Char.GiveItem(charIndex1, aqiang[sjlv], 1);
  1002.                 Char.GiveItem(charIndex1, adun[sjlv], 1);
  1003.                 Char.GiveItem(charIndex1, akui[sjlv], 1);
  1004.                 Char.GiveItem(charIndex1, akai[sjlv], 1);
  1005.                 Char.GiveItem(charIndex1, axue[sjlv], 1);
  1006.                 Item.SetData(Char.GetItemIndex(charIndex1, 8), %道具_已鉴定%, 1)
  1007.                 Item.SetData(Char.GetItemIndex(charIndex1, 9), %道具_已鉴定%, 1)
  1008.                 Item.SetData(Char.GetItemIndex(charIndex1, 10), %道具_已鉴定%, 1)
  1009.                 Item.SetData(Char.GetItemIndex(charIndex1, 11), %道具_已鉴定%, 1)
  1010.                 Item.SetData(Char.GetItemIndex(charIndex1, 12), %道具_已鉴定%, 1)
  1011.                 Item.UpItem(charIndex1, -1);
  1012.                 NLG.UpChar(charIndex1);
  1013.                 Char.GiveItem(charIndex1, 900194, 1);
  1014.                 Char.GiveItem(charIndex1, 900329, 1);
  1015.                 Char.GiveItem(charIndex1, 900333, 1);
  1016.                 Char.MoveItem(charIndex1, 8, CONST.EQUIP_左手, -1);
  1017.                 Char.MoveItem(charIndex1, 9, CONST.EQUIP_右手, -1);
  1018.                 Char.MoveItem(charIndex1, 10, CONST.EQUIP_头, -1);
  1019.                 Char.MoveItem(charIndex1, 11, CONST.EQUIP_身, -1);
  1020.                 Char.MoveItem(charIndex1, 12, CONST.EQUIP_腿, -1);
  1021.                 Char.MoveItem(charIndex1, 13, CONST.EQUIP_水晶, -1);
  1022.                 Char.MoveItem(charIndex1, 14, CONST.EQUIP_首饰1, -1);
  1023.                 Char.MoveItem(charIndex1, 15, CONST.EQUIP_首饰2, -1);
  1024.                 Char.GiveItem(charIndex1, 18196, 1);
  1025.                 Char.GiveItem(charIndex1, 18315, 19);
  1026.                 Char.SetData(charIndex1, CONST.CHAR_血, Char.GetData(charIndex1, CONST.CHAR_最大血));
  1027.                 Char.SetData(charIndex1, CONST.CHAR_魔, Char.GetData(charIndex1, CONST.CHAR_最大魔));
  1028.                 Char.AddSkill(charIndex1, 71);
  1029.                 Char.AddSkill(charIndex1, 13);
  1030.                 Char.AddSkill(charIndex1, 15);
  1031.                 Char.AddSkill(charIndex1, 17);
  1032.                 Char.SetSkillLevel(charIndex1,0,2);
  1033.                 Char.SetSkillLevel(charIndex1,1,2);
  1034.                 Char.SetSkillLevel(charIndex1,2,2);
  1035.                 Char.SetSkillLevel(charIndex1,3,2);
  1036.                 Char.GivePet(charIndex1, 900006);
  1037.                 local charIndex2 = Char.GetPet(charIndex1,0)
  1038.                 if rlv > 1 then
  1039.                         local hdjy = rlv^4
  1040.                         Char.SetData(charIndex2,%对象_经验%,hdjy);
  1041.                         Pet.UpPet(charIndex1,charIndex2);
  1042.                         local petFP = Char.GetData(charIndex2,%对象_体力%)
  1043.                         local petFPP = (rlv - 1)*100 + petFP
  1044.                         Char.SetData(charIndex2, CONST.CHAR_体力, petFPP);
  1045.                         Char.SetData(charIndex2, CONST.CHAR_升级点, 0);
  1046.                         Pet.UpPet(charIndex1,charIndex2);
  1047.                         Char.SetData(charIndex2, CONST.CHAR_血, Char.GetData(charIndex2, CONST.CHAR_最大血));
  1048.                         Char.SetData(charIndex2, CONST.CHAR_魔, Char.GetData(charIndex2, CONST.CHAR_最大魔));
  1049.                 end
  1050.                 if rlv >= 100 then
  1051.                         sjlv = 5
  1052.                 else
  1053.                         sjlv = jnlv
  1054.                 end
  1055.                         Pet.AddSkill(charIndex2, petjn[sjlv][1]);
  1056.                         Pet.AddSkill(charIndex2, petjn[sjlv][2]);
  1057.                         Pet.AddSkill(charIndex2, petjn[sjlv][5]);
  1058.                         Pet.AddSkill(charIndex2, petjn[sjlv][4]);
  1059.                 Char.SetPetDepartureState(charIndex1, 0, CONST.PET_STATE_战斗);
  1060.                 NLG.UpChar(charIndex1);
  1061.                 Pet.UpPet(charIndex1,charIndex2);
  1062.                 Item.UpItem(charIndex1, -1);
  1063.                 NLG.SystemMessage(player, '召唤佣兵: 骑士' )
  1064.                 Char.JoinParty(charIndex1, player);
  1065.         else
  1066.                 NLG.SystemMessage(player, '只能召唤1位骑士。' )
  1067.         end
  1068.                 end
  1069.         end
  1070.   end)
  1071.         self:NPC_regTalkedEvent(warpNPC, function(npc, player)
  1072.         if (NLG.CanTalk(npc, player) == true) then
  1073.                 local msg = "1\\n请选择想并肩作战的佣兵\\n"
  1074.                 for i = 1, 8 do
  1075.                         msg = msg .. ybtable[i] .. "\\n"
  1076.                 end
  1077.                 NLG.ShowWindowTalked(player, npc, CONST.窗口_选择框, CONST.BUTTON_下取消, 1, msg);
  1078.         end
  1079.         return
  1080.         end)
  1081.         self:regCallback('CharActionEvent', function(player, actionID)
  1082.         if actionID == %动作_招手% then
  1083.                 local msg = "1\\n请对佣兵下达指令\\n"
  1084.                 for i = 1, 8 do
  1085.                         msg = msg .. ybctrl[i] .. "\\n"
  1086.                 end
  1087.                 NLG.ShowWindowTalked(player, ctrlNPC, CONST.窗口_选择框, CONST.BUTTON_下取消, 1, msg);
  1088.         end
  1089.         end)
  1090.         self:NPC_regWindowTalkedEvent(ctrlNPC, function(npc, player, _seqno, _select, _data)
  1091.         local suiji = math.random(100,100)--90~100的随机数--然后ai参考人物生成浮动bp
  1092.         local rlv = Char.GetData(player,%对象_等级%)
  1093.         local rlv = rlv /100 * suiji
  1094.         local petjn = {{1430,1530,1630,1730},{1432,1532,1632,1732},{1434,1534,1634,1734},{1436,1536,1636,1736},{1438,1538,1638,1738},}--宠物抗性技能
  1095.         local jnlv = math.floor(rlv/20) + 1--宠物技能等级
  1096.         local sjlv = 0
  1097.         local column = tonumber(_data)
  1098.     local page = tonumber(_seqno)
  1099.     local warpPage = page;
  1100.     local winMsg = "1\\n请对佣兵下达指令\\n"
  1101.     local winButton = CONST.BUTTON_关闭;
  1102.     local totalPage1, remainder1 = calcWarp1()
  1103.     --上页16 下页32 关闭/取消2
  1104.         if _select > 0 then
  1105.                 if _select == CONST.BUTTON_下一页 then
  1106.                         warpPage = warpPage + 1
  1107.                         if (warpPage == totalPage1) or ((warpPage == (totalPage1 - 1) and remainder1 == 0)) then
  1108.                                 winButton = CONST.BUTTON_上取消
  1109.                         else
  1110.                                 winButton = CONST.BUTTON_上下取消
  1111.                         end
  1112.                 elseif _select == CONST.BUTTON_上一页 then
  1113.                         warpPage = warpPage - 1
  1114.                         if warpPage == 1 then
  1115.                                 winButton = CONST.BUTTON_下取消
  1116.                         else
  1117.                                 winButton = CONST.BUTTON_上下取消
  1118.                         end
  1119.                 elseif _select == 2 then
  1120.                         warpPage = 1
  1121.                         return
  1122.                 end
  1123.                 local count = 8 * (warpPage - 1)
  1124.                 if warpPage == totalPage1 then
  1125.                         for i = 1 + count, remainder1 + count do
  1126.                                 winMsg = winMsg .. ybctrl[i] .. "\\n"
  1127.                         end
  1128.                 else
  1129.                         for i = 1 + count, 8 + count do
  1130.                                 winMsg = winMsg .. ybctrl[i] .. "\\n"
  1131.                         end
  1132.                 end
  1133.                 NLG.ShowWindowTalked(player, npc, CONST.窗口_选择框, winButton, warpPage, winMsg);
  1134.         else
  1135.                 local count = 8 * (warpPage - 1) + column
  1136.                 if count == 1 then
  1137.                         for xxqk = 1,9 do
  1138.                                 if wanjia[player][xxqk] > 0 then
  1139.                                         Char.DelDummy(wanjia[player][xxqk])
  1140.                                         wanjia[player][xxqk] = -1
  1141.                                         wanjia[player][0] = 0
  1142.                                 end
  1143.                         end
  1144.                         wanjia[player][0] = 0
  1145.                 elseif count == 2 then
  1146.                         local ssyb3 = false
  1147.                         local money = Char.GetData(player,%对象_金币%)
  1148.                         if money < 1000 then
  1149.                                         NLG.SystemMessage(player,"魔币不足1000,无法对佣兵进行治疗!");
  1150.                         else
  1151.                                 for ssyb = 1,4 do
  1152.                                         local ssyb1 = Char.GetPartyMember(player,ssyb)
  1153.                                         local ssyb2 = Char.GetPet(ssyb1,0)
  1154.                                         if ssyb1 >= 0 then
  1155.                                                 if Char.IsDummy(ssyb1) then
  1156.                                                         if Char.GetData(ssyb1,%对象_受伤%)>=1 or Char.GetData(ssyb2,%对象_受伤%)>=1 then
  1157.                                                                 Char.SetData(ssyb1,%对象_受伤%,0);
  1158.                                                                 Char.SetData(ssyb2,%对象_受伤%,0);
  1159.                                                                 NLG.UpChar(ssyb1);
  1160.                                                                 Pet.UpPet(ssyb1, ssyb2);
  1161.                                                                 ssyb3 = true;
  1162.                                                         end
  1163.                                                 end
  1164.                                         end
  1165.                                 end
  1166.                                 if ssyb3 then
  1167.                                         Char.SetData(player,%对象_金币%,money-1000);
  1168.                                         NLG.SystemMessage(player,"佣兵和佣兵宠物已恢复健康。");
  1169.                                 else
  1170.                                         NLG.SystemMessage(player,"佣兵和佣兵宠物不需要治疗。");
  1171.                                 end
  1172.                         end
  1173.                         Item.UpItem(player, -1);
  1174.                 elseif count == 3 then
  1175.                         Char.SetData(Char.GetPartyMember(player,1),%对象_位置%,1);
  1176.                         Char.SetData(Char.GetPartyMember(player,2),%对象_位置%,1);
  1177.                         NLG.SystemMessage(player,"W站位开启。")
  1178.                 elseif count == 4 then
  1179.                         Char.SetData(Char.GetPartyMember(player,1),%对象_位置%,0);
  1180.                         Char.SetData(Char.GetPartyMember(player,2),%对象_位置%,0);
  1181.                         NLG.SystemMessage(player,"一字站位开启。")
  1182.                 elseif count == 5 then
  1183.                         Char.SetPetDepartureState(Char.GetPartyMember(player,1), 0, CONST.PET_STATE_待命);
  1184.                         Char.SetPetDepartureState(Char.GetPartyMember(player,2), 0, CONST.PET_STATE_待命);
  1185.                         Char.SetPetDepartureState(Char.GetPartyMember(player,3), 0, CONST.PET_STATE_待命);
  1186.                         Char.SetPetDepartureState(Char.GetPartyMember(player,4), 0, CONST.PET_STATE_待命);
  1187.                         NLG.SystemMessage(player,"佣兵宠物已待命。")
  1188.                 elseif count == 6 then
  1189.                         partyname = {}
  1190.                         local ybpn = 0
  1191.                         for AInum = 1,4 do
  1192.                                 local ybIndex = Char.GetPartyMember(player,AInum)
  1193.                                 if ybIndex > 0 and Char.IsDummy(ybIndex) then
  1194.                                         table.insert(partyname,""..Char.GetData(ybIndex,%对象_名字%).."")
  1195.                                         ybpn = ybpn + 1
  1196.                                 end
  1197.                         end
  1198.                         local msg = "1\\n请选择你想开除的佣兵\\n"
  1199.                         for i = 1, ybpn do
  1200.                                 msg = msg .. ""..partyname[i].."" .. "\\n"
  1201.                         end
  1202.                         NLG.ShowWindowTalked(player, testNPC, CONST.窗口_选择框, CONST.BUTTON_关闭, 1, msg);
  1203.                 elseif count == 7 then
  1204.                         for i=1,4 do
  1205.                                 if Char.IsDummy(Char.GetPartyMember(player,i)) then
  1206.                                         Char.SetData(Char.GetPartyMember(player,i), CONST.CHAR_卡时, 99 * 3600);
  1207.                                         Char.FeverStart(Char.GetPartyMember(player,i));
  1208.                                         NLG.UpChar(Char.GetPartyMember(player,i))
  1209.                                 end
  1210.                         end
  1211.                         NLG.SystemMessage(player, '佣兵打卡开启!卡时还有九小时' )
  1212.                 elseif count == 8 then
  1213.                         local Target_MapId=Char.GetData(player, CONST.CHAR_地图类型)
  1214.                         local Target_FloorId=Char.GetData(player, CONST.CHAR_地图)
  1215.                         local Target_X=Char.GetData(player, CONST.CHAR_X)
  1216.                         local Target_Y=Char.GetData(player, CONST.CHAR_Y)
  1217.                         for csdd = 1,9 do
  1218.                                 if Char.PartyNum(wanjia[player][csdd]) == -1 then
  1219.                                         Char.Warp(wanjia[player][csdd], Target_MapId, Target_FloorId, Target_X, Target_Y)
  1220.                                         Char.JoinParty(wanjia[player][csdd],player);
  1221.                                 end
  1222.                         end
  1223.                         NLG.SystemMessage(player, '佣兵已召回!' )
  1224.                 elseif count == 9 then
  1225.                         for tuximo = 1,9 do
  1226.                                 local charIndex3 = wanjia[player][tuximo]
  1227.                                 if charIndex3 > 0 then
  1228.                                         Char.DelSlotPet(charIndex3,0);
  1229.                                         Char.GivePet(charIndex3, 900000);
  1230.                                         local charIndex4 = Char.GetPet(charIndex3,0)
  1231.                                         if rlv > 1 then
  1232.                                                 local hdjy = rlv^4
  1233.                                                 Char.SetData(charIndex4,%对象_经验%,hdjy);
  1234.                                                 Pet.UpPet(charIndex3,charIndex4);
  1235.                                                 local petFP = Char.GetData(charIndex4,%对象_魔法%)
  1236.                                                 local petFPP = (rlv - 1)*100 + petFP
  1237.                                                 Char.SetData(charIndex4, CONST.CHAR_魔法, petFPP);
  1238.                                                 Char.SetData(charIndex4, CONST.CHAR_升级点, 0);
  1239.                                                 Pet.UpPet(charIndex3,charIndex4);
  1240.                                                 Char.SetData(charIndex4, CONST.CHAR_血, Char.GetData(charIndex4, CONST.CHAR_最大血));
  1241.                                                 Char.SetData(charIndex4, CONST.CHAR_魔, Char.GetData(charIndex4, CONST.CHAR_最大魔));
  1242.                                         end
  1243.                                         if rlv >= 100 then
  1244.                                                 sjlv = 5
  1245.                                         else
  1246.                                                 sjlv = jnlv
  1247.                                         end
  1248.                                         Pet.AddSkill(charIndex4, petjn[sjlv][1]);
  1249.                                         Pet.AddSkill(charIndex4, petjn[sjlv][2]);
  1250.                                         Pet.AddSkill(charIndex4, petjn[sjlv][3]);
  1251.                                         Pet.AddSkill(charIndex4, petjn[sjlv][4]);
  1252.                                         Char.SetPetDepartureState(charIndex3, 0, CONST.PET_STATE_战斗);
  1253.                                         Char.DelItem(charIndex3,18315,1);
  1254.                                         Char.GiveItem(charIndex3, 900191, 1);
  1255.                                         Char.MoveItem(charIndex3, 9, CONST.EQUIP_水晶, -1);
  1256.                                         Char.DelItem(charIndex3,Char.GetItemIndex(charIndex3,9),1);
  1257.                                         Char.GiveItem(charIndex3, 18315, 1);
  1258.                                         Pet.UpPet(charIndex3,charIndex4);
  1259.                                         Item.UpItem(charIndex3, -1);
  1260.                                         NLG.Say(player,-1,"已更换大地鼠,装备土系水晶。",5,3)
  1261.                                         print("宠物"..Char.GetData(charIndex4, CONST.CHAR_升级点).."升级啦!");
  1262.                                 end
  1263.                         end
  1264.                 elseif count == 10 then
  1265.                         for tuximo = 1,9 do
  1266.                                 local charIndex3 = wanjia[player][tuximo]
  1267.                                 if charIndex3 > 0 then
  1268.                                         Char.DelSlotPet(charIndex3,0);
  1269.                                         Char.GivePet(charIndex3, 900001);
  1270.                                         local charIndex4 = Char.GetPet(charIndex3,0)
  1271.                                         if rlv > 1 then
  1272.                                                 local hdjy = rlv^4
  1273.                                                 Char.SetData(charIndex4,%对象_经验%,hdjy);
  1274.                                                 Pet.UpPet(charIndex3,charIndex4);
  1275.                                                 local petFP = Char.GetData(charIndex4,%对象_魔法%)
  1276.                                                 local petFPP = (rlv - 1)*100 + petFP
  1277.                                                 Char.SetData(charIndex4, CONST.CHAR_魔法, petFPP);
  1278.                                                 Char.SetData(charIndex4, CONST.CHAR_升级点, 0);
  1279.                                                 Pet.UpPet(charIndex3,charIndex4);
  1280.                                                 Char.SetData(charIndex4, CONST.CHAR_血, Char.GetData(charIndex4, CONST.CHAR_最大血));
  1281.                                                 Char.SetData(charIndex4, CONST.CHAR_魔, Char.GetData(charIndex4, CONST.CHAR_最大魔));
  1282.                                         end
  1283.                                         if rlv >= 100 then
  1284.                                                 sjlv = 5
  1285.                                         else
  1286.                                                 sjlv = jnlv
  1287.                                         end
  1288.                                         Pet.AddSkill(charIndex4, petjn[sjlv][1]);
  1289.                                         Pet.AddSkill(charIndex4, petjn[sjlv][2]);
  1290.                                         Pet.AddSkill(charIndex4, petjn[sjlv][3]);
  1291.                                         Pet.AddSkill(charIndex4, petjn[sjlv][4]);
  1292.                                         Char.SetPetDepartureState(charIndex3, 0, CONST.PET_STATE_战斗);
  1293.                                         Char.DelItem(charIndex3,18315,1);
  1294.                                         Char.GiveItem(charIndex3, 900192, 1);
  1295.                                         Char.MoveItem(charIndex3, 9, CONST.EQUIP_水晶, -1);
  1296.                                         Char.DelItem(charIndex3,Char.GetItemIndex(charIndex3,9),1);
  1297.                                         Char.GiveItem(charIndex3, 18315, 1);
  1298.                                         Pet.UpPet(charIndex3,charIndex4);
  1299.                                         Item.UpItem(charIndex3, -1);
  1300.                                         NLG.Say(player,-1,"已更换噩梦鼠,装备水系水晶。",3,3)
  1301.                                 end
  1302.                         end
  1303.                 elseif count == 11 then
  1304.                         for tuximo = 1,9 do
  1305.                                 local charIndex3 = wanjia[player][tuximo]
  1306.                                 if charIndex3 > 0 then
  1307.                                         Char.DelSlotPet(charIndex3,0);
  1308.                                         Char.GivePet(charIndex3, 900002);
  1309.                                         local charIndex4 = Char.GetPet(charIndex3,0)
  1310.                                         if rlv > 1 then
  1311.                                                 local hdjy = rlv^4
  1312.                                                 Char.SetData(charIndex4,%对象_经验%,hdjy);
  1313.                                                 Pet.UpPet(charIndex3,charIndex4);
  1314.                                                 local petFP = Char.GetData(charIndex4,%对象_魔法%)
  1315.                                                 local petFPP = (rlv - 1)*100 + petFP
  1316.                                                 Char.SetData(charIndex4, CONST.CHAR_魔法, petFPP);
  1317.                                                 Char.SetData(charIndex4, CONST.CHAR_升级点, 0);
  1318.                                                 Pet.UpPet(charIndex3,charIndex4);
  1319.                                                 Char.SetData(charIndex4, CONST.CHAR_血, Char.GetData(charIndex4, CONST.CHAR_最大血));
  1320.                                                 Char.SetData(charIndex4, CONST.CHAR_魔, Char.GetData(charIndex4, CONST.CHAR_最大魔));
  1321.                                         end
  1322.                                         if rlv >= 100 then
  1323.                                                 sjlv = 5
  1324.                                         else
  1325.                                                 sjlv = jnlv
  1326.                                         end
  1327.                                         Pet.AddSkill(charIndex4, petjn[sjlv][1]);
  1328.                                         Pet.AddSkill(charIndex4, petjn[sjlv][2]);
  1329.                                         Pet.AddSkill(charIndex4, petjn[sjlv][3]);
  1330.                                         Pet.AddSkill(charIndex4, petjn[sjlv][4]);
  1331.                                         Char.SetPetDepartureState(charIndex3, 0, CONST.PET_STATE_战斗);
  1332.                                         Char.DelItem(charIndex3,18315,1);
  1333.                                         Char.GiveItem(charIndex3, 900193, 1);
  1334.                                         Char.MoveItem(charIndex3, 9, CONST.EQUIP_水晶, -1);
  1335.                                         Char.DelItem(charIndex3,Char.GetItemIndex(charIndex3,9),1);
  1336.                                         Char.GiveItem(charIndex3, 18315, 1);
  1337.                                         Pet.UpPet(charIndex3,charIndex4);
  1338.                                         Item.UpItem(charIndex3, -1);
  1339.                                         NLG.Say(player,-1,"已更换火焰鼠,装备火系水晶。",6,3)
  1340.                                 end
  1341.                         end
  1342.                 elseif count == 12 then
  1343.                         for tuximo = 1,9 do
  1344.                                 local charIndex3 = wanjia[player][tuximo]
  1345.                                 if charIndex3 > 0 then
  1346.                                         Char.DelSlotPet(charIndex3,0);
  1347.                                         Char.GivePet(charIndex3, 900003);
  1348.                                         local charIndex4 = Char.GetPet(charIndex3,0)
  1349.                                         if rlv > 1 then
  1350.                                                 local hdjy = rlv^4
  1351.                                                 Char.SetData(charIndex4,%对象_经验%,hdjy);
  1352.                                                 Pet.UpPet(charIndex3,charIndex4);
  1353.                                                 local petFP = Char.GetData(charIndex4,%对象_魔法%)
  1354.                                                 local petFPP = (rlv - 1)*100 + petFP
  1355.                                                 Char.SetData(charIndex4, CONST.CHAR_魔法, petFPP);
  1356.                                                 Char.SetData(charIndex4, CONST.CHAR_升级点, 0);
  1357.                                                 Pet.UpPet(charIndex3,charIndex4);
  1358.                                                 Char.SetData(charIndex4, CONST.CHAR_血, Char.GetData(charIndex4, CONST.CHAR_最大血));
  1359.                                                 Char.SetData(charIndex4, CONST.CHAR_魔, Char.GetData(charIndex4, CONST.CHAR_最大魔));
  1360.                                         end
  1361.                                         if rlv >= 100 then
  1362.                                                 sjlv = 5
  1363.                                         else
  1364.                                                 sjlv = jnlv
  1365.                                         end
  1366.                                         Pet.AddSkill(charIndex4, petjn[sjlv][1]);
  1367.                                         Pet.AddSkill(charIndex4, petjn[sjlv][2]);
  1368.                                         Pet.AddSkill(charIndex4, petjn[sjlv][3]);
  1369.                                         Pet.AddSkill(charIndex4, petjn[sjlv][4]);
  1370.                                         Char.SetPetDepartureState(charIndex3, 0, CONST.PET_STATE_战斗);
  1371.                                         Char.DelItem(charIndex3,18315,1);
  1372.                                         Char.GiveItem(charIndex3, 900194, 1);
  1373.                                         Char.MoveItem(charIndex3, 9, CONST.EQUIP_水晶, -1);
  1374.                                         Char.DelItem(charIndex3,Char.GetItemIndex(charIndex3,9),1);
  1375.                                         Char.GiveItem(charIndex3, 18315, 1);
  1376.                                         Pet.UpPet(charIndex3,charIndex4);
  1377.                                         Item.UpItem(charIndex3, -1);
  1378.                                         NLG.Say(player,-1,"已更换宝石鼠,装备风系水晶。",4,3)
  1379.                                 end
  1380.                         end
  1381.                 elseif count == 13 then
  1382.                         for tuximo = 1,9 do
  1383.                                 local charIndex3 = wanjia[player][tuximo]
  1384.                                 if charIndex3 > 0 then
  1385.                                         Char.DelSlotPet(charIndex3,0);
  1386.                                         Char.GivePet(charIndex3, 900004);
  1387.                                         local charIndex4 = Char.GetPet(charIndex3,0)
  1388.                                         if rlv > 1 then
  1389.                                                 local hdjy = rlv^4
  1390.                                                 Char.SetData(charIndex4,%对象_经验%,hdjy);
  1391.                                                 Pet.UpPet(charIndex3,charIndex4);
  1392.                                                 local petFP = Char.GetData(charIndex4,%对象_体力%)
  1393.                                                 local petFPP = (rlv - 1)*100 + petFP
  1394.                                                 Char.SetData(charIndex4, CONST.CHAR_体力, petFPP);
  1395.                                                 Char.SetData(charIndex4, CONST.CHAR_升级点, 0);
  1396.                                                 Pet.UpPet(charIndex3,charIndex4);
  1397.                                                 Char.SetData(charIndex4, CONST.CHAR_血, Char.GetData(charIndex4, CONST.CHAR_最大血));
  1398.                                                 Char.SetData(charIndex4, CONST.CHAR_魔, Char.GetData(charIndex4, CONST.CHAR_最大魔));
  1399.                                         end
  1400.                                         if rlv >= 100 then
  1401.                                                 sjlv = 5
  1402.                                         else
  1403.                                                 sjlv = jnlv
  1404.                                         end
  1405.                                         Pet.AddSkill(charIndex4, petjn[sjlv][1]);
  1406.                                         Pet.AddSkill(charIndex4, petjn[sjlv][2]);
  1407.                                         Pet.AddSkill(charIndex4, petjn[sjlv][5]);
  1408.                                         Pet.AddSkill(charIndex4, petjn[sjlv][4]);
  1409.                                         Char.SetPetDepartureState(charIndex3, 0, CONST.PET_STATE_战斗);
  1410.                                         Char.DelItem(charIndex3,18315,1);
  1411.                                         Char.GiveItem(charIndex3, 900191, 1);
  1412.                                         Char.MoveItem(charIndex3, 9, CONST.EQUIP_水晶, -1);
  1413.                                         Char.DelItem(charIndex3,Char.GetItemIndex(charIndex3,9),1);
  1414.                                         Char.GiveItem(charIndex3, 18315, 1);
  1415.                                         Pet.UpPet(charIndex3,charIndex4);
  1416.                                         Item.UpItem(charIndex3, -1);
  1417.                                         NLG.Say(player,-1,"已更换僵尸,装备土系水晶。",5,3)
  1418.                                 end
  1419.                         end
  1420.                 elseif count == 14 then
  1421.                         for tuximo = 1,9 do
  1422.                                 local charIndex3 = wanjia[player][tuximo]
  1423.                                 if charIndex3 > 0 then
  1424.                                         Char.DelSlotPet(charIndex3,0);
  1425.                                         Char.GivePet(charIndex3, 900005);
  1426.                                         local charIndex4 = Char.GetPet(charIndex3,0)
  1427.                                         if rlv > 1 then
  1428.                                                 local hdjy = rlv^4
  1429.                                                 Char.SetData(charIndex4,%对象_经验%,hdjy);
  1430.                                                 Pet.UpPet(charIndex3,charIndex4);
  1431.                                                 local petFP = Char.GetData(charIndex4,%对象_体力%)
  1432.                                                 local petFPP = (rlv - 1)*100 + petFP
  1433.                                                 Char.SetData(charIndex4, CONST.CHAR_体力, petFPP);
  1434.                                                 Char.SetData(charIndex4, CONST.CHAR_升级点, 0);
  1435.                                                 Pet.UpPet(charIndex3,charIndex4);
  1436.                                                 Char.SetData(charIndex4, CONST.CHAR_血, Char.GetData(charIndex4, CONST.CHAR_最大血));
  1437.                                                 Char.SetData(charIndex4, CONST.CHAR_魔, Char.GetData(charIndex4, CONST.CHAR_最大魔));
  1438.                                         end
  1439.                                         if rlv >= 100 then
  1440.                                                 sjlv = 5
  1441.                                         else
  1442.                                                 sjlv = jnlv
  1443.                                         end
  1444.                                         Pet.AddSkill(charIndex4, petjn[sjlv][1]);
  1445.                                         Pet.AddSkill(charIndex4, petjn[sjlv][2]);
  1446.                                         Pet.AddSkill(charIndex4, petjn[sjlv][5]);
  1447.                                         Pet.AddSkill(charIndex4, petjn[sjlv][4]);
  1448.                                         Char.SetPetDepartureState(charIndex3, 0, CONST.PET_STATE_战斗);
  1449.                                         Char.DelItem(charIndex3,18315,1);
  1450.                                         Char.GiveItem(charIndex3, 900192, 1);
  1451.                                         Char.MoveItem(charIndex3, 9, CONST.EQUIP_水晶, -1);
  1452.                                         Char.DelItem(charIndex3,Char.GetItemIndex(charIndex3,9),1);
  1453.                                         Char.GiveItem(charIndex3, 18315, 1);
  1454.                                         Pet.UpPet(charIndex3,charIndex4);
  1455.                                         Item.UpItem(charIndex3, -1);
  1456.                                         NLG.Say(player,-1,"已更换丧尸,装备水系水晶。",3,3)
  1457.                                 end
  1458.                         end
  1459.                 elseif count == 15 then
  1460.                         for tuximo = 1,9 do
  1461.                                 local charIndex3 = wanjia[player][tuximo]
  1462.                                 if charIndex3 > 0 then
  1463.                                         Char.DelSlotPet(charIndex3,0);
  1464.                                         Char.GivePet(charIndex3, 900006);
  1465.                                         local charIndex4 = Char.GetPet(charIndex3,0)
  1466.                                         if rlv > 1 then
  1467.                                                 local hdjy = rlv^4
  1468.                                                 Char.SetData(charIndex4,%对象_经验%,hdjy);
  1469.                                                 Pet.UpPet(charIndex3,charIndex4);
  1470.                                                 local petFP = Char.GetData(charIndex4,%对象_体力%)
  1471.                                                 local petFPP = (rlv - 1)*100 + petFP
  1472.                                                 Char.SetData(charIndex4, CONST.CHAR_体力, petFPP);
  1473.                                                 Char.SetData(charIndex4, CONST.CHAR_升级点, 0);
  1474.                                                 Pet.UpPet(charIndex3,charIndex4);
  1475.                                                 Char.SetData(charIndex4, CONST.CHAR_血, Char.GetData(charIndex4, CONST.CHAR_最大血));
  1476.                                                 Char.SetData(charIndex4, CONST.CHAR_魔, Char.GetData(charIndex4, CONST.CHAR_最大魔));
  1477.                                         end
  1478.                                         if rlv >= 100 then
  1479.                                                 sjlv = 5
  1480.                                         else
  1481.                                                 sjlv = jnlv
  1482.                                         end
  1483.                                         Pet.AddSkill(charIndex4, petjn[sjlv][1]);
  1484.                                         Pet.AddSkill(charIndex4, petjn[sjlv][2]);
  1485.                                         Pet.AddSkill(charIndex4, petjn[sjlv][5]);
  1486.                                         Pet.AddSkill(charIndex4, petjn[sjlv][4]);
  1487.                                         Char.SetPetDepartureState(charIndex3, 0, CONST.PET_STATE_战斗);
  1488.                                         Char.DelItem(charIndex3,18315,1);
  1489.                                         Char.GiveItem(charIndex3, 900193, 1);
  1490.                                         Char.MoveItem(charIndex3, 9, CONST.EQUIP_水晶, -1);
  1491.                                         Char.DelItem(charIndex3,Char.GetItemIndex(charIndex3,9),1);
  1492.                                         Char.GiveItem(charIndex3, 18315, 1);
  1493.                                         Pet.UpPet(charIndex3,charIndex4);
  1494.                                         Item.UpItem(charIndex3, -1);
  1495.                                         NLG.Say(player,-1,"已更换食尸鬼,装备火系水晶。",6,3)
  1496.                                 end
  1497.                         end
  1498.                 elseif count == 16 then
  1499.                         for tuximo = 1,9 do
  1500.                                 local charIndex3 = wanjia[player][tuximo]
  1501.                                 if charIndex3 > 0 then
  1502.                                         Char.DelSlotPet(charIndex3,0);
  1503.                                         Char.GivePet(charIndex3, 900007);
  1504.                                         local charIndex4 = Char.GetPet(charIndex3,0)
  1505.                                         if rlv > 1 then
  1506.                                                 local hdjy = rlv^4
  1507.                                                 Char.SetData(charIndex4,%对象_经验%,hdjy);
  1508.                                                 Pet.UpPet(charIndex3,charIndex4);
  1509.                                                 local petFP = Char.GetData(charIndex4,%对象_体力%)
  1510.                                                 local petFPP = (rlv - 1)*100 + petFP
  1511.                                                 Char.SetData(charIndex4, CONST.CHAR_体力, petFPP);
  1512.                                                 Char.SetData(charIndex4, CONST.CHAR_升级点, 0);
  1513.                                                 Pet.UpPet(charIndex3,charIndex4);
  1514.                                                 Char.SetData(charIndex4, CONST.CHAR_血, Char.GetData(charIndex4, CONST.CHAR_最大血));
  1515.                                                 Char.SetData(charIndex4, CONST.CHAR_魔, Char.GetData(charIndex4, CONST.CHAR_最大魔));
  1516.                                         end
  1517.                                         if rlv >= 100 then
  1518.                                                 sjlv = 5
  1519.                                         else
  1520.                                                 sjlv = jnlv
  1521.                                         end
  1522.                                         Pet.AddSkill(charIndex4, petjn[sjlv][1]);
  1523.                                         Pet.AddSkill(charIndex4, petjn[sjlv][2]);
  1524.                                         Pet.AddSkill(charIndex4, petjn[sjlv][5]);
  1525.                                         Pet.AddSkill(charIndex4, petjn[sjlv][4]);
  1526.                                         Char.SetPetDepartureState(charIndex3, 0, CONST.PET_STATE_战斗);
  1527.                                         Char.DelItem(charIndex3,18315,1);
  1528.                                         Char.GiveItem(charIndex3, 900194, 1);
  1529.                                         Char.MoveItem(charIndex3, 9, CONST.EQUIP_水晶, -1);
  1530.                                         Char.DelItem(charIndex3,Char.GetItemIndex(charIndex3,9),1);
  1531.                                         Char.GiveItem(charIndex3, 18315, 1);
  1532.                                         Pet.UpPet(charIndex3,charIndex4);
  1533.                                         Item.UpItem(charIndex3, -1);
  1534.                                         NLG.Say(player,-1,"已更换腐尸,装备风系水晶。",4,3)
  1535.                                 end
  1536.                         end
  1537.                 end
  1538.         end
  1539.         end)
  1540.         self:NPC_regWindowTalkedEvent(testNPC, function(npc, player, _seqno, _select, _data)
  1541.                 local column = tonumber(_data)
  1542.                 local ybweizhi = 0
  1543.                 for i = 1,9 do
  1544.                         if partyname[column] == ybtable[i] then
  1545.                                 ybweizhi = i
  1546.                         end
  1547.                 end
  1548.                 Char.DelDummy(wanjia[player][ybweizhi])
  1549.                 wanjia[player][ybweizhi] = -1
  1550.                 wanjia[player][0] = wanjia[player][0] - 1
  1551.         end)
  1552. end
  1553. function yb:onUnload()
  1554.   self:logInfo('unload')
  1555. end
  1556. return yb;
复制代码

您需要登录后才可以回帖 登录 | 注册/Sign up

本版积分规则

手机版|cgmsv引擎论坛

GMT+8, 2024-5-16 13:47 , Processed in 0.214067 second(s), 9 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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