Пакет урона? - Страница 2 - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II

Lineage II
Дискуссии на тему создания, настройки и обслуживания серверов Lineage 2. При поддержке: Премиум услуги по рекламе

Ответ
Опции темы
Непрочитано 05.06.2012, 01:03   #11
Изгнанные

По умолчанию Re: Пакет урона?

кому интересно вот отображение урона
писалось быстро так что не обессудте
Код:
Index: /trunk/Lineage 2 Goddess of Destruction/gameserver/src/main/java/l2p/gameserver/serverpackets/StatusUpdate.java
===================================================================
--- /trunk/Lineage 2 Goddess of Destruction/gameserver/src/main/java/l2p/gameserver/serverpackets/StatusUpdate.java	(revision 3)
+++ /trunk/Lineage 2 Goddess of Destruction/gameserver/src/main/java/l2p/gameserver/serverpackets/StatusUpdate.java	(revision 103)
@@ -42,5 +42,11 @@
     public final static int MAX_CP = 0x22;
 
+    /**
+     * GOD отображение демага
+     */
+    public final static int DAMAGE = 0x23;
+
     private final int _objectId;
+    private int _playerId;
     private final List<Attribute> _attributes = new ArrayList<Attribute>();
 
@@ -54,7 +60,14 @@
         }
     }
+    public StatusUpdate(int objectId)
+    {
+        _objectId = objectId;
+        _playerId = 0;
+    }
 
-    public StatusUpdate(int objectId) {
+    public StatusUpdate(int objectId, int playerId)
+    {
         _objectId = objectId;
+        _playerId = playerId;
     }
 
@@ -68,6 +81,6 @@
         writeC(0x18);
         writeD(_objectId);
-        writeD(1); //хз че такое Наверно МП
-        writeD(1); // при 1 идет рег хп
+        writeD(_playerId);
+        writeD(0x01); //При 1 = рег ХП
         writeD(_attributes.size());
 
Index: /trunk/Lineage 2 Goddess of Destruction/gameserver/src/main/java/l2p/gameserver/serverpackets/SystemMessage.java
===================================================================
--- /trunk/Lineage 2 Goddess of Destruction/gameserver/src/main/java/l2p/gameserver/serverpackets/SystemMessage.java	(revision 81)
+++ /trunk/Lineage 2 Goddess of Destruction/gameserver/src/main/java/l2p/gameserver/serverpackets/SystemMessage.java	(revision 103)
@@ -15,4 +15,5 @@
     // d d (d S/d d/d dd)
     // |--------------> 0 - String 1-number 2-textref npcname (1000000-1002655) 3-textref itemname 4-textref skills 5-??
+    private static final int TYPE_DAMAGE = 16;
     private static final int TYPE_CLASS_NAME = 15;
     private static final int TYPE_SYSTEM_STRING = 13;
@@ -3257,4 +3258,10 @@
     }
 
+    public SystemMessage addDamage(Creature targetid, Creature attakerid, int damage)
+    {
+        args.add(new Arg(TYPE_DAMAGE, new int[] { targetid.getObjectId(), attakerid.getObjectId(), damage }));
+        return this;
+    }
+
     @Override
     protected final void writeImpl() {
@@ -3311,4 +3318,11 @@
                     break;
                 }
+                case TYPE_DAMAGE: {
+                    int[] attr = (int[]) e.obj;
+                    writeD(attr[0]); // target object id
+                    writeD(attr[1]); // attaker object id
+                    writeD(attr[2]); // damage
+                    break;
+                }
             }
         }
Index: /trunk/Lineage 2 Goddess of Destruction/gameserver/src/main/java/l2p/gameserver/model/Player.java
===================================================================
--- /trunk/Lineage 2 Goddess of Destruction/gameserver/src/main/java/l2p/gameserver/model/Player.java	(revision 101)
+++ /trunk/Lineage 2 Goddess of Destruction/gameserver/src/main/java/l2p/gameserver/model/Player.java	(revision 103)
@@ -2170,5 +2170,5 @@
             return;
 
-        StatusUpdate su = makeStatusUpdate(StatusUpdate.MAX_HP, StatusUpdate.MAX_MP, StatusUpdate.MAX_CP, StatusUpdate.CUR_HP, StatusUpdate.CUR_MP, StatusUpdate.CUR_CP);
+        StatusUpdate su = makeStatusUpdate(StatusUpdate.MAX_HP, StatusUpdate.MAX_MP, StatusUpdate.MAX_CP, StatusUpdate.CUR_HP, StatusUpdate.CUR_MP, StatusUpdate.CUR_CP, StatusUpdate.DAMAGE);
         sendPacket(su);
 
@@ -8404,12 +8404,12 @@
         if (crit)
             if (magic)
-                sendPacket(new SystemMessage(SystemMessage.MAGIC_CRITICAL_HIT).addName(this));
+                sendPacket(new SystemMessage(SystemMessage.MAGIC_CRITICAL_HIT).addName(this).addDamage(target,target,damage));
             else
-                sendPacket(new SystemMessage(SystemMessage.C1_HAD_A_CRITICAL_HIT).addName(this));
+                sendPacket(new SystemMessage(SystemMessage.C1_HAD_A_CRITICAL_HIT).addName(this).addDamage(target,target,damage));
 
         if (miss)
-            sendPacket(new SystemMessage(SystemMessage.C1S_ATTACK_WENT_ASTRAY).addName(this));
+            sendPacket(new SystemMessage(SystemMessage.C1S_ATTACK_WENT_ASTRAY).addName(this).addDamage(target,target,damage));
         else if (!target.isDamageBlocked())
-            sendPacket(new SystemMessage(SystemMessage.C1_HAS_GIVEN_C2_DAMAGE_OF_S3).addName(this).addName(target).addNumber(damage));
+            sendPacket(new SystemMessage(SystemMessage.C1_HAS_GIVEN_C2_DAMAGE_OF_S3).addName(this).addName(target).addNumber(damage).addDamage(target,target,damage));
 
         if (target.isPlayer()) {
@@ -8424,5 +8424,5 @@
     public void displayReceiveDamageMessage(Creature attacker, int damage) {
         if (attacker != this)
-            sendPacket(new SystemMessage(SystemMessage.C1_HAS_RECEIVED_DAMAGE_OF_S3_FROM_C2).addName(this).addName(attacker).addNumber((long) damage));
+            sendPacket(new SystemMessage(SystemMessage.C1_HAS_RECEIVED_DAMAGE_OF_S3_FROM_C2).addName(this).addName(attacker).addNumber((long) damage).addDamage(attacker,attacker,damage));
     }
 
Index: /trunk/Lineage 2 Goddess of Destruction/gameserver/src/main/java/l2p/gameserver/model/Creature.java
===================================================================
--- /trunk/Lineage 2 Goddess of Destruction/gameserver/src/main/java/l2p/gameserver/model/Creature.java	(revision 101)
+++ /trunk/Lineage 2 Goddess of Destruction/gameserver/src/main/java/l2p/gameserver/model/Creature.java	(revision 103)
@@ -78,4 +78,5 @@
 
 public abstract class Creature extends GameObject {
+
     public class MoveNextTask extends RunnableImpl {
         private double alldist, donedist;
@@ -879,6 +880,13 @@
                     su.addAttribute(field, getPvpFlag());
                     break;
+                case StatusUpdate.DAMAGE:
+                    su.addAttribute(field, (int) getCurrentHp() );
+                    break;
             }
         return su;
+    }
     }
Darvin вне форума Отправить сообщение для Darvin с помощью ICQ Отправить сообщение для Darvin с помощью Skype™ Ответить с цитированием
Сказали спасибо:
Непрочитано 07.06.2012, 10:30   #12
Герой

Автор темы (Топик Стартер) Re: Пакет урона?

А в каких случаях посылается пакет SystemMessage, а в каких StatusUpdate?

Насколько понимаю, SystemMessage сервер шлет в случае автоатаки и скилов(одновременно мы видим в чате сообщение), а StatusUpdate когда не объект действует ДоТ или наши скилы восстанавливающие CP/HP/MP.
__________________
C#, Delphi, Java, WMI, MSSQL, MySQL, Ruby(on Rails)
atukal вне форума Ответить с цитированием
Непрочитано 07.06.2012, 11:01   #13
Олдфаг

По умолчанию Re: Пакет урона?

а без етого невыжить никак? я конечно понимаю что для школяры полный екран жирных цифер ето круто.....
smeli вне форума Ответить с цитированием
Непрочитано 07.06.2012, 12:44   #14
Аватар для rage
Герой

По умолчанию Re: Пакет урона?

Цитата:
Сообщение от atukal Посмотреть сообщение
А в каких случаях посылается пакет SystemMessage, а в каких StatusUpdate?

Насколько понимаю, SystemMessage сервер шлет в случае автоатаки и скилов(одновременно мы видим в чате сообщение), а StatusUpdate когда не объект действует ДоТ или наши скилы восстанавливающие CP/HP/MP.
SystemMessage шлется когда перс наносит/получает урон, а StatusUpdate когда у моба меняется ХП (красная полоска).
rage вне форума Ответить с цитированием
Сказали спасибо:
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ON/OFF отображение урона на HF Escape Игровой клиент 14 04.04.2012 20:57
Вывод урона Божественного камня в чат Cheatkiller Серверная часть 2 14.01.2012 00:34
Отоброжение урона по центру Экрана Nastia Lineage II 8 25.05.2011 14:36
Пакет ExShowSeedMapInfo Dizband Lineage II 8 25.07.2010 14:10


© 2007–2020 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 22:02. Часовой пояс GMT +3.

Вверх