Вернуться   CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг
Войти через OpenID

Скриптинг Форум посвещенный созданию скриптов для L2PacketHack

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 10.02.2008, 15:32   #231
Рыцарь
 
Аватар для Grinch
 
Регистрация: 29.02.2008
Сообщений: 928
Сказал Спасибо: 127
Имеет 130 спасибок в 93 сообщенях
Grinch пока неопределено
По умолчанию

впринципе работает :) ток работает после того как ИД свой получит а ет происходит не сразу после включения скрипта хм значит стоило нажраться что б ето понять с больной головой :) так как сделать так что б ИД побыстрей считывался наверное шмотку снять одеть стоит

Добавлено спустя 4 минуты 37 секунд:
ЗЫ и работает как то рандомно надо подумать :) ещё
Grinch вне форума   Ответить с цитированием
Старый 10.02.2008, 15:33   #232
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

чтоб пришел пакет UserInfo надо просто открыть и закрыть окно инвенторя в клиенте)
ЗЫ а чтоб это сам скрипт делал надо прост заставить его при запуске слать пакет запроса инвенторя, я его номер непомню, так что прост поймай его и шли когда нужно получить UserInfo
__________________
Я здесь практически не появляюсь!, Skype - ikskor
xkor вне форума   Ответить с цитированием
Старый 10.02.2008, 15:40   #233
Рыцарь
 
Аватар для Grinch
 
Регистрация: 29.02.2008
Сообщений: 928
Сказал Спасибо: 127
Имеет 130 спасибок в 93 сообщенях
Grinch пока неопределено
По умолчанию

кароче ясно терь бум думать как ше заставить ману, лить до фула с бешеной скоростью :) вроде с хп где то видел подобное бум править :)
Grinch вне форума   Ответить с цитированием
Старый 10.02.2008, 16:09   #234
Пользователь
 
Регистрация: 09.12.2007
Сообщений: 28
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
st01en
По умолчанию Re: Re:

Цитата:
Сообщение от VORON
ну сматри если ты используеш для хранения ИДешника (4-х байтного) ИНТИГЕР- то- тебе его применять надо по особому!.. простой IntToStr - некатит... нужно применять WRITED(Integer) , а ты скорее всего применяеш хз как.. тот клочек кода что ты дал- тока запоминает..
1. Не пойму где ты IntToStr увидел :) ты вроде первый про него в теме вспомнил
2. Я клочка никакого не давал а соответственно ничего и не применяю
3. и выыобще вы меня с кем-то путаете :)
st01en вне форума   Ответить с цитированием
Старый 11.02.2008, 12:36   #235
Новичок
 
Регистрация: 22.11.2007
Сообщений: 17
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
Rubec
По умолчанию

Народ есть вопрос может ли кто нибудь подсказать как сделать так чтобы вывести ХП сумонов в отдельном окне чтобы оно было поверх всех клиентов, как вырвать значение ХП не проблема
Rubec вне форума   Ответить с цитированием
Старый 12.02.2008, 22:13   #236
Рыцарь
 
Аватар для Grinch
 
Регистрация: 29.02.2008
Сообщений: 928
Сказал Спасибо: 127
Имеет 130 спасибок в 93 сообщенях
Grinch пока неопределено
По умолчанию

я думаю эт ботва на уровне клиента и выципить окно... ну хз интересная идея а что за линейка поконкретней можно?

Добавлено спустя 1 день 8 часов 43 минуты 45 секунд:
проверяет принадлежность координат заданой зоне
Код:
const
   Name='Ник перса тестера;
   //первая координата квадрата
   ax=-88370;
   ay=142700;
   az=3640;
   //вторая координата квадрата
   bx=-87427;
   by=142700;
   bz=-3640;
   //третья координата квадрата
   cx=-87427;
   cy=141800;
   cz=-3640;
   //четвёртая координата квадрата
   dx=-88368;
   dy=141752;
   dz=-3640;
var
   mx, my: real;
   MyID:integer;
   pl,pl1,pl2,pl3,p2,p21,p22,p23:integer;
   timer1 : TTimer;
procedure Say(msg:string);
begin
    buf:=hstr('4A 00 00 00 00');
    WriteD(2);
    WriteS(Name);
    WriteS(msg);
    SendToClientEx(Name);
end;
procedure Init; //Вызывается при включении скрипта
begin
// дык таймер но он выключен он нам не нужен в этом скрипте, но мало ли
    // timer1:=TTimer.Create(nil);
     //timer1.OnTimer:=@OnTimer1;
    // timer1.enabled:=false;//по начал не запускаем таймер, только по команде
     //timer1.interval:=2000;// 2 секунды - начальный интервал таймера
end;
    procedure InitStats;
begin
         MyID:=ReadD(18);
         Say('ID'+inttostr(MyID));
end;
procedure InitXYZ;
begin
mx:=ReadD(6);
my:=ReadD(10);
//нород если криво то помидорами не кидай те кто закодит для n угольника
//тому респект и уважуха, особенно если квадрат будет с возможность мёртвыъ координат внутри, но ет мат задача не для моих мозгов
//ет квадрат АБЦД
pl:=Ploshad(ax,ay,bx,by,cx,cy);
pl1:=Ploshad(mx,my,bx,by,cx,cy);
pl2:=Ploshad(ax,ay,mx,my,cx,cy);
pl3:=Ploshad(ax,ay,bx,by,mx,my);
p2:=Ploshad(ax,ay,dx,dy,cx,cy);
p21:=Ploshad(mx,my,dx,dy,cx,cy);
p22:=Ploshad(ax,ay,mx,my,cx,cy);
p23:=Ploshad(ax,ay,dx,dy,mx,my);
//проверяем условие принадлежиности наших координат к квадрату АБЦД
 if (pl<pl1+pl2+pl3+50)and((pl>pl1+pl2+pl3-50))or (p2<p21+p22+p23+50)and((p2>p21+p22+p23-50)) then Say('Мы в квадрате!')
                         else  Say('МЫ НЕ в квадрете!')


end;

function Ploshad(ax,ay,bx,by,cx,cy:real):integer;
var d1,d2,d3,per:real;
//описываем по какой то там формуле лощадь треугольника
begin
d1:=sqrt((ax-bx)*(ax-bx)+(ay-by)*(ay-by));   // 1-я сторона (длина)
d2:=sqrt((cx-bx)*(cx-bx)+(cy-by)*(cy-by));   // 2-я сторона (длина)
d3:=sqrt((ax-cx)*(ax-cx)+(ay-cy)*(ay-cy));   // 3-я сторона (длина)
per:=(d1+d2+d3)/2;                           // полуппериметр
Result:=Round(sqrt(per*(per-d1)*(per-d2)*(per-d3))); // считаем площадь
end;
procedure Free; //Вызывается при выключении скрипта
begin
//timer1.enabled:=false;
//timer1.Free;
end;

//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
    if pck='' then exit;    //убераем пусты пакеты
    //думаем о нашем ИД думаем...
    if FromServer and (ConnectName=Name) and (pck[1]=#$04)  then InitStats;
    // думаем о координатах своих
    if FromServer and (ConnectName=Name) and (pck[1]=#$01)and (ReadD(2)=myID) then   InitXYZ;
end.
ЗЫ кто красивей может реализовать? и пригрузку констант из файла :) реализуйте плиз если б lQaKl за что ему респект большой, я б ето ещё неделю писал а так полтора дня думал над алгоритмом полтора дня писал lQaKl поправил за 10 минут и вот чудо, работает :beer:

Добавлено спустя 12 минут 57 секунд:
зы место теста забыл сказать Арена Глудин ПВП зона
Grinch вне форума   Ответить с цитированием
Старый 13.02.2008, 08:28   #237
Рыцарь
 
Аватар для QaK
 
Регистрация: 28.09.2007
Сообщений: 1,558
Сказал Спасибо: 71
Имеет 351 спасибок в 244 сообщенях
QaK пока неопределено
По умолчанию

Цитата:
Сообщение от Grinch
if (pl<pl1+pl2+pl3+50)and((pl>pl1+pl2+pl3-50))or (p2<p21+p22+p23+50)and((p2>p21+p22+p23-50))
Многовато взял +-3 максимум
QaK вне форума   Ответить с цитированием
Старый 13.02.2008, 08:36   #238
Рыцарь
 
Аватар для Grinch
 
Регистрация: 29.02.2008
Сообщений: 928
Сказал Спасибо: 127
Имеет 130 спасибок в 93 сообщенях
Grinch пока неопределено
По умолчанию

дык он не сразу заработал у меня ж талант касячить норм код :) знаю что 3 достаточно

Добавлено спустя 3 минуты 23 секунды:
терь как бы его
Код:
pl:=Ploshad(ax,ay,bx,by,cx,cy);
pl1:=Ploshad(mx,my,bx,by,cx,cy);
pl2:=Ploshad(ax,ay,mx,my,cx,cy);
pl3:=Ploshad(ax,ay,bx,by,mx,my);
p2:=Ploshad(ax,ay,dx,dy,cx,cy);
p21:=Ploshad(mx,my,dx,dy,cx,cy);
p22:=Ploshad(ax,ay,mx,my,cx,cy);
p23:=Ploshad(ax,ay,dx,dy,mx,my);
if (pl<pl1+pl2+pl3+50)and((pl>pl1+pl2+pl3-50))or (p2<p21+p22+p23+50)and((p2>p21+p22+p23-50)) then Say('Мы в квадрате!')
                         else  Say('МЫ НЕ в квадрете!')
покрасифше сделать что б треугольников н штук было просто с n Штук треугольниками можно горада забивать много времени на каждый город уйдёт, но их не бесконечное колличество :)
Grinch вне форума   Ответить с цитированием
Старый 13.02.2008, 12:56   #239
Гость
 
Сообщений: n/a
По умолчанию

Цитата:
d1:=sqrt((ax-bx)*(ax-bx)+(ay-by)*(ay-by)); // 1-я сторона (длина)
d2:=sqrt((cx-bx)*(cx-bx)+(cy-by)*(cy-by)); // 2-я сторона (длина)
d3:=sqrt((ax-cx)*(ax-cx)+(ay-cy)*(ay-cy)); // 3-я сторона (длина)
per:=(d1+d2+d3)/2; // полуппериметр
Result:=Round(sqrt(per*(per-d1)*(per-d2)*(per-d3))); // считаем площадь
end;
Без всего этого можно обойтись и только целочисленной математикой, ищи алгоритмы целочисленной геометрии в интернете.
  Ответить с цитированием
Старый 13.02.2008, 18:57   #240
Пользователь
 
Аватар для ASSA
 
Регистрация: 09.02.2008
Сообщений: 38
Сказал Спасибо: 1
Имеет 1 спасибку в 1 сообщении
ASSA
По умолчанию МОЙ первый скрипт *)

(Скрипт для раскатывания рб в 4 окна и тд)
var
MOBID, partyLEADER: string;

begin
if FromServer and (ConnectName='BOT1') and (pck[1]=#$a7) then
begin
partyLEADER:=pck[6]+pck[7]+pck[8]+pck[9];
end;

begin
if FromServer and (ConnectName='BOT1') and (pck[1]=#$29)
and (pck[2]+pck[3]+pck[4]+pck[5]=partyLEADER)
then
begin
MOBID:=pck[6]+pck[7]+pck[8]+pck[9];
buf:=#$0a+MOBID+#$00+#$00+#$00+#$00;
SendToServerEx('BOT1');
SendToServerEx('BOT2');
SendToServerEx('BOT3');
SendToServerEx('BOT4');
pck:=''; //kill9em poket
end;

end;

end.
__________________
Пишите в асю если чего. 446-693-955
ASSA вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг


Опции темы
Опции просмотра

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

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


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

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!