mirror of
https://github.com/Sneed-Group/Poodletooth-iLand
synced 2024-12-24 20:22:33 -06:00
Killed cpickle air_cancer, unused flagAv method, useless PetDCImports class (WTF!)
This commit is contained in:
parent
fb07a16d6c
commit
694122266e
8 changed files with 21 additions and 153 deletions
1
astron/databases/air_cache/.gitignore
vendored
1
astron/databases/air_cache/.gitignore
vendored
|
@ -1 +0,0 @@
|
||||||
*.pets
|
|
|
@ -412,7 +412,7 @@ from toontown.coghq import DistributedMintBattle/AI
|
||||||
from toontown.coghq import DistributedStage/AI
|
from toontown.coghq import DistributedStage/AI
|
||||||
from toontown.coghq import DistributedStageRoom/AI
|
from toontown.coghq import DistributedStageRoom/AI
|
||||||
from toontown.coghq import DistributedStageBattle/AI
|
from toontown.coghq import DistributedStageBattle/AI
|
||||||
from toontown.pets.PetDCImports/AI import *
|
from toontown.pets.DistributedPet/AI import *
|
||||||
from toontown.pets import DistributedPetProxy/AI
|
from toontown.pets import DistributedPetProxy/AI
|
||||||
from toontown.distributed import ToontownDistrict/AI
|
from toontown.distributed import ToontownDistrict/AI
|
||||||
from toontown.distributed import ToontownDistrictStats/AI
|
from toontown.distributed import ToontownDistrictStats/AI
|
||||||
|
@ -828,7 +828,6 @@ dclass DistributedToon : DistributedPlayer {
|
||||||
setNeverStartedPartyRefunded(uint64, int8, uint16) ownrecv;
|
setNeverStartedPartyRefunded(uint64, int8, uint16) ownrecv;
|
||||||
setDISLname(string) ram;
|
setDISLname(string) ram;
|
||||||
setDISLid(uint32) ram db airecv;
|
setDISLid(uint32) ram db airecv;
|
||||||
flagAv(uint32, uint16, string []) airecv ownsend;
|
|
||||||
setAnimalSound(uint8 index) ram broadcast ownrecv;
|
setAnimalSound(uint8 index) ram broadcast ownrecv;
|
||||||
setBuffs(uint32[] = []) required ownrecv db;
|
setBuffs(uint32[] = []) required ownrecv db;
|
||||||
setRedeemedCodes(string [] = []) required ownrecv db;
|
setRedeemedCodes(string [] = []) required ownrecv db;
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
from pandac.PandaModules import *
|
from pandac.PandaModules import *
|
||||||
|
|
||||||
|
|
||||||
hashVal = 4085944463L
|
hashVal = 2027986859
|
||||||
|
|
||||||
|
|
||||||
from toontown.coghq import DistributedCashbotBossSafe, DistributedCashbotBossCrane, DistributedBattleFactory, DistributedCashbotBossTreasure, DistributedCogHQDoor, DistributedSellbotHQDoor, DistributedFactoryElevatorExt, DistributedMintElevatorExt, DistributedLawOfficeElevatorExt, DistributedLawOfficeElevatorInt, LobbyManager, DistributedMegaCorp, DistributedFactory, DistributedLawOffice, DistributedLawOfficeFloor, DistributedLift, DistributedDoorEntity, DistributedSwitch, DistributedButton, DistributedTrigger, DistributedCrushableEntity, DistributedCrusherEntity, DistributedStomper, DistributedStomperPair, DistributedLaserField, DistributedGolfGreenGame, DistributedSecurityCamera, DistributedMover, DistributedElevatorMarker, DistributedBarrelBase, DistributedGagBarrel, DistributedBeanBarrel, DistributedHealBarrel, DistributedGrid, ActiveCell, DirectionalCell, CrusherCell, DistributedCrate, DistributedSinkingPlatform, BattleBlocker, DistributedMint, DistributedMintRoom, DistributedMintBattle, DistributedStage, DistributedStageRoom, DistributedStageBattle, DistributedLawbotBossGavel, DistributedLawbotCannon, DistributedLawbotChair, DistributedCogKart, DistributedCountryClub, DistributedCountryClubRoom, DistributedMoleField, DistributedCountryClubBattle, DistributedMaze, DistributedFoodBelt, DistributedBanquetTable, DistributedGolfSpot
|
from toontown.coghq import DistributedCashbotBossSafe, DistributedCashbotBossCrane, DistributedBattleFactory, DistributedCashbotBossTreasure, DistributedCogHQDoor, DistributedSellbotHQDoor, DistributedFactoryElevatorExt, DistributedMintElevatorExt, DistributedLawOfficeElevatorExt, DistributedLawOfficeElevatorInt, LobbyManager, DistributedMegaCorp, DistributedFactory, DistributedLawOffice, DistributedLawOfficeFloor, DistributedLift, DistributedDoorEntity, DistributedSwitch, DistributedButton, DistributedTrigger, DistributedCrushableEntity, DistributedCrusherEntity, DistributedStomper, DistributedStomperPair, DistributedLaserField, DistributedGolfGreenGame, DistributedSecurityCamera, DistributedMover, DistributedElevatorMarker, DistributedBarrelBase, DistributedGagBarrel, DistributedBeanBarrel, DistributedHealBarrel, DistributedGrid, ActiveCell, DirectionalCell, CrusherCell, DistributedCrate, DistributedSinkingPlatform, BattleBlocker, DistributedMint, DistributedMintRoom, DistributedMintBattle, DistributedStage, DistributedStageRoom, DistributedStageBattle, DistributedLawbotBossGavel, DistributedLawbotCannon, DistributedLawbotChair, DistributedCogKart, DistributedCountryClub, DistributedCountryClubRoom, DistributedMoleField, DistributedCountryClubBattle, DistributedMaze, DistributedFoodBelt, DistributedBanquetTable, DistributedGolfSpot
|
||||||
|
@ -18,7 +18,6 @@ from toontown.ai import WelcomeValleyManager, NewsManager, DistributedAprilToons
|
||||||
from otp.chat import ChatAgent
|
from otp.chat import ChatAgent
|
||||||
from toontown.parties.GlobalPartyManager import GlobalPartyManager
|
from toontown.parties.GlobalPartyManager import GlobalPartyManager
|
||||||
from toontown.racing.DistributedStartingBlock import DistributedViewingBlock
|
from toontown.racing.DistributedStartingBlock import DistributedViewingBlock
|
||||||
from toontown.pets.PetDCImports import *
|
|
||||||
from toontown.suit import DistributedSuitPlanner, DistributedSuitBase, DistributedSuit, DistributedTutorialSuit, DistributedFactorySuit, DistributedMintSuit, DistributedStageSuit, DistributedSellbotBoss, DistributedCashbotBoss, DistributedCashbotBossGoon, DistributedGoon, DistributedGridGoon, DistributedLawbotBoss, DistributedLawbotBossSuit, DistributedBossbotBoss
|
from toontown.suit import DistributedSuitPlanner, DistributedSuitBase, DistributedSuit, DistributedTutorialSuit, DistributedFactorySuit, DistributedMintSuit, DistributedStageSuit, DistributedSellbotBoss, DistributedCashbotBoss, DistributedCashbotBossGoon, DistributedGoon, DistributedGridGoon, DistributedLawbotBoss, DistributedLawbotBossSuit, DistributedBossbotBoss
|
||||||
from toontown.distributed import ToontownDistrict, ToontownDistrictStats, DistributedTimer
|
from toontown.distributed import ToontownDistrict, ToontownDistrictStats, DistributedTimer
|
||||||
from toontown.effects import DistributedFireworkShow
|
from toontown.effects import DistributedFireworkShow
|
||||||
|
@ -28,6 +27,7 @@ from toontown.minigame import DistributedMinigame, DistributedMinigameTemplate,
|
||||||
from toontown.racing import DistributedVehicle, DistributedStartingBlock, DistributedRace, DistributedKartPad, DistributedRacePad, DistributedViewPad, DistributedStartingBlock, DistributedLeaderBoard, DistributedGag, DistributedProjectile
|
from toontown.racing import DistributedVehicle, DistributedStartingBlock, DistributedRace, DistributedKartPad, DistributedRacePad, DistributedViewPad, DistributedStartingBlock, DistributedLeaderBoard, DistributedGag, DistributedProjectile
|
||||||
from toontown.catalog import CatalogManager, AccountDate
|
from toontown.catalog import CatalogManager, AccountDate
|
||||||
from toontown.parties import DistributedParty, DistributedPartyActivity, DistributedPartyTeamActivity, DistributedPartyCannon, DistributedPartyCannonActivity, DistributedPartyCatchActivity, DistributedPartyWinterCatchActivity, DistributedPartyCogActivity, DistributedPartyWinterCogActivity, DistributedPartyFireworksActivity, DistributedPartyDanceActivityBase, DistributedPartyDanceActivity, DistributedPartyDance20Activity, DistributedPartyValentineDanceActivity, DistributedPartyValentineDance20Activity, DistributedPartyTrampolineActivity, DistributedPartyValentineTrampolineActivity, DistributedPartyVictoryTrampolineActivity, DistributedPartyWinterTrampolineActivity, DistributedPartyTugOfWarActivity, DistributedPartyJukeboxActivityBase, DistributedPartyJukeboxActivity, DistributedPartyJukebox40Activity, DistributedPartyValentineJukeboxActivity, DistributedPartyValentineJukebox40Activity
|
from toontown.parties import DistributedParty, DistributedPartyActivity, DistributedPartyTeamActivity, DistributedPartyCannon, DistributedPartyCannonActivity, DistributedPartyCatchActivity, DistributedPartyWinterCatchActivity, DistributedPartyCogActivity, DistributedPartyWinterCogActivity, DistributedPartyFireworksActivity, DistributedPartyDanceActivityBase, DistributedPartyDanceActivity, DistributedPartyDance20Activity, DistributedPartyValentineDanceActivity, DistributedPartyValentineDance20Activity, DistributedPartyTrampolineActivity, DistributedPartyValentineTrampolineActivity, DistributedPartyVictoryTrampolineActivity, DistributedPartyWinterTrampolineActivity, DistributedPartyTugOfWarActivity, DistributedPartyJukeboxActivityBase, DistributedPartyJukeboxActivity, DistributedPartyJukebox40Activity, DistributedPartyValentineJukeboxActivity, DistributedPartyValentineJukebox40Activity
|
||||||
|
from toontown.pets.DistributedPet import *
|
||||||
from toontown.friends import TTUFriendsManager
|
from toontown.friends import TTUFriendsManager
|
||||||
from toontown.cogdominium import DistributedCogdoInterior, DistributedCogdoBattleBldg, DistributedCogdoElevatorExt, DistributedCogdoElevatorInt, DistributedCogdoBarrel, DistCogdoGame, DistCogdoLevelGame, DistCogdoBoardroomGame, DistCogdoCraneGame, DistCogdoMazeGame, DistCogdoFlyingGame, DistCogdoCrane, DistCogdoCraneMoneyBag, DistCogdoCraneCog
|
from toontown.cogdominium import DistributedCogdoInterior, DistributedCogdoBattleBldg, DistributedCogdoElevatorExt, DistributedCogdoElevatorInt, DistributedCogdoBarrel, DistCogdoGame, DistCogdoLevelGame, DistCogdoBoardroomGame, DistCogdoCraneGame, DistCogdoMazeGame, DistCogdoFlyingGame, DistCogdoCrane, DistCogdoCraneMoneyBag, DistCogdoCraneCog
|
||||||
from toontown.uberdog.ARGManager import ARGManager
|
from toontown.uberdog.ARGManager import ARGManager
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
if hasattr(base, 'wantPets') and base.wantPets:
|
|
||||||
import DistributedPet
|
|
|
@ -1,2 +0,0 @@
|
||||||
if hasattr(simbase, 'wantPets') and simbase.wantPets:
|
|
||||||
import DistributedPetAI
|
|
|
@ -1,8 +1,5 @@
|
||||||
from direct.fsm.FSM import FSM
|
from toontown.toonbase import ToontownGlobals, TTLocalizer
|
||||||
import PetUtil, PetDNA
|
import PetUtil, PetDNA, time, random
|
||||||
from toontown.toonbase import ToontownGlobals
|
|
||||||
from toontown.toonbase import TTLocalizer
|
|
||||||
import cPickle, time, random, os
|
|
||||||
|
|
||||||
MINUTE = 60
|
MINUTE = 60
|
||||||
HOUR = 60 * MINUTE
|
HOUR = 60 * MINUTE
|
||||||
|
@ -12,20 +9,13 @@ def getDayId():
|
||||||
return int(time.time() // DAY)
|
return int(time.time() // DAY)
|
||||||
|
|
||||||
class PetManagerAI:
|
class PetManagerAI:
|
||||||
NUM_DAILY_PETS = 5 # Per hood.
|
NUM_DAILY_PETS = 5
|
||||||
cachePath = config.GetString('air-pet-cache', 'astron/databases/air_cache/')
|
|
||||||
|
|
||||||
def __init__(self, air):
|
def __init__(self, air):
|
||||||
self.air = air
|
self.air = air
|
||||||
self.cacheFile = '%spets_%d.pets' % (self.cachePath, self.air.districtId)
|
self.seeds = simbase.backups.load('pet-seeds', (self.air.districtId,), default={})
|
||||||
if os.path.isfile(self.cacheFile):
|
|
||||||
with open(self.cacheFile, 'rb') as f:
|
|
||||||
data = f.read()
|
|
||||||
|
|
||||||
self.seeds = cPickle.loads(data)
|
if self.seeds.get('day', -1) != getDayId() or len(self.seeds.get(ToontownGlobals.ToontownCentral, [])) != self.NUM_DAILY_PETS:
|
||||||
if self.seeds.get('day', -1) != getDayId() or len(self.seeds.get(ToontownGlobals.ToontownCentral, [])) != self.NUM_DAILY_PETS:
|
|
||||||
self.generateSeeds()
|
|
||||||
else:
|
|
||||||
self.generateSeeds()
|
self.generateSeeds()
|
||||||
|
|
||||||
def generateSeeds(self):
|
def generateSeeds(self):
|
||||||
|
@ -38,9 +28,7 @@ class PetManagerAI:
|
||||||
self.seeds[hood] = [seeds.pop() for _ in xrange(self.NUM_DAILY_PETS)]
|
self.seeds[hood] = [seeds.pop() for _ in xrange(self.NUM_DAILY_PETS)]
|
||||||
|
|
||||||
self.seeds['day'] = getDayId()
|
self.seeds['day'] = getDayId()
|
||||||
|
simbase.backups.save('pet-seeds', (self.air.districtId,), self.seeds)
|
||||||
with open(self.cacheFile, 'wb') as f:
|
|
||||||
f.write(cPickle.dumps(self.seeds))
|
|
||||||
|
|
||||||
def getAvailablePets(self, seed, safezoneId):
|
def getAvailablePets(self, seed, safezoneId):
|
||||||
if self.seeds.get('day', -1) != getDayId():
|
if self.seeds.get('day', -1) != getDayId():
|
||||||
|
|
|
@ -1,55 +1,36 @@
|
||||||
|
from pandac.PandaModules import *
|
||||||
from direct.directnotify import DirectNotifyGlobal
|
from direct.directnotify import DirectNotifyGlobal
|
||||||
from direct.distributed import DistributedSmoothNodeAI
|
from direct.distributed import DistributedSmoothNodeAI
|
||||||
from direct.distributed.ClockDelta import *
|
from direct.distributed.ClockDelta import *
|
||||||
from direct.distributed.MsgTypes import *
|
from direct.distributed.MsgTypes import *
|
||||||
from direct.distributed.PyDatagram import PyDatagram
|
from direct.distributed.PyDatagram import PyDatagram
|
||||||
from direct.task import Task
|
from direct.task import Task
|
||||||
from pandac.PandaModules import *
|
|
||||||
import random
|
|
||||||
import time
|
|
||||||
import re
|
|
||||||
|
|
||||||
import Experience
|
|
||||||
import InventoryBase
|
|
||||||
from NPCToons import npcFriends
|
|
||||||
import ToonDNA
|
|
||||||
from otp.ai.AIBaseGlobal import *
|
from otp.ai.AIBaseGlobal import *
|
||||||
from otp.ai.MagicWordGlobal import *
|
from otp.ai.MagicWordGlobal import *
|
||||||
from otp.avatar import DistributedAvatarAI
|
from otp.avatar import DistributedAvatarAI, DistributedPlayerAI
|
||||||
from otp.avatar import DistributedPlayerAI
|
from otp.otpbase import OTPGlobals, OTPLocalizer
|
||||||
from otp.otpbase import OTPGlobals
|
|
||||||
from otp.otpbase import OTPLocalizer
|
|
||||||
from toontown.battle import SuitBattleGlobals
|
from toontown.battle import SuitBattleGlobals
|
||||||
from toontown.catalog import CatalogAccessoryItem
|
from toontown.catalog import CatalogAccessoryItem, CatalogItem, CatalogItemList
|
||||||
from toontown.catalog import CatalogItem
|
|
||||||
from toontown.catalog import CatalogItemList
|
|
||||||
from toontown.chat import ResistanceChat
|
from toontown.chat import ResistanceChat
|
||||||
from toontown.coghq import CogDisguiseGlobals
|
from toontown.coghq import CogDisguiseGlobals
|
||||||
from toontown.estate import FlowerBasket
|
from toontown.estate import FlowerBasket, FlowerCollection, GardenGlobals
|
||||||
from toontown.estate import FlowerCollection
|
from toontown.fishing import FishCollection, FishTank
|
||||||
from toontown.estate import GardenGlobals
|
|
||||||
from toontown.fishing import FishCollection
|
|
||||||
from toontown.fishing import FishTank
|
|
||||||
from toontown.golf import GolfGlobals
|
from toontown.golf import GolfGlobals
|
||||||
from toontown.hood import ZoneUtil
|
from toontown.hood import ZoneUtil
|
||||||
from toontown.minigame import MinigameCreatorAI
|
|
||||||
from toontown.parties import PartyGlobals
|
from toontown.parties import PartyGlobals
|
||||||
from toontown.parties.InviteInfo import InviteInfoBase
|
from toontown.parties.InviteInfo import InviteInfoBase
|
||||||
from toontown.parties.PartyGlobals import InviteStatus
|
from toontown.parties.PartyGlobals import InviteStatus
|
||||||
from toontown.parties.PartyInfo import PartyInfoAI
|
from toontown.parties.PartyInfo import PartyInfoAI
|
||||||
from toontown.parties.PartyReplyInfo import PartyReplyInfoBase
|
from toontown.parties.PartyReplyInfo import PartyReplyInfoBase
|
||||||
from toontown.quest import QuestRewardCounter
|
from toontown.quest import QuestRewardCounter, Quests
|
||||||
from toontown.quest import Quests
|
|
||||||
from toontown.racing import RaceGlobals
|
from toontown.racing import RaceGlobals
|
||||||
from toontown.shtiker import CogPageGlobals
|
from toontown.shtiker import CogPageGlobals
|
||||||
from toontown.suit import SuitDNA
|
from toontown.suit import SuitDNA
|
||||||
from toontown.toon import NPCToons
|
from toontown.toon import NPCToons
|
||||||
from toontown.toonbase import TTLocalizer
|
from toontown.toonbase import TTLocalizer, ToontownBattleGlobals, ToontownGlobals
|
||||||
from toontown.toonbase import ToontownBattleGlobals
|
|
||||||
from toontown.toonbase import ToontownGlobals
|
|
||||||
from toontown.toonbase.ToontownGlobals import *
|
from toontown.toonbase.ToontownGlobals import *
|
||||||
from toontown.toonbase.TTLocalizerEnglish import SuitNameDropper
|
from NPCToons import npcFriends
|
||||||
|
import Experience, InventoryBase, ToonDNA, random, time
|
||||||
|
|
||||||
if simbase.wantPets:
|
if simbase.wantPets:
|
||||||
from toontown.pets import PetLookerAI, PetObserve
|
from toontown.pets import PetLookerAI, PetObserve
|
||||||
|
@ -72,8 +53,6 @@ class DistributedToonAI(DistributedPlayerAI.DistributedPlayerAI, DistributedSmoo
|
||||||
ToontownGlobals.FT_Leg: (CogDisguiseGlobals.leftLegIndex, CogDisguiseGlobals.rightLegIndex),
|
ToontownGlobals.FT_Leg: (CogDisguiseGlobals.leftLegIndex, CogDisguiseGlobals.rightLegIndex),
|
||||||
ToontownGlobals.FT_Arm: (CogDisguiseGlobals.leftArmIndex, CogDisguiseGlobals.rightArmIndex),
|
ToontownGlobals.FT_Arm: (CogDisguiseGlobals.leftArmIndex, CogDisguiseGlobals.rightArmIndex),
|
||||||
ToontownGlobals.FT_Torso: (CogDisguiseGlobals.torsoIndex,)}
|
ToontownGlobals.FT_Torso: (CogDisguiseGlobals.torsoIndex,)}
|
||||||
lastFlagAvTime = globalClock.getFrameTime()
|
|
||||||
flagCounts = {}
|
|
||||||
petId = None
|
petId = None
|
||||||
|
|
||||||
def __init__(self, air):
|
def __init__(self, air):
|
||||||
|
@ -85,7 +64,6 @@ class DistributedToonAI(DistributedPlayerAI.DistributedPlayerAI, DistributedSmoo
|
||||||
|
|
||||||
self.air = air
|
self.air = air
|
||||||
self.dna = ToonDNA.ToonDNA()
|
self.dna = ToonDNA.ToonDNA()
|
||||||
self.magicWordDNABackups = {}
|
|
||||||
self.inventory = None
|
self.inventory = None
|
||||||
self.fishCollection = None
|
self.fishCollection = None
|
||||||
self.fishTank = None
|
self.fishTank = None
|
||||||
|
@ -2108,7 +2086,6 @@ class DistributedToonAI(DistributedPlayerAI.DistributedPlayerAI, DistributedSmoo
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
def restockAllResistanceMessages(self, charges = 1):
|
def restockAllResistanceMessages(self, charges = 1):
|
||||||
from toontown.chat import ResistanceChat
|
|
||||||
msgs = []
|
msgs = []
|
||||||
for menuIndex in ResistanceChat.resistanceMenu:
|
for menuIndex in ResistanceChat.resistanceMenu:
|
||||||
for itemIndex in ResistanceChat.getItems(menuIndex):
|
for itemIndex in ResistanceChat.getItems(menuIndex):
|
||||||
|
@ -3583,9 +3560,6 @@ class DistributedToonAI(DistributedPlayerAI.DistributedPlayerAI, DistributedSmoo
|
||||||
senderId = self.air.getAvatarIdFromSender()
|
senderId = self.air.getAvatarIdFromSender()
|
||||||
eventStr = 'senderId=%s ' % senderId
|
eventStr = 'senderId=%s ' % senderId
|
||||||
eventStr += eventName
|
eventStr += eventName
|
||||||
strSearch = re.compile('AvatarHackWarning! nodename')
|
|
||||||
if strSearch.search(eventName, 0, 100):
|
|
||||||
self.air.district.recordSuspiciousEventData(len(eventStr))
|
|
||||||
self.air.writeServerEvent('suspicious', self.doId, eventStr)
|
self.air.writeServerEvent('suspicious', self.doId, eventStr)
|
||||||
if simbase.config.GetBool('want-ban-setAnimState', True):
|
if simbase.config.GetBool('want-ban-setAnimState', True):
|
||||||
if eventName.startswith('setAnimState: '):
|
if eventName.startswith('setAnimState: '):
|
||||||
|
@ -4009,91 +3983,6 @@ class DistributedToonAI(DistributedPlayerAI.DistributedPlayerAI, DistributedSmoo
|
||||||
def staticGetLogicalZoneChangeAllEvent():
|
def staticGetLogicalZoneChangeAllEvent():
|
||||||
return 'DOLogicalChangeZone-all'
|
return 'DOLogicalChangeZone-all'
|
||||||
|
|
||||||
def flagAv(self, avId, reason, params):
|
|
||||||
self.notify.debug('reason: %s timepassed: %s' % (reason, globalClock.getFrameTime() - DistributedToonAI.lastFlagAvTime))
|
|
||||||
if reason == AV_FLAG_REASON_TOUCH and globalClock.getFrameTime() - DistributedToonAI.lastFlagAvTime > AV_TOUCH_CHECK_DELAY_AI:
|
|
||||||
DistributedToonAI.lastFlagAvTime = globalClock.getFrameTime()
|
|
||||||
av = self.air.doId2do.get(avId)
|
|
||||||
otherAv = self.air.doId2do.get(int(params[0]))
|
|
||||||
self.notify.debug('checking suspicious avatar positioning %s for %s with %s' % (avId, reason, params))
|
|
||||||
if av and otherAv and isinstance(av, DistributedToonAI) and isinstance(otherAv, DistributedToonAI) and av.zoneId == otherAv.zoneId and av.zoneId not in MinigameCreatorAI.MinigameZoneRefs:
|
|
||||||
self.notify.debug('...in zone %s' % av.zoneId)
|
|
||||||
componentNode = av.getParent().attachNewNode('blah')
|
|
||||||
componentNode.setPos(av.getComponentX(), av.getComponentY(), av.getComponentZ())
|
|
||||||
avPos = componentNode.getPos(av.getRender())
|
|
||||||
componentNode.reparentTo(otherAv.getParent())
|
|
||||||
componentNode.setPos(otherAv.getComponentX(), otherAv.getComponentY(), otherAv.getComponentZ())
|
|
||||||
otherAvPos = componentNode.getPos(otherAv.getRender())
|
|
||||||
componentNode.removeNode()
|
|
||||||
zDist = avPos.getZ() - otherAvPos.getZ()
|
|
||||||
avPos2D = copy.copy(avPos)
|
|
||||||
avPos2D.setZ(0)
|
|
||||||
otherAvPos2D = copy.copy(otherAvPos)
|
|
||||||
otherAvPos2D.setZ(0)
|
|
||||||
moveVec = avPos2D - otherAvPos2D
|
|
||||||
dist = moveVec.length()
|
|
||||||
self.notify.debug('2d dist between avs is %s %s %s' % (dist, avPos, otherAvPos))
|
|
||||||
if dist < AV_TOUCH_CHECK_DIST and zDist < AV_TOUCH_CHECK_DIST_Z:
|
|
||||||
self.notify.debug('...moving!')
|
|
||||||
if dist == 0.0:
|
|
||||||
moveVec = Vec3(1.0, 0, 0)
|
|
||||||
else:
|
|
||||||
moveVec.normalize()
|
|
||||||
moveVec = moveVec * AV_TOUCH_CHECK_DIST
|
|
||||||
avHpr = av.getHpr(av.getRender())
|
|
||||||
newX = avPos.getX() + moveVec.getX()
|
|
||||||
newY = avPos.getY() + moveVec.getY()
|
|
||||||
newZ = avPos.getZ() + moveVec.getZ()
|
|
||||||
newH = avHpr.getX()
|
|
||||||
newP = avHpr.getY()
|
|
||||||
newR = avHpr.getZ()
|
|
||||||
av.setPosHpr(av.getRender(), newX, newY, newZ, newH, newP, newR)
|
|
||||||
newAvPos = av.getPos()
|
|
||||||
if newAvPos.getX() > 3000 or newAvPos.getX() < -3000 or newAvPos.getY() > 3000 or newAvPos.getY() < -3000:
|
|
||||||
return
|
|
||||||
av.d_setXY(newAvPos.getX(), newAvPos.getY())
|
|
||||||
self.notify.debug('setting ai pos: %s %s %s and sending pos: %s' % (newX,
|
|
||||||
newY,
|
|
||||||
newZ,
|
|
||||||
newAvPos))
|
|
||||||
if len(DistributedToonAI.flagCounts) > AV_FLAG_HISTORY_LEN:
|
|
||||||
DistributedToonAI.flagCounts = {}
|
|
||||||
avPairKey = str(min(av.doId, otherAv.doId)) + '+' + str(max(av.doId, otherAv.doId))
|
|
||||||
prevCount = DistributedToonAI.flagCounts.setdefault(avPairKey, [{}, globalClock.getFrameTime(), {}])
|
|
||||||
if av.doId not in prevCount[2]:
|
|
||||||
prevCount[2][av.doId] = [None, None]
|
|
||||||
if av.doId not in prevCount[0]:
|
|
||||||
prevCount[0][av.doId] = 0
|
|
||||||
self.notify.debug('moving av %s, newPos: %s oldPos: %s' % (av.doId, prevCount[2][av.doId], avPos))
|
|
||||||
if prevCount[2][av.doId][0] == None or prevCount[2][av.doId][1] == None:
|
|
||||||
pass
|
|
||||||
elif prevCount[2][av.doId][0] != avPos.getX() or prevCount[2][av.doId][1] != avPos.getY():
|
|
||||||
prevCount[0][av.doId] += 1
|
|
||||||
prevCount[2][av.doId] = [newX, newY]
|
|
||||||
if prevCount[0][av.doId] > AV_TOUCH_COUNT_LIMIT:
|
|
||||||
if globalClock.getFrameTime() - prevCount[1] < AV_TOUCH_COUNT_TIME:
|
|
||||||
zoneId = not hasattr(av, 'zoneId') and 'undef' or av.zoneId
|
|
||||||
battleId = not hasattr(av, 'battleId') and 'undef' or av.battleId
|
|
||||||
animName = not hasattr(av, 'animName') and 'undef' or av.animName
|
|
||||||
inEstate = not hasattr(av, 'isInEstate') and 'undef' or av.isInEstate()
|
|
||||||
ghostMode = not hasattr(av, 'ghostMode') and 'undef' or av.ghostMode
|
|
||||||
immortalMode = not hasattr(av, 'immortalMode') and 'undef' or av.immortalMode
|
|
||||||
isGm = not hasattr(av, '_isGM') and 'undef' or av._isGM
|
|
||||||
valStr = '%s %s %s %s %s %s %s %s' % (otherAv.doId,
|
|
||||||
zoneId,
|
|
||||||
battleId,
|
|
||||||
animName,
|
|
||||||
inEstate,
|
|
||||||
ghostMode,
|
|
||||||
immortalMode,
|
|
||||||
isGm)
|
|
||||||
self.notify.info('av %s is consistently in an inappropriate position with %s...' % (av.doId, valStr))
|
|
||||||
self.air.writeServerEvent('suspicious', avId, ' consistently in an inappropriate position with toon %s' % valStr)
|
|
||||||
response = simbase.config.GetString('toon-pos-hack-response', 'nothing')
|
|
||||||
av.handleHacking(response, 'collision and position hacking', [otherAv])
|
|
||||||
del DistributedToonAI.flagCounts[avPairKey]
|
|
||||||
return
|
|
||||||
|
|
||||||
def handleHacking(self, response, comment, coconspirators = []):
|
def handleHacking(self, response, comment, coconspirators = []):
|
||||||
if response == 'quietzone':
|
if response == 'quietzone':
|
||||||
self.b_setLocation(self.parentId, ToontownGlobals.QuietZone)
|
self.b_setLocation(self.parentId, ToontownGlobals.QuietZone)
|
||||||
|
|
|
@ -541,8 +541,5 @@ class DistributedToonUD(DistributedObjectUD):
|
||||||
def setDISLid(self, todo0):
|
def setDISLid(self, todo0):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def flagAv(self, todo0, todo1, todo2):
|
|
||||||
pass
|
|
||||||
|
|
||||||
def setRedeemedCodes(self, redeemedCodes):
|
def setRedeemedCodes(self, redeemedCodes):
|
||||||
pass
|
pass
|
Loading…
Reference in a new issue