PDA

Просмотр полной версии : пакет в котором есть информация о ХП выделенного игрока


Rity
29.07.2008, 20:01
подскажите пожалуйста пакет в котором есть информация о ХП выделенного игрока, не юзера те себя а другого игрока
если такого нет
то каким образом показывают ХП программы типа L2Control

сервер С4, говорят что начиная с Т0 инфу о ХП сервер не отсылает..
как это можно реализовать посредством скрипта

xkor
29.07.2008, 20:08
StatusUpdate пакет, его ID не помню...

Rity
29.07.2008, 20:18
эм, в пакете:
0E=StatusUpdate:h(ObjectID)d(Attributes)

(h ObjectID: 0x4FD0878F
d Attributes: 2)
где есть инфа о ХП:confused:

опишите пожалуйста пакет
в какой строке ХП

у меня приходит пакет:
0E 7B 53 10 48 02 00 00 00 0A 00 00 00 4D 12 00 00 09 00 00 00 4D 12 00 00

metalFan
29.07.2008, 20:37
сервер не посылает инфу о хп противника никаким образом

Rity
29.07.2008, 20:46
сервер не посылает инфу о хп противника никаким образом
но что-то всетаки есть
раз l2control видит ХП таргета
и сервер С4 не Т0, а как до этого слышал что начиная с Т0 сервер перестал отсылать инфу о ХП противника

Добавлено через 6 минут
м длина у пактеа разная
есть и
0E 7C 54 20 48 04 00 00 00 09 00 00 00 80 0B 00 00 0A 00 00 00 80 0B 00 00 21 00 00 00 C0 05 00 00 22 00 00 00 C0 05 00 00

metalFan
29.07.2008, 21:24
оесть у тебя старая сборка ц4 на сервере? не могу ничем помочь:search:

Rity
29.07.2008, 21:55
да С4

NLObP
29.07.2008, 22:08
Можно взять в пакете
s0E=StatusUpdate:h(psize)c(ID)d(ObjectID)d(AttribC ount:For.0002)d(AttrID:Get.FSup)d(AttrValue)

Расшифровка AttrValue
function GetFSup(ar1 : integer) : string;
// внешняя ф-ция, вызывается не из скрипта, а по аргументу
// :Get.FSup - Status Update ID
begin
case ar1 of
01: result := 'Level'; 02: result := 'EXP'; 03: result := 'STR';
04: result := 'DEX'; 05: result := 'CON'; 06: result := 'INT';
07: result := 'WIT'; 08: result := 'MEN'; 09: result := 'cur_HP';
$0A: result := 'max_HP'; $0B: result := 'cur_MP'; $0C: result := 'max_MP';
$0D: result := 'SP'; $0E: result := 'cur_Load'; $0F: result := 'max_Load';
$11: result := 'P_ATK'; $12: result := 'ATK_SPD'; $13: result := 'P_DEF';
$14: result := 'Evasion'; $15: result := 'Accuracy'; $16: result := 'Critical'
$17: result := 'M_ATK'; $18: result := 'CAST_SPD'; $19: result := 'M_DEF';
$1A: result := 'PVP_FLAG'; $1B: result := 'KARMA'; $21: result := 'cur_CP';
$22: result := 'max_CP';
else result := '?'
end;
result := #2+result+#15;
end;;

ps: взято из wpp Sauron'а

Rity
29.07.2008, 22:48
спасибо большое

Добавлено через 11 минут
чета всеранво не пойму как узнать ХП
и выводилось к примеру в
procedure SendMsg(msg:string);
begin
buf:=#$4A;
WriteD(0);
WriteD(10);
WriteS('');
WriteS(msg);
SendToClient;
end;

те через этот пакет можно узнать и левел и ЦП..
как сделать что писался левел хп и цп в SendMsg:confused:

NLObP
29.07.2008, 23:04
спасибо большое

Добавлено через 11 минут
чета всеранво не пойму как узнать ХП
и выводилось к примеру в
procedure SendMsg(msg:string);
begin
buf:=#$4A;
WriteD(0);
WriteD(10);
WriteS('');
WriteS(msg);
SendToClient;
end;

те через этот пакет можно узнать и левел и ЦП..
как сделать что писался левел хп и цп в SendMsg:confused:

Из пакета StatusUpdate это можно узнать, при условии, что эти параметры изменяются, например ты бъешь чара, то в пакете будет приходить изменение HP, CP и возможно MP.

По второму вопросу. Сформируй строковую переменную msg и отсылай её.

Rity
29.07.2008, 23:17
допустим эта чась скрипта узнает координаты имя расса пол и тп..
if FromServer and (pck[1]=#$03) then
begin
I:=2;
X:=Readd(i);
Y:=ReadD(i);
Z:=ReadD(i);
I:=22;
Name:=ReadS(i);
RaceID:=ReadD(i);
SexID:=ReadD(i);
ClassID:=ReadD(i);
..

как подобнам способом узнать хп цп мп
if FromServer and (pck[1]=#$0E) then
begin
..
..
end;

NLObP
29.07.2008, 23:21
как подобнам способом узнать хп цп мп
Примерно так. По ObjectID узнавай чьи данные в этом пакете.

procedure TargetStatusUpdate; //обновление данных о цели
var
i: integer;
begin
for i:=0 to ReadD(6)-1 do
case pck[i*8+10] of
#$09: AttackerHP:=ReadD(i*8+14);
#$0A: AttackerMaxHP:=ReadD(i*8+14);
end;
end;

//************************************************** *************
procedure StatusUpdate; //обновление данных о себе
var
i: integer;
begin
for i:=0 to ReadD(6)-1 do
case pck[i*8+10] of
#$09: MyHP:=ReadD(i*8+14);
#$0A: MyMaxHP:=ReadD(i*8+14);
#$0B: MyMP:=ReadD(i*8+14);
#$0C: MyMaxMP:=ReadD(i*8+14);
end;
if (MyMaxHP<>0) then //вычисляем процентное соотношение хп
begin
PercentHP:=strtoint(EditHealt.Text);
NeedBuy:=strtoint(EditLure.Text);
but:=Round((MyMaxHP/100)*PercentHP); //при каком количестве хп юзать бутылку лечения
end;
end;

begin
...
if FromServer and (pck[1]=#$0E) then begin
//msg.Lines.Add('S>Пакет StatusUpdate #$0E');
if (MyOID=ReadD(2)) then StatusUpdate; //обновление информации о хп
if (AttackerOID=ReadD(2)) then TargetStatusUpdate; //обновление информации о хп
end;

...
end.

xkor
29.07.2008, 23:23
NLObP, СР и МР там приходят только для твоего чара.., да и НР цели приходит только при выделении...

Rity
30.07.2008, 00:11
ура!
СПАСИБО ОГРОМНОЕ
:yahoo:

еше бы кто помог с http://coderx.ru/showthread.php?t=606

PanAm
30.07.2008, 03:52
Вот мой скриптик
Только исходник DLL я где-то потерял, завтра на работе посмотрю :)

PanAm
30.07.2008, 04:00
тут вроде нехватает только НР сопартийцев...

Rity
30.07.2008, 04:56
удобно
посмотри пожалуйста

еше такой бы панелькой узнавать во что одет таргет

metalFan
30.07.2008, 11:51
Rity, есть такая старенькая программа hingame
она показывает мапу хп противника (если оступно на сервере) шмот и п деф:cool:

Rity
30.07.2008, 15:29
ингейм очень давно не работает

PanAm
30.07.2008, 16:07
Вот, версия немного другая, но работать должна...

PanAm
30.07.2008, 16:10
hingame Неработает? Ну поправь исходники....

metalFan
30.07.2008, 17:16
Rity, на ц4? вроде работал на ц5-6 не пашет 100% :))

RoZ
30.07.2008, 17:16
hingame Неработает? Ну поправь исходники....
Внимание!!! Антивирусы обнаруживают Троян внутри. NOD32 ругается на Win32/PSW.OnLineGames, Касперский на Trojan-PSW.Win32.Nilage.bzw , Dr.Web на BackDoor.Muma. Во избежание, перекомпилируйте inject.dll и убедитесь что закладок нет.

xkor
30.07.2008, 17:34
RoZ, троян в исходнике????, ты сам понял что сказал?
там просто inside.dll уже скомпиленый, его можно удалить и скомпилить самому если пароное...

PanAm
30.07.2008, 17:38
Там в архиве inside.dll это примерно тоже самое, что и inject.dll в ПХ
Можете проверить исходники и перекомпилить...
А код для С5-С6 там изменить не сложно, хоть хинт и коряво пишет, но разобрать где идет декодирование и инициализация ключа можно.

RoZ
30.07.2008, 17:45
RoZ, троян в исходнике????, ты сам понял что сказал?
там просто inside.dll уже скомпиленый, его можно удалить и скомпилить самому если пароное...
Я параноик, и решил таки проверить.
http://www.kaspersky.ru/scanforvirusПроверенный файл: 5f8acda5(2).rar - Инфицирован
5f8acda5(2).rar/inside.dll - инфицирован Trojan-PSW.Win32.Nilage.bzw

http://online.us.drweb.com/5f8acda5(2).rar/inside.dll infected with BackDoor.Muma
Каждый решает сам что с этим делать :) моё дело предупредить. Меня неломает компилить, так надёжнее.

Jes
30.07.2008, 19:45
у меня приходит пакет:
0E 7B 53 10 48 02 00 00 00 0A 00 00 00 4D 12 00 00 09 00 00 00 4D 12 00 00


cmd: 0E
ObjId: 7B 53 10 48
count:02 00 00 00
UpdId:0A 00 00 00 (MAX_HP)
Val: 4D 12 00 00
UpdId:09 00 00 00 (CUR_HP)
Val:4D 12 00 00

Jes
30.07.2008, 19:45
пакет приходит только для себя и членов пати

QaK
31.07.2008, 09:49
пакет приходит только для себя и членов патине-не, для всех во время таргета приходит.

metalFan
31.07.2008, 12:17
QaK, в ц4 или авообще?:(

QaK
31.07.2008, 12:19
QaK, в ц4 или авообще?c4 точно, остальное не тестировал.

metalFan
31.07.2008, 12:21
вот вот я уже испугался

xkor
31.07.2008, 15:31
с с1, с2, с3, с4, с5, с6 точно приходит)

metalFan
31.07.2008, 23:01
xkor, хп ИГРОКОВ???
пошел проверять:confused::(

PanAm
01.08.2008, 00:33
гы, во америку открыли :D

metalFan
01.08.2008, 00:42
а цп можно посмотреть? О_О

Rity
01.08.2008, 02:31
свое
а у таргетов тока КуррХП и МаксХП

Rity
03.08.2008, 18:58
Вот, версия немного другая, но работать должна...

нет, не работает
окношко в ней больше тока заметил но не рабочее

PanAm
03.08.2008, 20:42
нет, не работает
окношко в ней больше тока заметил но не рабочее
Просто версия другая, хотел чтоб еще показывала сопортийцев с их МП и ЦП, просто надо в скрипте все TargetUpdate заменить на TargetHPUpdate.

Rity
03.08.2008, 21:41
в какой дельфи открывать?
в 7ой чета не хочет

Professor
03.10.2008, 12:04
Я параноик, и решил таки проверить.
http://www.kaspersky.ru/scanforvirus
http://online.us.drweb.com/
Каждый решает сам что с этим делать :) моё дело предупредить. Меня неломает компилить, так надёжнее.
если не сложно, выложи плиз перекомпиленый тобой вариант l2phx