Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

Автоматические сообщения

-

Боты, скрипты и прочий софт для Aion

- Весь софт по Aion, скрипты и боты для игры

Ответ
 
Опции темы
Старый 17.06.2011, 16:12   #1
 Пехотинец
Аватар для CyberCrime'r
 
CyberCrime'r на правильном пути
Регистрация: 14.03.2011
Сообщений: 59
Популярность: 38
Сказал(а) спасибо: 17
Поблагодарили 13 раз(а) в 9 сообщениях
 
По умолчанию Автоматические сообщения

Приветствую! решил написать скрипт на автоматическую посылку в чат, например в мировой, на продажу или покупку ( на ваше усмотрение ).
Теперь внимательно: скрипт будет не полный, остальные части вы должны будете доделать сами, я постараюсь доходчиво объяснить.

Первое, что нам понадобится это - присвоить имя нашему соеденению.
Это очень легко делается:
Разворачиваем пнх ( L2ph ), во вкладке: "Дополнительно" пишем такое:
Код:
begin
SetName('Ваш ник');
end.
И нажимаем: "Выполнить скрипт".

[Ссылки могут видеть только зарегистрированные пользователи. ]

Далее идем в раздел "Автоматизация" --> "Скрипты". ( Ctrl + E )
Создаем скрипт и пишем там такое:
Код:
//Скрипт на сообщение в чат by CyberCryme'r
const
name='CyberCrimer'; 
var
    Timer:TTimer;
    TimerMyMsgs:byte;
procedure Init;
begin
    TimerMyMsgs:=1;
    Timer:=TTimer.Create(nil);
    Timer.OnTimer:=@OnTimer;
    Timer.enabled:=false;
    Timer.interval:=1;
end;

procedure Free;
begin
    Timer.free;
end;


procedure OnTimer(Sender: TObject);
    begin
        buf:=HStr('Вот сюда'); //Сообщение в чат
        SendToServerEx(name); 
        Timer.interval:=120000; //Таймер посылки пакета через интервал 120000 - миллисекунд - это: 2 минуты
    end;

begin
    if FromClient and (pck=HStr('Вот сюда')) and (ConnectName=name) then //Пакет активирующий скрипт/таймер ( сообщение на старт )
    begin 
        Timer.enabled:=true; 
        pck:='';  
    end;
    if FromClient and (pck=HStr('Вот сюда')) and (ConnectName=name) then  //Пакет дезавтивирующий скрипт/таймер ( сообщение стоп )
    begin
        Timer.enabled:=false; 
        pck:='';  
    end;
end.
Этот скрипт расчитан на одно сообщение в чат.
В этом скрипте как может показаться, есть лишняя глобальная переменная - это TimerMyMsgs:byte;
Но это сделано для того, что бы можно было без тотальных изменений добавить больше одного сообщения, ну об этом позже...

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

Код:
const
name='CyberCrimer'; //Вместо моего ника, нужное имя
После займемся вставкой наших пакетов.
Чтобы скрипт посылал сообщение, нам надо написать его в чат и словить пакет, далее вставить его:

Код:
procedure OnTimer(Sender: TObject);
    begin
        buf:=HStr('Вот сюда'); //Сообщение в чат
        SendToServerEx(name); 
    end;
После нам надо словить пакеты на активацию/дезактивацию скрипта/таймера.
Вы можете ловить какие угодно пакеты: эмоций; действий; команд в чат.
Лично я выбрал команды в чат. Итак, что бы активировать скрипт нам надо словить определенный пакет, например это будет сообщение в ""общий чат"" такого вида: "/старт", пишем слово, ловим пакет и вставляем его:

Код:
begin
    if FromClient and (pck=HStr('Вот сюда')) and (ConnectName=name) then //Пакет активирующий скрипт/таймер ( сообщение на старт )
    begin 
        Timer.enabled:=true; 
        pck:='';  
    end;
Тоже самое делаем с пакетом дезактивации, пишем в ""общий чат"" слово: "/стоп", ловим пакет и вставляем его:

Код:
    if FromClient and (pck=HStr('Вот сюда')) and (ConnectName=name) then  //Пакет дезавтивирующий скрипт/таймер ( сообщение стоп )
    begin
        Timer.enabled:=false; 
        pck:='';
Теперь для выполнения данного скрипта нужно его отметить галочкой в списке скриптов и он автоматически скомпилируется и выполнится.
Теперь в игре пишем "/старт" в общий чат и видим, что сообщение послалось, следующее сообщение будет послано через 2 минуты, это можно изменить тут:

Код:
procedure OnTimer(Sender: TObject);
    begin
        buf:=HStr('Вот сюда'); //Сообщение в чат
        SendToServerEx(name); 
        Timer.interval:=120000; //Таймер посылки пакета через интервал 120000 - миллисекунд - это: 2 минуты
    end;
Там где Timer.interval:=120000; меняем 120000 на большее или меньшее время, время в миллисекундах ( 1 секунда = 1000 миллисекунд )
Перед тем как исправить обязательно снемите галочку в списке скриптов.

Добавлено через 2 минуты
Теперь сделаем 2 и больше сообщений в чат.
Для этого в самом скрипте нужно всего лишь добавить конструкцию case в процедуру таймера.

Там где у нас:

Код:
procedure OnTimer(Sender: TObject);
    begin
        buf:=HStr('Вот сюда'); //Сообщение в чат
        SendToServerEx(name); 
        Timer.interval:=120000; //Таймер посылки пакета через интервал 120000 - миллисекунд - это: 2 минуты
    end;
Напишем так:

Код:
procedure OnTimer(Sender: TObject);
begin
case TimerMyMsgs of 
    1:
    begin
        buf:=HStr('');
        SendToServerEx(name);  //первое сообщение
        Inc(TimerMyMsgs);
    end; 
    2:   
    begin
        buf:=HStr('');
        SendToServerEx(name);    //второе сообщение
        Inc(TimerMyMsgs);
    end; 
    3:
    begin
        buf:=HStr('');
        SendToServerEx(name);    //третье сообщение
        TimerMyMsgs:=1; //возвращает процедуру к первому действию
        Timer.interval:=120000; // задает интервал между выполнением действий/посылки сообщений
    end;
end;
end;
Можно делать и больше сообщений, главное чтоб вконце процедуры посылки пакета было:

Код:
Inc(TimerMyMsgs);
А в конце последнего сообщение было:

Код:
TimerMyMsgs:=1;
Timer.interval:=120000;
==================
В принципе все, надеюсь все понятно. Удачи

Последний раз редактировалось CyberCrime'r; 17.06.2011 в 16:14. Причина: Добавлено сообщение
  Ответить с цитированием
Пользователь сказал cпасибо:
Ap4uk (17.06.2011)
Старый 17.06.2011, 19:48   #2
 Разведчик
Аватар для react666
 
react666 никому не известный тип
Регистрация: 24.05.2011
Сообщений: 5
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Автоматические сообщения

ну и зачем столько гемороя, если можно юзать для этого макросы?
  Ответить с цитированием
Старый 17.06.2011, 20:04   #3
 Пехотинец
Аватар для CyberCrime'r
 
CyberCrime'r на правильном пути
Регистрация: 14.03.2011
Сообщений: 59
Популярность: 38
Сказал(а) спасибо: 17
Поблагодарили 13 раз(а) в 9 сообщениях
 
По умолчанию Re: Автоматические сообщения

для тебя это геморой, для меня это дело 1й минуты...и потом чтоб не жать на эти геморойные макросы, я качаюсь бегаю, не парюсь и жду ПМов например и т.д., если тебе тема не нужна уйди из нее и не надо разводить флуд
  Ответить с цитированием
Старый 17.06.2011, 20:39   #4
 Сержант
Аватар для Furydose
 
Furydose скоро будет известенFurydose скоро будет известенFurydose скоро будет известен
Регистрация: 10.09.2010
Сообщений: 127
Популярность: 233
Сказал(а) спасибо: 13
Поблагодарили 99 раз(а) в 42 сообщениях
 
По умолчанию Re: Автоматические сообщения

А не легче отпечатать один раз и поставить пакет на часики?
  Ответить с цитированием
Ответ

Метки
скрипт, скрипт на сообщения, скрипт на флуд, сообщения


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Информация] Автоматические ивенты [Foter] Perfect World 0 23.04.2011 13:37
Технические работы. Kozlopoper1 Общение и обсуждение, архив Point Blank 6 23.04.2010 15:30
[Информация] Магические мечи(что,на что ломается) ДолбаныйPWшник Статьи, квесты и описания по Perfect World 4 22.04.2010 16:42

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

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

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