1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#!/usr/bin/python
# -*- coding: GBK -*-
 
##@package GY_Query_PullPlayerByID
# °ÑÍæ¼Ò´«Ë͵½GMÉí±ß
#
# @author mark
# @date 2010-3-31
# @version 1.1
#
# ÐÞ¸Äʱ¼ä ÐÞ¸ÄÈË ÐÞ¸ÄÄÚÈÝ
# @change: "2014-01-07 15:30" hxp ÏµÍ³markÐÞ¸Ä
#
# VER = "2014-01-07 15:30" zhengyang Ìí¼Ó×¢ÊÍ
#
# Ä£¿éÏêϸ˵Ã÷
#
#packCMDList [µØÍ¼ID ,×ø±êX, ×ø±êY, Ïß·]
#---------------------------------------------------------------------
#µ¼Èë
import PlayerControl
import EventShell
import GameWorld
import IPY_GameWorld
#---------------------------------------------------------------------
#È«¾Ö±äÁ¿
#---------------------------------------------------------------------
 
#---------------------------------------------------------------------
#Âß¼­ÊµÏÖ
## ÇëÇóÂß¼­
#  @param query_Type ÇëÇóÀàÐÍ
#  @param query_ID ÇëÇóµÄÍæ¼ÒID
#  @param packCMDList ·¢°üÃüÁî [µØÍ¼ID ,×ø±êX, ×ø±êY, Ïß·]
#  @param tick µ±Ç°Ê±¼ä
#  @return resultDisc
#  @remarks º¯ÊýÏêϸ˵Ã÷.
def DoLogic(query_Type , query_ID , packCMDList , tick):
    curFindPlayer = GameWorld.GetPlayerManager().FindPlayerByID(query_ID)
    
    if not curFindPlayer or curFindPlayer.IsEmpty():
        return ''
    
    if not __CanPullPlayer(curFindPlayer):
        return 'ReadMap'
    
    mapID = packCMDList[0]
    posX = packCMDList[1]
    posY = packCMDList[2]
    lineID = packCMDList[3]
    #Ö´ÐÐÇл»µØÍ¼Âß¼­
    __DoLogic_ResetWorldPos(curFindPlayer)
    
    PlayerControl.PlayerResetWorldPosFB( curFindPlayer, mapID, posX, posY, False, lineID )
    
    return
#---------------------------------------------------------------------
## ÖØÖÃλÖÃʱ£¬Òª½â³ýʼþ״̬
#  @param curFindPlayer µ±Ç°Íæ¼Ò
#  @return None
#  @remarks º¯ÊýÏêϸ˵Ã÷.
def __DoLogic_ResetWorldPos(curFindPlayer):
    playerAction = curFindPlayer.GetPlayerAction()
    #ʼþ״̬,½áÊøÊ¼þ
    if playerAction == IPY_GameWorld.paEvent:
        EventShell.DoExitEvent(curFindPlayer)
        
    return
 
#---------------------------------------------------------------------
## ÊÇ·ñ¿ÉÒÔÀ­
#  @param curFindPlayer µ±Ç°Íæ¼Ò
#  @return None
#  @remarks º¯ÊýÏêϸ˵Ã÷.
def __CanPullPlayer(curFindPlayer):
#===============================================================================
#GetInitOK        True
#GetIsLoginOff        False
#===============================================================================
    if not curFindPlayer.GetInitOK():
        return
    
    if curFindPlayer.GetIsLoginOff():
        return
    
    return True
#---------------------------------------------------------------------
#Ö´Ðнá¹û
## Ö´Ðнá¹û
#  @param curPlayer ·¢³öÇëÇóµÄÍæ¼Ò
#  @param callFunName ¹¦ÄÜÃû³Æ
#  @param funResult ²éѯµÄ½á¹û
#  @param tick µ±Ç°Ê±¼ä
#  @return None
#  @remarks º¯ÊýÏêϸ˵Ã÷.
def DoResult(curPlayer , callFunName , funResult , tick):
    if funResult == '':
        #GeRen_chenxin_112395  ¶Ô²»Æð£¬Ä¿±êÍæ¼Ò²»ÔÚÏߣ¬GMÖ¸Áî²Ù×÷ʧ°Ü
        PlayerControl.NotifyCode(curPlayer,"GeRen_chenxin_112395")
        return
    
    if funResult == 'ReadMap':
        #GM_Operate_GoalPlayerReadMap  ¶Ô²»Æð£¬Ä¿±êÍæ¼ÒÕý´¦ÓÚµØÍ¼¶Áȡ״̬Ï£¬GMÖ¸Áî²Ù×÷ʧ°Ü
        PlayerControl.NotifyCode(curPlayer,"GM_Operate_GoalPlayerReadMap")
        return
    
    #GeRen_chenxin_673416 GMÖ¸ÁîÒÑÉúЧ£¬²Ù×÷³É¹¦
    PlayerControl.NotifyCode(curPlayer,"GeRen_chenxin_673416")
    
    return