Pastebin

New pastes are no longer accepted · Stats

Latest Pastes

no invince map poison

void Map::Warp()
 {
   PacketBuilder builder;
  UTIL_PTR_LIST_FOREACH(this->characters, Character, character)
   {
   Character *from = *character;
   from->AddRef();
   if(from->poisoned == true)
    {
   int amount = util::rand(2, 10);

   int limitamount = std::min(amount, int(from->hp));

   if(this->world->config["LimitDamage"])
    {
    amount = limitamount;
    }
    from->hp -= limitamount;

    builder.SetID(PACKET_CLOTHES, PACKET_REPLY);
    builder.AddShort(0);
    builder.AddShort(from->player->id);
    builder.AddThree(amount);
    builder.AddChar(from->direction);
    builder.AddChar(int(double(from->hp) / double(from->maxhp) * 100.0));
    builder.AddChar(from->hp == 0);

    if(from->InRange(*character))
    {
    character->player->client->SendBuilder(builder);
    }

          if(from->hp == 0)
           {
           int sm = from->SpawnMap();
           int sx = from->SpawnX();
           int sy =  from->SpawnY();

           from->PetTransfer();//if you dont have a pet system remove this line
           from->Warp(sm, sx, sy, WARP_ANIMATION_ADMIN);
           from->PetTransfer();//if you dont have a pet system remove this line
           from->hp = from->maxhp;

        if(from->x == sx && from->y == sy)
           {
        from->poisoned = false;
        builder.Reset();
        builder.SetID(PACKET_RECOVER, PACKET_PLAYER);
        builder.AddShort(from->hp);
        builder.AddInt(from->exp);
        builder.AddShort(from->tp);
        from->player->client->SendBuilder(builder);

        }
         break;
    }
           builder.Reset();
           builder.SetID(PACKET_RECOVER, PACKET_PLAYER);
           builder.AddShort(from->hp);
           builder.AddInt(from->exp);
           builder.AddShort(from->tp);

            from->player->client->SendBuilder(builder);

           }
      }
}