def doNet(self): #if isServer: # checktimeouts() while simplenet.checkdata(): packet, peer = simplenet.nextpacket() if packet is None: break pType = packet[0] pData = packet[1] #print pType, pData if simplenet.isServer: cl = self.findclient(peer) if cl != None: cl.lastpackettime = 0 if pType=="join": cl = self.addClient(pData, peer) if cl is None: simplenet.sendto("joinfailed", "alreadyjoined?", peer) else: simplenet.sendto("yourein", "dosomethingcool", peer) elif cl is None: simplenet.sendto("whoyou", "i didnt get join message", peer) elif pType == "event": self.handleEvent(pData, cl) else:#client if pType=="gamestate": self.gamestate = pData self.clients = self.gamestate.clients self.walkers = self.clients for w in range(len(self.walkers)): if self.walkers[w].name == self.name: self.mywalker = self.walkers[w] elif pType=="boom": terrain.explode(pData[0], pData[1], pData[2], pData[3]) elif pType=="pastetex": terrain.pastesurfID(pData[0], pData[1], pData[2], pData[3], pData[4]) elif pType=="addtps": particles.addTextParticle(pData[0], pData[1], pData[2], pData[3], pData[4], pData[5]) elif pType=="addps": particles.addParticle(pData[0], pData[1], pData[2], pData[3], pData[4], pData[5], pData[6]) #print pData elif pType=="msg": #addmsg(pData[0], pData[1]) print(pData) elif pType=="whoyou": simplenet.sendserv("join", self.name) elif pType=="wakeup": simplenet.sendserv("keepalive", "dude")
def damage(self, amount,cause): if self.health < 0: return self.health-=amount cause.damagedealt+=amount if cause == self:self.damagedealt-=amount*2 particles.addTextParticle(self.x, self.y, 0.05, "-" + str(int(amount)), 130+amount,[1,0,0]) if self.health<0: cause.kills+=1 particles.addParticle(self.x, self.y, 0.4, "blood.png", 3.9, 15) self.die() if cause == self: self.kills-=2 particles.addTextParticle(cause.x, cause.y, 0.05, str(cause.kills), 300,[1,1,0]) #print self.name, self.kills, self.damagedealt menu.addLogText(self.name, "has", self.kills, " kills and has caused ", self.damagedealt, "damage") menu.addLogText(cause.name, "has", cause.kills, " kills and has caused ", cause.damagedealt, "damage") menu.addLogText(cause.name, "killed", self.name)