#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#
|
##@package E:/GameSVN/U3DGame/ProjectSServer/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBLogic.py
|
# @todo:
|
#
|
# @author: Alee
|
# @date 2017-10-24 ÏÂÎç08:22:05
|
# @version 1.0
|
#
|
# @note:
|
#
|
#---------------------------------------------------------------------
|
import GameWorld
|
import ChConfig
|
import NPCCommon
|
import FBProcess
|
import IPY_GameWorld
|
import PlayerControl
|
import GameWorldProcess
|
import CrossRealmPlayer
|
import DataRecordPack
|
import IpyGameDataPY
|
import PlayerSuccess
|
import ReadChConfig
|
import PlayerAssist
|
import ShareDefine
|
import PyGameData
|
import FBCommon
|
import GameMap
|
import GameObj
|
|
import random
|
#---------------------------------------------------------------------
|
|
#-----------------------------------------------------------------------
|
#µ¼ÈëËùÓеĸ±±¾Âß¼
|
GameWorld.ImportAll("Script\\GameWorldLogic\\" , "FBProcess")
|
GameWorld.ImportAll("Script\\GameWorldLogic\\" , "")
|
#---------------------------------------------------------------------
|
## ÖØÐ¶ÁÈ¡ËùÓи±±¾
|
# @param µ±Ç°Ê±¼ä
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def ReloadFBLogic(tick):
|
scriptPath = ChConfig.GetAppPath() + "Script\\GameWorldLogic\\FBProcess"
|
GameWorld.ReloadScript(scriptPath, "FBProcess")
|
|
scriptPath = ChConfig.GetAppPath() + "Script\\GameWorldLogic"
|
GameWorld.ReloadScript(scriptPath, "")
|
return
|
#-----------------------------------------------------------------------
|
|
## Íæ¼ÒµÇ¼ , ¿ªÆô¸±±¾
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def OnOpenFB(tick):
|
#--------¸±±¾³õʼ»¯
|
__DoLogic_FBInit(tick)
|
|
#----------------Íæ¼ÒÂß¼´¦Àí
|
curPlayer = GameWorld.GetMapCopyPlayerManager().GetPlayerByIndex(0)
|
#----------------³õʼ»¯¸±±¾ , Çå¿Õ´ø¹ýÀ´µÄNPC
|
if curPlayer != None:
|
gameNPC = GameWorld.GetNPCManager()
|
for i in range(gameNPC.GetCustomNPCRefreshCount()):
|
npcRefresh = gameNPC.GetCustomNPCRefreshAt(i)
|
funcName = "NPCRefreshInit_%d" % npcRefresh.GetRefreshMark()
|
if globals().has_key(funcName):
|
globals()[funcName](curPlayer, npcRefresh, tick)
|
|
curPlayer.ClearChangeMapTakeCreateNPC()
|
|
#---------------µ÷Óø±±¾£º¿ªÆô´¥·¢Æ÷
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
#¿ªÆô¸±±¾´¥·¢
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnOpenFB"))
|
|
if callFunc:
|
callFunc(tick)
|
|
return
|
|
## ¸±±¾³õʼ»¯
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def __DoLogic_FBInit(tick):
|
#-------------------Çå¿Õ×ÖµäÐÅÏ¢
|
gameFB = GameWorld.GetGameFB()
|
gameFB.ClearGameFBDict()
|
gameFB.ClearAllPlayerGameFBDict()
|
#-------------------Çå¿Õ¸±±¾×Ô¶¨ÒåˢеĹÖÎï
|
gameNPC = GameWorld.GetNPCManager()
|
|
for i in range(gameNPC.GetCustomNPCRefreshCount()):
|
npcRefresh = gameNPC.GetCustomNPCRefreshAt(i)
|
#½«Éæ¼°µ½C++ÖÐÁбíɾ³ýµÄ¹¦ÄÜ,ͳһ¸Ä³É -> ¸´ÖÆPyÁбíºó,È»ºó½øÐÐɾ³ýÂß¼ (ÒòWhileÓм¸Âʽ«µ¼ÖÂËÀËø)
|
npc_List = []
|
for index in range(npcRefresh.GetCount()):
|
curNPC = npcRefresh.GetAt(index)
|
npc_List.append(curNPC)
|
|
for npc in npc_List:
|
NPCCommon.SetDeadEx(npc)
|
|
#------------------¸´»îËùÓи±±¾¹Ì¶¨µÄNPC
|
for i in range(gameNPC.GetNormalNPCCount()):
|
curNPC = gameNPC.GetNormalNPCAt(i)
|
__CheckRebornNPC(curNPC, tick)
|
|
#¸´»îËùÓеÄboss
|
for i in range(gameNPC.GetBossCount()):
|
curNPC = gameNPC.GetBossAt(i)
|
__CheckRebornNPC(curNPC, tick)
|
|
#------------------Çå¿ÕËùÓеذåÎïÆ·
|
#½«Éæ¼°µ½C++ÖÐÁбíɾ³ýµÄ¹¦ÄÜ,ͳһ¸Ä³É -> ¸´ÖÆPyÁбíºó,È»ºó½øÐÐɾ³ýÂß¼ (ÒòWhileÓм¸Âʽ«µ¼ÖÂËÀËø)
|
mapItem_List = []
|
mapItemManager = GameWorld.GetMapItemManager()
|
for index in range(mapItemManager.GetMapItemCount()):
|
curMapItem = mapItemManager.GetMapItemByIndex(index)
|
mapItem_List.append(curMapItem)
|
|
for mapItem in mapItem_List:
|
#ÎÞ´ËÎïÆ·
|
if not mapItem or mapItem.IsEmpty():
|
continue
|
|
mapItem.Disappear()
|
|
return
|
#-----------------------------------------------------------------------
|
## NPCˢеã³õʼ»¯
|
# @param curPlayer Íæ¼Ò
|
# @param npcRefresh IPY_CustomNPCRefresh
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def NPCRefreshInit_2(curPlayer, npcRefresh, tick):
|
if npcRefresh.GetCount() != 0:
|
#»¹ÓйÖ
|
#GameWorld.Log('»¹ÓйÖ,²»Ë¢Ð %s'%npcRefresh.GetAt(0).GetName())
|
return
|
#ÕÒµ½Íæ¼Ò´ø¹ýÀ´µÄNPC, ´´½¨Ëü
|
for i in range(curPlayer.GetChangeMapTakeNPCCount()):
|
curNPCID = curPlayer.GetChangeMapTakeNPCIDByIndex(i)
|
curNPCCount = curPlayer.GetChangeMapTakeNPCCountByIndex(i)
|
npcRefresh.Refresh(curNPCID, ChConfig.Def_NormalNPCAngryCount, curNPCCount)
|
|
return
|
#---------------------------------------------------------------------
|
## Íæ¼ÒÈ«²¿À뿪,¹Ø±Õ¸±±¾
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def OnCloseFB(tick):
|
#¹Ø±Õ¸±±¾´¥·¢
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnCloseFB"))
|
|
if callFunc:
|
callFunc(tick)
|
|
#Íæ¼Ò¶¼À뿪ÁË
|
GameWorld.Log("mapID = %s OnCloseFB" % (GameWorld.GetMap().GetMapID()))
|
return
|
|
#----------------------------------------------------------------------
|
## ¼ì²éNPCÖØÉú
|
# @param curNPC µ±Ç°NPC
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def __CheckRebornNPC(curNPC, tick):
|
#»î×ÅÖØÖÃ״̬
|
if curNPC.IsAlive() and GameObj.GetHP(curNPC) > 0:
|
__DoLogic_NPCAlive(curNPC)
|
return
|
#ËÀÍöÖØÉú
|
npcControl = NPCCommon.NPCControl(curNPC)
|
npcControl.DoNPCReborn(tick)
|
return
|
|
## ¶Ô»î×ŵÄNPCÖ´ÐÐһЩ²Ù×÷
|
# @param curNPC
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def __DoLogic_NPCAlive(curNPC):
|
npcControl = NPCCommon.NPCControl(curNPC)
|
#------ÏÈÖØÖÃÊôÐÔ
|
npcControl.ResetNPC_Init()
|
|
#------¼ì²éNPCѪÁ¿ÊÇ·ñÂúѪ£¬²»ÎªÂúѪ£¬ÉèÖÃÂúѪ
|
curNPCMaxHP = GameObj.GetMaxHP(curNPC)
|
|
if GameObj.GetHP(curNPC) != curNPCMaxHP :
|
GameObj.SetHP(curNPC, curNPCMaxHP)
|
|
#·µ»ØÖµ£¬ÎÞÒâÒå
|
return
|
|
#----------------------------------------------------------------------
|
## ³õʼ»¯¸±±¾
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def OnInit(tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoFBInit"))
|
|
if callFunc:
|
#GameWorld.Log("¸±±¾Âß¼²»¿ÉʹÓà GameLogic_%d"%(mapID))
|
callFunc(tick)
|
|
return
|
|
#---------------------------------------------------------------------
|
## ÈÎÎñרÓÃ,´¥·¢Ê¼þ£¨¸±±¾ÄÚɱ¹Ö£©
|
# @param curPlayer µ±Ç°É±¹ÖÕß
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def DoFBOnKill_NPC(curPlayer , tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoFBOnKill_NPC"))
|
|
if callFunc:
|
#GameWorld.Log("¸±±¾Âß¼²»¿ÉʹÓà GameLogic_%d"%(mapID))
|
callFunc(curPlayer , tick)
|
|
return
|
|
|
## ÈÎÎñרÓÃ,´¥·¢Ê¼þ£¨¸±±¾ÄÚÍê³ÉijÈÎÎñ£©
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @param isAchieve ÊÇ·ñÍê³ÉÈÎÎñ
|
# @return None
|
def DoFB_OnAchieveTask(curPlayer, isAchieve):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoFB_OnAchieveTask"))
|
|
if callFunc:
|
#GameWorld.Log("¸±±¾Âß¼²»¿ÉʹÓà GameLogic_%d"%(mapID))
|
callFunc(curPlayer, isAchieve)
|
|
return
|
|
## ÈÎÎñרÓÃ,´¥·¢Ê¼þ£¨¸±±¾ÄÚÍê³ÉÅÜ»·ÈÎÎñ£©
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @param isAchieve ÊÇ·ñÍê³ÉÈÎÎñ
|
# @return None
|
def DoFB_OnFinishRunAroundTask(curPlayer, curMissionID, exp=0, moneyDict={}, itemList=[]):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoFB_OnFinishRunAroundTask"))
|
|
if callFunc:
|
#GameWorld.Log("¸±±¾Âß¼²»¿ÉʹÓà GameLogic_%d"%(mapID))
|
callFunc(curPlayer, curMissionID, exp, moneyDict, itemList)
|
|
return
|
|
|
#---------------------------------------------------------------------
|
## Íæ¼ÒɱËÀNPC,Çø±ð£¨ÉÏÃæµÄ£©ÈÎÎñÂß¼
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param curNPC ±»É±µÄNPC
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def DoFB_Player_KillNPC(curPlayer , curNPC , tick):
|
mapID = PlayerControl.GetCustomMapID(curPlayer)
|
lineID = PlayerControl.GetCustomLineID(curPlayer)
|
if mapID:
|
DoCustomScene_Player_KillNPC(curPlayer, curNPC, mapID, lineID)
|
return
|
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoFB_Player_KillNPC"))
|
|
if callFunc:
|
#GameWorld.Log("¸±±¾Âß¼²»¿ÉʹÓà GameLogic_%d"%(mapID))
|
callFunc(curPlayer , curNPC , tick)
|
|
return
|
|
## ¸±±¾NPC×Ô±¬
|
def DoFB_NPCSelfDestruction(curNPC, tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoFB_NPCSelfDestruction"))
|
|
if callFunc:
|
#GameWorld.Log("¸±±¾Âß¼²»¿ÉʹÓà GameLogic_%d"%(mapID))
|
callFunc(curNPC, tick)
|
|
return
|
|
## »÷ɱnpcµôÂä¹éÊô
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param curNPC ±»É±µÄNPC
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def DoFB_DropOwner(curPlayer , curNPC):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoFB_DropOwner"))
|
|
if callFunc:
|
#GameWorld.Log("¸±±¾Âß¼²»¿ÉʹÓà GameLogic_%d"%(mapID))
|
callFunc(curPlayer , curNPC)
|
|
return
|
|
def GetFBEveryoneDropInfo(curNPC):
|
## »ñÈ¡¸±±¾Ã¿È˵ôÂäÉèÖÃÐÅÏ¢
|
# @return: None or [ownerPlayerList, isOnlySelfSee]
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "GetFBEveryoneDropInfo"))
|
|
if callFunc:
|
return callFunc(curNPC)
|
|
return
|
|
## NpcɱËÀNPC,
|
# @param attacker£º¹¥»÷·½:NPC
|
# @param defender£º±»É±µÄNPC
|
# @param tick£ºµ±Ç°Ê±¼ä
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def DoFB_Npc_KillNPC(attacker, defender, tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoFB_Npc_KillNPC"))
|
|
if callFunc:
|
callFunc(attacker, defender, tick)
|
|
return
|
|
## ¸±±¾ÖÐNPCËÀÍö(±»»÷ɱ»òÕßʱ¼äµ½µÈ)
|
# @param curNPC
|
# @return None.
|
def DoFB_NPCDead(curNPC):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoFB_NPCDead"))
|
|
if callFunc:
|
callFunc(curNPC)
|
|
return
|
#---------------------------------------------------------------------
|
## ÈÎÎñרÓÃ,´¥·¢Ê¼þ£¨¸±±¾ÄÚɱÈË£©
|
# @param curPlayer ɱÈËÕß
|
# @param defender ±»É±Õß
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def DoFBOnKill_Player(curPlayer, defender, tick):
|
mapID = PlayerControl.GetCustomMapID(curPlayer)
|
if not mapID:
|
mapID = GameWorld.GetMap().GetMapID()
|
do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoFBOnKill_Player"))
|
|
if callFunc:
|
#GameWorld.Log("¸±±¾Âß¼²»¿ÉʹÓà GameLogic_%d"%(mapID))
|
return callFunc(curPlayer, defender, tick)
|
|
return
|
|
def DoFBOnNPCKill_Player(curNPC, curPlayer, tick):
|
## ¸±±¾ÄÚNPCɱÈË
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoFBOnNPCKill_Player"))
|
|
if callFunc:
|
#GameWorld.Log("¸±±¾Âß¼²»¿ÉʹÓà GameLogic_%d"%(mapID))
|
return callFunc(curNPC, curPlayer, tick)
|
return
|
#---------------------------------------------------------------------
|
## ÈÎÎñרÓÃ,´¥·¢Ê¼þ£¨¸±±¾ÄÚ¹¥»÷ÈË£©
|
# @param curPlayer ¹¥»÷Õß
|
# @param defender ±»¹¥»÷Õß
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def DoFBOnHit_Player(curPlayer, defender, tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoFBOnHit_Player"))
|
|
if callFunc:
|
#GameWorld.Log("¸±±¾Âß¼²»¿ÉʹÓà GameLogic_%d"%(mapID))
|
return callFunc(curPlayer, defender, tick)
|
|
return
|
#---------------------------------------------------------------------
|
## Íæ¼Ò¹¥»÷Íæ¼Ò,Çø±ð£¨ÉÏÃæµÄ£©ÈÎÎñÂß¼
|
# @param curPlayer ¹¥»÷Õß
|
# @param defender ±»¹¥»÷Õß
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def DoFB_Player_HitNPC(curPlayer, defender, tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoFB_Player_HitNPC"))
|
|
if callFunc:
|
#GameWorld.Log("¸±±¾Âß¼²»¿ÉʹÓà GameLogic_%d"%(mapID))
|
return callFunc(curPlayer, defender, tick)
|
|
return
|
#---------------------------------------------------------------------
|
## ¸±±¾ÄÚÖØÉú
|
# @param curPlayer ÖØÉúµÄÍæ¼Ò
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def DoFBOnReborn(curPlayer, rebornType, tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoFBOnReborn"))
|
|
if callFunc:
|
#GameWorld.Log("¸±±¾Âß¼²»¿ÉʹÓà GameLogic_%d"%(mapID))
|
callFunc(curPlayer, rebornType, tick)
|
|
return
|
#---------------------------------------------------------------------
|
## »ñµÃ¸±±¾µ±Ç°ÐÅÏ¢
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def DoGetFBState(curPlayer, tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoGetFBState"))
|
|
if callFunc:
|
#GameWorld.Log("¸±±¾Âß¼²»¿ÉʹÓà GameLogic_%d"%(mapID))
|
return callFunc(curPlayer, tick)
|
|
return
|
#---------------------------------------------------------------------
|
## »ñµÃ¸±±¾°ïÖú
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def DoFBHelp(curPlayer , tick):
|
if GameWorld.GetGameWorld().GetOpenState() != IPY_GameWorld.fbosOpen:
|
return
|
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoFBHelp"))
|
|
if callFunc:
|
#GameWorld.Log("¸±±¾Âß¼²»¿ÉʹÓà GameLogic_%d"%(mapID))
|
return callFunc(curPlayer, tick)
|
|
return
|
#---------------------------------------------------------------------
|
# NPC¸´»î֪ͨ¸±±¾
|
def OnNPCRebornInFB(curNPC):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnNPCRebornInFB"))
|
|
if callFunc == None:
|
return True
|
|
return callFunc(curNPC)
|
|
## ÅжÏÄÜ·ñº°»°
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def OnCanTalk(curPlayer , tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnCanTalk"))
|
|
if callFunc == None:
|
return True
|
|
return callFunc(curPlayer , tick)
|
#---------------------------------------------------------------------
|
## Ö´ÐнøÈ븱±¾Âß¼
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def DoEnterFBLogic(curPlayer, tick):
|
curPlayerID = curPlayer.GetID()
|
|
if GameWorld.IsCrossServer():
|
mapID = GameWorld.GetMap().GetMapID()
|
mapID = FBCommon.GetRecordMapID(mapID)
|
gameWorld = GameWorld.GetGameWorld()
|
copyMapID = gameWorld.GetCopyMapID()
|
dataDict = {"PlayerID":curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), "AccID":curPlayer.GetAccID(),
|
"recordMapID":mapID, "mapID":GameWorld.GetMap().GetMapID(), "realMapID":gameWorld.GetRealMapID(), "copyMapID":copyMapID}
|
if mapID in ChConfig.Def_CrossDynamicLineMap:
|
fbZoneID = FBCommon.GetCrossDynamicLineMapZoneID()
|
fbFuncLineID = FBCommon.GetCrossDynamicLineMapFuncLineID()
|
playerZoneID = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_ReqCrossFBZoneID)
|
playerFuncLineID = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_ReqCrossFBFuncLine)
|
# ¿ç·þÅÅλ·ÖÇøÓëÍæ¼Ò·ÖÇø¿ÉÄܲ»Ò»Ñù
|
if (fbZoneID != playerZoneID or fbFuncLineID != playerFuncLineID) and mapID not in [ChConfig.Def_FBMapID_CrossChampionship]:
|
GameWorld.ErrLog("DoEnterFB Íæ¼ÒÓ뵱ǰ¸±±¾Ïß·ËùÊô·ÖÇø»ò¹¦ÄÜ·ÖÏß²»Í¬£¬Ìß³öÍæ¼Ò£¡fbZoneID=%s,playerZoneID=%s,fbFuncLineID=%s,playerFuncLineID=%s"
|
% (fbZoneID, playerZoneID, fbFuncLineID, playerFuncLineID), curPlayerID)
|
CrossRealmPlayer.PlayerExitCrossServer(curPlayer)
|
dataDict.update({"Error":"zoneLineIDError"})
|
DataRecordPack.SendEventPack("CrossFBEnter", dataDict, curPlayer)
|
return
|
GameWorld.Log("Íæ¼Ò½øÈë¿ç·þ¸±±¾¶¯Ì¬·ÖÅäµÄÏß·: fbZoneID=%s,playerZoneID=%s,fbFuncLineID=%s,playerFuncLineID=%s"
|
% (fbZoneID, playerZoneID, fbFuncLineID, playerFuncLineID), curPlayerID)
|
dataDict.update({"fbZoneID":fbZoneID, "fbFuncLineID":fbFuncLineID, "playerZoneID":playerZoneID, "playerFuncLineID":playerFuncLineID})
|
|
if copyMapID not in PyGameData.g_crossPlayerServerGroupIDInfo:
|
PyGameData.g_crossPlayerServerGroupIDInfo[copyMapID] = {}
|
playerServerGroupIDDict = PyGameData.g_crossPlayerServerGroupIDInfo[copyMapID]
|
playerServerGroupIDDict[curPlayerID] = PlayerControl.GetPlayerServerGroupID(curPlayer)
|
DataRecordPack.SendEventPack("CrossFBEnter", dataDict, curPlayer)
|
|
# ×ÔÉìËõ¸±±¾¸ù¾ÝÍæ¼Ò½øÈ뿪Æô£¬Ö÷¶¯µ÷ÓÃÒ»´Î£¬±ÜÃâ¼ä¸ôµ÷ÓÃʱ»úδ´¥·¢µ¼ÖÂÂß¼´íÂÒ
|
GameWorldProcess.EnterOpenFB(tick)
|
|
#---֪ͨµØÍ¼À뿪µ¹¼ÆÊ±---
|
Sync_LeaveMapTick(curPlayer, tick)
|
|
#---Ö´ÐеØÍ¼OnEnterFBÂß¼---
|
gameMap = GameWorld.GetMap()
|
gameMapID = gameMap.GetMapID()
|
|
reqFuncLineID = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_ReqFBFuncLine)
|
PlayerControl.SetFBFuncLineID(curPlayer, reqFuncLineID)
|
|
#³É³¤NPCËùÐèÊý¾Ý³õʼ»¯
|
InitFBNPCStrengthenData(curPlayer, gameMap)
|
|
PlayerAssist.OnPlayerEnterAssistFB(curPlayer, gameMapID, reqFuncLineID)
|
DoEnterFB(curPlayer, tick)
|
|
RecordFirstEnterMap(curPlayer, gameMapID)
|
#---ÒÔÏÂÂ߼Ϊ¸±±¾×¨ÓÃÂß¼---
|
if gameMap.GetMapFBType() == IPY_GameWorld.fbtNull:
|
return
|
|
#½øÈ븱±¾Ä¬ÈÏ»ØÂúѪ
|
if GameObj.GetHP(curPlayer) < GameObj.GetMaxHP(curPlayer):
|
GameObj.SetHPFull(curPlayer)
|
|
#¸±±¾¹ÜÀíÆ÷
|
gameFBMgr = GameWorld.GetGameFB()
|
|
if gameMap.GetMapFBType() == IPY_GameWorld.fbtSingle:
|
gameFBMgr.SetGameFBDict(ChConfig.Def_FB_SingleFBPlayerID, curPlayerID)
|
|
#×¢²áÍæ¼ÒÀ뿪¸±±¾Ê±¼ä
|
gameFBMgr.SetPlayerLogoffTick(0)
|
|
PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_FeastRedPack_EnterMap, 1, [gameMapID])
|
|
if gameFBMgr.HaveFBPlayer(curPlayerID):
|
#ÒѾע²áÁËÕâ¸öÍæ¼Ò, ²»Çå³ýÒÑ×¢²áµÄÍæ¼ÒµÄ×ÖµäÐÅÏ¢
|
return
|
|
#×¢²á½øÈëÕâ¸ö¸±±¾µÄÍæ¼Ò
|
gameFBMgr.AddFBPlayer(curPlayerID)
|
|
return
|
|
def DoEnterFB(curPlayer, tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoEnterFB"))
|
|
if callFunc != None:
|
GameWorld.Log("DoEnterFBLogic...", curPlayer.GetPlayerID())
|
callFunc(curPlayer, tick)
|
#¿Û·ÑÒ»°ã¶¼ÊÇÔÚ½øÈ븱±¾Âß¼Àï´¦Àí£¬Ãâ·ÑÖ»ÓÐÒ»´ÎÐԵģ¬ËùÒÔ·ÅÔÚºóÃæ½øÐÐÖØÖ㬷ÀÖ¹Ò»Ö±Ãâ·Ñ
|
if curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_EnterFBFree):
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_EnterFBFree, 0)
|
return
|
|
def OnCallHelpBattleOK(curPlayer, tick):
|
## ÕÙ»½ÖúÕ½Íê³É
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnCallHelpBattleOK"))
|
|
if callFunc != None:
|
GameWorld.Log("OnCallHelpBattleOK...", curPlayer.GetPlayerID())
|
callFunc(curPlayer, tick)
|
|
return
|
|
def InitFBNPCStrengthenData(curPlayer, gameMap):
|
#¸±±¾NPC³É³¤Ïà¹ØÊý¾ÝÔÚ DoEnterFB ֮ǰ³õʼ»¯
|
gameFB = GameWorld.GetGameFB()
|
playerID = curPlayer.GetPlayerID()
|
|
if gameMap.GetMapFBType() == IPY_GameWorld.fbtSingle:
|
if not gameFB.GetGameFBDictByKey(ChConfig.Def_FB_NPCStrengthenMaxLV):
|
gameFB.SetGameFBDict(ChConfig.Def_FB_NPCStrengthenAverageLV, curPlayer.GetLV())
|
gameFB.SetGameFBDict(ChConfig.Def_FB_NPCStrengthenMaxLV, curPlayer.GetLV())
|
gameFB.SetGameFBDict(ChConfig.Def_FB_NPCStrengthenPlayerCnt, 1)
|
GameWorld.Log("¸±±¾³É³¤NPCµÈ¼¶: %s" % curPlayer.GetLV(), playerID)
|
|
elif gameMap.GetMapFBType() == IPY_GameWorld.fbtTeam:
|
if not FBCommon.UpdFBLineNPCStrengthenLV(playerID, False):
|
if not gameFB.GetGameFBDictByKey(ChConfig.Def_FB_NPCStrengthenAverageLV):
|
fbAverageLV = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_TeamFBAverageLV)
|
if not fbAverageLV:
|
fbAverageLV = curPlayer.GetLV()
|
gameFB.SetGameFBDict(ChConfig.Def_FB_NPCStrengthenAverageLV, fbAverageLV)
|
GameWorld.Log("¸±±¾³É³¤NPCƽ¾ùµÈ¼¶: %s" % fbAverageLV, playerID)
|
|
if not gameFB.GetGameFBDictByKey(ChConfig.Def_FB_NPCStrengthenMaxLV):
|
fbMaxLV = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_TeamFBMaxLV)
|
if not fbMaxLV:
|
fbMaxLV = curPlayer.GetLV()
|
gameFB.SetGameFBDict(ChConfig.Def_FB_NPCStrengthenMaxLV, fbMaxLV)
|
GameWorld.Log("¸±±¾³É³¤NPC×î´óµÈ¼¶: %s" % fbMaxLV, playerID)
|
|
if not FBCommon.UpdFBLineNPCStrengthenPlayerCnt(playerID, False):
|
if not gameFB.GetGameFBDictByKey(ChConfig.Def_FB_NPCStrengthenPlayerCnt):
|
fbPlayerCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_TeamFBPlayerCnt)
|
if not fbPlayerCnt:
|
fbPlayerCnt = 1
|
gameFB.SetGameFBDict(ChConfig.Def_FB_NPCStrengthenPlayerCnt, fbPlayerCnt)
|
GameWorld.Log("¸±±¾³É³¤NPCÍæ¼ÒÈËÊý: %s" % fbPlayerCnt, playerID)
|
|
if not gameFB.GetGameFBDictByKey(ChConfig.Def_FB_TeamPlayerCount):
|
fbPlayerCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_TeamFBPlayerCnt)
|
gameFB.SetGameFBDict(ChConfig.Def_FB_TeamPlayerCount, fbPlayerCnt)
|
|
# Íæ¼ÒÉíÉÏ´øµÄÕâÈý¸öÖµÎÞÂÛʲôÇé¿ö£¬Ö»ÒªÒ»½ø×é¶Ó¸±±¾£¬²»¹ÜÓÐûÓÐÓõ½£¬ÓÐûÓÐÖµ£¬¾ùÖ±½ÓÖØÖ㬷ÀÖ¹Ó°Ïìµ½ÏÂÒ»´ÎµÄÂß¼
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_TeamFBAverageLV, 0)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_TeamFBMaxLV, 0)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_TeamFBPlayerCnt, 0)
|
|
else:
|
FBCommon.UpdFBLineNPCStrengthenLV(playerID, False)
|
FBCommon.UpdFBLineNPCStrengthenPlayerCnt(playerID, False)
|
|
return
|
|
def RecordFirstEnterMap(curPlayer, mapID):
|
#¼Ç¼²ÎÓë¹ý¸±±¾
|
needRecordMapIDList = ReadChConfig.GetEvalChConfig("MapID_FirstEnterRecord")
|
recordMapID = FBCommon.GetRecordMapID(mapID)
|
if recordMapID in needRecordMapIDList:
|
index = needRecordMapIDList.index(recordMapID)
|
curRecord = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FBFirstEnterRecord)
|
if not curRecord&pow(2, index):
|
updRecord = curRecord|pow(2, index)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FBFirstEnterRecord, updRecord)
|
return
|
|
def GetHadEnterFB(curPlayer, mapID):
|
#ÊÇ·ñ½øÈë¹ý¸Ã¸±±¾
|
needRecordMapIDList = ReadChConfig.GetEvalChConfig("MapID_FirstEnterRecord")
|
recordMapID = FBCommon.GetRecordMapID(mapID)
|
if recordMapID not in needRecordMapIDList:
|
return False
|
index = needRecordMapIDList.index(recordMapID)
|
curRecord = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FBFirstEnterRecord)
|
return curRecord&pow(2, index)
|
|
#---------------------------------------------------------------------
|
##Í¨ÖªÍæ¼ÒµØÍ¼À뿪µ¹¼ÆÊ±.
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @param tick ʱ¼ä´Á
|
# @return ·µ»ØÖµÎÞÒâÒå
|
# @remarks Í¨ÖªÍæ¼ÒµØÍ¼À뿪µ¹¼ÆÊ±
|
def Sync_LeaveMapTick(curPlayer, tick):
|
gameMap = GameWorld.GetMap()
|
gameMapID = gameMap.GetMapID()
|
#¸±±¾²ß»®Ìî±í³ÖÐøÊ±¼ä
|
mapExistTime = gameMap.GetExistTime()
|
|
#ÊÇ·ñ֪ͨ¸±±¾À뿪µ¹¼ÆÊ±
|
if mapExistTime == 0 or (gameMap.GetMapFBType() in ChConfig.Def_FBNoShowLeaveTime) \
|
or (gameMapID not in ChConfig.Def_FBShowLeaveMapTick_MapID):
|
return
|
|
existTime = mapExistTime - (tick - GameWorld.GetGameWorld().GetOpenFBTick())
|
|
if existTime <= 0:
|
#20090427, Íæ¼ÒÓпÉÄÜÔÚµØÍ¼openTickÉèÖÃǰµÇ¼,֪ͨµ¹¼ÆÊ±¾ÍΪ¸±±¾³ÖÐøÊ±¼ä
|
existTime = mapExistTime
|
|
#֪ͨÀ뿪¸±±¾µ¹¼ÆÊ±
|
GameWorld.Log("Íæ¼Ò = %sµÇ½µØÍ¼£¬Í¨ÖªÍæ¼ÒÀ뿪µØÍ¼µ¹¼ÆÊ± = %s" % (curPlayer.GetName(), existTime), curPlayer.GetID())
|
|
curPlayer.Sync_TimeTick(IPY_GameWorld.tttLeaveMap, 0, existTime, True)
|
return
|
#------------------------------------------------------------------------
|
## ¸±±¾³¬Ê±Âß¼
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def DoFBTimeOut(tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoFBTimeOut"))
|
|
if callFunc:
|
#GameWorld.Log("¸±±¾Âß¼²»¿ÉʹÓà GameLogic_%d"%(mapID))
|
callFunc(tick)
|
|
return
|
#---------------------------------------------------------------------
|
## Íæ¼ÒÀ뿪ʱ£¬ÉèÖÃÍæ¼ÒÀ뿪µÄʱ¼ä
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def __PlayerLeaveSetPlayerLogoffTick(curPlayer, tick):
|
#Èç¹ûÊÇ×îºóÒ»¸öÈËÀ뿪¸±±¾, ÄÇôÉèÖø±±¾µÄÀ뿪ʱ¼ä, 5·ÖÖӺ󸱱¾¹Ø±Õ
|
gameMap = GameWorld.GetMap()
|
if gameMap.GetMapFBType() == 0:
|
return
|
gameWorld = GameWorld.GetGameWorld()
|
playerManager = gameWorld.GetMapCopyPlayerManager()
|
playerCount = playerManager.GetPlayerCount()
|
if playerCount != 1:
|
return
|
|
GameWorld.GetGameFB().SetPlayerLogoffTick(tick)
|
|
## Ö´ÐÐÍ˳ö¸±±¾Âß¼
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def DoExitFBLogic(curPlayer, tick):
|
if GameWorld.IsCrossServer():
|
mapID = GameWorld.GetMap().GetMapID()
|
mapID = FBCommon.GetRecordMapID(mapID)
|
gameWorld = GameWorld.GetGameWorld()
|
copyMapID = gameWorld.GetCopyMapID()
|
dataDict = {"PlayerID":curPlayer.GetPlayerID(), "PlayerName":curPlayer.GetPlayerName(), "AccID":curPlayer.GetAccID(),
|
"recordMapID":mapID, "mapID":GameWorld.GetMap().GetMapID(), "realMapID":gameWorld.GetRealMapID(), "copyMapID":copyMapID}
|
if mapID in ChConfig.Def_CrossDynamicLineMap:
|
fbZoneID = FBCommon.GetCrossDynamicLineMapZoneID()
|
fbFuncLineID = FBCommon.GetCrossDynamicLineMapFuncLineID()
|
playerZoneID = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_ReqCrossFBZoneID)
|
playerFuncLineID = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_ReqCrossFBFuncLine)
|
dataDict.update({"fbZoneID":fbZoneID, "fbFuncLineID":fbFuncLineID, "playerZoneID":playerZoneID, "playerFuncLineID":playerFuncLineID})
|
if curPlayer.GetFaction():
|
dataDict["Faction"] = curPlayer.GetFaction()
|
DataRecordPack.SendEventPack("CrossFBExit", dataDict, curPlayer)
|
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoExitFB"))
|
|
if callFunc:
|
#GameWorld.Log("¸±±¾Âß¼²»¿ÉʹÓà GameLogic_%d"%(mapID))
|
callFunc(curPlayer , tick)
|
|
#Èç¹ûÊÇ×îºóÒ»¸öÈËÀ뿪¸±±¾, ÄÇôÉèÖø±±¾µÄÀ뿪ʱ¼ä, 5·ÖÖӺ󸱱¾¹Ø±Õ
|
__PlayerLeaveSetPlayerLogoffTick(curPlayer, tick)
|
return
|
|
## Íæ¼ÒÖ÷¶¯Í˳öFB,ÏÈ´¦ÀíFBÏà¹ØÐÅÏ¢£¬ÔÙÈÃÍæ¼ÒÍ˳ö
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param tick µ±Ç°Ê±¼ä
|
# @return True or False
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def DoPlayerLeaveFB(curPlayer, tick):
|
# Ö»Íæ¼ÒÖ÷¶¯Í˳öʱ²Å´¥·¢¶¯Ì¬Ë¢Ð£¬µôÏß²»Ëã
|
playerID = curPlayer.GetPlayerID()
|
FBCommon.UpdFBLineNPCStrengthenLV(playerID, True)
|
FBCommon.UpdFBLineNPCStrengthenPlayerCnt(playerID, True)
|
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoPlayerLeaveFB"))
|
|
if callFunc == None:
|
return
|
|
#Ö´Ðи±±¾Âß¼
|
return callFunc(curPlayer, tick)
|
|
## Íæ¼ÒÇл»µØÍ¼
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param tick µ±Ç°Ê±¼ä
|
# @return True or False
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def DoPlayerChangeMapLogic(curPlayer, tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoPlayerChangeMapLogic"))
|
|
if callFunc == None:
|
return True
|
|
#Ö´Ðи±±¾Âß¼
|
return callFunc(curPlayer)
|
|
## ѯÎÊÍæ¼ÒÊÇ·ñ¿ÉÒÔÀ뿪¸±±¾
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @return True or False
|
def CanPlayerLeaveFB(curPlayer):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "CanPlayerLeaveFB"))
|
|
if callFunc == None:
|
return True
|
|
#Ö´Ðи±±¾Âß¼
|
return callFunc(curPlayer)
|
|
## ѯÎÊÍæ¼ÒÊÇ·ñÇл»Í¬¸ö¹¦ÄܵØÍ¼µÄ²»Í¬³¡¾°µØÍ¼
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @return True or False
|
def CanChangeSameDataMapFB(curPlayer, mapID, lineID):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "CanChangeSameDataMapFB"))
|
|
if callFunc == None:
|
return False
|
|
#Ö´Ðи±±¾Âß¼
|
return callFunc(curPlayer, mapID, lineID)
|
|
## ÊÇ·ñ¿ÉÒÔ»ñµÃ¸±±¾µØÍ¼ÇøÓò¾Ñé
|
def OnCanGetAreaExp(curPlayer, mapID):
|
do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnCanGetAreaExp"))
|
|
if callFunc == None:
|
return True
|
|
#Ö´Ðи±±¾Âß¼
|
return callFunc(curPlayer)
|
|
## ÊÇ·ñ¿ÉÒÔ¿ªÊ¼ÊÕ¼¯
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param curNPC ÎïÆ·NPC
|
# @param tick µ±Ç°Ê±¼ä
|
# @return True or False
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def OnCanCollect(curPlayer, curNPC, tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnCanCollect"))
|
|
if callFunc == None:
|
#GameWorld.Log("¸±±¾Âß¼²»¿ÉʹÓà GameLogic_%d"%(mapID))
|
return True
|
|
#Ö´Ðи±±¾Âß¼
|
return callFunc(curPlayer, curNPC, tick)
|
|
## ÅжÏÊÇ·ñµ½Ö¸¶¨Ê±¼ä
|
# @param hour Ö¸¶¨µÄhour
|
# @param min Ö¸¶¨µÄmin
|
# @return True or False
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def __CheckTime(hour, min):
|
today = GameWorld.GetCurrentTime()
|
|
if hour == today.hour and min == today.minute:
|
return True
|
|
return False
|
|
## ´Ë¸±±¾ÊÇÖÜÆÚÐÔ¿ªÆôµÄ, ¼ì²éÊÇ·ñÒª¿ªÆô´Ë¸±±¾
|
# @param period Ö¸¶¨µÄvalue ÀàÐÍ
|
# @param value Ö¸¶¨µÄday or Month
|
# @param hour Ö¸¶¨µÄhour
|
# @param minute Ö¸¶¨µÄmin
|
# @return True or False or None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def __CheckOpenFBPeriod(period, value, hour, minute):
|
#´Ë¸±±¾ÊÇÖÜÆÚÐÔ¿ªÆôµÄ, ¼ì²éÊÇ·ñÒª¿ªÆô´Ë¸±±¾
|
# gameMap = GameWorld.GetMap()
|
# period = gameMap.GetPeriod()
|
if period == 0:
|
return
|
|
today = GameWorld.GetCurrentTime()
|
if period == IPY_GameWorld.gmpDay:
|
#ÿÈÕ¿ªÆô
|
pass
|
elif period == IPY_GameWorld.gmpWeek:
|
if today.weekday() + 1 != value:
|
return False
|
elif period == IPY_GameWorld.gmpMonth:
|
if today.day != value:
|
return False
|
|
|
return __CheckTime(hour, minute)
|
|
#==================================================================================
|
## ÅжÏÌØÊâFB£¨Ä³ÔÂijÈÕ²ÅÄÜ¿ª£©ÊÇ·ñ¿ÉÒÔÆô¶¯
|
# @param tick µ±Ç°Ê±¼ä
|
# @return ×Ö·û´® ¡®None¡¯ or ÆäËû
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def OnCanOpen(tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnCanOpen"))
|
|
if callFunc == None:
|
return 'None'
|
|
#Ö´Ðи±±¾Âß¼
|
return callFunc(tick)
|
|
|
## ¶¨Ê±µÄÈë¿Ú
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def OnProcess(tick):
|
gameMap = GameWorld.GetMap()
|
gameWorld = GameWorld.GetGameWorld()
|
do_FBLogic_ID = __GetFBLogic_MapID(gameMap.GetMapID())
|
#---¸±±¾¹Ø±Õ״̬´¦Àí---
|
if gameWorld.GetOpenState() == IPY_GameWorld.fbosClosed:
|
|
if gameWorld.GetFBFirstOpen():
|
#¸±±¾ÒѾÔÚ×¼±¸¿ªÆô״̬ÁË
|
return
|
|
openByTime = OnCanOpen(tick)
|
|
#¸±±¾¿ªÆôʱ¼äÌî±íµÄ¸±±¾
|
if openByTime == 'None':
|
#¸±±¾Ã»ÓпªÆô
|
if not __CheckOpenFBPeriod(gameMap.GetPeriod(), gameMap.GetPeriodValue1(), gameMap.GetPeriodHour1(), gameMap.GetPeriodMinute1()) and \
|
not __CheckOpenFBPeriod(gameMap.GetPeriod(), gameMap.GetPeriodValue2(), gameMap.GetPeriodHour2(), gameMap.GetPeriodMinute2()):
|
return
|
|
#¿ªÆô´Ë¸±±¾
|
gameWorld.SetFBFirstOpen(1)
|
|
#¸±±¾¿ªÆôʱ¼äÌîÔÚ¸±±¾pyÖеĸ±±¾
|
elif openByTime:
|
#¿ªÆô´Ë¸±±¾
|
gameWorld.SetFBFirstOpen(1)
|
|
return
|
|
#---¸±±¾ÆäËû״̬´¦Àí---
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnProcess"))
|
|
if not callFunc:
|
return
|
|
#GameWorld.Log("¸±±¾Âß¼²»¿ÉʹÓà GameLogic_%d"%(mapID))
|
callFunc(tick)
|
return
|
|
def OnCustomSceneProcess(curPlayer, tick):
|
customMapID = PlayerControl.GetCustomMapID(curPlayer)
|
if not customMapID:
|
return
|
customLineID = PlayerControl.GetCustomLineID(curPlayer)
|
do_FBLogic_ID = __GetFBLogic_MapID(customMapID)
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnCustomSceneProcess"))
|
if callFunc:
|
callFunc(curPlayer, customMapID, customLineID, tick)
|
|
return
|
|
## ¿ªÊ¼²É¼¯
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param curNPC µ±Ç°NPC
|
# @return None or False
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def OnBeginCollect(curPlayer, curNPC):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnBeginCollect"))
|
if callFunc:
|
callFunc(curPlayer, curNPC)
|
return
|
|
## Í˳ö²É¼¯
|
def OnExitCollect(curPlayer, curNPC):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnExitCollect"))
|
if callFunc:
|
callFunc(curPlayer, curNPC)
|
return
|
|
## ÊÕ¼¯ÖÐ(¼Ò×åÕ½¸±±¾ÖÐµÄÆåºÍËþ)
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None or False
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def OnCollecting(curPlayer, tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnCollecting"))
|
if callFunc:
|
callFunc(curPlayer, tick)
|
return
|
|
## ÊÕ¼¯³É¹¦(¼Ò×åÕ½¸±±¾ÖÐµÄÆåºÍËþ)
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None or False
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def OnCollectOK(curPlayer, npcID, tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnCollectOK"))
|
|
if callFunc == None:
|
#GameWorld.Log("¸±±¾Âß¼²»¿ÉʹÓà GameLogic_%d"%(mapID))
|
return False
|
|
#Ö´Ðи±±¾Âß¼
|
callFunc(curPlayer, npcID, tick)
|
return
|
|
## Íæ¼ÒÀ뿪¸±±¾
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def GameServer_LeaveFB(curPlayer, tick):
|
if GameWorld.GetMap().GetMapFBType() != IPY_GameWorld.fbtTeam:
|
#²»ÊÇ×é¶Ó¸±±¾, ·µ»Ø
|
return
|
|
isLeave = True
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s"
|
% (do_FBLogic_ID, "IsLeaveFBOnTeamChange"))
|
if callFunc != None:
|
isLeave = callFunc()
|
|
#GameServerÍ¨ÖªÍæ¼ÒÀ뿪¸±±¾
|
#ÕâÀï¿ÉÒÔ¼ÓÉϵ¹¼ÆÊ±Âß¼
|
if isLeave:
|
PlayerControl.PlayerLeaveFB(curPlayer)
|
return
|
|
## Íæ¼ÒÀ뿪¼Ò×帱±¾
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def OnLeaveFamily(curPlayer, tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnLeaveFamily"))
|
|
if callFunc != None:
|
return callFunc(curPlayer, tick)
|
|
if GameWorld.GetMap().GetMapFBType() == IPY_GameWorld.fbtFamily:
|
PlayerControl.PlayerLeaveFB(curPlayer)
|
elif GameWorld.GetMap().GetMapFBType() == IPY_GameWorld.fbtFamilyWar:
|
PlayerControl.PlayerLeaveFB(curPlayer)
|
return
|
|
## ¸±±¾Ã¿ÖÜÂß¼
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None or False
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def OnWeek(tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnWeek"))
|
|
if callFunc == None:
|
return False
|
|
#Ö´Ðи±±¾Âß¼
|
callFunc(tick)
|
return
|
|
## ¸±±¾Ã¿ÈÕÂß¼
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None or False
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def OnDay(tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnDay"))
|
|
if callFunc == None:
|
#GameWorld.Log("¸±±¾Âß¼²»¿ÉʹÓà GameLogic_%d"%(mapID))
|
return False
|
|
#Ö´Ðи±±¾Âß¼
|
callFunc(tick)
|
return
|
|
## ¸±±¾Ã¿ÈÕÂß¼-Íæ¼Ò, ²»¹ÜÍæ¼ÒÊÇ·ñÔڸø±±¾µØÍ¼Öж¼»á´¥·¢
|
def OnFBPlayerOnDay(curPlayer, onDayType):
|
for key, mapIDList in ChConfig.Def_FB_MapID.items():
|
if not mapIDList:
|
continue
|
mapID = mapIDList[0]
|
ipyData = FBCommon.GetFBIpyData(mapID)
|
if ipyData and ipyData.GetDayResetType():
|
if onDayType != ipyData.GetDayResetType():
|
continue
|
elif onDayType != ShareDefine.Def_OnEventTypeEx:
|
continue
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (key, "OnFBPlayerOnDay"))
|
if callFunc:
|
callFunc(curPlayer)
|
return
|
|
## Íæ¼ÒµÇ¼, ²»¹ÜÍæ¼ÒÊÇ·ñÔڸø±±¾µØÍ¼Öж¼»á´¥·¢
|
def OnFBPlayerOnLogin(curPlayer):
|
for key in ChConfig.Def_FB_MapID.keys():
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (key, "OnFBPlayerOnLogin"))
|
if callFunc:
|
callFunc(curPlayer)
|
return
|
|
## ¸±±¾Ã¿Ê±Âß¼
|
# @param time ʱ¼ä
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None or False
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def OnHour(time, tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnHour"))
|
|
if callFunc == None:
|
#GameWorld.Log("¸±±¾Âß¼²»¿ÉʹÓà GameLogic_%d"%(mapID))
|
return False
|
|
#Ö´Ðи±±¾Âß¼
|
callFunc(time, tick)
|
return
|
|
|
#¹ØÏµÓÐ3²ã£¬ÎÞ-ÓѺÃ-µÐÈË
|
## ÅжÏÊÇ·ñÎÞ¹ØÏµ£¬¼´ÊÇ·ñ¿ÉÊÍ·Å(Ôö/¼õ)¼¼ÄÜ»òÆÕ¹¥
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param curTagPlayer Ä¿±êÍæ¼Ò
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def CheckPlayersRelationInFB_IsNone(curPlayer , curTagPlayer):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "CheckPlayersRelation_IsNone"))
|
|
if callFunc == None:
|
#GameWorld.Log("¸±±¾Âß¼²»¿ÉʹÓà GameLogic_%d"%(mapID))
|
return False
|
|
return callFunc(curPlayer , curTagPlayer)
|
|
## ÅжÏÊÇ·ñÓѺùØÏµ£¬¸Ã²ãÅж¨ÎªÓѺÃÂß¼ÖеÄ×îºóÅжÏ
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param curTagPlayer Ä¿±êÍæ¼Ò
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def CheckPlayersRelationInFB_IsFriend(curPlayer , curTagPlayer):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "CheckPlayersRelation_IsFriend"))
|
|
if callFunc == None:
|
#GameWorld.Log("¸±±¾Âß¼²»¿ÉʹÓà GameLogic_%d"%(mapID))
|
return False
|
|
return callFunc(curPlayer , curTagPlayer)
|
|
## ÅжÏÊÇ·ñ¿ÉÒÔ¹¥»÷¶ÓÓÑ
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param curTagPlayer Ä¿±êÍæ¼Ò
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def DoCanAttackTeamer(curPlayer , curTagPlayer):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoCanAttackTeamer"))
|
|
if callFunc == None:
|
#GameWorld.Log("¸±±¾Âß¼²»¿ÉʹÓà GameLogic_%d"%(mapID))
|
return False
|
|
#»ñµÃʱ¼ä
|
return callFunc(curPlayer , curTagPlayer)
|
|
|
#---------------------------------------------------------------------
|
## ÖØÖø´»îµã
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param bornList ÖØÉúµã
|
# @return None or True
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def OnRebornPlace(curPlayer, bornList):
|
mapID = GameWorld.GetMap().GetMapID()
|
do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
|
#ÏÈÉèÖÃĬÈϵĸ±±¾ÖØÉúµã
|
#__SetDefaultBornPlace(curPlayer, bornList, mapID)
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnSetRebornPlace"))
|
|
if callFunc == None:
|
#GameWorld.Log("¸±±¾Âß¼²»¿ÉʹÓà GameLogic_%d"%(mapID))
|
return True
|
|
#»ñµÃʱ¼ä
|
callFunc(curPlayer , bornList)
|
return
|
|
#===============================================================================
|
# ## ÖØÖø´»îµã
|
# # @param curPlayer µ±Ç°Íæ¼Ò
|
# # @param bornList ÖØÉúµã
|
# # @param mapID ÖØÉúµØÍ¼
|
# # @return None
|
# # @remarks º¯ÊýÏêϸ˵Ã÷.
|
# def __SetDefaultBornPlace(curPlayer , bornList , mapID):
|
# gameData = GameWorld.GetGameData()
|
# for i in range(len(bornList)):
|
# bornIndex = bornList[i]
|
# bornRefreshPoint = gameData.GetBornRefreshByIndex(bornIndex)
|
# if GameWorld.IsSameCountry(curPlayer, bornRefreshPoint):
|
# GameWorld.Log("Íæ¼Ò%s,ÉèÖÃĬÈÏÖØÉúµã³É¹¦ mapID = %s-(%s,%s)"%(curPlayer.GetPlayerName(), mapID, bornRefreshPoint.GetPosX(), bornRefreshPoint.GetPosY()) , curPlayer.GetPlayerID())
|
# curPlayer.SetFBRebornMapID(mapID)
|
# curPlayer.SetFBRebornPosX(bornRefreshPoint.GetPosX())
|
# curPlayer.SetFBRebornPosY(bornRefreshPoint.GetPosY())
|
# return
|
#
|
# return
|
#===============================================================================
|
#---------------------------------------------------------------------
|
def GetFBNPCStrengthenAttr(curNPC, isReborn):
|
## »ñÈ¡¸±±¾NPCÖ¸¶¨³É³¤ÊôÐÔ×Öµä
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "GetFBNPCStrengthenAttr"))
|
if not callFunc:
|
return {}
|
|
ret = callFunc(curNPC, isReborn)
|
# ±ØÐë·µ»Ø×Öµä
|
if not isinstance(ret, dict):
|
return {}
|
return ret
|
|
## »ñµÃ¸±±¾LoadIngʱ¼ä
|
# @param Õ¼ÁìÈË
|
# @param ±»Õ¼ÁìµÄNPC
|
# @return ʱ¼ä È磺ChConfig.Def_DigMaxTime
|
# @remarks #¸±±¾ÖÐ,Õ¼ÁìNPCµÄLoadingʱ¼ä
|
def GetFBPrepareTime(curPlayer, curNPC):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "GetFBPrepareTime"))
|
|
if not callFunc:
|
return ChConfig.Def_DigMaxTime
|
|
return callFunc(curPlayer, curNPC)
|
|
## ÌØÊ⸱±¾¼ÓѪ
|
def OnFBAddHP(curPlayer, addHP):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnFBAddHP"))
|
|
if not callFunc:
|
return
|
|
return callFunc(curPlayer, addHP)
|
|
## ÌØÊ⸱±¾µôѪ
|
def OnFBLostHP(curPlayer, lostHP):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnFBLostHP"))
|
|
if not callFunc:
|
return
|
|
return callFunc(curPlayer, lostHP)
|
|
## »ñÈ¡ÌØÊ⸱±¾µ±Ç°ÑªÁ¿
|
def OnGetFBCurHP(curPlayer):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnGetFBCurHP"))
|
|
if not callFunc:
|
return GameObj.GetHP(curPlayer)
|
|
return callFunc(curPlayer)
|
|
#---------------------------------------------------------------------
|
## Íæ¼ÒÖ÷¶¯À뿪¸±±¾
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None or False
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def OnExitEvent(curPlayer, tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnExitEvent"))
|
|
if callFunc == None:
|
#GameWorld.Log("¸±±¾Âß¼²»¿ÉʹÓà GameLogic_%d"%(mapID))
|
return False
|
|
callFunc(curPlayer, tick)
|
return
|
#---------------------------------------------------------------------
|
## Íæ¼Ò¸ÕµÇ½ʱ£¬ÒªÅжÏÍæ¼ÒÊÇ·ñ»¹ÊôÓÚÕâ¸ö¸±±¾
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None or True
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def PlayerLoginInFBCheck(curPlayer, tick):
|
gameMap = GameWorld.GetMap()
|
#Èç¹û´ËµØÍ¼ÊÇ×Ô¶¯ÊͷŵÄ, ÐèÒª¼ì²éÕâ¸öÍæ¼Ò
|
if gameMap.GetMapFBType() in [IPY_GameWorld.fbtNull]:
|
return False
|
|
#¿ç·þ·þÎñÆ÷ÊÇÖ±½Ó×¢²áµÄµØÍ¼IDÊý¾Ý£¬µØÍ¼¿Ï¶¨Ã»ÓиÃÍæ¼Ò£¬ËùÒÔ²»ÅжÏ
|
if GameWorld.IsCrossServer():
|
return False
|
|
#Íæ¼Ò ÔÚ¸±±¾ÖУ¬²¢ÇÒ¸±±¾²»Ìß³öÍæ¼ÒÏÂÏß
|
if GameWorld.GetGameFB().HaveFBPlayer(curPlayer.GetID()):
|
#and gameMap.GetMapID() not in ChConfig.Def_DisconnectExit_FBID:
|
return False
|
|
#¸±±¾Ã»ÓÐÕâ¸öÍæ¼Ò, ÈÃÕâ¸öÍæ¼ÒÀ뿪µØÍ¼
|
PlayerControl.PlayerLeaveFB(curPlayer)
|
return True
|
#---------------------------------------------------------------------
|
## Íæ¼ÒÊÇ·ñ¿ÉÒÔÒÆ¶¯
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param destX ÒÆ¶¯µ½µÄ×ø±êX
|
# @param destY ÒÆ¶¯µ½µÄ×ø±êY
|
# @param tick µ±Ç°Ê±¼ä
|
# @return False or True
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def DoFBCanMove(curPlayer , destX , destY , tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnCanMove"))
|
|
if callFunc == None:
|
return True
|
|
return callFunc(curPlayer, destX , destY , tick)
|
#---------------------------------------------------------------------
|
## ¸±±¾ID
|
# @param mapID ¸±±¾ID
|
# @return mapID
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def __GetFBLogic_MapID(mapID):
|
mapID = FBCommon.GetRecordMapID(mapID)
|
for key, value in ChConfig.Def_FB_MapID.items():
|
if mapID in value:
|
return key
|
|
if mapID in FBCommon.GetGeneralTrainMapIDList():
|
return "GeneralTrain"
|
|
#for key , value in ReadChConfig.GetEvalChConfig("MapID_ProcessPy").items():
|
# if mapID in value:
|
# return key
|
|
return mapID
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
## Åжϸ±±¾ÄÚÊÇ·ñ¿ÉʹÓÃGMÃüÁî
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param inputStr ÃüÁî×Ö·û´®
|
# @param tick µ±Ç°Ê±¼ä
|
# @return True or False
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def OnGMCommand(curPlayer, inputStr, tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnGMCommand"))
|
|
if callFunc == None:
|
return False
|
|
return callFunc(curPlayer, inputStr, tick)
|
|
#===============================================================================
|
## FBÈ«ÆÁÊÓÒ° ¿ÉÄܻᶯ̬µ÷ÓÃÍæ¼ÒÊÓÒ°
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param tick µ±Ç°Ê±¼ä
|
# @return True or False
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def OnPlayerSight(curPlayer, tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnPlayerSight"))
|
|
if callFunc == None:
|
return False
|
|
return callFunc(curPlayer, tick)
|
|
#=================================================================================
|
## FB¸´»î²»¼ÓÐéÈõBUFF´¦Àí
|
# @param ÎÞ
|
# @return True or False
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def OnPlayerReborn():
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnPlayerReborn"))
|
|
if callFunc == None:
|
return False
|
|
return callFunc()
|
|
## Íæ¼Ò¸´»îºó¸±±¾´¦Àí
|
def OnPlayerRebornOver(curPlayer, playerRebornType):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnPlayerRebornOver"))
|
|
if callFunc == None:
|
return False
|
|
return callFunc(curPlayer, playerRebornType)
|
|
## ¿Û³ýÍæ¼ÒFBÃâ·Ñ¸´»î´ÎÊý
|
# @param None
|
# @return ¿ÉÃâ·Ñ¸´»îµÄ´ÎÊý
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def DecFreeRebornCount(curPlayer):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DecFreeRebornCount"))
|
|
if callFunc == None:
|
return False
|
|
return callFunc(curPlayer)
|
|
def OnCanFBReborn(curPlayer, rebornType):
|
## ¸±±¾ÖжîÍâÑéÖ¤ÊÇ·ñ¿ÉÒÔ¸´»î - ½ö¸±±¾ÌØÓи´»îÏÞÖÆÂß¼ÐèÒª´¦Àí£¬ÆäËû¹«¹²¸´»îÂß¼Íâ²ã´¦Àí
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnCanFBReborn"))
|
|
if callFunc == None:
|
return True
|
|
return callFunc(curPlayer, rebornType)
|
|
## Íæ¼Ò¸±±¾ÖØÉúÉèÖÃ×ø±ê
|
# @param rebornPlace ¸´»îλÖÃ
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def OnResetFBRebornPlacePos(curPlayer, rebornPlace, tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnResetFBRebornPlacePos"))
|
|
if callFunc == None:
|
return
|
|
return callFunc(curPlayer, rebornPlace, tick)
|
|
def GetFBRobotCanAtkObjTypeIDList(curNPC):
|
## »ñÈ¡¸±±¾ÖлúÆ÷ÈË¿ÉÄܿɹ¥»÷µÄʵÀýÀàÐÍIDÁбí
|
## @return: [[objType, objID], ...]
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "GetFBRobotCanAtkObjTypeIDList"))
|
|
if callFunc == None:
|
return []
|
|
return callFunc(curNPC)
|
|
def GetFBRobotRandomMovePos(curNPC):
|
## »ñÈ¡¸±±¾ÖлúÆ÷ÈËËæ»úÒÆ¶¯×ø±êµã
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "GetFBRobotRandomMovePos"))
|
|
if callFunc == None:
|
return
|
|
return callFunc(curNPC)
|
|
def OnRandomRobotJob(curNPC, lineRobotJobDict):
|
## Ëæ»ú»úÆ÷ÈËÖ°Òµ
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnRandomRobotJob"))
|
|
if callFunc == None:
|
return
|
|
return callFunc(curNPC, lineRobotJobDict)
|
|
#---------------------------------------------------------------------
|
## ɱ¹Ö½±ÀøÊÇ·ñ¸ø×îºóÒ»¸ö²¹µ¶µÄÍæ¼Ò
|
# @param ÎÞ
|
# @return True or False
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def OnGivePrizeByLastHurt(curNPC):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnGivePrizeByLastHurt"))
|
|
if callFunc == None:
|
return False
|
|
return callFunc(curNPC)
|
#---------------------------------------------------------------------
|
## ɱ¹Ö¸øÓèÈ«²¿¾Ñé
|
# @param ÎÞ
|
# @return True or False
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def OnKillNPCGiveAllExp():
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnKillNPCGiveAllExp"))
|
|
if callFunc == None:
|
return False
|
|
return callFunc()
|
|
|
## »ñµÃÌØÊ⸱±¾npcµôÂä½ðÇ®
|
# @param curPlayer
|
# @return None
|
def OnGetNPCExp(curPlayer, curNPC):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnGetNPCExp"))
|
|
if not callFunc:
|
return 0
|
|
|
return callFunc(curPlayer, curNPC)
|
|
## »ñµÃÍâ²ã¾Ñé±¶ÂÊ
|
def OnGetOuterExpRate(curPlayer):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnGetOuterExpRate"))
|
|
if callFunc == None:
|
return 0
|
|
return callFunc(curPlayer)
|
|
## »ñµÃ¾Ñé
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param addExp »ñµÃµÄ¾Ñé
|
# @param expViewType ¾ÑéÀàÐÍ
|
# @return True or False
|
def OnGetExp(curPlayer, addExp, expViewType):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnGetExp"))
|
|
if callFunc == None:
|
return False
|
|
return callFunc(curPlayer, addExp, expViewType)
|
|
## »ñµÃ¶à±¶¸±±¾½±Àø
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param mapID
|
# @param lineID
|
# @param prizeExLV ¶îÍâ½±Àø°Ù·Ö±ÈµÈ¼¶
|
# @return
|
def OnGetMultiFBPrize(curPlayer, mapID, lineID, prizeExLV):
|
do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnGetMultiFBPrize"))
|
|
if callFunc == None:
|
return
|
|
return callFunc(curPlayer, mapID, lineID, prizeExLV)
|
|
## ¸±±¾É¨µ´Ñ¯ÎÊ
|
def OnPlayerFBSweepAsk(curPlayer, mapID, lineID, cnt, isFinish, dataEx):
|
do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnPlayerFBSweepAsk"))
|
|
# ûÓжîÍâÌõ¼þÅжÏĬÈÏ·µ»ØTrue
|
if callFunc == None:
|
return True
|
|
return callFunc(curPlayer, mapID, lineID, cnt, isFinish, dataEx)
|
|
## ¸±±¾É¨µ´½á¹û
|
def OnPlayerFBSweepResult(curPlayer, mapID, lineID, cnt, isFinish, dataEx):
|
do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnPlayerFBSweepResult"))
|
|
if callFunc == None:
|
return False
|
|
return callFunc(curPlayer, mapID, lineID, cnt, isFinish, dataEx)
|
|
## ¸±±¾Öúսɨµ´½á¹û
|
def OnPlayerFBHelpBattleSweepResult(curPlayer, mapID, lineID, helpBattlePlayerDict):
|
do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnPlayerFBHelpBattleSweepResult"))
|
|
if callFunc == None:
|
return False
|
|
return callFunc(curPlayer, mapID, lineID, helpBattlePlayerDict)
|
|
## ¿ªÊ¼¹«¹²CD¸±±¾É¨µ´
|
def OnStartPubCDFBSweep(curPlayer, mapID, lineID, cnt, dataEx):
|
do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnStartPubCDFBSweep"))
|
|
if callFunc == None:
|
return False
|
|
return callFunc(curPlayer, mapID, lineID, cnt, dataEx)
|
|
## ¸ø¹«¹²CD¸±±¾É¨µ´½±Àø
|
def OnGivePubCDFBSweepPrize(curPlayer, mapID, lineID, cnt, dataEx):
|
do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnGivePubCDFBSweepPrize"))
|
|
if callFunc == None:
|
return False
|
|
return callFunc(curPlayer, mapID, lineID, cnt, dataEx)
|
|
def OnPlayerFBQuickPass(curPlayer, mapID, lineID):
|
'''¸±±¾¿ìËÙ¹ý¹ØÑéÖ¤
|
@param mapID: Êý¾ÝµØÍ¼ID
|
@param lineID: Ä¿±ê¹Ø¿¨Ïß·ID£¬¿ÉÒ»´ÎÐÔÌø¶à¹Ø£¬ÓÉǰ¶Ë·¢°ü¾ö¶¨
|
@return: (bossID, quickCnt) »ò None
|
@note: bossID Ä¿±êNPCID - Ä¿±ê¹Ø¿¨ËùÐèÒªÌôÕ½µÄÖ÷NPCID£¬Ò»°ãÊÇboss£¬ÓÃÓÚÑéÖ¤Õ½Á¦ÊÇ·ñÂú×ã¿ìËÙ¹ý¹Ø
|
@note: quickCnt ±¾´Î×ܹ²Ìø¹ý¼¸¹Ø - ĬÈÏ1
|
'''
|
do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnPlayerFBQuickPass"))
|
|
# ûÓжîÍâÌõ¼þÅжÏĬÈÏ·µ»ØTrue
|
if callFunc == None:
|
return
|
|
return callFunc(curPlayer, mapID, lineID)
|
|
def OnPlayerFBQuickPassResult(curPlayer, mapID, lineID):
|
'''¸±±¾¿ìËÙ¹ý¹Ø½á¹û
|
'''
|
do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnPlayerFBQuickPassResult"))
|
|
if callFunc == None:
|
return
|
|
return callFunc(curPlayer, mapID, lineID)
|
|
#---------------------------------------------------------------------
|
|
## Çл»µØÍ¼Ñ¯ÎÊ(ֻѯÎʵÚÒ»ÌõÏß) ÅжÏÊÇ·ñ¿ÉÒÔ½øÈ븱±¾
|
# @param ask ÇëÇóÐÅÏ¢
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None or IPY_GameWorld.cmeAccept Ö®Àà
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def OnChangeMapAsk(ask , tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnChangeMapAsk"))
|
|
if callFunc == None:
|
return None
|
|
return callFunc(ask , tick)
|
|
|
## ¼ì²éÊÇ·ñ¿ÉÒÔ½øÈëFB ÊÇ·ñÄܹ»Í¨¹ý»î¶¯²éѯ½øÈë
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param mapID µØÍ¼ID
|
# @param lineID Ïß·id
|
# @param tick µ±Ç°Ê±¼ä
|
# @return True or False
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def OnEnterFBEvent(curPlayer, mapID, lineID, tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnEnterFBEvent"))
|
|
if callFunc == None:
|
return True
|
|
return callFunc(curPlayer, mapID, lineID, tick)
|
|
## ÇëÇó½øÈ븱±¾µÄµã ¸±±¾Íæ¼Ò½øÈëµã£¨×ø±ê£©
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param mapID µØÍ¼ID
|
# @param lineId ·ÖÏßID
|
# @param ipyEnterPosInfo ¹¦ÄÜÏß·IPYÅäÖÃ×ø±êÐÅÏ¢
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None or (x£¬y)
|
def OnGetFBEnterPos(curPlayer, mapID, lineId, ipyEnterPosInfo, tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnGetFBEnterPos"))
|
|
if callFunc == None:
|
posInfo = ipyEnterPosInfo
|
else:
|
posInfo = callFunc(curPlayer, mapID, lineId, ipyEnterPosInfo, tick)
|
|
if not posInfo:
|
return
|
enterX, enterY = posInfo[:2]
|
dist = posInfo[2] if len(posInfo) > 2 else 0
|
if dist <= 0:
|
return enterX, enterY
|
# ÓÉÓÚµ÷Óô˺¯ÊýµÄÒ»°ãÊÇÔÚÍæ¼Ò´«ËÍ֮ǰµÄµØÍ¼£¬ÎÞ·¨ÖªµÀÄ¿±êµØÍ¼µÄÕϰµã¼°µãÉϵÄʵÀýÃ÷ϸ
|
# ¹ÊÖ»ÄÜ´¿·¶Î§Ëæ»ú£¬²ß»®ÅäÖÃÐèÈ·±£Ô²È¦ÄÚÎÞÕϰµã£»ÎÞÊÓËæ»úµ½Í¬Ò»×ø±êµ¼ÖµÄÇÐͼºóÈËÎïÖØµþÎÊÌâ
|
#posPoint = GameMap.GetEmptyPlaceInArea(enterX, enterY, dist)
|
#return posPoint.GetPosX(), posPoint.GetPosY()
|
return random.randint(enterX - dist, enterX + dist), random.randint(enterY - dist, enterY + dist)
|
|
#---------------------------------------------------------------------
|
## ÊÇ·ñ½ûֹʹÓü¼ÄÜ
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param tick µ±Ç°Ê±¼ä
|
# @return True or False
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def OnForbidUseSkill(curPlayer , tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnForbidUseSkill"))
|
|
if callFunc == None:
|
return False
|
|
return callFunc(curPlayer, tick)
|
|
## Ïû³ýÒþÉíÂß¼
|
# @param curPlayer ¹¥»÷·½
|
# @param target ·ÀÊØ·½
|
# @param curSkill ʹÓü¼ÄÜ
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.Ⱥ¹¥Ê±targetÃ²ËÆÊÇ×Ô¼º±¾Éí
|
def DoFBAttackedOver(curPlayer, target, curSkill, tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoFBAttackedOver"))
|
|
if callFunc:
|
callFunc(curPlayer, target, curSkill, tick)
|
|
return
|
|
## ±»¹¥»÷½áÊø
|
# @param curPlayer ¹¥»÷·½
|
# @param target ·ÀÊØ·½
|
# @param curSkill ʹÓü¼ÄÜ
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None
|
def DoBeAttackOver(attacker, defender, curSkill, tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoBeAttackOver"))
|
|
if callFunc:
|
callFunc(attacker, defender, curSkill, tick)
|
|
return
|
|
## ¸±±¾ÖÐʹÓÃÎïÆ·
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param curEffID ÎïÆ·µÄЧ¹û
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def DoUseItem(curPlayer, curEffID, tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoUseItem"))
|
|
if callFunc:
|
callFunc(curPlayer, curEffID, tick)
|
|
return
|
|
## buffÏûʧ
|
# @param obj
|
# @param µ±Ç°Ê±¼ä
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def DoBuffDisAppear(curObj, tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoBuffDisAppear"))
|
|
if callFunc:
|
callFunc(curObj, tick)
|
|
return
|
|
## NPC¹¥»÷³É¹¦ºóFB´¦Àí(˵Ã÷£º½øÈëÕâ¸öº¯ÊýµÄʱºò£¬¹ÖÎïÒѾËÀÍö£¬µôÂä¾ÑéµÈ¶¼´¦Àí¹ýÁË)
|
# @param curNPC ¹¥»÷·½
|
# @param target ·ÀÊØ·½
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def DoOverNPCAttackSuccess(curNPC, target, tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoOverNPCAttackSuccess"))
|
|
if callFunc:
|
callFunc(curNPC, target, tick)
|
|
return
|
|
## Íæ¼ÒËÀÍö
|
# @param curPlayer:ËÀÍöµÄÍæ¼Ò
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def DoPlayerDead(curPlayer):
|
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoPlayerDead"))
|
|
if callFunc == None:
|
return
|
|
return callFunc(curPlayer)
|
|
#---------------------------------------------------------------------
|
## ¸±±¾»Ø³Ì¸´»îϵͳÌáʾ
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @return True or False
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def DoNotifyReBorn(curPlayer):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoNotifyReBorn"))
|
|
if callFunc == None:
|
return False
|
|
return callFunc(curPlayer)
|
#---------------------------------------------------------------------
|
## ¼ì²é¸±±¾¹¥»÷ÊÇ·ñÓй¥»÷³Í·£
|
# @param curPlayer ¹¥»÷·½
|
# @param curTagPlayer ·ÀÊØ·½
|
# @return ·µ»ØÖµÕæ, Óгͷ£
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def DoFBAttackHasPunish(curPlayer, curTagPlayer):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoFBAttackHasPunish"))
|
|
if callFunc == None:
|
return True
|
|
return callFunc(curPlayer, curTagPlayer)
|
|
## FBÎïÆ·Ê¹ÓÃÏÞÖÆ
|
# @param curPlayer µ±Ç°µÄÍæ¼Ò
|
# @param curItem ±»ÏÞÖÆµÄÎïÆ·
|
# @return True or False
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def DoFBForbidUseItem(curPlayer, curItem):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoFBForbidUseItem"))
|
|
if callFunc == None:
|
return False
|
|
return callFunc(curPlayer, curItem)
|
|
## FB½ûֹԵظ´»î
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param rebornTypwe ¸´»îÀàÐÍ
|
# @return True or False
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def DoFBForbidReborn(curPlayer, rebornTypwe):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoFBForbidReborn"))
|
|
if callFunc == None:
|
return False
|
|
return callFunc(curPlayer, rebornTypwe)
|
|
#---------------------------------------------------------------------
|
##»ñµÃÍæ¼Ò´«È븱±¾ÐèҪЯ´øµÄÐÅÏ¢
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @param resetMapID Çл»µ½µÄµØÍ¼ID
|
# @param lineId ·ÖÏßID
|
# @return ×Ö·û´®
|
# @remarks »ñµÃÍæ¼Ò´«È븱±¾ÐèҪЯ´øµÄÐÅÏ¢
|
def GetPlayerResetWorldPosFBMsg(curPlayer, resetMapID, lineId):
|
do_FBLogic_ID = __GetFBLogic_MapID(resetMapID)
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "GetPlayerResetWorldPosFBMsg"))
|
|
if callFunc == None:
|
return ''
|
|
return callFunc(curPlayer, lineId)
|
#---------------------------------------------------------------------
|
##¸±±¾Ê¹ÓÃÌØÊ⹦ÄÜ£¨¼¼ÄÜ£©
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @param useType ʹÓÃÀàÐÍ
|
# @param useState ʹÓÃ״̬
|
# @return ÎÞÒâÒå
|
# @remarks ¸±±¾Ê¹ÓÃÌØÊâ¼¼ÄÜ
|
def UseFBSpecilSkill(curPlayer, useType, useState, tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "UseFBSpecilSkill"))
|
|
if callFunc == None:
|
return
|
|
return callFunc(curPlayer, useType, useState, tick)
|
|
|
##¸±±¾ÓÐNPCÖØÉú
|
# @param curNPC:
|
# @param tick:tick
|
# @return None
|
def DoFBRebornNPC(curNPC, tick):
|
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoFBRebornNPC"))
|
|
if callFunc == None:
|
return
|
|
return callFunc(curNPC, tick)
|
|
|
##¸±±¾ÓÐSummonNPCÕÙ³ö
|
# @param npcId:NpcID
|
# @param tick:tick
|
# @return None
|
def DoFBRebornSummonNPC(curNPC, tick):
|
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoFBRebornSummonNPC"))
|
|
if callFunc == None:
|
return
|
|
return callFunc(curNPC, tick)
|
|
##¼ì²éÊÇ·ñ¿É¹¥»÷£¬Ö÷ÒªÅж¨²»¿É¹¥»÷µÄÇé¿ö
|
# @param curNPC NPC
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @return bool
|
def CheckCanAttackTagObjInFB(attacker, defender):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "CheckCanAttackTagObjInFB"))
|
|
if callFunc != None:
|
return callFunc(attacker, defender)
|
|
return True
|
|
|
## Íæ¼Ò»÷É±Íæ¼Ò½±Àø(ÍþÍû, ¼Ò×å»îÔ¾µÈ)
|
# @param attacker: ¹¥»÷·½
|
# @param defender: ·ÀÊØ·½
|
# @param tick: ʱ¼ä´Á
|
# @return: ÊÇ·ñ¸øÓè½±Àø(ĬÈϸøÓè)
|
def DoFBOnKill_Player_ValuePrize(attacker, defender, tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoFBOnKill_Player_ValuePrize"))
|
|
if callFunc != None:
|
return callFunc(attacker, defender, tick)
|
|
return True
|
|
|
## ʰȡÎïÆ·
|
# @param curPlayer ¹¥»÷·½
|
# @param curItem ÎïÆ·
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None
|
def OnFBPickUpItem(curPlayer, curItem, tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnPickUpItem"))
|
|
if callFunc:
|
callFunc(curPlayer, curItem, tick)
|
|
return
|
|
## »ñµÃ½ðÇ®
|
# @param curPlayer ¹¥»÷·½
|
# @param curItem ÎïÆ·
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None
|
def OnFBGetMoney(curPlayer, moneyType, moneyCount):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnFBGetMoney"))
|
|
if callFunc:
|
callFunc(curPlayer, moneyType, moneyCount)
|
|
return
|
|
## »ñµÃÌØÊ⸱±¾npcµôÂä½ðÇ®
|
# @param curPlayer
|
# @return None
|
def OnGetNPCDropMoney(curPlayer):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnGetNPCDropMoney"))
|
|
if not callFunc:
|
return 0
|
|
|
return callFunc(curPlayer)
|
|
## »ñµÃÍâ²ã½ð±Ò±¶ÂÊ
|
# @param curPlayer
|
# @return None
|
def OnGetOuterMoneyRate(curPlayer):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnGetOuterMoneyRate"))
|
|
if callFunc == None:
|
return 0
|
|
return callFunc(curPlayer)
|
|
|
## ¸±±¾ÐÐΪ
|
# @param curPlayer ¹¥»÷·½
|
# @param actionType ÐÐΪÀàÐÍ
|
# @param actionInfo ÐÐΪÐÅÏ¢
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None
|
def DoFBAction(curPlayer, actionType, actionInfo, tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoFBAction"))
|
|
if callFunc:
|
callFunc(curPlayer, actionType, actionInfo, tick)
|
|
return
|
|
|
## »ñÈ¡Íæ¼ÒËùÊôÏß·id
|
# @param curPlayer Íæ¼Ò
|
# @param mapID Ä¿±êµØÍ¼id
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None-δÕÒµ½£¬Ïß·id - 0~N
|
def GetPlayerFBLineID(curPlayer, mapID, tick):
|
|
do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "GetPlayerFBLineID"))
|
|
if callFunc:
|
return callFunc(curPlayer, tick)
|
|
return
|
|
|
## »ñÈ¡¸±±¾Ïß·×î´óÍæ¼ÒÈËÊý
|
# @param mapID Íæ¼Ò
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None-δÕÒµ½£¬Ïß·id - 0~N
|
def GetFBLineMaxPlayerCount(mapID, lineID):
|
|
do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "GetFBLineMaxPlayerCount"))
|
|
if callFunc:
|
return callFunc(lineID)
|
|
return 0
|
|
|
## ¸±±¾»î¶¯ÊÇ·ñÔÚ½øÐÐÖÐ
|
# @param None
|
# @return None
|
def IsFBActivityUnderway():
|
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "IsFBActivityUnderway"))
|
|
if callFunc:
|
return callFunc()
|
|
return False
|
|
## »÷ɱÉ˺¦ÅÅÐÐ
|
# @param None
|
# @return None
|
def OnHurtValueOrder(curPlayer, npcID, hurtValue, order, giveItemList):
|
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnHurtValueOrder"))
|
|
if callFunc:
|
return callFunc(curPlayer, npcID, hurtValue, order, giveItemList)
|
|
return False
|
|
def GetFBPlayerHurtNPCMultiValue(curPlayer, curNPC):
|
## Íæ¼Ò¶ÔNPCÔì³ÉÉ˺¦±¶Öµ£¬Ä¬ÈÏ1
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "GetFBPlayerHurtNPCMultiValue"))
|
|
if callFunc:
|
return callFunc(curPlayer, curNPC)
|
|
return 1
|
|
## Íæ¼Ò¶ÔNPCÔì³ÉÉ˺¦
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param curNPC
|
# @param hurtHP
|
# @return None
|
def DoFB_Player_HurtNPC(curPlayer, curNPC, hurtHP):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoFB_Player_HurtNPC"))
|
|
if callFunc:
|
callFunc(curPlayer, curNPC, hurtHP)
|
|
return
|
|
## NPC¶ÔNPCÔì³ÉÉ˺¦
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param curNPC
|
# @param hurtHP
|
# @return None
|
def DoFB_NPC_HurtNPC(curPlayer, curNPC, hurtHP):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoFB_NPC_HurtNPC"))
|
|
if callFunc:
|
callFunc(curPlayer, curNPC, hurtHP)
|
return
|
|
|
## »ñÈ¡NPCÎïÆ·µôÂä±£»¤ÕóÓª
|
# @param curNPC
|
# @return >0±íʾÓÐÕóÓª±£»¤
|
def GetNPCItemProtectFaction(curNPC):
|
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "GetNPCItemProtectFaction"))
|
|
if callFunc:
|
return callFunc(curNPC)
|
|
return 0
|
|
## bossÉËѪÁбíͬ²½
|
# @param objID µ±Ç°Íæ¼Ò
|
# @param npcID
|
# @param sortHurtList: µ¹ÐòÅÅÁеÄÉ˺¦Áбí
|
# @return
|
# ±¾º¯ÊýΪ·Ç»÷ɱµÄÉËѪͬ²½£¬ÔÚÇå³ýÉËѪÁбíǰͬ²½£» ×¢ÒâÓëOnBossKilledHurtListÇø±ð£»
|
# Èç¹ûbossÊDZ»»÷ɱµÄ£¬Ôò´Ëº¯ÊýÖеÄÉËѪÁбíÒ»°ãΪ¿Õ£¬ÒòΪÉËѪÁбíÔÚ´¦ÀíOnBossKilledHurtListʱÒѱ»Çå³ý
|
def OnBossHurtListClear(objID, npcID, sortHurtList):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnBossHurtListClear"))
|
|
if callFunc:
|
callFunc(objID, npcID, sortHurtList)
|
|
return
|
|
## boss±»»÷ɱÉËѪÁбíͬ²½
|
# @param objID µ±Ç°Íæ¼Ò
|
# @param npcID
|
# @param sortHurtList: µ¹ÐòÅÅÁеÄÉ˺¦Áбí
|
# @return None
|
def OnBossKilledHurtList(objID, npcID, sortHurtList):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnBossKilledHurtList"))
|
|
if callFunc:
|
callFunc(objID, npcID, sortHurtList)
|
|
return
|
|
## PVPÉ˺¦Ïà¹Ø
|
def OnPVPDamage(curPlayer, damageValue, tagPlayer):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnPVPDamage"))
|
|
if callFunc:
|
tick = GameWorld.GetGameWorld().GetTick()
|
callFunc(curPlayer, damageValue, tagPlayer, tick)
|
|
return
|
|
## ±êʶµã¹Ø±ÕË¢¹Ö֪ͨ
|
# @param refreshMark
|
# @return None
|
def OnCloseNPCRefresh(refreshMark, tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnCloseNPCRefresh"))
|
|
if callFunc:
|
callFunc(refreshMark, tick)
|
|
return
|
|
## TDË¢¹Ö±¾´ó²¨Ë¢¹Ö½áÊø
|
# @param refreshMark
|
# @return None
|
def OnTDCurWheelOver(refreshMark, tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnTDCurWheelOver"))
|
|
if callFunc:
|
callFunc(refreshMark, tick)
|
|
return
|
|
## TDË¢¹ÖËùÓдó²¨Ë¢¹Ö½áÊø
|
# @param refreshMark
|
# @return None
|
def OnTDAllWheelOver(tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnTDAllWheelOver"))
|
|
if callFunc:
|
callFunc(tick)
|
|
return
|
|
|
## TD¹Öµ½´ïÖÕµã
|
def OnTDNPCReachTheGoal(curNPC, tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnTDNPCReachTheGoal"))
|
|
if callFunc:
|
callFunc(curNPC, tick)
|
|
return
|
|
## Ë¢¹Ö֪ͨ
|
# @param refreshMark
|
# @return None
|
def OnPointRefresh(step, tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnPointRefresh"))
|
|
if callFunc:
|
callFunc(step, tick)
|
|
return
|
|
def OnCanMoveTouchNPC(curPlayer, curNPC, tick):
|
## ¼ì²é¿É·ñ´¥ÅöNPCÂß¼
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnCanMoveTouchNPC"))
|
|
if callFunc:
|
return callFunc(curPlayer, curNPC, tick)
|
return True
|
|
def OnMoveTouchNPC(curPlayer, curNPC, tick):
|
## ´¥ÅöNPC´¦ÀíÂß¼
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnMoveTouchNPC"))
|
|
if callFunc:
|
callFunc(curPlayer, curNPC, tick)
|
return
|
|
## ¿Í»§¶Ë·¢ËͽáÊø¸±±¾
|
def OnClientEndFB(curPlayer, mapID, lineID, dataList):
|
do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnClientEndFB"))
|
|
if callFunc == None:
|
return False
|
|
return callFunc(curPlayer, mapID, lineID, dataList)
|
|
## ¿Í»§¶Ë·¢ËÍ¿ªÊ¼¸±±¾
|
def OnClientStartFB(curPlayer, tick):
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnClientStartFB"))
|
|
if callFunc == None:
|
return False
|
|
return callFunc(curPlayer, tick)
|
|
## ¿Í»§¶Ë½øÈë×Ô¶¨Ò峡¾°
|
def OnEnterCustomScene(curPlayer, mapID, lineID):
|
do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnEnterCustomScene"))
|
|
if callFunc == None:
|
return
|
|
return callFunc(curPlayer, mapID, lineID)
|
|
## ÅжϿɷñÕÙ»½Ä¾×®¹Ö
|
def OnCanSummonPriWoodPile(curPlayer, mapID, lineID, npcID, count):
|
do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnCanSummonPriWoodPile"))
|
|
if callFunc == None:
|
return True
|
|
return callFunc(curPlayer, mapID, lineID, npcID, count)
|
|
## ×Ô¶¨Ò峡¾°¸±±¾»÷ɱNPC
|
def DoCustomScene_Player_KillNPC(curPlayer, curNPC, mapID, lineID):
|
do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "DoCustomScene_Player_KillNPC"))
|
|
if callFunc:
|
callFunc(curPlayer, curNPC, mapID, lineID)
|
|
return
|
|
## ×Ô¶¨Ò峡¾°²É¼¯OK£¬Ðè×Ô´øÊÇ·ñÔÊÐí²É¼¯µÄÅжÏ
|
def OnCustomSceneCollectOK(curPlayer, mapID, lineID, npcID):
|
do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnCustomSceneCollectOK"))
|
|
if callFunc:
|
return callFunc(curPlayer, mapID, lineID, npcID)
|
|
return
|
|
## ½øÈë¿ç·þ¸±±¾×¢²áÊý¾ÝǰÂß¼
|
## @return: ÊÇ·ñ¿ÉÒÔ×¢²áǰÍù¿ç·þ¸±±¾£¬´Îº¯ÊýÖпÉÒÔдһЩ¿Û³ýÏûºÄÂß¼µÈ
|
def OnRegEnterCrossFB(curPlayer, mapID, lineID):
|
do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnRegEnterCrossFB"))
|
|
if callFunc == None:
|
return True
|
|
return callFunc(curPlayer, mapID, lineID)
|
|
## ½áÊø¿ç·þ¸±±¾
|
def OnEndCrossFB(curPlayer, mapID, lineID, exData):
|
do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnEndCrossFB"))
|
|
if callFunc == None:
|
return
|
|
return callFunc(curPlayer, mapID, lineID, exData)
|
|
## ¿ç·þ¹¦ÄÜÏß·Êý¾Ý»º´æ£¬Ï´οªÆôͬÑù¹¦ÄÜÏß·ʱ»áÓøÃÊý¾Ý½øÐл¹Ô֮ǰµÄ¸±±¾×´Ì¬
|
def OnGetCrossFuncLineDataCache():
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnGetCrossFuncLineDataCache"))
|
if callFunc == None:
|
return
|
return callFunc()
|
|
## ÊÇ·ñÐèÒª×ö½øÈ븱±¾Í¨Óüì²éÌõ¼þÂß¼£¬Ä¬ÈÏÐèÒª¼ì²é
|
def OnNeedCheckCanEnterFBComm(curPlayer, mapID, lineID):
|
do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnNeedCheckCanEnterFBComm"))
|
|
if callFunc == None:
|
return True
|
|
return callFunc(curPlayer, mapID, lineID)
|
|
def OnPlayerLVUp(curPlayer):
|
## Íæ¼ÒÉý¼¶
|
do_FBLogic_ID = __GetFBLogic_MapID(GameWorld.GetMap().GetMapID())
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnPlayerLVUp"))
|
if callFunc == None:
|
return False
|
return callFunc(curPlayer)
|
|
def OnTurnFightRequest(curPlayer, mapID, funcLineID, tagType, tagID, valueList):
|
## »ØºÏÕ½¶·ÇëÇó - µØÍ¼ÑéÖ¤
|
# @return: ÊÇ·ñÔÊÐí
|
do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnTurnFightRequest"))
|
|
if callFunc == None:
|
# ĬÈϲ»ÏÞÖÆ
|
return True
|
|
return callFunc(curPlayer, mapID, funcLineID, tagType, tagID, valueList)
|
|
def OnTurnFightOver(curPlayer, mapID, funcLineID, tagType, tagID, valueList, fightRet):
|
## »ØºÏÕ½¶·½áÊø
|
# @return: ÊÇ·ñÐèҪͬ²½GameServer, ½±ÀøÁбí
|
|
do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnTurnFightOver"))
|
|
if callFunc == None:
|
return
|
|
return callFunc(curPlayer, mapID, funcLineID, tagType, tagID, valueList, fightRet)
|
|
def OnTurnFightOver_GameServerRet(curPlayer, mapID, funcLineID, tagType, tagID, valueList, fightRet, awardItemList, ret):
|
## »ØºÏÕ½¶·½áÊø - GameServer´¦ÀíÍê±Ï·µ»Ø
|
|
do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnTurnFightOver_GameServerRet"))
|
|
if callFunc == None:
|
return
|
|
return callFunc(curPlayer, mapID, funcLineID, tagType, tagID, valueList, fightRet, awardItemList, ret)
|
|
def OnMirrorBattleRequest(curPlayer, mapID, funcLineID):
|
## ¾µÏñÕ½¶·ÇëÇó
|
do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnMirrorBattleRequest"))
|
|
if callFunc == None:
|
# ĬÈÏÔÊÐí
|
return True
|
|
return callFunc(curPlayer, mapID, funcLineID)
|
|
def OnMirrorBattleOver(battleID, mapID):
|
## ¾µÏñÕ½¶·½áÊø
|
|
do_FBLogic_ID = __GetFBLogic_MapID(mapID)
|
|
callFunc = GameWorld.GetExecFunc(FBProcess, "GameLogic_%s.%s" % (do_FBLogic_ID, "OnMirrorBattleOver"))
|
|
if callFunc == None:
|
return
|
|
return callFunc(battleID)
|