- Делаю скрипт для крафта-раба, включил его и получил по итогу крафтера со скилами по 93
- Пока соединил только БС(переплавка Армслор) и Карпентер, что то скрипт уже получился большой, как бы его сделать покрасивее и удобнее может есть варианты?
- Допустим несколько файлов каждый на свое умение и их подгружать, но как это сделать? дайте ссылку поучится
Гляньте основную функцию, правильно написано, так будет работать?
Program AllCraft
Code: Select all
Program AllCraft_Olimpik;
{$Include 'all.inc'}
var
TimeStart : TDateTime;
a,b,c,d,e,f,g,h,l,k :integer;
Item : Cardinal;
const
Tresh = $47858E0F;
IngotsType = $1BF2;
IngotsColor = $0000;
HammerType = $13E3;
ForgeObj = $46A0A77A;
TongsType = $0FBB;
cutlas = $1440;
katana = $13FE;
short = $1402;
gorget = $1413;
gloves = $1414;
helm = $1412;
arms = $1410;
legs = $1411;
breastplate = $1415;
//настройки для Карпентри
LogsType = $1BDD; // инги которые будем плавить
LogsColor = $0000; //$0505 birch $0654 cherri $0415 aok $048A swamp $0203 hard
ToolsType = $1032; // тип инструмента
Deedtype = $14F0;
item_type1 = $13FD; //лук
item_type2 = $13B2; //хевик
item_type3 = $0F4F; //арбаль
{переплавка кутласа}procedure Resmeltcutlas;
begin
findtype(cutlas,backpack);
while FindCount() > 5 do
repeat
checksave;
CheckTargetError(2,2);
if targetpresent then canceltarget;
a:=0;
TimeStart:=Now;
Item:=FindType(cutlas,Backpack);
WaitTargetObject(Item)
repeat
UseObject(FindType(TongsType,Backpack));
a := a + 1;
wait(2000);
until (InJournalBetweenTimes('What do you wish to smelt into ingots?|has to be', TimeStart, Now)<>-1) or (a > 7);
WaitTargetObject(ForgeObj);
repeat
wait(100);
a := a + 1;
until (InJournalBetweenTimes('You turned|ailed|That cannot be melted down!', TimeStart, Now)<>-1) or (a > 300);
findtype(cutlas,backpack);
until findcount () = 0 ;
findtype(cutlas,backpack);
end;
{переплавка катаны}procedure Resmeltkatana;
begin
findtype(katana,backpack);
while FindCount() > 5 do
repeat
checksave;
CheckTargetError(2,2);
if targetpresent then canceltarget;
b:=0;
TimeStart:=Now;
Item:=FindType(katana,Backpack);
WaitTargetObject(Item)
repeat
UseObject(FindType(TongsType,Backpack));
b := b + 1;
wait(2000);
until (InJournalBetweenTimes('What do you wish to smelt into ingots?|has to be', TimeStart, Now)<>-1) or (b > 7);
WaitTargetObject(ForgeObj);
repeat
wait(100);
b := b + 1;
until (InJournalBetweenTimes('You turned|ailed|That cannot be melted down!', TimeStart, Now)<>-1) or (b > 300);
findtype(katana,backpack);
until findcount () = 0 ;
findtype(katana,backpack);
end;
{переплавка шота}procedure Resmeltshort;
begin
findtype(short,backpack);
while FindCount() > 5 do
repeat
checksave;
CheckTargetError(2,2);
if targetpresent then canceltarget;
c:=0;
TimeStart:=Now;
Item:=FindType(short,Backpack);
WaitTargetObject(Item)
repeat
UseObject(FindType(TongsType,Backpack));
c := c + 1;
wait(2000);
until (InJournalBetweenTimes('What do you wish to smelt into ingots?|has to be', TimeStart, Now)<>-1) or (c > 7);
WaitTargetObject(ForgeObj);
repeat
wait(100);
c := c + 1;
until (InJournalBetweenTimes('You turned|ailed|That cannot be melted down!', TimeStart, Now)<>-1) or (c > 300);
findtype(short,backpack);
until findcount () = 0 ;
findtype(short,backpack);
end;
{переплавка горжетки}procedure Resmeltgorget;
begin
findtype(gorget,backpack);
while FindCount() > 5 do
repeat
checksave;
CheckTargetError(2,2);
if targetpresent then canceltarget;
d:=0;
TimeStart:=Now;
Item:=FindType(gorget,Backpack);
WaitTargetObject(Item)
repeat
UseObject(FindType(TongsType,Backpack));
d := d + 1;
wait(2000);
until (InJournalBetweenTimes('What do you wish to smelt into ingots?|has to be', TimeStart, Now)<>-1) or (d > 7);
WaitTargetObject(ForgeObj);
repeat
wait(100);
d := d + 1;
until (InJournalBetweenTimes('You turned|ailed|That cannot be melted down!', TimeStart, Now)<>-1) or (d > 300);
findtype(gorget,backpack);
until findcount () = 0 ;
findtype(gorget,backpack);
end;
{переплавка перчаток}procedure Resmeltgloves;
begin
findtype(gloves,backpack);
while FindCount() > 5 do
repeat
checksave;
CheckTargetError(2,2);
if targetpresent then canceltarget;
e:=0;
TimeStart:=Now;
Item:=FindType(gloves,Backpack);
WaitTargetObject(Item)
repeat
UseObject(FindType(TongsType,Backpack));
e := e + 1;
wait(2000);
until (InJournalBetweenTimes('What do you wish to smelt into ingots?|has to be', TimeStart, Now)<>-1) or (e > 7);
WaitTargetObject(ForgeObj);
repeat
wait(100);
e := e + 1;
until (InJournalBetweenTimes('You turned|ailed|That cannot be melted down!', TimeStart, Now)<>-1) or (e > 300);
findtype(gloves,backpack);
until findcount () = 0 ;
findtype(gloves,backpack);
end;
{переплавка Шлема}procedure Resmelthelm;
begin
findtype(helm,backpack);
while FindCount() > 5 do
repeat
checksave;
CheckTargetError(2,2);
if targetpresent then canceltarget;
f:=0;
TimeStart:=Now;
Item:=FindType(helm,Backpack);
WaitTargetObject(Item)
repeat
UseObject(FindType(TongsType,Backpack));
f := f + 1;
wait(2000);
until (InJournalBetweenTimes('What do you wish to smelt into ingots?|has to be', TimeStart, Now)<>-1) or (f > 7);
WaitTargetObject(ForgeObj);
repeat
wait(100);
f := f + 1;
until (InJournalBetweenTimes('You turned|ailed|That cannot be melted down!', TimeStart, Now)<>-1) or (f > 300);
findtype(helm,backpack);
until findcount () = 0 ;
findtype(helm,backpack);
end;
{переплавка наплечников}procedure Resmeltarms;
begin
findtype(arms,backpack);
while FindCount() > 5 do
repeat
checksave;
CheckTargetError(2,2);
if targetpresent then canceltarget;
g:=0;
TimeStart:=Now;
Item:=FindType(arms,Backpack);
WaitTargetObject(Item)
repeat
UseObject(FindType(TongsType,Backpack));
g := g + 1;
wait(2000);
until (InJournalBetweenTimes('What do you wish to smelt into ingots?|has to be', TimeStart, Now)<>-1) or (g > 7);
WaitTargetObject(ForgeObj);
repeat
wait(100);
g := g + 1;
until (InJournalBetweenTimes('You turned|ailed|That cannot be melted down!', TimeStart, Now)<>-1) or (g > 300);
findtype(arms,backpack);
until findcount () = 0 ;
findtype(arms,backpack);
end;
{переплавка ног}procedure Resmeltlegs;
begin
findtype(legs,backpack);
while FindCount() > 5 do
repeat
checksave;
CheckTargetError(2,2);
if targetpresent then canceltarget;
h:=0;
TimeStart:=Now;
Item:=FindType(legs,Backpack);
WaitTargetObject(Item)
repeat
UseObject(FindType(TongsType,Backpack));
h := h + 1;
wait(2000);
until (InJournalBetweenTimes('What do you wish to smelt into ingots?|has to be', TimeStart, Now)<>-1) or (h > 7);
WaitTargetObject(ForgeObj);
repeat
wait(100);
h := h + 1;
until (InJournalBetweenTimes('You turned|ailed|That cannot be melted down!', TimeStart, Now)<>-1) or (h > 300);
findtype(legs,backpack);
until findcount () = 0 ;
findtype(legs,backpack);
end;
{переплавка пуза}procedure Resmeltbreastplate;
begin
findtype(breastplate,backpack);
while FindCount() > 5 do
repeat
checksave;
CheckTargetError(2,2);
if targetpresent then canceltarget;
l:=0;
TimeStart:=Now;
Item:=FindType(breastplate,Backpack);
WaitTargetObject(Item)
repeat
UseObject(FindType(TongsType,Backpack));
l := l + 1;
wait(2000);
until (InJournalBetweenTimes('What do you wish to smelt into ingots?|has to be', TimeStart, Now)<>-1) or (l > 7);
WaitTargetObject(ForgeObj);
repeat
wait(100);
l := l + 1;
until (InJournalBetweenTimes('You turned|ailed|That cannot be melted down!', TimeStart, Now)<>-1) or (l > 300);
findtype(breastplate,backpack);
until findcount () = 0 ;
findtype(breastplate,backpack);
end;
{деалем кутлес}procedure Cutlass;
begin
UseObject(FindType(HammerType,Backpack));
findtype(IngotsType,backpack);
WaitTargetObject(finditem);
wait(500)
WaitMenu('What','Weapons');
WaitMenu('What','Swords');
wait(500)
WaitMenu('What','Cutlass');
if TargetPresent then CancelTarget;
end;
{деалем шот}procedure Shortt;
begin
FindType(cutlas,backpack);
if (findcount > 0) then MoveItems(backpack, cutlas, $FFFF, Tresh, 0, 0, 0, 50);
UseObject(FindType(HammerType,Backpack));
wait(500);
findtype(IngotsType,backpack);
WaitTargetObject(finditem);
wait(500)
WaitMenu('What would you like to make?','Weapons');
WaitMenu('What','Other');
wait(500)
WaitMenu('What','Short');
if TargetPresent then CancelTarget;
end;
{деалем катану}procedure Katanaa;
begin
FindType(short,backpack);
if (findcount > 0) then MoveItems(backpack, short, $FFFF, Tresh, 0, 0, 0, 50);
wait(500);
UseObject(FindType(HammerType,Backpack));
findtype(IngotsType,backpack);
WaitTargetObject(finditem);
wait(500)
WaitMenu('What','Weapons');
WaitMenu('What','Swords');
wait(500)
WaitMenu('What','Katana');
if TargetPresent then CancelTarget;
end;
{деалем горжетку}procedure gorgett;
begin
FindType(katana,backpack);
if (findcount > 0) then MoveItems(backpack, katana, $FFFF, Tresh, 0, 0, 0, 50);
wait(500);
UseObject(FindType(HammerType,Backpack));
findtype(IngotsType,backpack);
WaitTargetObject(finditem);
wait(500)
WaitMenu('What','Armor');
WaitMenu('What','Platemail');
wait(500)
WaitMenu('What','Gorget');
if TargetPresent then CancelTarget;
end;
{деалем перчи}procedure glovess;
begin
FindType(gorget,backpack);
if (findcount > 0) then MoveItems(backpack, gorget, $FFFF, Tresh, 0, 0, 0, 50);
wait(500);
UseObject(FindType(HammerType,Backpack));
findtype(IngotsType,backpack);
WaitTargetObject(finditem);
wait(500)
WaitMenu('What','Armor');
WaitMenu('What','Platemail');
wait(500)
WaitMenu('What','Gloves');
if TargetPresent then CancelTarget;
end;
{деалем шлем}procedure helmm;
begin
FindType(gloves,backpack);
if (findcount > 0) then MoveItems(backpack, gloves, $FFFF, Tresh, 0, 0, 0, 50);
wait(500);
UseObject(FindType(HammerType,Backpack));
findtype(IngotsType,backpack);
WaitTargetObject(finditem);
wait(500)
WaitMenu('What','Armor');
WaitMenu('What','Helm');
wait(500)
WaitMenu('What','Plate');
if TargetPresent then CancelTarget;
end;
{деалем наплечники}procedure armss;
begin
FindType(helm,backpack);
if (findcount > 0) then MoveItems(backpack, helm, $FFFF, Tresh, 0, 0, 0, 50);
wait(500);
UseObject(FindType(HammerType,Backpack));
findtype(IngotsType,backpack);
WaitTargetObject(finditem);
wait(500)
WaitMenu('What','Armor');
WaitMenu('What','Platemail');
wait(500)
WaitMenu('What','Arms');
if TargetPresent then CancelTarget;
end;
{деалем ноги}procedure legss;
begin
FindType(arms,backpack);
if (findcount > 0) then MoveItems(backpack, arms, $FFFF, Tresh, 0, 0, 0, 50);
wait(500);
UseObject(FindType(HammerType,Backpack));
findtype(IngotsType,backpack);
WaitTargetObject(finditem);
wait(500)
WaitMenu('What','Armor');
WaitMenu('What','Platemail');
wait(500)
WaitMenu('What','Legs');
if TargetPresent then CancelTarget;
end;
{деалем пузо}procedure breastplatee;
begin
FindType(legs,backpack);
if (findcount > 0) then MoveItems(backpack, legs, $FFFF, Tresh, 0, 0, 0, 50);
wait(500);
UseObject(FindType(HammerType,Backpack));
findtype(IngotsType,backpack);
WaitTargetObject(finditem);
wait(500)
WaitMenu('What','Armor');
WaitMenu('What','Platemail');
wait(500)
WaitMenu('What','Breastplate');
if TargetPresent then CancelTarget;
end;
{деалем стул}procedure Chairr;
begin
FindType(IngotsType,backpack);
if (count(IngotsType) > 0) then MoveItem(FindType(IngotsType,backpack),$FFFF,ground,0,0,0);
FindType(breastplate,backpack);
if (findcount > 0) then MoveItems(backpack, breastplate, $FFFF, Tresh, 0, 0, 0, 50);
wait(500);
UseObject(FindType(ToolsType,Backpack));
findtype(LogsType,backpack);
WaitTargetObject(finditem);
wait(500)
WaitMenu('What','Chairs');
wait(500)
WaitMenu('What','Chair');
if TargetPresent then CancelTarget;
end;
{деалем ящик}procedure Cratee;
begin
FindType(IngotsType,backpack);
if (count(IngotsType) > 0) then MoveItem(FindType(IngotsType,backpack),$FFFF,ground,0,0,0);
FindType(breastplate,backpack);
if (findcount > 0) then MoveItems(backpack, breastplate, $FFFF, Tresh, 0, 0, 0, 50);
wait(500);
UseObject(FindType(ToolsType,Backpack));
findtype(LogsType,backpack);
WaitTargetObject(finditem);
wait(500)
WaitMenu('What','Container');
wait(500)
WaitMenu('What','Crate');
if TargetPresent then CancelTarget;
end;
{деалем ящик}procedure Boxx;
begin
UseObject(FindType(ToolsType,Backpack));
findtype(LogsType,backpack);
WaitTargetObject(finditem);
wait(500)
WaitMenu('What','Container');
wait(500)
WaitMenu('What','Box');
if TargetPresent then CancelTarget;
end;
{деалем щиты}procedure Kitee;
begin
UseObject(FindType(ToolsType,Backpack));
findtype(LogsType,backpack);
WaitTargetObject(finditem);
wait(500)
WaitMenu('What','Shields');
wait(500)
WaitMenu('What','Kite');
if TargetPresent then CancelTarget;
end;
{деалем ящики}procedure Strongss;
begin
UseObject(FindType(ToolsType,Backpack));
findtype(LogsType,backpack);
WaitTargetObject(finditem);
wait(500)
WaitMenu('What','Container');
wait(500)
WaitMenu('What','Strong');
if TargetPresent then CancelTarget;
end;
{деалем палкку}procedure Quarterr;
begin
UseObject(FindType(ToolsType,Backpack));
findtype(LogsType,backpack);
WaitTargetObject(finditem);
wait(500)
WaitMenu('What','Staffs');
wait(500)
WaitMenu('What','Quarterstaff');
if TargetPresent then CancelTarget;
end;
{деалем палку}procedure Shepardss;
begin
UseObject(FindType(ToolsType,Backpack));
findtype(LogsType,backpack);
WaitTargetObject(finditem);
wait(500)
WaitMenu('What','Staffs');
wait(500)
WaitMenu('What','Shepards');
if TargetPresent then CancelTarget;
end;
{деалем палку}procedure Blackk;
begin
UseObject(FindType(ToolsType,Backpack));
findtype(LogsType,backpack);
WaitTargetObject(finditem);
wait(500)
WaitMenu('What','Staffs');
wait(500)
WaitMenu('What','Black');
if TargetPresent then CancelTarget;
end;
{БС}procedure BS;
begin
AddToSystemJournal('Ingi:'+IntToStr(Count(IngotsType))+' '+'Ingi na polu:'+IntToStr(CountEx(IngotsType,$FFFF,ground))+' '+'logi:'+IntToStr(Count($1BDD)));
{добираем инги}
if (CountEx(IngotsType,IngotsColor,backpack)) < 50 then MoveItem(FindTypeEx(IngotsType,IngotsColor,ground,true),10000,backpack,0,0,0);
wait(500);
end;
{Carpentry}procedure Carp;
begin
{добираем логи}
if (CountEx(LogsType,LogsColor,backpack) < 50) then MoveItem(FindTypeEx(LogsType,LogsColor,ground,true),10000,backpack,0,0,0);
wait(500);
FindType(Deedtype,backpack);
if (findcount > 0) then MoveItems(backpack, Deedtype, $FFFF, Tresh, 0, 0, 0, 100);
FindType($1B79,backpack);
if (findcount > 0) then MoveItems(backpack, $1B79, $FFFF, Tresh, 0, 0, 0, 100);
FindType($1B78,backpack);
if (findcount > 0) then MoveItems(backpack, $1B78, $FFFF, Tresh, 0, 0, 0, 100);
FindType($0E81,backpack);
if (findcount > 0) then MoveItems(backpack, $0E81, $FFFF, Tresh, 0, 0, 0, 100);
FindType($0DF0,backpack);
if (findcount > 0) then MoveItems(backpack, $0DF0, $FFFF, Tresh, 0, 0, 0, 100);
FindType($0E8A,backpack);
if (findcount > 0) then MoveItems(backpack, $0E8A, $FFFF, Tresh, 0, 0, 0, 100);
wait(500);
AddToSystemJournal('logs:'+IntToStr(Count(LogsType))+' '+'Logi na polu:'+IntToStr(CountEx(LogsType,$0000,ground)));
end;
BEGIN
SetARStatus(true);
while true do
begin
{армс лор}
UseSkill('Arms Lore');
waittargetobject(findtype($0F51,backpack)); // тип ножа, если молоток то заменить на $13E3
wait(1000);
{выкидываем луки}
FindType(item_type1,backpack);
if (findcount > 0) then MoveItems(backpack, item_type1, $FFFF, Tresh, 0, 0, 0, 50);
wait(500);
{выкидываем хевики}
FindType(item_type2,backpack);
if (findcount > 0) then MoveItems(backpack, item_type2, $FFFF, Tresh, 0, 0, 0, 50);
wait(500);
{выкидываем арбали}
FindType(item_type3,backpack);
if (findcount > 0) then MoveItems(backpack, item_type3, $FFFF, Tresh, 0, 0, 0, 50);
wait(500);
CancelMenu;
k:=0;
TimeStart:=Now;
if (GetSkillValue('Blacksmithy') <= 40.0) then begin Cutlass; BS;end;
if (GetSkillValue('Blacksmithy') <= 50.0) and (GetSkillValue('Blacksmithy') > 40.1) then begin shortt; BS; end;
if (GetSkillValue('Blacksmithy') <= 62.0) and (GetSkillValue('Blacksmithy') > 50.1) then begin Katanaa; BS; end;
if (GetSkillValue('Blacksmithy') <= 69.0) and (GetSkillValue('Blacksmithy') > 62.1) then begin gorgett;; BS; end;
if (GetSkillValue('Blacksmithy') <= 74.0) and (GetSkillValue('Blacksmithy') > 69.0) then begin glovess; BS; end;
if (GetSkillValue('Blacksmithy') <= 78.0) and (GetSkillValue('Blacksmithy') > 74.0) then begin helmm; BS; end;
if (GetSkillValue('Blacksmithy') <= 82.0) and (GetSkillValue('Blacksmithy') > 78.0) then begin armss; BS; end;
if (GetSkillValue('Blacksmithy') <= 86.0) and (GetSkillValue('Blacksmithy') > 82.0) then begin legss; BS;end;
if (GetSkillValue('Blacksmithy') <= 93.0) and (GetSkillValue('Blacksmithy') > 86.0) then begin breastplatee; BS; end;
if (GetSkillValue('Blacksmithy') > 93.0) and (GetSkillValue('Carpentry') <= 39.0) then begin Chairr;Carp;end;
if (GetSkillValue('Blacksmithy') > 93.0) and (GetSkillValue('Carpentry') <= 42.0) and (GetSkillValue('Carpentry') > 39.0) then begin Cratee;Carp;end;
if (GetSkillValue('Blacksmithy') > 93.0) and (GetSkillValue('Carpentry') <= 58.0) and (GetSkillValue('Carpentry') > 42.0) then begin Boxx;Carp; end;
if (GetSkillValue('Blacksmithy') > 93.0) and (GetSkillValue('Carpentry') <= 62.0) and (GetSkillValue('Carpentry') > 58.0) then begin kitee;Carp;end;
if (GetSkillValue('Blacksmithy') > 93.0) and (GetSkillValue('Carpentry') <= 80.0) and (GetSkillValue('Carpentry') > 62.0) then begin strongss;Carp;end;
if (GetSkillValue('Blacksmithy') > 93.0) and (GetSkillValue('Carpentry') <= 85.0) and (GetSkillValue('Carpentry') > 80.0) then begin Quarterr;Carp;end;
if (GetSkillValue('Blacksmithy') > 93.0) and (GetSkillValue('Carpentry') <= 90.0) and (GetSkillValue('Carpentry') > 85.0) then begin Shepardss;Carp;end;
if (GetSkillValue('Blacksmithy') > 93.0) and (GetSkillValue('Carpentry') <= 92.9) and (GetSkillValue('Carpentry') > 90.0) then begin Blackk;Carp;end;
repeat
wait(100);
k := k + 1;
until (InJournalBetweenTimes('stop|already|Canceled|finish', TimeStart, Now)<>-1) or (k > 300);
if InJournal('Success')<>-1 then Hungry(1,ground);
Resmeltcutlas;
Resmeltkatana;
Resmeltshort;
Resmeltgorget;
Resmeltgloves;
Resmelthelm;
Resmeltarms;
Resmeltlegs;
Resmeltbreastplate;
end;
End.