跨服系统

第一步:cfg_mapinfo表第I列ServerNum字段设置为8(传送到带该参数的地图时进入跨服)

第二步:复制一份Mir200改名为Mir200-kf

第三步:引擎控制器--服务器设置--勾选跨服--设置跨服IP和端口(可默认,修改时注意占用)

第四步:引擎控制器--服务器设置--保存设置--启动跨服--启动游戏服务器

验证跨服是否成功

 

说明:进入cfg_mapinfo表第I列ServerNum字段设置为8的地图时代表进入跨服
     在进入跨服触发[@KFLOGIN]里,重新增加自定义按钮(同步数据会有延迟,需要延迟跳转增加)
     进入跨服时本服U,T,J,Z,个人标记自动传递到跨服,退出跨服时跨服U,T,J,Z,个人标记自动传递到本服

跨服支持,掉落捡取装备,押镖,沙巴克,国家,行会战,属性相关操作,称号相关操作
BUFF相关操作,装备相关操作,给与扣除物品等等.....除下方功能不支持其他全部支持

注意:在跨服拍卖行,求购行,交易行,摆摊,充值,行会进入退出操作,需使用脚本禁止
注意:在跨服M2发送的邮件,当跨服M2重启时将消失,建议直接给物品不发送邮件


 

跨服相关接口
检测跨服是否正常连接//KUAFUCONNECTED
检测当前是否是跨服M2//ISKUAFUSERVER
同步本服行会信息到跨服//SynGuildToKuafu
进入跨服触发跨服Mir200-KF\Market_Def\QFunction-0.txt [@KFLOGIN]
退出跨服触发本服Mir200\Market_Def\QFunction-0.txt [@KFEND]

跨服沙巴克服务端路径:Mir200\Castle\0\SabukW-KF.txt
跨服应急地图:cfg_startpoint.xls表M列(应急地图必须能正常进入,不能设置为跨服地图)

当前区服所有跨服玩家回到本服
格式:KUAFUUSERGOHOME 参数1 参数2 参数3 参数4
参数1:MAP
参数2:X坐标
参数3:Y坐标
参数4:范围
注:该命令只能在本服使用,跨服使用无效

跨服相关常量
跨服服务器组分区名称常量(只能在正式服显示)\
<$KUAFUSERVERNAME1> <$KUAFUSERVERNAME2> <$KUAFUSERVERNAME3> <$KUAFUSERVERNAME4>
<$KUAFUSERVERNAME5> <$KUAFUSERVERNAME6> <$KUAFUSERVERNAME7> <$KUAFUSERVERNAME8>
跨服服务器组分区ID常量(只能在正式服显示)\
<$KUAFUSERVERID1> <$KUAFUSERVERID2> <$KUAFUSERVERID3> <$KUAFUSERVERID4>
<$KUAFUSERVERID5> <$KUAFUSERVERID6> <$KUAFUSERVERID7> <$KUAFUSERVERID8>

自定义变量推送
注:个人U,J,D,T自动推送,其他变量需在传送到对应M2时使用脚本推送
例如:放在本服传送跨服地图的NPC脚本,点击传送时先执行该命令再执行传送地图命令

自定义变量推送:PushVar 参数1 参数2 参数3
参数1:HUMAN(只支持整数型自定义变量和字符型自定义变量)
参数2:变量名#变量名(格式:元宝捐献#灵符捐献)
参数3:推送目标M2ID(格式:推送到跨服=KUAFU   推送到所有M2=ALL 推送到对应M2=0-7)
注:参数3填写ALL和0-7时必须是开启了多M2

[@main]
#IF
#Act
PushVar HUMAN 捐献元宝 KUAFU
MAP kf3
SENDMSG 0 你传送到跨服盟重省

[@声明变量]
#IF
#act
VAR Integer HUMAN 捐献元宝
sendmsg 6 声明变量成功!

[@捐献元宝]
#IF
#act
calcvar HUMAN 捐献元宝 + 8
sendmsg 6 捐献元宝是<$HUMAN(捐献元宝)>

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
跨服与本服之间数据传递
本服通知触发跨服QF//BFBACKCALL 参数1 参数2 参数3 参数4
参数1 IDX(QF触发标签编号)
参数2 UID(某玩家UID,0 = 系统触发)
参数3 传递的字符串1(字符串)
参数4 传递的字符串2(字符串)

注:参数2=<$USERID>时触发本服QF//BFSYSCALLX        (X=参数1ID)
注:参数2=0时为系统触发一次本服QF//G_BFSYSCALLX     (X=参数1ID)
注:返回参数传递的字符串1:<$PARAM1>传递的字符串2:<$PARAM2>

;//指定玩家触发示例,该玩家必须在跨服
[@本服执行命令]
#ACT
BFBACKCALL 22 <$USERID> 测试字符串1 测试字符串2

;//该<$USERID>玩家触发
[@BFSYSCALL22]
#IF
#ACT
SendMsg 0 本服通知跨服<$PARAM1>=测试字符串1----------- <$PARAM2>=测试字符串2

;//指定系统触发示例
[@支持跨服NPC、本服QF/Qm执行命令]
#ACT
BFBACKCALL 23 0 测试字符串1 测试字符串2

;//本服QF触发一次
[@BFSYSCALL23]
#IF
#ACT
SendMsg 0 本服通知跨服<$PARAM1>=测试字符串1----------- <$PARAM2>=测试字符串2

跨服通知本服触发QF//KFBACKCALL 参数1 参数2 参数3 参数4
参数1 IDX(QF触发标签编号)
参数2 UID(某玩家UID,0 = 系统触发)
参数3 传递的字符串1(字符串)
参数4 传递的字符串2(字符串)

注:参数2=<$USERID>时触发本服QF//KFSYSCALLX        (X=参数1ID)
注:参数2=0时为系统触发一次本服QF//G_KFSYSCALLX     (X=参数1ID)
注:返回参数传递的字符串1:<$PARAM1>传递的字符串2:<$PARAM2>

;//指定玩家触发示例
[@支持跨服QF/Qm执行命令]
#ACT
KFBACKCALL 32 <$USERID> 测试字符串1 测试字符串2

;//该<$USERID>玩家触发
[@KFSYSCALL32]
#IF
#ACT
SendMsg 0 本服通知跨服<$PARAM1>=测试字符串1----------- <$PARAM2>=测试字符串2

;//指定系统触发示例
[@支持跨服QF/Qm执行命令]
#ACT
KFBACKCALL 33 0 测试字符串1 测试字符串2

;//本服QF触发一次
[@KFSYSCALL33]
#IF
#ACT
SendMsg 0 本服通知跨服<$PARAM1>=测试字符串1----------- <$PARAM2>=测试字符串2