Есть такой скрипт опубликованный на форуме.
Я его решил попробовать перепелить под Бс, вышло не сказать что годно, но юзабельно за некоторыми исключениями...
begin
if ((GetSkillValue('Blacksmithing')>=30) and(GetSkillValue('Blacksmithing')<45))then
begin
first := '9007';
second := '77';
item := $0F5C; //30.0-45.0: Mace 9007/77
exit;
end;
if ((GetSkillValue('Blacksmithing')>=45) and(GetSkillValue('Blacksmithing')<50))then
begin
first := '9007';
second := '78';
item := $143B; //45.0-50.0: Maul 9007/78
exit;
end;
if ((GetSkillValue('Blacksmithing')>=50) and(GetSkillValue('Blacksmithing')<55))then
begin
first := '9004';
second := '44';
item := $1441; //50.0-55.0: Cutlass 9004/44
exit;
end;
if ((GetSkillValue('Blacksmithing')>=55) and(GetSkillValue('Blacksmithing')<59.5))then
begin
first := '9004';
second := '46';
item := $13FF; //55.0-59.5: Katana 9004/46
exit;
end;
if ((GetSkillValue('Blacksmithing')>=59.5) and(GetSkillValue('Blacksmithing')<70.5))then
begin
first := '9006';
second := '74';
item := $0F62; //59.5-70.5: Spear 9006/74
exit;
end;
if ((GetSkillValue('Blacksmithing')>=70.5) and(GetSkillValue('Blacksmithing')<106.4))then
begin
first := '9001';
second := '10';
item :=$1413;
exit; //70.5 - 106.4 Platemail Gorget 9001/10
end;
if ((GetSkillValue('Blacksmithing')>=106.4) and(GetSkillValue('Blacksmithing')<108.9))then
begin
first := '9001';
second := '9';
item :=$1414;
exit; //106.4 - 108.9 Platemail Gloves 9001/9
end;
if ((GetSkillValue('Blacksmithing')>=108.9) and(GetSkillValue('Blacksmithing')<116.3))then
begin
first := '9001';
second := '8';
item :=$1410;
exit; //108.9 - 116.3 Platemail Arms 9001/8
end;
if ((GetSkillValue('Blacksmithing')>=116.3) and(GetSkillValue('Blacksmithing')<118.8))then
begin
first := '9001';
second := '11';
item :=$1411;
exit; //116.3 - 118.8 Platemail Legs 9001/11
end;
if ((GetSkillValue('Blacksmithing')>=118.8) and(GetSkillValue('Blacksmithing')<120.0))then
begin
first := '9001';
second := '12';
item :=$1415;
exit; //118.8 - 120.0 Platemail Tunics 9001/12
end;
end;
procedure check;
begin
if (count(ingot) < 30)then
begin
UseObject( boxMaterial );
wait(500);
grab(FindTypeEx(ingot,$0000,boxMaterial,true),1000); //Количество ингов в пак для крафта
wait(1000)
end;
end;
procedure craftTools(typetool , typeitem : Integer ; first, second : String);
begin
if (count(typeitem) < 2) then
begin
while (count(typeitem) < 5 )do
begin
check;
procedure craft(tool: word);
begin
checkSkill;
if (FindType(tool,backpack)<>0)then
begin
UseObject(FindType(tool,backpack));
wait(500);
WaitGump(first);
wait(200);
WaitGump(second);
wait(1000);
end
else UseObject(backpack);
check;
end;
procedure smeltItems;
begin
if (CountEx (item,$FFFF,backpack) > 0)then
begin
UseObject(FindType(tong,backpack));
wait(1000);
NumGumpButton(GetGumpsCount-1,7000);
WaitForTarget(1000);
TargetToObject(FindType(item,backpack));
wait(500);
//AddToSystemJournal('Smelt');
end;
end;
Begin
init;
UseObject(backpack);
wait(500);
UseObject( boxMaterial );
wait(500);
while (GetSkillValue('Blacksmithing')<GetSkillCap('Blacksmithing')) do
begin
craft(tong);
craftTools(tinkertool,tinkertool,'9003', '11');
craftTools(tinkertool,tong,'9003', '20');
smeltItems;
end;
End.
Кидает вот такие ошибки:
09:50:56:426 [c2-2]: Exec: [Error] (Треня БСа.sc at line 156). Pax Unhandled Exception : Argument out of range
Error line is: " NumGumpButton(GetGumpsCount-1,7000); "
09:31:57:285 [c1-2]: Exec: [Error] (Треня БСа.sc at line 157). Pax Unhandled Exception : Access violation at address 00C729E0 in module 'Stealth.exe'. Read of address 00000010
Error line is: " WaitGump(second); "
09:31:31:965 [c4-2]: Exec: [Error] (Треня БСа.sc at line 154). Pax Unhandled Exception : Access violation at address 00C7296E in module 'Stealth.exe'. Read of address 00000004
Error line is: " UseObject(FindType(tong,backpack)); "
09:25:18:031 [c5-2]: Exec: [Error] (Треня БСа.sc at line 158). Pax Unhandled Exception : Access violation at address 00C7296E in module 'Stealth.exe'. Read of address 00000011
Error line is: " TargetToObject(FindType(item,backpack));
Версия stealth 7.7.0
Ошибки появляются спустя какоето время(5-60мин), то есть скрипт вроде как рабочий..
Re: Перепилинг скрипта Carpentry в Blacksmithing
Posted: 16.11.2016 5:30
by Oasis
Ты с Зулу Европа? Та ссылка на форуме старая, соответственно и стелс не законченный под наш зулу
Re: Перепилинг скрипта Carpentry в Blacksmithing
Posted: 16.11.2016 5:31
by Tune
Oasis wrote:Ты с Зулу Европа? Та ссылка на форуме старая, соответственно и стелс не законченный под наш зулу
Нет, сервер runuo The Abyss
Re: Перепилинг скрипта Carpentry в Blacksmithing
Posted: 17.11.2016 14:06
by Vizit0r
Oasis wrote:стелс не законченный под наш зулу
шта?
Re: Перепилинг скрипта Carpentry в Blacksmithing
Posted: 17.11.2016 15:53
by Tune
Vizit0r wrote:
Oasis wrote:стелс не законченный под наш зулу
шта?
Бан за офтопик!!! шутка))
Vizit0r, хочу ответ по теме поста, очень
Re: Перепилинг скрипта Carpentry в Blacksmithing
Posted: 17.11.2016 16:10
by Vizit0r
1) научись применять Formatting-Code Format в редакторе.
2) ошибки которые ты показал - не соответствуют твоему скрипту.
09:50:56:426 [c2-2]: Exec: [Error] (Треня БСа.sc at line 156). Pax Unhandled Exception : Argument out of range
Error line is: " NumGumpButton(GetGumpsCount-1,7000); "
а в твоем скрипте 156 строка это
wait(200);
3)ошибка
09:50:56:426 [c2-2]: Exec: [Error] (Треня БСа.sc at line 156). Pax Unhandled Exception : Argument out of range
Error line is: " NumGumpButton(GetGumpsCount-1,7000); "
UseObject(FindType(tong,backpack));
wait(1000);
NumGumpButton(GetGumpsCount-1,7000);
абсолютно логично. Потому что нет никакой уверенности, что за эту секунду гамп появится. Сейв, лаг, еще что-то - и все, GetGumpsCount = 0,а GetGumpsCount-1 дает -1, что и дает выход за диапазон (0..$FFFF);
хотя бы элементарную проверку if GetGumpsCount > 0 then поставить надо. В идеале там надо воротить конструкции посложнее, вида
a := GetGumpsCount;
UseObject(FindType(tong,backpack));
while GetGumpsCount = 0 do
wait(50);
ну и еще ограничения, чтобы вечного цикла небыло, и прочее, прочее.
Весь скрипт не смотрел, мозг вообще не работает.
Re: Перепилинг скрипта Carpentry в Blacksmithing
Posted: 17.11.2016 16:25
by Oasis
Ну ты когда разбирался с стелсом, исправлял некоторые моменты, ты не раз давал линк на стелс, а на форуме я выставил не последний линк, а предыдущий, в котором остались некоторые проблемы.
Сейчас тоже еще есть проблемные моменты, я писал в скайп.
Re: Перепилинг скрипта Carpentry в Blacksmithing
Posted: 18.11.2016 19:36
by Tune
Vizit0r wrote:
UseObject(FindType(tong,backpack));
wait(1000);
NumGumpButton(GetGumpsCount-1,7000);
абсолютно логично. Потому что нет никакой уверенности, что за эту секунду гамп появится. Сейв, лаг, еще что-то - и все, GetGumpsCount = 0,а GetGumpsCount-1 дает -1, что и дает выход за диапазон (0..$FFFF);
хотя бы элементарную проверку if GetGumpsCount > 0 then поставить надо. В идеале там надо воротить конструкции посложнее, вида
a := GetGumpsCount;
UseObject(FindType(tong,backpack));
while GetGumpsCount = 0 do
wait(50);
ну и еще ограничения, чтобы вечного цикла небыло, и прочее, прочее.
Весь скрипт не смотрел, мозг вообще не работает.
Переделал процедуру в это:
procedure smeltItems;
begin
while (CountEx (item,$FFFF,backpack) > 0)do
begin
WaitTargetType(item);
a := GetGumpsCount;
UseObject(FindType(tong,backpack));
while GetGumpsCount = 0 do
wait(50);
NumGumpButton(GetGumpsCount-1, 7000);
end;
end;
Все равно кидает ошибку Exec: [Error] (Треня БСа.sc at line 173). Pax Unhandled Exception : Argument out of range
Error line is: " NumGumpButton(GetGumpsCount-1, 7000); "
Канитель с GetGumpsCount понимаю процентов на 10
Re: Перепилинг скрипта Carpentry в Blacksmithing
Posted: 18.11.2016 22:10
by Vizit0r
странно
готовь чара и скрипт, стучись ко мне в асю\скайп - гляну
Re: Перепилинг скрипта Carpentry в Blacksmithing
Posted: 22.01.2017 16:53
by Tune
21:43:55:375 [...]: Spa: Exception in GameSocket.SendBuf; EIdConnClosedGracefully : Connection Closed Gracefully.
Что это за ошибка?...