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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 11.10.2007, 18:00   #21
Пользователь
 
Регистрация: 07.10.2007
Сообщений: 29
Сказал Спасибо: 38
Имеет 7 спасибок в 3 сообщенях
Agat пока неопределено
По умолчанию Re:

читай выше:
Цитата:
Сообщение от xkor
Grinch, диалоги восновном привязаны к нпц так что невыйдет...
Agat вне форума   Ответить с цитированием
Старый 12.10.2007, 16:40   #22
Пользователь
 
Аватар для HooleeCheeter
 
Регистрация: 10.10.2007
Сообщений: 29
Сказал Спасибо: 14
Имеет 0 спасибок в 0 сообщенях
HooleeCheeter
По умолчанию Re:

Цитата:
Сообщение от DeVolf
а как будет выглядик скрипт но то чтоб :
1 Покупал 20 итемов пакет =SKIP=
2 Продавал 20 итемов которые купил
просто у нас на сервере ГМ шоп багонутый :P а клацать уже надоело
купить то купит, а продавать замаеца, ибо у купленного будет меняца ID. на Интерлюде яве так по крайней мере.

Добавлено спустя 2 минуты 13 секунд:
Re: ДА БУДЕТ БОТ!
помогите адаптировать скрипт "инвентаризации" выложенный на старом фоурме, под IT яву. неделю уже бь.сь, ниче не поулчается (
зы: VORON , ты обешал как появится свободное время, покопаться в скрипте на автоенчант :oops:
HooleeCheeter вне форума   Ответить с цитированием
Старый 12.10.2007, 20:34   #23
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию Re: Re:

Цитата:
Сообщение от HooleeCheeter
Цитата:
Сообщение от DeVolf
а как будет выглядик скрипт но то чтоб :
1 Покупал 20 итемов пакет =SKIP=
2 Продавал 20 итемов которые купил
просто у нас на сервере ГМ шоп багонутый :P а клацать уже надоело
купить то купит, а продавать замаеца, ибо у купленного будет меняца ID. на Интерлюде яве так по крайней мере.
У вещей ItemID всегда постоянный, а ObjectID разный. Вот по ItemID и надо находить свои вещи в инвентаре.
Есть функция GetObjID(ItemID) или подобная, которая возвращает ObjectID. Сделай перебор в цикле, пока не найдешь все нужные вещи. Сохрани в массиве. Потом с ними будешь работать.

Цитата:
помогите адаптировать скрипт "инвентаризации" выложенный на старом фоурме, под IT яву. неделю уже бь.сь, ниче не поулчается (
зы: VORON , ты обешал как появится свободное время, покопаться в скрипте на автоенчант :oops:
Что конкретно и в каком скрипте, пиши. Может подскажем, что не правильно.
А я выкладывал здесь доработанный скрипт на заточку, который точит все вещи с одним ItemID вне зависимости от ObjectID. Не смотрел?
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием
Старый 12.10.2007, 20:40   #24
Пользователь
 
Аватар для HooleeCheeter
 
Регистрация: 10.10.2007
Сообщений: 29
Сказал Спасибо: 14
Имеет 0 спасибок в 0 сообщенях
HooleeCheeter
По умолчанию

Цитата:
Сообщение от NLObP
А я выкладывал здесь доработанный скрипт на заточку, который точит все вещи с одним ItemID вне зависимости от ODjID. Не смотрел?
я именно про него и говорю ) про твой.
HooleeCheeter вне форума   Ответить с цитированием
Старый 12.10.2007, 21:38   #25
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию Re:

Цитата:
Сообщение от HooleeCheeter
Цитата:
Сообщение от NLObP
А я выкладывал здесь доработанный скрипт на заточку, который точит все вещи с одним ItemID вне зависимости от ODjID. Не смотрел?
я именно про него и говорю ) про твой.
Что именно не работатет? Это необходимо поправить под свои условия. У меня на С4 яве точит, не всегда правда с первого раза до необходимого уровня, но у меня и не ПвП сервер.
Код:
const
  Name='NLObP';
  Scroll=957; // 957 - ItemID Crystall Scroll Enchant Weapon (Grade D)
  Weapon=129; // 129 - ItemID Sword of Revolution
  MaxEnchLvl=20; //max уровень заточки
Добавлено спустя 49 минут 38 секунд:
Re: ДА БУДЕТ БОТ!
Цитата:
при включении скрипта на рыбалку выдается ошибка access violation at address 00528F70 in module 'l2ph.exe'. Read of address 00000000. и что делать я незнаю помочь можешь?
У меня эту ошибку выдает, когда нет подключения к серверу. В списке соединения должно быть имя чара.
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием
Старый 13.10.2007, 17:09   #26
Пользователь
 
Аватар для HooleeCheeter
 
Регистрация: 10.10.2007
Сообщений: 29
Сказал Спасибо: 14
Имеет 0 спасибок в 0 сообщенях
HooleeCheeter
По умолчанию

Цитата:
Сообщение от NLObP
Что именно не работатет? Это необходимо поправить под свои условия. У меня на С4 яве точит, не всегда правда с первого раза до необходимого уровня, но у меня и не ПвП сервер.
вот тут http://http://xkorem.net/vbf...?t=221&page=16 мы писали что даже если ID прописать, в ервый запуск он активирует заточку и все, а в впоследующие пишет "нет такого скролла".
HooleeCheeter вне форума   Ответить с цитированием
Старый 13.10.2007, 20:19   #27
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию Re: ДА БУДЕТ БОТ!

Я здесь выкладывал другой скрипт на заточку, он тоже не работатет?
Напиши свои WeaponID, ScrollID, названия предметов, пакеты от сервера 1B, 27

ЗЫЖ
max=250; //max количество предметов в базе (количество ячеек в инвентаре)
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием
Старый 13.10.2007, 21:25   #28
Пользователь
 
Аватар для HooleeCheeter
 
Регистрация: 10.10.2007
Сообщений: 29
Сказал Спасибо: 14
Имеет 0 спасибок в 0 сообщенях
HooleeCheeter
По умолчанию Re: ДА БУДЕТ БОТ!

Цитата:
Сообщение от NLObP
Я здесь выкладывал другой скрипт на заточку, он тоже не работатет?
Напиши свои WeaponID, ScrollID, названия предметов, пакеты от сервера 1B, 27

ЗЫЖ
max=250; //max количество предметов в базе (количество ячеек в инвентаре)
я нашёл только 1 :O

Код:
//Автоматизация заточки для PVP серверов... by NLObP
//Работа проверена на L2C4 Protocol 660 LocalServer "L2J FORTRESS"

//Необходимо затариться оружием и заточками.
//Социальное действие YES начать.
//Социальное действие NO остановиться.
//Точит пока не кончатся скроллы или оружие.
//Enjoy!

//      Disclaimer of Warranty. Unless required by applicable law or
//      agreed to in writing, Licensor provides the Work (and each
//      Contributor provides its Contributions) on an "AS IS" BASIS,
//     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
//     implied, including, without limitation, any warranties or conditions
//     of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
//     PARTICULAR PURPOSE. You are solely responsible for determining the
//     appropriateness of using or redistributing the Work and assume any
//     risks associated with Your exercise of permissions under this License.

const
  Scroll=957; // ItemID Crystall Scroll Enchant Weapon (Grade D)
  Weapon=129; // ItemID Sword of Revolution
  MaxEnchLvl=5;

var
  ItemBase: array of integer;
  add: boolean;
  ListCount: Integer;
  Cmd:String;
  timer: TTimer;

procedure Init; //Вызывается при включении скрипта
begin
  timer:=TTimer.Create(nil);
  timer.OnTimer:=@OnTimerHP;
  timer.enabled:=false;
  timer.interval:=1000; //время задержки
  add:=false;
  SendMsg('Начало инициализации скрипта, откройте инвентарь');
end;

procedure Free; //Вызывается при выключении скрипта
begin
  ItemBase:=nil;
  timer.Free;
end;

procedure SendMsg(msg:string);
begin
  buf:=#$4A;
  WriteD(0);
  WriteD(10);
  WriteS('');
  WriteS(msg);
  SendToClient;
end;

procedure CreateItemBase; //Создает базу ObjectID и ItemID, опять же не проверяет пакет на правильность для экономия ресурсов
var
  i,j: integer;
begin
  j:=4; //смещение для ListCount
  ListCount:=ReadH(j); //количество итемов
  SetLength(ItemBase,ListCount*2); //размер массива должен быть в 2 раза больше, чем итемов
  j:=8; //смещение для ObjectID
  //Пробегаем по Инвентарю и сохраняем пары ObjectID - ItemID
  for i:=0 to ListCount-1 do begin
    ItemBase[i*2]:=ReadD(j);      //ObjectID
    ItemBase[i*2+1]:=ReadD(j);    //ItemID
    j:=j+20; 
  end;
end;

procedure UpdateItemBase; //Создает базу ObjectID и ItemID, опять же не проверяет пакет на правильность для экономия ресурсов
var
  i, ii, tmp, j, Count, ObjID, ItID, UpdType: integer;
begin
  Count:=ReadH(2); //количество итемов
  //Пробегаем по Инвентарю и сохраняем пары ObjectID - ItemID
  j:=4; //смещение для действия с предметом 1-добавлен 2-изменен 3-удален
  for i:=0 to Count-1 do begin
    UpdType:=ReadH(j);
    j:=j+2;
    ObjID:=ReadD(j);
    ItID:=ReadD(j);
    if (UpdType=3) then begin
      for ii:=0 to ListCount-1 do begin
        //находим подходящий предмет
        if (ItemBase[ii*2]=ObjID) then begin
            ItemBase[ii*2]:=0;
            ItemBase[ii*2+1]:=0;
        end;
      end;
    end
    else begin
      for ii:=0 to ListCount-1 do begin
        if (UpdType=1) and (ItemBase[ii*2]=0) then begin
            ItemBase[ii*2]:=ObjID;
            ItemBase[ii*2+1]:=ItID;
            add:=false;
            exit;
        end else if (UpdType=1) then add:=true;
      end;
    end;
    j:=j+18; //следующее смещение для действия с предметом
  end;
  if add=true then begin
     ListCount:=ListCount+1; //количество итемов
     SetLength(ItemBase,ListCount*2); //размер массива должен быть в 2 раза больше, чем итемов
     ItemBase[(ListCount-1)*2]:=ObjID;
     ItemBase[(ListCount-1)*2+1]:=ItID;
     add:=false;
  end;
end;

function GetObjID(ItemID:integer): integer; //Выдает ObjectID по его ItemID, если ItemID не найден в базе, выдает -1
var
  i: integer;
begin
  for i:=0 to ListCount-1 do
    //находим первый подходящий предмет
    if (ItemBase[i*2+1]=ItemID) then begin
      Result:=ItemBase[i*2];
      Exit;
    end;
  Result:=-1;
end;

procedure UseItem(ObjectID: integer);
begin
  buf:=#$14;
  WriteD(ObjectID);
  WriteD(0);
  SendToServer;
end;

procedure RequesEnchantItem(ObjectID: integer);
begin
  buf:=#$58;
  WriteD(ObjectID);
  SendToServer;
end;

procedure TryEnchantWeapon;
begin
    if GetObjID(Scroll)=-1 then begin
      SendMsg('Нет такого скролла! Прервано!');
      timer.enabled:=false;
      exit;
    end;
    UseItem(GetObjID(Scroll));
    if GetObjID(Weapon)=-1 then begin
      SendMsg('Нет такого оружия! Прервано!');
      timer.enabled:=false;
      exit;
    end;
    RequesEnchantItem(GetObjID(Weapon));
end;

procedure OnTimerHP(Sender: TObject);
begin
  TryEnchantWeapon;
end;

//******************************************************
// вызывается при приходе каждого пакета, если скрипт включен
//******************************************************
begin
  //не обрабатываем пустые пакеты
  if pck='' then exit;
  //****************************************************
   //социальное действие yes для начало точки
   if FromClient and (pck=HStr('1B 06 00 00 00')) then begin
    SendMsg('Начинаем точить всё оружие!!!');
    timer.enabled:=true;
   end;
   //социальное действие no для окончания
   if FromClient and (pck=HStr('1B 05 00 00 00')) then begin
    SendMsg('Окончили точить всё оружие!!!');
    timer.enabled:=false;
   end;
  //ItemList
  if FromServer and (pck[1]=#$1B) then CreateItemBase; //создание базы предметов
  if (length(ItemBase)=0) then exit; //если нет базы итемов, скрипт дальше не пустит

 //если удалились предметы, стираем в базе предметов пары ObjectID - ItemID
 if FromServer and (pck[1]=#$27) then UpdateItemBase; //Обновление базы, если принят пакет на удаление предмета

  //*****************************************************
  //Команды отладки
  //*****************************************************
  //пакет Say2
  if FromClient and (pck[1]=#$38) then begin
      Cmd:=ReadS(2);
      case Cmd of
        '1':
          begin
            pck:='';
            //Dump;
          end;
        '2':
          begin
            pck:='';
            TryEnchantWeapon;
            //Dump;
          end;
      end;
      exit;
  end;
  //****************************************************

end.
HooleeCheeter вне форума   Ответить с цитированием
Старый 13.10.2007, 21:56   #29
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию Re: ДА БУДЕТ БОТ!

Я на 1 странице топика выложил новые скрипты на рыбалку, заточку, тренировка дракона. Смотри внимательно. Попробуй, напиши результат.
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума   Ответить с цитированием
Старый 14.10.2007, 15:11   #30
Пользователь
 
Аватар для HooleeCheeter
 
Регистрация: 10.10.2007
Сообщений: 29
Сказал Спасибо: 14
Имеет 0 спасибок в 0 сообщенях
HooleeCheeter
По умолчанию

сложно ли модифицировать скрипт, чтобы он точил всего 2 веши блессед заточками. допустим поочереди варяца до 13 , 1ая ломается , и точится только она, пока не станет опять 13, и потом опять поочереди?
HooleeCheeter вне форума   Ответить с цитированием
Ответ

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



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

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


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

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

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