Автоматизация заточки предметов до необходимого уровня by NLObP
Возможности скрипта
--------------------
+ Панель управления;
+ Затачиваем по очереди все предметы с ItemID пока не переломаем
или не заточим. Один предмет всегда остаётся.
Необходимо затариться оружием, заточками и валерьянкой.
Name='NLObP'; //Вписать сюда имя чара
//установить константу в зависимости от типа игры (С4 или Интерлюд)
interlude=true; //Interlude - true, C4 - false
Внимание!
Из комбобокса обязательно надо выбрать вещь, чтобы скрипт узнал
ID и количество, только потом ставить напротив галочку.
Галочки снимать не надо, если кончились заточки/вещи - можно сразу идти
покупать и продолжать заточку.
В инвентаре должно быть не менее двух одинаковых затачиваемых вещей, степень заточки значения не имеет
Скрипт распространяется как есть, и я не несу ответственности за то, что ВЫ натворили у себя, его используя.
Такая проблема, помогите!
играю на хрониках Freya. сервер rulineage.com
что уже только не пробовал, а постоянно выдает какую-то ошибку:
при этом в игре чар просто виснет, и ничего не могу сделать, а через время выкидает...
помогите разобраться!
//J-Fobos: Перепишите скрипт под Freya и используйте самую свежую версию пакетхака
Добавлено через 33 минуты
Не подскажете как скрипт переписать под Freya? я в скриптах не силен...
l2phx у меня версии 3.4.1.68.
//J-Fobos: Нету скрипта под Freya в общем доступе. Последняя версия 3.5.33.164
Добавлено через 8 минут
ну и на том спасибо!)
Добавлено через 15 минут
скрипт работает!!! поставил последнюю версию... но теперь другая проблема... не найден itemsid.ini
Добавлено через 16 минут
я не могу понять, эта новая версия вообще конектится к серву или нет...
в логе ничего не происходит(
Добавлено через 7 минут
кароч вижу, что приконектился! но в боксах ничего не могу выбрать.... раздуплите нубу что дальше делать!)
Добавлено через 16 минут
помогите разобраться в комбобоксами!!!!!! срипт запускается все норм, ток ничего выбрать не могу в боксах!
Добавлено через 16 минут
может кто-нить подкинуть itemsid для freya ?
//Breadfan: вот сразу видно что человек в панике просто файл скопируй в папку к скрипту, вроде так. А если нет - то сюда, или хоть ветку полистай, обсуждали неоднократно это.
Добавлено через 4 часа 14 минут
какой файл скопировать???? и листать тут придется пол дня!)
Добавлено через 15 минут
и по фрее тут ничего не нашел!
//J-Fobos: Без шуток: пролистайте всю тему и увидите ответы на ваши вопросы
ПОпробуй другой скрипт , вот я на Епилоге этим пользуюсь, тут нет комбобоксов и т д но он сам определяет id шмоток и точит. http://coderx.ru/showthread.php?t=5376
Ток ты его собери в кучку ) Он на 4 части разбит и обяз отпиши пойдет или нет ) если покатит то и я к вам на фрею полезу
Pilgrim, Этот сервер вряд ли freya, по пакетам больше на эпилог похоже. Там админы покоцали структуру пакетов itemlist & inventoryupdate.
Маска для itemlist : dddqhhhdh
0 - ItemOID
1 - ItemID
3 - Amount
8 - EnchantLevel
Добавлено через 34 секунды
теперь бы еще разобраться что и куда))))
Добавлено через 21 минуту
помогите собрать скрипт в кучу)) я то нашел все) просто если бы просто нужно было заменить чет в скрипте, исправить, то без проблем... а так надо вставить дополнение в скрипт...я хз куда его
Добавлено через 18 минут использую enchant_by_NLObP_09.rar
Я так посмотрел в скрипте не используются LocationSlot, ItemType1,2 итд.
Т.к я в пакете разобрал только oid, itemid, amount и enchlvl то чтоб не менять весь скрипт просто пропустим все остальное. Получается:
DELPHI Код:
Procedure ItemList; //создание базы предметовvar i,j,count:integer;
values : array[0..8] ofvariant;
begin
count:=round((length(pck)-5)/ReadH(4));
StringList.Clear;
for j:=1to12dofor i:=1to maxitems do BaseItems[i,j]:=0;
for i:=0to ReadH(4)-1dobegin
readmask('dddqhhhdh',6+i*count,values);
BaseItems[i+1,2]:=values[0];
BaseItems[i+1,3]:=values[1];
BaseItems[i+1,5]:=values[3];
BaseItems[i+1,10]:=values[8];
StringList.Add(ItemsName.Values[IntToStr(BaseItems[i+1,3])]); //записываем название вещей из инвентаряend;
ifnot CheckBoxItem.Checkedthenbegin//наполняем комбобокс with ComboBoxItem dobegin
Items.Clear;
Items.Assign(StringList);
ItemIndex:=0;
end;
end;
ifnot CheckBoxScroll.Checkedthenbegin//наполняем комбобокс with ComboBoxScroll dobegin
Items.Clear;
Items.Assign(StringList);
ItemIndex:=0;
end;
end;
end;
А процедура обновления инвентаря:
DELPHI Код:
Procedure InventoryUpdate;
var i,j,obj,count:integer;
values : array[0..9] ofvariant;
begin
count:=round((length(pck)-3)/ReadH(2));
for i:=0to ReadH(2)-1dobegin
readmask('hdddqhhhdh',4+i*count,values);
case values[0] of1: obj:=0;
2: obj:=values[1];
3: beginfor i:=1to maxitems doif BaseItems[i,2]=values[1] thenbeginfor j:=1to12do BaseItems[i,j]:=0;
break;
end;
continue;
end;
end;
for i:=1to maxitems doif BaseItems[i,2]=obj thenbegin
BaseItems[i,2]:=values[1];
BaseItems[i,3]:=values[2];
BaseItems[i,5]:=values[4];
BaseItems[i,10]:=values[9];
break;
end;
end;
end;
Просто замени имеющиеся у тебя в скрипте процедуры на эти.
Последний раз редактировалось Fer123, 08.08.2010 в 17:48.
ItemsName:=TStringList.Create;
try
ItemsName.LoadFromFile('.\settings\itemsid.ini');
except
msg.Lines.Add('itemsid.ini не найден!');
exit;
end;
а по поводу
Цитата:
...не хочет работать и все...
- это не полное сообщение.
ниже я по-моему подробно написал:
Цитата:
подключается, имя чара распознает, время идет, т.д. и т.п.
а вот в комбобоксах пусто((((
//Breadfan: это твое "подробно" подходит сразу под несколько причин (нет файла\не приходит пакет итемлист\не распознает пакет итемлист) - так что уж будь любезен - сразу полностью все сообщать, а не выдавливать из себя в день по фразе. До сих пор, кстати, нет никакого подтверждения того, что коннект нормально перехвачен, и необходимые пакеты верно расшифровываются. Из твоего скрина ниже - этого понять невозможно. Добавлено через 59 минут
вот что выдает.. так яснее будет, я думаю:Оффтоп
Добавлено через 16 минут
итемлист приходит... а вот RequestItemList чет я не наблюдаю...
P.s. Я сразу написал эще в первых сообщениях, что не силен в этом деле... знал бы я как это все делается, не писал бы на форум!!!! войдите в положение, когда-то вы ведь тоже в этом не разбирались! Добавлено через 6 минут
вот лог:Оффтоп
//Breadfan: судя по этому скрину - как минимум имя соединения распознается неверно, что приведет к невыполнению разных "if (connectname=name) then...", а если как обычно - то скорее всего доп.шифрация трафика, и изменениями скрипта\настроек L2phx - делу не поможешь. В любом случае тебе сначала в ветку http://coderx.ru/showthread.php?t=3791...хотя в какой-то из версий программы было такое, что на Камаэль хрониках имя соединения неверно распознавалось, хотя все последующие пакеты отслеживались и была возможность работы с траффиком по номеру соединения... мало ли что тут с этой фрейей. На вкладке Дополнительно есть минискрипт с фразой в чат "Hello!!!" - проверь работает ли он
Добавлено через 44 минуты
не работает... значит с кодировкой плохо дело?
Последний раз редактировалось Pilgrim, 09.08.2010 в 02:05.
Причина: Добавлено сообщение
Я попробовал скрипт у тебя на сервере, инвентарь распознало верно и имя соединения тоже.
Для подключения использовал режим svn "перехват соединения", c включенной галкой Kamael-Hellbound-Gracia.
В скрипте изменил процедуры itemlist и inventoryupdate на те что я выложил раньше. Поменял местами строчки в процедуре Init, так чтобы
эта:
Код:
buf:=hstr('14');
SendToServerEx(Name);
была ниже этой:
Код:
try
ItemsName.LoadFromFile('settings/ItemsID.ini');
except
msg.Lines.Add('itemsid.ini не найден!');
exit;
end;
И самое главное удали эту строчку в процедуре Free:
Fer123, выложи плз свой скрипт я попробую его поставить... если нет, проблема мож у меня с виндой, или с клиентом...
я использую l2phx.3.5.33.164.
вот ссылка на мой скрипт:
Добавлено через 22 минуты
скачаю клиент, пропатчу заново. нет... перебью винду, поставлю заново клиент, попробую опять скрипт... а потом забью на все это дело, и сяду учить скриптинг))))
Последний раз редактировалось Pilgrim, 09.08.2010 в 15:00.
Причина: Добавлено сообщение
В общем такое дело... с настройками, те что выше, такое ощущение, что ПХ вообще не подключается... поменял во второй вкладке настройки: поставил галочки возле "перехват", выбрал "надежный тип перехвата", и поставил галочку на "имя библиотеки перехватывающей соединение".
так подключается, имя распознает правильно(без крякозябров). использую скрипт, который мне скинул Fer123 (за что ему спасибо), но тут таки опять беда началась... инвентарь то все равно не хочет видеть(((( может проблема в том что я не могу подключиться через LSP-соединение?
вот скрин:Оффтоп
и еще одно. может это важно... когда запускаю скипт, окошко компиляции зависает, и так и висит, хотя и скрипт запустился...
Добавлено через 5 минут
Вот попробовал еще раз через LSP... теперь подключилось, все четко...
но инвентаря так и не видет((((
Добавлено через 10 минут
Кода запускаю скрипт, в логе пакетов появляется RequestItemList.
на скрине это видно.Оффтоп
но меня смущает что там мало написано в детальной расшифровке пакета... я не знаю... это так и должно быть?
Добавлено через 6 минут
вот скрин itemslist в логе :Оффтоп
Последний раз редактировалось Breadfan, 10.08.2010 в 13:56.
Причина: Добавлено сообщение