[Не решено] - AttackForce

Pups

New member
На всем известном сервере HF x100 (название могу отправить в PM), не удаётся реализовать атаку "дружественных" целей. (Paty mates, pets)
Попробовал все способы (как мне показалось исходя из документации L2Helper).

  1. Client.Attack() - атакует только "свободно атакуемые" цели;
  2. Client.UseAction(UserActions.Attack, true) - вообще закрывает окно с клиентом игры (возможно особенность сервера);
  3. Пакеты:
    Поймал пакет атаки (для примера - "Id=1 ExId=0 Buffer=EA7F131094F10000E040FFFFCBF3FFFF02");
    Разобрал его (для понимания, что куда и зачем):
    Код:
    var rd = packet.GetReader();
    var ObjectId = rd.ReadD();  // Object Id
    var Location_X = rd.ReadD();// Location X
    var Location_Y = rd.ReadD();// Location Y
    var Location_Z = rd.ReadD();// Location Z
    var AttackFlag = rd.ReadC();// Attack Flag (0 - attack, 1 - shift, 2 - attack force)
    На основе этого упаковал нужный мне пакет и отправил Client.SendToServer(MyPacket);
Реакции нет никакой (даже на обычную атаку), хотя при отладке через консоль, пакет "ручного" нажатия на действие "Attack" с зажатым "CTRL" и мой пакет полностью идентичны.
Затем, решил проверить ответ сервера (через подписку ServerPacket(...)) на мой пакет и на "ручное" нажатие и заметил, что ответы отличаются.

При "Ручном" нажатии ответ:
"Id=1F ExId=0 Buffer="

При отправке моего пакета ответ:
"Id=1F ExId=НАБОР_БАЙТОВ Buffer="


Помогите разобраться пожалуйста, что я делаю не так.

Upd:
Код:
using System;
using System.Linq;
using System.Collections.Generic;
using NewWidget.Core;
using NewWidget.Core.Native;
using NewWidget.Core.Scripting;
using NewWidget.Core.Network;

public class Script : ScriptBase {

    public override void OnStart() {
        base.OnStart();
   
        Enabled = true;
   
        BindKey(System.Windows.Forms.Keys.F2, OnKeyPressed);
   
        ClientPacket(pack => pack.Id == 0x01, OnClientPacket);
   
        ServerPacket(pack => pack.Id == 0x1F, OnServerPacket);
    }
 
 
    void OnKeyPressed()
    {
        // Отправка собственного пакета
 
        Packet pack = new Packet(0x01, 0x00);
        var Writer = pack.GetWriter();
        Writer.WriteD(Me.Target.ObjectId);
        Writer.WriteD(Me.Location.X);
        Writer.WriteD(Me.Location.Y);
        Writer.WriteD(Me.Location.Z);
        Writer.WriteC(0x00);// 0x00 - attack, 0x01 - shift+attack, 0x02 - ctrl+attack
   
        Client.SendToServer(pack);
    }
 
    void OnClientPacket(Packet pack)
    {
        Console.WriteLine("------CLIENT------");
        Console.WriteLine(String.Format("Full: {0}", pack));
        Console.WriteLine("------------------");
 
        var rd = pack.GetReader();
        var ObjectId = rd.ReadD();  // Target object Id
        var X = rd.ReadD();            // Location X
        var Y = rd.ReadD();            // Location Y
        var Z = rd.ReadD();            // Location Z
        var AttackFlag = rd.ReadC();// Attack Flag (0 - attack, 1 - shift, 2 - attack force)
   
        Console.WriteLine(String.Format("Object ID: {0}", ObjectId));
        Console.WriteLine(String.Format("Location X: {0}", X));
        Console.WriteLine(String.Format("Location Y: {0}", Y));
        Console.WriteLine(String.Format("Location Z: {0}", Z));
        Console.WriteLine(String.Format("AttackFlag: {0}", AttackFlag));
   
        Console.WriteLine("------------------");
        Console.WriteLine(" ");
    }
 
    void OnServerPacket(Packet pack)
    {
        Console.WriteLine("------SERVER------");
        Console.WriteLine(String.Format("Full: {0}", pack));
        Console.WriteLine("------------------");
        Console.WriteLine(" ");
    }
}


Вывод:
Код:
// Отправка пакета
------CLIENT------
Full: Id=1 ExId=0 Buffer=5E774B1241C80100162E010075F5FFFF00
------------------
Object ID: 306935646
Location X: 116801
Location Y: 77334
Location Z: -2699
AttackFlag: 0
------------------

Ответ Server: Id=1F ExId=FF Buffer=
(получаю разные ExId)

--------------------------------------------------------------------------------------

// Используем ingame Attack
------CLIENT------
Full: Id=1 ExId=0 Buffer=5E774B1241C80100162E010075F5FFFF00
------------------
Object ID: 306935646
Location X: 116801
Location Y: 77334
Location Z: -2699
AttackFlag: 0
------------------

Ответ Server: Id=1F ExId=0 Buffer=
(стабильно ExId=0)
 
Последнее редактирование:

Pups

New member
Я не понимаю, не работает, что за бред =(

Код

Код:
Packet pack = new Packet(0x01);
pack.GetWriter()
.WriteD(Me.Target.ObjectId)
.WriteD(Me.Location.X)
.WriteD(Me.Location.Y)
.WriteD(Me.Location.Z)
.WriteC(2);// 0x00 - attack, 0x01 - shift+attack, 0x02 - ctrl+attack
        
Client.SendToServer(pack);
 
Я не понимаю, не работает, что за бред =(

Код

Код:
Packet pack = new Packet(0x01);
pack.GetWriter()
.WriteD(Me.Target.ObjectId)
.WriteD(Me.Location.X)
.WriteD(Me.Location.Y)
.WriteD(Me.Location.Z)
.WriteC(2);// 0x00 - attack, 0x01 - shift+attack, 0x02 - ctrl+attack
       
Client.SendToServer(pack);
если там аа или смарт, по спамь любую клавишу
 
Не понял тебя. Там же не клавиша, а действие именно.
спроси у ребятишек, как пользоваться софтом на серверах с защитой с аа/sg.
у тебя для начало, без ctrl атачит свободно атакующую цель? если у тебя и без ctrl не бьет, то попробуй включив скрипт по клацать по пробелу допустим
 
  • Like
Реакции: Pups

Pups

New member
спроси у ребятишек, как пользоваться софтом на серверах с защитой с аа/sg.
у тебя для начало, без ctrl атачит свободно атакующую цель? если у тебя и без ctrl не бьет, то попробуй включив скрипт по клацать по пробелу допустим
Мне негде спрашивать, кроме данного форума =).
Я еще хотел тебе сказать большое спасибо за попытки помочь мне!!!


По делу:
Я попробовал, у меня пакетами вообще никак не реагирует на атаку. На пробел клацал, но не понимаю, что должен заметить при этом.
Client.Attack() работает на свободно атакуемую цель, хоть убей не пойму, кааааак!?
 
Мне негде спрашивать, кроме данного форума =).
Я еще хотел тебе сказать большое спасибо за попытки помочь мне!!!


По делу:
Я попробовал, у меня пакетами вообще никак не реагирует на атаку. На пробел клацал, но не понимаю, что должен заметить при этом.
Client.Attack() работает на свободно атакуемую цель, хоть убей не пойму, кааааак!?

это скр? если да. там вроде уже как год это не работает. :D sorry
 
Сверху