25.10.2020 | 14:10
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум L2edit.Ru » Lineage 2 » Java сервер » [Core] Дроп Итема
[Core] Дроп Итема
SurfacingДата: Воскресенье, 09.01.2011, 16:34 | Сообщение # 1
Surfacing
Группа: Постоянный
Сообщений: 40
Награды: 7
Репутация: 5
Статус: Offline
Люди помогите исправить код, мне надо чтобы итем падал а на пол около убитого в PvP игрока, а получилось сделать только рядом с собой, как исправить подскажи плиз Сборка L2JServer Frey
item.dropMe(null, getX(), getY(), getZ() );

загрузка наград ...
 
ReventonДата: Воскресенье, 09.01.2011, 17:28 | Сообщение # 2
Reventon
Группа: Постоянный
Сообщений: 523
Награды: 44
Репутация: 119
Статус: Offline
Чесно говоря не понял вопрос, сформулируй более понятно.

Lineage Eternal
загрузка наград ...
 
SurfacingДата: Воскресенье, 09.01.2011, 17:59 | Сообщение # 3
Surfacing
Группа: Постоянный
Сообщений: 40
Награды: 7
Репутация: 5
Статус: Offline
Короче я пытаюсь сделать конфиг, чтобы при убийстве в PvP c убитого падал итем на землю около его, но не могу разобраться как написать чтобы падал на землю около него ток разобрался как сделать чтобы падал около меня.
L2ItemInstance item = ItemTable.getInstance().createItem("Loot", PvpRewardItemId, PvpRewardItemAmmount, this, true);
item.dropMe(null, getX(), getY(), getZ() );

загрузка наград ...
 
ReventonДата: Воскресенье, 09.01.2011, 18:30 | Сообщение # 4
Reventon
Группа: Постоянный
Сообщений: 523
Награды: 44
Репутация: 119
Статус: Offline
Посмотри как сделано к примеру у мобов или РБ.

Lineage Eternal
загрузка наград ...
 
ReventonДата: Воскресенье, 09.01.2011, 18:32 | Сообщение # 5
Reventon
Группа: Постоянный
Сообщений: 523
Награды: 44
Репутация: 119
Статус: Offline
Либо пример возьми с дропа вещей с ПК.

Lineage Eternal
загрузка наград ...
 
SurfacingДата: Воскресенье, 09.01.2011, 18:46 | Сообщение # 6
Surfacing
Группа: Постоянный
Сообщений: 40
Награды: 7
Репутация: 5
Статус: Offline
Пытался не получилось, вот дали item.dropMe(null, getOwner().getX(), getOwner().getY(), getOwner().getZ() );
И сказали добавить дельту по всем 3 осям а ХЗ как это сделать:)
вот полный
L2ItemInstance item = ItemTable.getInstance().createItem("Loot", PvpRewardItemId, PvpRewardItemAmmount, this, true);
item.dropMe(null, getX(), getY(), getZ() );

загрузка наград ...

Сообщение отредактировал Surfacing - Воскресенье, 09.01.2011, 21:26
 
LestatДата: Воскресенье, 09.01.2011, 23:44 | Сообщение # 7
Lestat
Группа: Постоянный
Сообщений: 22
Награды: 1
Репутация: 0
Статус: Offline
Можешь попробовать так:
L2ItemInstance item = ItemTable.getInstance().createItem("Loot", PvpRewardItemId, PvpRewardItemAmmount, this, true);

int randDropLim = 70;
int newX = getX() + Rnd.get(randDropLim * 2 + 1) - randDropLim;
int newY = getY() + Rnd.get(randDropLim * 2 + 1) - randDropLim;
item.dropMe(null, newX, newY, getZ() );

чем больше randDropLim - тем дальше вещь может упасть... такой код в L2Attackable юзают))
загрузка наград ...

 
SurfacingДата: Воскресенье, 09.01.2011, 23:51 | Сообщение # 8
Surfacing
Группа: Постоянный
Сообщений: 40
Награды: 7
Репутация: 5
Статус: Offline
Спасибо сейчас попробую
загрузка наград ...
 
SurfacingДата: Понедельник, 10.01.2011, 00:02 | Сообщение # 9
Surfacing
Группа: Постоянный
Сообщений: 40
Награды: 7
Репутация: 5
Статус: Offline
Появилась дистанция, но все равно итем падает около меня, а не Убитого
загрузка наград ...
 
SurfacingДата: Понедельник, 10.01.2011, 00:05 | Сообщение # 10
Surfacing
Группа: Постоянный
Сообщений: 40
Награды: 7
Репутация: 5
Статус: Offline
Вот мб поможет полный код
Стандартный:
Code
/**
      * Increase the pvp kills count and send the info to the player
      *
      */
     public void increasePvpKills(L2Character target)
     {
         if (target instanceof L2PcInstance
                 && AntiFeedManager.getInstance().check(this, target))
         {
             // Add karma to attacker and increase its PK counter
             setPvpKills(getPvpKills() + 1);
              
              
             // Send a Server->Client UserInfo packet to attacker with its Karma and PK Counter
             sendPacket(new UserInfo(this));
             sendPacket(new ExBrExtraUserInfo(this));

          }
     }

Пытаюсь Сделать
Code
/**
   * Increase the pvp kills count and send the info to the player
   *
   */
  public void increasePvpKills(L2Character target)
  {
   if (target instanceof L2PcInstance
     && AntiFeedManager.getInstance().check(this, target))
   {
    // Add karma to attacker and increase its PK counter   
     setPvpKills(getPvpKills() + 1);
     if (Config.ALLOW_PVP_REWARD)
      {
      int PvpRewardItemId = (Config.PVP_REWARD_ITEM_ID);
      int PvpRewardItemAmmount = (Config.PVP_REWARD_ITEM_AMMOUNT);
      L2ItemInstance item = ItemTable.getInstance().createItem("Loot", PvpRewardItemId, PvpRewardItemAmmount, this, true);  
      int randDropLim = 70;  
      int newX = getX() + Rnd.get(randDropLim * 2 + 1) - randDropLim;  
      int newY = getY() + Rnd.get(randDropLim * 2 + 1) - randDropLim;  
      item.dropMe(null, newX, newY, getZ() );
      sendMessage("Вы получили награду за убийство в PVP.");
     
     
    // Send a Server->Client UserInfo packet to attacker with its Karma and PK Counter
    sendPacket(new UserInfo(this));
    sendPacket(new ExBrExtraUserInfo(this));

    }
  }
}

загрузка наград ...
 
LestatДата: Понедельник, 10.01.2011, 02:02 | Сообщение # 11
Lestat
Группа: Постоянный
Сообщений: 22
Награды: 1
Репутация: 0
Статус: Offline
Попробуй
Code

/**  
    * Increase the pvp kills count and send the info to the player  
    *  
    */  
   public void increasePvpKills(L2Character target)  
   {  
    if (target instanceof L2PcInstance  
      && AntiFeedManager.getInstance().check(this, target))  
    {  
     // Add karma to attacker and increase its PK counter    
      setPvpKills(getPvpKills() + 1);  
      if (Config.ALLOW_PVP_REWARD)  
       {  
       int PvpRewardItemId = (Config.PVP_REWARD_ITEM_ID);  
       int PvpRewardItemAmmount = (Config.PVP_REWARD_ITEM_AMMOUNT);  
       L2ItemInstance item = ItemTable.getInstance().createItem("Loot", PvpRewardItemId, PvpRewardItemAmmount, this, true);   
       int randDropLim = 70;   
       int newX = target.getX() + Rnd.get(randDropLim * 2 + 1) - randDropLim;   
       int newY = target.getY() + Rnd.get(randDropLim * 2 + 1) - randDropLim;   
       item.dropMe(null, newX, newY, target.getZ() );  
       sendMessage("Вы получили награду за убийство в PVP.");  
       
       
     // Send a Server->Client UserInfo packet to attacker with its Karma and PK Counter  
     sendPacket(new UserInfo(this));  
     sendPacket(new ExBrExtraUserInfo(this));  

     }  
   }  
}

Но мне кажется, что модифицировать L2PcInstance для каких-то локальных нужд - не очень хорошая идея wink
загрузка наград ...

 
SurfacingДата: Понедельник, 10.01.2011, 02:27 | Сообщение # 12
Surfacing
Группа: Постоянный
Сообщений: 40
Награды: 7
Репутация: 5
Статус: Offline
Урааа пашет спасибо тебе БОЛЬШОЕ
загрузка наград ...

Сообщение отредактировал Surfacing - Понедельник, 10.01.2011, 02:29
 
asasinnДата: Понедельник, 10.01.2011, 23:24 | Сообщение # 13
asasinn
Группа: Заблокированные
Сообщений: 453
Награды: 49
Репутация: -10000
Статус: Offline
НУ значит вопрос решон


загрузка наград ...
 
SurfacingДата: Вторник, 18.01.2011, 23:16 | Сообщение # 14
Surfacing
Группа: Постоянный
Сообщений: 40
Награды: 7
Репутация: 5
Статус: Offline
Вновь появилась проблема, как сделать чтобы при убийстве с 1 IP ПвП не давалось пробовал чёто не получилось
загрузка наград ...

Сообщение отредактировал Surfacing - Среда, 19.01.2011, 00:10
 
SurfacingДата: Вторник, 18.01.2011, 23:47 | Сообщение # 15
Surfacing
Группа: Постоянный
Сообщений: 40
Награды: 7
Репутация: 5
Статус: Offline
Посаветовали
getClient().getConnection().getInetAddress().getHostAddress()
Чёто не получилось

загрузка наград ...

Сообщение отредактировал Surfacing - Среда, 19.01.2011, 00:18
 
LestatДата: Четверг, 20.01.2011, 22:43 | Сообщение # 16
Lestat
Группа: Постоянный
Сообщений: 22
Награды: 1
Репутация: 0
Статус: Offline
как я понял, если у убитого и убийцы одинаковый ip?
загрузка наград ...
 
SurfacingДата: Четверг, 20.01.2011, 22:49 | Сообщение # 17
Surfacing
Группа: Постоянный
Сообщений: 40
Награды: 7
Репутация: 5
Статус: Offline
Quote (Lestat)
как я понял, если у убитого и убийцы одинаковый ip?

Именно так

загрузка наград ...
 
LestatДата: Четверг, 20.01.2011, 23:37 | Сообщение # 18
Lestat
Группа: Постоянный
Сообщений: 22
Награды: 1
Репутация: 0
Статус: Offline
попробуй так
Code
/**   
     * Increase the pvp kills count and send the info to the player   
     *   
     */   
    public void increasePvpKills(L2Character target)   
    {  
String playerHost = getClient().getConnection().getInetAddress().getHostAddress();
   String targetHost = target.getActingPlayer().getClient().getConnection().getInetAddress().getHostAddress() ;    
     if (target instanceof L2PcInstance   
       && AntiFeedManager.getInstance().check(this, target)
    &&getClient().getConnection().getInetAddress().getHostAddress().equals(target.getActingPlayer().getClient().getConnection().getInetAddress().g etHostAddress()))   
     {
   
      // Add karma to attacker and increase its PK counter     
       setPvpKills(getPvpKills() + 1);   
       if (Config.ALLOW_PVP_REWARD)   
        {   
        int PvpRewardItemId = (Config.PVP_REWARD_ITEM_ID);   
        int PvpRewardItemAmmount = (Config.PVP_REWARD_ITEM_AMMOUNT);   
        L2ItemInstance item = ItemTable.getInstance().createItem("Loot", PvpRewardItemId, PvpRewardItemAmmount, this, true);    
        int randDropLim = 70;    
        int newX = target.getX() + Rnd.get(randDropLim * 2 + 1) - randDropLim;    
        int newY = target.getY() + Rnd.get(randDropLim * 2 + 1) - randDropLim;    
        item.dropMe(null, newX, newY, target.getZ() );   
        sendMessage("Вы получили награду за убийство в PVP.");   
         
         
      // Send a Server->Client UserInfo packet to attacker with its Karma and PK Counter   
      sendPacket(new UserInfo(this));   
      sendPacket(new ExBrExtraUserInfo(this));   

      }   
    }   
}

но в таком случае у тебя не смогут нормально играть люди, которые выходят через один ip в инет... например, через прокси...

загрузка наград ...
 
LestatДата: Четверг, 20.01.2011, 23:40 | Сообщение # 19
Lestat
Группа: Постоянный
Сообщений: 22
Награды: 1
Репутация: 0
Статус: Offline
вместо
Code

&&getClient().getConnection().getInetAddress().getHostAddress().equals(target.getActingPlayer().getClient().getConnection().getInetAddress().g  etHostAddress())

надо

Code
&& !getClient().getConnection().getInetAddress().getHostAddress().equals(target.getActingPlayer().getClient().getConnection().getInetAddress(). g etHostAddress())

загрузка наград ...
 
asasinnДата: Пятница, 21.01.2011, 16:12 | Сообщение # 20
asasinn
Группа: Заблокированные
Сообщений: 453
Награды: 49
Репутация: -10000
Статус: Offline
Ответ получен, тема закрыта


загрузка наград ...
 
Форум L2edit.Ru » Lineage 2 » Java сервер » [Core] Дроп Итема
  • Страница 1 из 1
  • 1
Поиск: