#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#---------------------------------------------------------------------
|
#
|
#---------------------------------------------------------------------
|
##@package EventShell
|
# @todo: ʼþ¹ÜÀíÆ÷
|
#
|
# @author: eggxp
|
# @date 2010-4-20
|
# @version 6.8
|
#
|
# @note: ¹ÜÀíËùÓÐNPCʼþ´¥·¢½Ó¿Ú
|
#---------------------------------------------------------------------
|
# @change: "2013-04-15 11:00" wdb ½«ComparePlayerLV_UseItem¸üÃûΪCheckItemUseLV£¬·ÅÈëItemControler
|
# @change: "2013-04-18 17:00" wdb ÎïÆ·ÑÕɫʹÓÃÐÞ¸Ä
|
# @change: "2013-05-03 17:00" wdb npcÉ̵êÐÞ¸Ä
|
# @change: "2013-05-07 15:30" wdb ²Ö¿âÐÞ¸Ä
|
# @change: "2013-05-20 11:00" wdb Ôö¼Ó¸±±¾É¨µ´
|
# @change: "2013-05-29 11:55" Alee ÐÂÔöɱµÈ¼¶·¶Î§µÄÈÎÎñÂß¼(дËÀ)
|
# @change: "2013-05-30 10:30" wdb ×°±¸±¦Ê¯ÏâǶµ÷Õû
|
# @change: "2013-06-06 21:30" Alee Õ½¶·×´Ì¬²»¿É½øÈëÈÎÎñ¶Ô»°£¬µ¼Ö¶ÔÏó±ä¸üµÈÎÊÌâ
|
# @change: "2013-07-08 15:00" Alee Ìí¼ÓÆÕͨǿ»¯´¥·¢ÈÎÎñ
|
# @change: "2013-07-09 15:30" Alee ÒѽÓÈÎÎñÉý¼¶´¥·¢Âß¼
|
# @change: "2013-07-19 20:00" Alee Ìí¼Ó»Ø¹º
|
# @change: "2013-07-26 17:00" Alee VIP´ò¿ªÔ¶³Ì²Ö¿â
|
# @change: "2013-09-10 20:10" Alee ϵͳÌáʾ³åÍ»
|
# @change: "2013-09-18 17:00" Alee Í˳öËø¶¨Í˳ö½»Ò×
|
# @change: "2013-09-23 19:30" Alee ºìÃûÌáʾÐÞ¸Ä
|
# @change: "2013-11-15 20:20" hxp ¹Ø±Õ07 3A¹ºÂò±³°ü·â°ü¹¦ÄÜ£¬Ôö¼Ó±³°ü³É¹¦ÏµÍ³Ìáʾ
|
# @change: "2013-12-12 14:30" hxp Ôö¼Ó×êʯ¹ºÂò±³°ü¼Æ·Ñµãʼþͬ²½
|
# @change: "2013-12-13 12:20" hxp ÐÞ¸ÄÊ×µÇÎïÆ·°ó¶¨ÉèÖÃ
|
# @change: "2013-12-27 16:00" Alee ɾ³ý¶àÓà´úÂë
|
# @change: "2014-01-08 13:20" hxp ÐÞ¸Ä×êʯ¹ºÂò±³°ü»¨·Ñ×êʯ¼Æ·Ñµãʼþͬ²½£¬ÔÚPayMoneyÄڲ㴦Àí
|
# @change: "2014-02-17 17:30" hxp Ôö¼Ó¹ºÂò·ûÎı³°ü¸ñ×Ó
|
# @change: "2014-03-18 19:00" hxp Ê×µÇÔùËÍÎïÆ·¸ÄΪÅäÖÃÎļþÅäÖÃ
|
# @change: "2014-03-27 19:30" hxp Ôö¼Ó×øÆï»»×°
|
# @change: "2014-04-04 20:00" hxp Ôö¼Ó×øÆï»»¼¼ÄÜ£¬¹Ù¾ô¼¼ÄÜ
|
# @change: "2014-04-07 12:30" hxp ³á°òÏà¹Ø±³°üÎïÆ·½»»»
|
# @change: "2014-04-17 20:30" hxp ÉñÆ÷ʱװ»»×°
|
# @change: "2014-04-22 17:50" xcc Ôö¼ÓÔÚÏßʱ¼äÃâ·Ñ¿ªÆô±³°ü¹¦ÄÜ
|
# @change: "2014-04-26 19:30" hxp ÁìµØÕ½ÇÅ
|
# @change: "2014-04-28 14:00" Alee ɾ³ý²âÊÔ×ʽð
|
# @change: "2014-05-23 14:30" xcc Ôö¼Óħ·½±³°üÎïÆ··ÅÈë½ÇÉ«±³°üµÄ½Ó¿Ú
|
# @change: "2014-05-23 15:40" xcc ÐÞ¸´È«²¿·ÅÈë·ÅÈëʧ°ÜµÄbug
|
# @change: "2014-06-06 17:00" hxp Ôö¼Ó¿ìËÙÍê³ÉÈÎÎñʼþ
|
# @change: "2014-06-23 14:30" Alee ¹Ø±ÕÊä³ö
|
# @change: "2014-07-24 21:30" hxp Ôö¼ÓÉèÖÃÅÜ»·ÈÎÎñÐǼ¶£¬Ò»¼üÍê³ÉËùÓÐÅÜ»·ÈÎÎñ
|
# @change: "2014-07-31 21:30" hxp È¡ÏûºìÃû²»ÄÜÓëNPC¶Ô»°ÏÞÖÆ
|
# @change: "2014-08-26 11:00" hxp NotifyOneMissionÔö¼Ó²ÎÊýÑ¡ÔñÊÇ·ñͬ²½¸ÃÈÎÎñÈ«²¿×ÖµäÐÅÏ¢
|
# @change: "2014-12-25 16:10" ljd ͬ²½ÉÏÒ»´Î±³°ü¿ª¸ñʱ¼ä
|
# @change: "2015-01-10 23:00" hxp ²Ö¿â¹ºÂòÌØÊâ´¦Àí
|
# @change: "2015-01-14 00:30" hxp Ôö¼Óʼþ»ã±¨
|
# @change: "2015-01-22 15:00" hxp ¾«¼òlogÊä³ö
|
# @change: "2015-03-20 15:00" hxp Ôö¼ÓÊÕ»ñ¹ûʵ£¬¸±±¾²É¼¯Ê¼þ£»Ôö¼Ó½øÈë¼ÒÔ°´«ËÍÃÅÈë¿Ú
|
# @change: "2015-03-23 11:00" Alee ¼Ò×åÉý¼¶Ê¼þ¸ÄΪ´¥·¢ËùÓнڵã
|
# @change: "2015-03-28 11:40" ljd Ôö¼ÓÈÎÎñ°ëСʱ´¥·¢Ê¼þ×¢²á¡¢¹ºÂòÈÕ³£ÈÎÎñÉÏÏÞ
|
# @change: "2015-04-09 15:00" hxp ¸±±¾ÖÐÎÞ·¨É¾³ýÈÎÎñÌáʾÐÞ¸Ä
|
# @change: "2015-06-15 23:00" hxp ʱװ»»×°
|
# @change: "2015-07-13 14:00" hxp Á÷ÏòÔö¼ÓÍæ¼Ò²ÎÊý
|
# @change: "2015-07-16 15:00" zqx Ôö¼ÓµÀ¾ß¿ªÆô±³°ü¸ñ×Ó
|
# @change: "2015-08-10 14:00" zqx Ð޸Ŀª¸ñ¿ÛµÀ¾ßÂß¼
|
# @change: "2015-12-08 18:00" hxp Ôö¼Ó²»ÊÇͨ¹ýNPC¶Ô»°½çÃæ½øÈëµØÍ¼IDÅäÖÃ
|
# @change: "2016-05-17 18:00" hxp Ôö¼Ó·ÇNPC¶Ô»°Íê³ÉÈÎÎñÁìÈ¡½±Àø
|
# @change: "2016-07-27 10:40" xdh Ê״εǼ¼¤»îÅå´÷³ÆºÅ
|
# @change: "2016-10-28 10:40" xdh ×øÆï¡¢³á°ò¡¢³È×°ÊýÁ¿´¥·¢ÈÎÎñ
|
# @change: "2016-12-26 21:00" xdh ¾ôλÉý½×¡¢²¿Î»Ç¿»¯ÐǼ¶´¥·¢ÈÎÎñ
|
#---------------------------------------------------------------------
|
#"""Version = 2016-12-26 21:00"""
|
#---------------------------------------------------------------------
|
import IPY_GameWorld
|
import GameWorld
|
import EventSrc
|
import ChConfig
|
import QuestManager
|
import QuestRunner
|
import PlayerControl
|
import FunctionNPCCommon
|
import FBLogic
|
import ItemControler
|
import ItemCommon
|
import QuestCommon
|
import copy
|
import GameLogInfo
|
import time
|
import GameServerRefresh
|
import PlayerMissionCollect
|
import ReadChConfig
|
import PlayerFamily
|
import ShareDefine
|
import Operate_PlayerBuyZhenQi
|
import Func_6
|
import DataRecordPack
|
import PlayerCoin
|
import PlayerTrade
|
import PlayerExpandPackCfgMgr
|
import EventReport
|
import PlayerCoat
|
import PlayerGatherSoul
|
#import PlayerArrestTask
|
import PlayerRune
|
import IpyGameDataPY
|
import FormulaControl
|
import GameFuncComm
|
import ChPyNetSendPack
|
import NetPackCommon
|
import NPCCommon
|
import PlayerVip
|
import PlayerGoldInvest
|
import GameObj
|
|
import math
|
import random
|
#---------------------------------------------------------------------
|
|
#ÿÈÕÈÎÎñ×îС´¥·¢µÈ¼¶
|
Day_Event_Trig_Min_LV = 21
|
|
#ÈÎÎñ´¥·¢Ä£Ê½
|
Def_RunQuestType_Normal = 1 #ÆÕͨ
|
#Def_RunQuestType_NoAnswer = 2 #²»ÐèÒª»ØÓ¦(LVUp)
|
Def_RunQuestType_RunAll = 3 #ÔËÐÐËùÓÐ(OnDay), ÿÈÕÅж¨(²»ÄÜÖ»ÔÚonLVUPµÄʱºòÅж¨, ÒòÎªÍæ¼Ò¿ÉÄÜÅѹú, Åѹúºó, Èç¹ûÖ»ÔÚonLVUPµÄʱºòд, ÄÇôÅѹúºó½Ó²»µ½Ã¿ÈÕÈÎÎñ)
|
Def_RunQuest_ChangeMap_Tick = 1000
|
|
Def_Warehouse_FuncName = "Func_6" # ²Ö¿âÏà¹Ø¹¦ÄÜpyÃû
|
############################################################
|
#def QuestRunner_GetFunc(name):
|
# return GameWorld.GetExecFunc(EventSrc, "QuestRunner.%s"%name)
|
#---------------------------------------------------------------------
|
#µ¼ÈëËùÓеÄNPCAI
|
GameWorld.ImportAll("Script\\Event\\" , "EventSrc")
|
GameWorld.ImportAll("Script\\Event\\" , "")
|
#---------------------------------------------------------------------
|
##C++´¥·¢·â°üÖØ¶ÁËùÓÐʼþ
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks C++´¥·¢·â°üÖØ¶ÁËùÓÐʼþ
|
def ReloadEvent(tick):
|
scriptPath = ChConfig.GetAppPath() + "Script\\Event\\EventSrc"
|
GameWorld.ReloadScript(scriptPath, "EventSrc")
|
|
scriptPath = ChConfig.GetAppPath() + "Script\\Event"
|
GameWorld.ReloadScript(scriptPath, "")
|
|
#ÖØÐ¶Áȡʼþ
|
QuestManager.ReloadQuests(tick)
|
DoReloadRefresh()
|
return
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //08 01 ʼþ´¥·¢#tagCNPCTalk
|
# tagCNPCTalk * GettagCNPCTalk();
|
#
|
# class IPY_CNPCTalk
|
# {
|
# public:
|
#
|
# int GetNPCID();
|
#
|
# int GetPosX();
|
#
|
# int GetPosY();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë//08 01·â°üÏìÓ¦ ʼþ´¥·¢#tagCNPCTalk
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë//08 01·â°üÏìÓ¦ ʼþ´¥·¢#tagCNPCTalk
|
def BeginEvent(index, tick):
|
GameWorld.GetPsycoFunc(__Func_BeginEvent)(index, tick)
|
return
|
|
##¿Í»§¶Ë//08 01·â°üÏìÓ¦ ʼþ´¥·¢#tagCNPCTalk
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë//08 01·â°üÏìÓ¦ ʼþ´¥·¢#tagCNPCTalk
|
def __Func_BeginEvent(index, tick):
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
|
if curPlayer.GetPlayerAction() != IPY_GameWorld.paNull:
|
#Íæ¼Ò״̬²»ÊÇ¿ÕÏÐ״̬
|
return
|
|
#·À³ÁÃÔ
|
if curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_Wallow_LV) > ChConfig.Def_GameWallow_LV_First:
|
PlayerControl.NotifyCode(curPlayer, "AvoidSink09")
|
return
|
|
#===============================================================================
|
# #ÒÆ¶¯Öв»Ö´Ðд˲Ù×÷
|
# if curPlayer.IsMoving():
|
# PlayerControl.NotifyCode(curPlayer, "GeRen_lhs_0")
|
# return
|
#===============================================================================
|
|
if tick - curPlayer.GetResetWorldPosAskTick() < Def_RunQuest_ChangeMap_Tick:
|
#[bug]2009.4.25
|
#1. Íæ¼Ò½øÈë·ÙÌìÈܶ´(ÈÎÎñ״̬ÉèÖÃΪ2)
|
#2. ÔڵȴýÇл»µØÍ¼»ØÓ¦Ö®Ç°, ÆÕͨÁÄÌì(ÈÎÎñ״̬ÉèÖÃΪ1)
|
#3. ½øÈëµØÍ¼ÁË
|
#ÕâÑù¾Í¿ÉÒÔË¢·ÙÌìÈܶ´
|
GameWorld.GodLog(curPlayer, "BeginEvent, ResetWorldPosAskTick")
|
return
|
|
#Íæ¼Ò´¥·¢Ê¼þ
|
sendPack = IPY_GameWorld.IPY_CNPCTalk()
|
|
sendPack_EventNPCID = sendPack.GetNPCID()
|
sendPack_NPCPosX = sendPack.GetPosX()
|
sendPack_NPCPosY = sendPack.GetPosY()
|
|
if sendPack_EventNPCID == 0:
|
#Ŀǰ²»´¦ÀíµØµã´¥·¢Ààʼþ
|
return
|
|
#2010/5/6 ÒÆ¶¯ÖнÓÊܿͻ§¶Ë·â°ü(Òò¿Í»§¶ËÒÆ³ýStopmove), УÑéÎó²î, ÀÛ¼Ó
|
#===========================================================================
|
# if not PlayerControl.PlayerRefreshPos(curPlayer, curPlayer, sendPack_NPCPosX, sendPack_NPCPosY):
|
# #Íæ¼Òµ±Ç°Î»ÖÃË¢ÐÂʧ°Ü
|
# #GameWorld.Log(' CheckUseSkill RefreshPosErr packPos = ( %s, %s ), playerPos = ( %s, %s )'%( posX, posY, curPlayer.GetPosX(), curPlayer.GetPosY() ), curPlayerID )
|
# return
|
#===========================================================================
|
|
#Ö´ÐжԻ°Âß¼
|
EventLogic(curPlayer, sendPack_EventNPCID, tick)
|
return
|
|
#// C1 06 ¿ç·þNPC¶Ô»° #tagCMCrossNPCTalk
|
#
|
#struct tagCMCrossNPCTalk
|
#{
|
# tagHead Head;
|
# WORD ObjID;
|
# DWORD NPCID;
|
# WORD PosX;
|
# WORD PosY;
|
#};
|
def OnCrossNPCTalk(index, clientData, tick):
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
|
objID = clientData.ObjID
|
npcID = clientData.NPCID
|
#posX = clientData.PosX
|
#posY = clientData.PosY
|
if GameWorld.IsCrossServer():
|
return
|
|
lastTick = curPlayer.GetDictByKey("CrossNPCTalkTick")
|
if tick - lastTick < 2000:
|
return
|
curPlayer.SetDict("CrossNPCTalkTick", tick)
|
|
npcData = GameWorld.GetGameData().FindNPCDataByID(npcID)
|
if not npcData:
|
GameWorld.ErrLog("¿ç·þNPCID²»´æÔÚ! npcID=%s" % npcID)
|
return
|
|
# ĿǰÔÝÖ§³Ö¿ç·þ²É¼¯
|
if npcData.GetType() not in [IPY_GameWorld.ntCollection, IPY_GameWorld.ntMissionCollect]:
|
return
|
|
collectNPCIpyData = IpyGameDataPY.GetIpyGameData("CollectNPC", npcID)
|
if collectNPCIpyData:
|
if not NPCCommon.CheckCanCollectByNPCID(curPlayer, npcID, collectNPCIpyData):
|
return
|
|
msgDict = {"PlayerID":curPlayer.GetPlayerID(), "ObjID":objID, "NPCID":npcID}
|
GameWorld.SendMsgToCrossServer(ShareDefine.ClientServerMsg_CollectNPC, msgDict)
|
|
return
|
|
def ClientServerMsg_CollectNPC(curPlayer, msgData, serverGroupID, tick):
|
## ÊÕµ½×Ó·þͬ²½µÄ²É¼¯NPC
|
objID = msgData["ObjID"]
|
npcID = msgData["NPCID"]
|
curNPC = GameWorld.FindNPCByID(objID)
|
if not curNPC:
|
return
|
if npcID != curNPC.GetNPCID():
|
GameWorld.ErrLog("²É¼¯¿ç·þNPC´íÎó!npcID=%s != curNPCID=%s" % (npcID, curNPC.GetNPCID()))
|
return
|
EventLogic(curPlayer, objID, tick)
|
return
|
|
##¿Í»§¶Ë//08 01·â°üÏìÓ¦ ×Ô¶¨Ò庯Êý: ʼþ´¦Àí
|
#@param curPlayer µ±Ç°Íæ¼Ò
|
#@param eventNPCID ʼþNPCID
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë//08 01·â°üÏìÓ¦ ×Ô¶¨Ò庯Êý: ʼþ´¦Àí
|
def EventLogic(curPlayer, eventNPCID, tick):
|
#¼ì²éÍæ¼ÒºÍNPCµÄ¾àÀëÔÚ²»ÔÚ¶Ô»°·¶Î§ÄÚ
|
curNPC = GameWorld.GetNPCManager().FindNPCByID(eventNPCID)
|
|
#ûÓÐÕâ¸öNPC
|
if curNPC == None :
|
return
|
|
#¿É½øÈëʼþÀàÐÍNPC
|
eventNPCType = [IPY_GameWorld.ntFunctionNPC, IPY_GameWorld.ntCollection, IPY_GameWorld.ntMissionCollect]
|
|
if curNPC.GetType() not in eventNPCType:
|
GameWorld.Log("²»ÊǶԻ°NPC, ²»ÄܶԻ° %d"%(curNPC.GetType()) , curPlayer.GetPlayerID())
|
return
|
|
dist = GameWorld.GetDist(curPlayer.GetPosX(), curPlayer.GetPosY(), curNPC.GetPosX(), curNPC.GetPosY())
|
|
if dist > ChConfig.Def_EventDist:
|
#Íæ¼Ò¾àÀë¹ýÔ¶, ²»ÄÜ´¥·¢
|
curPlayer.ResetPos(curPlayer.GetPosX(), curPlayer.GetPosY())
|
return
|
|
if curNPC.GetType() == IPY_GameWorld.ntCollection:
|
#¼Ò×åÕ½µÄËþºÍÆå, ¶Ô»°»á¿ªÊ¼¶Á½ø¶ÈÌõ
|
__BeginCollect(curPlayer, curNPC, tick)
|
return
|
|
#ÈÎÎñ²É¼¯NPC
|
if curNPC.GetType() == IPY_GameWorld.ntMissionCollect:
|
PlayerMissionCollect.QueryMissionCollect(curPlayer, curNPC, tick)
|
return
|
|
#Çå¿ÕÍæ¼Ò´«Ë͵ØÍ¼´ø×ßµÄNPC
|
#ÒòΪ¸±±¾ÈÎÎñÖÐ, Èç¹û¸±±¾ÈËÂú²»Äܽø, »á´«ËÍÒ»´Î¶àÒ»Ö»NPC...
|
curPlayer.ClearChangeMapTakeCreateNPC()
|
|
#ÔÚXML±íÖÐÕÒµ½Õâ¸öNPCµÄ½Å±¾
|
EventRespons_OnVisit(curPlayer, curNPC)
|
return
|
|
##¿Í»§¶Ë//08 01·â°üÏìÓ¦ ×Ô¶¨Ò庯Êý: ¿ªÊ¼¼Ò×åÕ½ÖеÄËþºÍÆÚÀ½ø¶ÈÌõ
|
#@param curPlayer µ±Ç°Íæ¼Ò
|
#@param curNPC ʼþNPCʵÀý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë//08 01·â°üÏìÓ¦ ×Ô¶¨Ò庯Êý: ¿ªÊ¼¼Ò×åÕ½ÖеÄËþºÍÆÚÀ½ø¶ÈÌõ
|
def __BeginCollect(curPlayer, curNPC, tick):
|
result = FBLogic.OnCanCollect(curPlayer, curNPC, tick)
|
if not result:
|
#²»¿É²É¼¯
|
return
|
|
curPlayer.SetActionObj(curNPC)
|
PlayerControl.ChangePlayerAction(curPlayer, IPY_GameWorld.paNull)
|
|
if NPCCommon.OnCollectNPCBegin(curPlayer, curNPC, tick):
|
return
|
|
prepareTime = FBLogic.GetFBPrepareTime(curPlayer, curNPC)
|
|
collTimeReduceRate = PlayerVip.GetPrivilegeValue(curPlayer, ChConfig.VIPPrivilege_CollTimeReduceRate)
|
if collTimeReduceRate:
|
prepareTime = max(1000, int(prepareTime * (ShareDefine.Def_MaxRateValue - collTimeReduceRate) / float(ShareDefine.Def_MaxRateValue)))
|
|
PlayerControl.Sync_PrepareBegin(curPlayer, prepareTime, IPY_GameWorld.pstCollecting, prepareID = curNPC.GetID())
|
|
##Ìí¼ÓÕâ¸öNPCµÄÉËѪÁÐ±í£¬ÓÃÓÚ¶à¸öÈËÒ»ÆðÇÀÆå£¬Ò»È˳ɹ¦ºó£¬ÆäËûÈË´ò¶Ï
|
curNPC_HurtList = curNPC.GetPlayerHurtList()
|
import AttackCommon
|
AttackCommon.AddHurtValue(curNPC, curPlayer.GetPlayerID(), ChConfig.Def_NPCHurtTypePlayer, 1)
|
return
|
#---------------------------------------------------------------------
|
|
#===============================================================================
|
# //08 02 ʼþ»ØÓ¦#tagCNPCAnswer
|
# tagCNPCAnswer * GettagCNPCAnswer();
|
#
|
# class IPY_CNPCAnswer
|
# {
|
# public:
|
#
|
# int GetAnswerLen();
|
# //size = AnswerLen
|
# char * GetAnswer();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë//08 02·â°üÏìÓ¦ ʼþ»ØÓ¦#tagCNPCAnswer
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë//08 02·â°üÏìÓ¦ ʼþ»ØÓ¦#tagCNPCAnswer
|
def EventAnswer(index, tick):
|
GameWorld.GetPsycoFunc(__Func_EventAnswer)(index, tick)
|
return
|
|
##¿Í»§¶Ë//08 02·â°üÏìÓ¦ ʼþ»ØÓ¦#tagCNPCAnswer
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë//08 02·â°üÏìÓ¦ ʼþ»ØÓ¦#tagCNPCAnswer
|
def __Func_EventAnswer(index, tick):
|
timeClock = time.clock()
|
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
|
# if curPlayer.GetPlayerAction() != IPY_GameWorld.paEvent:
|
# #Íæ¼Ò²»ÔÚʼþÖÐ,·µ»Ø
|
# GameWorld.Log("EventAnswer, Íæ¼Ò²»ÔÚʼþÖÐ", curPlayer.GetID())
|
# return
|
|
if tick - curPlayer.GetResetWorldPosAskTick() < Def_RunQuest_ChangeMap_Tick:
|
#[bug]2009.4.25
|
#1. Íæ¼Ò½øÈë·ÙÌìÈܶ´(ÈÎÎñ״̬ÉèÖÃΪ2)
|
#2. ÔڵȴýÇл»µØÍ¼»ØÓ¦Ö®Ç°, ÆÕͨÁÄÌì(ÈÎÎñ״̬ÉèÖÃΪ1)
|
#3. ½øÈëµØÍ¼ÁË
|
#ÕâÑù¾Í¿ÉÒÔË¢·ÙÌìÈܶ´
|
GameWorld.GodLog(curPlayer, "EventAnswer, ResetWorldPosAskTick")
|
return
|
|
sendPack = IPY_GameWorld.IPY_CNPCAnswer()
|
answer = sendPack.GetAnswer()
|
if answer == "":
|
#Íæ¼Ò»Ø´ðΪ¿Õ
|
GameWorld.Log("Íæ¼Ò»Ø´ðΪ¿Õ" , curPlayer.GetPlayerID())
|
return
|
|
answerBase = copy.deepcopy(answer)
|
answer = answer.lower()
|
if answer == "cancel":
|
#GameWorld.Log("Íæ¼ÒÇ¿ÖÆ½áÊøÊ¼þ" , curPlayer.GetPlayerID())
|
DoExitEvent(curPlayer)
|
return
|
|
funcHead = "fc_"
|
xmlFuncHead = "evt_"
|
|
curNPC = QuestRunner.GetPlayerTalkNPC(curPlayer)
|
#ºìÃûÍæ¼ÒÎÞ·¨½Ó,½»ÈÎÎñ
|
# if curPlayer.GetPlayerNameColor() == IPY_GameWorld.pncRed and __Check_FunctionNPC_Talk_RedName(curNPC):
|
# PlayerControl.NotifyCode(curPlayer, "PK_lhs_161795")
|
# #½áÊøÊ¼þ
|
# DoExitEvent(curPlayer)
|
# return
|
|
if curNPC != None and not GameWorld.IsSameCountry(curPlayer, curNPC) :
|
#PK_lhs_372238 <n color="255,0,0">ÎÒ²»»á¸øµÐÈËÌṩÈκΰïÖúµÄ!</n>
|
#²»Í¬¹ú¼®, ²»ÄܺÍNPC¶Ô»°
|
#PlayerControl.NotifyCode(curPlayer, "PK_lhs_372238")
|
DoExitEvent(curPlayer)
|
return
|
|
GameWorld.DebugLog("%s(%d) ·ÃÎÊNPC»ØÓ¦: %s"%(curPlayer.GetName(), curPlayer.GetID(), answerBase) , curPlayer.GetPlayerID())
|
|
if answer.find(funcHead) == 0:
|
#ÊÇʼþÏìÓ¦
|
if curNPC == None:
|
#ûÓÐÕâ¸öNPC
|
GameWorld.Log("funcHeadûÓÐÕâ¸öNPC" , curPlayer.GetPlayerID())
|
return
|
|
#µÃµ½Íæ¼ÒµÄ¶ÔÏó
|
funcAnswer = answerBase.replace(funcHead, "")
|
responseType="Func_%d"%curNPC.GetFunctionType()
|
callFunc = GameWorld.GetExecFunc(EventSrc, "%s.%s"%(responseType, funcAnswer))
|
|
if callFunc == None:
|
#º¯Êýµ÷Óò»¿ÉʹÓÃ
|
GameWorld.Log("»ØÓ¦Ê¼þÏìÓ¦ %s %s²»¿ÉʹÓÃ"%(responseType, funcAnswer) , curPlayer.GetPlayerID())
|
return
|
|
callFunc(curPlayer, tick)
|
return
|
|
elif answer.find(xmlFuncHead) == 0:
|
#ÔËÐÐFuncĿ¼ÏµÄXMLÎļþ
|
#ʼþ¶Ô»°(¿ªÍ¨²Ö¿â, ¹ºÂòæô³µÂíÆ¥Ê¹ÓÃʱ¼äµÈ
|
funcAnswer = answer.replace(xmlFuncHead, "")
|
QuestsEvent = QuestManager.GetAllQuestsEvents()
|
curNPC = QuestRunner.GetPlayerTalkNPC(curPlayer)
|
|
if curNPC == None:
|
#ûÓÐÕâ¸öNPC
|
GameWorld.Log("GetPlayerTalkNPCûÓÐÕâ¸öNPC" , curPlayer.GetPlayerID())
|
return
|
|
#µÃµ½NPCµÄTypeID
|
funcType = curNPC.GetFunctionType()
|
key = ("function_npc", "%d_%s.xml"%(funcType, funcAnswer))
|
|
if QuestsEvent.has_key(key):
|
for event in QuestsEvent[key]:
|
nodeList = event[1].GetXMLEventLoader().GetNodeList()
|
#ÔËÐÐfunction_npcĿ¼ÏµÄ[funcType].xmlÎļþ
|
if QuestRunner.RunFunctionQuest(curPlayer, nodeList) != True:
|
GameWorld.Log("ÈÎÎñʼþ¶Ô»°Ö´ÐÐʧ°Ü" , curPlayer.GetPlayerID())
|
DoExitEvent(curPlayer)
|
else:
|
GameWorld.Log("¹þÏ¸ÌØËøÂðÀû(¾«Áé×åÓï) %s"%(str(key)) , curPlayer.GetPlayerID())
|
DoExitEvent(curPlayer)
|
|
return
|
|
else:
|
|
#ÆÕͨ¶Ô»°
|
QuestRunner.RunPlayerAnswer(curPlayer, answer)
|
|
#¼Ç¼ÈÎÎñÏà¹ØÐÅÏ¢
|
GameLogInfo.LogInfo_MissionTime(timeClock)
|
GameLogInfo.LogInfo_MissionCount(1)
|
return
|
#---------------------------------------------------------------------
|
|
##ÈÎÎñ´¥·¢Æ÷×°±¸ÆÕͨǿ»¯Ê¹ÓôÎÊý
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@param curNPC NPCʵÀý
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ÈÎÎñ´¥·¢Æ÷_OnKillById »÷ɱָ¶¨IDµÄ¹ÖÎï
|
def EventRespons_OnEquipNormalPlus(curPlayer, itemID):
|
RunQuestEvent(curPlayer, "on_equip_normal_plus", itemID, Def_RunQuestType_Normal)
|
return
|
|
|
## ÈÎÎñ´¥·¢Æ÷_OnVisit ºÍNPC¶Ô»°
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@param curNPC NPCʵÀý
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ÈÎÎñ´¥·¢Æ÷_OnVisit ºÍNPC¶Ô»°
|
def EventRespons_OnVisit(curPlayer, curNPC):
|
#GameWorld.Log("·ÃÎÊNPCËø×¡" , curPlayer.GetPlayerID())
|
curPlayer.BeginEvent()
|
curPlayer.SetActionObj(curNPC)
|
|
#µÃµ½NPCµÄTypeID
|
npcTypeID = curNPC.GetNPCID()
|
#GameWorld.Log("%s(%d) ·ÃÎÊNPC %d"%(curPlayer.GetName(), curPlayer.GetID(),npcTypeID) , curPlayer.GetPlayerID())
|
if QuestRunner.RunQuestOnVisit(curPlayer, npcTypeID) != True:
|
GameWorld.Log("%sÈÎÎñ¶Ô»°Ö´ÐÐʧ°Ü"%(npcTypeID) , curPlayer.GetPlayerID())
|
DoExitEvent(curPlayer)
|
|
return
|
#---------------------------------------------------------------------
|
##ÈÎÎñ_ÿÈÕÈÎÎñ //0.xml, º¯Êýµ÷Óà QuestRunner.RunQuest Ö´ÐÐÂß¼
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@param eventName ʼþ×ÖµäÃû
|
#@param trigID ʼþ×ÖµäÖµ
|
#@param eventDictName Ëæ»úʼþ×ÖµäÃû£¬´¢´æID
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ÈÎÎñ_ÿÈÕÈÎÎñ //0.xml, º¯Êýµ÷Óà QuestRunner.RunQuest Ö´ÐÐÂß¼
|
def RunDayEvent(curPlayer, eventName, trigID, eventDictName):
|
QuestsEvent = QuestManager.GetAllQuestsEvents()
|
key = (eventName, "0.xml")
|
#ÒòΪÿÈÕÈÎÎñɱ¹ÖËæ»ú, ËùÒÔÖ»ÓÐÓÃ0.xmlÀ´¶ÁÈ¡
|
if not QuestsEvent.has_key(key) :
|
return
|
|
curQuestList = QuestsEvent[key]
|
if len(curQuestList) == 0:
|
GameWorld.Log("%s ûÓд¥·¢!"%str(key) , curPlayer.GetPlayerID())
|
return
|
|
for event in curQuestList:
|
questID = event[0]
|
curMission = curPlayer.FindMission(questID)
|
if curMission == None:
|
continue
|
|
killRangeName = "killrangenpclv"
|
#Ö¸¶¨NPCµÈ¼¶·¶Î§
|
killRangeLV = curMission.GetProperty(killRangeName)
|
#´ÓÒ»¸ö·¶Î§Ëæ»ú³öÒ»¸öÖ¸¶¨Öµ
|
eventID = curMission.GetProperty(eventDictName)
|
#ɱÈÎÒâ¹Ö
|
anyKill = curMission.GetProperty(QuestCommon.Def_Day_Event_Any_Kill)
|
|
#·ûºÏÒ»Ñù¼´¿ÉÖ´ÐÐ
|
if anyKill == 0 and eventID != trigID and killRangeLV == 0:
|
continue
|
|
if killRangeLV > 0:
|
curMission.SetProperty(killRangeName, trigID, False)
|
|
QuestRunner.RunQuest(curPlayer, questID, event[1].GetXMLEventLoader().GetNodeList())
|
#---------------------------------------------------------------------
|
##ÈÎÎñ_ÈÎÎñʼþ
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@param eventName ʼþ×ÖµäÃû
|
#@param fileID ʼþXMLÎļþÃû
|
#@param runType Ö´Ðз½Ê½ Def_RunQuestType_
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ÈÎÎñ_ÈÎÎñʼþ
|
def RunQuestEvent(curPlayer, eventName, fileID, runType):
|
eventName = eventName.lower()
|
QuestsEvent = QuestManager.GetAllQuestsEvents()
|
key = (eventName, "%s.xml"%str(fileID))
|
|
if not QuestsEvent.has_key(key) :
|
#GameWorld.DebugLog("RunQuestEvent ûÓÐkey = %s !" % str(key), curPlayer.GetPlayerID())
|
return False
|
|
curQuestList = QuestsEvent[key]
|
if len(curQuestList) == 0:
|
GameWorld.Log("%s ûÓд¥·¢!"%str(key) , curPlayer.GetPlayerID())
|
return
|
|
for event in curQuestList:
|
questID = event[0]
|
|
#δ¼¤»îµÄÈÎÎñÒ²ÐèÒª´¥·¢, ÔÒò: ÈÎÎñδ¼¤»î, µ«ÊÇ»¹Êǻᱣ´æÔÚÍæ¼ÒÉíÉÏ
|
#ÔÒò: Íæ¼ÒÒ»ÌìÖ»ÄÜÁìȡһ´Î»î¶¯, ²»¹Ü»î¶¯¿ªÆô¶àÉÙ´Î
|
#ËùÒÔÒªÈ÷Ǽ¤»î״̬´¥·¢onday
|
|
#2009.2.15 ¸üÐÂ, δ¼¤»îµÄ»î¶¯²»»á´¥·¢, ²»¿¼Âǻɾ³ý
|
curQuestData = QuestManager.FindQuest(questID)
|
curMission = curPlayer.FindMission(questID)
|
|
if curQuestData != None and curQuestData.Type == QuestCommon.Def_GM_Active_Mission_Type:
|
#¼ì²éÓÐûÓ줻î
|
#ûÓ줻î, Ìø¹ý
|
if not GameWorld.GetGameWorld().IsEventActive(questID):
|
if curMission == None:
|
continue
|
#ÊÇÍê³ÉµÄÈÎÎñ
|
if curMission.GetState() == ChConfig.Def_Mission_State_Over:
|
continue
|
|
#GameWorld.Log("Íæ¼Ò´¥·¢ÈÎÎñ: %s - %d"%(str(key), questID) , curPlayer.GetPlayerID())
|
if runType == Def_RunQuestType_RunAll:
|
#ÔËÐÐËùÓнڵã
|
QuestRunner.RunAllQuest(curPlayer, questID, event[1].GetXMLEventLoader().GetNodeList())
|
continue
|
# elif runType == Def_RunQuestType_NoAnswer:
|
# QuestRunner.RunQuestNoAnswer(curPlayer, questID, event[1].GetXMLEventLoader().GetNodeList())
|
# continue
|
|
# curMission = curPlayer.FindMission(questID)
|
if curMission == None:
|
continue
|
|
if runType != Def_RunQuestType_RunAll and curMission.GetState() == ChConfig.Def_Mission_State_Over:
|
#ÈÎÎñÒѾÍê³É
|
continue
|
|
if runType == Def_RunQuestType_Normal:
|
QuestRunner.RunQuest(curPlayer, questID, event[1].GetXMLEventLoader().GetNodeList())
|
|
return True
|
#---------------------------------------------------------------------
|
def Event_OnKillByID(curPlayer, npcID):
|
#ÔËÐÐon_kill_by_idĿ¼ÏµÄ[NPCTypeID].xmlÎļþ
|
RunQuestEvent(curPlayer, "on_kill_by_id", npcID, Def_RunQuestType_Normal)
|
#´¥·¢Ã¿ÈÕÈÎÎñɱ¹Ö
|
RunDayEvent(curPlayer, "on_kill_by_id", npcID, QuestCommon.Def_Kill_Npc_ID)
|
return
|
|
##ÈÎÎñ´¥·¢Æ÷_OnKillById »÷ɱָ¶¨IDµÄ¹ÖÎï
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@param curNPC NPCʵÀý
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ÈÎÎñ´¥·¢Æ÷_OnKillById »÷ɱָ¶¨IDµÄ¹ÖÎï
|
def EventRespons_OnKillById(curPlayer, curNPC):
|
#µÃµ½NPCµÄTypeID
|
npcTypeID = curNPC.GetNPCID()
|
QuestRunner.SetKillNPC(curNPC)
|
|
Event_OnKillByID(curPlayer, npcTypeID)
|
|
#´¥·¢°´µÈ¼¶É±¹Ö
|
EventRespons_OnKillByLv(curPlayer, curNPC)
|
return
|
#---------------------------------------------------------------------
|
##ÈÎÎñ´¥·¢Æ÷_OnKillByLv »÷ɱָ¶¨µÈ¼¶µÄ¹ÖÎï
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@param curNPC NPCʵÀý
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ÈÎÎñ´¥·¢Æ÷_OnKillByLv »÷ɱָ¶¨µÈ¼¶µÄ¹ÖÎï
|
def EventRespons_OnKillByLv(curPlayer, curNPC):
|
if GameWorld.GetMap().GetMapFBType() != IPY_GameWorld.fbtNull:
|
return
|
|
#µÃµ½NPCµÄTypeID
|
npcLV = NPCCommon.GetNPCLV(curNPC)
|
|
#ÔËÐÐon_kill_by_lvĿ¼ÏµÄ[NPCTypeID].xmlÎļþ
|
#QuestRunner.SetKillNPC(curNPC)
|
|
RunQuestEvent(curPlayer, "on_kill_by_lv", npcLV, Def_RunQuestType_Normal)
|
|
#´¥·¢Ã¿ÈÕÈÎÎñɱ¹Ö
|
RunDayEvent(curPlayer, "on_kill_by_lv", npcLV, QuestCommon.Def_Kill_Npc_LV)
|
return
|
|
#---------------------------------------------------------------------
|
##ÈÎÎñ´¥·¢Æ÷_Íê³ÉijÊÖ»úÈÎÎñ
|
# @param curPlayer£ºÍæ¼ÒʵÀý
|
# @param curTaskType£º('1_MissionId'£ºÓÎÀú½ºþ£»'2_MissionId'£ºÐ¦¶÷¼£»)
|
# @return None
|
def EventRespons_OnPhoneAchieveTask(curPlayer, curTaskType):
|
|
RunQuestEvent(curPlayer, "on_phone_achieve_task", curTaskType, Def_RunQuestType_Normal)
|
return
|
|
|
|
|
#---------------------------------------------------------------------
|
##ÈÎÎñ´¥·¢Æ÷_OnGet Íæ¼ÒʰȡÎïÆ·
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@param itemTypeID ÎïÆ·ID
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ÈÎÎñ´¥·¢Æ÷_OnGet Íæ¼ÒʰȡÎïÆ·
|
def EventRespons_OnGet(curPlayer, itemTypeID):
|
RunQuestEvent(curPlayer, "on_get", itemTypeID, Def_RunQuestType_Normal)
|
#´¥·¢Ã¿ÈÕÈÎÎñµÃµ½ÎïÆ·
|
RunDayEvent(curPlayer, "on_get", itemTypeID, QuestCommon.Def_Item_ID)
|
return
|
|
#---------------------------------------------------------------------
|
##ÈÎÎñ´¥·¢Æ÷_OnTruckDisappear ïÚ³µ¶ªÊ§´¥·¢ÈÎÎñ
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@param taskID ïÚ³µÊ¼þID
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ÈÎÎñ´¥·¢Æ÷_OnTruckDisappear ïÚ³µ¶ªÊ§´¥·¢ÈÎÎñ
|
def EventRespons_OnTruckDisappear(curPlayer, taskID):
|
GameWorld.Log("æô³µ¶ªÊ§, ´¥·¢æô³µ¶ªÊ§ÈÎÎñ %d"%(taskID), curPlayer.GetPlayerID())
|
RunQuestEvent(curPlayer, "on_truck_disappear", taskID, Def_RunQuestType_Normal)
|
return
|
|
#---------------------------------------------------------------------
|
##ÈÎÎñ´¥·¢Æ÷_OnTruckDestroy ïÚ³µ´òÀô¥·¢ÈÎÎñ
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@param taskID ïÚ³µÊ¼þID
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ÈÎÎñ´¥·¢Æ÷_OnTruckDestroy ïÚ³µ´òÀô¥·¢ÈÎÎñ
|
def EventRespons_OnTruckDestroy(curPlayer, taskID):
|
GameWorld.Log("æô³µ´òÀÃ, ´¥·¢æô³µ´òÀÃÈÎÎñ %d"%(taskID), curPlayer.GetPlayerID())
|
RunQuestEvent(curPlayer, "on_truck_destroy", taskID, Def_RunQuestType_Normal)
|
return
|
#---------------------------------------------------------------------
|
##×Ô¶¨Ò庯Êý:OnEnter Íæ¼ÒÉÏÏß´¥·¢GM¿ª¹ØµÄ»î¶¯
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ×Ô¶¨Ò庯Êý:OnEnter Íæ¼ÒÉÏÏß´¥·¢GM¿ª¹ØµÄ»î¶¯
|
def PlayerGMEventTrig(curPlayer):
|
gameWorld = GameWorld.GetGameWorld()
|
#¼ì²éÍæ¼Ò´¥·¢GMʼþ(´¥·¢on_activeºÍon_deactive)
|
#QuestManager.FindQuest
|
|
delQuestList = []
|
for i in range(0, curPlayer.GetMissionCount()):
|
curMission = curPlayer.GetMissionByIndex(i)
|
missionID = curMission.GetMissionID()
|
missionData = QuestManager.FindQuest(missionID)
|
if missionData == None:
|
continue
|
|
if missionData.Type != QuestCommon.Def_GM_Active_Mission_Type:
|
continue
|
|
#¼ì²é½ÚÇìÈÎÎñ
|
if not gameWorld.IsEventActive(missionID):
|
#Íæ¼ÒÓнÚÇìÈÎÎñ, µ«ÊÇÈÎÎñÒѾ¹Ø±ÕÁË
|
#×¢Òâ: ÕâÀïÊÇÔÚforÖÐɾ³ý!!!
|
delQuestList.append(missionID)
|
#EventResponse_OnDeActive(curPlayer, missionID)
|
|
for missionID in delQuestList:
|
EventResponse_OnDeActive(curPlayer, missionID)
|
|
for i in range(gameWorld.GetActiveEventCount()):
|
missionID = gameWorld.GetActiveEventByIndex(i)
|
if curPlayer.FindMission(missionID):
|
#Íæ¼ÒÓÐÕâ¸öÈÎÎñ
|
continue
|
|
#Íæ¼ÒûÓÐÕâ¸ö½ÚÇìÈÎÎñ, ÐèÒª´¥·¢
|
EventResponse_OnActive(curPlayer, missionID)
|
|
return
|
|
#---------------------------------------------------------------------
|
##´¥·¢ËùÓÐËûÈË·¢²¼µÄÈÎÎñ
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ×Ô¶¨Ò庯Êý:´¥·¢ËùÓÐËûÈË·¢²¼µÄÈÎÎñ
|
def PlayerMissionPubEventTrig(curPlayer):
|
#¼ì²éÍæ¼Ò´¥·¢GMʼþ(´¥·¢on_activeºÍon_deactive)
|
#QuestManager.FindQuest
|
missionPubManager = GameWorld.GetGameWorld().GetDBMissionPubManager()
|
for i in range(missionPubManager.GetCount()):
|
curMissionPub = missionPubManager.GetAt(i)
|
missionID = curMissionPub.GetMissionID()
|
if curPlayer.FindMission(missionID):
|
#Íæ¼ÒÓÐÕâ¸öÈÎÎñ
|
continue
|
|
#´¥·¢ËûÈË·¢²¼µÄÈÎÎñ
|
CheckTrigMissionPub(curPlayer, curMissionPub)
|
|
return
|
#---------------------------------------------------------------------
|
##ÈÎÎñ´¥·¢Æ÷_OnEnter ÈÎÎñDZ¹æÔò,Íæ¼ÒµÚÒ»´ÎµÇ½ÓÎÏ·ÒªÌí¼ÓÈÎÎñ1¸øÍæ¼Ò
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ÈÎÎñ´¥·¢Æ÷_OnEnter ÈÎÎñDZ¹æÔò,Íæ¼ÒµÚÒ»´ÎµÇ½ÓÎÏ·ÒªÌí¼ÓÈÎÎñ1¸øÍæ¼Ò
|
def EventResponse_OnEnter(curPlayer):
|
curPlayerID = curPlayer.GetID()
|
#quests = QuestManager.GetQuests()
|
addMission = QuestCommon.GetCommonMission(curPlayer)
|
|
if addMission == None:
|
#Ö´ÐеÚÒ»´ÎµÇ½Âß¼
|
__FirstLoginOnEnter(curPlayer)
|
|
addMission = QuestCommon.GetCommonMission(curPlayer)
|
|
if addMission == None:
|
GameWorld.ErrLog('EventResponse_OnEnter, Íæ¼Ò = %sÎÞ·¨»ñµÃ¹«¹²ÈÎÎñ'%(curPlayer.GetName()), curPlayer.GetID())
|
return
|
|
if addMission.GetState() != ChConfig.Def_Mission_State_NoAccept:
|
return
|
|
#Íæ¼ÒµÚÒ»¸öÈÎÎñûÓÐ×ö,Ëø×¡
|
GameWorld.Log("Íæ¼ÒµÚÒ»¸öÈÎÎñûÓÐ×ö, Ëø×¡", curPlayerID)
|
#curPlayer.BeginEvent()
|
curPlayer.SetDict(ChConfig.Def_PlayerKey_Frist_Lock, 1)
|
#µ÷ÓÃÖ´ÐÐÐÂÊÖÈÎÎñ
|
RunQuestEvent(curPlayer, "on_enter", ChConfig.Def_XML_FirstLogin, Def_RunQuestType_Normal)
|
return
|
|
#---------------------------------------------------------------------
|
##Íæ¼ÒµÚÒ»´ÎµÇ½ÓÎÏ·Âß¼, ÈçÈÎÎñ¼ÓÔØÂß¼, ×Ô¶¯Ñ§Ï°¼¼ÄÜ
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ×Ô¶¨Ò庯Êý:Íæ¼ÒµÚÒ»´ÎµÇ½ÓÎÏ·Âß¼, ÈçÈÎÎñ¼ÓÔØÂß¼, ×Ô¶¯Ñ§Ï°¼¼ÄÜ
|
def __FirstLoginOnEnter(curPlayer):
|
playerID = curPlayer.GetID()
|
|
GameWorld.Log('Íæ¼ÒÊǵÚÒ»´Î½øÈëÓÎÏ·', playerID)
|
# ÌØÊâ˵Ã÷£º Èç¹ûµØÍ¼Ã»ÓÐÍêÈ«³õʼ»¯ºÃ£¬¿Í»§¶Ë¶Ï¿ª»òÕßÒì³£µÈÇé¿ö»á´¥·¢RunGateGameServerMapServerKickOutPlayerNoSave
|
# ÄÇôÔÚDoPlayerLogin ÖÐÉèÖõÄÊý¾Ý½«²»»á±»±£´æ£¬ Èç»áµ¼ÖµÚÒ»¸öÈÎÎñÖØ¸´´¥·¢ÎÊÌ⣬¼Ç¼¶à´Î·¢ËÍ
|
EventReport.WriteEvent_Entry(curPlayer, 4)
|
#EventReport.EventReport(ShareDefine.Def_UserAction_FirstLogin, "", curPlayer)
|
#---¸øÍæ¼ÒÐÂÊÖÈÎÎñ---
|
addMission = QuestCommon.AddNewMission(curPlayer, ChConfig.Def_MissionID_FirstLogin)
|
#¹ã²¥ÐÂÔöÈÎÎñ
|
NotifyOneMission(curPlayer, addMission)
|
|
#---²¹ÂúѪÂúħ---
|
GameObj.SetHP(curPlayer, GameObj.GetMaxHP(curPlayer))
|
curPlayer.SetMP(curPlayer.GetMaxMP())
|
|
#---¸øÓèÍæ¼ÒÐÂÊÖÎïÆ·---
|
|
#---³õʼ»¯×°±¸ÏÔÒþ µÚ1Ì×*10+ûÓÐÌ××°
|
curPlayer.SetEquipShowSwitch(10)
|
PlayerControl.SetFaceEquipIndex(curPlayer, 11012014)
|
|
#ĬÈÏ´¥·¢Ò»´Î¹¦ÄÜ¿ªÆô
|
if curPlayer.GetLV() == 1:
|
GameFuncComm.DoFuncOpenLogic(curPlayer)
|
|
#³õʼ»¯×é¶Ó״̬
|
autoJoinReqCheck = IpyGameDataPY.GetFuncCfg("TeamCheckSet", 1)
|
autoInviteCheck = IpyGameDataPY.GetFuncCfg("TeamCheckSet", 2)
|
PlayerControl.SetTeamCheckStateEx(curPlayer, int(not autoJoinReqCheck), int(not autoInviteCheck))
|
|
#°´Æ½Ì¨¸øÊ׸ö³ÆºÅ
|
#PlayerDienstgrad.GiveFirstLoginDienstgrad(curPlayer)
|
|
#Íæ¼ÒĬÈ϶ñÃûÖµ
|
curPlayer.SetInfamyValue(ChConfig.Def_FirstLogin_InfamyValue)
|
|
#±ê¼ÇÒѵǽ¹ý£¬ÓÃÓÚ·ÇͬһÌì¶þ´ÎµÇ½
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_OtherDayLogin, 1)
|
|
#curPlayer.SetDict("ThunderLogin", 1)
|
#¼Ç¼µÚÒ»´ÎµÇ½
|
DataRecordPack.DR_FirstLogin(curPlayer.GetAccID(), curPlayer.GetIP(), curPlayer)
|
|
#ÄÚ²¿ºÅ¸øÓèÔª±¦
|
#PlayerCoin.GiveGoldByCreate(curPlayer)
|
|
#Ê×µÇÓʼþ
|
mailList = IpyGameDataPY.GetFuncEvalCfg("MailLVAward", 2)
|
for mailTypeKey, mailItemList in mailList:
|
PlayerControl.SendMailByKey(mailTypeKey, [curPlayer.GetPlayerID()], mailItemList)
|
return
|
#---------------------------------------------------------------------
|
##ÈÎÎñ´¥·¢Æ÷_OnLogin Íæ¼ÒµÇ½ÓÎÏ·´¥·¢
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ÈÎÎñ´¥·¢Æ÷_OnLogin Íæ¼ÒµÇ½ÓÎÏ·´¥·¢
|
def EventResponse_OnLogin(curPlayer):
|
#´¥·¢GM¿ª¹Ø»î¶¯
|
# PlayerGMEventTrig(curPlayer)
|
#´¥·¢ËûÈË·¢²¼»î¶¯
|
# PlayerMissionPubEventTrig(curPlayer)
|
|
RunQuestEvent(curPlayer, "on_login", "on_login", Def_RunQuestType_RunAll)
|
return
|
|
#---------------------------------------------------------------------
|
##ÈÎÎñ´¥·¢Æ÷_On_GameServer_Login ´ËʼþÐèÒªGameServer³õʼ»¯Íæ¼Òºó£¬·µ»ØÊǼÒ×峤ºó´¥·¢
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ÈÎÎñ´¥·¢Æ÷_On_GameServer_Login ´ËʼþÐèÒªGameServer³õʼ»¯Íæ¼Òºó£¬·µ»ØÊǼÒ×峤ºó´¥·¢
|
def EventResponse_On_GameServer_Login(curPlayer):
|
#ÉèÖÃΪ¼Ò×峤£¨GameServerÒÑÑéÖ¤£¬MapServer»¹Ã»Ë¢Ð£©
|
curPlayer.SetFamilyMemberLV(IPY_GameWorld.fmlLeader)
|
RunQuestEvent(curPlayer, "on_gs_login", "on_gs_login", Def_RunQuestType_RunAll)
|
return
|
#===============================================================================
|
#
|
# #³ÇÃŻ¿ªÊ¼´¥·¢ÈÎÎñʼþ
|
# def EventResponse_On_Open_Gate_War(curPlayer):
|
# if not curPlayer.GetGameServerInitOK():
|
# GameServerRefresh.Set_Mission_No_ID_On_Open_Gate_War( curPlayer , 1 )
|
# return
|
#
|
# RunQuestEvent(curPlayer, "on_open_gate_war", "on_open_gate_war", Def_RunQuestType_RunAll)
|
# return
|
#
|
# #³ÇÃŻ½áÊø´¥·¢ÈÎÎñʼþ
|
# def EventResponse_On_Close_Gate_War(curPlayer):
|
# if not curPlayer.GetGameServerInitOK():
|
# GameServerRefresh.Set_Mission_No_ID_On_Close_Gate_War( curPlayer , 1 )
|
# return
|
#
|
# RunQuestEvent(curPlayer, "on_close_gate_war", "on_close_gate_war", Def_RunQuestType_RunAll)
|
# return
|
#
|
# #³ÇÃŻÖеǽ´¥·¢ÈÎÎñʼþ
|
# def EventResponse_On_Gate_War_Login(curPlayer):
|
# RunQuestEvent(curPlayer, "on_gate_war_login", "on_gate_war_login", Def_RunQuestType_RunAll)
|
# return
|
#
|
# #³ÇÃŻºóµÇ½´¥·¢ÈÎÎñʼþ
|
# def EventResponse_Not_Gate_War_Login(curPlayer):
|
# RunQuestEvent(curPlayer, "not_gate_war_login", "not_gate_war_login", Def_RunQuestType_RunAll)
|
# return
|
#===============================================================================
|
#---------------------------------------------------------------------
|
##ÈÎÎñ´¥·¢Æ÷_OnGameEvent ÌøÎèµöÓã½ø¶ÈÌõ½áÊøºó´¥·¢
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ÈÎÎñ´¥·¢Æ÷_OnGameEvent ÌøÎèµöÓã½ø¶ÈÌõ½áÊøºó´¥·¢
|
def EventRespons_OnGameEvent(curPlayer):
|
RunQuestEvent(curPlayer, "on_game_event", "on_game_event", Def_RunQuestType_Normal)
|
return
|
|
#---------------------------------------------------------------------
|
##ÈÎÎñ´¥·¢Æ÷_OnMap Íæ¼ÒµÇ½µØÍ¼
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ÈÎÎñ´¥·¢Æ÷_OnMap Íæ¼ÒµÇ½µØÍ¼
|
def EventResponse_OnMap(curPlayer):
|
RunQuestEvent(curPlayer, "on_map", "on_map", Def_RunQuestType_Normal)
|
return
|
|
|
##ÈÎÎñ´¥·¢Æ÷_OnMapEx Íæ¼ÒµÇ½µØÍ¼
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@return None
|
def EventResponse_OnMapEx(curPlayer):
|
RunQuestEvent(curPlayer, "on_map_ex", "on_map_ex", Def_RunQuestType_RunAll)
|
return
|
|
#---------------------------------------------------------------------
|
##ÈÎÎñ´¥·¢Æ÷_LVUp µ±Íæ¼ÒÉý¼¶µÄʱºò´¥·¢
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ÈÎÎñ´¥·¢Æ÷_LVUp µ±Íæ¼ÒÉý¼¶µÄʱºò´¥·¢
|
def EventResponse_LVUp(curPlayer):
|
#ÒѽÓÈÎÎñÉý¼¶´¥·¢Âß¼
|
RunQuestEvent(curPlayer, "on_lv_up", "on_lv_up", Def_RunQuestType_Normal)
|
|
#2010/5/18 LvUp´¥·¢ÓɶÁÈ¡XMLÐÞ¸ÄΪ¶ÁÈ¡ÅäÖñíLvUpTrigMissionID
|
#Éý¼¶´¥·¢ÈÎÎñ·Ö2ÖÖ: 1.Ìí¼ÓÈÎÎñ²¢ÇÒ´¥·¢ÈÎÎñXMLÂß¼£¬ÈÎÎñÒÑ´æÔÚÔòÖ»´¥·¢XMLÂß¼
|
# 2.²»Ìí¼ÓÈÎÎñ£¬Èç¹ûÈÎÎñ´æÔڲŴ¥·¢XMLÂß¼
|
|
#{ Ö°Òµ:{{µÈ¼¶:[ ´¥·¢ÈÎÎñIDÁбí] } }
|
missionDist = ReadChConfig.GetEvalChConfig('LvUpTrigMissionID')
|
#¸ù¾ÝÌõ¼þ¹ýÂË×Öµä
|
missionJobDist = missionDist.get(curPlayer.GetJob())
|
|
if not missionJobDist:
|
#GameWorld.ErrLog('EventResponse_LVUp, job = %s'%(curPlayer.GetJob()), curPlayer.GetID())
|
return
|
|
missionIDList = missionJobDist.get(curPlayer.GetLV())
|
|
if not missionIDList:
|
#GameWorld.ErrLog('EventResponse_LVUp, lv = %s'%(curPlayer.GetLV()), curPlayer.GetID())
|
|
# Éý¼¶Ö»´¥·¢ÈÎÎñXML£¬²»Ìí¼ÓÈÎÎñ
|
__LVUpNoAddMission(curPlayer)
|
return
|
|
#¸øÓèÈÎÎñ±ê־λ
|
isGiveMission = False
|
|
for missionID in missionIDList:
|
if curPlayer.FindMission(missionID):
|
GameWorld.ErrLog('EventResponse_LVUp, hasSameMissionID = %s'%(missionID), curPlayer.GetID())
|
continue
|
|
isGiveMission = True
|
|
#Ìí¼ÓÐÂÈÎÎñ¸øÍæ¼Ò
|
addMission = QuestCommon.AddNewMission(curPlayer, missionID)
|
NotifyOneMission(curPlayer, addMission)
|
|
if isGiveMission:
|
#LvUp_Get_Task <n color="0,255,0" BKCOLOR="0,0,0">µÈ¼¶ÌáÉý,ÄúÓÐеÄÈÎÎñ¿É½ÓÊÜ!</n>
|
PlayerControl.NotifyCode(curPlayer , "LvUp_Get_Task")
|
|
RunQuestEvent(curPlayer, "on_lv_up", curPlayer.GetLV(), Def_RunQuestType_RunAll)
|
#===============================================================================
|
# #ÄÜ·ñ´¥·¢³ÇÃŻ
|
# __IsGateWar(curPlayer)
|
#===============================================================================
|
return True
|
|
## Éý¼¶Ö»´¥·¢ÈÎÎñXML£¬²»Ìí¼ÓÈÎÎñ
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @return None
|
def __LVUpNoAddMission(curPlayer):
|
missionDist = ReadChConfig.GetEvalChConfig('LvUpTrigMissionNotAdd')
|
#¸ù¾ÝÌõ¼þ¹ýÂË×Öµä
|
lvTrigMissionList = missionDist.get(curPlayer.GetJob())
|
|
if lvTrigMissionList == None:
|
return
|
|
if curPlayer.GetLV() not in lvTrigMissionList:
|
return
|
|
RunQuestEvent(curPlayer, "on_lv_up", curPlayer.GetLV(), Def_RunQuestType_RunAll)
|
|
#---------------------------------------------------------------------
|
##ÈÎÎñ´¥·¢Æ÷_ͨÓûÏìÓ¦, µ¥¸öÍæ¼Ò
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@param eventName ʼþ×ÖµäÃû
|
#@param fileID ʼþXMLÎļþÃû
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks
|
def EventResponse_OnAction(curPlayer, eventName, fileID):
|
RunQuestEvent(curPlayer, eventName, fileID, Def_RunQuestType_RunAll)
|
return
|
|
##ÈÎÎñ´¥·¢Æ÷_ͨÓûÏìÓ¦, È«·þÍæ¼Ò
|
#@param eventName ʼþ×ÖµäÃû
|
#@param fileID ʼþXMLÎļþÃû
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks
|
def EventResponse_OnActionAllMapPlayer(eventName, fileID):
|
playerManager = GameWorld.GetPlayerManager()
|
|
for i in range(0, playerManager.GetPlayerCount()):
|
curPlayer = playerManager.GetPlayerByIndex(i)
|
|
if not GameWorld.IsNormalPlayer(curPlayer):
|
continue
|
|
EventResponse_OnAction(curPlayer, eventName, fileID)
|
|
return
|
|
#---------------------------------------------------------------------
|
##ÈÎÎñ´¥·¢Æ÷_OnHalfHour ÿ°ëСʱ´¥·¢Ò»´Î
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ÈÎÎñ´¥·¢Æ÷_OnHour ÿСʱ´¥·¢Ò»´Î
|
def EventResponse_OnHalfHour(curPlayer):
|
RunQuestEvent(curPlayer, "on_halfhour", "on_halfhour", Def_RunQuestType_RunAll)
|
return
|
|
#---------------------------------------------------------------------
|
##ÈÎÎñ´¥·¢Æ÷_OnHour ÿСʱ´¥·¢Ò»´Î
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ÈÎÎñ´¥·¢Æ÷_OnHour ÿСʱ´¥·¢Ò»´Î
|
def EventResponse_OnHour(curPlayer):
|
RunQuestEvent(curPlayer, "on_hour", "on_hour", Def_RunQuestType_RunAll)
|
return
|
|
#---------------------------------------------------------------------
|
##ÈÎÎñ´¥·¢Æ÷_OnDay ÿÌì´¥·¢Ò»´Î
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ÈÎÎñ´¥·¢Æ÷_OnDay ÿÌì´¥·¢Ò»´Î
|
def EventResponse_OnDay(curPlayer):
|
RunQuestEvent(curPlayer, "on_day", "on_day", Def_RunQuestType_RunAll)
|
RunQuestEvent(curPlayer, "on_day", "on_dayex", Def_RunQuestType_Normal)
|
|
#ÇåÉͽðÈÎÎñ½±Àø
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RunTaskAwardState % QuestCommon.Def_Mission_Type_RunDaily, 0)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RunTaskAwardRecord % QuestCommon.Def_Mission_Type_RunDaily, 0)
|
NotifyRunEndAward(curPlayer, QuestCommon.Def_Mission_Type_RunDaily)
|
return
|
|
#---------------------------------------------------------------------
|
##ÈÎÎñ´¥·¢Æ÷_OnWeek ÿÖÜ´¥·¢Ò»´Î
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ÈÎÎñ´¥·¢Æ÷_OnWeek ÿÖÜ´¥·¢Ò»´Î
|
def EventResponse_OnWeek(curPlayer):
|
RunQuestEvent(curPlayer, "on_week", "on_week", Def_RunQuestType_RunAll)
|
|
#ÇåÏÉÃËÈÎÎñ½±Àø
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RunTaskAwardState % QuestCommon.Def_Mission_Type_RunFamily, 0)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RunTaskAwardRecord % QuestCommon.Def_Mission_Type_RunFamily, 0)
|
NotifyRunEndAward(curPlayer, QuestCommon.Def_Mission_Type_RunFamily)
|
return
|
|
#---------------------------------------------------------------------
|
##ÈÎÎñ´¥·¢Æ÷_OnLeaveFamily Íæ¼ÒÀ뿪¼Ò×å´¥·¢( ×Ô¶¯/±»¶¯ )
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ÈÎÎñ´¥·¢Æ÷_OnLeaveFamily Íæ¼ÒÀ뿪¼Ò×å´¥·¢( ×Ô¶¯/±»¶¯ )
|
def EventResponse_OnLeaveFamily(curPlayer):
|
if not curPlayer.GetGameServerInitOK():
|
GameServerRefresh.Set_Mission_No_ID_OnLeaveFamily(curPlayer , 1)
|
return
|
|
RunQuestEvent(curPlayer, "on_leave_family", "on_leave_family", Def_RunQuestType_RunAll)
|
return
|
|
#---------------------------------------------------------------------
|
##ÈÎÎñ´¥·¢Æ÷_OnMemberChange ¼Ò×峤±ä¸ü
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ÈÎÎñ´¥·¢Æ÷_OnMemberChange ¼Ò×峤±ä¸ü
|
def EventResponse_OnMemberChange(curPlayer):
|
if not curPlayer.GetGameServerInitOK():
|
GameServerRefresh.Set_Mission_No_ID_OnMemberChange(curPlayer , 1)
|
return
|
|
GameWorld.Log('EventResponse_OnMemberChange' , curPlayer.GetID())
|
RunQuestEvent(curPlayer, 'on_member_change', 'on_member_change', Def_RunQuestType_RunAll)
|
return
|
|
#---------------------------------------------------------------------
|
##ÈÎÎñ´¥·¢Æ÷_OnFamily ½øÈë¼Ò×å
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ÈÎÎñ´¥·¢Æ÷_OnFamily ½øÈë¼Ò×å
|
def EventResponse_OnFamily(curPlayer):
|
RunQuestEvent(curPlayer, "on_family", "on_family", Def_RunQuestType_RunAll)
|
return
|
|
#---------------------------------------------------------------------
|
##ÈÎÎñ´¥·¢Æ÷_OnCreateFamily ´´½¨¼Ò×å
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ÈÎÎñ´¥·¢Æ÷_OnCreateFamily ´´½¨¼Ò×å
|
def EventResponse_OnCreateFamily(curPlayer):
|
RunQuestEvent(curPlayer, "on_create_family", "on_create_family", Def_RunQuestType_RunAll)
|
return
|
|
#---------------------------------------------------------------------
|
##ÈÎÎñ´¥·¢Æ÷_OnFamilyAdd ¼ÓÈë¼Ò×å
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@return ·µ»ØÖµÎÞÒâÒå
|
def EventResponse_OnFamilyAdd(curPlayer):
|
RunQuestEvent(curPlayer, "on_add_family", "on_add_family", Def_RunQuestType_Normal)
|
return
|
|
#---------------------------------------------------------------------
|
##ÈÎÎñ´¥·¢Æ÷_OnFamilyLVUp ¼Ò×åÉý¼¶
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@return ·µ»ØÖµÎÞÒâÒå
|
def EventResponse_OnFamilyLVUp(curPlayer):
|
RunQuestEvent(curPlayer, "on_lv_up_family", "on_lv_up_family", Def_RunQuestType_RunAll)
|
return
|
|
#---------------------------------------------------------------------
|
##ÈÎÎñ´¥·¢Æ÷_OnLeaveMap À뿪µØÍ¼
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ÈÎÎñ´¥·¢Æ÷_OnLeaveMap À뿪µØÍ¼
|
def EventResponse_OnLeaveMap(curPlayer):
|
RunQuestEvent(curPlayer, "on_leave_map", "on_leave_map", Def_RunQuestType_Normal)
|
return
|
#---------------------------------------------------------------------
|
##ÈÎÎñ´¥·¢Æ÷_OnFBTimeOut ¸±±¾Ê±¼ä½áÊø
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ÈÎÎñ´¥·¢Æ÷_OnFBTimeOut ¸±±¾Ê±¼ä½áÊø
|
def EventResponse_OnFBTimeOut(curPlayer):
|
RunQuestEvent(curPlayer, "on_fb_timeout", "on_fb_timeout", Def_RunQuestType_Normal)
|
return
|
|
#===============================================================================
|
# #¹¥»÷³ÇÃÅʼþ´¥·¢
|
# def EventResponse_OnAttackGate(curPlayer):
|
# RunQuestEvent(curPlayer, "on_attack_gate", "on_attack_gate", Def_RunQuestType_Normal)
|
# return
|
#===============================================================================
|
#---------------------------------------------------------------------
|
##ÈÎÎñ´¥·¢Æ÷_OnKillEnemy »÷É±Íæ¼Òʼþ´¥·¢
|
#@param attackPlayer ¹¥»÷Õß
|
#@param deadPlayer ËÀÍöµÄÍæ¼Ò
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ÈÎÎñ´¥·¢Æ÷_OnKillEnemy »÷É±Íæ¼Òʼþ´¥·¢
|
def EventResponse_OnKillEnemy(attackPlayer, deadPlayer):
|
RunQuestEvent(attackPlayer, "on_kill_enemy", "on_kill_enemy", Def_RunQuestType_Normal)
|
return
|
|
#---------------------------------------------------------------------
|
##ÈÎÎñ´¥·¢Æ÷_OnEnemyKill ±»Íæ¼Ò»÷ɱʼþ´¥·¢
|
#@param deadPlayer ËÀÍöµÄÍæ¼Ò
|
#@param attackPlayer ¹¥»÷Õß
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ÈÎÎñ´¥·¢Æ÷_OnEnemyKill ±»Íæ¼Ò»÷ɱʼþ´¥·¢
|
def EventResponse_OnEnemyKill(deadPlayer, attackPlayer):
|
RunQuestEvent(deadPlayer, "on_enemy_kill", "on_enemy_kill", Def_RunQuestType_Normal)
|
return
|
|
|
#---------------------------------------------------------------------
|
##ÈÎÎñ´¥·¢Æ÷vipµÈ¼¶¸Ä±ä
|
#@param curPlayer Íæ¼Ò
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ÈÎÎñ´¥·¢Æ÷vipµÈ¼¶¸Ä±ä´¥·¢
|
def EventResponse_OnVipLvUp(curPlayer, vipLV):
|
RunQuestEvent(curPlayer, "on_viplv_up", vipLV, Def_RunQuestType_RunAll)
|
return
|
|
##ÈÎÎñ´¥·¢Æ÷¹ºÂòvipÀñ°ü
|
#@param curPlayer Íæ¼Ò
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ÈÎÎñ´¥·¢Æ÷vipµÈ¼¶¸Ä±ä´¥·¢
|
def EventResponse_BuyVIPItem(curPlayer, vipLV):
|
RunQuestEvent(curPlayer, "buyvipitem", "buyvipitem", Def_RunQuestType_Normal)
|
return
|
#---------------------------------------------------------------------
|
##ÈÎÎñ´¥·¢Æ÷_Active ÒѾÎÞʹÓÃÁË
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@param typeName ÀàÐÍ
|
#@param missionID ÈÎÎñID
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ÈÎÎñ´¥·¢Æ÷_Active ÒѾÎÞʹÓÃÁË
|
def __EventResponse_Active(curPlayer, typeName, missionID):
|
eventName = typeName
|
fileID = typeName
|
QuestsEvent = QuestManager.GetAllQuestsEvents()
|
key = (eventName, "%s.xml"%str(fileID))
|
if not QuestsEvent.has_key(key) :
|
return False
|
|
curQuestList = QuestsEvent[key]
|
if len(curQuestList) == 0:
|
GameWorld.Log("%s ûÓд¥·¢!"%str(key) , curPlayer.GetPlayerID())
|
return
|
|
for event in curQuestList:
|
questID = event[0]
|
if questID != missionID:
|
continue
|
|
#GameWorld.Log("Íæ¼Ò´¥·¢ÈÎÎñ: %s - %d"%(str(key), questID) , curPlayer.GetPlayerID())
|
#ÔËÐÐËùÓнڵã
|
QuestRunner.RunAllQuest(curPlayer, questID, event[1].GetXMLEventLoader().GetNodeList())
|
break
|
|
return
|
|
#---------------------------------------------------------------------
|
##´¥·¢µ¥¸öËûÈË·¢²¼µÄÈÎÎñ
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@param curMissionPub ·¢²¼µÄÈÎÎñÊý¾Ý
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ×Ô¶¨Ò庯Êý:´¥·¢µ¥¸öËûÈË·¢²¼µÄÈÎÎñ
|
def CheckTrigMissionPub(curPlayer, curMissionPub):
|
missionID = curMissionPub.GetMissionID()
|
if curPlayer.FindMission(missionID):
|
#Íæ¼ÒÓÐÕâ¸öÈÎÎñ
|
return
|
|
missinoPubType = curMissionPub.GetMissinoPubType()
|
|
#¼ì²é´¥·¢ÈÎÎñ·¢²¼
|
if missinoPubType == IPY_GameWorld.mptFamily:
|
#¼Ò×å·¢²¼
|
if curPlayer.GetFamilyID() == 0:
|
return
|
|
if curPlayer.GetFamilyID() != curMissionPub.GetPubID():
|
return
|
|
EventResponse_OnMissionPub(curPlayer, missionID)
|
|
elif missinoPubType == IPY_GameWorld.mptCountry:
|
#¼Ò×å·¢²¼
|
if curPlayer.GetCountry() != curMissionPub.GetPubID():
|
return
|
|
EventResponse_OnMissionPub(curPlayer, missionID)
|
|
return
|
|
#---------------------------------------------------------------------
|
##ÈÎÎñ´¥·¢Æ÷_OnMissionPub ËûÈË·¢²¼ÈÎÎñ
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@param missionID ÈÎÎñID
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ÈÎÎñ´¥·¢Æ÷_OnMissionPub ËûÈË·¢²¼ÈÎÎñ
|
def EventResponse_OnMissionPub(curPlayer, missionID):
|
if not curPlayer.GetGameServerInitOK():
|
GameServerRefresh.Set_Mission_Have_ID_OnMissionPub(curPlayer , missionID)
|
return
|
|
RunQuestEvent(curPlayer, 'on_pub', missionID, Def_RunQuestType_RunAll)
|
return
|
|
#---------------------------------------------------------------------
|
##ÈÎÎñ´¥·¢Æ÷_OnActive ´¥·¢GM¿ª¹ØÈÎÎñ
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@param missionID ÈÎÎñID
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ÈÎÎñ´¥·¢Æ÷_OnActive ´¥·¢GM¿ª¹ØÈÎÎñ
|
def EventResponse_OnActive(curPlayer, missionID):
|
if not curPlayer.GetGameServerInitOK():
|
GameServerRefresh.Set_Mission_Have_ID_OnActive(curPlayer , missionID)
|
return
|
|
RunQuestEvent(curPlayer, 'on_active', missionID, Def_RunQuestType_RunAll)
|
return
|
|
#---------------------------------------------------------------------
|
##ÈÎÎñ´¥·¢Æ÷_OnDeActive ¹Ø±ÕGM¿ª¹ØÈÎÎñ
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@param missionID ÈÎÎñID
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ÈÎÎñ´¥·¢Æ÷_OnDeActive ¹Ø±ÕGM¿ª¹ØÈÎÎñ
|
def EventResponse_OnDeActive(curPlayer, missionID):
|
if not curPlayer.GetGameServerInitOK():
|
GameServerRefresh.Set_Mission_Have_ID_OnDeActive(curPlayer , missionID)
|
return
|
|
RunQuestEvent(curPlayer, 'on_deactive', missionID, Def_RunQuestType_RunAll)
|
return
|
|
|
#---------------------------------------------------------------------
|
##ÈÎÎñ´¥·¢Æ÷_OnDig ÍÚ±¦½ø¶ÈÌõ½áÊøºó´¥·¢
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ÈÎÎñ´¥·¢Æ÷_OnDig ÍÚ±¦½ø¶ÈÌõ½áÊøºó´¥·¢
|
def EventResponse_OnDig(curPlayer):
|
#Íæ¼ÒÍڵش¥·¢
|
QuestRunner.InitTreasureNotifyContentList()
|
#GameWorld.Log("¿ªÊ¼ÍÚµØ")
|
|
for i in range(0, curPlayer.GetMissionCount()):
|
curMission = curPlayer.GetMissionByIndex(i)
|
#Õâ¸öÈÎÎñÒѾ×öÍêÁË(-1) »òÕß Õâ¸öÈÎÎñ»¹Ã»ÓнÓ(0)
|
if curMission.GetState() in [ChConfig.Def_Mission_State_NoAccept, ChConfig.Def_Mission_State_Over]:
|
continue
|
|
RunQuestEvent(curPlayer, "on_dig", curMission.GetMissionID(), Def_RunQuestType_Normal)
|
|
treasureNotifyList = QuestRunner.GetTreasureNotifyContentList()
|
#µÃµ½ÌáʾµÄ×î¸ßµÈ¼¶
|
minLV = 0
|
minIndex = -1
|
for i in range(0, len(treasureNotifyList)):
|
if minLV == 0:
|
minLV = treasureNotifyList[i].LV
|
minIndex = i
|
continue
|
if treasureNotifyList[i].LV < minLV:
|
minLV = treasureNotifyList[i].LV
|
minIndex = i
|
|
if minIndex == -1:
|
#ûÓÐÍÚ±¦ÈÎÎñ
|
curPlayer.Notify(0, "n")
|
return
|
|
missionID = treasureNotifyList[minIndex].MissionID
|
#Í¨ÖªÍæ¼Ò
|
curPlayer.Notify(missionID, treasureNotifyList[minIndex].Content)
|
#curPlayer.NotifyMiddle(missionID, QuestRunner.TreasureNotifyContentList[minIndex].Content)
|
return
|
|
#---------------------------------------------------------------------
|
##ÈÎÎñ´¥·¢Æ÷_LVFull µ±Ç°µÈ¼¶Âú¼¶µÄʱºò´¥·¢
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ÈÎÎñ´¥·¢Æ÷_LVFull µ±Ç°µÈ¼¶Âú¼¶µÄʱºò´¥·¢
|
def EventResponse_LVFull(curPlayer):
|
#µÃµ½NPCµÄTypeID
|
#ÔËÐÐon_visitĿ¼ÏµÄ[NPCTypeID].xmlÎļþ
|
questID = curPlayer.GetLV() * 100
|
|
return RunQuestEvent(curPlayer, "on_lv_full", questID, Def_RunQuestType_RunAll)
|
|
#---------------------------------------------------------------------
|
##ÈÎÎñ´¥·¢Æ÷_MisCollectTime ѯÎÊÊÇ·ñ¿É²É¼¯¸ÃNPC
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@param curNPC NPCʵÀý
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ÈÎÎñ´¥·¢Æ÷_MisCollectTime ѯÎÊÊÇ·ñ¿É²É¼¯¸ÃNPC
|
def EventRespons_MisCollectTime(curPlayer, curNPC):
|
#µÃµ½NPCµÄTypeID
|
npcTypeID = curNPC.GetNPCID()
|
|
#GameWorld.Log("ѯÎÊÊÇ·ñ¿É²É¼¯¸ÃNPC, NPCID %d"%(npcTypeID))
|
|
#ÔËÐÐon_coltime_by_idĿ¼ÏµÄ[NPCTypeID].xmlÎļþ
|
RunQuestEvent(curPlayer, "on_coltime_by_id", npcTypeID, Def_RunQuestType_Normal)
|
|
#ÅÜ»·ÈÎÎñËæ»ú²É¼¯Ê±£¬ÎÞNPCID ÔËÐÐon_coltime_by_idĿ¼ÏµÄ0.xmlÎļþ
|
RunQuestEvent(curPlayer, "on_coltime_by_id", 0, Def_RunQuestType_Normal)
|
return
|
|
#---------------------------------------------------------------------
|
##ÈÎÎñ´¥·¢Æ÷_MisCollectSuccess ²É¼¯½ø¶ÈÌõ½áÊøºó´¥·¢
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@param curNPC NPCʵÀý
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ÈÎÎñ´¥·¢Æ÷_MisCollectSuccess ²É¼¯½ø¶ÈÌõ½áÊøºó´¥·¢
|
def EventRespons_MisCollectSuccess(curPlayer, curNPC):
|
#µÃµ½NPCµÄTypeID
|
npcTypeID = curNPC.GetNPCID()
|
|
#GameWorld.Log("²É¼¯¸ÃNPC³É¹¦, NPCID %d"%(npcTypeID))
|
|
#ÔËÐÐon_collect_by_idĿ¼ÏµÄ[NPCTypeID].xmlÎļþ
|
RunQuestEvent(curPlayer, "on_collect_by_id", npcTypeID, Def_RunQuestType_Normal)
|
|
#Ëæ»ú²É¼¯
|
RunDayEvent(curPlayer, "on_collect_by_id", npcTypeID, QuestCommon.Def_Collect_Npc_ID)
|
return
|
|
#---------------------------------------------------------------------
|
##ÈÎÎñ´¥·¢Æ÷CatchPetOK, ×¥³è³É¹¦.
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @param curNPC NPCʵÀý
|
# @return ·µ»ØÖµÎÞÒâÒå
|
# @remarks ×¥³è³É¹¦
|
def EventRespons_CatchPetOK(curPlayer, curNPC):
|
#ÔËÐÐon_catch_pet_ok_by_idĿ¼ÏµÄ[NPCTypeID].xmlÎļþ
|
#RunQuestEvent(curPlayer, "on_catch_pet_ok_by_id", curNPC.GetNPCID(), Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_LearnSkill(curPlayer, skillTypeID):
|
# ѧϰ¼¼ÄÜ
|
RunQuestEvent(curPlayer, "on_learnskill", skillTypeID, Def_RunQuestType_Normal)
|
return
|
|
##ÈÎÎñ´¥·¢Æ÷ ÅÜ»·ÈÎÎñ´¥·¢ÏÂÒ»¸öÅÜ»·ÈÎÎñ´¥·¢Ïà¹ØÊ¼þ
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @param missionID ÏÂÒ»¸öÅÜ»·ÈÎÎñID
|
# @return ·µ»ØÖµÎÞÒâÒå
|
# @remarks ÈÎÎñ´¥·¢Æ÷ ÅÜ»·ÈÎÎñ´¥·¢ÏÂÒ»¸öÅÜ»·ÈÎÎñ´¥·¢Ïà¹ØÊ¼þ
|
def EventRespons_SetRunAround(curPlayer, missionID):
|
RunQuestEvent(curPlayer, "on_run_around", missionID, Def_RunQuestType_Normal)
|
|
##FBʼþ´¥·¢
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @param eventName ʼþÃû
|
# @return ·µ»ØÖµÎÞÒâÒå
|
def EventRespons_FBEvent(curPlayer, eventName):
|
RunQuestEvent(curPlayer, "fb_event", eventName, Def_RunQuestType_Normal)
|
|
|
##Ìí¼ÓºÃÓѳɹ¦´¥·¢
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @param eventName ʼþÃû
|
# @return ·µ»ØÖµÎÞÒâÒå
|
def EventRespons_AddFriendSucceed(curPlayer, eventName):
|
RunQuestEvent(curPlayer, "add_friend_succeed", eventName, Def_RunQuestType_Normal)
|
return
|
|
|
##buffÏûʧ´¥·¢
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @param eventName ʼþÃû
|
# @return ·µ»ØÖµÎÞÒâÒå
|
def EventRespons_BuffDisappear(curPlayer, eventName):
|
RunQuestEvent(curPlayer, "buff_disappear", eventName, Def_RunQuestType_Normal)
|
return
|
|
|
##Ãëcd´¥·¢
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @param eventName ʼþÃû
|
# @return ·µ»ØÖµÎÞÒâÒå
|
def EventRespons_ClearCDTime(curPlayer, eventName):
|
RunQuestEvent(curPlayer, "clear_cd_time", eventName, Def_RunQuestType_Normal)
|
return
|
|
|
##³åѨ
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @param eventName ʼþÃû
|
# @return ·µ»ØÖµÎÞÒâÒå
|
def EventRespons_OpenXueWei(curPlayer, eventName):
|
RunQuestEvent(curPlayer, "open_xuewei", eventName, Def_RunQuestType_Normal)
|
return
|
|
|
##Íæ¼Òʼþ
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @param eventName ʼþÃû
|
# @return ·µ»ØÖµÎÞÒâÒå
|
def EventRespons_PlayerEvent(curPlayer, eventName):
|
RunQuestEvent(curPlayer, "player_event", eventName, Def_RunQuestType_Normal)
|
return
|
|
|
##ʹÓÃÔ¶³Ì¹¦ÄÜʼþ
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @param eventName ʼþÃû
|
# @return ·µ»ØÖµÎÞÒâÒå
|
def EventRespons_DirectFuncEvent(curPlayer, eventName):
|
RunQuestEvent(curPlayer, "direct_event", eventName, Def_RunQuestType_Normal)
|
return
|
|
|
##¹ÙÖ°(ÍþÍû)Ïà¹Ø´¥·¢
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @param eventName ʼþÃû
|
# @return ·µ»ØÖµÎÞÒâÒå
|
def EventRespons_PlayerPrestige(curPlayer, eventName):
|
RunQuestEvent(curPlayer, "player_prestige", eventName, Def_RunQuestType_Normal)
|
return
|
|
## É̵깺ÂòÎïÆ·´¥·¢
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @param itemID ÎïÆ·ID
|
# @param itemCnt ÎïÆ·ÊýÁ¿
|
# @return None
|
def EventRespons_BuyItem(curPlayer, itemID, itemCnt):
|
curPlayer.SetDict(ChConfig.Def_PlayerKey_BuyItemCnt, itemCnt)
|
RunQuestEvent(curPlayer, "buy_item", "buy_item_%s"%itemID, Def_RunQuestType_Normal)
|
return
|
|
## NPCËÀÍöÃþ¹ÖÂß¼
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @param curNPC npcʵÀý
|
# @return None
|
def EventRespons_OnKillByFeel(curPlayer, curNPC):
|
|
#µÃµ½NPCµÄTypeID
|
npcTypeID = curNPC.GetNPCID()
|
|
#ÔËÐÐon_kill_by_feelĿ¼ÏµÄ[NPCTypeID].xmlÎļþ
|
QuestRunner.SetKillNPC(curNPC)
|
|
RunQuestEvent(curPlayer, "on_kill_by_feel", npcTypeID, Def_RunQuestType_Normal)
|
|
#´¥·¢Ã¿ÈÕÈÎÎñɱ¹Ö
|
RunDayEvent(curPlayer, "on_kill_by_feel", npcTypeID, QuestCommon.Def_Kill_Npc_ID)
|
EventRespons_OnKillByLv(curPlayer, curNPC)
|
return
|
|
## Íê³ÉÈÎÎñ
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @param taskID ÈÎÎñid
|
# @param rewardPer ½±Àø±¶Öµ°Ù·Ö±È, Èç150Ϊ1.5±¶½±Àø
|
# @return None
|
def EventRespons_OnFinishTask(curPlayer, taskID, rewardPer=100):
|
curMission = curPlayer.FindMission(taskID)
|
if curMission == None:
|
GameWorld.ErrLog("Íæ¼ÒÎÞ¸ÃÈÎÎñ: %s" % taskID, curPlayer.GetPlayerID())
|
return
|
|
missionState = curMission.GetState()
|
|
if missionState != ChConfig.Def_Mission_State_CanComplete:
|
GameWorld.DebugLog("ÈÎÎñ״̬(%s)²»¿ÉÌá½»£¬²»ÄÜÍê³ÉÈÎÎñ£¡taskID=%s" % (missionState, taskID))
|
return
|
|
curQuestData = QuestManager.FindQuest(taskID)
|
|
rewardPer = 100 if rewardPer <= 0 else rewardPer
|
moneyType, moneyCnt = 0, 0
|
# »·ÈÎÎñÖ§³Ö¶à±¶½±ÀøÁìÈ¡
|
if curQuestData != None and curQuestData.Type in QuestCommon.Def_RunTask_Type_List:
|
if rewardPer != 100:
|
rewardCostDict = ReadChConfig.GetEvalChConfig("RunAround_MulRewardCost")
|
if rewardPer not in rewardCostDict:
|
GameWorld.ErrLog("²»Ö§³Ö¸Ã¶à±¶½±Àø±ÈÀý: taskID=%s,rewardPer=%s" % (taskID, rewardPer), curPlayer.GetPlayerID())
|
return
|
|
moneyType, moneyCnt = rewardCostDict[rewardPer]
|
if not PlayerControl.HaveMoney(curPlayer, moneyType, moneyCnt):
|
return
|
|
curMission.SetProperty(QuestRunner.Def_Task_Reward_Per, rewardPer, False)
|
|
isOK = RunQuestEvent(curPlayer, "on_finish", taskID, Def_RunQuestType_Normal)
|
|
if not isOK:
|
GameWorld.DebugLog("OnFinishTask ʧ°Ü£¡")
|
return
|
|
if moneyCnt > 0:
|
PlayerControl.PayMoney(curPlayer, moneyType, moneyCnt, ChConfig.Def_Cost_MissionDel,
|
{"taskID":taskID, "rewardPer":rewardPer, ChConfig.Def_Cost_Reason_SonKey:taskID})
|
return
|
|
## ¿ìËÙÍê³ÉÈÎÎñ
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @param missionID ÈÎÎñid
|
# @return None
|
def EventRespons_OnQuickFinishTask(curPlayer, missionID):
|
RunQuestEvent(curPlayer, "quick_finish_task", missionID, Def_RunQuestType_Normal)
|
return
|
|
## Ò»¼üÍê³ÉËùÓл·ÈÎÎñ
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @param missionID ÈÎÎñid
|
# @return None
|
def EventRespons_OnQuickFinishAllAround(curPlayer, missionID):
|
RunQuestEvent(curPlayer, "on_quick_finish_all_around", missionID, Def_RunQuestType_Normal)
|
return
|
|
## ÉèÖÃÈÎÎñÐǼ¶
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @param missionID ÈÎÎñid
|
# @return None
|
def EventRespons_OnSetMissionStar(curPlayer, missionID):
|
RunQuestEvent(curPlayer, "on_set_mission_star", missionID, Def_RunQuestType_Normal)
|
return
|
|
## ÊÕ»ñ¹ûʵ
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @param eventName
|
# @return None
|
def EventRespons_OnPlantHarvest(curPlayer, eventName):
|
RunQuestEvent(curPlayer, "on_plant_harvest", eventName, Def_RunQuestType_Normal)
|
return
|
|
## ¸±±¾²É¼¯NPC
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @param eventName
|
# @return None
|
def EventRespons_OnFBCollect(curPlayer, eventName):
|
RunQuestEvent(curPlayer, "on_fb_collect", eventName, Def_RunQuestType_Normal)
|
return
|
|
## ¹ºÂòÈÕ³£ÈÎÎñ´ÎÊýÉÏÏÞ
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @param eventName
|
# @return None
|
def EventRespons_OnBuyDayMissionSum(curPlayer, buyNum):
|
RunQuestEvent(curPlayer, "on_buy_mission_sum", buyNum, Def_RunQuestType_RunAll)
|
return
|
|
|
## ´©×°±¸´¥·¢ÅжÏËù´©³È×°ÊýÁ¿
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @param eventName
|
# @return None
|
def EventRespons_OrangeQualityCnt(curPlayer, equipcnt):
|
RunQuestEvent(curPlayer, "quality_orange_cnt", equipcnt, Def_RunQuestType_Normal)
|
return
|
|
## ²¿Î»Ç¿»¯ÐǼ¶
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @param eventName
|
# @return None
|
def EventRespons_OnEquipPartStarUp(curPlayer, upstar):
|
RunQuestEvent(curPlayer, "on_equippartstarup", "on_equippartstarup", Def_RunQuestType_Normal)
|
return
|
|
## ¾ôλÉý½×
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @param eventName
|
# @return None
|
def EventRespons_OnOfficialUp(curPlayer, officialLV, starIndex):
|
#ÐǼ¶*100+½×¼¶
|
RunQuestEvent(curPlayer, "on_officialup", starIndex*100+officialLV, Def_RunQuestType_Normal)
|
return
|
|
## ͨ¹ØÊÔÁ¶Ö®ËþµÚX²ã
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @param eventName
|
# @return None
|
def EventRespons_TrialTowerCnt(curPlayer, cnt):
|
RunQuestEvent(curPlayer, "on_trialtowercnt", cnt, Def_RunQuestType_Normal)
|
return
|
|
## ͨ¹ØÌìÐÇËþµÚX²ã
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @param eventName
|
# @return None
|
def EventRespons_SkyTowerCnt(curPlayer, cnt):
|
RunQuestEvent(curPlayer, "skytowerpass", cnt, Def_RunQuestType_Normal)
|
return
|
|
##»¤ËÍX´ÎÃÀÅ®
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @param eventName ʼþÃû
|
# @return ·µ»ØÖµÎÞÒâÒå
|
def EventRespons_TruckCnt(curPlayer):
|
RunQuestEvent(curPlayer, "on_truckcnt", "on_truckcnt", Def_RunQuestType_Normal)
|
|
##·Ö½âÈÎÒâX¼þ³È×°
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @param eventName ʼþÃû
|
# @return ·µ»ØÖµÎÞÒâÒå
|
def EventRespons_EquipDecompose(curPlayer):
|
RunQuestEvent(curPlayer, "on_equipdecompose", "on_equipdecompose", Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_OnBuyNobleVIP(curPlayer, nobleType):
|
# ¹ºÂò¹ó×å
|
RunQuestEvent(curPlayer, "on_buy_noblevip", "on_buy_noblevip", Def_RunQuestType_Normal)
|
RunQuestEvent(curPlayer, "on_buy_noblevip", nobleType, Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_OnGoldInvest(curPlayer, investType):
|
# °ó×êͶ×Ê
|
RunQuestEvent(curPlayer, "on_goldinvest", "on_goldinvest", Def_RunQuestType_Normal)
|
RunQuestEvent(curPlayer, "on_goldinvest", investType, Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_OnActivatePet(curPlayer, petID):
|
# ¼¤»î³èÎï
|
RunQuestEvent(curPlayer, "on_activatepet", "on_activatepet", Def_RunQuestType_Normal)
|
RunQuestEvent(curPlayer, "on_activatepet", petID, Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_MagicWeaponLV(curPlayer, mwID, lv):
|
# ·¨±¦½âËø½ø¶È
|
RunQuestEvent(curPlayer, "magicweaponlv", '%s_%s'%(mwID, lv), Def_RunQuestType_RunAll)
|
return
|
|
def EventRespons_MagicWeaponFBPassLV(curPlayer, mwID, lv):
|
# ħ×å·¨±¦¹Ø¿¨½ø¶È
|
RunQuestEvent(curPlayer, "mwfbpasslv", '%s_%s'%(mwID, lv), Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_SuccessFinish(curPlayer, succID):
|
# ÁìÈ¡Íê³É¾Í
|
RunQuestEvent(curPlayer, "successfinish", succID, Def_RunQuestType_RunAll)
|
return
|
|
def EventRespons_KillWorldBoss(curPlayer):
|
# »÷ɱÊÀ½çBOSS
|
RunQuestEvent(curPlayer, "killworldboss", 'killworldboss', Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_KillWorldBossByFeel(curPlayer):
|
#ÃþÊÀ½çBOSS
|
RunQuestEvent(curPlayer, "killworldbossbyfeel", 'killworldbossbyfeel', Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_SealDemon(curPlayer):
|
# »ñµÃ·âħ̳110¼¶ÒÔÉÏBOSSÉ˺¦ÅÅÃûµÚÒ»
|
RunQuestEvent(curPlayer, "sealdemon", "sealdemon", Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_HorseMultiple(curPlayer, multiple):
|
#×øÆïÎ¹ÑøX±¶±©»÷Ò»´Î
|
RunQuestEvent(curPlayer, "horsemultiple", multiple, Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_HorseLV(curPlayer, horselv):
|
#ÈÎÒâ×øÆïµ½X¼¶
|
RunQuestEvent(curPlayer, "horselv", horselv, Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_FBEncourage(curPlayer, mapid):
|
#¸±±¾¹ÄÎ輸´Î
|
RunQuestEvent(curPlayer, "fbencourage", mapid, Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_AddFriend(curPlayer, cnt):
|
#ºÃÓÑÊýÁ¿
|
RunQuestEvent(curPlayer, "addfriend", cnt, Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_DujieFBHelp(curPlayer):
|
#ÏÉÃË»¤·¨
|
RunQuestEvent(curPlayer, "dujiehelp", "dujiehelp", Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_DujieFBHelpPass(curPlayer):
|
#¶É½ÙÖúÕ½
|
RunQuestEvent(curPlayer, "dujiehelppass", "dujiehelppass", Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_PassiveSet(curPlayer):
|
#±»¶¯¼¼ÄÜÉèÖÃ
|
RunQuestEvent(curPlayer, "passiveset", "passiveset", Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_PlusGodWeapon(curPlayer, weaponType):
|
#Éñ±ø´¸Á¶
|
RunQuestEvent(curPlayer, "plusgodweapon", "plusgodweapon", Def_RunQuestType_Normal)
|
RunQuestEvent(curPlayer, "plusgodweapon", weaponType, Def_RunQuestType_Normal)
|
return
|
def EventRespons_GodWeaponUp(curPlayer, weaponType, attrLV):
|
# Éñ±øÉý¼¶
|
RunQuestEvent(curPlayer, "godweaponup", "%s_%s"%(weaponType, attrLV), Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_RefineItem(curPlayer, alchemyLV, alchemyItemID):
|
#°ËØÔ¯Á¶µ¤
|
#ÕâÁ½¸ö½Ó¿Ú²ß»®ÔÝʱ²»Óã¬ÏÈ×¢ÊÍ£¬Ê¹ÓÃеÄÁ¬Ä³¸öµ¤Ò©½Ó¿Ú
|
#RunQuestEvent(curPlayer, "refineitem", alchemyLV, Def_RunQuestType_Normal)
|
#RunQuestEvent(curPlayer, "refineitem", "refineitem", Def_RunQuestType_Normal)
|
RunQuestEvent(curPlayer, "refineitem", alchemyItemID, Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_RefineStoveUp(curPlayer, alchemyLV):
|
#°ËØÔ¯ÉýÖÁX¼¶
|
RunQuestEvent(curPlayer, "refinestoveup", alchemyLV, Def_RunQuestType_RunAll)
|
return
|
|
def EventRespons_GetRealmPoint(curPlayer):
|
#»ñµÃÐÞÐеã
|
RunQuestEvent(curPlayer, "getrealmpoint", "getrealmpoint", Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_MWSkillUp(curPlayer):
|
#·¨±¦¼¼ÄÜÉý¼¶
|
RunQuestEvent(curPlayer, "mwskillup", "mwskillup", Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_ShopBuy(curPlayer, shopid):
|
#Ö¸¶¨É̵êÂò¶«Î÷
|
RunQuestEvent(curPlayer, "shopbuy", shopid, Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_GetLastRunTaskAward(curPlayer, taskType):
|
#ÅÜ»·×îÖÕ½±ÀøÁìÈ¡
|
RunQuestEvent(curPlayer, "on_lastruntask_award", taskType, Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_RunTaskAllCnt(curPlayer, tastType, allcnt):
|
#µ±ÌìÒÑÍê³ÉÅÜ»·Êý
|
RunQuestEvent(curPlayer, "runtaskallcnt", '%s_%s'%(tastType, allcnt), Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_RealmUp(curPlayer, realmlv):
|
#¾³½çÉý¼¶
|
RunQuestEvent(curPlayer, "realmup", realmlv, Def_RunQuestType_RunAll)
|
return
|
|
def EventRespons_RealmXXZLAward(curPlayer, taskID):
|
#¾³½çÐÞÏÉ֮·Íê³ÉÈÎÎñ
|
RunQuestEvent(curPlayer, "realmxxzlaward", taskID, Def_RunQuestType_RunAll)
|
return
|
|
def EventRespons_PassQueenRelecs(curPlayer, lineID, grade):
|
#X¼¶Í¨¹ØX²ãæ´»ÊÒż£
|
RunQuestEvent(curPlayer, "passqueenrelecs", '%s_%s'%(lineID, grade), Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_HorseUp(curPlayer):
|
#×øÆïÉý¼¶
|
RunQuestEvent(curPlayer, "horseup", "horseup", Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_SuitPlus(curPlayer, cnt):
|
#2½×Ç¿»¯·À¾ßÌ××°X¼þ
|
RunQuestEvent(curPlayer, "suitplus", cnt, Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_TrialExchange(curPlayer, costItemID):
|
#×ÚÃÅÊÔÁ¶¶Ò»»×°±¸
|
RunQuestEvent(curPlayer, "trialexange", costItemID, Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_EquipByPlace(curPlayer, itemClassLV, equipplace):
|
#´©´÷ij²¿Î»×°±¸(·ÇʱЧ)
|
RunQuestEvent(curPlayer, "equipbyplace", '%s_%s'%(itemClassLV, equipplace), Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_CompoundEquip(curPlayer, itemColor, itemQuality):
|
#×°±¸ºÏ³ÉijƷÖÊijÐǼ¶
|
RunQuestEvent(curPlayer, "compoundequip", '%s_%s'%(itemColor, itemQuality), Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_EquipWash(curPlayer, washType, washLV):
|
#×°±¸Ï´Á·ÖÁX¼¶
|
RunQuestEvent(curPlayer, "equipwash", '%s_%s'%(washType, washLV), Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_AddBourseItem(curPlayer):
|
#Éϼܼ¯ÊÐÎïÆ·
|
RunQuestEvent(curPlayer, "addbourseitem", "addbourseitem", Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_StoreDonate(curPlayer):
|
#¾èÏ×ÏÉÃË×°±¸
|
RunQuestEvent(curPlayer, "storedonate", "storedonate", Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_EquipPlus(curPlayer, classLV, partPlusLV):
|
#Ç¿»¯µÈ¼¶±ä»¯
|
RunQuestEvent(curPlayer, "equipplus", "equipplus", Def_RunQuestType_Normal)
|
RunQuestEvent(curPlayer, "equipplus", '%s_%s'%(classLV, partPlusLV), Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_EquipPlusEvolve(curPlayer, nextEvolveLV):
|
#Ç¿»¯½ø»¯
|
RunQuestEvent(curPlayer, "equipplusevolve", "equipplusevolve", Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_Talk(curPlayer, eventName):
|
#ƵµÀ·¢ÑÔ
|
RunQuestEvent(curPlayer, "talk", eventName, Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_FairyDomain(curPlayer, eventType):
|
#Íê³ÉçÎç¿ÏÉÓòʼþ
|
RunQuestEvent(curPlayer, "fairydomain", 'fairydomain', Def_RunQuestType_Normal)
|
RunQuestEvent(curPlayer, "fairydomain", eventType, Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_AroundMission(curPlayer, missionType):
|
#Íê³ÉÅÜ»·ÈÎÎñ
|
RunQuestEvent(curPlayer, "aroundfinish", missionType, Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_Pray(curPlayer, prayType):
|
#Íê³ÉÆíÔ¸
|
RunQuestEvent(curPlayer, "pray", prayType, Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_ThinkMagicWeapon(curPlayer):
|
#¸ÐÓ¦·¨±¦
|
RunQuestEvent(curPlayer, "thinkfabao", 'thinkfabao', Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_ElementSkill(curPlayer, mainSkillID, skillElementType, updSelectSkillLV):
|
#¼¤»îÎåÐÐר¾« Ö÷¼¼ÄÜID_ר¾«ÀàÐÍ_¼¤»îµÈ¼¶.xml
|
RunQuestEvent(curPlayer, "elementskill", '%s_%s_%s'%(mainSkillID, skillElementType, updSelectSkillLV), Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_EquipStarUp(curPlayer):
|
#×°±¸ÉýÐÇ
|
RunQuestEvent(curPlayer, "equipstarup", 'equipstarup', Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_InlayStone(curPlayer):
|
#±¦Ê¯ÏâǶ
|
RunQuestEvent(curPlayer, "inlaystone", 'inlaystone', Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_StoneChange(curPlayer):
|
# ±¦Ê¯±ä¸ü
|
RunQuestEvent(curPlayer, "stonechange", 'stonechange', Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_EquipItem(curPlayer):
|
#´©ÍÑ×°±¸
|
RunQuestEvent(curPlayer, "equipitem", 'equipitem', Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_SkillUp(curPlayer, FuncType, skillLV):
|
#Éý¼¶¼¼ÄÜ
|
RunQuestEvent(curPlayer, "skillup", FuncType, Def_RunQuestType_Normal)
|
RunQuestEvent(curPlayer, "skillup", '%s_%s' % (FuncType, skillLV), Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_LingGenQualityUP(curPlayer, attrID, qualityLV):
|
#Áé¸ùÉýÆ·
|
RunQuestEvent(curPlayer, "linggenqualityup", '%s_%s' % (attrID, qualityLV), Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_AddPoint(curPlayer):
|
#Áé¸ù¼Óµã
|
RunQuestEvent(curPlayer, "addpoint", '0', Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_ActivityAward(curPlayer, awardIndex):
|
#»îÔ¾Áì½±
|
RunQuestEvent(curPlayer, "activityaward", awardIndex, Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_AddActivityValue(curPlayer):
|
# Ôö¼Ó»îÔ¾¶È
|
RunQuestEvent(curPlayer, "addactivity", "addactivity", Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_HorsePetBoss(curPlayer):
|
#²Î¼ÓÆï³èBOSS
|
RunQuestEvent(curPlayer, "horsepetboss", 'horsepetboss', Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_LingGenReset(curPlayer):
|
#Áé¸ùÖØÖÃ
|
RunQuestEvent(curPlayer, "linggenreset", 'linggenreset', Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_UseMissionItem(curPlayer, missionID):
|
# ʹÓÃÎïÆ·´¥·¢ÈÎÎñ
|
RunQuestEvent(curPlayer, "usemissionitem", missionID, Def_RunQuestType_RunAll)
|
return
|
|
def EventRespons_XBXZ(curPlayer, MWID):
|
# Ïɱ¦Ñ°Ö÷Áì½±
|
RunQuestEvent(curPlayer, "xbxz", MWID, Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_AddAuctionEquip(curPlayer, color):
|
# ÉϼÜ×°±¸ÅÄÆ·
|
RunQuestEvent(curPlayer, "addauctionequip", color, Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_BuyAuctionEquip(curPlayer, color):
|
# ¹ºÂò×°±¸ÅÄÆ·
|
RunQuestEvent(curPlayer, "buyauctionequip", color, Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_OnMoneyChange(curPlayer, moneyType):
|
# »õ±Ò±ä¸üʱ
|
|
# ÔÝ¿ª·ÅÁéʯ
|
if moneyType not in [IPY_GameWorld.TYPE_Price_Gold_Paper]:
|
return
|
RunQuestEvent(curPlayer, "onmoneychange", moneyType, Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_ActivityPlace(curPlayer, event, runall=False):
|
''' »îÔ¾·ÅÖÃʼþ
|
@param event: ¿ÉÆô¶¯ canstart¡¢Æô¶¯ start¡¢¿ÉÁì½± cangetreward¡¢Áì½± getreward
|
'''
|
RunQuestEvent(curPlayer, "activityplace", event, Def_RunQuestType_RunAll if runall else Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_ArenaBattleOver(curPlayer):
|
# ÌôÕ½¾º¼¼³¡ - ½áËã²ÅËã
|
RunQuestEvent(curPlayer, "arenabattleover", "arenabattleover", Def_RunQuestType_Normal)
|
return
|
|
def EventRespons_ArenaHighestScore(curPlayer):
|
# ˢоº¼¼³¡ÀúÊ·×î¸ß·Ö
|
RunQuestEvent(curPlayer, "arenahighestscore", "arenahighestscore", Def_RunQuestType_Normal)
|
return
|
|
#---------------------------------------------------------------------
|
|
#================================================================================
|
#===============================================================================
|
# //08 07 Íæ¼ÒÇл»µØÍ¼#tagCChangeMap
|
# tagCChangeMap * GettagCChangeMap();
|
#
|
# class IPY_CChangeMap
|
# {
|
# public:
|
# //´«Ë͵ãID
|
# int GetTransportID();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//08 07 Íæ¼ÒÇл»µØÍ¼#tagCChangeMap
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//08 07 Íæ¼ÒÇл»µØÍ¼#tagCChangeMap
|
def ChangeMap(index, tick):
|
GameWorld.GetPsycoFunc(__Func_ChangeMap)(index, tick)
|
return
|
|
##¿Í»§¶Ë·â°üÏìÓ¦//08 07 Íæ¼ÒÇл»µØÍ¼#tagCChangeMap
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//08 07 Íæ¼ÒÇл»µØÍ¼#tagCChangeMap
|
def __Func_ChangeMap(index, tick):
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
changeMapPack = IPY_GameWorld.IPY_CChangeMap()
|
|
if PlayerChangeMap(curPlayer, changeMapPack.GetTransportID(), tick):
|
return
|
|
#´«ËÍʧ°Ü, ÉèÖÃÍæ¼Ò¿ÉÒÔÒÆ¶¯
|
curPlayer.SetCanMove(True)
|
return
|
#---------------------------------------------------------------------
|
##Íæ¼Òͨ¹ý´«Ë͵ã, ´«Ë͵ØÍ¼
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@param transportID ´«Ë͵ãID
|
#@param tick ʱ¼ä´Á
|
#@return ²¼¶ûÖµ
|
#@remarks Íæ¼Òͨ¹ý´«Ë͵ã, ´«Ë͵ØÍ¼
|
def PlayerChangeMap(curPlayer, transportID, tick):
|
transport = GameWorld.GetGameData().FindTransportByID(transportID)
|
if transport == None:
|
#GameWorld.Log("ûÓдËÇл»µã = %s"%(transportID) , curPlayer.GetPlayerID())
|
return False
|
|
#Çл»µØÍ¼×ø±ê¾àÀë
|
dist = GameWorld.GetDist(curPlayer.GetPosX(), curPlayer.GetPosY(), transport.GetPosX(), transport.GetPosY())
|
#²»ÔÚÇл»µã·¶Î§ÄÚ
|
if dist > transport.GetRange() + 16:
|
# if curPlayer.GetPosX() < transport.GetPosX()-dist or curPlayer.GetPosX() > transport.GetPosX()+dist or curPlayer.GetPosY() < transport.GetPosY()-dist or curPlayer.GetPosY() > transport.GetPosY()+dist:
|
#GameWorld.Log("Íæ¼Ò²»ÔÚÇл»µãÄÚ" , curPlayer.GetPlayerID())
|
curPlayer.ResetPos(curPlayer.GetPosX(), curPlayer.GetPosY())
|
GameWorld.GodLog(curPlayer, '´«Ë͵ã¾àÀë¹ýÔ¶ = %s, Range = %s'%(dist, transport.GetRange()))
|
return False
|
|
#ÔÚÇл»µã·¶Î§ÄÚ£¬Çл»µØÍ¼
|
mapID = transport.GetTargetMapID()
|
targetPosX = transport.GetTargetPosX()
|
targetPosY = transport.GetTargetPosY()
|
|
if not PlayerControl.CanEnterMap(curPlayer, mapID):
|
#Íæ¼Ò²»¿É½øÈë¸Ã³¡¾°
|
return False
|
|
# #Ìí¼ÓÓÐÏÞÎÞµÐBUFF
|
# SkillCommon.AddBuffBySkillType(curPlayer, ChConfig.Def_SkillID_LimitSuperBuff, tick)
|
#2. Íæ¼ÒÇл»µØÍ¼£¨µØÍ¼ID£¬X£¬Y£©
|
curTruck = curPlayer.GetTruck()
|
if curTruck:
|
isTakeTruck = curTruck.GetMode() != IPY_GameWorld.trmStop
|
else:
|
isTakeTruck = False
|
|
PlayerControl.PlayerResetWorldPos(curPlayer, mapID, targetPosX, targetPosY, isTakeTruck, canLock = False)
|
return True
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //08 0A ½áÊøÊ¼þ#tagCCancelEvent
|
# tagCCancelEvent * GettagCCancelEvent();
|
#
|
# class IPY_CCancelEvent
|
# {
|
# public:
|
#
|
# int GetType();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//08 0A ½áÊøÊ¼þ#tagCCancelEvent
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//08 0A ½áÊøÊ¼þ#tagCCancelEvent
|
def ExitEvent(index, tick):
|
GameWorld.GetPsycoFunc(__Func_ExitEvent)(index, tick)
|
return
|
|
##¿Í»§¶Ë·â°üÏìÓ¦//08 0A ½áÊøÊ¼þ#tagCCancelEvent
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//08 0A ½áÊøÊ¼þ#tagCCancelEvent
|
def __Func_ExitEvent(index, tick):
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
|
DoExitEvent(curPlayer)
|
#¸±±¾À뿪ʼþ
|
FBLogic.OnExitEvent(curPlayer, tick)
|
return
|
#---------------------------------------------------------------------
|
#°Ñµ±Ç°ÈÎÎñ֪ͨ¸ø¿Í»§¶Ë
|
#/**ÈÎÎñ״̬¶¨Òå*/
|
#enum TMissionState
|
#{
|
# msNoMission = 0, ///<δ½Ó
|
# msProcessing, ///<½øÐÐÖÐ
|
# msCanComplete, ///<¿ÉÌá½»
|
# msComplete, ///<ÒÑÍê³É
|
# msFail, ///<ʧ°Ü
|
# msNoExist, ///<æô³µ²»´æÔÚ
|
#};
|
#ÌØÊâÈÎÎñ״̬¶¨Òå:
|
#0 : δ½Ó
|
#-1: ÒÑÍê³É
|
#-2: æô³µ¶ªÊ§
|
#-3: æô³µ±»´òÀÃ
|
#-4: ÈÎÎñδ´ïµ½¿É½Ó״̬
|
#-5: ÈÎÎñ¿ÉÌá½»
|
|
##ˢе¥¶ÀµÄÈÎÎñ
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@param curMission ÈÎÎñʵÀý
|
#@param isFirstLogin ÊÇ·ñµÚÒ»´ÎµÇ½
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ˢе¥¶ÀµÄÈÎÎñ
|
def NotifyOneMission(curPlayer, curMission, isFirstLogin = False, isNotifyAll = True):
|
#state = curMission.GetState()
|
|
#֪ͨÈÎÎñ×Öµä
|
if isNotifyAll:
|
curMission.Notify_AllProperty()
|
|
#з½Ê½: Ë¢ÐÂÕâ¸ö
|
QuestRunner.RefreshMission(curPlayer, curMission)
|
|
# GameWorld.Log("state = %d"%state)
|
# missionState = curMission.GetMissionState()
|
# lastMissionState = missionState
|
# taskID = curMission.GetMissionID()
|
#
|
# if QuestManager.FindQuest(taskID) == None:
|
# GameWorld.Log("ÈÎÎñID = %d ûÓÐÈÎÎñÃèÊö!"%taskID)
|
# return
|
#
|
# questData = QuestManager.FindQuest(taskID)
|
# taskName = questData.Name
|
#
|
# if taskName == "":
|
# #GameWorld.Log("ÈÎÎñÃû³Æ = ¿Õ")
|
# return
|
#
|
# parentID = 0
|
# if state == -1:
|
# missionState = IPY_GameWorld.msComplete
|
# if state == -4:
|
# missionState = IPY_GameWorld.msNoExist
|
#
|
# if missionState == IPY_GameWorld.msNoMission and state != 0:
|
# missionState = IPY_GameWorld.msProcessing
|
#
|
# curMission.SetMissionState(missionState)
|
#
|
# if questData.Type == 8 and state == 0:
|
# #ÈÎÎñÀàÐÍ:8 ΪÓÂÕßÈÎÎñ(¾íÖáÈÎÎñ), ²»Í¨Öª¸ø¿Í»§¶Ë
|
# return
|
#
|
#
|
#
|
# if state == 0:
|
# #״̬µÈÓÚ0, Ö»ÏÔʾµÆ
|
## GameWorld.Log("״̬µÈÓÚ0, Ö»ÏÔʾµÆ")
|
# QuestRunner.ShowMissionLight(curPlayer, curMission)
|
#
|
# #ÔÚÈÎÎñ²éѯÖÐÌí¼ÓÕâ¸öÈÎÎñ
|
# QuestRunner.NotifyNewQuestInfo(curPlayer, curMission)
|
# return
|
#
|
# if not isFirstLogin and lastMissionState == missionState:
|
# #GameWorld.Log("lastMissionState = %d curMissionState = %s"%(lastMissionState, missionState))
|
# GameWorld.Log("Íæ¼Òµ±Ç°ÈÎÎñ¸üÐÂ, ÃèÊö²»±ä")
|
# return
|
# GameWorld.Log("Íæ¼Òµ±Ç°ÈÎÎñ: %s, state = %d"%(taskName, state))
|
#
|
#
|
# #if questData.Invisible == 0 or missionState !=:
|
# # #Èç¹ûÈÎÎñΪÒþ²ØÈÎÎñ, Ôò²»ÏÔʾ¸ø¿Í»§¶Ë¿´µ½
|
# taskType = QuestManager.FindQuest(taskID).Type
|
# curPlayer.NotifyTaskInfo(taskType, questData.NameCode, taskID, parentID, missionState)
|
#
|
#
|
# if state == -1 or state == -4:
|
# #ÈÎÎñIDΪ-1»òÕß-4, ±íʾÈÎÎñÒѾÍê³É, ²»ÐèÒª½øÒ»²½ÏÔʾÈÎÎñÏêϸÇé¿ö
|
# curPlayer.Sync_ClearMapMissionLight(taskID)
|
# return
|
#
|
#
|
#
|
# #·¢ËÍËùÓÐÈÎÎñ×·×ÙÐÅÏ¢
|
# QuestRunner.ShowMissionInfo(curPlayer, curMission, -1)
|
#
|
# #·¢ËÍËùÓеƵÄÐÅÏ¢
|
# QuestRunner.ShowMissionLight(curPlayer, curMission)
|
|
#---------------------------------------------------------------------
|
##°ÑÍæ¼Òµ±Ç°µÄËùÓÐÈÎÎñ·¢Ë͸ø¿Í»§¶Ë, Èç¹ûÍæ¼ÒÊǵÚÒ»´ÎµÇ¼, °ÑËùÓÐÈÎÎñ·¢¸ø¿Í»§¶Ë
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@param isFirstLogin ÊÇ·ñµÚÒ»´ÎµÇ½
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks °ÑÍæ¼Òµ±Ç°µÄËùÓÐÈÎÎñ·¢Ë͸ø¿Í»§¶Ë, Èç¹ûÍæ¼ÒÊǵÚÒ»´ÎµÇ¼, °ÑËùÓÐÈÎÎñ·¢¸ø¿Í»§¶Ë
|
def NotifyAllQuestDetail(curPlayer, isFirstLogin = False):
|
notifyMissionList = []
|
for i in range(0, curPlayer.GetMissionCount()):
|
curMission = curPlayer.GetMissionByIndex(i)
|
notifyMissionList.append(curMission)
|
|
for curMission in notifyMissionList:
|
#ÔÚ֪ͨÈÎÎñµÄʱºò, »áɾ³ýÈÎÎñ, ËùÒÔÒªÖØ½¨Ò»´ÎÁбí
|
NotifyOneMission(curPlayer, curMission, isFirstLogin)
|
|
return
|
|
#ÈÎÎñÃèÊö
|
#def GetTaskDetail(index, tick):
|
# curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
# sendPack = IPY_GameWorld.IPY_CGetTaskDetail()
|
# sendTaskID = sendPack.GetTaskID()
|
# curTask = curPlayer.FindMission(sendTaskID)
|
# if curTask == None:
|
# GameWorld.Log("ûÓÐÕâ¸öÈÎÎñ%d"%sendTaskID)
|
# return
|
#
|
# descriptionIndex = 0
|
# state = curTask.GetState()
|
# questDescriptionList = QuestManager.FindQuest(sendTaskID).QuestDescriptionList
|
#
|
# rewardNode = None
|
# if state == -1 or state ==0:
|
# #ÈÎÎñÒѾÍê³É/ûÓнӣ¬ ûÓн±Àø½Úµã
|
# descriptionIndex = len(questDescriptionList) - 1
|
# questDescs = QuestManager.GetQuestDescriptions()
|
# if questDescs.has_key(sendTaskID):
|
# detail = questDescs[sendTaskID]
|
# else:
|
# descriptionIndex = curTask.GetDescriptionIndex()
|
# #µÃµ½ÈÎÎñ½±Àø, Æ´½Ó
|
# rewardNode = QuestRunner.GetRewardNode(curPlayer, curTask)
|
# #ÈÎÎñÃèÊöÌæ»»
|
# detail = questDescriptionList[descriptionIndex].Msg
|
# if detail == "":
|
# return
|
#
|
#
|
# if rewardNode != None:
|
# #ÈÎÎñÃèÊöÓëÈÎÎñ½±ÀøÌæ»»
|
# #detail = detail + QuestRunner.ReplaceNPCTalkText(curPlayer, curTask, rewardNode.FindChildNode("msg").GetXML())
|
# detail = "%s %s"%(detail, rewardNode.FindChildNode("msg").GetAttribute("code"))
|
# curPlayer.NotifyTaskDetail(sendPack.GetType(), curTask, detail)
|
# return
|
|
#############################################################
|
##»Ø¾ø×°±¸¼Ó¹¤·â°ü
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@param funcAnswer ÏìÓ¦µÄʼþ
|
#@return ÎÞ
|
#@remarks »Ø¾ø×°±¸¼Ó¹¤·â°ü
|
def SyncMakeItemRefuse(curPlayer, funcAnswer):
|
answerDict = {
|
'EquipAddStar' : ShareDefine.Def_mitLVUpStar, #ÉýÐÇ
|
}
|
answerType = answerDict.get(funcAnswer)
|
|
if answerType == None:
|
return
|
|
curPlayer.Sync_MakeItemAnswer(answerType, ChConfig.Def_ComposeState_None)
|
|
#---------------------------------------------------------------------
|
##Ô¶³ÌÖ´ÐÐNPC¹¦ÄÜ
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@param responseType ʼþÏìÓ¦ÀàÐÍ
|
#@param funcAnswer ÏìÓ¦µÄʼþ
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÊÇ·ñÖ´Ðгɹ¦
|
#@remarks Ô¶³ÌÖ´ÐÐNPC¹¦ÄÜ
|
def FuncDirectCall(curPlayer, responseType, funcAnswer, tick, clientData=None):
|
#Ô¶³Ìʼþ,״̬ͳһÅжÏ
|
if not FunctionNPCCommon.CheckPlayerCanStateEvent(curPlayer):
|
#Í˳ö»Ø°ü
|
SyncMakeItemRefuse(curPlayer, funcAnswer)
|
return
|
|
callFunc = GameWorld.GetExecFunc(EventSrc, "%s.%s"%(responseType, funcAnswer))
|
|
if callFunc == None:
|
#º¯Êýµ÷Óò»¿ÉʹÓÃ
|
GameWorld.Log("¹¦ÄÜ»ØÓ¦Ê¼þÏìÓ¦ %s %s²»¿ÉʹÓÃ"%(responseType, funcAnswer) , curPlayer.GetPlayerID())
|
#Í˳ö»Ø°ü
|
SyncMakeItemRefuse(curPlayer, funcAnswer)
|
return
|
|
if clientData:
|
return GameWorld.GetPsycoFunc(callFunc)(curPlayer, clientData, tick)
|
|
return GameWorld.GetPsycoFunc(callFunc)(curPlayer, tick)
|
#---------------------------------------------------------------------
|
## NPC¶Ô»°Ö´ÐÐNPC¹¦ÄÜ
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@param funcAnswer ÏìÓ¦µÄʼþ
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÊÇ·ñÖ´Ðгɹ¦
|
#@remarks NPC¶Ô»°Ö´ÐÐNPC¹¦ÄÜ
|
def FuncCall(curPlayer, funcAnswer, tick):
|
tagObj = curPlayer.GetActionObj()
|
|
if tagObj == None:
|
#ûÓÐÄ¿±ê
|
GameWorld.Log("FuncCall -> ûÓÐÄ¿±ê" , curPlayer.GetPlayerID())
|
return
|
|
if tagObj.GetGameObjType() != IPY_GameWorld.gotNPC:
|
#̸»°¶ÔÏó²»¶Ô
|
GameWorld.Log("FuncCall -> ̸»°¶ÔÏó²»¶Ô" , curPlayer.GetPlayerID())
|
return
|
|
curNPC = GameWorld.GetNPCManager().GetNPCByIndex(tagObj.GetIndex())
|
|
if curNPC == None:
|
#ûÓÐÕâ¸öNPC
|
GameWorld.Log("FuncCall ->ûÓÐÕâ¸öNPC" , curPlayer.GetPlayerID())
|
return
|
|
responseType = "Func_%d"%curNPC.GetFunctionType()
|
|
if not responseType:
|
return
|
|
callFunc = GameWorld.GetExecFunc(EventSrc, "%s.%s"%(responseType, funcAnswer))
|
|
if callFunc == None:
|
#º¯Êýµ÷Óò»¿ÉʹÓÃ
|
GameWorld.Log("FuncCall ->¹¦ÄÜ»ØÓ¦Ê¼þÏìÓ¦ %s %s²»¿ÉʹÓÃ"%(responseType, funcAnswer) , curPlayer.GetPlayerID())
|
return
|
|
return GameWorld.GetPsycoFunc(callFunc)(curPlayer, tick)
|
#---------------------------------------------------------------------
|
# //08 11 ÌØÊâÈÎÎñ½á¹û#tagEndSpecialEvent
|
#
|
# struct tagEndSpecialEvent
|
# {
|
# tagHead Head;
|
# BYTE Type; //1. ¿ªÊ¼´òÔì 2. ¿ªÊ¼¼ø¶¨ 3. ...
|
# };
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //08 0B ´òÔìÎïÆ·#tagCMakeItem
|
# tagCMakeItem * GettagCMakeItem();
|
#
|
# class IPY_CMakeItem
|
# {
|
# public:
|
# //´òÔìµÄÎïÆ·ID
|
# int GetMakeItemID();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//08 0B ´òÔìÎïÆ·#tagCMakeItem
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//08 0B ´òÔìÎïÆ·#tagCMakeItem
|
def MakeItem(index, tick):
|
return
|
|
#===============================================================================
|
# //08 19 ´òÔì×°±¸#tagCBuildEquip
|
# int GetBuildID(); //´òÔìID
|
# int GetItem1Count(); //ʹÓÃÎïÆ·1¸öÊý
|
# int GetItem2Count(); //ʹÓÃÎïÆ·2¸öÊý
|
# int GetItem3Count(); //ʹÓÃÎïÆ·3¸öÊý
|
# int GetItem4Count(); //ʹÓÃÎïÆ·4¸öÊý
|
# int GetItem5Count(); //ʹÓÃÎïÆ·5¸öÊý
|
# int GetItem6Count(); //ʹÓÃÎïÆ·6¸öÊý
|
# int GetBuildMode(); //´òÔìģʽ£¬Ä¿Ç°ÓУºÄ¬ÈÏ£¬°ó¶¨£¬·Ç°ó¶¨´òÔìģʽ
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//08 19 ´òÔì×°±¸#tagCBuildEquip
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//08 19 ´òÔì×°±¸#tagCBuildEquip
|
def BuildEquip(index, tick):
|
# curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
# FuncDirectCall(curPlayer, "Func_102", "BuildEquip", tick)
|
return
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //08 03 Íæ¼Ò¹ºÂòÎïÆ·#tagCBuyItemList
|
# tagCBuyItemList * GettagCBuyItemList();
|
#
|
# class IPY_CBuyItemList
|
# {
|
# public:
|
#
|
# int GetBuyItemIndex();
|
# //¹ºÂòÊýÁ¿
|
# int GetBuyCount();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//08 03 Íæ¼Ò¹ºÂòÎïÆ·#tagCBuyItemList
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//08 03 Íæ¼Ò¹ºÂòÎïÆ·#tagCBuyItemList
|
def BuyItem(index, tick):
|
#µÃµ½Íæ¼ÒµÄ¶ÔÏó
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
|
result = FuncDirectCall(curPlayer, "FunctionNPCCommon", "BuyItem", tick)
|
|
if result:
|
PlayerControl.NotifyCode(curPlayer, "BuyResSucceed")
|
|
return
|
|
|
#===============================================================================
|
# //A2 03 »Ø¹ºÎïÆ· #tagCMBuyItemBack
|
#
|
# struct tagCMBuyItemBack
|
# {
|
# tagHead Head;
|
# BYTE Index; //±³°üλÖÃË÷Òý
|
# };
|
#===============================================================================
|
## »Ø¹ºÎïÆ·
|
# @param None
|
# @return None
|
def BuyItemBack(index, clientPack, tick):
|
#µÃµ½Íæ¼ÒµÄ¶ÔÏó
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
|
FunctionNPCCommon.BuyItemBack(curPlayer, clientPack, tick)
|
|
return
|
|
|
#===============================================================================
|
# //0E 04 Íæ¼Ò¼ø¶¨ÎïÆ·#tagCShopIdentifyItem
|
# tagCShopIdentifyItem * GettagCShopIdentifyItem();
|
#
|
# class IPY_CShopIdentifyItem
|
# {
|
# public:
|
#
|
# int GetTYPE();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//0E 04 Íæ¼Ò¼ø¶¨ÎïÆ·#tagCShopIdentifyItem
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//0E 04 Íæ¼Ò¼ø¶¨ÎïÆ·#tagCShopIdentifyItem
|
def IdentifyItem(index, tick):
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //12 01 ´ò¿ªÐżþ#tagCOpenLetter
|
# tagCOpenLetter * GettagCOpenLetter();
|
#
|
# class IPY_COpenLetter
|
# {
|
# public:
|
# //ÐżþID
|
# char * GetMailID();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//12 01 ´ò¿ªÐżþ#tagCOpenLetter
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//12 01 ´ò¿ªÐżþ#tagCOpenLetter
|
def OpenLetter(index, tick):
|
#curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
#FuncCall(curPlayer, "OpenLetter", tick)
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //12 02 ·¢ËÍÐżþ#tagCSendMail
|
# tagCSendMail * GettagCSendMail();
|
#
|
# class IPY_CSendMail
|
# {
|
# public:
|
# //Ä¿±êÃû³Æ
|
# char * GetTagName();
|
# //Ö÷Ìâ
|
# char * GetTitle();
|
#
|
# int GetContentLen();
|
# //size = ContentLen
|
# char * GetContent();
|
# //Òø×Ó
|
# int GetMoney();
|
# //ÀàÐÍ: TLetterType, ×Ô¼º¸¶·Ñ, ¶Ô·½¸¶·Ñ
|
# int GetLetterType();
|
# //·¢ËÍÎïÆ·ÊýÁ¿
|
# int GetItemCount();
|
# //size = ItemCount
|
# int GetItem(int index);
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//12 02 ·¢ËÍÐżþ#tagCSendMail
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//12 02 ·¢ËÍÐżþ#tagCSendMail
|
def SendLetter(index, tick):
|
#curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
#FuncCall(curPlayer, "SendLetter", tick)
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //12 05 ÍËÐÅ#tagCReturnMail
|
# tagCReturnMail * GettagCReturnMail();
|
#
|
# class IPY_CReturnMail
|
# {
|
# public:
|
#
|
# char * GetMailID();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//12 05 ÍËÐÅ#tagCReturnMail
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//12 05 ÍËÐÅ#tagCReturnMail
|
def ReturnLetter(index, tick):
|
#curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
#FuncCall(curPlayer, "ReturnLetter", tick)
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //12 06 ɾ³ýÐżþ#tagCDeleteMail
|
# tagCDeleteMail * GettagCDeleteMail();
|
#
|
# class IPY_CDeleteMail
|
# {
|
# public:
|
#
|
# char * GetMailID();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//12 06 ɾ³ýÐżþ#tagCDeleteMail
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//12 06 ɾ³ýÐżþ#tagCDeleteMail
|
def DeleteLetter(index, tick):
|
#curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
#FuncCall(curPlayer, "DeleteLetter", tick)
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //12 07 ÖÃΪ±£´æ#tagCSaveMail
|
# tagCSaveMail * GettagCSaveMail();
|
#
|
# class IPY_CSaveMail
|
# {
|
# public:
|
#
|
# char * GetMailID();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//12 07 ÖÃΪ±£´æ#tagCSaveMail
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//12 07 ÖÃΪ±£´æ#tagCSaveMail
|
def SaveLetter(index, tick):
|
#curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
#FuncCall(curPlayer, "SaveLetter", tick)
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //12 03 ÌáÈ¡ÐżþµÄÇ®#tagCGetMailMoney
|
# tagCGetMailMoney * GettagCGetMailMoney();
|
#
|
# class IPY_CGetMailMoney
|
# {
|
# public:
|
#
|
# char * GetMailID();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//12 03 ÌáÈ¡ÐżþµÄÇ®#tagCGetMailMoney
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//12 03 ÌáÈ¡ÐżþµÄÇ®#tagCGetMailMoney
|
def GetLetterMoney(index, tick):
|
#curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
#FuncCall(curPlayer, "GetLetterMoney", tick)
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //12 04 ÌáÈ¡ÐżþÎïÆ·#tagCGetMailItem
|
# tagCGetMailItem * GettagCGetMailItem();
|
#
|
# class IPY_CGetMailItem
|
# {
|
# public:
|
#
|
# char * GetMailID();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//12 04 ÌáÈ¡ÐżþÎïÆ·#tagCGetMailItem
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//12 04 ÌáÈ¡ÐżþÎïÆ·#tagCGetMailItem
|
def GetLetterItem(index, tick):
|
#curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
#FuncCall(curPlayer, "GetLetterItem", tick)
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //08 05 Íæ¼ÒÐÞÀíÎïÆ·#tagCShopRepairItem
|
# tagCShopRepairItem * GettagCShopRepairItem();
|
#
|
# class IPY_CShopRepairItem
|
# {
|
# public:
|
#
|
# int GetPackType();
|
#
|
# int GetItemIndex();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//08 05 Íæ¼ÒÐÞÀíÎïÆ·#tagCShopRepairItem
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//08 05 Íæ¼ÒÐÞÀíÎïÆ·#tagCShopRepairItem
|
def RepairItem(index, tick):
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
FuncDirectCall(curPlayer, "FunctionNPCCommon", "RepairItem", tick)
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //08 06 ÂôÎïÆ·#tagCPlayerSellItem
|
# tagCPlayerSellItem * GettagCPlayerSellItem();
|
#
|
# class IPY_CPlayerSellItem
|
# {
|
# public:
|
# //±³°üÀàÐÍ
|
# int GetPackType();
|
# //ÎïÆ·Ë÷Òý
|
# int GetItemIndex();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//08 06 ÂôÎïÆ·#tagCPlayerSellItem
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//08 06 ÂôÎïÆ·#tagCPlayerSellItem
|
def SellItem(index, tick):
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
|
result = FuncDirectCall(curPlayer, "FunctionNPCCommon", "SellItem", tick)
|
|
sendData = IPY_GameWorld.IPY_CPlayerSellItem()
|
packType = sendData.GetPackType()
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //08 0C ºÏ³É#tagCMerge
|
# tagCMerge * GettagCMerge();
|
#
|
# class IPY_CMerge
|
# {
|
# int GetCompoundTimes();//ºÏ³É´ÎÊý
|
# int GetIsAutoBuy();//ÊÇ·ñ×Ô¶¯¹ºÂò¸½¼Ó²ÄÁÏ
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//08 0C ºÏ³É#tagCMerge
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//08 0C ºÏ³É#tagCMerge
|
def MergeItem(index, tick):
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //08 0E ÎïÆ·°ó¶¨#tagCBindItem
|
# tagCBindItem * GettagCBindItem();
|
#
|
# class IPY_CBindItem
|
# {
|
# public:
|
# //°ó¶¨Ó¡¼ÇµÄindex
|
# int GetBindStoneIndex();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//08 0E ÎïÆ·°ó¶¨#tagCBindItem
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//08 0E ÎïÆ·°ó¶¨#tagCBindItem
|
def BindItem(index, tick):
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //08 0F ×°±¸´ò¿×#tagCMakeHoleItem
|
# tagCMakeHoleItem * GettagCMakeHoleItem();
|
#
|
# class IPY_CMakeHoleItem
|
# {
|
# public:
|
# //ÊÇ·ñ×Ô¶¯¹ºÂò, Èç¹û×Ô¶¯¹ºÂò, ÔòÏÂÃæ×Ö¶ÎÎÞЧ
|
# int GetAutoBuyItem();
|
# //·þÎñÆ÷¶Ë×Ô¼ºÕÒ´ò¿×λÖÃ
|
# int GetMakeHoleType();
|
# //ÊÇ·ñʹÓð󶨲ÄÁÏ, Ϊ1ÊÇÈ«²¿ÓÃ, 0ΪֻÓò»°ó¶¨µÄ
|
# int GetIsUseBindItem();
|
# };
|
#===============================================================================
|
# ----->>>ÇØÊ¼»Ê°æ·â°ü, ÔÝʱ²»ÓÃ<<<-----
|
##¿Í»§¶Ë·â°üÏìÓ¦//08 0F ×°±¸´ò¿×#tagCMakeHoleItem
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//08 0F ×°±¸´ò¿×#tagCMakeHoleItem
|
def MakeHoleItem(index, tick):
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //08 10 ×°±¸ÉýÐÇ#tagCItemLVUpStar
|
# tagCItemLVUpStar * GettagCItemLVUpStar();
|
#
|
# class IPY_CItemLVUpStar
|
# {
|
# public:
|
# //ÊÇ·ñ×Ô¶¯¹ºÂò, Èç¹û×Ô¶¯¹ºÂò, ÔòÏÂÃæ×Ö¶ÎÎÞЧ
|
# int GetAutoBuyItem();
|
# //±³°üÐÇʯλÖÃ
|
# int GetStarStoneIndex();
|
# //ÊÇ·ñʹÓ÷À±¬·û
|
# int GetUseFangBaoFu();
|
# //·À±¬¸½Index
|
# int GetFangBaoFuIndex();
|
# //ÊÇ·ñ×Ô¶¯¹ºÂò·À±¬·û
|
# int GetAutoBuyFangBaoFu();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦08 10 ×°±¸ÉýÐÇ#tagCItemLVUpStar
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦08 10 ×°±¸ÉýÐÇ#tagCItemLVUpStar
|
def ItemLVUpStar(index, tick):
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //08 11 ÏâǶ±¦Ê¯#tagCInsertStone
|
# tagCInsertStone * GettagCInsertStone();
|
#
|
# class IPY_CInsertStone
|
# {
|
# public:
|
# //±¦Ê¯Î»ÖÃ
|
# int GetStoneIndex();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//08 11 ÏâǶ±¦Ê¯#tagCInsertStone
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//08 11 ÏâǶ±¦Ê¯#tagCInsertStone
|
def InsertStone(index, tick):
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //08 12 ²ð½âÎïÆ·#tagCDepartItem
|
# tagCDepartItem * GettagCDepartItem();
|
#
|
# class IPY_CDepartItem
|
# {
|
# public:
|
#
|
# int GetType();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//08 12 ²ð½âÎïÆ·#tagCDepartItem
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//08 12 ²ð½âÎïÆ·#tagCDepartItem
|
def DepartItem(index, tick):
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //0D 01 ºÏ³ÉÎïÆ··ÅÈë±³°ü#tagCPutItemInComposePack
|
# tagCPutItemInComposePack * GettagCPutItemInComposePack();
|
#
|
# class IPY_CPutItemInComposePack
|
# {
|
# public:
|
# //±³°üλÖÃ
|
# int GetItemIndex();
|
# //·ÅÈëλÖÃ
|
# int GetMakePackIndex();
|
# //·ÅÈëÊýÁ¿
|
# int GetCount();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//0D 01 ºÏ³ÉÎïÆ··ÅÈë±³°ü#tagCPutItemInComposePack
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//0D 01 ºÏ³ÉÎïÆ··ÅÈë±³°ü#tagCPutItemInComposePack
|
def PutItemInCompose(index, tick):
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //0D 02 È¡³öºÏ³É±³°üÎïÆ·#tagCGetItemInComposePack
|
# tagCGetItemInComposePack * GettagCGetItemInComposePack();
|
#
|
# class IPY_CGetItemInComposePack
|
# {
|
# public:
|
# //ºÏ³ÉλÖÃ
|
# int GetComposePackIndex();
|
# //ÎïÆ·Î»ÖÃ
|
# int GetItemIndex();
|
# //È¡³öÊýÁ¿
|
# int GetCount();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//0D 02 È¡³öºÏ³É±³°üÎïÆ·#tagCGetItemInComposePack
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//0D 02 È¡³öºÏ³É±³°üÎïÆ·#tagCGetItemInComposePack
|
def GetItemInCompose(index, tick):
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //0D 03 ºÏ³É±³°üÖÐÍ϶¯ÎïÆ·#tagCMoveItemInComposePack
|
# tagCMoveItemInComposePack * GettagCMoveItemInComposePack();
|
#
|
# class IPY_CMoveItemInComposePack
|
# {
|
# public:
|
# //ÆðʼλÖÃ
|
# int GetSrcIndex();
|
# //Ä¿±êλÖÃ
|
# int GetDestIndex();
|
#
|
# int GetCount();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//0D 03 ºÏ³É±³°üÖÐÍ϶¯ÎïÆ·#tagCMoveItemInComposePack
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//0D 03 ºÏ³É±³°üÖÐÍ϶¯ÎïÆ·#tagCMoveItemInComposePack
|
def MoveItemInCompose(index, tick):
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //0D 04 ÎïÆ··ÅÈë×¼±¸²ð½â±³°ü#tagCPutItemInBreakPreparePack
|
# tagCPutItemInBreakPreparePack * GettagCPutItemInBreakPreparePack();
|
#
|
# class IPY_CPutItemInBreakPreparePack
|
# {
|
# public:
|
# //±³°üλÖÃ
|
# int GetItemIndex();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//0D 04 ÎïÆ··ÅÈë×¼±¸²ð½â±³°ü#tagCPutItemInBreakPreparePack
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//0D 04 ÎïÆ··ÅÈë×¼±¸²ð½â±³°ü#tagCPutItemInBreakPreparePack
|
def PutItemInBreakPreparePack(index, tick):
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //0D 05 ´Ó²ð½â×¼±¸±³°üÖÐÈ¡³ö#tagCGetBackItemInBreakPrepare
|
# tagCGetBackItemInBreakPrepare * GettagCGetBackItemInBreakPrepare();
|
#
|
# class IPY_CGetBackItemInBreakPrepare
|
# {
|
# public:
|
# //²ð½â±³°üµÄλÖÃ
|
# int GetBreakPrepareIndex();
|
# //Íϵ½Ä¿µÄµØµÄλÖÃ
|
# int GetItemIndex();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦ //0D 05 ´Ó²ð½â×¼±¸±³°üÖÐÈ¡³ö#tagCGetBackItemInBreakPrepare
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦ //0D 05 ´Ó²ð½â×¼±¸±³°üÖÐÈ¡³ö#tagCGetBackItemInBreakPrepare
|
def GetBackItemInBreakPrepare(index, tick):
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //0D 06 ´Ó²ð½â½á¹û±³°üÖÐÈ¡³ö#tagCGetBackItemInBreakItem
|
# tagCGetBackItemInBreakItem * GettagCGetBackItemInBreakItem();
|
#
|
# class IPY_CGetBackItemInBreakItem
|
# {
|
# public:
|
# //²ð½â½á¹û±³°üλÖÃ
|
# int GetBreakItemIndex();
|
# //È¡³öÊýÄ¿
|
# int GetCount();
|
# //±³°üλÖÃ
|
# int GetItemIndex();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//0D 06 ´Ó²ð½â½á¹û±³°üÖÐÈ¡³ö#tagCGetBackItemInBreakItem
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//0D 06 ´Ó²ð½â½á¹û±³°üÖÐÈ¡³ö#tagCGetBackItemInBreakItem
|
def GetBackItemInBreakItem(index, tick):
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //0D 07 È¡³öºÏ³É½á¹û±³°ü#tagCGetItemFromResultPack
|
# tagCGetItemFromResultPack * GettagCGetItemFromResultPack();
|
#
|
# class IPY_CGetItemFromResultPack
|
# {
|
# public:
|
#
|
# int GetItemIndex();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//0D 07 È¡³öºÏ³É½á¹û±³°ü#tagCGetItemFromResultPack
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//0D 07 È¡³öºÏ³É½á¹û±³°ü#tagCGetItemFromResultPack
|
def GetItemFromResultPack(index, tick):
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //0D 08 ·ÅÈëºÏ³É½á¹û±³°ü#tagCPutInResultPack
|
# tagCPutInResultPack * GettagCPutInResultPack();
|
#
|
# class IPY_CPutInResultPack
|
# {
|
# public:
|
#
|
# int GetItemIndex();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//0D 08 ·ÅÈëºÏ³É½á¹û±³°ü#tagCPutInResultPack
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//0D 08 ·ÅÈëºÏ³É½á¹û±³°ü#tagCPutInResultPack
|
def PutItemInResultPack(index, tick):
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //0E 01 ¼ø¶¨ÎïÆ··ÅÈë±³°ü#tagCPutItemInIdentify
|
# tagCPutItemInIdentify * GettagCPutItemInIdentify();
|
#
|
# class IPY_CPutItemInIdentify
|
# {
|
# public:
|
# //±³°üλÖÃ
|
# int GetItemIndex();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//0E 01 ¼ø¶¨ÎïÆ··ÅÈë±³°ü#tagCPutItemInIdentify
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//0E 01 ¼ø¶¨ÎïÆ··ÅÈë±³°ü#tagCPutItemInIdentify
|
def PutItemInIdentify(index, tick):
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //0E 02 È¡³ö¼ø¶¨±³°üÄÚµÄÎïÆ·#tagCGetBackItemInIdentify
|
# tagCGetBackItemInIdentify * GettagCGetBackItemInIdentify();
|
#
|
# class IPY_CGetBackItemInIdentify
|
# {
|
# public:
|
# //ÎïÆ·Î»ÖÃ
|
# int GetItemIndex();
|
# //È¡³öÊýÁ¿
|
# int GetCount();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//0E 02 È¡³ö¼ø¶¨±³°üÄÚµÄÎïÆ·#tagCGetBackItemInIdentify
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//0E 02 È¡³ö¼ø¶¨±³°üÄÚµÄÎïÆ·#tagCGetBackItemInIdentify
|
def GetItemInIdentify(index, tick):
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //0E 03 ¼ø¶¨½áÊø#tagCIdentifyOK
|
# tagCIdentifyOK * GettagCIdentifyOK();
|
#
|
# class IPY_CIdentifyOK
|
# {
|
# public:
|
# //ÎÞÒâÒå
|
# int GetType();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//0E 03 ¼ø¶¨½áÊø#tagCIdentifyOK
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//0E 03 ¼ø¶¨½áÊø#tagCIdentifyOK
|
def IdentifyOK(index, tick):
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //08 15 ²ð½âÎïÆ·±¦Ê¯#tagCBreakItemStone
|
# tagCBreakItemStone * GettagCBreakItemStone();
|
#
|
# class IPY_CBreakItemStone
|
# {
|
# public:
|
# //ÎïÆ·µÄµÚ¼¸¸ö±¦Ê¯
|
# int GetStoneIndex();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//08 15 ²ð½âÎïÆ·±¦Ê¯#tagCBreakItemStone
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//08 15 ²ð½âÎïÆ·±¦Ê¯#tagCBreakItemStone
|
def DigItemStone(index, tick):
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //08 16 ʹÓÃÍþ¶û¸Õ#tagCUseWeiErGangIncreaseEndure
|
# tagCUseWeiErGangIncreaseEndure * GettagCUseWeiErGangIncreaseEndure();
|
#
|
# class IPY_CUseWeiErGangIncreaseEndure
|
# {
|
# public:
|
# //Íþ¶û¸ÕλÖÃ
|
# int GetGangStoneIndex();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//08 16 ʹÓÃÍþ¶û¸Õ#tagCUseWeiErGangIncreaseEndure
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//08 16 ʹÓÃÍþ¶û¸Õ#tagCUseWeiErGangIncreaseEndure
|
def UseWegAddEndure(index, tick):
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //07 27 ´«ËµÎïÆ·ºÏ³É#tagCLegendMerge
|
# tagCLegendMerge * GettagCLegendMerge();
|
#
|
# class IPY_CLegendMerge
|
# {
|
# public:
|
# //Index
|
# int GetItemIndex();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//07 27 ´«ËµÎïÆ·ºÏ³É#tagCLegendMerge
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//07 27 ´«ËµÎïÆ·ºÏ³É#tagCLegendMerge
|
def LegendItemMerge(index, tick):
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //08 17 ½â³ý°ó¶¨#tagCCancelBind
|
# tagCCancelBind * GettagCCancelBind();
|
#
|
# class IPY_CCancelBind
|
# {
|
# public:
|
# //°ó¶¨Ó¡¼ÇµÄindex
|
# int GetUnBindStoneIndex();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//08 17 ½â³ý°ó¶¨#tagCCancelBind
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//08 17 ½â³ý°ó¶¨#tagCCancelBind
|
def UnBindItem(index, tick):
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //08 18 Õ½»êÌ××°ºÏ³É#tagCSoulOfWarMerge
|
# tagCSoulOfWarMerge * GettagCSoulOfWarMerge();
|
#
|
# class IPY_CSoulOfWarMerge
|
# {
|
# public:
|
# //ÊÇ·ñʹÓð󶨲ÄÁÏ
|
# int GetUseBindItem();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//08 18 Õ½»êÌ××°ºÏ³É#tagCSoulOfWarMerge
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//08 18 Õ½»êÌ××°ºÏ³É#tagCSoulOfWarMerge
|
def SoulOfWarEquip(index, tick):
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //07 23 ÐÞÀí·¨±¦#tagCRepairFabao
|
# tagCRepairFabao * GettagCRepairFabao();
|
#
|
# class IPY_CRepairFabao
|
# {
|
# public:
|
# //·¨±¦µÄλÖÃ
|
# int GetFabaoIndex();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//07 23 ÐÞÀí·¨±¦#tagCRepairFabao
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//07 23 ÐÞÀí·¨±¦#tagCRepairFabao
|
def RepairFaBao(index , tick):
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //07 22 ÌáÁ¶·¨±¦#tagCForgeFaBao
|
# tagCForgeFaBao * GettagCForgeFaBao();
|
#
|
# class IPY_CForgeFaBao
|
# {
|
# public:
|
# //ÌáÁ¶¶àÉÙ·ÖÖÓ
|
# int GetTime();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//07 22 ÌáÁ¶·¨±¦#tagCForgeFaBao
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//07 22 ÌáÁ¶·¨±¦#tagCForgeFaBao
|
def ForgeFaBao(index, tick):
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //07 25 ·¨±¦ºÏ³É#tagCFaBaoMix
|
# tagCFaBaoMix * GettagCFaBaoMix();
|
#
|
# class IPY_CFaBaoMix
|
# {
|
# public:
|
# //3¸öºÏ³ÉÒ»¸ö
|
# int GetItemIndex1();
|
#
|
# int GetItemIndex2();
|
#
|
# int GetItemIndex3();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//07 25 ·¨±¦ºÏ³É#tagCFaBaoMix
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//07 25 ·¨±¦ºÏ³É#tagCFaBaoMix
|
def MixFaBao(index , tick):
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //07 34 ·¨±¦·ÉÉý#tagCFaBaoFly
|
# tagCFaBaoFly * GettagCFaBaoFly();
|
#
|
# class IPY_CFaBaoFly
|
# {
|
# public:
|
# //Index
|
# int GetItemIndex();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//07 34 ·¨±¦·ÉÉý#tagCFaBaoFly
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//07 34 ·¨±¦·ÉÉý#tagCFaBaoFly
|
def FaBaoFly(index , tick):
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //07 35 Ĩȥ·¨±¦¼¼ÄÜ#tagCFaBaoForget
|
# tagCFaBaoForget * GettagCFaBaoForget();
|
#
|
# class IPY_CFaBaoForget
|
# {
|
# public:
|
# //Index
|
# int GetItemIndex();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//07 35 Ĩȥ·¨±¦¼¼ÄÜ#tagCFaBaoForget
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//07 35 Ĩȥ·¨±¦¼¼ÄÜ#tagCFaBaoForget
|
def FaBaoForget(index , tick):
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //07 36 ·¨±¦ÈÚºÏ#tagCFaBaoMerge
|
# tagCFaBaoMerge * GettagCFaBaoMerge();
|
#
|
# class IPY_CFaBaoMerge
|
# {
|
# public:
|
# //×ó±ßÄǸö·¨±¦
|
# int GetFaBao1Index();
|
# //ÓÒ±ßÄǸö·¨±¦
|
# int GetFaBao2Index();
|
# //µÚÒ»¸öÎïÆ·, ºìºìµÄ¶¹×Ó
|
# int GetItem1Cnt();
|
# //µÚ¶þ¸öÎïÆ·, Ô²Ô²µÄÇò
|
# int GetItem2Cnt();
|
# //µÚÈý¸öÎïÆ·, ¾íÖá
|
# int GetItem3Cnt();
|
# //ÊÇ·ñʹÓð󶨲ÄÁÏ
|
# int GetUseBindItem();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//07 36 ·¨±¦ÈÚºÏ#tagCFaBaoMerge
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//07 36 ·¨±¦ÈÚºÏ#tagCFaBaoMerge
|
def FaBaoMerge(index , tick):
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //0F 0E ¼Ò×å¾èÏ×Òø×Ó#tagCContributeSilver
|
def ContributeFamilyMoney(index , tick):
|
# ʹÓÃРA6 05 ¼Ò×å¾èÏ× #tagCMFamilyDonate
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //07 28 5ÐÐת»»#tagCItemChangeProperty
|
# tagCItemChangeProperty * GettagCItemChangeProperty();
|
#
|
# class IPY_CItemChangeProperty
|
# {
|
# public:
|
# //ÊÇ·ñ²ÄÁϲ»×ã×Ô¶¯¹ºÂò
|
# int GetAutoBuyStuff();
|
# //ÊÇ·ñʹÓð󶨲ÄÁÏ
|
# int GetUseBindItem();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//07 28 5ÐÐת»»#tagCItemChangeProperty
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//07 28 5ÐÐת»»#tagCItemChangeProperty
|
def ItemChangeProperty(index, tick):
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //07 29 Áé»ê·âÓ¡#tagCItemChangeGiveSoul
|
# tagCItemChangeGiveSoul * GettagCItemChangeGiveSoul();
|
#
|
# class IPY_CItemChangeGiveSoul
|
# {
|
# public:
|
# //ÊÇ·ñ²ÄÁϲ»×ã×Ô¶¯¹ºÂò
|
# int GetAutoBuyStuff();
|
# //ÊÇ·ñʹÓð󶨲ÄÁÏ
|
# int GetUseBindItem();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//07 29 Áé»ê·âÓ¡#tagCItemChangeGiveSoul
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//07 29 Áé»ê·âÓ¡#tagCItemChangeGiveSoul
|
def ItemChangeGiveSoul(index, tick):
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //07 30 Áé»êת»»#tagCItemChangeSoul
|
# tagCItemChangeSoul * GettagCItemChangeSoul();
|
#
|
# class IPY_CItemChangeSoul
|
# {
|
# public:
|
# //ÊÇ·ñ²ÄÁϲ»×ã×Ô¶¯¹ºÂò
|
# int GetAutoBuyStuff();
|
# //ÊÇ·ñʹÓð󶨲ÄÁÏ
|
# int GetUseBindItem();
|
# //ÊÇ·ñʹÓÃÁé»êʯ
|
# int GetUseIceStone();
|
# //ÊÇ·ñ×Ô¶¯¹ºÂò
|
# int GetIceStoneAutoBuy();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//07 30 Áé»êת»»#tagCItemChangeSoul
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//07 30 Áé»êת»»#tagCItemChangeSoul
|
def ItemChangeSoul(index, tick):
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //07 31 Ç©Ãû¸Ä±äÖé#tagCItemChangeMark
|
# tagCItemChangeMark * GettagCItemChangeMark();
|
#
|
# class IPY_CItemChangeMark
|
# {
|
# public:
|
# //ÊÇ·ñʹÓð󶨲ÄÁÏ
|
# int GetUseBindItem();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//07 31 Ç©Ãû¸Ä±äÖé#tagCItemChangeMark
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//07 31 Ç©Ãû¸Ä±äÖé#tagCItemChangeMark
|
def ItemChangeMark(index, tick):
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //07 32 Ç©ÃûÖé#tagCItemChangeGiveMark
|
# tagCItemChangeGiveMark * GettagCItemChangeGiveMark();
|
#
|
# class IPY_CItemChangeGiveMark
|
# {
|
# public:
|
# //ÊÇ·ñʹÓð󶨲ÄÁÏ
|
# int GetUseBindItem();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//07 32 Ç©ÃûÖé#tagCItemChangeGiveMark
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//07 32 Ç©ÃûÖé#tagCItemChangeGiveMark
|
def ItemChangeGiveMark(index, tick):
|
return
|
|
#---------------------------------------------------------------------
|
##ÖØÖñ³°üµÈ¼¶
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@param addPackCnt ¿ªÆôµÈ¼¶
|
#@return ²¼¶ûÖµ
|
#@remarks ×Ô¶¨Ò庯Êý ÉèÖñ³°üµÈ¼¶
|
def ResetBackPack(curPlayer, addPackCnt = 1):
|
packType = IPY_GameWorld.rptItem
|
|
#³õʼ»¯Íæ¼Ò±³°ü
|
if packType not in ChConfig.Def_Type_CanBuyPack_PlayerDict.keys():
|
return
|
|
keyName = ChConfig.Def_Type_CanBuyPack_PlayerDict.get(packType)[ChConfig.Def_PlayerPackDict_Index_Key]
|
|
#ÒѾ¿ªÆôµÄ±³°ü¸ñ×ÓÊý
|
packCount = ItemCommon.GetPackInitCount(packType) + curPlayer.NomalDictGetProperty(keyName)
|
resetPackCnt = packCount + addPackCnt
|
|
curPack = curPlayer.GetItemManager().GetPack(packType)
|
|
if resetPackCnt > curPack.GetMaxCount():
|
return False
|
|
#ÉèÖÃÍæ¼Ò±³°üÊýÁ¿
|
curPack.SetCount(resetPackCnt)
|
|
PlayerControl.NomalDictSetProperty(curPlayer, keyName, curPlayer.NomalDictGetProperty(keyName) + addPackCnt)
|
|
#³õʼ»¯Íæ¼Ò±³°ü
|
PlayerControl.Init_ItemPack(curPlayer)
|
|
PlayerControl.NotifyCode(curPlayer, "GeRen_hwj35_149184", [addPackCnt])
|
return True
|
#---------------------------------------------------------------------
|
##ÉèÖòֿâµÈ¼¶
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@param addWarehouseCnt ²Ö¿âµÈ¼¶
|
#@param needNotify ÊÇ·ñÐèҪϵͳÌáʾ
|
#@return ²¼¶ûÖµ
|
#@remarks ×Ô¶¨Ò庯Êý ÉèÖòֿâµÈ¼¶
|
def ResetWarehouse(curPlayer, addWarehouseCnt = 1, needNotify = True):
|
packType = IPY_GameWorld.rptWarehouse
|
#³õʼ»¯Íæ¼Ò±³°ü
|
if packType not in ChConfig.Def_Type_CanBuyPack_PlayerDict.keys():
|
return
|
|
keyName = ChConfig.Def_Type_CanBuyPack_PlayerDict.get(packType)[ChConfig.Def_PlayerPackDict_Index_Key]
|
count = ItemCommon.GetPackInitCount(packType) + curPlayer.NomalDictGetProperty(keyName) + addWarehouseCnt
|
|
curPack = curPlayer.GetItemManager().GetPack(packType)
|
|
if count > curPack.GetMaxCount():
|
return False
|
|
#ÉèÖòֿâ¸ñ×ÓÊý
|
curPack.SetCount(count)
|
|
PlayerControl.NomalDictSetProperty(curPlayer, keyName, curPlayer.NomalDictGetProperty(keyName) + addWarehouseCnt)
|
|
#³õʼ»¯²Ö¿â
|
PlayerControl.Init_Warehouse(curPlayer)
|
|
if not needNotify:
|
return True
|
|
PlayerControl.NotifyCode(curPlayer, "GeRen_hwj35_874335", [addWarehouseCnt])
|
return True
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //0C 01 ±³°üÎïÆ··ÅÈë²Ö¿â#tagCPutItemInWarehouse
|
# tagCPutItemInWarehouse * GettagCPutItemInWarehouse();
|
#
|
# class IPY_CPutItemInWarehouse
|
# {
|
# public:
|
# //±³°üλÖÃ
|
# int GetItemIndex();
|
# //·ÅÈëλÖÃ
|
# int GetWarehouseIndex();
|
# //·ÅÈëÊýÁ¿
|
# int GetCount();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//0C 01 ±³°üÎïÆ··ÅÈë²Ö¿â#tagCPutItemInWarehouse
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//0C 01 ±³°üÎïÆ··ÅÈë²Ö¿â#tagCPutItemInWarehouse
|
def PutItemInWarehouse(index, tick):
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
FuncDirectCall(curPlayer, Def_Warehouse_FuncName, "PutItemInWarehouse", tick)
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //0C 02 È¡³ö²Ö¿âÎïÆ·#tagCGetItemInWarehouse
|
# tagCGetItemInWarehouse * GettagCGetItemInWarehouse();
|
#
|
# class IPY_CGetItemInWarehouse
|
# {
|
# public:
|
# //²Ö¿âλÖÃ
|
# int GetWarehouseIndex();
|
# //ÎïÆ·Î»ÖÃ
|
# int GetItemIndex();
|
# //È¡³öÊýÁ¿
|
# int GetCount();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//0C 02 È¡³ö²Ö¿âÎïÆ·#tagCGetItemInWarehouse
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//0C 02 È¡³ö²Ö¿âÎïÆ·#tagCGetItemInWarehouse
|
def GetItemInWarehouse(index, tick):
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
FuncDirectCall(curPlayer, Def_Warehouse_FuncName, "GetItemInWarehouse", tick)
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //0C 03 ²Ö¿âÈ¡³ö½ðÇ®#tagCGetMoneyInWarehouse
|
# tagCGetMoneyInWarehouse * GettagCGetMoneyInWarehouse();
|
#
|
# class IPY_CGetMoneyInWarehouse
|
# {
|
# public:
|
# //½ðÇ®ÀàÐÍ
|
# int GetMoneyType();
|
# //Ç®
|
# int GetMoney();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//0C 03 ²Ö¿âÈ¡³ö½ðÇ®#tagCGetMoneyInWarehouse
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//0C 03 ²Ö¿âÈ¡³ö½ðÇ®#tagCGetMoneyInWarehouse
|
def GetMoneyInWarehouse(index, tick):
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
FuncDirectCall(curPlayer, Def_Warehouse_FuncName, "GetMoneyInWarehouse", tick)
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //0C 04 ²Ö¿â·ÅÈë½ðÇ®#tagCPutMoneyInWarehouse
|
# tagCPutMoneyInWarehouse * GettagCPutMoneyInWarehouse();
|
#
|
# class IPY_CPutMoneyInWarehouse
|
# {
|
# public:
|
# //½ðÇ®ÀàÐÍ
|
# int GetMoneyType();
|
# //½ðÇ®
|
# int GetMoney();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//0C 04 ²Ö¿â·ÅÈë½ðÇ®#tagCPutMoneyInWarehouse
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//0C 04 ²Ö¿â·ÅÈë½ðÇ®#tagCPutMoneyInWarehouse
|
def PutMoneyInWarehouse(index, tick):
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
FuncDirectCall(curPlayer, Def_Warehouse_FuncName, "PutMoneyInWarehouse", tick)
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //0C 05 ÉèÖòֿâÃÜÂë#tagCSetWarehousePsw
|
# tagCSetWarehousePsw * GettagCSetWarehousePsw();
|
#
|
# class IPY_CSetWarehousePsw
|
# {
|
# public:
|
# //µ±Ç°ÃÜÂë(¿Õ±íʾûÓÐÃÜÂë)
|
# char * GetPsw();
|
# //¾ÉÃÜÂë
|
# char * GetOldPsw();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//0C 05 ÉèÖòֿâÃÜÂë#tagCSetWarehousePsw
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//0C 05 ÉèÖòֿâÃÜÂë#tagCSetWarehousePsw
|
def SetWarehousePsw(index, tick):
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
FuncDirectCall(curPlayer, Def_Warehouse_FuncName, "SetWarehousePsw", tick)
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //0C 06 Ëø¶¨²Ö¿â#tagCSetWarehouseLock
|
# tagCSetWarehouseLock * GettagCSetWarehouseLock();
|
#
|
# class IPY_CSetWarehouseLock
|
# {
|
# public:
|
# //0: ½âËø 1:Ëø¶¨
|
# int GetIsLock();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//0C 06 Ëø¶¨²Ö¿â#tagCSetWarehouseLock
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//0C 06 Ëø¶¨²Ö¿â#tagCSetWarehouseLock
|
def SetWarehouseLock(index, tick):
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
FuncDirectCall(curPlayer, Def_Warehouse_FuncName, "SetWarehouseLock", tick)
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //0C 07 ¿Í»§¶Ë·¢ËͲֿâÃÜÂë#tagSendWarehousePsw
|
# tagSendWarehousePsw * GettagSendWarehousePsw();
|
#
|
# class IPY_SendWarehousePsw
|
# {
|
# public:
|
#
|
# char * GetPsw();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//0C 07 ¿Í»§¶Ë·¢ËͲֿâÃÜÂë#tagSendWarehousePsw
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//0C 07 ¿Í»§¶Ë·¢ËͲֿâÃÜÂë#tagSendWarehousePsw
|
def SendWarehousePsw(index, tick):
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
FuncDirectCall(curPlayer, Def_Warehouse_FuncName, "SendWarehousePsw", tick)
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //0C 08 µÚÒ»´Î´ò¿ª²Ö¿â#tagCInitWarehousePsw
|
# tagCInitWarehousePsw * GettagCInitWarehousePsw();
|
#
|
# class IPY_CInitWarehousePsw
|
# {
|
# public:
|
# //ÃÜÂë
|
# char * GetPsw();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//0C 08 µÚÒ»´Î´ò¿ª²Ö¿â#tagCInitWarehousePsw
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//0C 08 µÚÒ»´Î´ò¿ª²Ö¿â#tagCInitWarehousePsw
|
def InitWarehousePsw(index, tick):
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
FuncDirectCall(curPlayer, Def_Warehouse_FuncName, "InitWarehousePsw", tick)
|
DoExitEvent(curPlayer)
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //07 10 ²Ö¿âÖØÕû#tagCWarehouseReset
|
# tagCWarehouseReset * GettagCWarehouseReset();
|
#
|
# class IPY_CWarehouseReset
|
# {
|
# public:
|
#
|
# int GetType();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//07 10 ²Ö¿âÖØÕû#tagCWarehouseReset
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//07 10 ²Ö¿âÖØÕû#tagCWarehouseReset
|
def ResetWarehouseItem(index, tick):
|
#===============================================================================
|
# ±³°üÖØÕûºÏ²¢ 07 0F
|
# curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
# FuncCall(curPlayer, "ResetWarehouseItem", tick)
|
#===============================================================================
|
return
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //07 0F ±³°üÖØÕû#tagCItemPackReset
|
# //¶ÔÐÔÄÜÓбȽϴóµÄÓ°Ïì
|
#
|
# struct tagCItemPackReset
|
# {
|
# BYTE Type; //±³°üÀàÐÍ
|
# WORD ItemBeginIndex; //ÎïÆ·ÆðʼË÷Òý
|
# WORD ItemEndIndex; //ÎïÆ·½áÊøË÷Òý
|
# };
|
#===============================================================================
|
## ÎïÆ·ÖØÕû(·â°ü²ÎÊý)
|
# @param index ÎïÆ·Ë÷Òý
|
# @param tick µ±Ç°Ê±¼ä
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def ResetItem(index, tick):
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
sendPack = IPY_GameWorld.IPY_CItemPackReset()
|
sendPack_PackIndex = sendPack.GetType()
|
sendPack_ItemBeginIndex = sendPack.GetItemBeginIndex()
|
sendPack_ItemEndIndex = sendPack.GetItemEndIndex()
|
|
#·â°ü¼ì²é
|
if sendPack_PackIndex not in ChConfig.Def_CanItemResetPack:
|
GameWorld.ErrLog('ResetItem TypeErr = %s'%(sendPack_PackIndex), curPlayer.GetID())
|
return
|
|
#Íæ¼Ò±³°ü¼ì²é
|
rolePack = curPlayer.GetItemManager().GetPack(sendPack_PackIndex)
|
|
if sendPack_ItemBeginIndex < 0 or sendPack_ItemBeginIndex >= sendPack_ItemEndIndex \
|
or sendPack_ItemEndIndex >= rolePack.GetCount():
|
GameWorld.ErrLog('ResetItem IndexErr = %s,%s'%(sendPack_ItemBeginIndex, sendPack_ItemEndIndex), curPlayer.GetID())
|
return
|
|
#²Ö¿â±³°üÌØÊâ´¦Àí: ÿ´ÎÕûÀíÒ»Ò³
|
#===========================================================================
|
# if sendPack_PackIndex == IPY_GameWorld.rptWarehouse:
|
# #if sendPack_ItemEndIndex - sendPack_ItemBeginIndex >= ChConfig.Def_ItemReset_WarehousePageCnt:
|
# # GameWorld.ErrLog('ResetItem WarehouseIndexErr = %s,%s'%(sendPack_ItemBeginIndex, sendPack_ItemEndIndex), curPlayer.GetID())
|
# # return
|
#
|
# #Íæ¼Òµ±Ç°×´Ì¬²»ÊÇ²Ö¿â´æÈ¡×´Ì¬
|
# if curPlayer.GetWarehouseState() != IPY_GameWorld.wsWarehouse:
|
# return
|
#===========================================================================
|
|
#±³°üÕûÀíÂß¼
|
ItemControler.ResetItem(curPlayer, sendPack_PackIndex, sendPack_ItemBeginIndex, sendPack_ItemEndIndex, tick)
|
return
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //08 14 ³ÆºÅºÏ³É#tagCTitleMix
|
# tagCTitleMix * GettagCTitleMix();
|
#
|
# class IPY_CTitleMix
|
# {
|
# public:
|
# //×îÖÕÒªºÏ³ÉµÄ³ÆºÅ
|
# int GetTitleID();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//08 14 ³ÆºÅºÏ³É#tagCTitleMix
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//08 14 ³ÆºÅºÏ³É#tagCTitleMix
|
def MixTitle(index, tick):
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
FuncCall(curPlayer, "MixTitle", tick)
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //0C 09 ²Ö¿âÍ϶¯ÎïÆ·#tagMoveItemInWarehouse
|
# tagMoveItemInWarehouse * GettagMoveItemInWarehouse();
|
#
|
# class IPY_MoveItemInWarehouse
|
# {
|
# public:
|
# //ÆðʼλÖÃ
|
# int GetSrcIndex();
|
# //Ä¿±êλÖÃ
|
# int GetDestIndex();
|
#
|
# int GetCount();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//0C 09 ²Ö¿âÍ϶¯ÎïÆ·#tagMoveItemInWarehouse
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//0C 09 ²Ö¿âÍ϶¯ÎïÆ·#tagMoveItemInWarehouse
|
def MoveItemInWarehouse(index, tick):
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
FuncDirectCall(curPlayer, Def_Warehouse_FuncName, "MoveItemInWarehouse", tick)
|
return
|
#---------------------------------------------------------------------
|
##ÖØ¶ÁÈÎÎñË¢ÐÂ
|
#@param ÎÞ
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ÖØ¶ÁÈÎÎñË¢ÐÂ
|
def DoReloadRefresh():
|
#¸³Öµ
|
QuestRunner.SetFindQuestFunc(QuestManager.FindQuest)
|
QuestRunner.SetFunctionNPCTalk(QuestManager.GetFunctionNPCTalk())
|
QuestRunner.SetFindDefaultTalkFunc(QuestManager.FindDefaultTalk)
|
QuestRunner.SetQuestTrig(QuestManager.GetQuestTrig())
|
QuestRunner.SetQuestDescriptions(QuestManager.GetQuestDescriptions())
|
QuestRunner.SetAllQuestsEvents(QuestManager.GetAllQuestsEvents())
|
|
#--------------------------------------×Ô¶¨Òå·½·¨
|
##½áÊøÊ¼þÏìÓ¦
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ×Ô¶¨Ò庯Êý:½áÊøÊ¼þÏìÓ¦
|
def DoExitEvent(curPlayer):
|
#ÔÊÐíÕûÀí±³°ü
|
#ExitEvent() »á°Ñ״̬Çå¿Õ,Onday»á´¥·¢£¬ÐèÒª»¹Ô
|
playerAction = curPlayer.GetPlayerAction()
|
|
curPlayer.SetForbiddenResetItem(0)
|
ExitCompose(curPlayer)
|
ExitWarehouse(curPlayer)
|
#ExitRepair(curPlayer)
|
ExitCreateFamily(curPlayer)
|
ExitBillboard(curPlayer)
|
#ExitEventLock(curPlayer)
|
#npcÉ̵êÍ˳ö
|
ExitNPCShop(curPlayer)
|
|
#PlayerTrade.LeaveTrade(curPlayer, 0)
|
# Çå³ýpy×Ô¶¨Òå״̬
|
#ClearPyPlayerAction(curPlayer)
|
|
#µ÷Óõײã½áÊøÊ¼þ
|
#±ÜÃâ²ß»®±ä¸ü£¬µ¼ÖÂÆäËûÍ˳öËø¶¨Ê¼þʹÈÎÎñ1δ½ÓÈ¡¾ÍÍ˳öËø¶¨
|
if curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_Frist_Lock) != 1:
|
curPlayer.ExitEvent()
|
|
if playerAction == IPY_GameWorld.paSit:
|
#»¹Ô´ò×ø
|
PlayerControl.SetIsNeedProcess(curPlayer, True)
|
#Íæ¼Ò×øÏÂ
|
curPlayer.Sit()
|
|
#GameWorld.Log("Íæ¼ÒÍ˳öËùÓÐʼþ³É¹¦" , curPlayer.GetPlayerID())
|
return True
|
|
#---------------------------------------------------------------------
|
## npcÉ̵êÍ˳ö
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @return ·µ»ØÖµÎÞÒâÒå
|
def ExitNPCShop(curPlayer):
|
# ÉèÖõ±Ç°É̵êµÄnpcidΪ0
|
curPlayer.SetDict(ChConfig.Def_PlayerKey_TradeTagNPC, 0)
|
return
|
|
|
## Çå³ýpy×Ô¶¨Òå״̬
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @return ·µ»ØÖµÎÞÒâÒå
|
def ClearPyPlayerAction(curPlayer):
|
#Çå³ýpy×Ô¶¨Òå״̬
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_PyPlayerAction, 0)
|
return
|
|
#---------------------------------------------------------------------
|
##½áÊø²é¿´ÅÅÐаñ
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ×Ô¶¨Ò庯Êý:½áÊø²é¿´ÅÅÐаñ
|
def ExitBillboard(curPlayer):
|
if curPlayer.GetWatchBillboardState() == 0:
|
return
|
curPlayer.GameServer_SetWatchBillboardState(0)
|
return
|
#---------------------------------------------------------------------
|
##½áÊø²Ö¿âʼþ
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ×Ô¶¨Ò庯Êý:½áÊø²Ö¿âʼþ
|
def ExitWarehouse(curPlayer):
|
curPlayer.SetWarehouseState(IPY_GameWorld.wsNull)
|
return
|
#---------------------------------------------------------------------
|
##½áÊø´òÔìʼþ
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ×Ô¶¨Ò庯Êý:½áÊø´òÔìʼþ
|
def ExitCompose(curPlayer):
|
curPlayer.SetComposeItemState(IPY_GameWorld.cisNull)
|
return
|
#---------------------------------------------------------------------
|
##½áÊøÐÞÀíʼþ
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ×Ô¶¨Ò庯Êý:½áÊøÐÞÀíʼþ
|
def ExitRepair(curPlayer):
|
if curPlayer.GetEventHaveFixItem() == True:
|
#Ë¢ÐÂÊôÐÔ
|
playerControl = PlayerControl.PlayerControl(curPlayer)
|
playerControl.RefreshAllState()
|
#ÖØÖÃ״̬
|
curPlayer.SetEventHaveFixItem(False)
|
|
#---------------------------------------------------------------------
|
##½áÊø´´½¨¼Ò×åʼþ
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ×Ô¶¨Ò庯Êý:½áÊø´´½¨¼Ò×åʼþ
|
def ExitCreateFamily(curPlayer):
|
PlayerFamily.SendPack_GameServer_ClearViewFamilyState(curPlayer)
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //08 09 È¡ÏûÈÎÎñ#tagCCancelTask
|
# tagCCancelTask * GettagCCancelTask();
|
#
|
# class IPY_CCancelTask
|
# {
|
# public:
|
#
|
# int GetTaskID();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//08 09 È¡ÏûÈÎÎñ#tagCCancelTask
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//08 09 È¡ÏûÈÎÎñ#tagCCancelTask
|
def DeleteMission(index, tick):
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
pack = IPY_GameWorld.IPY_CCancelTask()
|
missionID = pack.GetTaskID()
|
curMission = curPlayer.FindMission(missionID)
|
|
if not curMission:
|
return
|
|
missionState = curMission.GetState()
|
|
#δ½ÓÈÎÎñ»òÒÑÍê³ÉÈÎÎñ²»¿É·ÅÆú
|
if missionState in [ ChConfig.Def_Mission_State_NoAccept, ChConfig.Def_Mission_State_Over ]:
|
return
|
|
#ÒÆ¶¯Öв»Ö´Ðд˲Ù×÷
|
if curPlayer.IsMoving():
|
#PlayerControl.NotifyCode(curPlayer, "GeRen_lhs_0")
|
return
|
|
if curPlayer.GetPlayerAction()!= IPY_GameWorld.paNull:
|
#ÄúÖ»ÓÐÔÚ¿ÕÏÐ״̬ÏÂ²Å¿É·ÅÆúÈÎÎñ
|
PlayerControl.NotifyCode(curPlayer, "Task_cannot_Delete02")
|
return
|
|
#if GameWorld.GetMap().GetMapFBType() != IPY_GameWorld.fbtNull:
|
# PlayerControl.NotifyCode(curPlayer, "GeRen_hgg_880525")
|
# return
|
|
curQuestData = QuestManager.FindQuest(missionID)
|
if not curQuestData:
|
return
|
|
#·ÅÆúÐüÉÍÈÎÎñ
|
#if missionID == ChConfig.Def_ArrestMissionID:
|
# PlayerArrestTask.OnDeleteArrestTask(curPlayer)
|
|
#ÏÈÔÚÈÎÎñ±íÖÐÕÒÊý¾Ý, Èç¹ûÕÒµ½ÁË, ¾Í²»±éÀúXMLÁË
|
if __DoLogic_DeleteMission(curPlayer, curMission):
|
GameWorld.Log("ÔÚÈÎÎñ±íÖÐÕÒÊý¾Ý, ɾ³ýÈÎÎñ = %s, ״̬ = %s"%(missionID, missionState), curPlayer.GetID())
|
return
|
|
#GameWorld.Log("ÔÚXMLÖвéÕÒÊý¾Ý, ɾ³ýÈÎÎñ = %s, ״̬ = %s"%(missionID, missionState), curPlayer.GetID())
|
#ɾ³ý±íÖÐÎÞ, ¾Í¶ÁXML( ÕâÀïµÄÈÎÎñÓ¦¸Ã¶¼ÊÇȫͼÈÎÎñ, ÈçÿÈÕÈÎÎñ )
|
RunQuestEvent(curPlayer, "on_delete", missionID, Def_RunQuestType_Normal)
|
return
|
|
#---------------------------------------------------------------------
|
##¶ÁÊý¾Ý¿âÈÎÎñɾ³ý±í, ɾ³ýÈÎÎñ
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @param curMission ÈÎÎñʵÀý
|
# @return ·µ»ØÖµÕæ, ɾ³ý³É¹¦
|
# @remarks ×Ô¶¨Ò庯Êý, ¶ÁÊý¾Ý¿âÈÎÎñɾ³ý±í, ɾ³ýÈÎÎñ
|
def __DoLogic_DeleteMission(curPlayer, curMission):
|
missionID = curMission.GetMissionID()
|
GameWorld.Log("__DoLogic_DeleteMission---%s"%missionID, curPlayer.GetID())
|
delMissionData = GameWorld.GetGameData().GetMissionDeleteByID(missionID)
|
#ÈÎÎñɾ³ý±íÖÐÎÞ´ËÈÎÎñ
|
if not delMissionData:
|
return
|
|
#ÊÇ·ñÇå³ýïÚ³µ
|
if delMissionData.GetDeleteTruck():
|
#Íæ¼ÒÓµÓÐïÚ³µ, ÇÒïÚ³µIDºÍÈÎÎñIDÒ»ÖÂ
|
if curPlayer.GetTruckID() != 0 and curPlayer.GetTruckEventID() == missionID:
|
curPlayer.GameServer_DelTruck()
|
|
#ÊÇ·ñÐèҪɾ³ýÎïÆ·
|
for index in range(0, delMissionData.GetDeleteItemCount()):
|
delItemData = delMissionData.GetDeleteItemAt(index)
|
delItemID = delItemData.GetID()
|
#0±íʾȫ²¿É¾³ý
|
delItemCount = delItemData.GetCount()
|
ItemCommon.DelMissionItem(curPlayer, IPY_GameWorld.rptItem, delItemID, delItemCount, missionID)
|
|
#ɾ³ýÕâ¸öÈÎÎñ
|
QuestCommon.DeleteMission(curPlayer, missionID)
|
|
#ÊÇ·ñÓд¥·¢ÐÂÈÎÎñ
|
nextMissionID = delMissionData.GetNextMissionID()
|
|
if nextMissionID > 0:
|
curAddMission = QuestCommon.AddNewMission(curPlayer, nextMissionID)
|
NotifyOneMission(curPlayer, curAddMission)
|
|
return True
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //04 03 ÈÎÎñ´«ËÍ#tagCMissionTransport
|
# tagCMissionTransport * GettagCMissionTransport();
|
#
|
# class IPY_CMissionTransport
|
# {
|
# public:
|
#
|
# int GetMapID();
|
#
|
# int GetPosX();
|
#
|
# int GetPosY();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦//04 03 ÈÎÎñ´«ËÍ#tagCMissionTransport
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦//04 03 ÈÎÎñ´«ËÍ#tagCMissionTransport
|
def MissionMove(index, tick):
|
return
|
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //07 37 Ê¥Æ÷Ç¿»¯#tagCShengQiQiangHua
|
# tagCShengQiQiangHua * GettagCShengQiQiangHua();
|
#
|
# class IPY_CShengQiQiangHua
|
# {
|
# public:
|
# //Ê¥Æ÷λÖÃ
|
# int GetDestIndex();
|
# //×Ô¶¯Âò²ÄÁÏ
|
# int GetAutoBuyMaterial();
|
# // ²»Ê¹Óð󶨲ÄÁÏÇ¿»¯
|
# int GetNotUserBindMaterial();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦ //07 37 Ê¥Æ÷Ç¿»¯#tagCShengQiQiangHua
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦ //07 37 Ê¥Æ÷Ç¿»¯#tagCShengQiQiangHua
|
def ShengQiQiangHua(index, tick):
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //07 38 Çå³ýÊ¥Æ÷¸½¼ÓÊôÐÔ#tagCClearShengQiAttrs
|
# tagCClearShengQiAttrs * GettagCClearShengQiAttrs();
|
#
|
# class IPY_CClearShengQiAttrs
|
# {
|
# public:
|
#
|
# int GetDestIndex();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦ //07 38 Çå³ýÊ¥Æ÷¸½¼ÓÊôÐÔ#tagCClearShengQiAttrs
|
#@param index Íæ¼ÒË÷Òý
|
#@param tick ʱ¼ä´Á
|
#@return ·µ»ØÖµÎÞÒâÒå
|
#@remarks ¿Í»§¶Ë·â°üÏìÓ¦ //07 38 Çå³ýÊ¥Æ÷¸½¼ÓÊôÐÔ#tagCClearShengQiAttrs
|
def ClearShengQiAttrs(index, tick):
|
return
|
|
#---------------------------------------------------------------------
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //0D 0E ±¦Ê¯ºÏ³É#tagCStoneCompound
|
# tagCStoneCompound * GettagCStoneCompound();
|
#
|
# class IPY_CStoneCompound
|
# {
|
# public:
|
# // ºÏ³É´ÎÊý
|
# int GetCompoundCount();
|
# // ºÏ³Éģʽ
|
# int GetCompoundTimes();
|
# // ×Ô¶¯¹ºÂò
|
# int GetIsAutoBuy();
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦ //0D 0E ±¦Ê¯ºÏ³É#tagCStoneCompound
|
# @param index Íæ¼ÒË÷Òý
|
# @param tick ʱ¼ä´Á
|
# @return ·µ»ØÖµÎÞÒâÒå
|
# @remarks ¿Í»§¶Ë·â°üÏìÓ¦ //0D 0E ±¦Ê¯ºÏ³É#tagCStoneCompound
|
def StoneCompound(index, tick):
|
# curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
# FuncDirectCall(curPlayer, "Func_103", "BeginStoneCompound", tick)
|
return
|
|
|
#===============================================================================
|
# //A1 06 ×°±¸Ì××°»¯#tagCEquipSuite
|
#
|
# struct tagCEquipSuite
|
# {
|
# tagHead Head;
|
# BYTE EquipPackType; //×°±¸ËùÔÚ±³°üÀàÐÍ
|
# DWORD ItemIndex; //×°±¸±³°üË÷Òý
|
# };
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦ //08 1A ×°±¸Ì××°»¯#tagCEquipSuite
|
# @param index Íæ¼ÒË÷Òý
|
# @param tick ʱ¼ä´Á
|
# @return ·µ»ØÖµÎÞÒâÒå
|
# @remarks ¿Í»§¶Ë·â°üÏìÓ¦ //08 1A ×°±¸Ì××°»¯#tagCEquipSuite
|
def EquipMakeSuit(index, clientData, tick):
|
#curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
#FuncDirectCall(curPlayer, "Func_104", "EquipMakeSuit", tick, clientData)
|
return
|
|
#===============================================================================
|
#//A1 05 ×°±¸¸½Ä§ #tagCEquipAddSkill
|
#
|
#struct tagCEquipAddSkill
|
#{
|
# tagHead Head;
|
# BYTE EquipPackType; //×°±¸ËùÔÚ±³°üÀàÐÍ
|
# BYTE Type; // 0-Çå¿Õ;1-¸½¼Ó
|
# WORD EquipIndex; // ×°±¸ÔÚ±³°üÖеÄË÷Òý
|
#};
|
#===============================================================================
|
##¿Í»§¶Ë·â°üÏìÓ¦
|
# @param index Íæ¼ÒË÷Òý
|
# @param tick ʱ¼ä´Á
|
# @return ·µ»ØÖµÎÞÒâÒå
|
# @remarks ¿Í»§¶Ë·â°üÏìÓ¦ //0D 09 ×°±¸¸½Ä§#tagCEquipAddSkill
|
def MagicAttached(index, clientData, tick):
|
# curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
# FuncDirectCall(curPlayer, "Func_104", "MagicAttached", tick, clientData)
|
return
|
|
|
#===================================================================================================
|
# //0D 11 ÍþÍû×°±¸ºÏ³É·â°ü#tagCPrestigeEquipMerge
|
# tagCPrestigeEquipMerge * GettagCPrestigeEquipMerge();
|
#
|
# class IPY_CPrestigeEquipMerge
|
# {
|
# public:
|
#
|
# //ºÏ³ÉÀàÐÍ
|
# int GetType();
|
# //×°±¸Ë÷Òý
|
# int GetEquipIndex();
|
# //²ÄÁÏË÷Òý
|
# int GetMaterialIndex();
|
# };
|
#===================================================================================================
|
##0D 11 ÍþÍû×°±¸ºÏ³É·â°ü#tagCPrestigeEquipMerge
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @param tick ʱ¼ä´Á
|
# @return ·µ»ØÖµÎÞÒâÒå
|
# @remarks ¿Í»§¶Ë·â°üÏìÓ¦ //0D 11 ÍþÍû×°±¸ºÏ³É·â°ü#tagCPrestigeEquipMerge
|
def PrestigeEquipMerge(index, tick):
|
#
|
# curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
# FuncDirectCall(curPlayer, "Func_106", "PrestigeEquipMerge", tick)
|
return
|
|
|
#===============================================================================
|
# //0D 0C ²ÄÁϼӹ¤#tagCMaterialCompound
|
#
|
# struct tagCMaterialCompound
|
# {
|
# tagHead Head;
|
# WORD ItemIndex; // ²ÄÁÏÔÚ±³°üÖеÄË÷Òý
|
# };
|
#===============================================================================
|
##²ÄÁϼӹ¤·â°ü£¬µãÒ»´ÎÖ»ºÏÒ»´Î£¬£¨Ë鯬ºÏ³É£©
|
# @param index Íæ¼ÒË÷Òý
|
# @param tick ʱ¼ä´Á
|
# @return ·µ»ØÖµÎÞÒâÒå
|
# @remarks ¿Í»§¶Ë·â°üÏìÓ¦ //0D 0C ²ÄÁϼӹ¤#tagCMaterialCompound
|
def StuffMachining(index, tick):
|
return
|
|
|
##½øÈ븱±¾³¡¾°ÑéÖ¤.
|
# @param curPlayer Íæ¼ÒʵÀý
|
# @param mapID µØÍ¼ID
|
# @param tick ʱ¼ä´Á
|
# @return ÊÇ·ñÑéÖ¤³É¹¦
|
# @remarks ¿Í»§¶Ë·â°üÏìÓ¦
|
def DoLogic_EnterFbGameEvent(curPlayer, mapID, tick):
|
#ÔÝÆÁ±ÎNPCÑéÖ¤ÅжÏ
|
return
|
# #ûÓÐNPC¶Ô»°µ¯½çÃæ
|
# if mapID in ChConfig.Def_EnterFB_NoNPCForm or mapID in ReadChConfig.GetEvalChConfig("MapID_NoNPCForm"):
|
# return True
|
#
|
# callName = ChConfig.Def_EnterFb_CallNPCFunc.get(mapID)
|
#
|
# if callName == None:
|
# return False
|
#
|
# result = FuncCall(curPlayer, callName, tick)
|
#
|
# if not result:
|
# return False
|
#
|
# return True
|
|
#---------------------------------------------------------------------
|
## ¹ºÂò²Ö¿â·â°ü //0C 10 ¹ºÂò²Ö¿â¿Õ¼ä
|
# @param index Íæ¼ÒË÷Òý
|
# @param tick ʱ¼ä´Á
|
# @return ÎÞ·µ»ØÖµ
|
# @remarks ¹ºÂò²Ö¿â·â°ü
|
def BuyWarehouse(index, tick):
|
# curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
#
|
# #ת»»Íæ¼ÒµÄ»õ±Ò
|
# buyWarehouseType = PlayerControl.ChangeMoneyType(curPlayer, ChConfig.Def_BuyWarehouse_Type)
|
#
|
# if not PlayerControl.HaveMoney(curPlayer, buyWarehouseType, ChConfig.Def_BuyWarehouse_Cost):
|
# #½ðÇ®²»×ã
|
# return
|
#
|
# if not ResetWarehouse(curPlayer):
|
# #²Ö¿â¿Õ¼äÒÑÂú
|
# return
|
#
|
# #---¿ÛÍæ¼ÒÇ®---
|
# if not PlayerControl.PayMoney(curPlayer, buyWarehouseType, ChConfig.Def_BuyWarehouse_Cost):
|
# GameWorld.ErrLog('BuyWarehouse PayMoneyErr')
|
# return
|
#
|
# #ÊÖÐø·ÑÁ÷Ïò¼Ç¼
|
# PlayerControl.DataServerMoneyLog(curPlayer, buyWarehouseType, 656, par = ChConfig.Def_BuyWarehouse_Cost)
|
|
return
|
#---------------------------------------------------------------------
|
##//07 3A ¹ºÂòÎïÆ·±³°ü¿Õ¼ä#tagCBuyBackpack
|
# @param index Íæ¼ÒË÷Òý
|
# @param tick ʱ¼ä´Á
|
# @return ÎÞ·µ»ØÖµ
|
# @remarks ¹ºÂòÎïÆ·±³°ü¿Õ¼ä
|
def BuyItemPack(index, tick):
|
# ¹Ø±Õ´Ë·â°ü¹¦ÄÜ£¬ÇëʹÓÃͨÓùºÂò·â°ü07 41
|
return
|
#
|
# curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
# #ת»»Íæ¼ÒµÄ»õ±Ò
|
# useMoneyType = PlayerControl.ChangeMoneyType(curPlayer, ChConfig.Def_BuyItemPack_Type)
|
#
|
# #ÑéÖ¤Íæ¼Ò»õ±Ò
|
# if not PlayerControl.HaveMoney(curPlayer, useMoneyType, ChConfig.Def_BuyItemPack_Cost):
|
# return
|
#
|
# if not ResetBackPack(curPlayer):
|
# #±³°ü¿Õ¼äÒÑÂú
|
# return
|
#
|
# #---¿ÛÍæ¼ÒÇ®---
|
# if not PlayerControl.PayMoney(curPlayer, useMoneyType, ChConfig.Def_BuyItemPack_Cost):
|
# GameWorld.ErrLog('BuyItemPack PayMoneyErr')
|
# return
|
#
|
# #ÊÖÐø·ÑÁ÷Ïò¼Ç¼
|
# PlayerControl.DataServerMoneyLog(curPlayer, useMoneyType, 655, par = ChConfig.Def_BuyItemPack_Cost)
|
# return
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# #//07 3CͨÓñ³°ü²Ù×÷#tagCBackpackOperate
|
# #//¶ÔÐÔÄÜÓ°ÏìºÜС
|
# ////////////////////////////////////////////////////////////
|
# tagCBackpackOperate*GettagCBackpackOperate();
|
# class IPY_CBackpackOperate
|
# {
|
# int GetSrcBackpack();//Ô´±³°üÀàÐÍ
|
# int GetDesBackPack();//Ä¿±ê±³°üÀàÐÍ
|
# int GetSrcIndex();//Æðʼλ
|
# int GetDestIndex();//Ä¿±êλÖÃ
|
# int GetCount();//ÎïÆ·ÊýÁ¿
|
# }
|
#===============================================================================
|
## ͨÓñ³°ü²Ù×÷#tagCBackpackOperate
|
# @param index Íæ¼ÒË÷Òý
|
# @param tick ʱ¼ä´Á
|
# @return ÎÞ·µ»ØÖµ
|
# @remarks 07 3CͨÓñ³°ü²Ù×÷#tagCBackpackOperate
|
def BackpackOperate(index, tick):
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
sendPack = IPY_GameWorld.IPY_CBackpackOperate()
|
pack_SrcBackpack = sendPack.GetSrcBackpack()
|
pack_DesBackPack = sendPack.GetDesBackPack()
|
pack_SrcIndex = sendPack.GetSrcIndex()
|
pack_DestIndex = sendPack.GetDestIndex()
|
pack_ItemCount = sendPack.GetCount()
|
|
FunctionNPCCommon.BackpackOperate(curPlayer, pack_SrcBackpack, pack_DesBackPack,
|
pack_SrcIndex, pack_DestIndex, pack_ItemCount, tick)
|
return
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //07 3D ͨÓñ³°üÎïÆ·½»»»#tagCPackItemExchange
|
# //¶ÔÐÔÄܼ¸ºõÎÞÓ°Ïì
|
# struct tagCPackItemExchange
|
# {
|
# BYTE SrcBackpack;//Ô´±³°üÀàÐÍ
|
# BYTE DesBackPack;//Ä¿±ê±³°üÀàÐÍ
|
# WORD SrcIndex;//ÆðʼλÖÃ
|
# WORD DestIndex;//Ä¿±êλÖÃ
|
# };
|
#===============================================================================
|
## ͨÓñ³°üÎïÆ·½»»»#tagCPackItemExchange
|
# @param index Íæ¼ÒË÷Òý
|
# @param tick ʱ¼ä´Á
|
# @return ÎÞ·µ»ØÖµ
|
# @remarks //07 3D ͨÓñ³°üÎïÆ·½»»»#tagCPackItemExchange
|
def PackItemExchange(index, tick):
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
sendPack = IPY_GameWorld.IPY_CPackItemExchange()
|
pack_SrcBackpack = sendPack.GetSrcBackpack()
|
pack_DesBackPack = sendPack.GetDesBackPack()
|
pack_SrcIndex = sendPack.GetSrcIndex()
|
pack_DestIndex = sendPack.GetDestIndex()
|
|
# ·ûÓ¡½»»»
|
if PlayerRune.SwitchRune(curPlayer, pack_SrcBackpack, pack_DesBackPack, pack_SrcIndex, pack_DestIndex):
|
return
|
# ¾Û»ê½»»»
|
if PlayerGatherSoul.SwitchGatherSoul(curPlayer, pack_SrcBackpack, pack_DesBackPack, pack_SrcIndex, pack_DestIndex):
|
return
|
|
#ʱװ
|
if PlayerCoat.SwitchCoat(curPlayer, pack_SrcBackpack, pack_DesBackPack, pack_SrcIndex, pack_DestIndex):
|
return
|
|
FunctionNPCCommon.PackItemExchange(curPlayer, pack_SrcBackpack, pack_DesBackPack,
|
pack_SrcIndex, pack_DestIndex, tick)
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //08 1B ʹÓÃÐÞÀíµÀ¾ßÐÞÀí×°±¸#tagCRepairEquip
|
# struct tagCRepairEquip
|
# {
|
# tagHead Head
|
# WORD ItemIndex; // µÀ¾ßË÷Òý
|
# BYTE PackType; //±³°üÀàÐÍ
|
# WORD EquipIndex; //×°±¸ÔÚÏàÓ¦±³°üÖеÄË÷Òý
|
# };
|
#===============================================================================
|
##ʹÓÃÐÞÀíµÀ¾ßÐÞÀí×°±¸#tagCRepairEquip
|
# @param index Íæ¼ÒË÷Òý
|
# @param tick ʱ¼ä´Á
|
# @return ·µ»ØÖµÎÞÒâÒå
|
# @remarks ¿Í»§¶Ë·â°üÏìÓ¦ //08 1B ʹÓÃÐÞÀíµÀ¾ßÐÞÀí×°±¸#tagCRepairEquip
|
def ChangeEquipEndure(index, tick):
|
return
|
|
|
#//07 3F ʹÓõÀ¾ßÔö¼Ó×î´óÁéÎÆ´ÎÊý#tagCUseIncreaseMaxAddSkill
|
#struct tagCUseIncreaseMaxAddSkill
|
#{
|
#tagHead Head;
|
#WORD ItemIndex; // µÀ¾ßË÷Òý
|
#BYTE PackType; //±³°üÀàÐÍ
|
#WORD EquipIndex; //×°±¸ÔÚÏàÓ¦±³°üÖеÄË÷Òý
|
#};
|
##ʹÓõÀ¾ßÔö¼Ó×î´óÁéÎÆ´ÎÊý
|
# @param index Íæ¼ÒË÷Òý
|
# @param tick ʱ¼ä´Á
|
# @return ·µ»ØÖµÎÞÒâÒå
|
def UseIncreaseMaxAddSkill(index, tick):
|
return
|
# curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
# sendPack = IPY_GameWorld.IPY_CUseIncreaseMaxAddSkill()
|
#
|
# Operate_MagicAttached.UseIncreaseMaxAddSkill(curPlayer, sendPack.GetItemIndex(),
|
# sendPack.GetPackType(), sendPack.GetEquipIndex())
|
|
|
#===============================================================================
|
# //07 42 ÎïÆ·ÄÜÁ¿×ªÒÆ#tagCItemTransfer
|
# struct tagCItemTransfer
|
# {
|
# tagHead Head;
|
# BYTE PackType; //±³°üÀàÐÍ:rptItem, rptEquip, rptWarehouse
|
# BYTE ItemPlace;
|
# BYTE TransferType; //×ªÒÆÀàÐÍ
|
# };
|
#===============================================================================
|
##ÎïÆ·ÄÜÁ¿×ªÒÆ
|
# @param index Íæ¼ÒË÷Òý
|
# @param tick ʱ¼ä´Á
|
# @return ·µ»ØÖµÎÞÒâÒå
|
def ItemEnergyTransfer(index, tick):
|
# curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
#
|
# #±ÜÃâ·´¸´²Ù×÷
|
# if tick - curPlayer.GetTickByType(ChConfig.TYPE_Player_Tick_ChangeEnergy) \
|
# < ChConfig.TYPE_Player_Tick_Time[ChConfig.TYPE_Player_Tick_ChangeEnergy]:
|
# return
|
#
|
# curPlayer.SetTickByType(ChConfig.TYPE_Player_Tick_ChangeEnergy, tick)
|
#
|
# pack = IPY_GameWorld.IPY_CItemTransfer()
|
# Operate_MagicAttached.ItemEnergyTransfer(curPlayer, pack.GetPackType(),
|
# pack.GetItemPlace(), pack.GetTransferType())
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //16 0B³èÎïÁ¶»¯#tagCPetRefinery
|
# struct tagCPetRefinery
|
# {
|
# tagHead Head;
|
# DWORD PetID;//³èÎïID
|
# };
|
#===============================================================================
|
##³èÎïÁ¶»¯.
|
# @param index Íæ¼ÒË÷Òý
|
# @param tick ʱ¼ä´Á
|
# @return ·µ»ØÖµÎÞÒâÒå
|
# @remarks ¿Í»§¶Ë·â°üÏìÓ¦ //16 0B³èÎïÁ¶»¯#tagCPetRefinery
|
def CPetRefinery(index, tick):
|
return
|
|
#===============================================================================
|
#//07 41 ͨÓùºÂòPack¿Õ¼ä#tagCOpenPackCount
|
# struct tagCOpenPackCount
|
# {
|
# tagHead Head;
|
# BYTE PackType; //±³°üÀàÐÍ:rptItem, rptEquip, rptWarehouse
|
# BYTE Count; //¹ºÂò¸ñÊý
|
# };
|
#===============================================================================
|
##¹ºÂò¸÷ÖÖ°ü¹ü¸ñ×Ó
|
# @param index Íæ¼ÒË÷Òý
|
# @param tick ʱ¼ä´Á
|
# @return ·µ»ØÖµÎÞÒâÒå
|
def OpenPackCount(index, tick):
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
pack = IPY_GameWorld.IPY_COpenPackCount()
|
packType = pack.GetPackType()
|
if packType not in ChConfig.Def_Type_CanBuyPack_PlayerDict.keys():
|
return
|
|
buyCount = pack.GetCount()
|
|
#ÒѹºÂò¸ñ×ÓÊý
|
keyName = ChConfig.Def_Type_CanBuyPack_PlayerDict[packType][ChConfig.Def_PlayerPackDict_Index_Key]
|
curGridCnt = curPlayer.NomalDictGetProperty(keyName)
|
|
#ĬÈϸñ×ÓÊý
|
initCnt = ItemCommon.GetPackInitCount(packType)
|
|
curPack = curPlayer.GetItemManager().GetPack(packType)
|
curPackMaxCnt = curPack.GetMaxCount()
|
|
if packType in [IPY_GameWorld.rptPetCabinetPet, IPY_GameWorld.rptCabinetWeaponCoat,
|
IPY_GameWorld.rptCabinetDressCoat, IPY_GameWorld.rptCabinetHorse]:
|
vipLv = curPlayer.GetVIPLv()
|
#curPackMaxCnt = ChConfig.Def_PackCnt_Fashion + PlayerVip.GetVipCabinetAddGridCnt(vipLv)
|
|
openAnonCnt = initCnt + curGridCnt + buyCount
|
|
if curPackMaxCnt < openAnonCnt:
|
#ÊýÁ¿³¬¹ý×î´ó¸ñ×ÓÊý
|
GameWorld.DebugLog("¹ºÂò±³°ü¸ñ×Ó£¬ÊýÁ¿³¬¹ý×î´ó¸ñ×ÓÊý£¡packType=%s,buyCount=%s" % (packType, buyCount))
|
return
|
|
isBuyOK, costMoneyList = DoOpenGrid(curPlayer, curGridCnt, packType, buyCount)
|
if not isBuyOK:
|
return
|
|
#fromIndex, toIndex = curGridCnt + 1, curGridCnt + buyCount
|
# GameWorld.Log("fromIndex=%s toIndex=%s"%(fromIndex, toIndex))
|
PlayerControl.NomalDictSetProperty(curPlayer, keyName, curGridCnt + buyCount)
|
|
if packType == IPY_GameWorld.rptItem:
|
#±³°üË¢ÐÂ
|
PlayerControl.Init_ItemPack(curPlayer)
|
#¿ª¸ñ×Ó£¬¼Ó¾Ñé
|
#OpenPackAddExp(curPlayer, packType, fromIndex, toIndex)
|
PlayerControl.NotifyCode(curPlayer, "GeRen_liubo_671654")
|
#PlayerControl.SyncOnLineTimeTotal(curPlayer)
|
#PlayerControl.SyncOnLineTimeLastOpenPack(curPlayer, packType)
|
|
|
elif packType == IPY_GameWorld.rptWarehouse:
|
#²Ö¿âË¢ÐÂ
|
PlayerControl.Init_Warehouse(curPlayer)
|
#¿ª¸ñ×Ó£¬¼Ó¾Ñé
|
#OpenPackAddExp(curPlayer, packType, fromIndex, toIndex)
|
|
else:
|
#ÊÕÄɹñË¢ÐÂ
|
PlayerControl.Init_CabinetCountByType(curPlayer, packType)
|
|
DataRecordPack.DR_OpenPackCount(curPlayer, packType, buyCount, curPlayer.NomalDictGetProperty(keyName))
|
|
if costMoneyList:
|
#Ïû·Ñ¼Ç¼
|
for moneyType, money in costMoneyList:
|
GameWorld.Login_Interface_GoldRec(curPlayer, 0, 1, 'BuyPackGrid', moneyType, money)
|
|
return
|
|
##¿ªÆô¸ñ×Ó¿ÛµÀ¾ß×êʯ
|
# @param curPlayer Íæ¼Ò¶ÔÏó
|
# @param buyMoney ×êʯÏûºÄ
|
# @param packType ±³°üÀàÐÍ
|
# @param curPack ÎïÆ·¹ÜÀíÆ÷
|
# @param buyPackMoneyType »õ±ÒÀàÐÍ
|
# @param buyCount ¹ºÂò¸ñ×ÓÊý
|
# @return None ÊÇ·ñ¹ºÂò³É¹¦, Íæ¼ÒÊÇ·ñÓÐÇ®¿î
|
def DoOpenGrid(curPlayer, curGridCnt, packType, buyCount):
|
curPack = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptItem)
|
|
itemId = IpyGameDataPY.GetFuncCfg('OpenBagItem')
|
itemCntFormula = IpyGameDataPY.GetFuncCompileCfg('OpenBagItem', 2)
|
buyMoney = IpyGameDataPY.GetFuncCfg('OpenBagItem', 3)
|
totalItemCnt = 0
|
for index in range(curGridCnt+1, curGridCnt + buyCount+1):
|
itemcnt = eval(itemCntFormula)
|
totalItemCnt += itemcnt
|
|
hasEnough, indexList, findItemIsBind, lackCnt = ItemCommon.GetItem_FromPack_ByID_ExEx(itemId, curPack, totalItemCnt)
|
|
needMoney = lackCnt * buyMoney if not hasEnough else 0
|
|
|
# ÐèÒª¸¶Ç®
|
costMoneyList = []
|
if needMoney > 0:
|
costMoneyList = PlayerControl.HaveMoneyEx(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Paper, needMoney)
|
if costMoneyList == []:
|
#½ðÇ®²»×ã
|
return False, costMoneyList
|
|
#¸¶¿î
|
for moneyType, moneyCnt in costMoneyList:
|
infoDict = {"BuyCount":buyCount, ChConfig.Def_Cost_Reason_SonKey:packType}
|
if not PlayerControl.PayMoney(curPlayer, moneyType, moneyCnt, ChConfig.Def_Cost_BuyPack, infoDict, 1):
|
return False, costMoneyList
|
|
# ¿ÛµÀ¾ß
|
delCnt = max(0, totalItemCnt - lackCnt) # ʵ¼Ê¿Û³ýµÄ¸öÊý
|
if indexList:
|
ItemCommon.ReduceItem(curPlayer, curPack, indexList, delCnt, True)
|
|
return True, costMoneyList
|
|
##¿ªÆôÎïÆ·±³°ü¸ñ×Ó»ò²Ö¿â¸ñ×Ó¿ÉÔö¼ÓµÄ¾ÑéÖµ
|
# @param curPlayer Íæ¼Ò¶ÔÏó
|
# @param packType ±³°üÀàÐÍ
|
# @param packType ±³°üÀàÐÍ
|
# @param packType ±³°üÀàÐÍ
|
# @param needRefresh ÊÇ·ñÐèҪˢÐÂÍæ¼ÒÊôÐÔ
|
# @return None
|
def OpenPackAddExp(curPlayer, packType, fromIndex, toIndex, needRefresh = True):
|
cfgObj = PlayerExpandPackCfgMgr.GetExpandPackCfg(curPlayer, packType)
|
#ÕÒ²»ÕÒÕâÖÖ±³°üµÄÅäÖÃÐÅÏ¢¶ÔÏó
|
if not cfgObj:
|
# GameWorld.Log("not cfgObj")
|
return
|
|
attrInfo = cfgObj.GetTotalCanAddAttrInfo(curPlayer, fromIndex, toIndex)
|
#ûÕÒµ½ÊôÐÔÐÅÏ¢
|
if not attrInfo:
|
# GameWorld.Log("not attrInfo")
|
return
|
# GameWorld.Log("attrInfo=%s"%attrInfo)
|
playerControl = PlayerControl.PlayerControl(curPlayer)
|
#Ôö¼Ó¾Ñé
|
#֪ͨ»ñµÃ¾Ñé
|
addExp = attrInfo.get("Exp", 0)
|
if 0 != addExp:
|
playerControl.AddExp(addExp)
|
if needRefresh:
|
#ÖØË¢Ö÷½ÇÊôÐÔ
|
playerControl.RefreshAllState()
|
|
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //16 0D ³èÎï×°±¸ºÏ³É#tagPetEquipMerge
|
# struct tagPetEquipMerge
|
# {
|
# tagHead Head;
|
# DWORD StuffIndex1; //×°±¸Ë÷Òý
|
# DWORD StuffIndex2; //×°±¸Ë÷Òý
|
# DWORD StuffIndex3; //×°±¸Ë÷Òý
|
# BYTE AutoBuy; //ÊÇ·ñ×Ô¶¯¹ºÂò½á»êµÆ
|
# };
|
#===============================================================================
|
##³èÎï×°±¸ºÏ³É#tagPetEquipMerge
|
# @param index Íæ¼ÒË÷Òý
|
# @param tick ʱ¼ä´Á
|
# @return None
|
# @remarks
|
def CPetEquipMerge(index, tick):
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //08 26 ×°±¸Ö±½ÓÉýÐÇ#tagCEquipUpStarImmediately
|
# struct tagCEquipUpStarImmediately
|
# {
|
# tagHead Head;
|
# WORD ItemIndex; // µÀ¾ßË÷Òý
|
# BYTE PackType; //±³°üÀàÐÍ
|
# WORD EquipIndex; //×°±¸ÔÚÏàÓ¦±³°üÖеÄË÷Òý
|
# };
|
#===============================================================================
|
##×°±¸Ö±½ÓÉýÐÇ#tagCEquipUpStarImmediately
|
# @param index Íæ¼ÒË÷Òý
|
# @param tick ʱ¼ä´Á
|
# @return None
|
# @remarks
|
def CEquipUpStarImmediately(index, tick):
|
return
|
|
#---------------------------------------------------------------------
|
#===============================================================================
|
# //0D 12 Éñ±ø»½ÐÑ#tagCEquipWakeUp
|
# struct tagCEquipWakeUp
|
# {
|
# tagHead Head;
|
# WORD ItemIndex; //²ÄÁÏÔÚÎïÆ·±³°üÖеÄλÖÃË÷Òý
|
# BYTE PackType; //±³°üÀàÐÍ
|
# WORD EquipIndex; //×°±¸ÔÚÏàÓ¦±³°üÖеÄË÷Òý
|
# };
|
#===============================================================================
|
##Éñ±ø»½ÐÑ#tagCEquipWakeUp
|
# @param index Íæ¼ÒË÷Òý
|
# @param tick ʱ¼ä´Á
|
# @return None
|
# @remarks
|
def CEquipWakeUp(index, tick):
|
return
|
|
#===============================================================================
|
# #07 43 tagCEsotericaStudy
|
# #struct tagCEsotericaStudy
|
# #{
|
# # tagHead Head;
|
# # WORD ItemIndex;
|
# #};
|
#===============================================================================
|
##ѧϰÎäÁÖÃØóÅ
|
# @param index Íæ¼ÒË÷Òý
|
# @param tick ʱ¼ä´Á
|
# @return None
|
def LearnWuLinSkill(index, tick):
|
return
|
|
#===============================================================================
|
# //A0 10 ¹ºÂòÕæÆø#tagPyCMBuyZhenqi
|
# struct tagPyCMBuyZhenqi
|
# {
|
# tagHead Head;
|
# };
|
#===============================================================================
|
## A0 10 ¹ºÂòÕæÆø#tagPyCMBuyZhenqi
|
# @param index Ë÷Òý
|
# @param clientData ·â°ü½á¹¹Ìå
|
# @param tick ʱ¼ä´Á
|
# @return None
|
# @remarks
|
def PlayerBuyZhenqi(index, clientData, tick):
|
#Operate_PlayerBuyZhenQi.PlayerBuyZhenQi(index, clientData, tick)
|
return
|
|
|
#===============================================================================
|
#===============================================================================
|
# //B0 15 Íæ¼ÒÁìÈ¡Êղؼн±Àø#tagAskCollectPrize
|
# struct tagAskCollectPrize
|
# {
|
# tagHead Head;
|
# };
|
#===============================================================================
|
## B0 15 Íæ¼ÒÁìÈ¡Êղؼн±Àø#tagAskCollectPrize
|
# @param index Ë÷Òý
|
# @param clientData ·â°ü½á¹¹Ìå
|
# @param tick ʱ¼ä´Á
|
# @return None
|
# @remarks
|
def PlayerGetFavoriteAward(index, clientData, tick):
|
return
|
|
|
#===============================================================================
|
# //B0 01 ´ò¿ªÔ¶³ÌÉ̵ê
|
#
|
# struct tagPyOpenLongShop
|
# {
|
# tagHead Head;
|
# };
|
#===============================================================================
|
## B0 01 ´ò¿ªÔ¶³ÌÉ̵ê
|
# @param index Ë÷Òý
|
# @param clientData ·â°ü½á¹¹Ìå
|
# @param tick ʱ¼ä´Á
|
# @return None
|
# @remarks
|
def PlayerOpenLongShop(index, clientData, tick):
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
|
#ºìÃûÍæ¼ÒÎÞ·¨Ê¹ÓÃÔ¶³ÌÉ̵ê
|
if curPlayer.GetPlayerNameColor() == IPY_GameWorld.pncRed or curPlayer.GetPKValue() > 0:
|
PlayerControl.NotifyCode(curPlayer, "PK_lhs_161795")
|
return
|
|
#µ±Ç°vipµÈ¼¶²»ÄÜʹÓÃÔ¶³ÌÉ̵ê
|
#if not PlayerVip.GetVipCanLongShop(curPlayer):
|
# moneyCnt, moneyType = ReadChConfig.GetEvalChConfig("DirectShopCost")
|
# if not PlayerControl.PayMoney(curPlayer, moneyType, moneyCnt):
|
# #½ðÇ®²»×ã
|
# return
|
#
|
|
FunctionNPCCommon.StartTrade(curPlayer, tick)
|
|
#´¥·¢ÈÎÎñ
|
EventRespons_DirectFuncEvent(curPlayer, "open_shop")
|
return
|
|
|
#===============================================================================
|
#//A2 04 ÇëÇó´ò¿ªÔ¶³Ì²Ö¿â #tagCMOpenLongWarehouse
|
#
|
#struct tagCMOpenLongWarehouse
|
#{
|
# tagHead Head;
|
#};
|
#===============================================================================
|
## A2 04 ÇëÇó²Ö¿âÎïÆ·
|
# @param index Ë÷Òý
|
# @param clientData ·â°ü½á¹¹Ìå
|
# @param tick ʱ¼ä´Á
|
# @return None
|
# @remarks
|
def PlayerOpenLongWarehouse(index, clientData, tick):
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
# Ôݲ»¼ÓCD·À·¶
|
curPlayer.Sync_WarehouseItem()
|
|
return
|
|
#===============================================================================
|
# //B0 06 ²é¿´¼Ò×åÕ½ÉêÇëÐÅÏ¢ #tagViewAllFamilyInfo
|
#
|
# struct tagViewAllFamilyInfo
|
# {
|
# tagHead Head;
|
# };
|
#===============================================================================
|
## B0 06 ²é¿´¼Ò×åÕ½ÉêÇëÐÅÏ¢
|
# @param index Ë÷Òý
|
# @param clientData ·â°ü½á¹¹Ìå
|
# @param tick ʱ¼ä´Á
|
# @return None
|
# @remarks
|
def ViewAllFamilyInfo(index, clientData, tick):
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
PlayerFamily.SendPack_GameServer_ViewAllFamily(curPlayer)
|
return
|
|
|
#===============================================================================
|
# //B0 07 ²é¿´¼Ò×åÕù°ÔÕ½ÐÅÏ¢ #tagViewAllFamilyBattlenfo
|
#
|
# struct tagViewAllFamilyBattlenfo
|
# {
|
# tagHead Head;
|
# };
|
#===============================================================================
|
## B0 07 ²é¿´¼Ò×åÕù°ÔÕ½ÐÅÏ¢
|
# @param index Ë÷Òý
|
# @param clientData ·â°ü½á¹¹Ìå
|
# @param tick ʱ¼ä´Á
|
# @return None
|
# @remarks
|
def ViewAllFamilyBattlenfo(index, clientData, tick):
|
return
|
|
|
#===============================================================================
|
#//B0 31 ¿Í»§¶ËµÇÈ뷽ʽ #tagPlayerLoginType
|
#
|
#struct tagPlayerLoginType
|
#
|
#{
|
# tagHead Head;
|
# BYTE LoginType; //ÀàÐÍ
|
#};
|
#====================================
|
## B0 31 ¿Í»§¶ËµÇÈ뷽ʽ
|
# @param index Ë÷Òý
|
# @param clientData ·â°ü½á¹¹Ìå
|
# @param tick ʱ¼ä´Á
|
# @return None
|
def OnPlayerLoginType(index, clientData, tick):
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_LoginType, clientData.LoginType)
|
EventRespons_OnRevLoginType(curPlayer)
|
return
|
|
|
#===============================================================================
|
#//B0 32 µÇÈëÆ÷µÇÈëÁìÈ¡½±Àø #tagFastLoginPrize
|
#
|
#struct tagFastLoginPrize
|
#{
|
# tagHead Head;
|
#};
|
#====================================
|
## B0 32 µÇÈëÆ÷µÇÈëÁìÈ¡½±Àø
|
# @param index Ë÷Òý
|
# @param clientData ·â°ü½á¹¹Ìå
|
# @param tick ʱ¼ä´Á
|
# @return None
|
def OnRewardByLoginType(index, clientData, tick):
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
RunQuestEvent(curPlayer, "on_logintype", "on_reward_bylogintype", Def_RunQuestType_Normal)
|
return
|
|
#=======================================================================================================================
|
# //A0 17 ÁìȡÿÌìÎïÆ· #tagGiveItemByDay
|
#
|
# struct tagGiveItemByDay
|
#
|
# {
|
# tagHead Head;
|
# };
|
#=======================================================================================================================
|
## A0 17 ÁìȡÿÈÕÎïÆ·
|
# @param index Ë÷Òý
|
# @param clientData ·â°ü½á¹¹Ìå
|
# @param tick ʱ¼ä´Á
|
# @return None
|
def GiveItemByDay(index, clientData, tick):
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
EventRespons_PlayerEvent(curPlayer, "player_give_item")
|
return
|
|
|
##ÈÎÎñ´¥·¢Æ÷ÔڼǼµÇ½ģʽµÄʱºò´¥·¢
|
#@param curPlayer Íæ¼ÒʵÀý
|
#@return ·µ»ØÖµÎÞÒâÒå
|
def EventRespons_OnRevLoginType(curPlayer):
|
RunQuestEvent(curPlayer, "on_revlogintype_event", "on_revlogintype_event", Def_RunQuestType_Normal)
|
return
|
|
#// A2 07 ½ÓÊÜÈÎÎñ #tagCMTakeTask
|
#
|
#struct tagCMTakeTask
|
#{
|
# tagHead Head;
|
# DWORD TaskID;
|
#};
|
def OnTakeTask(index, clientData, tick):
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
|
missionID = clientData.TaskID
|
curMission = curPlayer.FindMission(missionID)
|
if not curMission:
|
return
|
|
missionState = curMission.GetState()
|
if missionState != ChConfig.Def_Mission_State_NoAccept:
|
return
|
|
curQuestData = QuestManager.FindQuest(missionID)
|
if not curQuestData:
|
return
|
|
QuestCommon.SetPlayerMissionState(curPlayer, curMission, 1)
|
return
|
|
#// A2 18 Íê³ÉÈÎÎñ #tagCMFinishTask
|
#
|
#struct tagCMFinishTask
|
#{
|
# tagHead Head;
|
# DWORD TaskID;
|
# WORD RewardPer; // ½±Àø°Ù·Ö±È, ĬÈÏ100; 150Ôò´ú±í1.5±¶
|
#};
|
def OnPlayerFinishTask(index, clientData, tick):
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
taskID = clientData.TaskID
|
rewardPer = clientData.RewardPer
|
|
if taskID <= 0:
|
return
|
|
EventRespons_OnFinishTask(curPlayer, taskID, rewardPer)
|
return
|
|
#// A2 06 ¿ìËÙÍê³ÉÈÎÎñ#tagCMQuickFinishMission
|
#
|
#struct tagCMQuickFinishMission
|
#{
|
# tagHead Head;
|
# DWORD MissionID;
|
# BYTE DoType; // 0-Ö»Íê³É±¾´Î£»1-Íê³ÉËùÓл·ÈÎÎñ
|
#};
|
def PlayerQuickFinishTask(index, clientData, tick):
|
missionID = clientData.MissionID
|
if missionID <= 0:
|
return
|
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
doType = clientData.DoType
|
if doType == 1:
|
EventRespons_OnQuickFinishAllAround(curPlayer, missionID)
|
return
|
|
curQuestData = QuestManager.FindQuest(missionID)
|
curMission = curPlayer.FindMission(missionID)
|
if not curQuestData or not curMission:
|
return
|
isFree = PlayerGoldInvest.CanQuickFinishMissionFree(curPlayer)
|
costMoneyInfo = IpyGameDataPY.GetFuncEvalCfg("QuickFinishMission", 1)
|
if costMoneyInfo and not isFree and curQuestData.Type in QuestCommon.Def_RunTask_Type_List:
|
moneyType, moneyValue = costMoneyInfo
|
if not PlayerControl.PayMoney(curPlayer, moneyType, moneyValue, ChConfig.Def_Cost_MissionDel, {"MissionID":missionID}):
|
return
|
|
EventRespons_OnQuickFinishTask(curPlayer, missionID)
|
return
|
|
|
## A2 09 ÉèÖû·ÈÎÎñÐǼ¶#tagCMSetRunMissionStar
|
# @param index Ë÷Òý
|
# @param clientData ·â°ü½á¹¹Ìå
|
# @param tick ʱ¼ä´Á
|
# @return None
|
def PlayerSetRunMissionStar(index, clientData, tick):
|
missionID = clientData.MissionID
|
if missionID <= 0:
|
return
|
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
EventRespons_OnSetMissionStar(curPlayer, missionID)
|
return
|
|
|
## A2 15 ¹ºÂòÈÕ³£ÈÎÎñ´ÎÊýÉÏÏÞ#tagCMBuyDayMissionSum
|
# @param index Ë÷Òý
|
# @param clientData ·â°ü½á¹¹Ìå
|
# @param tick ʱ¼ä´Á
|
# @return None
|
def PlayerBuyDayMissionSum(index, clientData, tick):
|
buyNum = clientData.BuyNum
|
if buyNum <= 0:
|
return
|
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
EventRespons_OnBuyDayMissionSum(curPlayer, buyNum)
|
return
|
|
## A2 15 ÁìÈ¡»·ÈÎÎñÿÂÖ½±Àø#tagCMGetRunTaskEndAward
|
# @param index Ë÷Òý
|
# @param clientData ·â°ü½á¹¹Ìå
|
# @param tick ʱ¼ä´Á
|
# @return None
|
def OnGetRunTaskAward(index, clientData, tick):
|
taskType = clientData.Type
|
if taskType not in [QuestCommon.Def_Mission_Type_RunDaily, QuestCommon.Def_Mission_Type_RunFamily]:
|
GameWorld.DebugLog('ÁìÈ¡»·ÈÎÎñÿÂÖ½±Àø ÀàÐÍ´íÎó %s'%taskType)
|
return
|
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
|
hasGotAward = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RunTaskAwardState % taskType)
|
if hasGotAward:
|
GameWorld.DebugLog('ÁìÈ¡»·ÈÎÎñÿÂÖ½±Àø Òѽ±Àø ÀàÐÍ %s'%taskType)
|
return
|
#ÎïÆ·½±Àø
|
itemList = []
|
itemAwardDict = IpyGameDataPY.GetFuncEvalCfg('RunTaskAward', 3, {})
|
if str(taskType) in itemAwardDict:
|
itemList = itemAwardDict[str(taskType)]
|
# ¼ì²é±³°ü
|
needSpace = len(itemList)
|
packSpace = ItemCommon.GetItemPackSpace(curPlayer, IPY_GameWorld.rptItem, needSpace)
|
if needSpace > packSpace:
|
PlayerControl.NotifyCode(curPlayer, "GeRen_chenxin_998371")
|
return
|
for itemID, itemCount, isBind in itemList:
|
ItemControler.GivePlayerItem(curPlayer, itemID, itemCount, 0, [IPY_GameWorld.rptItem])
|
|
#¸ø¾Ñé
|
giveExp = 0
|
expAwardDict = IpyGameDataPY.GetFuncEvalCfg('RunTaskAward', 4, {})
|
if str(taskType) in expAwardDict:
|
reExp = PlayerControl.GetPlayerReExp(curPlayer)
|
giveExp = eval(expAwardDict[str(taskType)])
|
PlayerControl.PlayerControl(curPlayer).AddExp(giveExp)
|
|
#¸øÇ®
|
moneyType = 0
|
moneyNum = 0
|
runTaskMoneyAwardDict = IpyGameDataPY.GetFuncEvalCfg('RunTaskAward')
|
if taskType in runTaskMoneyAwardDict:
|
specialAwardDict = IpyGameDataPY.GetFuncEvalCfg('RunTaskAward', 2, {})
|
if taskType in specialAwardDict:
|
rate, moneyCnt = specialAwardDict[taskType]
|
if GameWorld.CanHappen(rate):
|
moneyNum = moneyCnt
|
if taskType == QuestCommon.Def_Mission_Type_RunDaily:
|
PlayerControl.WorldNotify(0, 'CoinTaskReward', [curPlayer.GetName()])
|
moneyType, minMoney, maxMoney = runTaskMoneyAwardDict[taskType]
|
if not moneyNum:
|
moneyNum = random.randint(minMoney, maxMoney)
|
if moneyType == ShareDefine.TYPE_Price_Family_Contribution:
|
PlayerFamily.AddPlayerFamilyActiveValue(curPlayer, moneyNum, True, ShareDefine.Def_AddFAVReason_DoFamilyMisson)
|
else:
|
addDataDict = {ChConfig.Def_Give_Reason_SonKey:"Run"}
|
PlayerControl.GiveMoney(curPlayer, moneyType, moneyNum, ChConfig.Def_GiveMoney_Mission, addDataDict, False)
|
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RunTaskAwardRecord % taskType, moneyNum)
|
|
PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RunTaskAwardState % taskType, 1)
|
GameWorld.DebugLog('ÁìÈ¡»·ÈÎÎñÿÂÖ½±Àø³É¹¦ moneyType=%s, moneyNum=%s, itemList=%s, giveExp=%s'%(moneyType, moneyNum, itemList, giveExp))
|
|
#֪ͨ¿Í»§¶Ë
|
NotifyRunEndAward(curPlayer, taskType)
|
|
|
#ɾ³ýÁìÈ¡½±ÀøµÄÈÎÎñ (¸ÄÓÉÈÎÎñ½Å±¾´¥·¢ÏÂÒ»»·)
|
EventRespons_GetLastRunTaskAward(curPlayer, taskType)
|
# runTaskAwardTaskIDDict = IpyGameDataPY.GetFuncEvalCfg('RunTaskAwardTaskID')
|
# runTaskAwardTaskID = runTaskAwardTaskIDDict.get(taskType, 0)
|
# if runTaskAwardTaskID:
|
# QuestCommon.DeleteMission(curPlayer, runTaskAwardTaskID)
|
|
#¸üÐÂÏÂÂÖÈÎÎñ
|
# mission_1 = QuestCommon.GetCommonMission(curPlayer)
|
# if not mission_1:
|
# return
|
# nextMissionID = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RunTaskNextMissionID % taskType)
|
# if not nextMissionID:
|
# #ûÓÐÏÂÂÖÈÎÎñ
|
# return
|
# PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RunTaskNextMissionID % taskType, 0)
|
# if not curPlayer.FindMission(nextMissionID):
|
# QuestCommon.AddNewMission(curPlayer, nextMissionID)
|
# nextMission = curPlayer.FindMission(nextMissionID)
|
# QuestCommon.SetPlayerMissionState(curPlayer, nextMission, 1)
|
# nextMission.SetMissionState(1)
|
# nextMission.SetDescriptionIndex(0)
|
#
|
# #ÏÈÇå¿Õ×ÖµäÔÙÉèÖÃеÄ×Öµä
|
# curPlayer.Sync_ClearMissionDict(nextMissionID)
|
# nextMission.ClearProperty()
|
# Def_Around_AllCount = QuestRunner.GetRunKey(taskType, QuestRunner.Key_Around_AllCount)
|
# Def_Around_Count = QuestRunner.GetRunKey(taskType, QuestRunner.Key_Around_Count)
|
# mission_1.SetProperty(Def_Around_Count,0)
|
# #×Ü»·Êý
|
# allCount = mission_1.GetProperty(Def_Around_AllCount)
|
# #µ¥ÂÖÒÑ×ö»·Êý
|
# #aroundCount = mission_1.GetProperty(Def_Around_Count)
|
# nextMission.SetProperty(Def_Around_AllCount, allCount)
|
# nextMission.SetProperty(Def_Around_Count, 0)
|
#
|
# #ÉèÖÃËæ»úÈÎÎñʼþ
|
# EventRespons_SetRunAround(curPlayer, nextMissionID)
|
#
|
#
|
#
|
# NotifyOneMission(curPlayer, nextMission, isNotifyAll = False)
|
return
|
|
def NotifyRunEndAward(curPlayer, taskType=-1):
|
## ֪ͨÅÜ»·ÂÖ½±Àø
|
taskTypeList = [QuestCommon.Def_Mission_Type_RunDaily, QuestCommon.Def_Mission_Type_RunFamily] if taskType == -1 else [taskType]
|
infoPack = ChPyNetSendPack.tagMCRunTaskAwardInfo()
|
infoPack.Clear()
|
infoPack.InfoList = []
|
for ttype in taskTypeList:
|
recordPack = ChPyNetSendPack.tagMCRunTaskAwardRecord()
|
recordPack.Type = ttype
|
recordPack.Num = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RunTaskAwardRecord % ttype)
|
recordPack.AwardState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_RunTaskAwardState % ttype)
|
infoPack.InfoList.append(recordPack)
|
infoPack.Cnt = len(infoPack.InfoList)
|
NetPackCommon.SendFakePack(curPlayer, infoPack)
|
return
|
|
#// A2 24 ´¥ÅöNPC #tagCMTouchNPC
|
#
|
#struct tagCMTouchNPC
|
#{
|
# tagHead Head;
|
# DWORD ObjID;
|
#};
|
def MoveTouchNPC(index, clientData, tick):
|
#´¥ÅöNPC
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
eventNPCID = clientData.ObjID
|
curNPC = GameWorld.GetNPCManager().FindNPCByID(eventNPCID)
|
|
#ûÓÐÕâ¸öNPC
|
if curNPC == None :
|
return
|
dist = GameWorld.GetDist(curPlayer.GetPosX(), curPlayer.GetPosY(), curNPC.GetPosX(), curNPC.GetPosY())
|
|
if dist > ChConfig.Def_EventDist:
|
#Íæ¼Ò¾àÀë¹ýÔ¶, ²»ÄÜ´¥·¢
|
return
|
|
if curNPC.GetType() != ChConfig.ntTouchKill:
|
return
|
|
if not FBLogic.OnCanMoveTouchNPC(curPlayer, curNPC, tick):
|
return
|
|
#¸±±¾
|
FBLogic.OnMoveTouchNPC(curPlayer, curNPC, tick)
|
|
#Âß¼´¦ÀíÍêºóɱËÀNPC
|
npcControl = NPCCommon.NPCControl(curNPC)
|
npcControl.SetKilled()
|
return
|
|
|
## ¿Í»§¶ËÈÎÎñ¼ÆÊý
|
#===============================================================================
|
# //A2 25 ¿Í»§¶ËÈÎÎñ¼ÆÊý # tagCMClientTaskCount
|
#
|
# struct tagCMClientTaskCount
|
# {
|
# tagHead Head;
|
# DWORD CountID; // ¼ÆÊýID£¬¿Í»§¶ËÓë²ß»®Ô¼¶¨£¬¿ÉÒÔÊÇNPCID»òÆäËû
|
# };
|
#===============================================================================
|
def ClientTaskCount(index, clientData, tick):
|
curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
RunQuestEvent(curPlayer, "on_client_by_id", clientData.CountID, Def_RunQuestType_Normal)
|
|
|