Esempio n. 1
0
	def canSpawn(self, player):
		if not player: return False
		if not self.isGM_join_event and player.isGM(): return False
		if player.isSilentMoving(): return False
		if player.getTransformationId() == 5: return False
		if player.getAI().getIntention() == CtrlIntention.AI_INTENTION_IDLE: return False
		if player.getAI().getIntention() == CtrlIntention.AI_INTENTION_REST: return False
		if not player.isInsideZone(player.ZONE_TOWN): return False
		if TownManager.getTown(player.getX(), player.getY(), player.getZ()).getTownId() not in self.main_town_id: return False
		if Rnd.get(100) > self.npc_town_spawn_chance: return False
		return True
Esempio n. 2
0
 def canSpawn(self, player):
     if not player: return False
     if not self.isGM_join_event and player.isGM(): return False
     if player.isSilentMoving(): return False
     if player.getTransformationId() == 5: return False
     if player.getAI().getIntention() == CtrlIntention.AI_INTENTION_IDLE:
         return False
     if player.getAI().getIntention() == CtrlIntention.AI_INTENTION_REST:
         return False
     if not player.isInsideZone(player.ZONE_TOWN): return False
     if TownManager.getTown(
             player.getX(), player.getY(),
             player.getZ()).getTownId() not in self.main_town_id:
         return False
     if Rnd.get(100) > self.npc_town_spawn_chance: return False
     return True
Esempio n. 3
0
	def checkCondition(self, player):
		if player.isGM(): return False #GM 不檢, 注意 如果GM被關需要由另一位GM釋放
		if player.isInOlympiadMode(): return False #奧P 不檢
		if not TownManager.getTown(player.getX(), player.getY(), player.getZ()) == None: return False #在城鎮中 不檢
		if player.isInsideZone(L2Character.ZONE_PEACE): return False #安全地區 不檢
		if player.getAI().getIntention() == CtrlIntention.AI_INTENTION_IDLE: return False #發呆 不檢
		#if player.getAI().getIntention() == CtrlIntention.AI_INTENTION_FOLLOW: return False #跟隨 不檢
		#if player.getAI().getIntention() == CtrlIntention.AI_INTENTION_MOVE_TO: return False #跑路 不檢
		#if player.getAI().getIntention() == CtrlIntention.AI_INTENTION_REST: return False #坐下休息 不檢		
		if player.isInJail(): return False #監禁中 不檢
		st = player.getQuestState(self.qn)
		if not st:
			st = self.newQuestState(player)
			st.setState(State.STARTED)
		if self.timepass_check:
			last = st.get('last_time')
			if last and time.time() - float(last) < self.timepass: return False #免測時間內 不檢
		if st.getQuestTimer("timeout_%d" % player.getObjectId()): return False #已在檢測中 不檢
		return True
Esempio n. 4
0
 def checkCondition(self, player):
     if player.isGM(): return False  #GM 不檢, 注意 如果GM被關需要由另一位GM釋放
     if player.isInOlympiadMode(): return False  #奧P 不檢
     if not TownManager.getTown(player.getX(), player.getY(),
                                player.getZ()) == None:
         return False  #在城鎮中 不檢
     if player.isInsideZone(L2Character.ZONE_PEACE): return False  #安全地區 不檢
     if player.getAI().getIntention() == CtrlIntention.AI_INTENTION_IDLE:
         return False  #發呆 不檢
     #if player.getAI().getIntention() == CtrlIntention.AI_INTENTION_FOLLOW: return False #跟隨 不檢
     #if player.getAI().getIntention() == CtrlIntention.AI_INTENTION_MOVE_TO: return False #跑路 不檢
     #if player.getAI().getIntention() == CtrlIntention.AI_INTENTION_REST: return False #坐下休息 不檢
     if player.isInJail(): return False  #監禁中 不檢
     st = player.getQuestState(self.qn)
     if not st:
         st = self.newQuestState(player)
         st.setState(State.STARTED)
     if self.timepass_check:
         last = st.get('last_time')
         if last and time.time() - float(last) < self.timepass:
             return False  #免測時間內 不檢
     if st.getQuestTimer("timeout_%d" % player.getObjectId()):
         return False  #已在檢測中 不檢
     return True