#!/usr/bin/python # -*- coding: GBK -*- #--------------------------------------------------------------------- # #--------------------------------------------------------------------- ##@package GameServerRefresh # @todo: GameServer·â°ü¹ÜÀíÆ÷ # # @author: eggxp # @date 2010-4-28 # @version 2.7 # # @note: ½ÓÊÕGameServer·â°ü, Ö´ÐÐÂß¼­ # # @change: "2010-08-19 17:30" panwei °´¸ñʽ¹æ·¶µ÷Õû, ¹Ø±Õµ÷ÊÔÐÅÏ¢ # @change: "2010-12-27 17:10" panwei µØÍ¼±¶ÂʸüÐÂ֪ͨȫ·þÍæ¼Ò # @change: "2011-01-09 18:00" panwei Ôª±¦½»Òׯ½Ì¨¹ýÆÚ¶©µ¥, δÁìȡԪ±¦¶©µ¥ÐÂÔö»º´æ # @change: "2011-06-21 16:00" panwei ÐÂÔöRouteServerInitOKº¯Êý´¦Àí, Èçδ³õʼ»¯²»¿ÉÇл»¸±±¾ # @change: "2011-06-30 17:00" panwei ÐÂÔö0405, GameServer_PlayerCoinToGold·â°ü´¦Àí # @change: "2012-01-30 19:00" wdb µãȯ¶Ò»»Ôª±¦·â°üÔö¼ÓÔùË͵ãȯ×Ö¶Î # @change: "2012-01-31 10:00" wdb ´«µÝ²ÎÊýÐÞ¸Ä # @change: "2012-03-29 17:00" jiang ½ÇÉ«ÔÚGameServer³õʼ»¯Íê³ÉÒÔºó²éѯһ´ÎÊÇ·ñÔÚÉêÇëµÄ¼Ò×åÉóºËÖÐ # @change: "2012-05-06 19:30" jiang ½ÇÉ«ÔÚGameServer³õʼ»¯Íê³ÉÒÔºóÇëÇó¼ÇÂ¼Íæ¼Ò¼Ò×åÐÅÏ¢ÓÃÓÚ¿ª·þ»î¶¯½±ÀøÁìÈ¡ # @change: "2012-05-14 16:00" jiang È¥³ýÇëÇó¼ÇÂ¼Íæ¼Ò¼Ò×åÐÅÏ¢ÓÃÓÚ¿ª·þ»î¶¯½±ÀøÁìÈ¡ # @change: "2012-06-29 15:00" whx ²¹³¥ÔÚGameServer Initʱ´¥·¢ # @change: "2014-02-11 15:00" Alee ʱ¼ä´¦ÀíÖ®ºóÔÙÖ´Ðй¦ÄÜÂß¼­(½ÚÈÕÀñ°ü) # @change: "2014-12-25 15:10" xmnathan ÅÅÐаñ³ÆºÅÉÏÏßˢзÅÔÚGameSever_PlayerInitOKÖ®ºóÖ´ÐÐ # @change: "2015-06-24 17:50" xmnathan InterfaceServer_Dll_CashRequest³äÖµµãȯ¶Ò»»£¬Ôö¼Óͬ¶©µ¥·â°üÖØÈë·À·¶ # @change: "2016-07-20 14:30" hxp µãȯ¶Ò»»Ë¢ÐÂÔö¼ÓÁ÷ÏòÀàÐÍ #------------------------------------------------------------------------------ """Version = 2016-07-20 14:30""" #------------------------------------------------------------------------------ import GameWorld import EventShell import PlayerControl import IPY_GameWorld import PlayerEventCounter import ChConfig import PlayerCoin import ChPlayer import ShareDefine #--------------------------------------------------------------------- #¼ÇÂ¼Íæ¼Ò³õʼ»¯¹ý³ÌÖС£»ýÀ۵ķâ°ü OnHourKey = 'PlayerGSInitOK_OnHourKey' OnDayKey = 'PlayerGSInitOK_OnDayKey' OnWeekKey = 'PlayerGSInitOK_OnWeekKey' OnMonthKey = 'PlayerGSInitOK_OnMonthKey' OnYearKey = 'PlayerGSInitOK_OnYearKey' OnDayExKey = 'PlayerGSInitOK_OnDayExKey' OnWeekExKey = 'PlayerGSInitOK_OnWeekExKey' OnMonthExKey = 'PlayerGSInitOK_OnMonthExKey' #--------------------------------------------------------------------- #¼ÇÂ¼Íæ¼ÒÈÎÎñÐÅÏ¢£¬»ýÀ۵ķâ°ü( ÎÞÈÎÎñID ) Mission_No_ID_OnLeaveFamily = 'Mission_No_ID_OnLeaveFamily' #À뿪¼Ò×å´¥·¢ Mission_No_ID_OnMemberChange = 'Mission_No_ID_OnMemberChange' #¼Ò×峤±ä¸ü #--------------------------------------------------------------------- #¼ÇÂ¼Íæ¼ÒÈÎÎñÐÅÏ¢£¬»ýÀ۵ķâ°ü( ÓÐÈÎÎñID ) Mission_Have_ID_OnActive = 'Mission_Have_ID_OnActive' #GM¿ªÆô»î¶¯ Mission_Have_ID_OnDeActive = 'Mission_Have_ID_OnDeActive' #GM¹Ø±Õ»î¶¯ Mission_Have_ID_OnMissionPub = 'Mission_Have_ID_OnMissionPub' #·¢²¼ÈÎÎñ #--------------------------------------------------------------------- #Íæ¼ÒÀ뿪¸±±¾ Def_RouteServerInitOK_LeaveFBKey = 'RouteServerInitOK_LeaveFBKey' #Íæ¼ÒÀ뿪¸±±¾ #--------------------------------------------------------------------- #class IPY_MLeaveEvent #{ #public: # # int GetPlayerID(); # # int GetType(); #}; ## GameServerÍ¨ÖªÍæ¼ÒÀ뿪ʼþ # @param index Íæ¼ÒË÷Òý # @param tick µ±Ç°Ê±¼ä # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def GameServer_LeaveEvent(index, tick): curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index) pack = IPY_GameWorld.IPY_MLeaveEvent() if curPlayer.GetID() != pack.GetPlayerID(): #²»ÊÇ×Ô¼º return EventShell.DoExitEvent(curPlayer) return #////////////////////////////////////////////////////////////// #//04 02 Íæ¼Ò¿ÛÇ®#tagMPayMoney #tagMPayMoney * GettagMPayMoney(); # #class IPY_MPayMoney #{ #public: # //½ðÇ®ÀàÐÍ # int GetMoneyType(); # //½ðÇ® # int GetMoney(); #}; ## ¸¶Ç® 04 02 Íæ¼Ò¿ÛÇ® # @param index Íæ¼ÒË÷Òý # @param tick µ±Ç°Ê±¼ä # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def GameServer_PayMoney(index, tick): curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index) pack = IPY_GameWorld.IPY_MPayMoney() if curPlayer.GetID() != pack.GetPlayerID(): #²»ÊÇ×Ô¼º return moneyType = pack.GetMoneyType() moneyNum = pack.GetMoney() if moneyType == ShareDefine.TYPE_Price_Gold_Paper_Money: costMoneyList = PlayerControl.HaveMoneyEx(curPlayer, ShareDefine.TYPE_Price_Gold_Paper_Money, moneyNum) else: costMoneyList = [[moneyType, moneyNum]] if not costMoneyList: return for moneyType, moneyCnt in costMoneyList: PlayerControl.PayMoney(curPlayer, moneyType, moneyCnt, ChConfig.Def_Cost_GameServer) return #////////////////////////////////////////////////////////////// #//01 07 ¾­Ñé±¶Âʸıä#tagMExpRateChange #tagMExpRateChange * GettagMExpRateChange(); # #class IPY_MExpRateChange #{ #public: # # int GetExpRate(); #}; ## 01 07 ¾­Ñé±¶Âʸıä # @param index Íæ¼ÒË÷Òý # @param tick µ±Ç°Ê±¼ä # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def GameServer_SetExpRate(index, tick): gameServerPack = IPY_GameWorld.IPY_MExpRateChange() expRate = gameServerPack.GetExpRate() #---ͬ²½ÊÀ½ç·þÎñÆ÷¾­Ñé±¶ÂÊ--- GameWorld.GetGameWorld().SetExpRate(expRate) GameWorld.Log("֪ͨµØÍ¼·þÎñÆ÷¾­Ñé±¶Âʱä¸ü = %s"%(expRate)) #---֪ͨȫ·þÍæ¼Ò¾­Ñé±¶Âʱä¸ü--- playerManager = GameWorld.GetPlayerManager() for i in range(0, playerManager.GetActivePlayerCount()): curPlayer = playerManager.GetActivePlayerByIndex(i) if not GameWorld.IsNormalPlayer(curPlayer): continue PlayerControl.Sync_ExpRateChange(curPlayer) return #////////////////////////////////////////////////////////////// #//01 08 ¼¤»î»î¶¯#tagMActiveEvent #tagMActiveEvent * GettagMActiveEvent(); # #class IPY_MActiveEvent #{ #public: # # int GetEventID(); # //ÊÇ·ñ¼¤»î # int GetIsActive(); # //ÊÇ·ñÖ»Õë¶ÔËùÑ¡µØÍ¼ # int GetSelectMap(); # //µØÍ¼ÊýÄ¿ # int GetMapListCount(); # //size = MapListCount # int GetMapList(int index); #}; ## »î¶¯µØÍ¼Ê±µ±Ç°µØÍ¼ # @param pack ·â°ü # @return True or False # @remarks º¯ÊýÏêϸ˵Ã÷. def __IsCurrentMapInGameEventSelectMap(pack): for i in range(pack.GetMapListCount()): if pack.GetMapList(i) == GameWorld.GetGameWorld().GetMapID(): return True return False ## 01 08 ¼¤»î»î¶¯ # @param index Íæ¼ÒË÷Òý # @param tick µ±Ç°Ê±¼ä # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def GameServer_ActiveEvent(index, tick): pack = IPY_GameWorld.IPY_MActiveEvent() if pack.GetSelectMap(): #ҪѡÔñµØÍ¼µÄ if not __IsCurrentMapInGameEventSelectMap(pack): return if pack.GetIsActive(): GameWorld.GetGameWorld().AddActiveEvent(pack.GetEventID()) __ActiveGMEvent(pack.GetEventID()) else: __DeActiveGMEvent(pack.GetEventID()) GameWorld.GetGameWorld().DelActiveEvent(pack.GetEventID()) return ## È«·þÍæ¼Ò¶¼´¥·¢Õâ¸öÈÎÎñ # @param missionID ʼþID # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def __ActiveGMEvent(missionID): #È«·þÍæ¼Ò¶¼´¥·¢Õâ¸öÈÎÎñ playerManager = GameWorld.GetPlayerManager() for i in range(playerManager.OnlineCount()): curPlayer = playerManager.OnlineAt(i) if curPlayer.IsEmpty(): continue EventShell.EventResponse_OnActive(curPlayer, missionID) return ## È«·þÍæ¼Ò¶¼È¡ÏûÕâ¸öÈÎÎñ # @param missionID ʼþID # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def __DeActiveGMEvent(missionID): #È«·þÍæ¼Ò¶¼´¥·¢Õâ¸öÈÎÎñ playerManager = GameWorld.GetPlayerManager() for i in range(playerManager.OnlineCount()): curPlayer = playerManager.OnlineAt(i) if curPlayer.IsEmpty(): continue EventShell.EventResponse_OnDeActive(curPlayer, missionID) return #////////////////////////////////////////////////////////////// #//01 10 ÈÎÎñ·¢²¼#tagMMissionPub #tagMMissionPub * GettagMMissionPub(); # #class IPY_MMissionPub #{ #public: # //·¢²¼ÈÎÎñID # int GetMissionID(); # //·¢²¼ÀàÐÍ(¼Ò×å, ¹ú¼Ò) TMissinoPubType # int GetMissinoPubType(); # //·¢²¼ID # int GetPubID(); #}; ## 01 10 ÈÎÎñ·¢²¼ # @param index Íæ¼ÒË÷Òý # @param tick µ±Ç°Ê±¼ä # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def GameServer_MissionPub(index, tick): pack = IPY_GameWorld.IPY_MMissionPub() missionPubManager = GameWorld.GetGameWorld().GetDBMissionPubManager() curMissionPub = missionPubManager.AddDBMissionPub(pack.GetMissionID()) curMissionPub.SetMissinoPubType(pack.GetMissinoPubType()) curMissionPub.SetPubID(pack.GetPubID()) GameWorld.Log('ÈÎÎñ·¢²¼, ID = %s'%pack.GetPubID()) __MissionPub(curMissionPub) return ## È«·þÍæ¼Ò¶¼´¥·¢Õâ¸öÈÎÎñ # @param curMissionPub ÈÎÎñ·¢²¼±í # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def __MissionPub(curMissionPub): #È«·þÍæ¼Ò¶¼´¥·¢Õâ¸öÈÎÎñ playerManager = GameWorld.GetPlayerManager() for i in range(playerManager.OnlineCount()): curPlayer = playerManager.OnlineAt(i) if curPlayer.IsEmpty(): continue EventShell.CheckTrigMissionPub(curPlayer, curMissionPub) return #////////////////////////////////////////////////////////////// #//04 03 ½ûÖ¹¼ÌÐøµôÂä#tagMForbiddenDrop #tagMForbiddenDrop * GettagMForbiddenDrop(); # #class IPY_MForbiddenDrop #{ #public: # //ÊÇ·ñÄܹ»¼ÌÐøµôÂä # int GetCanDrop(); # # int GetItemID(); # # int GetDropFunctionType(); #}; ## 04 03 ½ûÖ¹¼ÌÐøµôÂä # @param index Íæ¼ÒË÷Òý # @param tick µ±Ç°Ê±¼ä # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def GameServer_ForbiddenDrop(index, tick): pack = IPY_GameWorld.IPY_MForbiddenDrop() itemID = pack.GetItemID() functionType = pack.GetDropFunctionType() gameWorld = GameWorld.GetGameWorld() if pack.GetCanDrop(): gameWorld.DelForbiddenDrop(itemID, functionType) else: gameWorld.AddForbiddenDrop(itemID, functionType) return ## Çå¿Õ½ûÖ¹µôÂäÎïÆ· # @param index Íæ¼ÒË÷Òý # @param tick µ±Ç°Ê±¼ä # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def GameServer_ClearForbiddenDrop(index, tick): GameWorld.GetGameWorld().ClearForbiddenDrop() return ## GameServer֪ͨµØÍ¼·þÎñÆ÷, Íæ¼Ò±£´æÊý¾Ýµ½Êý¾Ý¿â # @param index Íæ¼ÒË÷Òý # @param tick µ±Ç°Ê±¼ä # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def GameServer_PlayerSave(index, tick): curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index) #2009-07-04 ÒòµØÍ¼·þÎñÆ÷ÓпÉÄܹرÕÖØ¿ª£¬ÕâÀïÒªÅж¨¿Õ if not curPlayer: return # 1Ϊ±£´æ 0ΪÕý³£ÏÂÏß curPlayer.SetCountryLastWeekHornor(1) # ÀûÓôË×Ö¶Î֪ͨΪ±£´æÊý¾Ý£¬·ÇÏÂÏßÊý¾Ý curPlayer.PushSaveData() curPlayer.SetCountryLastWeekHornor(0) # ÀûÓôË×Ö¶Î֪ͨΪ±£´æÊý¾Ý£¬·ÇÏÂÏßÊý¾Ý return #=============================================================================== # ////////////////////////////////////////////////////////////// # //01 14 Íæ¼ÒÔÚGameServer³õʼ»¯³É¹¦#tagMPlayerGameServerInitOK # tagMPlayerGameServerInitOK * GettagMPlayerGameServerInitOK(); # # class IPY_MPlayerGameServerInitOK # { # public: # //ÎÞÒâÒå # int GetType(); # }; #=============================================================================== ## 01 14 Íæ¼ÒÔÚGameServer³õʼ»¯³É¹¦ # @param index Íæ¼ÒË÷Òý # @param tick µ±Ç°Ê±¼ä # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def GameSever_PlayerInitOK(index , tick): curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index) #2009-12-17 ÒòµØÍ¼·þÎñÆ÷ÓпÉÄܹرÕÖØ¿ª£¬ÕâÀïÒªÅж¨¿Õ if not curPlayer: GameWorld.ErrLog('GameSever_PlayerInitError playerIndex = %s'%(index)) return #ÉèÖóõʼ»¯³É¹¦ curPlayer.SetGameServerInitOK(True) #´¥·¢GM¿ª¹Ø»î¶¯ #EventShell.PlayerGMEventTrig(curPlayer) #´¥·¢ËûÈË·¢²¼»î¶¯ #EventShell.PlayerMissionPubEventTrig(curPlayer) #ʱ¼ä»º´æ·â°ü if Get_PlayerGameServerInitOK_OnHour(curPlayer): PlayerEventCounter.PlayerOnHour(curPlayer) Set_PlayerGameServerInitOK_OnHour(curPlayer, 0) if Get_PlayerGameServerInitOK_OnDay(curPlayer): PlayerEventCounter.PlayerOnDay(curPlayer) Set_PlayerGameServerInitOK_OnDay(curPlayer, 0) if Get_PlayerGameServerInitOK_OnDayEx(curPlayer): PlayerEventCounter.PlayerOnDayEx(curPlayer) Set_PlayerGameServerInitOK_OnDayEx(curPlayer, 0) if Get_PlayerGameServerInitOK_OnWeek(curPlayer): PlayerEventCounter.PlayerOnWeek(curPlayer) Set_PlayerGameServerInitOK_OnWeek(curPlayer, 0) if Get_PlayerGameServerInitOK_OnWeekEx(curPlayer): PlayerEventCounter.PlayerOnWeekEx(curPlayer) Set_PlayerGameServerInitOK_OnWeekEx(curPlayer, 0) if Get_PlayerGameServerInitOK_OnMonth(curPlayer): PlayerEventCounter.PlayerOnMonth(curPlayer) Set_PlayerGameServerInitOK_OnMonth(curPlayer, 0) if Get_PlayerGameServerInitOK_OnMonthEx(curPlayer): PlayerEventCounter.PlayerOnMonthEx(curPlayer) Set_PlayerGameServerInitOK_OnMonthEx(curPlayer, 0) if Get_PlayerGameServerInitOK_OnYear(curPlayer): PlayerEventCounter.PlayerOnYear(curPlayer) Set_PlayerGameServerInitOK_OnYear(curPlayer, 0) #ÎÞÈÎÎñIDµÄÈÎÎñ»º´æ´¦Àí #=========================================================================== # if Get_Mission_No_ID_OnLeaveFamily(curPlayer): # EventShell.EventResponse_OnLeaveFamily(curPlayer) # Set_Mission_No_ID_OnLeaveFamily(curPlayer, 0) # # if Get_Mission_No_ID_OnMemberChange(curPlayer): # EventShell.EventResponse_OnMemberChange(curPlayer) # Set_Mission_No_ID_OnMemberChange(curPlayer, 0) # # #ÓÐÈÎÎñIDµÄÈÎÎñ»º´æ´¦Àí # if Get_Mission_Have_ID_OnActive(curPlayer): # EventShell.EventResponse_OnActive(curPlayer , Get_Mission_Have_ID_OnActive(curPlayer)) # Set_Mission_Have_ID_OnActive(curPlayer, 0) # # if Get_Mission_Have_ID_OnDeActive(curPlayer): # EventShell.EventResponse_OnDeActive(curPlayer , Get_Mission_Have_ID_OnDeActive(curPlayer)) # Set_Mission_Have_ID_OnDeActive(curPlayer, 0) # # if Get_Mission_Have_ID_OnMissionPub(curPlayer): # EventShell.EventResponse_OnMissionPub(curPlayer , Get_Mission_Have_ID_OnMissionPub(curPlayer)) # Set_Mission_Have_ID_OnMissionPub(curPlayer, 0) #=========================================================================== #²éѯÊÇ·ñ»¹ÔÚÉêÇë¼Ò×åÁбíÖÐ ChPlayer.QueryIsResFamily(curPlayer) #Óʼþ PlayerControl.SendUnLoginOKPlayerMailCache(curPlayer) #Ë¢ÐÂÅÅÐаñ³ÆºÅ #PlayerDienstgrad.RefreshBillBoardDienstgrad(curPlayer) GameWorld.Log('GameSever_PlayerInitOK' , curPlayer.GetID()) ChPlayer.DoPlayerRealLoginOK(curPlayer, tick) return #--------------------------------------------------------------------- ## ±£´æOnHour # @param curPlayer µ±Ç°Íæ¼Ò # @param value keyÖµ # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def Set_PlayerGameServerInitOK_OnHour(curPlayer, value): curPlayer.SetDict(OnHourKey, value) #GameWorld.Log('Set_PlayerGameServerInitOK_OnHour , value = %s'%( value ) , curPlayer.GetID()) return ## »ñÈ¡Íæ¼Ò×Öµä OnHour # @param curPlayer µ±Ç°Íæ¼Ò # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def Get_PlayerGameServerInitOK_OnHour(curPlayer): return curPlayer.GetDictByKey(OnHourKey) ## ±£´æOnDay # @param curPlayer µ±Ç°Íæ¼Ò # @param value keyÖµ # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def Set_PlayerGameServerInitOK_OnDay(curPlayer, value): curPlayer.SetDict(OnDayKey, value) #GameWorld.Log('Set_PlayerGameServerInitOK_OnDay, value = %s'%( value ) , curPlayer.GetID()) return ## »ñÈ¡Íæ¼Ò×Öµä OnDay # @param curPlayer µ±Ç°Íæ¼Ò # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def Get_PlayerGameServerInitOK_OnDay(curPlayer): return curPlayer.GetDictByKey(OnDayKey) def Set_PlayerGameServerInitOK_OnDayEx(curPlayer, value): return curPlayer.SetDict(OnDayExKey, value) def Get_PlayerGameServerInitOK_OnDayEx(curPlayer): return curPlayer.GetDictByKey(OnDayExKey) ## ±£´æOnWeek # @param curPlayer µ±Ç°Íæ¼Ò # @param value keyÖµ # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def Set_PlayerGameServerInitOK_OnWeek(curPlayer, value): curPlayer.SetDict(OnWeekKey, value) #GameWorld.Log('Set_PlayerGameServerInitOK_OnWeek, value = %s'%( value ) , curPlayer.GetID()) return ## »ñÈ¡Íæ¼Ò×Öµä OnWeek # @param curPlayer µ±Ç°Íæ¼Ò # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def Get_PlayerGameServerInitOK_OnWeek(curPlayer): return curPlayer.GetDictByKey(OnWeekKey) def Set_PlayerGameServerInitOK_OnWeekEx(curPlayer, value): return curPlayer.SetDict(OnWeekExKey, value) def Get_PlayerGameServerInitOK_OnWeekEx(curPlayer): return curPlayer.GetDictByKey(OnWeekExKey) ## ±£´æOnMonth # @param curPlayer µ±Ç°Íæ¼Ò # @param value keyÖµ # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def Set_PlayerGameServerInitOK_OnMonth(curPlayer , value): curPlayer.SetDict(OnMonthKey , value) #GameWorld.Log('Set_PlayerGameServerInitOK_OnMonth, value = %s'%( value ) , curPlayer.GetID()) return ## »ñÈ¡Íæ¼Ò×Öµä OnMonth # @param curPlayer µ±Ç°Íæ¼Ò # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def Get_PlayerGameServerInitOK_OnMonth(curPlayer): return curPlayer.GetDictByKey(OnMonthKey) def Set_PlayerGameServerInitOK_OnMonthEx(curPlayer, value): return curPlayer.SetDict(OnMonthExKey, value) def Get_PlayerGameServerInitOK_OnMonthEx(curPlayer): return curPlayer.GetDictByKey(OnMonthExKey) ## ±£´æOnYear # @param curPlayer µ±Ç°Íæ¼Ò # @param value keyÖµ # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def Set_PlayerGameServerInitOK_OnYear(curPlayer, value): curPlayer.SetDict(OnYearKey, value) #GameWorld.Log('Set_PlayerGameServerInitOK_OnYear, value = %s'%( value ) , curPlayer.GetID()) return ## »ñÈ¡Íæ¼Ò×Öµä OnYear # @param curPlayer µ±Ç°Íæ¼Ò # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def Get_PlayerGameServerInitOK_OnYear(curPlayer): return curPlayer.GetDictByKey(OnYearKey) #--------------------------------------------------------------------- ## ÉèÖÃÀ뿪¼Ò×å´¥·¢ # @param curPlayer µ±Ç°Íæ¼Ò # @param value keyÖµ # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def Set_Mission_No_ID_OnLeaveFamily(curPlayer, value): curPlayer.SetDict(Mission_No_ID_OnLeaveFamily, value) #GameWorld.Log('Set_Mission_No_ID_OnLeaveFamily, value = %s'%( value ) , curPlayer.GetID()) return ## »ñÈ¡Íæ¼Ò×Öµä À뿪¼Ò×å # @param curPlayer µ±Ç°Íæ¼Ò # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def Get_Mission_No_ID_OnLeaveFamily(curPlayer): return curPlayer.GetDictByKey(Mission_No_ID_OnLeaveFamily) ## ÉèÖüÒ×峤±ä¸ü # @param curPlayer µ±Ç°Íæ¼Ò # @param value keyÖµ # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def Set_Mission_No_ID_OnMemberChange(curPlayer, value): curPlayer.SetDict(Mission_No_ID_OnMemberChange, value) #GameWorld.Log('Set_Mission_No_ID_OnMemberChange, value = %s'%( value ) , curPlayer.GetID()) return ## »ñÈ¡Íæ¼Ò×Öµä ¼Ò×峤±ä¸ü # @param curPlayer µ±Ç°Íæ¼Ò # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def Get_Mission_No_ID_OnMemberChange(curPlayer): return curPlayer.GetDictByKey(Mission_No_ID_OnMemberChange) #--------------------------------------------------------------------- # ## ÉèÖÃGM¿ªÆô»î¶¯ # @param curPlayer µ±Ç°Íæ¼Ò # @param value keyÖµ # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def Set_Mission_Have_ID_OnActive(curPlayer, value): curPlayer.SetDict(Mission_Have_ID_OnActive, value) #GameWorld.Log('Set_Mission_Have_ID_OnActive, value = %s'%( value ) , curPlayer.GetID()) return ## »ñÈ¡Íæ¼Ò×Öµä GM¿ªÆô»î¶¯ # @param curPlayer µ±Ç°Íæ¼Ò # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def Get_Mission_Have_ID_OnActive(curPlayer): return curPlayer.GetDictByKey(Mission_Have_ID_OnActive) #GM¹Ø±Õ»î¶¯ ## ÉèÖÃGM¹Ø±Õ»î¶¯ # @param curPlayer µ±Ç°Íæ¼Ò # @param value keyÖµ # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def Set_Mission_Have_ID_OnDeActive(curPlayer, value): curPlayer.SetDict(Mission_Have_ID_OnDeActive, value) #GameWorld.Log('Set_Mission_Have_ID_OnDeActive, value = %s'%( value ) , curPlayer.GetID()) return ## »ñÈ¡Íæ¼Ò×Öµä GM¹Ø±Õ»î¶¯ # @param curPlayer µ±Ç°Íæ¼Ò # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def Get_Mission_Have_ID_OnDeActive(curPlayer): return curPlayer.GetDictByKey(Mission_Have_ID_OnDeActive) #·¢²¼ÈÎÎñ ## ÉèÖ÷¢²¼ÈÎÎñ # @param curPlayer µ±Ç°Íæ¼Ò # @param value keyÖµ # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def Set_Mission_Have_ID_OnMissionPub(curPlayer, value): curPlayer.SetDict(Mission_Have_ID_OnMissionPub, value) #GameWorld.Log('Set_Mission_Have_ID_OnMissionPub, value = %s'%( value ) , curPlayer.GetID()) return ## »ñÈ¡Íæ¼Ò×Öµä ·¢²¼ÈÎÎñ # @param curPlayer µ±Ç°Íæ¼Ò # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def Get_Mission_Have_ID_OnMissionPub(curPlayer): return curPlayer.GetDictByKey(Mission_Have_ID_OnMissionPub) #--------------------------------------------------------------------- #=============================================================================== # //01 15 Íæ¼ÒÔÚRouteServer³õʼ»¯³É¹¦#tagPlayerRouteServerInitOK # structtagPlayerRouteServerInitOK # { # tag HeadHead; # BYTE Type; //±£Áô£¬ÎÞÒâÒå # }; #=============================================================================== ## 01 15 Íæ¼ÒÔÚRouteServer³õʼ»¯³É¹¦#tagPlayerRouteServerInitOK # @param index Íæ¼ÒË÷Òý # @param tick µ±Ç°Ê±¼ä # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def RouteServer_PlayerInitOK(index, tick): #=============================================================================== # #Õâ¸öº¯Êý½öÔÚÍæ¼ÒµÇ½³É¹¦ºó²Å´¥·¢Ò»´Î #=============================================================================== curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index) #ÕâÀïÒªÅж¨¿Õ if not curPlayer: GameWorld.ErrLog('RouteServer_PlayerInitError playerIndex = %s'%(index)) return #=============================================================================== # #ÉèÖÃRouteServer³õʼ»¯³É¹¦ # curPlayer.SetRouteServerInitOK(True) #=============================================================================== #ÉèÖýű¾×Öµä½Ó¿Ú, ´Ë½Ó¿Ú´æÊý¾Ý¿â, ÏÂÏßÇå³ýÒ»´Î PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_RouteServerInitOK, 1) #»º´æµÄÀ뿪¸±±¾·â°ü if Get_PlayerRouteServerInitOK_OnLeaveFB(curPlayer): PlayerControl.PlayerLeaveFB(curPlayer) Set_PlayerRouteServerInitOK_OnLeaveFB(curPlayer, 0) return #--------------------------------------------------------------------- ## ±£´æÀ뿪¸±±¾ÐÅÏ¢ # @param curPlayer µ±Ç°Íæ¼Ò # @param value keyÖµ # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def Set_PlayerRouteServerInitOK_OnLeaveFB(curPlayer, value): curPlayer.SetDict(Def_RouteServerInitOK_LeaveFBKey, value) return ## »ñÈ¡±£´æÀ뿪¸±±¾ÐÅÏ¢ # @param curPlayer µ±Ç°Íæ¼Ò # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def Get_PlayerRouteServerInitOK_OnLeaveFB(curPlayer): return curPlayer.GetDictByKey(Def_RouteServerInitOK_LeaveFBKey) #--------------------------------------------------------------------- #=============================================================================== # //04 05Íæ¼Òµãȯ¶Ò»»Ôª±¦#tagPlayerCoinToGold # struct tagPlayerCoinToGold # { # tagHead Head; # DWORD PlayerID; # DWORD Coin;//±¾´Î¶Ò»»µÄµãÊý # DWORD PrizeCoin; //ÔùË͵ĵãÊý # }; #=============================================================================== ##04 05Íæ¼Òµãȯ¶Ò»»Ôª±¦#tagPlayerCoinToGold # @param index Íæ¼ÒË÷Òý # @param tick ʱ¼ä´Á # @return ·µ»ØÖµÎÞÒâÒå # @remarks ¿Í»§¶Ë·â°üÏìÓ¦ 04 05Íæ¼Òµãȯ¶Ò»»Ôª±¦#tagPlayerCoinToGold def GameServer_PlayerCoinToGold(index, tick): #=========================================================================== # curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index) # pack = IPY_GameWorld.IPY_PlayerCoinToGold() # if curPlayer.GetLastOrderId() == "": # return # PlayerCoin.PlayerCoinToGold(curPlayer, pack, ChConfig.Def_GiveMoney_CoinToGold) #=========================================================================== return # DBÍÆË͹ýÀ´µÄ³äÖµÐÅÏ¢ def PushRecharge(index, tick): curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index) if not curPlayer or curPlayer.IsEmpty(): #¿ÉÄܸպÃÏÂÏßµ¼ÖÂÍæ¼Ò¶ÔÏóΪ¿Õ return cPlayerCoin = PlayerCoin.CPY_PlayerCoinToGold() cPlayerCoin.useCoin = curPlayer.GetOrderAmount() cPlayerCoin.orderID = curPlayer.GetOrderID() cPlayerCoin.orderInfo = curPlayer.GetOrderInfo() cPlayerCoin.isAddBourseMoney = True GameWorld.DebugLog("PushRecharge-%s-%s-%s"%(cPlayerCoin.useCoin, cPlayerCoin.orderID, cPlayerCoin.orderInfo)) PlayerCoin.PlayerCoinToGold(curPlayer, cPlayerCoin, ChConfig.Def_GiveMoney_CoinToGold) return