Скриптинг Форум посвещенный созданию скриптов для L2PacketHack
16.07.2010, 16:23
#1
Местный
Регистрация: 11.06.2010
Сообщений: 644
Сказал Спасибо: 119
Имеет 85 спасибок в 77 сообщенях
здрасте)
Как можно поставить условие в скрипте что если адены меньше чем 10кк то он в гм шопе обменивает манетку на 2ккк.
Это пакет от ГМ шопа до обменника (меню):
21 6D 00 65 00 6E 00 75 00 5F 00 73 00 65 00 6C 00 65 00 63 00 74 00 3F 00 61 00 73 00 6B 00 3D 00 2D 00 33 00 30 00 33 00 26 00 72 00 65 00 70 00 6C 00 79 00 3D 00 35 00 35 00 38 00 00 00
Это пакет обмена монетки на 2ккк:
A7 2E 02 00 00 43 00 00 00 01 00 00 00
16.07.2010, 17:20
#2
Рыцарь
Регистрация: 28.09.2007
Сообщений: 1,558
Сказал Спасибо: 71
Имеет 351 спасибок в 244 сообщенях
dyh9l , делаешь некий массив, для интвентаря, где хранится итем Ид, обждект Ид и количчество итемов, ну и при каждом изменении инветнаря проверяешь, если Итем ИД = 87 (Адена, вроде) and Количество <10кк then топаешь к нужному НПЦ, выделяешь его, вызываешь лиалог обмена, меняешь.
16.07.2010, 18:48
#3
Местный
Регистрация: 29.04.2008
Сообщений: 830
Сказал Спасибо: 80
Имеет 230 спасибок в 169 сообщенях
да у него там готовые конструкции с подсчетом свитков, по их подобию и под 57 сделать можно
__________________
На фразы в аську типа "слух карочь 1)как точить 2)как раскачаться за 5 мин" - игнор. ИМХО идиотизм
Дай голодному рыбу - он будет один день сыт. Покажи ему, как удить рыбу - он пошлёт тебя и скажет, что у него есть более интересные занятия, чем забрасывать снасти в воду
David Kastrup @ de.comp.text.tex.
"Приобретенные навыки общения с маленькими детьми - сильно упрощают взаимопонимание на форумах..."
А вы знаете, что для качественной сварки - место шва нужно протереть спиртом?
17.07.2010, 13:09
#4
Местный
Регистрация: 05.11.2008
Сообщений: 168
Сказал Спасибо: 35
Имеет 139 спасибок в 66 сообщенях
Нашел у себя скрипт, только он наоборот при достижении 2ккк меняет их на какой-то слиток наверно. Ну я думаю ты сможешь переделать...
Оффтоп
DELPHI Код:
Const
Name='ArchDevil' ;
Max =300 ;
var
ItemBase : array[1 ..4 ,1 ..max ] of integer ; //ItemOID, ItemID, Kol-vo, ItemLvl
timer:TTimer;
procedure Init; //Вызывается при включении скрипта
begin
timer:=TTimer.Create ( nil ) ;
timer.OnTimer :=@OnTimer;
timer.enabled :=true ;
timer.interval :=1000 ; //время задержки
buf:=#$0F;
SendToServerEx( Name) ;
end ;
procedure CreateItemBase;
var
i, j, ListCount: integer ;
begin
for i:=1 to max do begin
//очищаем масив
ItemBase[1 ,i]:=0 ; //OID
ItemBase[2 ,i]:=0 ; //ID
ItemBase[3 ,i]:=0 ; //kol-vo
ItemBase[4 ,i]:=0 ; //lvl
end ;
j:=4 ;
ListCount:=ReadH( j) ;
j:=8 ;
for i:=1 to ListCount do begin
itemBase[1 ,i]:=ReadD( j) ; //OID
itemBase[2 ,i]:=ReadD( j) ; //ItemID
itemBase[3 ,i]:=ReadD( j) ; //кол-во
inc ( j,10 ) ;
itemBase[4 ,i]:=ReadH( j) ;//EnchantLevel
inc ( j,12 ) ;
end ;
end ;
//......................................
//******************************************************************************
procedure InventoryUpdate; //пакет 27, обновляет базу ObjectID по ItemID
var
i, ii, j, OID, ID, Count, ListCount, UpdType, lvl: integer ;
add : boolean ;
begin
add:=false ;
ListCount:=ReadH( 2 ) ;
j:=4 ;
for ii:=1 to ListCount do begin
add:=false ; //Ели додумался изза чего не добавляет сразу несколько предметов в базу
UpdType:=ReadH( j) ;
ReadH( j) ; //ItemType1
OID:=ReadD( j) ; //ObjectID
ID:=ReadD( j) ; //ItemID
Count:=ReadD( j) ; //кол-во
inc ( j,10 ) ;
lvl:=ReadH( j) ;
case UpdType of
1 : begin
for i:=1 to max do begin
if ( ItemBase[1 ,i]=0 ) and ( add=false ) then begin
ItemBase[1 ,i]:=OID;
ItemBase[2 ,i]:=ID;
ItemBase[3 ,i]:=Count;
ItemBase[4 ,i]:=lvl;
add:=true ;
end ;
end ;
end ;
2 : begin
for i:=1 to max do begin
if ItemBase[1 ,i]=OID then begin
ItemBase[3 ,i]:=Count;
ItemBase[4 ,i]:=lvl;
end ;
end ;
end ;
3 : begin
for i:=1 to max do begin
if ItemBase[1 ,i]=OID then begin
ItemBase[1 ,i]:=0 ;
ItemBase[2 ,i]:=0 ;
ItemBase[3 ,i]:=0 ;
ItemBase[4 ,i]:=0 ;
end ;
end ;
end ;
end ;
inc ( j,10 ) ;
end ;
end ;
function GetItem( ID, FieldIn, FieldOut : integer ) : integer ;
var
i : integer ;
begin
for i:=1 to max do
if ItemBase[FieldIn,i]=ID then begin
result:=ItemBase[FieldOut,i]; // itemOID
exit ;
end ;
result:=0 ;
end ;
procedure OnTimer( Sender: TObject ) ;
begin
if GetItem( 57 ,2 ,3 ) >2000000000 then begin
buf:=#$A7;
WriteD( 9003 ) ;
WriteD( 100000 ) ;
WriteD( 1 ) ;
WriteD( 0 ) ;
WriteD( 0 ) ;
SendToServerEx( name) ;
end ;
end ;
begin
if FromServer and ( ConnectName=Name) then
case pck[1 ] of
//......................................
//Пакет ItemList
#$1B: CreateItemBase; //создание базы предметов
//......................................
#$27 : InventoryUpdate; //Обновление базы
end ; //end от case!!!
end .
Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
Часовой пояс GMT +4, время: 19:08 .
vBulletin style designed by
MSC Team .
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод:
zCarot
Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!