--玩家脚本 --第一次上线和第一次进入游戏世界 Trail_maxnum = {} --试炼MAXNUM Trail_maxnum[1001] = 15 Trail_maxnum[1002] = 20 Trail_maxnum[1003] = 1 Trail_maxnum[1004] = 5 Trail_maxnum[1005] = 5 Trail_maxnum[1006] = 1 Trail_maxnum[1007] = 1 Trail_maxnum[1008] = 1 Trail_maxnum[1009] = 1 Trail_maxnum[1010] = 1 Trail_maxnum[1011] = 10 Trail_maxnum[2001] = 25 Trail_maxnum[2002] = 30 Trail_maxnum[2003] = 1 Trail_maxnum[2004] = 20 Trail_maxnum[2006] = 10 Trail_maxnum[2007] = 1 Trail_maxnum[2008] = 1 Trail_maxnum[2009] = 1 Trail_maxnum[2010] = 1 Trail_maxnum[2011] = 50 Trail_maxnum[2012] = 20 Trail_maxnum[2013] = 2 Trail_maxnum[2014] = 1 Trail_maxnum[2015] = 1 Trail_maxnum[2016] = 1 Trail_maxnum[3001] = 35 Trail_maxnum[3002] = 40 Trail_maxnum[3003] = 1 Trail_maxnum[3004] = 30 Trail_maxnum[3006] = 3 Trail_maxnum[3007] = 20 Trail_maxnum[3008] = 1 Trail_maxnum[3009] = 1 Trail_maxnum[3010] = 1 Trail_maxnum[3011] = 1 Trail_maxnum[3012] = 1 Trail_maxnum[3013] = 1 Trail_maxnum[3014] = 1 Trail_maxnum[4001] = 45 Trail_maxnum[4002] = 50 Trail_maxnum[4003] = 40 Trail_maxnum[4004] = 5 Trail_maxnum[4005] = 2 Trail_maxnum[4006] = 30 Trail_maxnum[4007] = 1 Trail_maxnum[4008] = 1 Trail_maxnum[4009] = 1 Trail_maxnum[4010] = 1 Trail_maxnum[4011] = 1 Trail_maxnum[4012] = 1 Trail_maxnum[4013] = 1 Trail_maxnum[4014] = 3 Trail_maxnum[4015] = 1 Trail_maxnum[4016] = 5 Trail_maxnum[4017] = 20 Trail_maxnum[5001] = 55 Trail_maxnum[5002] = 60 Trail_maxnum[5003] = 60 Trail_maxnum[5004] = 8 Trail_maxnum[5005] = 3 Trail_maxnum[5006] = 1 Trail_maxnum[5007] = 40 Trail_maxnum[5008] = 1 Trail_maxnum[5009] = 1 Trail_maxnum[5010] = 1 Trail_maxnum[5011] = 1 Trail_maxnum[5012] = 100 Trail_maxnum[5013] = 1 Trail_maxnum[6001] = 65 Trail_maxnum[6002] = 70 Trail_maxnum[6003] = 1 Trail_maxnum[6004] = 70 Trail_maxnum[6005] = 12 Trail_maxnum[6006] = 4 Trail_maxnum[6007] = 1 Trail_maxnum[6008] = 1 Trail_maxnum[6009] = 50 Trail_maxnum[6010] = 1 Trail_maxnum[6011] = 1 Trail_maxnum[6012] = 1 Trail_maxnum[6013] = 1 Trail_maxnum[6014] = 4 Trail_maxnum[6015] = 100 Trail_maxnum[6016] = 1 Trail_maxnum[6017] = 1 Trail_maxnum[6018] = 1 Trail_maxnum[6019] = 6 Trail_maxnum[6020] = 3 Trail_maxnum[7001] = 75 Trail_maxnum[7002] = 80 Trail_maxnum[7003] = 80 Trail_maxnum[7004] = 14 Trail_maxnum[7005] = 5 Trail_maxnum[7006] = 5 Trail_maxnum[7007] = 1 Trail_maxnum[7008] = 1 Trail_maxnum[7009] = 1 Trail_maxnum[7010] = 1 Trail_maxnum[7011] = 1 Trail_maxnum[7012] = 1 Trail_maxnum[7013] = 1 Trail_maxnum[7014] = 200 Trail_maxnum[7015] = 1 Trail_maxnum[8001] = 82 Trail_maxnum[8002] = 84 Trail_maxnum[8003] = 86 Trail_maxnum[8004] = 88 Trail_maxnum[8005] = 90 Trail_maxnum[8006] = 90 Trail_maxnum[8007] = 1 Trail_maxnum[8008] = 20 Trail_maxnum[8009] = 1 Trail_maxnum[8010] = 8 Trail_maxnum[8011] = 1 Trail_maxnum[8012] = 1 Trail_maxnum[8013] = 1 Trail_maxnum[8014] = 6 Trail_maxnum[8015] = 3 Trail_maxnum[8016] = 1 Trail_maxnum[8017] = 1 Trail_maxnum[8018] = 1 Trail_maxnum[8019] = 1 Trail_maxnum[8020] = 1 Trail_maxnum[8021] = 1 Trail_maxnum[8022] = 1 Trail_maxnum[8023] = 1 Trail_maxnum[8024] = 5 Trail_maxnum[8025] = 1 Trail_maxnum[8026] = 1 Trail_maxnum[8027] = 1 Trail_maxnum[8028] = 1 Trail_maxnum[9001] = 91 Trail_maxnum[9002] = 92 Trail_maxnum[9003] = 93 Trail_maxnum[9004] = 94 Trail_maxnum[9005] = 95 Trail_maxnum[9006] = 96 Trail_maxnum[9007] = 97 Trail_maxnum[9008] = 98 Trail_maxnum[9009] = 99 Trail_maxnum[9010] = 100 Trail_maxnum[10001] = 101 Trail_maxnum[10002] = 102 Trail_maxnum[10003] = 103 Trail_maxnum[10004] = 104 Trail_maxnum[10005] = 105 Trail_maxnum[10006] = 106 Trail_maxnum[10007] = 107 Trail_maxnum[10008] = 108 Trail_maxnum[10009] = 109 Trail_maxnum[10010] = 110 Trail_maxnum[11001] = 111 Trail_maxnum[11002] = 112 Trail_maxnum[11003] = 113 Trail_maxnum[11004] = 114 Trail_maxnum[11005] = 115 Trail_maxnum[11006] = 116 Trail_maxnum[11007] = 117 Trail_maxnum[11008] = 118 Trail_maxnum[11009] = 119 Trail_maxnum[11010] = 120 Trail_maxnum[9011] = 100 Trail_maxnum[9012] = 25 Trail_maxnum[9013] = 30 Trail_maxnum[9014] = 1 Trail_maxnum[9015] = 1 Trail_maxnum[9016] = 1 Trail_maxnum[9017] = 1 Trail_maxnum[9018] = 6 Trail_maxnum[9019] = 3 Trail_maxnum[9020] = 1 Trail_maxnum[9021] = 1 Trail_maxnum[9022] = 1 Trail_maxnum[9023] = 6 Trail_maxnum[9024] = 3 Trail_maxnum[9025] = 6 Trail_maxnum[9026] = 4 Trail_maxnum[9027] = 10 Trail_maxnum[9028] = 1 Trail_maxnum[9029] = 1 Trail_maxnum[9030] = 1 Trail_maxnum[9031] = 1 Trail_maxnum[9032] = 1 Trail_maxnum[9033] = 1 Trail_maxnum[9034] = 1 function x_RoleFirstOnline(roleid) role.AddQuest(roleid, 20001) --给玩家初始任务 end --玩家第一次进入游戏世界 function x_RoleFirstIntoWorld(mapid, instanceid, roleid, TierSel) --1第一套 local FirstOnline_equip = { [1] = {[1]=8060001,[2]=8070001,[3]=8090001}, [2] = {[1]=8061001,[2]=8071001,[3]=8091001} } for i=1,3 do serial_high, serial_low, equip_pos = role.AddRoleItem(mapid, instanceid, roleid, FirstOnline_equip[TierSel+1][i], 1, 0, -1, 380) if serial_high and serial_low and equip_pos then role.RoleEquip(mapid, instanceid, roleid, serial_high, serial_low, equip_pos) end end --第一次进入游戏给与玩家2个体力药和2个真气药 local n64ID1, n64ID2 = role.AddRoleItem(mapid, instanceid, roleid, 3010029, 5, -1, 0, 380) local n64ID3, n64ID4 = role.AddRoleItem(mapid, instanceid, roleid, 3010032, 5, -1, 0, 380) local n64ID5, n64ID6 = role.AddRoleItem(mapid, instanceid, roleid, 4820035, 1, -1, 0, 380) role.VirginOnlineSendClient(roleid, n64ID1, n64ID2, n64ID3, n64ID4,n64ID5, n64ID6) --role.VirginOnlineSendClient(roleid, n64ID5, n64ID6) --role.AddRoleItem(mapid, instanceid, roleid, 3090019, 1, -1, 8, 420) if aux.IsOldSerNewPlayer(roleid) then unit.AddBuff(mapid, instanceid, roleid, 6937001, roleid) unit.AddBuff(mapid, instanceid, roleid, 4601001, roleid) local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 71,206428) --“本服务器的新人特权功能已经开启,您在60级之前将可以获得额外的经验获得和掉落几率加成。另外,您可以在斗战天城的新人特权使者处领取一个特殊道具“天火之匣”,相信它能对你的游戏过程有所帮助。” msg.DispatchRoleMsgEvent(roleid, MsgID) end --local devil = role.GetRoleSpecFlag(mapid, instanceid, roleid) --[[if (devil == 1) then role.SigTitleEvent(roleid, 88) role.AddRoleItem(mapid, instanceid, roleid, 4530138, 1, -1, 0, 380) role.AddRoleItem(mapid, instanceid, roleid, 4530139, 1, -1, 0, 380) role.AddRoleItem(mapid, instanceid, roleid, 4530151, 1, -1, 0, 380) role.AddRoleItem(mapid, instanceid, roleid, 4530157, 1, -1, 0, 380) role.AddRoleItem(mapid, instanceid, roleid, 8015010, 1, 4, 0, 380) role.AddRoleItem(mapid, instanceid, roleid, 8025010, 1, 4, 0, 380) role.AddRoleItem(mapid, instanceid, roleid, 8035010, 1, 4, 0, 380) role.AddRoleItem(mapid, instanceid, roleid, 8045010, 1, 4, 0, 380) --role.AddRoleItem(mapid, instanceid, roleid, 4540032, 1, -1, 0, 380) role.AddRoleItem(mapid, instanceid, roleid, 4800167, 1, -1, 0, 380) role.SetRoleSpecFlag(mapid, instanceid, roleid,2) end]] end -- -- 玩家每次进入游戏世界 function x_RoleIntoWorld(MapID, InstanceID, RoleID) --第一个玩家上线后刷新神器四个BOSS if SQ_bossREF == 1 then if SQ_boss1 == 1 then local cid1 = map.MapCreateColCreature(3424071720, -1, 3040378, 2550, 14346, 3287, 1, "") unit.AddBuff(3424071720, -1, cid1, 6105801, cid1) SQ_boss1 = 0 end if SQ_boss2 == 1 then local cid2 = map.MapCreateColCreature(3424072488, -1, 3040376, 593, 7050, 445, 1, "") unit.AddBuff(3424072488, -1, cid2, 6105801, cid2) SQ_boss2 = 0 end if SQ_boss3 == 1 then local cid3 = map.MapCreateColCreature(3424072232, -1, 3040377, 2256, 4919, 1897, 1, "") unit.AddBuff(3424072232, -1, cid3, 6105801, cid3) SQ_boss3 = 0 end if SQ_boss4 == 1 then local cid4 = map.MapCreateColCreature(3424075048, -1, 3040379, 904, 10460, 2603, 1, "") unit.AddBuff(3424075048, -1, cid4, 6105801, cid4) SQ_boss4 = 0 end SQ_bossREF = 0 end --北洲任务完成 if role.IsRoleHaveQuest(MapID, InstanceID, RoleID, 20300) then role.SetRoleScriptData(RoleID, 1, RoleDataType["BeiZhouTianXue"], 1) role.ModSpecialTargetValue(MapID, InstanceID, RoleID, 20300, 2) end --判断成就的开启状况 role.NotifyFBBS(RoleID,1,0) local level = role.GetRoleLevel(MapID, InstanceID, RoleID) if aux.IsOldSerNewPlayer(RoleID) and TeQuanShiZhe == nil then --记录特权使者是否刷出 TeQuanShiZhe = map.MapCreateColCreature(3424073512, -1, 5810101, 630, 23094, 672, 1, "") end -------------------------------------------------上线判断是否有结婚技能------------------------------------ local Skill_level = role.IsLearnedSkill(RoleID, 90006) if Skill_level ~= nil and role.GetRoleLoverID(MapID, InstanceID,RoleID) == nil then role.RemoveSkill(RoleID, 90006) end local Skill_level = role.IsLearnedSkill(RoleID, 90007) if Skill_level ~= nil and role.GetRoleLoverID(MapID, InstanceID,RoleID) == nil then role.RemoveSkill(RoleID, 90007) end -------------------------------------------------上线判断是否有幻彩技能------------------------------------ local huancaiSkill1 = role.IsLearnedSkill(RoleID, 10006) local huancaiSkill2 = role.IsLearnedSkill(RoleID, 10007) local huancaiSkill3 = role.IsLearnedSkill(RoleID, 10008) local huancaiSkill4 = role.IsLearnedSkill(RoleID, 10009) if huancaiSkill1 == nil and huancaiSkill2 == nil and huancaiSkill3 == nil and huancaiSkill4 == nil then role.AddSkill(RoleID, 1000601) role.AddSkill(RoleID, 1000701) role.AddSkill(RoleID, 1000801) role.AddSkill(RoleID, 1000901) end -------------------------------------------------元素血脉------------------------------------ local yuansuxuemai = role.IsLearnedSkill(RoleID, 30509) local yuansuxuemai1 = role.IsLearnedSkill(RoleID, 30511) if yuansuxuemai ~= nil then if yuansuxuemai >= 7 then if yuansuxuemai1 == nil then role.AddSkill(RoleID, 3051101) end end end -------------------------------------------------上线判断是否参加了金币总动员--------------------- if JBZDY_Open == 1 then local jinbizongdongyuan = role.GetRoleScriptData(RoleID, 1, RoleDataType["Time_JBZDY"]) local CurTime = tonumber(os.date("%j")) local benrijiangli_CurTime = act.GetActScriptData(29, 1, benrijiangli_Index) if benrijiangli_CurTime == 0 then act.SetActScriptData(29, 1, benrijiangli_Index, 1) act.SetActScriptData(29, 1, jiangchi_JBZDY,math.floor(JBZDY_SystemGold*0.3)) act.SetActScriptData(29, 1, benrijiangli_JBZDY,math.floor(JBZDY_SystemGold*0.7)) act.SaveActScriptData(29) benrijiangli_CurTime = 1 end if level >= 20 then if jinbizongdongyuan ~= benrijiangli_CurTime then role.SetRoleScriptData(RoleID, 1, RoleDataType["Time_JBZDY"],CurTime) msg.SendRoleSwitchMsg(5, MapID, InstanceID, RoleID, 1, 29) else for k,v in pairs(tbl_JBZDY_Offline)do if v == RoleID then table.remove(tbl_JBZDY_Offline,k) end end for k,v in pairs(tbl_JBZDY_Online)do if v == RoleID then table.remove(tbl_JBZDY_Online,k) end end table.insert(tbl_JBZDY_Online,RoleID) end end end --------------------------------------------------每天上线同步每日信仰------------------------------------- local CurTime = tonumber(os.date("%j")) local LastTime = role.GetRoleScriptData(RoleID, 1, RoleDataType["canAddFaith"]) if CurTime ~= LastTime then role.SetRoleScriptData(RoleID, 1, RoleDataType["canAddFaith"], CurTime) role.SetRoleScriptData(RoleID, 1, RoleDataType["FaithToday"], 0) else role.ModRoleAttValue(MapID, InstanceID, RoleID, 124, role.GetRoleScriptData(RoleID, 1, RoleDataType["FaithToday"])) end --------------------------------------------------判断玩家是否已经完成了信仰指引任务------------------------------------- if level >= 20 and level < 40 and not role.IsRoleCompleteQuest(MapID, InstanceID, RoleID, 40057) then local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 71, 442049) --20级之后即可获得神格并晋升神职。如果你想对如何成为天神有更多的了解的话,可以去斗战天城跟转职官曼德尔聊一聊。 msg.DispatchRoleMsgEvent(RoleID, MsgID) end --------------------------------------------------判断5倍悬赏任务奖励开启情况,80级以下玩家添加buff------------------------------------- if xuanshangrenwu5 == 1 and level >= 40 and level < 80 and not role.IsRoleCompleteQuest(MapID, InstanceID, RoleID, 61050) then unit.AddBuff(MapID, InstanceID, RoleID,6105001,RoleID) --40-79级玩家每次上线获得5倍悬赏任务经验奖励buff end --------------------------------------------------判断声望加倍开启情况,80级以上玩家添加buff------------------------------------- if shengwangjiabei ~= 0 and level >= 80 and not role.IsRoleCompleteQuest(MapID, InstanceID, RoleID, 69374) then unit.AddBuff(MapID, InstanceID, RoleID,6937399+shengwangjiabei,RoleID) --80级以上玩家每次上线获得声望加倍buff end --------------------------------------------------把玩家守护类型阵营置成0------------------------------------- unit.SetCamp(MapID, InstanceID, RoleID,0) ------------------------------------------------------------------------------------------------------------- if (role.GetTrialState(RoleID, 1001) == 0 or role.GetTrialState(RoleID, 1011) == 0) and level >= 10 then for i= 1,11 do if i ~= 7 then role.OpenTrain(RoleID, 1000+i) if role.GetTrialCompleteNum(RoleID,1000+i) >= Trail_maxnum[1000+i] then role.TrialComplete(RoleID,1000+i) end end end end if (role.GetTrialState(RoleID, 2001) == 0 or role.GetTrialState(RoleID, 2016) == 0) and level >= 20 then for i= 1,16 do if i ~= 5 then role.OpenTrain(RoleID, 2000+i) if role.GetTrialCompleteNum(RoleID,2000+i) >= Trail_maxnum[2000+i] then role.TrialComplete(RoleID,2000+i) end end end end if (role.GetTrialState(RoleID, 3001) == 0 or role.GetTrialState(RoleID, 3014) == 0) and level >= 30 then for i= 1,14 do if i ~= 5 then role.OpenTrain(RoleID, 3000+i) if role.GetTrialCompleteNum(RoleID,3000+i) >= Trail_maxnum[3000+i] then role.TrialComplete(RoleID,3000+i) end end end end if (role.GetTrialState(RoleID, 4001) == 0 or role.GetTrialState(RoleID, 4017) == 0) and level >= 40 then for i= 1,17 do role.OpenTrain(RoleID, 4000+i) if role.GetTrialCompleteNum(RoleID,4000+i) >= Trail_maxnum[4000+i] then role.TrialComplete(RoleID,4000+i) end end end if (role.GetTrialState(RoleID, 5001) == 0 or role.GetTrialState(RoleID, 5013) == 0) and level >= 50 then for i= 1,13 do role.OpenTrain(RoleID, 5000+i) if role.GetTrialCompleteNum(RoleID,5000+i) >= Trail_maxnum[5000+i] then role.TrialComplete(RoleID,5000+i) end end end if (role.GetTrialState(RoleID, 6001) == 0 or role.GetTrialState(RoleID, 6020) == 0) and level >= 60 then for i= 1,20 do role.OpenTrain(RoleID, 6000+i) if role.GetTrialCompleteNum(RoleID,6000+i) >= Trail_maxnum[6000+i] then role.TrialComplete(RoleID,6000+i) end end end if (role.GetTrialState(RoleID, 7001) == 0 or role.GetTrialState(RoleID, 7015) == 0) and level >= 70 then for i= 1,15 do role.OpenTrain(RoleID, 7000+i) if role.GetTrialCompleteNum(RoleID,7000+i) >= Trail_maxnum[7000+i] then role.TrialComplete(RoleID,7000+i) end end end if (role.GetTrialState(RoleID, 8001) == 0 or role.GetTrialState(RoleID, 8028) == 0) and level >= 80 then for i= 1,28 do role.OpenTrain(RoleID, 8000+i) if role.GetTrialCompleteNum(RoleID,8000+i) >= Trail_maxnum[8000+i] then role.TrialComplete(RoleID,8000+i) end end end if (role.GetTrialState(RoleID, 9001) == 0 or role.GetTrialState(RoleID, 9034) == 0) and level >= 90 then for i= 1,34 do role.OpenTrain(RoleID, 9000+i) if role.GetTrialCompleteNum(RoleID,9000+i) >= Trail_maxnum[9000+i] then role.TrialComplete(RoleID,9000+i) end end end --技能的相关判断 local k = {} local skill_lv = 0 local Trail = {2013,4014,6014,8024} k[1] = role.IsLearnedSkill(RoleID, 91001) k[2] = role.IsLearnedSkill(RoleID, 91002) k[3] = role.IsLearnedSkill(RoleID, 91003) for i=1,3 do if k[i] ~= nil then if k[i] > skill_lv then skill_lv = k[i] end end end for i = 1,4 do if role.GetTrialCompleteNum(RoleID,Trail[i]) < skill_lv then role.SetTrialCompleteNum(RoleID, Trail[i], skill_lv) end if role.GetTrialState(RoleID, Trail[i]) == 1 and role.GetTrialCompleteNum(RoleID,Trail[i]) >= Trail_maxnum[Trail[i]] then role.TrialComplete(RoleID,Trail[i]) end end local kk = role.IsLearnedSkill(RoleID, 90003) if kk ~= nil and kk >0 then if role.GetTrialCompleteNum(RoleID,3003) < kk then role.SetTrialCompleteNum(RoleID, 3003, kk) end if role.GetTrialState(RoleID, 3003) == 1 and role.GetTrialCompleteNum(RoleID,3003) >= Trail_maxnum[3003] then role.TrialComplete(RoleID,3003) end end local check_30 = role.IsLearnedSkill(RoleID, 90004) if check_30 == nil or check_30 < 1 then role.AddSkill(RoleID, 9000401) end if level >= 40 and online_tip == 1 then local MsgID = msg.BeginMsgEvent() msg.AddMsgEvent(MsgID, 71, 212001) --根据游戏情况,修改具体显示内容 msg.DispatchRoleMsgEvent(RoleID, MsgID) end end --玩家下线 function x_OffLine(MapID, InstanceID, RoleID) --1第一套 GuessFingersQuanWang[RoleID] = nil GuessFingersInterval[RoleID] = nil --金币总动员 if JBZDY_Open == 1 then for k,v in pairs(tbl_JBZDY_Online) do if v == RoleID then table.remove(tbl_JBZDY_Online,k) end end for k,v in pairs(tbl_JBZDY_Offline) do if v == RoleID then table.remove(tbl_JBZDY_Offline,k) end end table.insert(tbl_JBZDY_Offline,RoleID) end end function x_RoleOnline(MapID,roleid) unit.UnsetState(MapID, 0, roleid, 8) unit.UnsetState(MapID, 0, roleid, 9) --Сброс лича role.UnSetRoleState(roleid, 16777216, 1) legend = 0 --Гильдия local guildID = guild.GetRoleGuildID(roleid) if guildID ~= 4294967295 then local tmpRoleIDTab = guild.GetAllGuildMember(guildID) if tmpRoleIDTab ~= nil then for k, v in pairs(tmpRoleIDTab) do if v~=roleid then local a = guild.GetRoleGuildPos(guildID, v) if a == 2 then role.SetRoleScriptData(roleid, 1, RoleDataType["Guild_danjg_data"], role.GetRoleScriptData(v, 1, RoleDataType["Guild_danjg_data"])) role.SetRoleScriptData(roleid, 1, RoleDataType["Guild_danjg_time"], role.GetRoleScriptData(v, 1, RoleDataType["Guild_danjg_time"])) role.SetRoleScriptData(roleid, 1, RoleDataType["Guild_danjg"], role.GetRoleScriptData(v, 1, RoleDataType["Guild_danjg"])) end end end end end end aux.RegisterRoleEvent(0, "x_RoleOnline") aux.RegisterRoleEvent(1, "x_RoleFirstOnline") aux.RegisterRoleEvent(2, "x_RoleIntoWorld") aux.RegisterRoleEvent(3, "x_RoleFirstIntoWorld") aux.RegisterRoleEvent(70, "x_OffLine")