Esempio n. 1
0
 private void newGlobalItem(GroundItem item)
 {
     if (item == null)
     {
         return;
     }
     item = itemExists(item);
     if (item != null)
     {
         item.setGlobal(true);
         foreach (Player p in Server.getPlayerList())
         {
             if (p == null || (item.getDefinition().isPlayerBound() && !item.getOwner().Equals(p)))
             {
                 continue;
             }
             if (p.getLocation().withinDistance(item.getLocation(), 60))
             {
                 if (item.getOwner() != null)
                 {
                     p.getPackets().createGroundItem2(item);
                 }
                 else
                 {
                     p.getPackets().createGroundItem(item);
                 }
             }
         }
         if (!item.getDefinition().isPlayerBound())
         {
             item.setOwner(null);
         }
         GroundItem i = item;
         if (!item.isRespawn())
         {
             Event removeGlobalItemEvent = new Event(60000);
             removeGlobalItemEvent.setAction(() =>
             {
                 clearGlobalItem(i);
                 removeGlobalItemEvent.stop();
             });
             Server.registerEvent(removeGlobalItemEvent);
         }
     }
 }
Esempio n. 2
0
 public void pickupItem(Player p, int id, Location location)
 {
     GroundItem item = itemExists(location, id);
     if (item != null && p.getSprites().getPrimarySprite() == -1 && p.getSprites().getSecondarySprite() == -1)
     {
         if (item.getDefinition().isPlayerBound() && !item.getOwner().Equals(p))
         {
             return;
         }
         if (!p.getInventory().addItem(item.getItemId(), item.getItemAmount()))
         {
             return;
         }
         clearGlobalItem(item);
         if (item.isRespawn())
         {
             GroundItem i = item;
             Event itemRespawnEvent = new Event(60000);
             itemRespawnEvent.setAction(() =>
             {
                 GroundItem respawn = new GroundItem(i.getItemId(), i.getItemAmount(), i.getLocation(), null);
                 respawn.setRespawn(true);
                 respawn.setGlobal(true);
                 newGlobalItem(respawn);
                 itemRespawnEvent.stop();
             });
         }
     }
 }