Показать сообщение отдельно
Старый 14.03.2010, 19:29   #24
Пользователь
 
Регистрация: 19.02.2010
Сообщений: 49
Сказал Спасибо: 1
Имеет 35 спасибок в 12 сообщенях
Vilson пока неопределено
По умолчанию

Цитата:
Сообщение от 0rfin Посмотреть сообщение
Еще откуда брать значение макс ЦП? в пакете UserInfo его нет
Точно нет? А это тогда что такое?

delphi Код:
procedure UserInfo; var   i, tmpCharObjectId: integer;   tmpMyName: stringbegin   tmpCharObjectId:=ReadD(18);       if CharObjectId=0 then CharObjectId:=tmpCharObjectId;   case tmpCharObjectId of   CharObjectId:   begin     MyCorX:=ReadD(2);    MyCorY:=ReadD(6);    MyCorZ:=ReadD(10);    i:=22;    tmpMyName:=ReadS(i);       i:=i+48;    MaxHP:=ReadD(i);    CurHP:=ReadD(i);    MaxMP:=ReadD(i);    CurMP:=ReadD(i);    MaxCP:=ReadD(655);     CurCP:=ReadD(659);          end;                    end;

Только сразу предпреждаю что отсюда ты возьмешь только начальные значения, а потом отслеживай StatsUpdate. Из моего пвп-скрипта:
delphi Код:
procedure StatsUpdate; var   i, tmpMaxHP, tmpCurHP, tmpMaxMP, tmpCurMP, tmpMaxCP, tmpCurCP, tmpCharObjectId :integer; begin   tmpCharObjectId:=ReadD(2);        if (tmpCharObjectId<>CharObjectId) then Exit;   for i:=0 to ReadD(6)-1 do     case pck[i*8+10] of       #$09: tmpCurHP:=ReadD(i*8+14);       #$0A: tmpMaxHP:=ReadD(i*8+14);       #$0B: tmpCurMP:=ReadD(i*8+14);       #$0C: tmpMaxMP:=ReadD(i*8+14);       #$21: tmpCurCP:=ReadD(i*8+14);       #$22: tmpMaxCP:=ReadD(i*8+14);     end;         if (tmpMaxHP<>0) then MaxHP:=tmpMaxHP;    if (tmpCurHP<>0) then CurHP:=tmpCurHP;    if (tmpMaxCP<>0) then MaxCP:=tmpMaxCP;     if (tmpCurCP<>0) then CurCP:=tmpCurCP;           if (tmpMaxMP<>0) then MaxMP:=tmpMaxMP;    if (tmpCurMP<>0) then CurMP:=tmpCurMP;    if (BSOEAutoUse) and (BSOEAmount>1) and (CurHP<>0) and (not TimerBSOE.Enabled) and (CurHP<((MaxHP*BSOEUsePercent)/100)) then    begin     UseItem(MyName, BSOEObjectId);     TimerBSOE.Enabled:=True;       end;              if (PotsAutoUse) then   begin    if (GCPAutoUse) and (GCPAmount>1) and (not TimerGCP.Enabled) and (CurCP<((MaxCP*GCPUsePercent)/100)) then     begin      UseItem(MyName, GCPObjectId);     TimerGCP.Enabled:=True                 end;       if (QHPAutoUse) and (QHPAmount>1) and (CurHP<>0) and (not TimerQHP.Enabled) and (CurHP<((MaxHP*QHPUsePercent)/100)) then    begin     UseItem(MyName, QHPObjectId);     TimerQHP.Enabled:=True                 end;                  if (GHPAutoUse) and (GHPAmount>1) and (CurHP<>0) and (not TimerGHP.Enabled) and (CurHP<((MaxHP*GHPUsePercent)/100)) then    begin            UseItem(MyName, GHPObjectId);     TimerGHP.Enabled:=True;           end;             if (MPAutoUse)   and (MPAmount>1) and (not TimerMP.Enabled) and (CurMP<((MaxMP*MPUsePercent)/100))  then    begin        UseItem(MyName, MPObjectId);     TimerMP.Enabled:=True;           end;              end;              end;

Последний раз редактировалось Vilson, 14.03.2010 в 19:40.
Vilson вне форума   Ответить с цитированием