藏宝湾网游单机站

 找回密码
 注册

QQ登录

只需一步,快速开始

★【神将三国SF★我是大主宰SF】【维京传奇SF】★

★【0.1折】★【变态网页游戏私服】★

★神将三国网页版上线送V5 5w元宝 5000w铜币 我是大主宰上线满v,80万元宝,小怪都爆元宝,耐玩长久稳定★

【原始传奇SF/维京传奇SF★0.1折手游】

★【原始传奇SF/维京传奇SF★0.1折手游】★

★2025火爆『传奇岁月+开天西游+维京传奇+原始传奇』爆战力称号BUFF+神装99999999万人PK★

首创可以单机 可以互动 可以赚烟钱的传奇

★全网独家 可以单机 可以互动的传奇!★

★全网唯一持续更新的可单机游戏!每15-25天更新一次内容,保持游戏新鲜度!! 众多独家的功能特色,众多你没见过的全新玩法,有能力的赚点烟钱,还能偶尔沙城战斗!★

【独家RPG文字梦幻】【摸鱼搬砖不氪不肝】
★【独家RPG文字梦幻】【摸鱼搬砖不氪不肝】★

★新区开放,三端互通,适合上班挂机、摸鱼。 休闲放置,不占时间,玩熟了一天只需十几分钟就能轻松搞定。★

☆新区开放-放置传奇☆

★新区开放-放置传奇★

★可白嫖 上班摸鱼类 放置文字传奇游戏(放置休闲)qq群756025698★

★三职业复古★开局送神装★爆率100%★散人逆袭★

★三职业复古★开局送神装★爆率100%★散人逆袭★

★〖双线〗〖无忧传奇〗〖每日新区〗〖开局送神装 100%高爆率 装备元宝打怪爆〗★

【DE】梦幻(畅氪服)(12门派)(免费)★萌新误入★

【DE】梦幻(畅氪服)(12门派)(免费)★萌新误入★

★全新建立的账号开局赠送10W代金券。 老账号不发哈!代金券账号内通用!!★

★大话Ⅱ★2025全新版★稳定两年半★22号新区

★大话Ⅱ★2025全新版★稳定两年半★

★玩单机不如来修仙,亲们。修仙就是一个架设在云端的单机游戏,有游戏有社交,这不就是我们当初的想要的吗?★

★DNF★全职业平衡★公益服★
★DNF★全职业平衡★公益服★

【dnf86版本】【怀旧服】【全职业平衡】【非变态服】【非商业服】【774031300】

★梦幻16门派全新大唐九黎★

★梦幻16门派全新大唐九黎★

★独家PK系统,享受极致免费PK ★打造系统,装备可打造出无级别,宝珠点化无级别 ★炼妖系统,力劈善恶台子观照,炼妖炼到手软 ★不做垃圾,力争什么都做到最好 ★持续更新,长久稳定★

★承接推广★

★承接推广★

★承接推广★

★承接推广★

★承接推广★

★承接推广★

楼主: 蛋二

[一键安装] 天龙八部之最新无门派.单虚拟机一键端.2025年6月29日更新

  [复制链接]
 楼主| 发表于 2025-6-20 13:10:18 | 显示全部楼层
本帖最后由 蛋二 于 2025-6-24 21:38 编辑

更新日志:


2025年6月20日:
19.修改home\tlbb\Public\Scene\luoyang_monster.ini二次去掉万能传送的“新建角色点我回到1级”,20250619临时修复了现在又去掉了
20.修改/home/tlbb/Public/Data/Script/scene.lua修复循环注释,去掉封禁注释,彻底解决新建人物等级是0的BUG
21.修改home\tlbb\Public\Scene\emei_monster.ini、gaibang_monster.ini、mingjiao_monster.ini、shaolin_monster.ini、tianlong_monster.ini、tianshan_monster.ini、wudang_monster.ini、xiaoyao_monster.ini、xingxiu_monster.ini传送面前的知客X的名字为偷袭门派,添加点我进入的标识
22.修改home\tlbb\Public\Data\Script\obj\shaolin\oshaolin_zhikeseng.lua传送面前的知客X的脚本表示替换为少林偷袭门派脚本
23.修改home\tlbb\Public\Data\Script\obj\tianlong\otianlong_zhikeseng.lua传送面前的知客X的脚本表示替换为天龙门派脚本
24.修改home\tlbb\Public\Data\Script\obj\tianshan\otianshan_zhikeshi.lua传送面前的知客X的脚本表示替换为天山门派脚本
25.修改home\tlbb\Public\Data\Script\obj\wudang\owudang_zhikedaoren.lua传送面前的知客X的脚本表示替换为武当门派脚本
26.修改home\tlbb\Public\Data\Script\obj\xiaoyao\oxiaoyao_zhikeshi.lua传送面前的知客X的脚本表示替换为逍遥门派脚本
27.修改home\tlbb\Public\Data\Script\obj\xingxiu\oxingxiu_zhikeshi.lua传送面前的知客X的脚本表示替换为星宿门派脚本
28.修改home\tlbb\Public\Data\Script\obj\emei\oemei_zhikeshi.lua传送面前的知客X的脚本表示替换为峨眉门派脚本
29.修改home\tlbb\Public\Data\Script\obj\gaibang\ogaibang_zhikeqigai.lua传送面前的知客X的脚本表示替换为丐帮门派脚本
30.修改home\tlbb\Public\Data\Script\obj\mingjiao\omingjiao_zhikehuwei.lua传送面前的知客X的脚本表示替换为明教门派脚本
[发帖际遇]: 蛋二 在论坛发帖时没有注意,被小偷偷去了 2 枚 金币. 幸运榜 / 衰神榜
 楼主| 发表于 2025-6-20 13:11:55 | 显示全部楼层
qwer2025 发表于 2025-6-20 11:11
感谢分享,大佬,状态栏的重楼状态的文字描述在哪里修改呀,大佬不忙的话,辛苦抽时间回复一下下,感谢

你最好是给我截图看一下,我能给你找一下什么文件位置,具体是客户端的话需要解包改,如果是服务器的话就好改
发表于 2025-6-20 13:59:37 | 显示全部楼层
谢谢分享
发表于 2025-6-20 17:35:02 | 显示全部楼层
这版本客户端竟然不支持WIN7?玩天龙的都这么豪了?
发表于 2025-6-20 18:14:04 | 显示全部楼层
大佬,更新后你说的问题都解决了,但是有个问题:新手第一次登陆原来有的技能都没了,(在DefaultChar.ini   里添加的那个)就是新手带的技能,想加一个溪山ID 384,但是没效果,你看下咋解决?
[发帖际遇]: 花花牛牛 被钱袋砸中进医院,看病花了 2 枚 金币. 幸运榜 / 衰神榜
发表于 2025-6-22 10:23:46 | 显示全部楼层
  1. --珍珑棋局副本
  2. --添加带新手棋局模式[ QUFEI 2008-06-06 22:01 UPDATE BugID 35309 ]

  3. x401001_g_ScriptId = 401001;                        --脚本号
  4. x401001_g_CopySceneName="珍珑棋局";                --副本名称

  5. x401001_g_beginTime1 = 00 * 60 + 01;
  6. x401001_g_endTime1 = 23 * 60 + 59;

  7. -- x401001_g_beginTime2 = 20 * 60 + 30;
  8. -- x401001_g_endTime2 = 22 * 60;

  9. x401001_g_CopySceneType = FUBEN_ZHENGLONG;        --副本类型,定义在ScriptGlobal.lua里面
  10. x401001_g_limitMembers = 1;                                        --可以进副本的最小队伍人数
  11. x401001_g_tickDiffTime = 1;                                        --回调脚本的时钟时间(单位:秒/次)
  12. x401001_g_closeTickCount = 30;                                --副本关闭前倒计时(单位:次)
  13. x401001_g_startTickCount = 30;                                --开始出怪的时间(单位:次)
  14. x401001_g_tipsIntervalTickCount = 5;                --提示信息的间隔时间

  15. x401001_g_NoUserTime = 300;                                        --副本中没有人后可以继续保存的时间(单位:秒)
  16. x401001_g_Fuben_X = 40;                                                --进入副本的位置X
  17. x401001_g_Fuben_Z = 40;                                                --进入副本的位置Z
  18. x401001_g_Relive_X = 45;                                        --副本复活的位置X
  19. x401001_g_Relive_Z = 40;                                        --副本复活的位置Z
  20. x401001_g_Back_X_Ly = 268;                                                --洛阳源场景位置X
  21. x401001_g_Back_Z_Ly = 87;                                                --洛阳源场景位置Z
  22. x401001_g_Back_X_Sz = 175;                                                --苏州源场景位置X
  23. x401001_g_Back_Z_Sz = 145;                                                --苏州源场景位置Z
  24. x401001_g_Back_X_Dl = 275;                                                --大理源场景位置X
  25. x401001_g_Back_Z_Dl = 95;                                                --大理源场景位置Z

  26. x401001_g_aToBInterval = 3600 * 1000;                        --由不可攻击状态变成可攻击状态的时间(单位:毫秒)
  27. x401001_g_bToCInterval = 3600 * 1000;                        --由可攻击状态变成人形怪物的时间(单位:毫秒)
  28. x401001_g_MoTypeCount = 20;                                        --怪物组数量
  29. x401001_g_Black_A = {701, 701, 701, 701,701, 701, 701, 701, 701, 701,701, 701, 701, 701,701, 701, 701, 701, 701, 701};
  30. x401001_g_Black_B = {1780, 1781, 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1789,31780, 31781, 31782, 31783, 31784, 31785, 31786, 31787, 31788, 31789};
  31. x401001_g_Black_C = {1800, 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1808, 1809,31800, 31801, 31802, 31803, 31804, 31805, 31806, 31807, 31808, 31809};
  32. x401001_g_Black_XinShou3_B = {12010, 12011, 12012, 12013, 12014, 12015, 12016, 12017, 12018, 12019, 42010, 42011, 42012, 42013, 42014, 42015, 42016, 42017, 42018, 42019};
  33. x401001_g_Black_XinShou3_C = {12030, 12031, 12032, 12033, 12034, 12035, 12036, 12037, 12038, 12039, 42030, 42031, 42032, 42033, 42034, 42035, 42036, 42037, 42038, 42039};
  34. x401001_g_Black_XinShou6_B = {12060, 12061, 12062, 12063, 12064, 12065, 12066, 12067, 12068, 12069, 42060, 42061, 42062, 42063, 42064, 42065, 42066, 42067, 42068, 42069};
  35. x401001_g_Black_XinShou6_C = {12080, 12081, 12082, 12083, 12084, 12085, 12086, 12087, 12088, 12089, 42080, 42081, 42082, 42083, 42084, 42085, 42086, 42087, 42088, 42089};
  36. x401001_g_White_A = {700, 700, 700, 700, 700, 700, 700, 700, 700, 700,700, 700, 700, 700, 700, 700, 700, 700, 700, 700};
  37. x401001_g_White_B = {1770, 1771, 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779,31770, 31771, 31772, 31773, 31774, 31775, 31776, 31777, 31778, 31779};
  38. x401001_g_White_C = {1790, 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799,31790, 31791, 31792, 31793, 31794, 31795, 31796, 31797, 31798, 31799};
  39. x401001_g_White_XinShou3_B = {12000, 12001, 12002, 12003, 12004, 12005, 12006, 12007, 12008, 12009, 42000, 42001, 42002, 42003, 42004, 42005, 42006, 42007, 42008, 42009};
  40. x401001_g_White_XinShou3_C = {12020, 12021, 12022, 12023, 12024, 12025, 12026, 12027, 12028, 12029, 42020, 42021, 42022, 42023, 42024, 42025, 42026, 42027, 42028, 42029};
  41. x401001_g_White_XinShou6_B = {12050, 12051, 12052, 12053, 12054, 12055, 12056, 12057, 12058, 12059, 42050, 42051, 42052, 42053, 42054, 42055, 42056, 42057, 42058, 42059};
  42. x401001_g_White_XinShou6_C = {12070, 12071, 12072, 12073, 12074, 12075, 12076, 12077, 12078, 12079, 42070, 42071, 42072, 42073, 42074, 42075, 42076, 42077, 42078, 42079};
  43. x401001_g_LastBoss = {1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859,31850, 31851, 31852, 31853, 31854, 31855, 31856, 31857, 31858, 31859};
  44. x401001_g_LastBoss_XinShou3 = {12040, 12041, 12042, 12043, 12044, 12045, 12046, 12047, 12048, 12049, 42040, 42041, 42042, 42043, 42044, 42045, 42046, 42047, 42048, 42049};
  45. x401001_g_LastBoss_XinShou6 = {12090, 12091, 12092, 12093, 12094, 12095, 12096, 12097, 12098, 12099, 42090, 42091, 42092, 42093, 42094, 42095, 42096, 42097, 42098, 42099};
  46. --x401001_g_Nianshous= {12200,12201,12202,12203,12204,12205,12206,12207,12208,12209,12210,12211};  -- add by cuiyinjie 2008-11-6 年兽编号

  47. --创建怪物的节奏
  48. x401001_g_createMonsterIntervalInfoList = {
  49.                                                                                 {topPressStep=40, intervalTickCount=3},
  50.                                                                                 {topPressStep=80, intervalTickCount=3},
  51.                                                                                 {topPressStep=120, intervalTickCount=3},
  52.                                                                                 {topPressStep=160, intervalTickCount=3},
  53.                                                                                 {topPressStep=200, intervalTickCount=3}
  54.                                                                                 };

  55. --棋谱数据
  56. x401001_g_mStepPosListCount = 1;        --可以用于选择的棋谱数量
  57. x401001_g_mStepPosListSize = 201;        --每个棋谱拥有的步数
  58. x401001_g_mStepPosLists = {};
  59. x401001_g_mStepPosLists[1] = {{x=55, z=39}, {x=60, z=43}, {x=57, z=43}, {x=54, z=46}, {x=64, z=39},
  60.                                                                 {x=58, z=49}, {x=64, z=45}, {x=64, z=52}, {x=66, z=49}, {x=70, z=42},
  61.                                                                 {x=69, z=37}, {x=66, z=43}, {x=72, z=46}, {x=72, z=39}, {x=79, z=42},
  62.                                                                 {x=78, z=36}, {x=75, z=42}, {x=78, z=49}, {x=82, z=45}, {x=85, z=39},
  63.                                                                 {x=88, z=49}, {x=90, z=42}, {x=90, z=37}, {x=84, z=52}, {x=90, z=55},
  64.                                                                 {x=82, z=57}, {x=87, z=61}, {x=84, z=55}, {x=87, z=57}, {x=90, z=61},
  65.                                                                 {x=81, z=67}, {x=84, z=64}, {x=87, z=67}, {x=81, z=63}, {x=90, z=70},
  66.                                                                 {x=84, z=73}, {x=88, z=70}, {x=78, z=73}, {x=45, z=81}, {x=54, z=85},
  67.                                                                 {x=39, z=87}, {x=45, z=90}, {x=39, z=79}, {x=37, z=84}, {x=37, z=91},
  68.                                                                 {x=42, z=91}, {x=45, z=85}, {x=52, z=82}, {x=51, z=90}, {x=48, z=85},
  69.                                                                 {x=43, z=87}, {x=48, z=88}, {x=54, z=91}, {x=51, z=85}, {x=49, z=79},
  70.                                                                 {x=42, z=79}, {x=39, z=84}, {x=37, z=79}, {x=42, z=81}, {x=63, z=81},
  71.                                                                 {x=66, z=88}, {x=69, z=79}, {x=69, z=85}, {x=61, z=88}, {x=57, z=81},
  72.                                                                 {x=63, z=91}, {x=70, z=90}, {x=63, z=85}, {x=66, z=81}, {x=73, z=85},
  73.                                                                 {x=76, z=90}, {x=75, z=82}, {x=72, z=88}, {x=69, z=82}, {x=75, z=79},
  74.                                                                 {x=78, z=85}, {x=84, z=82}, {x=81, z=81}, {x=84, z=88}, {x=90, z=85},
  75.                                                                 {x=88, z=79}, {x=81, z=79}, {x=78, z=82}, {x=81, z=88}, {x=88, z=91},
  76.                                                                 {x=84, z=85}, {x=81, z=91}, {x=75, z=87}, {x=81, z=85}, {x=78, z=91},
  77.                                                                 {x=87, z=85}, {x=90, z=91}, {x=84, z=91}, {x=90, z=88}, {x=88, z=82},
  78.                                                                 {x=90, z=76}, {x=84, z=79}, {x=78, z=76}, {x=81, z=70}, {x=75, z=73},
  79.                                                                 {x=72, z=79}, {x=69, z=73}, {x=66, z=78}, {x=64, z=73}, {x=69, z=76},
  80.                                                                 {x=72, z=73}, {x=75, z=76}, {x=72, z=82}, {x=46, z=64}, {x=49, z=70},
  81.                                                                 {x=40, z=70}, {x=46, z=73}, {x=43, z=67}, {x=40, z=73}, {x=45, z=70},
  82.                                                                 {x=48, z=76}, {x=54, z=73}, {x=52, z=79}, {x=45, z=76}, {x=51, z=73},
  83.                                                                 {x=54, z=78}, {x=64, z=64}, {x=70, z=67}, {x=69, z=61}, {x=67, z=69},
  84.                                                                 {x=60, z=67}, {x=57, z=73}, {x=55, z=67}, {x=61, z=70}, {x=57, z=76},
  85.                                                                 {x=63, z=78}, {x=66, z=76}, {x=61, z=73}, {x=57, z=67}, {x=64, z=70},
  86.                                                                 {x=67, z=64}, {x=70, z=70}, {x=63, z=67}, {x=69, z=64}, {x=75, z=67},
  87.                                                                 {x=81, z=73}, {x=78, z=67}, {x=72, z=69}, {x=78, z=63}, {x=84, z=67},
  88.                                                                 {x=88, z=73}, {x=81, z=76}, {x=84, z=70}, {x=87, z=76}, {x=75, z=70},
  89.                                                                 {x=87, z=88}, {x=78, z=79}, {x=73, z=76}, {x=75, z=70}, {x=75, z=63},
  90.                                                                 {x=73, z=66}, {x=78, z=70}, {x=81, z=61}, {x=72, z=63}, {x=75, z=58},
  91.                                                                 {x=81, z=54}, {x=78, z=60}, {x=75, z=52}, {x=78, z=54}, {x=72, z=57},
  92.                                                                 {x=69, z=52}, {x=66, z=58}, {x=61, z=61}, {x=58, z=55}, {x=64, z=57},
  93.                                                                 {x=67, z=51}, {x=73, z=49}, {x=76, z=55}, {x=70, z=58}, {x=64, z=61},
  94.                                                                 {x=67, z=55}, {x=61, z=52}, {x=57, z=46}, {x=64, z=48}, {x=61, z=55},
  95.                                                                 {x=58, z=60}, {x=52, z=64}, {x=55, z=58}, {x=51, z=52}, {x=48, z=57},
  96.                                                                 {x=42, z=60}, {x=37, z=57}, {x=42, z=54}, {x=39, z=60}, {x=37, z=66},
  97.                                                                 {x=42, z=63}, {x=45, z=58}, {x=48, z=52}, {x=51, z=58}, {x=54, z=52},
  98.                                                                 {x=51, z=46}, {x=45, z=52}, {x=52, z=55}, {x=49, z=63}, {x=57, z=70},
  99.                                                                 {x=63, z=63}};        --BOSS点

  100. --x401001_CheckAndEnterScene所用到的参数
  101. x401001_enumerate = 0;                --x401001_OnEnumerate中调用
  102. x401001_defaultEvent = 1;        --x401001_OnDefaultEvent中调用

  103. -- 活动最低等级限制
  104. x401001_g_Low_Level = 10

  105. -- 带新手模式棋局
  106. -- 高手和新手的等级范围
  107. x401001_g_Highlvl_Limit        =        50
  108. x401001_g_Lowlvl_Limit        =        { from=10, to=49 }
  109. -- 等级差
  110. x401001_g_LvLCur = 20
  111. -- 给予队长的善恶值
  112. x401001_g_High_GoodBadParam        =        5
  113. -- 给予队员的善恶值
  114. x401001_g_Low_GoodBadParam        =        3
  115. -- 带新手模式经验系数加成
  116. x401001_g_XinShou_Exp_Mod01 = 1.1
  117. x401001_g_XinShou_Exp_Mod02 = 2.2
  118. -- 新手模式额外经验奖励
  119. x401001_g_XinShou_ExpAtu = { { mBengin01 = 12010, mEnd01 = 12019, mBengin02 = 42010, mEnd02 = 42019, ExpList = {262, 528, 857, 1248, 1703, 2218, 2799, 3444, 3943, 4427, 7824, 8509, 9199, 9885, 10503, 10503, 10503, 10503, 10503, 10503} },                        
  120.                                                                                                                  { mBengin01 = 12030, mEnd01 = 12039, mBengin02 = 42030, mEnd02 = 42039, ExpList = {105, 211, 342, 499, 681, 887, 1119, 1377, 1577, 1770, 1956, 2127, 2299, 2471, 2625, 2625, 2625, 2625, 2625, 2625} },                                 
  121.                                                                                                                  { mBengin01 = 12060, mEnd01 = 12069, mBengin02 = 42060, mEnd02 = 42069, ExpList = {262, 528, 857, 1248, 1703, 2218, 2799, 3444, 3943, 4427, 7824, 8509, 9199, 9885, 10503, 10503, 10503, 10503, 10503, 10503} },                        
  122.                                                                                                                  { mBengin01 = 12080, mEnd01 = 12089, mBengin02 = 42080, mEnd02 = 42089, ExpList = {105, 211, 342, 499, 681, 887, 1119, 1377, 1577, 1770, 1956, 2127, 2299, 2471, 2625, 2625, 2625, 2625, 2625, 2625} },                                 
  123.                                                                                                                  { mBengin01 = 12000, mEnd01 = 12009, mBengin02 = 42000, mEnd02 = 42009, ExpList = {262, 528, 857, 1248, 1703, 2218, 2799, 3444, 3943, 4427, 7824, 8509, 9199, 9885, 10503, 10503, 10503, 10503, 10503, 10503} },                        
  124.                                                                                                                  { mBengin01 = 12020, mEnd01 = 12029, mBengin02 = 42020, mEnd02 = 42029, ExpList = {105, 211, 342, 499, 681, 887, 1119, 1377, 1577, 1770, 1956, 2127, 2299, 2471, 2625, 2625, 2625, 2625, 2625, 2625} },                                 
  125.                                                                                                                  { mBengin01 = 12050, mEnd01 = 12059, mBengin02 = 42050, mEnd02 = 42059, ExpList = {262, 528, 857, 1248, 1703, 2218, 2799, 3444, 3943, 4427, 7824, 8509, 9199, 9885, 10503, 10503, 10503, 10503, 10503, 10503} },                        
  126.                                                                                                                  { mBengin01 = 12070, mEnd01 = 12079, mBengin02 = 42070, mEnd02 = 42079, ExpList = {105, 211, 342, 499, 681, 887, 1119, 1377, 1577, 1770, 1956, 2127, 2299, 2471, 2625, 2625, 2625, 2625, 2625, 2625} },                                 
  127.                                                                                                                  { mBengin01 = 12040, mEnd01 = 12049, mBengin02 = 42040, mEnd02 = 42049, ExpList = {5769, 10509, 16278, 23165, 31126, 40115, 50222, 61357, 69944, 78217, 86133, 93422, 100712, 108002, 111669, 111669, 111669, 111669, 111669, 111669} },
  128.                                                                                                                  { mBengin01 = 12090, mEnd01 = 12099, mBengin02 = 42090, mEnd02 = 42099, ExpList = {5769, 10509, 16278, 23165, 31126, 40115, 50222, 61357, 69944, 78217, 86133, 93422, 100712, 108002, 111669, 111669, 111669, 111669, 111669, 111669} },
  129.                                                                                                                  }
  130.                                                                                                                  
  131. -- 可以提高玩家经验的Buffer
  132. x401001_g_DoubleExpList        =        { {BuffId = 60, ExpPre = 2.75},
  133.                                                                                                                 {BuffId = 62, ExpPre = 1.65} }
  134. -- 玩家组队经验衰减系数
  135. x401001_g_ExpTeamPre        =        3.2

  136. --**********************************
  137. --任务入口函数
  138. --**********************************
  139. function x401001_OnDefaultEvent(sceneId, selfId, targetId)
  140.         x401001_CheckAndEnterScene(sceneId, selfId, targetId, x401001_defaultEvent);
  141. end

  142. --**********************************
  143. --列举事件
  144. --**********************************
  145. function x401001_OnEnumerate(sceneId, selfId, targetId)
  146.         x401001_CheckAndEnterScene(sceneId, selfId, targetId, x401001_enumerate);
  147. end

  148. --**********************************
  149. --进入副本的判断和执行
  150. --**********************************
  151. function x401001_CheckAndEnterScene(sceneId, selfId, targetId, eventId)
  152.         local strOutmsg = "#{QJXXS_081211_01}";  --"现在不是棋局活动开始的时间,等活动开始之后再来找我。";
  153.         local bActive = x401001_IsActivityOpen(sceneId);
  154.         if bActive == 0 then
  155.                 if x401001_enumerate == eventId then
  156.                         AddText(sceneId, strOutmsg);
  157.                 else
  158.                         x401001_NotifyFailTips(sceneId, selfId, strOutmsg);
  159.                 end
  160.                 return
  161.         end

  162.         strOutmsg = "#{ZLQJ_80926_01}";
  163.         if LuaFnHasTeam(sceneId, selfId) == 0 then
  164.                 if x401001_enumerate == eventId then
  165.                         AddText(sceneId, strOutmsg);
  166.                 else
  167.                         x401001_NotifyFailTips(sceneId, selfId, strOutmsg);
  168.                 end
  169.                 return
  170.         end

  171.         strOutmsg = "您不是队长,只有队长才能选择是否参加活动。";
  172.         if LuaFnIsTeamLeader(sceneId, selfId) == 0 then
  173.                 if x401001_enumerate == eventId then
  174.                         AddText(sceneId, strOutmsg);
  175.                 else
  176.                         x401001_NotifyFailTips(sceneId, selfId, strOutmsg);
  177.                 end
  178.                 return
  179.         end

  180.         --取得玩家附近的队友数量(包括自己)
  181.         strOutmsg = "参加棋局活动必须要求"..x401001_g_limitMembers.."人或者"..x401001_g_limitMembers.."人以上组队才能进入,您的队伍人数不足。";
  182.         local teamMemberCount = GetTeamMemberCount(sceneId, selfId);
  183.         if not teamMemberCount or teamMemberCount < x401001_g_limitMembers then
  184.                 if x401001_enumerate == eventId then
  185.                         AddText(sceneId, strOutmsg);
  186.                 else
  187.                         x401001_NotifyFailTips(sceneId, selfId, strOutmsg);
  188.                 end
  189.                 return
  190.         end
  191.                
  192.         --bug27726,2007.11.15 by alan,因为sceneMemberCount不一定准确,改用附近队员数与队伍人数的比较判断
  193.         --并不再提示具体不在附近的队员名称
  194.        
  195.         local nearMemberCount = GetNearTeamCount(sceneId, selfId);
  196.         strOutmsg = "您有队员不在附近,请集合后再找我进入活动。";
  197.         if not nearMemberCount or teamMemberCount ~= nearMemberCount then
  198.                 if x401001_enumerate == eventId then
  199.                         AddText(sceneId, strOutmsg);
  200.                 else
  201.                         x401001_NotifyFailTips(sceneId, selfId, strOutmsg);
  202.                 end
  203.                 return
  204.         end
  205.        
  206.         -- [ QUFEI 2008-01-09 21:10 UPDATE BugID 31131 ]
  207.         -- 检测队长的等级是否满足要求
  208.         if GetLevel(sceneId, selfId) < x401001_g_Low_Level then
  209.                 if x401001_enumerate == eventId then
  210.                         AddText( sceneId, "#{QIJU_INFO_03}" )
  211.                 else
  212.                         x401001_NotifyFailTips(sceneId, selfId, "#{QIJU_INFO_03}");
  213.                 end
  214.                 return 0
  215.         end
  216.         -- 统计不满足等级要求的队员数量
  217.         local nLowLvlCnt = 0
  218.        
  219.         for i = 0, nearMemberCount - 1 do
  220.                 local sceneMemId = GetNearTeamMember(sceneId, selfId, i)
  221.                
  222.                 if sceneMemId and sceneMemId >= 0 then                       
  223.                         if GetLevel(sceneId, sceneMemId) < x401001_g_Low_Level then
  224.                                 nLowLvlCnt = nLowLvlCnt + 1
  225.                         end
  226.                 end
  227.         end
  228.                
  229.         local memNameList = ""
  230.         local nCountTmp = 1
  231.         for i = 0, nearMemberCount - 1 do
  232.                 local sceneMemId = GetNearTeamMember(sceneId, selfId, i)
  233.                 if sceneMemId and sceneMemId >= 0 then                       
  234.                         if GetLevel(sceneId, sceneMemId) < x401001_g_Low_Level then
  235.                                 local memName = GetName(sceneId, sceneMemId)
  236.                                
  237.                                 if nCountTmp < nLowLvlCnt then
  238.                                         memNameList = memNameList..memName.."、"
  239.                                         nCountTmp = nCountTmp + 1
  240.                                 else
  241.                                         memNameList = memNameList..memName
  242.                                         break;
  243.                                 end
  244.                         end
  245.                 end
  246.         end
  247.        
  248.         if nLowLvlCnt > 0 then
  249.                 local msgstr = "#{QIJU_INFO_01} "..memNameList.." #{QIJU_INFO_02}"
  250.                 if x401001_enumerate == eventId then
  251.                         AddText( sceneId, msgstr )
  252.                 else
  253.                         x401001_NotifyFailTips(sceneId, selfId, msgstr);
  254.                 end
  255.                 return 0
  256.         end
  257.        
  258.         --bug27726 end
  259.        
  260.         --strOutmsg = "您有队员不在附近,请集合后再找我进入活动。";
  261.         --local sceneMemberCount = GetTeamSceneMemberCount(sceneId, selfId);
  262.         --if not sceneMemberCount or teamMemberCount ~= sceneMemberCount + 1 then
  263.         --        if x401001_enumerate == eventId then
  264.         --                AddText(sceneId, strOutmsg);
  265.         --        else
  266.         --                x401001_NotifyFailTips(sceneId, selfId, strOutmsg);
  267.         --        end
  268.         --        return
  269.         --end

  270.         --local nearMemberCount = GetNearTeamCount(sceneId, selfId)
  271.         --if nearMemberCount ~= sceneMemberCount + 1 then
  272.         --        strOutmsg = "您队伍中有成员(";
  273.         --        local checkNearCount = 0;
  274.         --        for        i = 0, sceneMemberCount - 1 do
  275.         --                local sceneMemId = LuaFnGetTeamSceneMember(sceneId, selfId, i);
  276.         --                if sceneMemId and sceneMemId >= 0 then
  277.         --                        local findFlag = 0;
  278.         --                        for        j = 0, nearMemberCount - 1 do
  279.         --                                local nearMemId = GetNearTeamMember(sceneId, selfId, j);
  280.         --                                if nearMemId and nearMemId == sceneMemId then
  281.         --                                        findFlag = 1;
  282.         --                                        break;
  283.         --                                end
  284.         --                        end
  285.                                
  286.         --                        if findFlag == 0 then
  287.         --                                memName = GetName(sceneId, sceneMemId);
  288.         --                                if checkNearCount == 0 then
  289.         --                                        strOutmsg = strOutmsg..memName;
  290.         --                                else
  291.         --                                        strOutmsg = strOutmsg.."、"..memName;
  292.         --                                end
  293.         --                                checkNearCount = checkNearCount + 1;
  294.         --                        end
  295.         --                end
  296.         --        end
  297.         --        if checkNearCount  > 0 then
  298.         --                strOutmsg = strOutmsg..")不在附近,请集合后再找我进入活动。";
  299.         --                if x401001_enumerate == eventId then
  300.         --                        AddText(sceneId, strOutmsg);
  301.         --                else
  302.         --                        x401001_NotifyFailTips(sceneId, selfId, strOutmsg);
  303.         --                end
  304.         --        end
  305.         --        return
  306.         --end
  307.        
  308.         --取得玩家附近的队友数量(包括自己)
  309.         local day = GetDayTime();
  310.         local memName;
  311.         local checkPKvalueMsg = "对弈棋局需要心平气和,杀气过重者不适合进入,(";
  312.         local checkPKcount = 0;
  313.         for        i=0,nearMemberCount-1 do
  314.                 local memId = GetNearTeamMember(sceneId, selfId, i)
  315.                 local pk_value = LuaFnGetHumanPKValue( sceneId, memId )
  316.                 if pk_value and pk_value > 0 then
  317.                         memName = GetName( sceneId, memId )
  318.                         if checkPKcount == 0 then
  319.                                 checkPKvalueMsg = checkPKvalueMsg..memName;
  320.                         else
  321.                                 checkPKvalueMsg = checkPKvalueMsg.."、"..memName;
  322.                         end
  323.                         checkPKcount = checkPKcount + 1;
  324.                 end
  325.         end
  326.        
  327.         if checkPKcount > 0 then
  328.                 checkPKvalueMsg = checkPKvalueMsg..")杀气过高,还是请回吧。";
  329.                 if x401001_enumerate == eventId then
  330.                         AddText(sceneId, "    "..checkPKvalueMsg);
  331.                 else
  332.                         x401001_NotifyFailTips(sceneId, selfId, checkPKvalueMsg);
  333.                 end
  334.                 return
  335.         end
  336.        
  337.         local checkCurDayMsg = "队伍当中的(";
  338.         local checkCurDaycount = 0;
  339.         for        i=0,nearMemberCount-1 do
  340.                 local memId = GetNearTeamMember(sceneId, selfId, i)
  341.                 local lastDay = GetMissionData(sceneId, memId, MD_LAST_QIJU_DAY);
  342.                 if lastDay == day then
  343.                         memName = GetName(sceneId, memId);
  344.                         if checkCurDaycount == 0 then
  345.                                 checkCurDayMsg = checkCurDayMsg..memName;
  346.                         else
  347.                                 checkCurDayMsg = checkCurDayMsg.."、"..memName;
  348.                         end
  349.                         checkCurDaycount = checkCurDaycount + 1;
  350.                 end
  351.         end
  352.        
  353.         if checkCurDaycount > 0 then
  354.                 checkCurDayMsg = checkCurDayMsg..")已经完成了此次棋局活动、因此您的队伍无法进入。";
  355.                 if x401001_enumerate == eventId then
  356.                         AddText(sceneId, checkCurDayMsg);
  357.                 else
  358.                         x401001_NotifyFailTips(sceneId, selfId, checkCurDayMsg);
  359.                 end
  360.                 return
  361.         end

  362.         if eventId == x401001_enumerate then
  363.                 -- 检测带新手模式
  364.                 if x401001_OnXinShouCount( sceneId, selfId ) > 0 then
  365.                         AddText(sceneId, "#{QJ_20080522_01}");
  366.                 else
  367.                         AddText(sceneId, "#{QJ_20080522_02}");
  368.                 end
  369.        
  370.                 AddNumText(sceneId, x401001_g_ScriptId, x401001_g_CopySceneName,10,-1);
  371.         elseif eventId == x401001_defaultEvent then
  372.                 BeginEvent(sceneId)       
  373.                         AddText(sceneId, "#{function_help_063}#r  如果你能看见这行字,说明你的网路已经卡到空前绝后的境界。");
  374.                 EndEvent(sceneId)
  375.                 DispatchEventList(sceneId,selfId,targetId)
  376.                 x401001_MakeCopyScene(sceneId, selfId, nearMemberCount);
  377.         end
  378. end

  379. --**********************************
  380. --创建副本
  381. --**********************************
  382. function x401001_MakeCopyScene(sceneId, selfId, nearmembercount)

  383.         --指数参数
  384.         local param0 = 4;
  385.         local param1 = 3;

  386.         --最终结果
  387.         local mylevel = 0;

  388.         --临时变量
  389.         local memId;
  390.         local tempMemlevel = 0;
  391.         local level0 = 0;
  392.         local level1 = 0;
  393.         local i;
  394.        
  395.         for        i = 0, nearmembercount - 1 do
  396.                 memId = GetNearTeamMember(sceneId, selfId, i);
  397.                 tempMemlevel = GetLevel(sceneId, memId);
  398.                 level0 = level0 + (tempMemlevel ^ param0);
  399.                 level1 = level1 + (tempMemlevel ^ param1);
  400.         end

  401.         if level1 == 0 then
  402.                 mylevel = 0;
  403.         else
  404.                 mylevel = level0/level1;
  405.         end

  406.         local leaderguid = LuaFnObjId2Guid(sceneId, selfId);
  407.         LuaFnSetSceneLoad_Map(sceneId, "zhenlong.nav");                                                                                --地图是必须选取的,而且必须在Config/SceneInfo.ini里配置好
  408.         LuaFnSetCopySceneData_TeamLeader(sceneId, leaderguid);
  409.         LuaFnSetCopySceneData_NoUserCloseTime(sceneId, x401001_g_NoUserTime * 1000);
  410.         LuaFnSetCopySceneData_Timer(sceneId, x401001_g_tickDiffTime * 1000);
  411.         LuaFnSetCopySceneData_Param(sceneId, 0, x401001_g_CopySceneType);                                        --设置副本数据,这里将0号索引的数据设置为999,用于表示副本号999(数字自定义)
  412.         LuaFnSetCopySceneData_Param(sceneId, 1, x401001_g_ScriptId);                                                --将1号数据设置为副本场景事件脚本号
  413.         LuaFnSetCopySceneData_Param(sceneId, 2, 0);                                                                                        --设置定时器调用次数
  414.         LuaFnSetCopySceneData_Param(sceneId, 3, -1);                                                                                --设置副本入口场景号, 初始化
  415.         LuaFnSetCopySceneData_Param(sceneId, 4, 0);                                                                                        --设置副本关闭标志, 0开放,1关闭
  416.         LuaFnSetCopySceneData_Param(sceneId, 5, 0);                                                                                        --设置离开倒计时次数
  417.         LuaFnSetCopySceneData_Param(sceneId, 6, GetTeamId(sceneId, selfId));                                --保存队伍号
  418.         LuaFnSetCopySceneData_Param(sceneId, 7, 0);                                                                                        --杀死Boss的数量
  419.         LuaFnSetCopySceneData_Param(sceneId, 8, random(1, x401001_g_mStepPosListCount));        --选用的棋谱
  420.         LuaFnSetCopySceneData_Param(sceneId, 9, 0);                                                                                        --已经下了的步数
  421.         LuaFnSetCopySceneData_Param(sceneId, 11, 0);                                                                                --已经杀了多了个怪了
  422.         LuaFnSetCopySceneData_Param(sceneId, 12, 0);                                                                                --上次出怪时间
  423.         LuaFnSetCopySceneData_Param(sceneId, 13, 0);                                                                                --普通模式与新手模式选择        0:普通        1:带一个新人        2:        带两个以上的新人
  424.        
  425.         -- 检测是否带新手模式
  426.         if x401001_OnXinShouCount( sceneId, selfId ) >= 2 then
  427.                 LuaFnSetCopySceneData_Param(sceneId, 13, 2);                                                                                --两个以上的新手
  428.         elseif x401001_OnXinShouCount( sceneId, selfId ) > 0 then
  429.                 LuaFnSetCopySceneData_Param(sceneId, 13, 1);                                                                                --只有一个新手
  430.         end

  431.   local PlayerMaxLevel = GetHumanMaxLevelLimit()
  432.         local iniLevel;
  433.         if mylevel < 10 then
  434.                 iniLevel = 10;
  435.         elseif mylevel < PlayerMaxLevel then
  436.                 iniLevel = floor(mylevel/10) * 10;
  437.         else
  438.                 iniLevel = PlayerMaxLevel;
  439.         end

  440.         if iniLevel/10 <= x401001_g_MoTypeCount then
  441.                 LuaFnSetCopySceneData_Param(sceneId, 10, iniLevel/10);                                                        --记录所产生的怪物组
  442.         else
  443.                 LuaFnSetCopySceneData_Param(sceneId, 10, x401001_g_MoTypeCount);                                --记录所产生的怪物组
  444.         end
  445.         LuaFnSetSceneLoad_Monster(sceneId, "zhenlong_monster_" .. iniLevel .. ".ini");
  446.         LuaFnSetCopySceneData_Param(sceneId, CopyScene_LevelGap, mylevel - iniLevel);        --级别差,CopyScene_LevelGap 在 scene.lua 中赋值
  447.        
  448.         local bRetSceneID = LuaFnCreateCopyScene(sceneId);                                                                --初始化完成后调用创建副本函数
  449.         if bRetSceneID > 0 then
  450.                 x401001_NotifyFailTips(sceneId, selfId, "副本创建成功!");
  451.         else
  452.                 x401001_NotifyFailTips(sceneId, selfId, "副本数量已达上限,请稍候再试!");
  453.         end
  454. end

  455. --**********************************
  456. --玩家退出副本
  457. --**********************************
  458. function x401001_PlayerExit(sceneId, selfId)
  459.         if selfId then
  460.                 local oldsceneId = LuaFnGetCopySceneData_Param(sceneId, 3);                --取得副本入口场景号
  461.                
  462.                 --将当前副本场景里的所有人传送回原来进入时候的场景
  463.                 local membercount = LuaFnGetCopyScene_HumanCount(sceneId);
  464.                 local memId;
  465.                 for        i = 0, membercount - 1 do
  466.                         memId = LuaFnGetCopyScene_HumanObjId(sceneId, i);
  467.                         if memId == selfId then
  468.                                 if oldsceneId == 0 or oldsceneId == 418 or oldsceneId == 419 then
  469.                                         NewWorld(sceneId, selfId, 0, x401001_g_Back_X_Ly, x401001_g_Back_Z_Ly);
  470.                                 elseif oldsceneId == 1 or oldsceneId == 518 then
  471.                                         NewWorld(sceneId, selfId, 1, x401001_g_Back_X_Sz, x401001_g_Back_Z_Sz);
  472.                                 else
  473.                                         NewWorld(sceneId, selfId, 2, x401001_g_Back_X_Dl, x401001_g_Back_Z_Dl);
  474.                                 end
  475.                                 return
  476.                         end
  477.                 end
  478.         end
  479. end

  480. --**********************************
  481. --副本事件
  482. --**********************************
  483. function x401001_OnCopySceneReady(sceneId, destsceneId)

  484.         LuaFnSetCopySceneData_Param(destsceneId, 3, sceneId);                --设置副本入口场景号
  485.         local leaderguid  = LuaFnGetCopySceneData_TeamLeader(destsceneId);
  486.         local leaderObjId = LuaFnGuid2ObjId(sceneId,leaderguid);
  487.         local day = GetDayTime();

  488.         if LuaFnIsCanDoScriptLogic(sceneId, leaderObjId) ~= 1 then
  489.                 return
  490.         end

  491.         --取得玩家附近的队友数量(包括自己)
  492.         local nearMemberCount = GetNearTeamCount(sceneId, leaderObjId) ;
  493.         local memId;
  494.         for        i = 0, nearMemberCount - 1 do
  495.                 memId = GetNearTeamMember(sceneId, leaderObjId, i);
  496.                 SetMissionData(sceneId, memId, MD_LAST_QIJU_DAY, day);
  497.                 NewWorld(sceneId, memId, destsceneId, x401001_g_Fuben_X, x401001_g_Fuben_Z);
  498.                 --活动统计
  499.                 LuaFnAuditQuest(sceneId, memId, "珍珑棋局");
  500.                 --封魂录埋点更新
  501.                 CallScriptFunction(791010, "AddPointData", sceneId, memId, 6);
  502.         end
  503. end

  504. --**********************************
  505. --有玩家进入副本事件
  506. --**********************************
  507. function x401001_OnPlayerEnter(sceneId, selfId)
  508.         --设置死亡后复活点位置
  509.         SetPlayerDefaultReliveInfo(sceneId, selfId, "%10", -1, "0", sceneId, x401001_g_Fuben_X, x401001_g_Fuben_Z);
  510.         local teamLeaderFlag = LuaFnIsTeamLeader(sceneId, selfId);
  511.         if teamLeaderFlag and teamLeaderFlag == 1 then
  512.                 LuaFnSetTeamExpAllotMode(sceneId, selfId, 0);
  513.         end
  514. end

  515. --**********************************
  516. --有玩家在副本中死亡事件
  517. --**********************************
  518. function x401001_OnHumanDie(sceneId, selfId, killerId)
  519. end

  520. --***********************************
  521. -- 创建10个年兽 add by cuiyinjie 2008-11-6
  522. --***********************************
  523. --function x401001_CreateNianshou(sceneId)
  524. --        local iNianshouCreateFlagIndex = 20; --最大32个参数
  525. --        -- 判断已经创建就不再创建了
  526. --        if ( 1 == LuaFnGetCopySceneData_Param(sceneId, iNianshouCreateFlagIndex) ) then
  527. --           return
  528. --        end
  529. --       
  530. --        local iIdx = LuaFnGetCopySceneData_Param(sceneId, 10);
  531. --       
  532. --        local iIdx = floor(iIdx);
  533. --       
  534. --        if (iIdx > getn(x401001_g_Nianshous)) then
  535. --            iIdx = getn(x401001_g_Nianshous);
  536. --        end
  537. --
  538. --        local iNianshouID = x401001_g_Nianshous[iIdx];
  539. --
  540. --        if ( nil == iNianshouID ) then
  541. --            return
  542. --        end
  543. --
  544. --        local NsPos = {{44,38},{49,38},{39,43},{39,48},{56,63},{51,67},{77,45},{86,43},{60,82},{57,88},};
  545. --        for i = 1, 10 do    -- 创建10个
  546. --                local objId = LuaFnCreateMonster(sceneId, iNianshouID, NsPos[i][1], NsPos[i][2], 1, 272, -1);
  547. --                local dis = LuaFnGetCopySceneData_Param(sceneId, CopyScene_LevelGap);        --级别差,CopyScene_LevelGap 在 scene.lua 中赋值       
  548. --                local actLevel = dis + iIdx * 10;
  549. --                SetLevel( sceneId, objId, actLevel ) -- zchw
  550. --                LuaFnSendSpecificImpactToUnit(sceneId, objId, objId, objId, 10472, 0); -- zchw
  551. --        end
  552. --       
  553. --        LuaFnSetCopySceneData_Param(sceneId, iNianshouCreateFlagIndex, 1);
  554. --
  555. --end


  556. --**********************************
  557. --副本场景定时器事件
  558. --**********************************
  559. function x401001_OnCopySceneTimer(sceneId, nowTime)

  560. --        x401001_CreateNianshou(sceneId); -- add by cuiyinjie 2008-11-6
  561.         --副本时钟读取及设置
  562.         local curTickCount = LuaFnGetCopySceneData_Param(sceneId, 2);                --取得已经执行的定时次数
  563.        
  564.         if curTickCount == 2 then
  565.                 local nHour = GetHour();
  566.                 local nMinute = GetMinute();
  567.                 local nCurTempTime = nHour * 60 + nMinute;
  568.                
  569.                 local tempTimes = 0;
  570.                 if nCurTempTime < x401001_g_endTime1 then
  571.                         tempTimes = x401001_g_endTime1 - nCurTempTime;
  572.                 else
  573.                         tempTimes = x401001_g_endTime2 - nCurTempTime;
  574.                 end
  575.                
  576.                 if tempTimes > 0 then
  577.                         local tempH = floor(tempTimes / 60);
  578.                         local tempM = floor(tempTimes - tempH * 60);
  579.                           local strText = format("副本将在");
  580.                         if tempH > 0 then
  581.                                 strText = strText .. tempH .. "小时";
  582.                         end

  583.                         if tempM > 0 then
  584.                                 strText = strText .. tempM .. "分钟";
  585.                         end

  586.                         strText = strText .. "后关闭!";

  587.                         local membercount = LuaFnGetCopyScene_HumanCount(sceneId);
  588.                         local memId;
  589.                         for        i = 0, membercount - 1 do
  590.                                 memId = LuaFnGetCopyScene_HumanObjId(sceneId, i);
  591.                                 if LuaFnIsObjValid(sceneId, memId) == 1 and LuaFnIsCanDoScriptLogic(sceneId, memId) == 1 then
  592.                                         x401001_NotifyFailTips(sceneId, memId, strText);
  593.                                 end
  594.                         end
  595.                 end
  596.         end
  597.                
  598.         --副本关闭标志
  599.         local leaveFlag = LuaFnGetCopySceneData_Param(sceneId, 4);
  600.         if leaveFlag == 1 then --需要离开

  601.                 --离开倒计时间的读取和设置
  602.                 local closeTickCount = LuaFnGetCopySceneData_Param(sceneId, 5);
  603.                 if closeTickCount >= x401001_g_closeTickCount then --倒计时间到,大家都出去吧
  604.                         oldsceneId = LuaFnGetCopySceneData_Param(sceneId, 3);                --取得副本入口场景号
  605.                         --将当前副本场景里的所有人传送回原来进入时候的场景
  606.                         local membercount = LuaFnGetCopyScene_HumanCount(sceneId);
  607.                         local memId;
  608.                         for        i = 0, membercount - 1 do
  609.                                 memId = LuaFnGetCopyScene_HumanObjId(sceneId, i);
  610.                                 if LuaFnIsObjValid(sceneId, memId) == 1 and LuaFnIsCanDoScriptLogic(sceneId, memId) == 1 then
  611.                                         if oldsceneId == 0 or oldsceneId == 418 or oldsceneId == 419 then
  612.                                                 NewWorld(sceneId, memId, 0, x401001_g_Back_X_Ly, x401001_g_Back_Z_Ly);
  613.                                         elseif oldsceneId == 1 or oldsceneId == 518 then
  614.                                                 NewWorld(sceneId, memId, 1, x401001_g_Back_X_Sz, x401001_g_Back_Z_Sz);
  615.                                         else
  616.                                                 NewWorld(sceneId, memId, 2, x401001_g_Back_X_Dl, x401001_g_Back_Z_Dl);
  617.                                         end
  618.                                 end
  619.                         end
  620.                        
  621.                 elseif closeTickCount < x401001_g_closeTickCount then
  622.                         --通知当前副本场景里的所有人,场景关闭倒计时间
  623.                         if floor(closeTickCount) == floor(closeTickCount / x401001_g_tipsIntervalTickCount) * floor(x401001_g_tipsIntervalTickCount) then
  624.                                 local membercount = LuaFnGetCopyScene_HumanCount(sceneId);
  625.                                 local memId;
  626.                                   local strText = format("你将在%d秒后离开场景!", (x401001_g_closeTickCount - closeTickCount) * x401001_g_tickDiffTime);
  627.                                 for        i = 0, membercount - 1 do
  628.                                         memId = LuaFnGetCopyScene_HumanObjId(sceneId, i);
  629.                                         if LuaFnIsObjValid(sceneId, memId) == 1 and LuaFnIsCanDoScriptLogic(sceneId, memId) == 1 then
  630.                                                 x401001_NotifyFailTips(sceneId, memId, strText);
  631.                                         end
  632.                                 end
  633.                         end
  634.                 end
  635.                 closeTickCount = closeTickCount + 1;
  636.                 LuaFnSetCopySceneData_Param(sceneId, 5, closeTickCount);
  637.         else
  638.                 --检测活动时间是否结束
  639.                 local bActive = x401001_IsActivityOpen(sceneId);
  640.                 if bActive and bActive == 1 then
  641.                 else
  642.                         --设置副本关闭标志
  643.                         LuaFnSetCopySceneData_Param(sceneId, 4, 1);
  644.                         return
  645.                 end

  646.                 --开始时的提示
  647.                 if curTickCount < x401001_g_startTickCount then
  648.                         if floor(curTickCount) == floor(curTickCount / x401001_g_tipsIntervalTickCount) * floor(x401001_g_tipsIntervalTickCount) then
  649.                                 local memId;
  650.                                   local strText = format("战斗将在%d秒后开始!", (x401001_g_startTickCount - curTickCount) * x401001_g_tickDiffTime);
  651.                                 local membercount = LuaFnGetCopyScene_HumanCount(sceneId);
  652.                                 for        i = 0, membercount - 1 do
  653.                                         memId = LuaFnGetCopyScene_HumanObjId(sceneId, i);
  654.                                         if LuaFnIsObjValid(sceneId, memId) == 1 and LuaFnIsCanDoScriptLogic(sceneId, memId) == 1 then
  655.                                                 x401001_NotifyFailTips(sceneId, memId, strText);
  656.                                         end
  657.                                 end
  658.                         end
  659.                 elseif curTickCount == x401001_g_startTickCount then
  660.                         local memId;
  661.                         local membercount = LuaFnGetCopyScene_HumanCount(sceneId);
  662.                         for        i = 0, membercount - 1 do
  663.                                 memId = LuaFnGetCopyScene_HumanObjId(sceneId, i);
  664.                                 if LuaFnIsObjValid(sceneId, memId) == 1 and LuaFnIsCanDoScriptLogic(sceneId, memId) == 1 then
  665.                                         x401001_NotifyFailTips(sceneId, memId, "战斗开始了!");
  666.                                 end
  667.                         end
  668.                 end
  669.                        
  670.                 --怪物控制逻辑
  671.                 if curTickCount >= x401001_g_startTickCount then        --时间到,开始出怪
  672.                         local mgroup = LuaFnGetCopySceneData_Param(sceneId, 10);        --记录所产生的怪物组
  673.                         local xinshoucnt = 0
  674.                        
  675.                         if mgroup > x401001_g_MoTypeCount then
  676.                                 print("Error! ");
  677.                                 mgroup = 1;
  678.                         end
  679.                        
  680.                         -- 根据普通和新人模式选择不同的monster类型
  681.                         local Black_A = x401001_g_Black_A
  682.                         local Black_B = x401001_g_Black_B
  683.                         local Black_C = x401001_g_Black_C
  684.                         local White_A = x401001_g_White_A
  685.                         local White_B = x401001_g_White_B
  686.                         local White_C = x401001_g_White_C
  687.                         local        LastBoss = x401001_g_LastBoss
  688.                         xinshoucnt = LuaFnGetCopySceneData_Param(sceneId, 13);        --获取带新手模式信息
  689.                         --PrintStr("xinshoucnt ="..xinshoucnt)
  690.                         if xinshoucnt == 2 then
  691.                                         Black_B = x401001_g_Black_XinShou3_B
  692.                                         Black_C = x401001_g_Black_XinShou3_C
  693.                                         White_B = x401001_g_White_XinShou3_B
  694.                                         White_C = x401001_g_White_XinShou3_C
  695.                                         LastBoss = x401001_g_LastBoss_XinShou3
  696.                         elseif xinshoucnt == 1 then
  697.                                         Black_B = x401001_g_Black_XinShou6_B
  698.                                         Black_C = x401001_g_Black_XinShou6_C
  699.                                         White_B = x401001_g_White_XinShou6_B
  700.                                         White_C = x401001_g_White_XinShou6_C
  701.                                         LastBoss = x401001_g_LastBoss_XinShou6
  702.                         end
  703.                   
  704.                         --变化怪物
  705.                         local monsterObjId = -1;
  706.                         local monsterCount = GetMonsterCount(sceneId);
  707.                         for i = 0, monsterCount - 1 do
  708.                                 monsterObjId = GetMonsterObjID(sceneId, i);
  709.                                 if LuaFnIsCharacterLiving(sceneId, monsterObjId) > 0 then        --活的怪物
  710.                                         local monstertype = GetMonsterDataID(sceneId, monsterObjId);        --怪物类型
  711.                                         local monsterLevel = GetLevel(sceneId, monsterObjId);
  712.                                         local mcreatetime = GetObjCreateTime(sceneId, monsterObjId);        --怪物创建时间
  713.                                         local PosX, PosZ = LuaFnGetWorldPos(sceneId, monsterObjId);
  714.                                         PosX = floor(PosX);
  715.                                         PosZ = floor(PosZ);

  716.                                         if monstertype == Black_A[mgroup] then
  717.                                                 if nowTime >= mcreatetime + x401001_g_aToBInterval then --需要将怪物变成B状态了
  718.                                                         LuaFnDeleteMonster(sceneId, monsterObjId);
  719.                                                         --PrintStr("Black_B ="..Black_B[mgroup])
  720.                                                         monsterObjId = LuaFnCreateMonster(sceneId, Black_B[mgroup], PosX, PosZ, 7, 0, 401001);
  721.                                                         if monsterObjId and monsterObjId > -1 then
  722.                                                                 SetLevel(sceneId, monsterObjId, monsterLevel);
  723.                                                         end
  724.                                                 end
  725.                                         elseif monstertype == Black_B[mgroup] then
  726.                                                 if nowTime >= mcreatetime + x401001_g_aToBInterval + x401001_g_bToCInterval then --需要将怪物变成C状态了
  727.                                                         LuaFnDeleteMonster(sceneId, monsterObjId);
  728.                                                         --PrintStr("Black_C ="..Black_C[mgroup])
  729.                                                         monsterObjId = LuaFnCreateMonster(sceneId, Black_C[mgroup], PosX, PosZ, 5, 0, 401001);
  730.                                                         if monsterObjId and monsterObjId > -1 then
  731.                                                                 SetLevel(sceneId, monsterObjId, monsterLevel);
  732.                                                         end
  733.                                                 end
  734.                                         elseif monstertype == White_A[mgroup] then
  735.                                                 if nowTime >= mcreatetime + x401001_g_aToBInterval then --需要将怪物变成B状态了
  736.                                                         LuaFnDeleteMonster(sceneId, monsterObjId)
  737.                                                         --PrintStr("White_B ="..White_B[mgroup])
  738.                                                         monsterObjId = LuaFnCreateMonster(sceneId, White_B[mgroup], PosX, PosZ, 7, 0, 401001);
  739.                                                         if monsterObjId and monsterObjId > -1 then
  740.                                                                 SetLevel(sceneId, monsterObjId, monsterLevel);
  741.                                                         end
  742.                                                 end
  743.                                         elseif monstertype == White_B[mgroup] then
  744.                                                 if nowTime >= mcreatetime + x401001_g_aToBInterval + x401001_g_bToCInterval then --需要将怪物变成C状态了
  745.                                                         LuaFnDeleteMonster(sceneId, monsterObjId)
  746.                                                         --PrintStr("White_C ="..White_C[mgroup])
  747.                                                         monsterObjId = LuaFnCreateMonster(sceneId, White_C[mgroup], PosX, PosZ, 5, 0, 401001);
  748.                                                         if monsterObjId and monsterObjId > -1 then
  749.                                                                 SetLevel(sceneId, monsterObjId, monsterLevel);
  750.                                                         end
  751.                                                 end
  752.                                         else
  753.                                         end
  754.                                 else
  755.                                 end
  756.                         end

  757.                         --刷怪
  758.                         --取得已经下了的步数
  759.                         local pressStep = LuaFnGetCopySceneData_Param(sceneId, 9);
  760.                         if pressStep < x401001_g_mStepPosListSize then
  761.                                 --出怪时间检测
  762.                                 local needCreate = 0;
  763.                                 local curKillCount = LuaFnGetCopySceneData_Param(sceneId, 11);
  764.                                 if pressStep == x401001_g_mStepPosListSize - 1 then
  765.                                         if curKillCount == pressStep then
  766.                                                 needCreate = 1;
  767.                                         end
  768.                                 elseif pressStep == 0 then
  769.                                         needCreate = 1;
  770.                                 else
  771.                                         local createMonsterIntervalTickCount = 0;
  772.                                         local createMonsterIntervalInfo;
  773.                                         for _, createMonsterIntervalInfo in x401001_g_createMonsterIntervalInfoList do
  774.                                                 if pressStep < createMonsterIntervalInfo.topPressStep then
  775.                                                         createMonsterIntervalTickCount = createMonsterIntervalInfo.intervalTickCount;
  776.                                                         break;
  777.                                                 end
  778.                                         end
  779.                                        
  780.                                         --取上次出怪时间
  781.                                         local prevCreateMonsterTickCount = LuaFnGetCopySceneData_Param(sceneId, 12);
  782.                                         if prevCreateMonsterTickCount + createMonsterIntervalTickCount <= curTickCount then
  783.                                                 needCreate = 1;
  784.                                         end
  785.                                 end
  786.                                
  787.                                 --生成怪物
  788.                                 if needCreate == 1 then
  789.                                         LuaFnSetCopySceneData_Param(sceneId, 12, curTickCount);
  790.                                        
  791.                                         --设置新的定时器调用次数
  792.                                         pressStep = pressStep + 1;
  793.                                         LuaFnSetCopySceneData_Param(sceneId, 9, pressStep);
  794.                                        
  795.                                         --根据棋谱生成怪物
  796.                                         local selectQiPuIndex = LuaFnGetCopySceneData_Param(sceneId, 8);
  797.                                         local pos = x401001_g_mStepPosLists[selectQiPuIndex][pressStep];
  798.                                         local monsterType = -1;
  799.                                         local monsterAIType = -1;
  800.                                         local monsterAIScript = -1;
  801.                                         local isBoss = 0;
  802.                                         if pressStep == x401001_g_mStepPosListSize then
  803.                                                 monsterType = LastBoss[mgroup];
  804.                                                 monsterAIType = 14;
  805.                                                 monsterAIScript = 123;
  806.                                                 isBoss = 1;
  807.                                         else
  808.                                                 local whiteOrBlack = mod(pressStep, 2);
  809.                                                 if whiteOrBlack == 1 then
  810.                                                         monsterType = White_B[mgroup];
  811.                                                 else
  812.                                                         monsterType = Black_B[mgroup];
  813.                                                 end
  814.                                                 monsterAIType = 3;
  815.                                                 monsterAIScript = 0;
  816.                                                 isBoss = 0;
  817.                                         end
  818.                                        
  819.                                         if monsterType and monsterType ~= -1 and pos then
  820.                                                 --PrintStr("monsterType ="..monsterType)
  821.                                                 local newObjId = LuaFnCreateMonster(sceneId, monsterType, pos.x, pos.z, monsterAIType, monsterAIScript, 401001);
  822.                                                 if newObjId and newObjId > -1 then
  823.                                                         local LevelGap = LuaFnGetCopySceneData_Param(sceneId, CopyScene_LevelGap);
  824.                                                         local monsterLevel = GetLevel(sceneId, newObjId);
  825.                                                         monsterLevel = LevelGap + monsterLevel;
  826.                                                         SetLevel(sceneId, newObjId, monsterLevel);
  827.                                                        
  828.                                                         if isBoss == 1 then
  829.                                                        
  830.                                                                 local szName = LuaFnGetName(sceneId, newObjId)
  831.        
  832.                                                                 if szName == "远古棋魂"   then
  833.                                                                         SetCharacterTitle(sceneId, newObjId, "“棋王”")
  834.                                                                 end
  835.                                                        
  836.                                                                 local strText = format("#R%s:觉悟吧!你们应该为你们的行为付出代价。", LuaFnGetName(sceneId, newObjId));
  837.                                                                   MonsterTalk(sceneId, -1, x401001_g_CopySceneName, strText);
  838.                                                                  
  839.                                                                 --大家都封印吧
  840.                                                                 local membercount = LuaFnGetCopyScene_HumanCount(sceneId);
  841.                                                                 local memId;
  842.                                                                 for        i = 0, membercount - 1 do
  843.                                                                         memId = LuaFnGetCopyScene_HumanObjId(sceneId, i);
  844.                                                                           LuaFnSendSpecificImpactToUnit(sceneId, memId, newObjId, memId, 46, 0);
  845.                                                                 end
  846.                                                         end
  847.                                                 end
  848.                                         end
  849.                                 end
  850.                         end
  851.                 end
  852.         end
  853.        
  854.         curTickCount = curTickCount + 1;
  855.         LuaFnSetCopySceneData_Param(sceneId, 2, curTickCount);--设置新的定时器调用次数
  856. end

  857. function x401001_NotifyFailTips(sceneId, selfId, Tip)
  858.         BeginEvent(sceneId);
  859.                 AddText(sceneId, Tip);
  860.         EndEvent(sceneId);
  861.         DispatchMissionTips(sceneId, selfId);
  862. end

  863. function x401001_IsActivityOpen(sceneId)
  864.         local nHour = GetHour();
  865.         local nMinute = GetMinute();
  866.         local nCurTempTime = nHour * 60 + nMinute;
  867.         if nCurTempTime >= x401001_g_beginTime1 and nCurTempTime < x401001_g_endTime1 then
  868.                 return 1;
  869.         end
  870.         if nCurTempTime >= x401001_g_beginTime2 and nCurTempTime < x401001_g_endTime2 then
  871.                 return 1;
  872.         end
  873.         return 0;
  874. end

  875. function x401001_OnDie(sceneId, selfId, killerId)                                                -- 场景ID, 被杀的ObjId, 杀手ObjId
  876.         local objType = GetMonsterDataID(sceneId, selfId);
  877.         local mgroup = LuaFnGetCopySceneData_Param(sceneId, 10);        --记录所产生的怪物组
  878.         local xinshoucnt = 0
  879.         local        LastBoss = x401001_g_LastBoss
  880.         xinshoucnt = LuaFnGetCopySceneData_Param(sceneId, 13);        --获取带新手模式信息
  881.                        
  882.         if xinshoucnt == 2 then
  883.                         LastBoss = x401001_g_LastBoss_XinShou3
  884.         elseif xinshoucnt == 1 then
  885.                         LastBoss = x401001_g_LastBoss_XinShou6
  886.         end
  887.         --PrintStr("LastBoss ="..LastBoss[mgroup])
  888.         --PrintStr("objType ="..objType)
  889.        
  890.         --杀死怪物的是宠物则获取其主人的Id....
  891.         local playerID = killerId
  892.         local objTypeEx = GetCharacterType( sceneId, killerId )
  893.         if objTypeEx == 3 then
  894.                 playerID = GetPetCreator( sceneId, killerId )
  895.         end

  896.         -- 带新手模式下善恶值和额外经验的给予
  897.         -- 检测是否满足带新手模式
  898.         if playerID ~= nil and playerID ~= -1 and x401001_OnXinShouCount( sceneId, playerID ) > 0 then
  899.                 local        memberId = 0
  900.                 local memcount = LuaFnGetCopyScene_HumanCount(sceneId);
  901.                
  902.                 local memlevel = GetLevel( sceneId, playerID )
  903.                 local teamLeaderFlag = 0
  904.                 teamLeaderFlag = LuaFnIsTeamLeader(sceneId, playerID);
  905.                 if memlevel >= x401001_g_Highlvl_Limit then
  906.                         local nStr = ""
  907.                         local memgoodbad = LuaFnGetHumanGoodBadValue(sceneId, playerID)
  908.                         if teamLeaderFlag == 1 then
  909.                                 --PrintStr("High_GoodBadParam")
  910.                                 LuaFnSetHumanGoodBadValue(sceneId, playerID, memgoodbad+x401001_g_High_GoodBadParam)                -- 杀手是队长的话多给些善恶
  911.                                 nStr = format( "#{QJ_20080522_04}%d#{QJ_20080522_05}", x401001_g_High_GoodBadParam )
  912.                         else
  913.                                 --PrintStr("Low_GoodBadParam")
  914.                                 LuaFnSetHumanGoodBadValue(sceneId, playerID, memgoodbad+x401001_g_Low_GoodBadParam)                        -- 杀手是队员的话少给些善恶
  915.                                 nStr = format( "#{QJ_20080522_04}%d#{QJ_20080522_05}", x401001_g_Low_GoodBadParam )
  916.                         end
  917.                        
  918.                         Msg2Player( sceneId, playerID, nStr, MSG2PLAYER_PARA )
  919.                 end
  920.                
  921.                 for        k = 0, memcount - 1 do
  922.                         memberId = LuaFnGetCopyScene_HumanObjId(sceneId, k);
  923.                         local memlvl = GetLevel( sceneId, memberId )
  924.                         --PrintStr("memberId ="..memberId)
  925.                         --PrintStr("memlvl ="..memlvl)
  926.                         -- 只给新人额外经验
  927.                         if memlvl >= x401001_g_Lowlvl_Limit.from and memlvl <= x401001_g_Lowlvl_Limit.to then
  928.                                 local MonsterLevel = GetLevel( sceneId, selfId )
  929.                                 --PrintStr("MonsterLevel ="..MonsterLevel)
  930.                                 local levelcur = memlvl - MonsterLevel
  931.                                 --local nExpAtn = 0 --经验衰减已经取消,by hukai
  932.                                 local PlayerExpList = {}
  933.                                 local        ExpParam = x401001_g_XinShou_Exp_Mod01                                                                                -- 经验系数加成,平时给的少
  934.                                 --nExpAtn = GetExpAttenuationInfo( sceneId, memberId, levelcur )        -- 根据ExpAttenuation.txt获得经验衰减系数,已经取消,by hukai
  935.                                 --PrintStr("nExpAtn ="..nExpAtn)
  936.                                 for n, ExpListInfo in x401001_g_XinShou_ExpAtu do
  937.                                         if ( objType and objType >= ExpListInfo.mBengin01 and objType <= ExpListInfo.mEnd01)                                                -- 根据monster类型,根据每个玩家的等级给予不同的额外经验
  938.                                                  or ( objType and objType >= ExpListInfo.mBengin02 and objType <= ExpListInfo.mEnd02) then
  939.                                                  PlayerExpList = ExpListInfo.ExpList
  940.                                                  break
  941.                                         end
  942.                                 end
  943.                                
  944.                                 local plyLevel = floor(memlvl/10)
  945.                                 local playerExp01 = 0
  946.                                 if PlayerExpList and PlayerExpList[plyLevel] > 0 then
  947.                                         playerExp01 = PlayerExpList[plyLevel]
  948.                                 end
  949.                                 --PrintStr("playerExp01 ="..playerExp01)
  950.                                
  951.                                 -- 是否有双倍经验Buffer
  952.                                 for i, ExpPreList in x401001_g_DoubleExpList do
  953.                                         if LuaFnHaveImpactOfSpecificDataIndex(sceneId, memberId, ExpPreList.BuffId) == 1   then
  954.                                                 ExpParam = ExpPreList.ExpPre                                               
  955.                                                 break
  956.                                         end
  957.                                 end
  958.                                
  959.                                 local nFreeHave = DEGetFreeTime(sceneId, memberId)
  960.                                 local nMoneyHave = DEGetMoneyTime(sceneId, memberId)
  961.                                 --PrintStr("nFreeHave ="..nFreeHave)
  962.                                 --PrintStr("nMoneyHave ="..nMoneyHave)
  963.                                 if DEIsLock(sceneId,memberId) <= 0 then                                                                -- 玩家是否领取到双倍/四倍经验奖励,不包括冻结状态
  964.                                         if nFreeHave > 0 or nMoneyHave > 0 then
  965.                                                 --PrintStr("Exp_Mod02")
  966.                                                 ExpParam = x401001_g_XinShou_Exp_Mod02                                                -- 未冻结的双倍/四倍经验经验系数加成高
  967.                                         end
  968.                                 end                               

  969.                                 -- 根据组队人数经验衰减
  970.                                 playerExp01 = playerExp01*( ( 1+( memcount-1 )/x401001_g_ExpTeamPre )/memcount )
  971.                                 --local ExpSum = (1-nExpAtn)*playerExp01*ExpParam                                -- 根据公式给予玩家经验。经验衰减已经取消 by hukai
  972.                                 local ExpSum = playerExp01*ExpParam                                -- 根据公式给予玩家经验
  973.                                 --PrintStr("ExpSum ="..ExpSum)
  974.                                 if ExpSum > 0 then
  975.                                         LuaFnAddExp( sceneId, memberId, floor(ExpSum) )
  976.                                 end
  977.                         end
  978.                 end
  979.         end
  980.        
  981.         if objType and objType == LastBoss[mgroup] then
  982.                 local membercount = LuaFnGetCopyScene_HumanCount(sceneId);
  983.                 local memId
  984.                 local teamLeaderName;
  985.                 local firstMemName;
  986.                 local firstMemId;
  987.                 for        i = 0, membercount - 1 do
  988.                         memId = LuaFnGetCopyScene_HumanObjId(sceneId, i);
  989.                         local teamLeaderFlag = LuaFnIsTeamLeader(sceneId, memId);
  990.                         if teamLeaderFlag and teamLeaderFlag == 1 then
  991.                                 teamLeaderName = LuaFnGetName(sceneId, memId);
  992.                         end
  993.                         if firstMemName then
  994.                         else
  995.                                 firstMemId = memId;
  996.                                 firstMemName = LuaFnGetName(sceneId, memId);
  997.                         end
  998.                 end
  999.                
  1000.                 if teamLeaderName or firstMemName then
  1001.                         local bossName = "#{_BOSS26}";
  1002.                         local winMessage = {};
  1003.                         if teamLeaderName then
  1004.                                 winMessage[1] = format("#W#{_INFOUSR%s}#P率队在珍珑棋局中的最后阶段,将#G%s#P击败,#G%s#P临终前喟然长叹:世事如棋局局新,下次我一定努力……", teamLeaderName, bossName, bossName);
  1005.                                 winMessage[2] = format("#G%s#P与#W#{_INFOUSR%s}#P率领的队伍会战珍珑棋局,因眼花而自添一眼导致形势逆转而负。", bossName, teamLeaderName);
  1006.                                 winMessage[3] = format("#W#{_INFOUSR%s}#P正与#G%s#P聚精会神的对弈,队友们从背后分左中右三路袭向#G%s#P,遂大胜珍珑棋局,那#G%s#P含泪道:你们……你们……", teamLeaderName, bossName, bossName, bossName);
  1007.                                 winMessage[4] = format("#W#{_INFOUSR%s}#P正在珍珑棋局与#G%s#P正在对弈,队友们在#G%s#P身后叫道:“大飞,小飞,虎,虎上!”#G%s#P最终因心智混乱而败。", teamLeaderName, bossName, bossName, bossName);
  1008.                         elseif firstMemName then
  1009.                                 winMessage[1] = format("#W#{_INFOUSR%s}#P等人在珍珑棋局中的最后阶段,将#G%s#P击败,#G%s#P临终前喟然长叹:世事如棋局局新,下次我一定努力……", firstMemName, bossName, bossName);
  1010.                                 winMessage[2] = format("#G%s#P与#W#{_INFOUSR%s}#P等人的队伍会战珍珑棋局,因眼花而自添一眼导致形势逆转而负。", bossName, firstMemName);
  1011.                         end
  1012.                        
  1013.                         local messageCount = getn(winMessage);
  1014.                         local randIndex = random(1, messageCount);
  1015.                         if winMessage[randIndex] then
  1016.                         else
  1017.                                 randIndex = 1;
  1018.                         end
  1019.                        
  1020.                         if winMessage[randIndex] then
  1021.                                 BroadMsgByChatPipe(sceneId, firstMemId, winMessage[randIndex], 4);
  1022.                         end
  1023.                        
  1024.                         for        i = 0, membercount - 1 do
  1025.                                 memId = LuaFnGetCopyScene_HumanObjId(sceneId, i);
  1026.                                 if LuaFnIsObjValid( sceneId, memId ) == 1 and LuaFnIsCanDoScriptLogic( sceneId, memId ) == 1 then
  1027.                                         --周活跃数据埋点
  1028.                                         LuaFnFinishZhouHuoYueMission(sceneId,memId,20)
  1029.                                         --英雄大会埋点
  1030.                                         if LuaFnHaveImpactOfSpecificDataIndex(sceneId,memId,10541) == 1 then
  1031.                                                 AddHerosReturnsRecoed(sceneId,memId,13)
  1032.                                         end
  1033.                                 end
  1034.                         end
  1035.                 end
  1036.         else
  1037.             --++++++++++++++ 判断是年兽,则不计数
  1038. --            local iNsIdx = 1;
  1039. --            for iNsIdx = 1, getn(x401001_g_Nianshous) do
  1040. --               if x401001_g_Nianshous[iNsIdx] == objType then
  1041. --                  return
  1042. --               end
  1043. --            end
  1044.             --++++++++++++++
  1045.                 local curKillCount = LuaFnGetCopySceneData_Param(sceneId, 11);
  1046.                 curKillCount = curKillCount + 1;
  1047.                 LuaFnSetCopySceneData_Param(sceneId, 11, curKillCount);
  1048.                 local membercount = LuaFnGetCopyScene_HumanCount(sceneId);
  1049.                 local memId
  1050.                 local strText = format("你已杀死棋子%d/%d", curKillCount, x401001_g_mStepPosListSize - 1);
  1051.                 for        i = 0, membercount - 1 do
  1052.                         memId = LuaFnGetCopyScene_HumanObjId(sceneId, i);
  1053.                         if LuaFnIsObjValid( sceneId, memId ) == 1 and LuaFnIsCanDoScriptLogic( sceneId, memId ) == 1 then
  1054.                                 x401001_NotifyFailTips(sceneId, memId, strText);
  1055.                         end
  1056.                 end
  1057.         end
  1058. end

  1059. -- 获得带新手模式下新手的数量
  1060. function x401001_OnXinShouCount( sceneId, selfId )

  1061.         -- 带新手模式棋局
  1062.         local nHightlvlNum = 0
  1063.         local nLowlvlNum = 0
  1064.         local nTipToplvl        =        0
  1065.         local nTipBotlvl        =        GetHumanMaxLevelLimit()
  1066.         local nearMemberCount = GetNearTeamCount(sceneId, selfId);
  1067.         for        i=0,nearMemberCount-1 do
  1068.                 local sceneMemId = GetNearTeamMember(sceneId, selfId, i)
  1069.                 if sceneMemId and sceneMemId >= 0 then                       
  1070.                         if GetLevel(sceneId, sceneMemId) >= x401001_g_Highlvl_Limit then
  1071.                                 nHightlvlNum = nHightlvlNum + 1
  1072.                         end
  1073.                         if GetLevel(sceneId, sceneMemId) >= x401001_g_Lowlvl_Limit.from and GetLevel(sceneId, sceneMemId) <= x401001_g_Lowlvl_Limit.to then
  1074.                                 nLowlvlNum = nLowlvlNum + 1
  1075.                         end
  1076.                         if GetLevel(sceneId, sceneMemId) > nTipToplvl then
  1077.                                 nTipToplvl = GetLevel(sceneId, sceneMemId)
  1078.                         end
  1079.                         if GetLevel(sceneId, sceneMemId) < nTipBotlvl then
  1080.                                 nTipBotlvl = GetLevel(sceneId, sceneMemId)
  1081.                         end
  1082.                 end
  1083.         end
  1084.        
  1085.         if nHightlvlNum > 0 and nLowlvlNum > 0 and (nTipToplvl-nTipBotlvl) >= x401001_g_LvLCur then
  1086.                 return nLowlvlNum
  1087.         end
  1088.        
  1089.         return 0

  1090. end
  1091. 这个在别能全天开,放这里不行,我也不知道什么原因
复制代码
发表于 2025-6-22 13:40:32 | 显示全部楼层
团龙经久不衰
发表于 2025-6-22 21:43:27 | 显示全部楼层
大佬好,请问一下能用VM8的子网IP 192.168.200.0玩吗?用VM1设置子网IP 111.111.111.0客户端连不上服务端
发表于 2025-6-23 11:41:52 | 显示全部楼层
大佬,能不能教一下如何安装
发表于 2025-6-23 13:15:04 | 显示全部楼层
刷棋、踢球副本时间是不是只要把对应的副本lua中判断时间的语句删掉或者直接--就可以了。感觉难的是如何增加贼兵入侵和宵小的固定NPC
发表于 2025-6-23 17:34:16 | 显示全部楼层
本帖最后由 Picasou 于 2025-6-23 17:48 编辑
▏痴e忄▕ 发表于 2025-6-23 13:15
刷棋、踢球副本时间是不是只要把对应的副本lua中判断时间的语句删掉或者直接--就可以了。感觉难的是如何增 ...

反和小也很简单吧,随便在哪里放个NPC,脚本设置成反和小的脚本就行;反和小的入口脚本没有时间检测的,只是他们的入口NPC刷新受到时间限制。野猪也同理。
举个例子,在大理出生地添加这反和小:
在dali_monster.ini里添加,注意根据实际情况修改[monster167]里的序号:
  1. [monster167]
  2. guid=1986678
  3. type=473
  4. name=偷袭门派
  5. title=
  6. pos_x=165.0000
  7. pos_z=170.0000
  8. dir=9
  9. script_id=808027
  10. respawn_time=1000
  11. group_id=-1
  12. team_id=-1
  13. base_ai=3
  14. ai_file=0
  15. patrol_id=-1
  16. shop0=-1
  17. shop1=-1
  18. shop2=-1
  19. shop3=-1
  20. ReputationID=-1
  21. level=-1

  22. [monster168]
  23. guid=1986678
  24. type=473
  25. name=贼兵入侵
  26. title=
  27. pos_x=168.0000
  28. pos_z=170.0000
  29. dir=9
  30. script_id=050013
  31. respawn_time=1000
  32. group_id=-1
  33. team_id=-1
  34. base_ai=3
  35. ai_file=0
  36. patrol_id=-1
  37. shop0=-1
  38. shop1=-1
  39. shop2=-1
  40. shop3=-1
  41. ReputationID=-1
  42. level=-1
复制代码



发表于 2025-6-24 09:18:39 | 显示全部楼层
感谢大佬的无私奉献小的拜过
 楼主| 发表于 2025-6-24 21:37:11 | 显示全部楼层
本帖最后由 蛋二 于 2025-6-24 21:38 编辑


更新记录:

2025年6月24日:
31.修改home\tlbb\Public\Scene\jiange_monster.ini、jinghu_monster.ini、songshan_monster.ini、taihu_monster.ini、wuliang_monster.ini、dunhuang_monster.ini在太湖(218,271)(279,226)(280,43)(88,35)嵩山(281,256)(279,136)(42,54)镜湖(46,278)(34,233)(277,46)无量山(43,172)(94,278)(114,44)(276,80)剑阁(40,278)(277,168)(106,47)敦煌(230,270)(43,274)(60,41)(276,145)(150,45)位置添加造反恶贼NPC,添加点我进入标识
32.修改home\tlbb\Public\Data\Script\event\fuben\efuben_1_zhenlong_huodong.lua实现全天进入珍珑棋局
33.修改home\tlbb\Public\Data\Script\event\fuben\efuben_cuju.lua实现全天进入蹴鞠大赛
34.修改home\tlbb\Public\Scene\luoyang_monster.ini把王积薪NPC名字改为大宋棋圣王积薪,标签改为创建队伍才能看见活动
35.修改home\tlbb\Public\Scene\suzhou_monster.ini把张弈国NPC名字为棋局活动使者张弈国,标签改为创建队伍才能看见活动
36.修改home\tlbb\Public\Scene\dali_monster.ini把刘仲甫NPC名字为大宋棋圣刘仲甫,标签改为创建队伍才能看见活动
发表于 2025-6-25 15:17:59 | 显示全部楼层
感谢分享~~~~
[发帖际遇]: 渺若星辰 在论坛发帖时没有注意,被小偷偷去了 4 枚 金币. 幸运榜 / 衰神榜
发表于 2025-6-25 17:10:46 来自手机 | 显示全部楼层
看得懂lua搞源端去吧,那个要能修好了更值得玩
发表于 2025-6-25 22:06:47 | 显示全部楼层
怪物不爆任何东西吗?
 楼主| 发表于 2025-6-25 22:49:59 | 显示全部楼层
本帖最后由 蛋二 于 2025-6-29 22:47 编辑

更新记录:


2025年6月25日:
37.修改home\tlbb\Public\Scene\luoyang_monster.ini恢复王积薪NPC名字,标签改为创建队伍才能看见活动
38.修改home\tlbb\Public\Scene\suzhou_monster.ini恢复张弈国NPC名字,标签改为创建队伍才能看见活动
39.修改home\tlbb\Public\Scene\dali_monster.ini恢复刘仲甫NPC名字,标签改为创建队伍才能看见活动
40.修改home\tlbb\Public\Scene\yanzi_monster.ini剧情燕子坞一品堂高手使用普通怪物AI使其可以被攻击
41.修改home\tlbb\Public\Data\Script\event\juqing\yanziwu_05.lua使指点群豪戏可以不杀死一品堂高手也可以完成,并添加函数保证后续任务可以被接到
42.修改home\tlbb\Public\Data\Script\event\juqing\yanziwu_06.lua添加函数使前序任务完成可以显示这个任务
43.修改home\tlbb\Public\Data\Script\event\tianshan\tianshan_skill_02.lua雁门关太守府任务可以进副本的最小队伍人数改为1
[发帖际遇]: 蛋二 在论坛发帖时没有注意,被小偷偷去了 4 枚 金币. 幸运榜 / 衰神榜
 楼主| 发表于 2025-6-25 22:53:00 | 显示全部楼层
qq944092132 发表于 2025-6-25 17:10
看得懂lua搞源端去吧,那个要能修好了更值得玩

说来惭愧,我是从6月10日才开始学改天龙的,之前一点不会,也只能简单改改,而且我一个人玩也是感觉这个无门派很对我胃口,不用跟以前一样玩这个门派想学那个门派技能去乱改了
[发帖际遇]: 蛋二 发帖时在路边捡到 2 枚 金币,偷偷放进了口袋. 幸运榜 / 衰神榜
 楼主| 发表于 2025-6-25 22:54:48 | 显示全部楼层
jinshao001 发表于 2025-6-25 22:06
怪物不爆任何东西吗?

原作者做的就是不爆任何东西,我还不会改,有时间研究一下改回去
[发帖际遇]: 蛋二 在论坛发帖时没有注意,被小偷偷去了 4 枚 金币. 幸运榜 / 衰神榜
发表于 2025-6-25 23:35:02 | 显示全部楼层
通过网盘分享的文件:天龙修改教程
链接: https://pan.baidu.com/s/1ZjIPVPO_TFtzxXu3eNR6xg?pwd=rga9 提取码: rga9
您需要登录后才可以回帖 登录 | 注册

本版积分规则

本站内容如若侵犯到您的权益,请来电来函告知,我们会尽快处理!
联系QQ:1953150286,2251387361,123784736,免责申明

排行榜|联系我们|小黑屋|手机版|Archiver|游戏藏宝湾 |

GMT+8, 2025-9-1 07:13 , Processed in 0.179832 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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