Логотип игрового форума RF-Cheats.ru    
Новости онлайн игр Правила форума Чёрный рынок Реклама и привилегии Гаранты Арбитраж

Регистрация Бан-лист Сообщество ПОПУЛЯРНОЕ
Вернуться   RF-Cheats.ru - форум читеров и ботоводов > > > >

Пакетный уровень RFO / WPF-скрипты

: Обсуждение пакетов, способа отсылки/редактирования пакетов и багов на их основе. Технически говоря - обсуждение сетевого протокола RF.
Читы и обход фроста для RF Online без хайдаБоты и читы для Perfect World бесплатно без хайдаМоды и читы для World of Tanks (WoT) бесплатно без хайдаМоды и читы для Armored Warfare бесплатно без хайдаБоты и читы для DOTA 2 бесплатно без хайдаБоты и читы для Black Desert Online бесплатно без хайдаЧиты на ArcheAge бесплатно без хайдаЧиты для Warface бесплатно без хайдаВзлом ВКонтакте и ОдноклассниковСписок разделов со всеми играмиЧиты для онлайн игр




Ответ
 
Опции темы
Старый 27.02.2010, 05:48   #1
broveymimo
Эксперт
Аватар для broveymimo
OFFLINE
Регистрация: 30.03.2009
Возраст: 45
Сообщений: 905
Благодарностей:
839 всего
Мнения: + 2039
Репутация: 2468

[WPF Script] CombatLoger - пишем ход поединков в лог файл


Оригинальная идея https://www.rf-cheats.ru/forum/showthread.php?t=49246

Переработано и добавлено от себя возможность видеть ники персонажей, а не просто их id.

Для работы скрипта вам необходимо предварительно создать пустой текстовый файл CombatLog.txt в папке /custom.

Запуск скрипта осуществляется командой /CombatLoger START 1

PHP код:
// Скрипт CombatLoger v1.0 (c) broveymimo 2010? оригинальный скрипт(c) BlowUminD
// Запуск              /CombatLog START 0 <- Дополнительная информация
// Останов             /CombatLog STOP

var startstopnameCharnamebodypartCharIDdmgmsgatkmsg1atkmsg2atkmsg3FNameStatCharIDstr string;
    
PIDlestartlstoplnamelii1 integer;
    
flagflag2 boolean;
    
MoveToSLSLcharID TStringList;

Procedure MsgInfo(msg string);
begin
     gSys
.EnSendC(FormatPck('%hcdacha',***91;$0A02,05,0,'***91;!***93;'+FStr(16),Length(msg) + 2,$203A,msg+#0***93;));
     
MoveToSL.Add(msg);
end;

Procedure GetCombatMsg(cid string;id1 string;id2 string;bp integer;dmg :integer;tp integer);
begin
    
case (bpof
        
$00bodypart:='торс';
        $
01bodypart:='ноги';
        $
02bodypart:='руки';
        $
03bodypart:='ступни';
        $
04bodypart:='голову';
        else 
bodypart:='другое место';
    
end;

    case (
tpof
         
$00begin
                   atkmsg1
:=' ударa ';
                   
atkmsg2:=' удар ';
                   
atkmsg3:=' урона ';
              
end;
         $
01begin
                   atkmsg1
:=' скилла ';
                   
atkmsg2:=' скилл ';
                   
atkmsg3:=' урона скиллом ';
              
end;
         $
02:  begin
                   atkmsg1
:=' магического каста ';
                   
atkmsg2:=' магический каст ';
                   
atkmsg3:=' магического урона ';
              
end;
         $
03begin
                   atkmsg1
:=' выстрела ';
                   
atkmsg2:=' выстрел ';
                   
atkmsg3:=' урона выстрелом ';
              
end;
    
end;

    if 
StrCmp(id1,cidthen
        begin
            
case (dmgof
                
$0000dmgmsg:=GetNamefromSL(id2)+' с легкостью увернулся от вашего'+atkmsg1+'в '+bodypart;
                
$FFFEdmgmsg:=GetNamefromSL(id2)+' заблокировал ваш'+atkmsg2+'в '+bodypart;
                
$FFFFdmgmsg:=GetNamefromSL(id2)+' увернулся от вашего'+atkmsg1+'в '+bodypart;
                else 
dmgmsg:='Вы нанесли '+IntToStr(dmg)+atkmsg3+'в '+bodypart+' '+GetNamefromSL(id2);
            
end;
            
MsgInfo(dmgmsg);
        
end;

    if 
StrCmp(id2,cidthen
        begin
            
case (dmgof
                
$0000dmgmsg:='Вы с легкостью увернулись от'+atkmsg1+' '+GetNamefromSL(id1)+' в '+bodypart;
                
$FFFEdmgmsg:='Вы заблокировали'+atkmsg2+' '+GetNamefromSL(id1)+' в '+bodypart;
                
$FFFFdmgmsg:='Вы увернулись от'+atkmsg1+' '+GetNamefromSL(id1)+' в '+bodypart;
                else 
dmgmsg:='Вам нанесли '+IntToStr(dmg)+atkmsg3+' '+GetNamefromSL(id1)+'в '+bodypart;
            
end;
            
MsgInfo(dmgmsg);
        
end;
    if 
flag2 then
       begin
            
if not (StrCmp(id1,cid)) and not (StrCmp(id2,cid)) then
               begin
                    
case (dmgof
                         
$0000dmgmsg:=GetNamefromSL(id2)+' с легкостью увернулся от'+atkmsg1+GetNamefromSL(id1)+' в '+bodypart;
                         
$FFFEdmgmsg:=GetNamefromSL(id2)+' заблокировал'+atkmsg2+GetNamefromSL(id1)+' в '+bodypart;
                         
$FFFFdmgmsg:=GetNamefromSL(id2)+' увернулся от'+atkmsg1+GetNamefromSL(id1)+' в '+bodypart;
                         else 
dmgmsg:=GetNamefromSL(id1)+' нанес '+IntToStr(dmg)+atkmsg3+'в '+bodypart+' '+GetNamefromSL(id2);
                    
end;
                    
MsgInfo(dmgmsg);
               
end;
       
end;

end;

Procedure OnCreate;
begin
     MoveToSL
:=TStringList.create;
     
FNameStat:= _gCustomDir+'CombatLog.txt';
     
SLcharID:=TStringList.create;
     
le:=23;
     
start:='START';
     
startl:=length(start);
     
stop:='STOP';
     
stopl:=length(stop);
     
name:='CombatLog';
     
namel:=length(name);
     
flag:=false;
     
flag2:=false;
end;

Procedure OnDestroy;
begin
     MoveToSL
.free;
     
SLcharID.free;
end;

function 
GetNamefromSL(TargetID string) : string;
begin
     
For i:= 0 to SLcharID.Count-do
     
begin
          
if StrCmp(copy(SLcharID***91;i***93;,1,4),TargetIDthen Break
     
end;
     if  
not (StrCmp(copy(SLcharID***91;i***93;,1,4),TargetID)) then result:='моб' else
     
begin
          i1
:= 0;
          While 
GInt(SLcharID***91;i***93;,5+i1,1) <> do Inc(i1);
          
result:= copy(SLcharID***91;i***93;,5,i1);
     
end;
end;


BEGIN
     
if length(_gBuff) < 4 then exit;
     
PID := GInt(_gBuff,3,2);

     if (
_gFromServthen
     
case PID of

       
$0F01CharID:=copy(_gBuff,7,4);

       $
1F03begin
                   CharIDstr
:= copy(_gBuff,7,4);
                   
Charname:= copy(_gBuff,46,17);
                   
SLcharID.Add(CharIDstr+Charname);
              
end;
     
end;

     if 
not (_gFromServthen
     
case PID of

       
$2903: if FileExists(FNameStatthen
              begin
                   MoveToSL
.SaveToFile(FNameStat);
                   
MsgInfo('Успешно сохранено.');
              
end;

       $
0302begin
                   
if strcmp(copy(_gBuff,5,namel),name,) then
                   begin
                        
if strcmp(copy(_gBuff,le,startl),startthen
                        begin
                             flag
:=true;
                             
MsgInfo('CombatInformer запущен');
                        
end;
                        if 
strcmp(copy(_gBuff,le,stopl),stopthen
                        begin
                             flag
:=false;
                             
flag2:=false;
                             
MsgInfo('CombatInformer остановлен');
                        
end;
                        if 
strcmp(copy(_gBuff,(le+startl+1),1),'1'then
                        begin
                            flag2
:=true;
                            
MsgInfo('Дополнительная информация отображается');
                        
end;
                        if 
strcmp(copy(_gBuff,(le+startl+1),1),'0'then
                        begin
                            flag2
:=false;
                            
MsgInfo('Дополнительная информация отключена');
                        
end;
                        
gBlockPacket;
                   
end;
              
end;

     
end;
     if 
_gFromServ and flag then
     
case PID of
       
$0705begin
                  GetCombatMsg
(CharID,copy(_gBuff,6,4),copy(_gBuff,17,4),GInt(_gBuff,10,1),GInt(_gBuff,21,2),0);
              
end;
       $
0805begin
                  GetCombatMsg
(CharID,copy(_gBuff,6,4),copy(_gBuff,25,4),GInt(_gBuff,14,1),GInt(_gBuff,29,2),1);
              
end;
       $
0905begin
                  GetCombatMsg
(CharID,copy(_gBuff,6,4),copy(_gBuff,21,4),GInt(_gBuff,16,1),GInt(_gBuff,25,2),2);
              
end;
       $
7A05begin
                  GetCombatMsg
(CharID,copy(_gBuff,6,4),copy(_gBuff,20,4),$05,GInt(_gBuff,24,2),3);
              
end;
     
end;
END

Последний раз редактировалось broveymimo; 27.02.2010 в 05:55.


Мои скрипты: PMSpamer PVPHelper
Важны темы: Разбор пакетов
Реклама: Учебный центр - Best Profi, Днепропетровск
ЯД: 41001932890078
 
Ответить с цитированием
Сказали спасибо:
Недоступно (26.05.2012), teris (28.11.2011), Likelihood (24.08.2011), Недоступно (12.10.2010), Недоступно (03.10.2010), Dr. Cox (02.10.2010), Недоступно (02.10.2010), Недоступно (04.03.2010), Segel (03.03.2010), Недоступно (01.03.2010), Vishtar (27.02.2010), ANTI-SPY (27.02.2010)


Старый 27.02.2010, 05:58   #2
Warfaq
Освоившийся
Аватар для Warfaq
OFFLINE
Регистрация: 12.02.2010
Возраст: 33
Сообщений: 91
Благодарностей:
49 всего
Мнения: + 482
Репутация: 148

респект
 
Ответить с цитированием
Старый 27.02.2010, 14:30   #3
Vishtar
Лентяй!
Аватар для Vishtar
OFFLINE
Регистрация: 28.03.2009
Сообщений: 333
Благодарностей:
919 всего
Мнения: + 9269
Репутация: 2534

Респект выражается кнопкой спасибо)
 
Ответить с цитированием
Сказали спасибо:
Недоступно (26.05.2012)
Старый 02.10.2010, 22:11   #4
Andrew
Освоившийся
Аватар для Andrew
OFFLINE
Регистрация: 21.08.2007
Сообщений: 83
Благодарностей:
66 всего
Мнения: + 220
Репутация: 236

можно попросить сделать тоже самое как тут, тока без записи в лог файл? т.е. чтоб было как в "оригинальной идеии" тока с никами вместо id

 
Ответить с цитированием
Старый 03.10.2010, 20:57   #5
broveymimo
Эксперт
Аватар для broveymimo
OFFLINE
Регистрация: 30.03.2009
Возраст: 45
Сообщений: 905
Благодарностей:
839 всего
Мнения: + 2039
Репутация: 2468

а чем тебе мешает лог файл?


Мои скрипты: PMSpamer PVPHelper
Важны темы: Разбор пакетов
Реклама: Учебный центр - Best Profi, Днепропетровск
ЯД: 41001932890078
 
Ответить с цитированием
Старый 03.10.2010, 22:35   #6
Andrew
Освоившийся
Аватар для Andrew
OFFLINE
Регистрация: 21.08.2007
Сообщений: 83
Благодарностей:
66 всего
Мнения: + 220
Репутация: 236

ну как он может за 12ч+ разрастись ;)
а так удобная информация в чате будет =d

 
Ответить с цитированием
Старый 04.10.2010, 09:21   #7
broveymimo
Эксперт
Аватар для broveymimo
OFFLINE
Регистрация: 30.03.2009
Возраст: 45
Сообщений: 905
Благодарностей:
839 всего
Мнения: + 2039
Репутация: 2468

информация пишется в лог и в чат одновременно


Мои скрипты: PMSpamer PVPHelper
Важны темы: Разбор пакетов
Реклама: Учебный центр - Best Profi, Днепропетровск
ЯД: 41001932890078
 
Ответить с цитированием
Старый 21.11.2010, 18:05   #8
Andrew
Освоившийся
Аватар для Andrew
OFFLINE
Регистрация: 21.08.2007
Сообщений: 83
Благодарностей:
66 всего
Мнения: + 220
Репутация: 236

а можно попросить реализовать как идею - лог таких вещей как ядерка/шахидка/дебафы? было бы отличным дополнением :Р

 
Ответить с цитированием
Старый 02.08.2011, 23:34   #9
Likelihood
Подпольщик AA
Аватар для Likelihood
OFFLINE
Регистрация: 09.10.2009
Сообщений: 590
Благодарностей:
39 всего
Мнения: + 312
Репутация: 118
Отправить сообщение для Likelihood с помощью Skype™

Цитата:
Сообщение от broveymimo Посмотреть сообщение
Не работает ссылка на оригинальную идею.
 
Ответить с цитированием
Старый 27.04.2012, 14:35   #10
Teladi
Гость
Аватар для Teladi
Сообщений: n/a
Благодарностей:
0 всего

Классно, попробую
 
Ответить с цитированием Полученное нарушение
Ответ



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

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

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

Мир танков | Проект "Армата" | ArcheAge | Black Desert | РФ Онлайн | Айон | Майнкрафт | Браузерные игры
Элдер скролс | Р2 Онлайн | Реквием Онлайн | ПУБГ | Роял Квест | ГТА Санадреас | Контра | Дота 2
Мир кораблей | Лост Арк | Arma2 DayZ mod | The War Z | Карос: Начало | Tera Online
Читы для всех Онлайн-игр