Автоматизация заточки предметов до необходимого уровня by NLObP
Возможности скрипта
--------------------
+ Панель управления;
+ Затачиваем по очереди все предметы с ItemID пока не переломаем
или не заточим. Один предмет всегда остаётся.
Необходимо затариться оружием, заточками и валерьянкой.
Name='NLObP'; //Вписать сюда имя чара
//установить константу в зависимости от типа игры (С4 или Интерлюд)
interlude=true; //Interlude - true, C4 - false
Внимание!
Из комбобокса обязательно надо выбрать вещь, чтобы скрипт узнал
ID и количество, только потом ставить напротив галочку.
Галочки снимать не надо, если кончились заточки/вещи - можно сразу идти
покупать и продолжать заточку.
В инвентаре должно быть не менее двух одинаковых затачиваемых вещей, степень заточки значения не имеет
Скрипт распространяется как есть, и я не несу ответственности за то, что ВЫ натворили у себя, его используя.
ID одинаковые но почему скрипт нивидит ни пухи ни точек, ни вобще ничего? интентарь и чара настраивал в скрипте, перепробывал абсолютно все скрипты!
по возможности скиньте ктонить более-менее свежий пакетхак с скриптами сразу рабочими. мб поможет
Последний раз редактировалось Muko, 07.01.2010 в 17:37.
Попробуй убрать(поставить) галочку: Показывать смещение в Hex
Цитата:
Сообщение от NLObP
для Грации можно взять здесь
Скачал данный скрипт. Как сделать чтобы он не "останавливался" при поломке всех итемов??? Точу блессед точками.
Опишу, навсякий, проблему:
Точиться все отлично, но при поломке итема скрипт перестает его брать в расчет. Когда же последний итем ломатеся, то игра зависает.
Добавлено через 20 часов 28 минут
решил сделать так:
case заключил в цикл:
Код:
repeat
case pck[1] of
//......................................
#$11: begin
//debugmsg('S>C Пакет ItemListPacket #$11');
ItemList;
end;
//......................................
#$21: begin
//debugmsg('S>C Пакет InventoryUpdate #$21');
InventoryUpdate;
end;
//......................................
//Пакет ChooseInventory
#$7C: begin
flag7C:=false;
if ready then begin //and (readd(2)=itemid)
//ищем подходящий предмет для заточки
timer.enabled:=false; //отключаем пока не найдем предмет для заточки
repeat
ItemOID:=GetItemEnchant(ItemID, CurEnchLvl);
if ItemOID=0 then begin
inc(CurEnchLvl);
Edit2.text:=inttostr(CurEnchLvl);
end;
until ItemOID<>0;
//************************************************
if (CurEnchLvl>=strtoint(Edit1.Text)) then begin
msg.Lines.Add('Нет подходящих предметов для улучшения! Прервано!');
msg.Lines.Add('Достигли MaxEnchLvl!');
timer.enabled:=false;
ready:=false;
delay(500);
RequestEnchantItem(-1);
exit;
end else begin
msg.Lines.Add('Пробуем улучшить ItemID='+IntToStr(ItemID)+' ItemOID='+IntToStr(ItemOID)+' ItemEnchLvl='+IntToStr(ItemEnch));
flag7c:=true;
ready:=false;
timer.enabled:=true;
delay (500);
exit;
end;
end;
end;
#$FE: begin
if pck[2]=#$81
then begin
flagFE:=true;
delay (2000);
exit;
end;
end;
#$87: begin
if readd(2)=0
then begin
msg.Lines.Add('Улучшили ItemID='+IntToStr(ItemID)+' ItemOID='+IntToStr(ItemOID)+' ItemEnchLvl='+IntToStr(ItemEnch));
inc(good);
flag87:=true;
delay (500);
exit;
end
else begin
msg.Lines.Add('Сломали ItemID='+IntToStr(ItemID)+' ItemOID='+IntToStr(ItemOID)+' ItemEnchLvl='+IntToStr(ItemEnch));
inc(broken);
flag87:=true;
delay (500);
exit;
end;
end;
end;
until CurEnchLvl><0; //начнем с начала. Расскоментировать для блессет скроллов
if flag7C=true
После компилироавния ставит курсор перед последним end что это значит???
Откомментируйте пожалуйста.
Последний раз редактировалось newworld, 12.01.2010 в 14:31.
Причина: Добавлено сообщение
case pck[1] of
//......................................
#$11: begin
//debugmsg('S>C Пакет ItemListPacket #$11');
ItemList;
end;
//......................................
#$21: begin
//debugmsg('S>C Пакет InventoryUpdate #$21');
InventoryUpdate;
end;
//......................................
//Пакет ChooseInventory
#$7C: begin
flag7C:=false;
if ready then begin //and (readd(2)=itemid)
//ищем подходящий предмет для заточки
timer.enabled:=false; //отключаем пока не найдем предмет для заточки
repeat
ItemOID:=GetItemEnchant(ItemID, CurEnchLvl);
if ItemOID=0 then begin
inc(CurEnchLvl);
Edit2.text:=inttostr(CurEnchLvl);
end;
until ItemOID<>0;
//************************************************
if (CurEnchLvl>=strtoint(Edit1.Text)) then begin
msg.Lines.Add('Нет подходящих предметов для улучшения! Прервано!');
msg.Lines.Add('Достигли MaxEnchLvl!');
timer.enabled:=false;
ready:=false;
delay(500);
RequestEnchantItem(-1);
exit;
end else begin
msg.Lines.Add('Пробуем улучшить ItemID='+IntToStr(ItemID)+' ItemOID='+IntToStr(ItemOID)+' ItemEnchLvl='+IntToStr(ItemEnch));
flag7c:=true;
ready:=false;
timer.enabled:=true;
delay (500);
exit;
end;
end;
end;
#$FE: begin
if pck[2]=#$81
then begin
flagFE:=true;
delay (2000);
exit;
end;
end;
#$87: begin
if readd(2)=0
then begin
msg.Lines.Add('Улучшили ItemID='+IntToStr(ItemID)+' ItemOID='+IntToStr(ItemOID)+' ItemEnchLvl='+IntToStr(ItemEnch));
inc(good);
flag87:=true;
delay (500);
exit;
end
else begin
msg.Lines.Add('Сломали ItemID='+IntToStr(ItemID)+' ItemOID='+IntToStr(ItemOID)+' ItemEnchLvl='+IntToStr(ItemEnch));
inc(broken);
flag87:=true;
delay (500);
exit;
end;
end;
end;
CurEnchLvl:=0; //начнем с начала. Расскоментировать для блессет скроллов
if flag7C=true
После компилирования строка с CurEnchLvl:=0; выделяется красным.
Что делать????
PS красным выделены мои дополнения, изменения.
Вообщем, у кого проблем прочитайте сначало 30 страниц))
Решил проблему по примерам со 3й страницы!!!Хотя вроде до этого прочитал страниц 10
пффффф а почему ж ты сразу с начала не читал?
to MUKO - такой бред может быть при неверном разборе пакета инвентаря - в аську стукни мне - глянем вместе
Цитата:
Сообщение от alexteam
"CurEnchLvl<>0" <> "CurEnchLvl><0"
и вообще.. переменная обявлена ?
- нет похоже там же сказано - "его дополнения, изменения" .....там вообще блока объявления переменных нету - что является инновацией в области языков программирования...компилятор сам догадывается что, и как ему использовать
ЗЫ: Всем привет и снова здравствуйте! В армию гады брать меня не захотели, с женой развелся, старую работу бросил (охренеть - жизнь заново начал))) так что опять я буду тут а так хотел назад, к родным ВВСовцам((( но, "...язва, батенька..."...
//QaK:привет-привет =)
__________________ На фразы в аську типа "слух карочь 1)как точить 2)как раскачаться за 5 мин" - игнор. ИМХО идиотизм
Дай голодному рыбу - он будет один день сыт. Покажи ему, как удить рыбу - он пошлёт тебя и скажет, что у него есть более интересные занятия, чем забрасывать снасти в воду
David Kastrup @ de.comp.text.tex.
"Приобретенные навыки общения с маленькими детьми - сильно упрощают взаимопонимание на форумах..."
А вы знаете, что для качественной сварки - место шва нужно протереть спиртом?
Последний раз редактировалось QaK, 13.01.2010 в 19:41.
#$81: if readd(2)=0 then begin
//CurEnchLvl:=0; //начнем с начала
x:=x+1;
end;
вот тут вроде смотреть тебе надо
__________________ На фразы в аську типа "слух карочь 1)как точить 2)как раскачаться за 5 мин" - игнор. ИМХО идиотизм
Дай голодному рыбу - он будет один день сыт. Покажи ему, как удить рыбу - он пошлёт тебя и скажет, что у него есть более интересные занятия, чем забрасывать снасти в воду
David Kastrup @ de.comp.text.tex.
"Приобретенные навыки общения с маленькими детьми - сильно упрощают взаимопонимание на форумах..."
А вы знаете, что для качественной сварки - место шва нужно протереть спиртом?