Esempio n. 1
0
 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")
Esempio n. 2
0
 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)