Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

[Tutorial] как писать свои скрипты и использовать чужие в Ppc

-

Rising Force Online

- Уязвимости, баги, читы и статьи по RF Online.

Ответ
 
Опции темы
Старый 16.07.2008, 21:39   #1
 Разведчик
Аватар для ExE
 
ExE скоро будет известенExE скоро будет известенExE скоро будет известенExE скоро будет известен
Регистрация: 23.05.2008
Сообщений: 43
Популярность: 306
Сказал(а) спасибо: 35
Поблагодарили 80 раз(а) в 23 сообщениях
 
По умолчанию [Tutorial] как писать свои скрипты и использовать чужие в Ppc

PPC имеет 2 встроенных скрипт-движка: WPS и FS (FastScript). Обучаться будем на примере WPS.

Для начала я расскажу как вообще подгружать скрипты:
1) Открываем P-C панель
2) Переходим на вкладку ScriptTester
3) Переключаемся на скрипт-движок WPS
4) Пишем свой скрипт или вставляем чужой
5) Нажимаем *Script Run*
6) Если скрипт-движок не обнаружил ошибок в коде, то будет выдано примерно следующее:
Код:

.running {WPS text script} 16.09.2007 15:37:51
.end (time: 0ms.)

7) Теперь жмем Save, чтобы сохранить скрипт
8) Переходим на вкладку Servers/Scripts
9) Выбираем заданное условие выбора скриптов (в нашем случае это должно быть правило с названием RFOnline.ru)
9) Выбираем свободный слот для привязки скрипта к правилу (для каждого правила может быть привязано до 3х скриптов)
10) Нажимаем [...] - Файл скрипта
11) Выбираем скрипт, который мы сохранили

Если вы хотите изменить скрипт в процессе его работы, то:
1) Переходим на вкладку Links Online
2) Выбираем текущее соединение
3) Нажимаем Редактировать скрипты онлайн
4) Изменяем скрипт
5) Нажимаем кнопку Write, чтобы обновить скрипт в памяти. Если мы накосячили в процессе редактирования и хотим вернуть исходный скрипт из памяти, то для этого существует кнопка Read.

Узнать больше можно тут:
_http://allcheats.ru/showthread.php?t=2983

Чтобы потренироваться, выкладываю скрипт, который управляется из общего чата и отправляет сообщение в общий чат от любого ника:
Код:

// RF Online ::: Отправка сообщений в общий чат от любого ника by Mastermind
//
// Использование:
// Написать в общий чат следующее сообщение: msg [ник, от имени которого отправляем сообщение] [сообщение]
if (not _gFromServ) and copy(_gBuff,3,2) = HStr('02 02') then begin
i := 6;
while BufToHex(_gBuff[i]) <> '20' do i := i + 1;
i := i + 3;
if copy(_gBuff,i,4) = HStr('6D 73 67 20') then begin
i := i + 4;
nick := '';
while BufToHex(_gBuff[i]) <> '20' do begin
nick := nick + BufToHex(_gBuff[i]);
i := i + 1;
end;
i := i + 1;
msg := '';
while BufToHex(_gBuff[i]) <> '00' do begin
msg := msg + BufToHex(_gBuff[i]);
i := i + 1;
end;
st := nick + '203A20' + msg;
len := inttohex(length(st)/2);
st := '0202' + len + st + '00';
_gOutBuff := HPck(st);
end;
end;

Построчные комментарии к скрипту:
Код:

// Входящий пакет
// 29 00 | 02 02 | 23 | 5B D2 F0 E8 E0 F0 E8 E9 5D 4D 61 73 74 65 72 6D 69 6E 64 20 3A 20 6D 73 67 20 47 4D 20 48 65 6C 6C 6F 21 | 00

// Начало скрипта
// Если пакет не от сервера (т.е. от клиента) и, начиная с 3его байта, 2 байта имеют значение 02 02 (т.е. пакет типа 02 02 - сообщение в общий чат), тогда...
if (not _gFromServ) and copy(_gBuff,3,2) = HStr('02 02') then begin

// Присваиваем переменной i значение 6. Переменная i будет выступать в качестве некого указателя на конкретный байт пакета, т.е. сейчас наш указатель установлен на байт 5B
i := 6;

// Пока 16тиричное значение i-ого байта входящего пакета не равно 20 = [пробел] смешаем указатель вправо на единицу, т.е. после выполнения цикла указатель будет иметь значение 25 и расположен на байте 20
while BufToHex(_gBuff[i]) <> '20' do i := i + 1;

// Смещаем указатель на 3 позиции вправо, т.е. i = 28, и устанавливаем его на байт 6D
i := i + 3;

// Если с 28 байта четыре последующих байта имеют значение 6D 73 67 20 = msg[пробел], тогда...
if copy(_gBuff,i,4) = HStr('6D 73 67 20') then begin

// i = 32, текущий байт = 47
i := i + 4;

// Присваиваем переменной nick пустую строку
nick := '';

// Пока 16тиричное значение i-ого байта входящего пакета не равно 20 = [пробел] ...
while BufToHex(_gBuff[i]) <> '20' do begin

// Пристыковываем справа к строке nick 16тиричное значение i-ого байта
nick := nick + BufToHex(_gBuff[i]);

// Увеличиваем i на единицу
i := i + 1;

// Конец цикла, nick = 47 4D
end;

// Указатель находиться на 33 позиции входящего пакета, а именно на байте 20. Смещаем указатель на следующий байт (48).
i := i + 1;

// Присваиваем переменной msg пустую строку
msg := '';

// Пока 16тиричное значение i-ого байта входящего пакета не равно 00 = нуль-байт ...
while BufToHex(_gBuff[i]) <> '00' do begin

// Пристыковываем справа к строке nick 16тиричное значение i-ого байта
msg := msg + BufToHex(_gBuff[i]);

// Увеличиваем i на единицу
i := i + 1;

// Конец цикла, msg = 48 65 6C 6C 6F 21
end;

// Присваиваем переменной st строку-сообщение, передаваемое в чат - 47 4D | 20 3A 20 | 48 65 6C 6C 6F 21
st := nick + '203A20' + msg;

// Определяем длину строки-сообщения, переводим ее в 16тиричную систему и присваиваем это значение переменной len
len := inttohex(length(st)/2);

// Добавляем тип пакета слева (02 02) и нуль-байт справа (00). st = 02 02 | 0B | 47 4D | 20 3A 20 | 48 65 6C 6C 6F 21 | 00
st := '0202' + len + st + '00';

// Добавляем 2 байта размера, собираем пакет и помещаем его в выходной буфер
_gOutBuff := HPck(st);

// Конец условия
end;
// Конец скрипта
end;

// Исходящий пакет
// 11 00 | 02 02 | 0B | 47 4D 20 3A 20 48 65 6C 6C 6F 21 | 00
  Ответить с цитированием
7 пользователя(ей) сказали cпасибо:
-(NY)- (16.07.2008), Danilk (11.12.2008), Растаман (17.07.2008), gimmepinK (17.07.2008), Hotohori (17.07.2008), Leo_ня (29.07.2008), Zhyk (17.07.2008)
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипты для Рудокопа Chopa Архив уязвимостей 1 16.07.2008 16:32
Как читерить/использовать баги что б не спалится? Roleenn Rising Force Online 46 13.07.2008 18:06
[Packets] Блокируем свой акк (офф) Koman Rising Force Online 2 29.06.2008 01:52
[Packets] Писать в приват от любого ника Letum Архив уязвимостей 0 12.05.2008 21:29
[Программа] Замена стандартных клавиш на свои DeadHeretic Rising Force Online 0 24.04.2008 17:00

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 12:00.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net