예제 #1
0
 public AddGold(Champion richMan, Unit died, float gold) : base(PacketCmdS2C.PKT_S2C_AddGold, richMan.getNetId())
 {
     buffer.Write(richMan.getNetId());
     if (died != null)
     {
         buffer.Write(died.getNetId());
     }
     else
     {
         buffer.Write((int)0);
     }
     buffer.Write(gold);
 }
예제 #2
0
 public HeroSpawn2(Champion p) : base(PacketCmdS2C.PKT_S2C_ObjectSpawn, p.getNetId())
 {
     buffer.fill(0, 15);
     buffer.Write((byte)0x80); // unk
     buffer.Write((byte)0x3F); // unk
     buffer.fill(0, 13);
     buffer.Write((byte)3); // unk
     buffer.Write((int)1); // unk
     buffer.Write((float)p.getX());
     buffer.Write((float)p.getY());
     buffer.Write((float)0x3F441B7D); // z ?
     buffer.Write((float)0x3F248DBB); // Rotation ?
 }
예제 #3
0
 public LevelUp(Champion c) : base(PacketCmdS2C.PKT_S2C_LevelUp, c.getNetId())
 {
     buffer.Write(c.getStats().getLevel());
     buffer.Write(c.getSkillPoints());
 }
예제 #4
0
        public EnterVisionAgain(Champion c) : base(PacketCmdS2C.PKT_S2C_ObjectSpawn, c.getNetId())
        {
            buffer.Write((short)0); // extraInfo
            buffer.Write((byte)0); //c.getInventory().getItems().size(); // itemCount?
                                    //buffer.Write((short)7; // unknown

            /*
            for (int i = 0; i < c.getInventory().getItems().size(); i++) {
               ItemInstance* item = c.getInventory().getItems()[i];

               if (item != 0 && item.getTemplate() != 0) {
                  buffer.Write((short)item.getStacks();
                  buffer.Write((short)0; // unk
                  buffer.Write((int)item.getTemplate().getId();
                  buffer.Write((short)item.getSlot();
               }
               else {
                  buffer.fill(0, 7);
               }
            }
            */

            buffer.fill(0, 10);
            buffer.Write((float)1.0f);
            buffer.fill(0, 13);

            buffer.Write((byte)2); // Type of data: Waypoints=2
            buffer.Write((int)Environment.TickCount); // unk

            List<Vector2> waypoints = c.getWaypoints();

            buffer.Write((byte)((waypoints.Count - c.getCurWaypoint() + 1) * 2)); // coordCount
            buffer.Write(c.getNetId());
            buffer.Write((byte)0); // movement mask; 1=KeepMoving?
            buffer.Write(MovementVector.targetXToNormalFormat(c.getX()));
            buffer.Write(MovementVector.targetYToNormalFormat(c.getY()));
            for (int i = c.getCurWaypoint(); i < waypoints.Count; ++i)
            {
                buffer.Write(MovementVector.targetXToNormalFormat(waypoints[i].X));
                buffer.Write(MovementVector.targetXToNormalFormat(waypoints[i].Y));
            }
        }
예제 #5
0
 public ChampionRespawn(Champion c) : base(PacketCmdS2C.PKT_S2C_ChampionRespawn, c.getNetId())
 {
     buffer.Write(c.getX());
     buffer.Write(c.getY());
     buffer.Write(c.getZ());
 }
예제 #6
0
        public SpawnParticle(Champion owner, GameObjects.Target t, string particle, int netId) : base(PacketCmdS2C.PKT_S2C_SpawnParticle, owner.getNetId())
        {
            buffer.Write((short)1); // number of particles
            buffer.Write(owner.getChampionHash());
            buffer.Write(RAFManager.getInstance().getHash(particle));
            buffer.Write((int)0x00000020); // flags ?
            buffer.Write((int)0); // unk
            buffer.Write((short)0); // unk
            buffer.Write((short)1); // number of targets ?
            buffer.Write(owner.getNetId());
            buffer.Write(netId); // Particle net id ?
            buffer.Write(owner.getNetId());

            if (t.isSimpleTarget())
                buffer.Write((int)0);
            else
                buffer.Write((t as GameObject).getNetId());

            buffer.Write((int)0); // unk

            for (var i = 0; i < 3; ++i)
            {

                buffer.Write((short)((t.getX() - MAP_WIDTH) / 2));
                buffer.Write(50.0f);
                buffer.Write((short)((t.getY() - MAP_HEIGHT) / 2));
            }

            buffer.Write((int)0); // unk
            buffer.Write((int)0); // unk
            buffer.Write((int)0); // unk
            buffer.Write((int)0); // unk
            buffer.Write(1.0f); // unk

        }
예제 #7
0
 public ChampionDeathTimer(Champion die) : base(ExtendedPacketCmd.EPKT_S2C_ChampionDeathTimer, die.getNetId())
 {
     buffer.Write(die.getRespawnTimer() / 1000.0f); // Respawn timer, float
 }
예제 #8
0
        public ChampionDie(Champion die, Unit killer, int goldFromKill) : base(PacketCmdS2C.PKT_S2C_ChampionDie, die.getNetId())
        {
            buffer.Write(goldFromKill); // Gold from kill?
            buffer.Write((short)0);
            if (killer != null)
                buffer.Write(killer.getNetId());
            else
                buffer.Write((int)0);

            buffer.Write((short)0);
            buffer.Write((short)7);
            buffer.Write(die.getRespawnTimer() / 1000.0f); // Respawn timer, float
        }
예제 #9
0
 public SwapItems(Champion c, byte slotFrom, byte slotTo) : base(PacketCmdS2C.PKT_S2C_SwapItems, c.getNetId())
 {
     buffer.Write((byte)slotFrom);
     buffer.Write((byte)slotTo);
 }
예제 #10
0
 public BuyItemAns(Champion actor, ItemInstance item) : base(PacketCmdS2C.PKT_S2C_BuyItemAns, actor.getNetId())
 {
     buffer.Write((int)item.getTemplate().getId());
     buffer.Write((byte)item.getSlot());
     buffer.Write((byte)item.getStacks());
     buffer.Write((byte)0); //unk or stacks => short
     buffer.Write((byte)0x40); //unk
 }
예제 #11
0
 public static void notifySetCooldown(Champion c, byte slotId, float currentCd, float totalCd)
 {
     var cd = new SpawnParticle.SetCooldown(c.getNetId(), slotId, currentCd, totalCd);
     PacketHandlerManager.getInstace().broadcastPacket(cd, Channel.CHL_S2C);
 }