def trackExperienceToNetString(tracks): dg = PyDatagram() for track, exp in tracks.iteritems(): dg.addUint8(TrackNameById.values().index(track)) dg.addInt16(exp) dgi = PyDatagramIterator(dg) return dgi.getRemainingBytes()
def toNetString(self, avDoId): dg = PyDatagram() dg.addUint32(avDoId) dg.addUint8(base.air.attackMgr.getAttackIDByName(self.favoriteGag)) for trackName in self.tracks.keys(): track = self.getTrackByName(trackName) dg.addUint8(GagGlobals.TrackNameById.keys()[ GagGlobals.TrackNameById.values().index(trackName)]) dg.addInt16(track.exp) dg.addInt16(track.maxExp) dg.addUint16(track.increment) dgi = PyDatagramIterator(dg) return dgi.getRemainingBytes()
def _crDatagram(self, msg): # create Datagram from message myPyDatagram = PyDatagram() myPyDatagram.addInt32(msg[SEQN]) myPyDatagram.addInt32(msg[AKN]) myPyDatagram.addInt16(msg[MSG_TYPE]) myPyDatagram.addInt8(msg[OOL]) if not msg[ENCODED]: myPyDatagram.addString(self.encode(msg[OAKN])) myPyDatagram.addString(self.encode(msg[DATA])) else: myPyDatagram.addString(msg[OAKN]) myPyDatagram.addString(msg[DATA]) return myPyDatagram
def tower_train(self,tower_id,build_object): order = PyDatagram() if base.client == True: order.addUint16(REQUEST_TOWER_TRAIN) else: order.addUint16(TOWER_TRAIN) order.addInt16(army_id) order.addFloat64(tx) order.addFloat64(ty) if base.client == True: self.cWriter.send(order,base.server_connection) else: self.send_package(order) base.towers[tower_id].train_counter()
def army_move(self,army_id,tx,ty): order = PyDatagram() if base.client == True: order.addUint16(ARMY_MOVE_REQUEST) else: order.addUint16(ARMY_MOVE) ax = base.armies[army_id].node_path.getX() ay = base.armies[army_id].node_path.getY() order.addInt16(army_id) order.addFloat64(ax) order.addFloat64(ay) order.addFloat64(tx) order.addFloat64(ty) if base.client == True: self.cWriter.send(order,base.server_connection) else: self.send_package(order) base.armies[army_id].move_to_point(tx,ty)
def handle_set_avatar(self, connection, di): ## Send the client HIS character's info. ## TODO: NOT SEND STATIC INFO datagram = PyDatagram() #datagram.addUint16(0) #dummy datagram.addUint32(CLIENT_GET_AVATAR_DETAILS_RESP) #msgType datagram.addUint32(1) #avatarId (uint32) datagram.addUint8(0) #returnCode (uint8) ## NOW, HERE COMES THE GOOD PART datagram.addString( "t\x00\x02\x02\x01\x00\x00\x00\x00\x00\x01\22\x00\22\22" ) #setDNAString datagram.addInt16(1000) #setMaxBankMoney datagram.addInt16(0) #setMoney datagram.addInt16(40) #setMaxMoney datagram.addInt16(15) #setMaxHP datagram.addInt16(15) #setHP self.cw.send(datagram, connection)
def sendScore(s1, s2): move = PyDatagram() move.addUint16(PACKET_SCORE) move.addInt16(s1) move.addInt16(s2) toAll(move, activeConnections)
def checkNamePattern(self): self.notify.debug('checkNamePattern') datagram = PyDatagram() datagram.addUint16(CLIENT_SET_NAME_PATTERN) datagram.addUint32(self.avId) datagram.addInt16(self.nameIndices[0]) datagram.addInt16(self.nameFlags[0]) datagram.addInt16(self.nameIndices[1]) datagram.addInt16(self.nameFlags[1]) datagram.addInt16(self.nameIndices[2]) datagram.addInt16(self.nameFlags[2]) datagram.addInt16(self.nameIndices[3]) datagram.addInt16(self.nameFlags[3]) messenger.send('nameShopPost', [datagram]) self.waitForServer()
def sendScore(s1,s2): move = PyDatagram() move.addUint16(PACKET_SCORE) move.addInt16(s1) move.addInt16(s2) toAll(move, activeConnections)
def handleDatagram(self, dg): if not dg.getLength() > 0: return None dgi = PyDatagramIterator(dg) connection = dg.getConnection() msgType = dgi.getUint16() if msgType == CLIENT_HEARTBEAT: self.notify.debug('Recieved heartbeat.') elif msgType == CLIENT_DISCONNECT: if connection in self.connectionList: self.connectionList.remove(connection) elif msgType == CLIENT_SET_ZONE: self.handleSetZone(dgi, connection) elif msgType == CLIENT_REMOVE_ZONE: self.handleRemoveZone(dgi, connection) elif msgType == CLIENT_CREATE_OBJECT_REQUIRED: self.handleClientCreateObjectRequired(dg, dgi) elif msgType == CLIENT_OBJECT_UPDATE_FIELD: doId = dgi.getUint32() fieldId = dgi.getUint16() print "DEBUG: Got Toontown field update for Toontown doId = %d and Toontown fieldId = %d" % (doId, fieldId) elif msgType == CLIENT_OBJECT_DELETE: self.handleClientDeleteObject(dg, dgi.getUint32()) elif msgType == CLIENT_OBJECT_DISABLE: self.handleClientDisable(dg, dgi.getUint32()) elif msgType == CLIENT_ADD_INTEREST: #self.handleClientAddInterest(self, Client, dgi) handle = dgi.getUint16() contextId = dgi.getUint32() parentId = dgi.getUint32() zoneList = [dgi.getUint32()] print 'DEBUG: Network :: Interest -> (%d, %d, %d)' % (handle, contextId, parentId) while True: remainingData = (dg.getLength() - dgi.getCurrentIndex()) if remainingData == 0: break zoneList.append(dgi.getUint32()) if handle == 2: #Aww yeah we found the tewtow shard list interest! datagram = PyDatagram() datagram.addUint16(CLIENT_CREATE_OBJECT_REQUIRED_OTHER_RESP) datagram.addUint32(4618) #parentId datagram.addUint32(3) #zoneId datagram.addUint16(58) #ToontownDistrict DClass Field datagram.addUint32(316000000) #Shard ID (doId) datagram.addString('Astron is for n00bs') #District name datagram.addUint8(1) # 1 - Enabled 0 - Disabled datagram.addBool(0) self.cw.send(datagram, connection) if handle == 4: datagram = PyDatagram() datagram.addUint16(CLIENT_CREATE_OBJECT_REQUIRED_OTHER_RESP) datagram.addUint32(4618) #parentId datagram.addUint32(3) #zoneId datagram.addUint16(387) #ToontownDistrict DClass Field datagram.addUint32(900000000) #Shard ID (doId) datagram.addString("2013-08-22 23:49:46") self.cw.send(datagram, connection) datagran2 = PyDatagram() datagran2.addUint16(CLIENT_CREATE_OBJECT_REQUIRED_OTHER_RESP) datagran2.addUint32(0) datagran2.addUint32(0) datagran2.addUint16(172) datagran2.addUint32(637100008) arg = [] datagran2.addUint16(len(arg) << 1) for i in arg: datagran2.addInt16(int(i)) datagran2.addUint16(len(arg) << 1) for i in arg: datagran2.addInt16(int(i)) datagran2.addUint16(len(arg) << 1) for i in arg: datagran2.addInt16(int(i)) datagran2.addUint16(len(arg) << 1) for i in arg: datagran2.addInt16(int(i)) #arg = [64, 65, 66, 10, 15] datagran2.addUint16(len(arg)) for i in arg: datagran2.addUint16(int(i)) self.cw.send(datagran2, connection) if handle == 5: datagram = PyDatagram() datagram.addUint16(CLIENT_OBJECT_UPDATE_FIELD) datagram.addUint32(1) #doId datagram.addUint16(112) #fieldId datagram.addUint32(316000000) self.cw.send(datagram, connection) datagram = PyDatagram() datagram.addUint16(CLIENT_DONE_INTEREST_RESP) datagram.addUint16(handle) datagram.addUint32(contextId) datagram.addUint32(parentId) for zoneId in zoneList: datagram.addUint32(zoneId) self.cw.send(datagram, connection) datagram = PyDatagram() datagram.addUint16(CLIENT_DONE_INTEREST_RESP) datagram.addUint16(handle) datagram.addUint32(contextId) datagram.addUint32(parentId) for zoneId in zoneList: datagram.addUint32(zoneId) self.cw.send(datagram, connection) elif msgType == CLIENT_REMOVE_INTEREST: return None #Lets start with the tewtow specific msgtypes. elif msgType == CLIENT_LOGIN_TOONTOWN: self.handleClientLoginToontown(dgi, connection) elif msgType == CLIENT_GET_AVATARS: self.handleGetAvatars(dgi, connection) elif msgType == CLIENT_GET_AVATARS: self.handleGetAvatars(dgi, connection) elif msgType == CLIENT_CREATE_AVATAR: #return None datagram = PyDatagram() datagram.addUint16(CLIENT_CREATE_AVATAR_RESP) datagram.addUint16(0) #echoContext datagram.addUint8(0) #returnCode datagram.addUint32(1) self.cw.send(datagram, connection) elif msgType == CLIENT_SET_NAME_PATTERN: datagram = PyDatagram() datagram.addUint16(CLIENT_SET_NAME_PATTERN_ANSWER) datagram.addUint32(1) datagram.addUint8(0) self.cw.send(datagram, connection) elif msgType == CLIENT_SET_AVATAR: packer = DCPacker() dclass = self.dclassesByName['DistributedToon'] datagram = PyDatagram() datagram.addUint16(15) #CLIENT_GET_AVATAR_DETAILS_RESP Msgtype datagram.addUint32(1) datagram.addUint8(0) datagram.addString('Infinity') #Toon name datagram.addString('Unknown') datagram.addUint32(0) datagram.addBool(1) datagram.addString('t\x05\x01\x00\x01\x39\x1b\x33\x1b\31\x1b\x14\x00\x14\x14') #DNA (blob) datagram.addUint8(1) #GM datagram.addUint16(2500) #Max Bank datagram.addUint16(0) #Current Bank datagram.addUint16(40) #Max Jellybeans datagram.addUint16(0) #Current Jellybeans datagram.addUint16(15) #Max Laff datagram.addUint16(15) #Current Laff datagram.addUint32(0) #Battle ID datagram.addString('Unknown') #Experience (blob) datagram.addUint8(10) #Max Gag Carry #setTrackAccess field = dclass.getField(13) print field arg = [0, 0, 0, 0, 1, 1, 0] datagram.addUint16(len(arg) << 1) for i in arg: datagram.addInt16(int(i)) datagram.addInt8(3) #Track Progress 1 datagram.addUint32(9) #Track Progress 2 #setTrackBonusLevel field = dclass.getField(15) print field arg = [0, 0, 0, 0, 1, 1, 0] datagram.addUint16(len(arg)) for i in arg: datagram.addInt8(int(i)) datagram.addString('') #setInventory #setMaxNPCFriends (Uint16) datagram.addUint16(16) arg = [] datagram.addUint16(len(arg) * 5) for i in arg: datagram.addUint32(int(i)) datagram.addUint32(316000000) #setDefaultShard datagram.addUint32(2000) #setDefaultZone datagram.addString('') field = dclass.getField(22) print field arg = [1000, 2000 , 3000, 4000, 5000, 6000, 8000, 9000, 10000, 11000, 12000, 13000] datagram.addUint16(len(arg) << 2) for i in arg: datagram.addUint32(int(i)) field = dclass.getField(23) print field arg = [1000, 2000 , 3000, 4000, 5000, 6000, 8000, 9000, 10000, 11000, 12000, 13000] datagram.addUint16(len(arg) << 2) for i in arg: datagram.addUint32(int(i)) datagram.addString('') #setInterface datagram.addUint32(2000) #setLastHood datagram.addUint8(1) #setTutorialAck datagram.addUint32(25) #setMaxClothes #setClothesTopsList(uint8array) arg = [] datagram.addUint16(len(arg)) for i in arg: datagram.addUint8(int(i)) #setClothesBottomsList(uint8array) arg = [] datagram.addUint16(len(arg)) for i in arg: datagram.addUint8(int(i)) datagram.addUint32(0) #setMaxAccessories #setHatList(uint8array) arg = [] datagram.addUint16(len(arg)) for i in arg: datagram.addUint8(int(i)) #setGlassessList(uint8array) arg = [] datagram.addUint16(len(arg)) for i in arg: datagram.addUint8(int(i)) #setBackpackList(uint8array) arg = [] datagram.addUint16(len(arg)) for i in arg: datagram.addUint8(int(i)) #setShoesList(uint8array) arg = [] datagram.addUint16(len(arg)) for i in arg: datagram.addUint8(int(i)) datagram.addUint8(0) #setHat 1 datagram.addUint8(0) #setHat 2 datagram.addUint8(0) #setHat 3 datagram.addUint8(0) #setGlasses 1 datagram.addUint8(0) #setGlasses 2 datagram.addUint8(0) #setGlasses 3 datagram.addUint8(0) #setBackpack 1 datagram.addUint8(0) #setBackpack 2 datagram.addUint8(0) #setBackpack 3 datagram.addUint8(0) #setShoes 1 datagram.addUint8(0) #setShoes 2 datagram.addUint8(0) #setShoes 3 datagram.addString('') #setEmoteAccess(uint8array) arg = [] datagram.addUint16(len(arg)) for i in arg: datagram.addUint8(int(i)) #setCustomMeeages(uint16array) arg = [] datagram.addUint16(len(arg) << 1) for i in arg: datagram.addUint16(int(i)) datagram.addString('') #setResistanceMessages #setPetTrickPhrases(uint8array) arg = [] datagram.addUint16(len(arg)) for i in arg: datagram.addUint8(int(i)) datagram.addUint16(0) #setCatalogSchedule 1 datagram.addUint32(0) #setVatalogSchedule 2 datagram.addString('') #setCatalog 1 datagram.addString('') #setCatalog 2 datagram.addString('') #setCatalog 3 datagram.addString('') #setMailBoxContents datagram.addString('') #SetDeliverySchedule datagram.addString('') #setGiftSchedule datagram.addString('') #setAwardMailboxContents datagram.addString('') #setAwardSchedule datagram.addUint8(0) #setAwardNotify datagram.addUint8(0) #setCatalogNotify 1 datagram.addUint8(0) #setCatalogNotify 2 datagram.addUint8(0) #setSpeedChatStyleIndex #setTeleportAccess (uint32array) arg = [1000, 2000 , 3000, 4000, 5000, 6000, 8000, 9000, 10000, 11000, 12000, 13000] datagram.addUint16(len(arg) << 2) for i in arg: datagram.addUint32(int(i)) #setCogStatus (uint32array) arg = [] datagram.addUint16(len(arg) << 2) for i in arg: datagram.addUint32(int(i)) #setCogCount (uint32array) arg = [] datagram.addUint16(len(arg) << 2) for i in arg: datagram.addUint32(int(i)) #setCogRadar(uint8array) arg = [] datagram.addUint16(len(arg)) for i in arg: datagram.addUint8(int(i)) #setBuildingRadar(uint8array) arg = [] datagram.addUint16(len(arg)) for i in arg: datagram.addUint8(int(i)) #setCogLevels(uint8array) arg = [0, 0, 0, 0] datagram.addUint16(len(arg)) for i in arg: datagram.addUint8(int(i)) #setCogTypes(uint8array) arg = [0, 0, 0, 0] datagram.addUint16(len(arg)) for i in arg: datagram.addUint8(int(i)) #setCogParts (uint32array) arg = [0, 0, 0, 0] datagram.addUint16(len(arg) << 2) for i in arg: datagram.addUint32(int(i)) #setCogMerits(uint16array) arg = [0, 0, 0, 0] datagram.addUint16(len(arg) << 1) for i in arg: datagram.addUint16(int(i)) datagram.addUint32(0) #setHouseId #setQuests (uint32array) arg = [] datagram.addUint16(len(arg) << 2) for i in arg: datagram.addUint32(int(i)) #setQuestHistory(uint16array) arg = [] datagram.addUint16(len(arg) << 1) for i in arg: datagram.addUint16(int(i)) datagram.addUint8(0) #setRewardHistory 1 #setRewardHistory 2(uint16array) arg = [] datagram.addUint16(len(arg) << 1) for i in arg: datagram.addUint16(int(i)) datagram.addUint8(1) #setQuestCarryLimit datagram.addInt16(0) #setCheesyEffect 1 datagram.addUint32(0) #setCheesyEffect 2 datagram.addUint32(0) #setCheesyEffect 3 datagram.addUint8(0) #setPosIndex #setFishCollection 1(uint8array) arg = [] datagram.addUint16(len(arg)) for i in arg: datagram.addUint8(int(i)) #setFishCollection 2(uint8array) arg = [] datagram.addUint16(len(arg)) for i in arg: datagram.addUint8(int(i)) #setFishCollection 3(uint16array) arg = [] datagram.addUint16(len(arg) << 1) for i in arg: datagram.addUint16(int(i)) datagram.addUint8(20) #setMaxFishTank #setFishTank 1(uint8array) arg = [] datagram.addUint16(len(arg)) for i in arg: datagram.addUint8(int(i)) #setFishTank 2(uint8array) arg = [] datagram.addUint16(len(arg)) for i in arg: datagram.addUint8(int(i)) #setFishTank 3(uint16array) arg = [] datagram.addUint16(len(arg) << 1) for i in arg: datagram.addUint16(int(i)) datagram.addUint8(1) #setFishingRod #setFishingTrophies(uint8array) arg = [] datagram.addUint16(len(arg)) for i in arg: datagram.addUint8(int(i)) #setFlowerCollection 1(uint8array) arg = [] datagram.addUint16(len(arg)) for i in arg: datagram.addUint8(int(i)) #setFlowerCollection 2(uint8array) arg = [] datagram.addUint16(len(arg)) for i in arg: datagram.addUint8(int(i)) #setFlowerBasket 1(uint8array) arg = [] datagram.addUint16(len(arg)) for i in arg: datagram.addUint8(int(i)) #setFlowerBasket 2(uint8array) arg = [] datagram.addUint16(len(arg)) for i in arg: datagram.addUint8(int(i)) datagram.addUint8(25) #setMaxFlowerBasket #setGardenTrophies(uint8array) arg = [] datagram.addUint16(len(arg)) for i in arg: datagram.addUint8(int(i)) datagram.addUint8(1) #setShovel datagram.addUint32(0) #setShovelSkill datagram.addUint8(1) #setWateringCan datagram.addUint32(0) #setWateringCanSkill datagram.addUint32(0) #setPetID datagram.addUint8(0) #setPetTutorialDone datagram.addUint8(0) #setFishBingoTutorialDone datagram.addUint8(0) #setFishBingoMarkTutorialDone datagram.addInt8(0) #setKartBodyType datagram.addInt8(0) #setKartBodyColor datagram.addInt8(0) #setKartAccessoryColor datagram.addInt8(0) #setKartEngineBlockType datagram.addInt8(0) #setKartSpoilerType datagram.addInt8(0) #setKartFrontWheelWellType datagram.addInt8(0) #setKartBackWheelWellType datagram.addInt8(0) #setKartRimType datagram.addInt8(0) #setKartDecalType datagram.addUint32(100) #setTickets datagram.addUint8(0) #setKartingHistory 1 datagram.addUint8(0) #setKartingHistory 2 datagram.addUint8(0) #setKartingHistory 3 datagram.addUint8(0) #setKartingHistory 4 datagram.addUint8(0) #setKartingHistory 5 datagram.addUint8(0) #setKartingHistory 6 datagram.addUint8(0) #setKartingHistory 7 datagram.addUint8(0) #setKartingHistory 8 datagram.addUint8(0) #setKartingHistory 9 datagram.addUint8(0) #setKartingHistory 10 datagram.addUint8(0) #setKartingHistory 11 datagram.addUint8(0) #setKartingHistory 12 datagram.addUint8(0) #setKartingHistory 13 datagram.addUint8(0) #setKartingHistory 14 datagram.addUint8(0) #setKartingHistory 15 datagram.addUint8(0) #setKartingHistory 16 datagram.addUint8(0) #setKartingTrophies 1 datagram.addUint8(0) #setKartingTrophies 2 datagram.addUint8(0) #setKartingTrophies 3 datagram.addUint8(0) #setKartingTrophies 4 datagram.addUint8(0) #setKartingTrophies 5 datagram.addUint8(0) #setKartingTrophies 6 datagram.addUint8(0) #setKartingTrophies 7 datagram.addUint8(0) #setKartingTrophies 8 datagram.addUint8(0) #setKartingTrophies 9 datagram.addUint8(0) #setKartingTrophies 11 datagram.addUint8(0) #setKartingTrophies 11 datagram.addUint8(0) #setKartingTrophies 12 datagram.addUint8(0) #setKartingTrophies 13 datagram.addUint8(0) #setKartingTrophies 14 datagram.addUint8(0) #setKartingTrophies 15 datagram.addUint8(0) #setKartingTrophies 16 datagram.addUint8(0) #setKartingTrophies 17 datagram.addUint8(0) #setKartingTrophies 18 datagram.addUint8(0) #setKartingTrophies 19 datagram.addUint8(0) #setKartingTrophies 20 datagram.addUint8(0) #setKartingTrophies 21 datagram.addUint8(0) #setKartingTrophies 22 datagram.addUint8(0) #setKartingTrophies 23 datagram.addUint8(0) #setKartingTrophies 24 datagram.addUint8(0) #setKartingTrophies 25 datagram.addUint8(0) #setKartingTrophies 26 datagram.addUint8(0) #setKartingTrophies 27 datagram.addUint8(0) #setKartingTrophies 28 datagram.addUint8(0) #setKartingTrophies 29 datagram.addUint8(0) #setKartingTrophies 30 datagram.addUint8(0) #setKartingTrophies 31 datagram.addUint8(0) #setKartingTrophies 32 datagram.addUint8(0) #setKartingTrophies 33 datagram.addUint32(0) #setKartingPersonalBest 1 datagram.addUint32(0) #setKartingPersonalBest 2 datagram.addUint32(0) #setKartingPersonalBest 3 datagram.addUint32(0) #setKartingPersonalBest 4 datagram.addUint32(0) #setKartingPersonalBest 5 datagram.addUint32(0) #setKartingPersonalBest 6 datagram.addUint32(0) #setKartingPersonalBest2 1 datagram.addUint32(0) #setKartingPersonalBest2 2 datagram.addUint32(0) #setKartingPersonalBest2 3 datagram.addUint32(0) #setKartingPersonalBest2 4 datagram.addUint32(0) #setKartingPersonalBest2 5 datagram.addUint32(0) #setKartingPersonalBest2 6 datagram.addUint32(0) #setKartingPersonalBest2 7 datagram.addUint32(0) #setKartingPersonalBest2 8 datagram.addUint32(0) #setKartingPersonalBest2 9 datagram.addUint32(0) #setKartingPersonalBest2 10 datagram.addUint32(0) #setKartingPersonalBest2 11 datagram.addUint32(0) #setKartingPersonalBest2 12 #setKartAccessoriesOwned [16] datagram.addInt8(0) datagram.addInt8(0) datagram.addInt8(0) datagram.addInt8(0) datagram.addInt8(0) datagram.addInt8(0) datagram.addInt8(0) datagram.addInt8(0) datagram.addInt8(0) datagram.addInt8(0) datagram.addInt8(0) datagram.addInt8(0) datagram.addInt8(0) datagram.addInt8(0) datagram.addInt8(0) datagram.addInt8(0) #setCogSummonsEarned arg = [] datagram.addUint16(len(arg)) for i in arg: datagram.addUint8(int(i)) datagram.addUint8(0) #setGardenStart #setGolfHistory [18] datagram.addUint16(0) datagram.addUint16(0) datagram.addUint16(0) datagram.addUint16(0) datagram.addUint16(0) datagram.addUint16(0) datagram.addUint16(0) datagram.addUint16(0) datagram.addUint16(0) datagram.addUint16(0) datagram.addUint16(0) datagram.addUint16(0) datagram.addUint16(0) datagram.addUint16(0) datagram.addUint16(0) datagram.addUint16(0) datagram.addUint16(0) datagram.addUint16(0) #setPackedGolfHoleBest [18] datagram.addUint8(0) datagram.addUint8(0) datagram.addUint8(0) datagram.addUint8(0) datagram.addUint8(0) datagram.addUint8(0) datagram.addUint8(0) datagram.addUint8(0) datagram.addUint8(0) datagram.addUint8(0) datagram.addUint8(0) datagram.addUint8(0) datagram.addUint8(0) datagram.addUint8(0) datagram.addUint8(0) datagram.addUint8(0) datagram.addUint8(0) datagram.addUint8(0) #setGolfCourseBest datagram.addUint8(0) datagram.addUint8(0) datagram.addUint8(0) datagram.addUint8(0) #setPinkSlips datagram.addUint8(0) #setNametagStyle self.cw.send(datagram, connection) elif msgType == CLIENT_SET_WISHNAME: #print dgi avId = dgi.getUint16() unknown = dgi.getString() pendingName = dgi.getString() print pendingName divide = pendingName.split(' ') lenStr = len(divide) s = 0 while s != lenStr: nameCheck = divide[s] s += 1 with open ("TewtowBlacklist.txt", "r") as badWordFile: data=badWordFile.readlines() for word in data: chrList = list(word) if chrList.count('\n') == 1: chrList.remove('\n') badWord = ''.join(chrList) if nameCheck == badWord: print 'Bad name detected, are you trying to get banned?' datagram = PyDatagram() datagram.addUint16(CLIENT_SET_WISHNAME_RESP) datagram.addUint32(avId) datagram.addUint16(0) datagram.addString('NO') datagram.addString('NO') datagram.addString('') message = PyDatagram() message.addUint16(CLIENT_SYSTEM_MESSAGE) message.addString('Sorry, That name is not allowed.') self.cw.send(message, connection) else: datagram = PyDatagram() datagram.addUint16(CLIENT_SET_WISHNAME_RESP) datagram.addUint32(avId) datagram.addUint16(0) datagram.addString('NO') datagram.addString('') datagram.addString('NO') self.cw.send(datagram, connection) elif msgType == CLIENT_OBJECT_LOCATION: doId = dgi.getUint32() parentId = dgi.getUint32() zoneId = dgi.getUint32() print 'Network :: Location -> (%d, %d, %d)' % (doId, parentId, zoneId) if zoneId == 2000: #DistributedMickey datagram = PyDatagram() datagram.addUint16(CLIENT_CREATE_OBJECT_REQUIRED_OTHER_RESP) datagram.addUint32(316000000) #parentId datagram.addUint32(2) #zoneId #datagram.addUint16(83) datagram.addUint16(65) datagram.addUint32(433103088) datagram.addString("a") datagram.addString("a") datagram.addInt16(0) self.cw.send(datagram, connection) if zoneId == 1000: datagram = PyDatagram() datagram.addUint16(CLIENT_CREATE_OBJECT_REQUIRED_OTHER_RESP) datagram.addUint32(316000000) #parentId datagram.addUint32(2) #zoneId #datagram.addUint16(83) datagram.addUint16(108) datagram.addUint32(433103088) datagram.addString("DockedEast") datagram.addInt16(100) self.cw.send(datagram, connection) if zoneId == 5000: ''' datagram = PyDatagram() datagram.addUint16(CLIENT_CREATE_OBJECT_REQUIRED_OTHER_RESP) datagram.addUint32(316000000) #parentId datagram.addUint32(2) #zoneId datagram.addUint16(68) datagram.addUint32(433103088) datagram.addString("a") datagram.addString("a") datagram.addInt16(0) self.cw.send(datagram, connection) ''' #self.cw.send(datagram, connection) if zoneId == 2000: pass '''#message = PyDatagram() #message.addUint16(CLIENT_SYSTEM_MESSAGE) #message.addString('Surprised? I thought so. :P') #self.cw.send(message, connection) datagram = PyDatagram() datagram.addUint16(CLIENT_CREATE_OBJECT_REQUIRED_OTHER_RESP) datagram.addUint32(316000000) #parentId datagram.addUint32(2) #zoneId #datagram.addUint16(83) datagram.addUint16(65) datagram.addUint32(433103088) datagram.addString("b") datagram.addString("a") datagram.addInt16(0) self.cw.send(datagram, connection)''' if zoneId == 3000: datagram = PyDatagram() datagram.addUint16(CLIENT_CREATE_OBJECT_REQUIRED_OTHER_RESP) datagram.addUint32(316000000) #parentId datagram.addUint32(2) #zoneId #datagram.addUint16(83) datagram.addUint16(79) datagram.addUint32(433103089) datagram.addString("a") datagram.addString("a") datagram.addInt16(0) self.cw.send(datagram, connection) datagram = PyDatagram() datagram.addUint16(CLIENT_GET_STATE_RESP) self.cw.send(datagram, connection) else: self.notify.warning('Got a datagram %d; but could not handle it.' % msgType)