program serpent_automat; uses allinc; // Вот хрен знает для кого я писал, но явно не для того что бы на Инсептуме выкладывать. // Фармим обычную и синюю кожу. // Фарм гп и сильвера - как бонус =) // Запилил Фризз ака Алиса для Инсептума-уогейм.сру var CoordX : Array [0..100] of Word; CoordY : Array [0..100] of Word; Enemys : Array [0..50] of Word; enemy,corpse,i,CorpseCount,EnemyCount, c, cc, scoordx, scoordy: Integer; const ResX = 954; ResY = 1757; CorpesType = $2006; WeaponType = $2D22; EatType = $097B; BandageType = $0E21; Loots = $0EED; Silver = $0EF0; Cont = $42547078; // - Secure container BookHome = $41260F4D; // - рунбука домой BookWar = $406893CF; // - рунбука на респ // --- Coords Home --- NearX = 966; NearY = 1228; HomeX = 968; HomeY = 1233; procedure fullheal; begin If TargetPresent Then CancelTarget; if (GetHP(self) < MaxHP) then begin //WaitTargetSelf; //UseObject(FindType(BandageType,BackPack)); end; //Wait(200); //If TargetPresent Then CancelTarget; //if (Count(BloodBandageType) > 0) then stack(BloodBandageType,$0000); end; //// ---- Проверим бандаги и Хавку --- procedure checkbandages; begin FindType(BandageType,BackPack); if (FindQuantity < 200) then begin GetResFromBox(BandageType, $FFFF, 250, 'бинтов', Cont); Wait(1000); end; //FindType($0F3F,BackPack); //if (FindQuantity < 200) then // begin // GetResFromBox($0F3F, $FFFF, 250, 'cтрел', Cont); // Wait(1000); // end; FindType(EatType,BackPack); if (FindQuantity < 25) then begin GetResFromBox(EatType, $FFFF, 30, 'рыбы', Cont); wait(1000); end; end; //// --- Опя, повторы? Одевалка!!! ---- procedure checkequip; begin if (GetType(ObjAtLayer(LhandLayer)) <> WeaponType) then begin FindType(WeaponType,Cont); if (Findcount > 0) then begin equip(LhandLayer, Finditem); Addtosystemjournal('Weapon в запасе осталось - '+intToStr(findfullquantity-1)); Wait(1000); end; end; end; // ---------------- Домой, переодеть подштанники, скинуть мелочь -------------- procedure GotoOnBoad; begin if TargetPresent then CancelTarget; if not Dead then begin AddToSystemJournal('----------- Прем Домой ------------'); // ---[Start chivalry jump on home]---- while ( (GetX(self) <> HomeX) And (GetY(self) <> HomeY)) do begin scoordx := GetX(self); scoordy := GetY(self); WaitTargetObject(BookHome); Cast('Sacred Journey'); while ( (GetX(self) = scoordx) And (GetY(self) = scoordx)) do begin WaitTargetObject(BookHome); Cast('Sacred Journey'); wait(3100); end; wait(3100); if (InJournal('criminal') <> 0) then UseSkill('Hiding'); end; //wait(750); // ---[ END chivalry jump on home]---- while ((GetX(self) <> NearX) and (GetY(self) <> NearY)) do begin NewMoveXY(NearX,NearY, False, 0, True); End; if ((GetX(self) = NearX) and (GetY(self) = NearY)) then begin If TargetPresent Then CancelTarget; UseObject(Cont); wait(1750); while (LastContainer<>Cont) do begin UseObject(Cont); wait(750); CheckSave; end; CheckSave; SetWarMode(false); //UseSkill('Hiding'); //Wait(1500); If TargetPresent Then CancelTarget; wait(350); FindType($1081,Cont); wait(350); while (Count($1081) > 0) do StackInBox($1081, GetColor(finditem), Cont); FindType(Loots,Cont); wait(350); if (Count(Loots) > 0) then StackInBox50(Loots,$FFFF, Cont); //gold FindType(Silver,Cont); wait(350); if (Count(Silver) > 0) then StackInBox(Silver,$FFFF, Cont); //silver FindType(Loots,Cont); wait(350); Addtosystemjournal('Насобирали золота: '+intToStr(findfullquantity)); FindType(Silver,Cont); wait(350); Addtosystemjournal('и сильвера: '+intToStr(findfullquantity)); SetGlobal('stealth','TestVar2','Дома Сильвера: '+intToStr(findfullquantity)); ClearJournal(); checkbandages; //checkequip; //checkbandages; //checkequip; //checkbandages; //checkequip; end; end; end; // --------------------- Дописать проверку на Дез и ресалку ---------------- procedure checkhp; begin if Dead then begin while Dead do begin //UOSay('\ меня убили!!!'); while ((GetX(self) <> NearX) and (GetY(self) <> NearY)) do begin NewMoveXY(NearX,NearY, False, 0, True); End; wait(30000); end; end; end; // --------------------------- Проверки ------------------------------- procedure checkall; begin //if (GetType(ObjAtLayer(LhandLayer)) <> WeaponType) then GotoOnBoad; if (gold > 10000) then GotoOnBoad; if (Weight > 300) then GotoOnBoad; if (Count(BandageType) < 60) then GotoOnBoad; checkhp; end; procedure Badloc; begin SetBadLocation(984, 1323); SetBadLocation(984, 1324); ///SetBadLocation(2392, 216); ///SetBadLocation(2393, 217); end; // -------------------------- Убийство ----------------------------- procedure killenemy; begin FindDistance:=40; for cc :=0 to 48 do begin repeat FindType(Enemys[cc],Ground); //SetGlobal('stealth','TestVar1','Атачим: '+GetName(Finditem)); if (Findcount > 0) then begin if (Mana > 5) then begin cast('Lightning Strike'); //cast('Confidence'); end; //if (Mana > 10) then // begin // UsePrimaryAbility; // end; Attack(Finditem); SetGlobal('stealth','TestVar2','Атачим: '+GetName(Finditem)); EnemyCount := EnemyCount + 1; //SetGlobal('stealth','TestVar2','Проатачено: '+IntToStr(EnemyCount)); enemy:=WarTargetID ClearBadLocationList(); Badloc; NewMoveXY(GetX(Finditem),GetY(Finditem), True, 1, True); while (GetHP(Finditem) > 0) do begin; Attack(Finditem); if (Mana > 5) then begin cast('Lightning Strike'); //cast('Confidence'); end; SetGlobal('stealth','TestVar1','HP: '+IntToStr(GetHP(Finditem))); ClearBadLocationList(); NewMoveXY(GetX(Finditem),GetY(Finditem), True, 1, True); wait(500); end; SetGlobal('stealth','TestVar1','HP: '+IntToStr(GetHP(Finditem))); fullheal; checkall; end; until (FindType(Enemys[cc],Ground) = 0); SetGlobal('stealth','TestVar2','Проатачено: '+IntToStr(EnemyCount)); end; //checkcorpes; end; procedure checkcorpes; begin if not Dead then begin If TargetPresent Then CancelTarget; checkall; if (CountGround(CorpesType) > 0) then begin repeat checkall; FindType(CorpesType,Ground); corpse:=Finditem; SetGlobal('stealth','TestVar2','Трупов: '+IntToStr(FindCount)); SetGlobal('stealth','TestVar1','Лутим Х:'+IntToStr(GetX(corpse))+' Y:'+IntToStr(GetY(corpse))); If TargetPresent Then CancelTarget; NewMoveXY(GetX(corpse),GetY(corpse), True, 0, True); UseObject(Finditem); Wait(350); //WaitTargetObject(corpse); //UseObject(FindType(DaggerType,Backpack)); //WaitJournalLine(Now, 'You plase|You cannot', 3000); FindType(Loots,corpse); if (Findcount > 0 ) then begin MoveItem(Finditem,FindQuantity,Backpack,0,0,0); Wait(350); end; FindType($0C7C,corpse); if (Findcount > 0 ) then begin MoveItem(Finditem,FindQuantity,Backpack,0,0,0); Wait(350); end; Wait(250); WaitTargetObject(corpse); UseObject($42CCA94A); Wait(250); Ignore(corpse); CorpseCount := CorpseCount + 1; //SetGlobal('stealth','TestVar2','Залучено: '+IntToStr(CorpseCount)+'['+IntToStr(Count(Silver))+']'); killenemy; until (CountGround(CorpesType) = 0); //SetGlobal('stealth','TestVar5','Трупов больше нет'); // SetGlobal('stealth','TestVar2','BG:'+ IntToStr(Count($0E21))+'['+IntToStr(Count(Silver))+']'); // end; // UseType($0DE1,$0000); // UseType($0DE1,$0000); // UseType($0DE1,$0000); // UseType($0DE1,$0000); // UseType($0DE1,$0000); end; end; Begin SetARStatus(True); moveOpenDoor := true; Addtosystemjournal('Понаехали тут .. Go!!! '); SetGlobal('stealth','TestVar1','-Cleared-'); SetGlobal('stealth','TestVar2','-Cleared-'); SetGlobal('stealth','TestVar3','-Cleared-'); SetGlobal('stealth','TestVar4','-Cleared-'); SetGlobal('stealth','TestVar5','-Cleared-'); CorpseCount :=0; EnemyCount :=0; ClearBadLocationList(); ClearJournal(); ///SetBadLocation(2382, 222); ///SetBadLocation(2383, 223); ///SetBadLocation(2391, 213); ///SetBadLocation(2392, 216); ///SetBadLocation(2393, 217); // -- Enemy Types -- Enemys[0] := $003A; //wisp Enemys[1] := $0001; //ogre Enemys[2] := $002F; //Reaper Enemys[3] := $0008; // corpser Enemys[4] := $0035; //troll Enemys[5] := $001C; //Giant Spider Enemys[6] := $0036; //troll2 Enemys[7] := $0023; //lizard Enemys[8] := $0024; //lizard Enemys[9] := $0003; //zombie Enemys[10] := $0011; // orc Enemys[11] := $001E; //harpy Enemys[12] := $002A; // Ratman Enemys[13] := $0032; // skeleton Enemys[14] := $0033; // skeleton Enemys[15] := $0034; // skeleton Enemys[16] := $0035; // skeleton Enemys[17] := $0036; // skeleton Enemys[18] := $0037; // skeleton Enemys[19] := $0038; // skeleton Enemys[20] := $000D; // air elem Enemys[21] := $0098; // goul Enemys[22] := $0016; // gazer Enemys[23] := $0012; // ettin2 Enemys[24] := $00EA; // олень Enemys[25] := $00E8; // bull Enemys[26] := $00E7; // cow Enemys[27] := $00D4; // grizzly Enemys[28] := $00D6; // panther Enemys[29] := $001F; // HandOne Enemys[30] := $003F; // coguar Enemys[31] := $0122; // boar Enemys[32] := $0019; // gray wolf Enemys[33] := $00CB; // pig Enemys[34] := $00E1; // timber wolf Enemys[35] := $00C8; // horse Enemys[36] := $00CF; // sheep Enemys[37] := $00ED; // hind Enemys[38] := $00D1; // goat Enemys[39] := $0005; // eagle Enemys[40] := $00D3; // black bear Enemys[41] := $00E9; // bull Enemys[42] := $00A7; // brown bear Enemys[43] := $00E2; // horse Enemys[44] := $001B // greywolf Enemys[45] := $00D8; // cow Enemys[46] := $0004; // gorgule Enemys[47] := $00E4; // horse Enemys[48] := $0099; // goul Enemys[48] := $00CC; //horse //$003A; //wisp // -- Coord -- CoordX[0] := 1206; CoordY[0] := 967; CoordX[1] := 1199; CoordY[1] := 996; CoordX[2] := 1192; CoordY[2] := 1034; CoordX[3] := 1145; CoordY[3] := 1025; CoordX[4] := 1148; CoordY[4] := 1065; CoordX[5] := 1153; CoordY[5] := 1108; CoordX[6] := 2552; CoordY[6] := 213; CoordX[7] := 1124; CoordY[7] := 1136; CoordX[8] := 1118; CoordY[8] := 1100; CoordX[9] := 1113; CoordY[9] := 1061; CoordX[10] := 2534; CoordY[10] := 168; CoordX[11] := 1105; CoordY[11] := 1028; CoordX[12] := 1158; CoordY[12] := 1036; CoordX[13] := 1070; CoordY[13] := 1069; CoordX[14] := 1092; CoordY[14] := 1093; CoordX[15] := 1098; CoordY[15] := 1134; CoordX[16] := 1101; CoordY[16] := 1175; CoordX[17] := 1079; CoordY[17] := 1194; CoordX[18] := 1072; CoordY[18] := 1159; CoordX[19] := 1071; CoordY[19] := 1127; CoordX[20] := 1065; CoordY[20] := 1089; CoordX[21] := 1040; CoordY[21] := 1122; CoordX[22] := 1042; CoordY[22] := 1167; CoordX[23] := 1048; CoordY[23] := 1207; CoordX[24] := 1043; CoordY[24] := 1249; CoordX[25] := 1016; CoordY[25] := 1221; CoordX[26] := 990; CoordY[26] := 1176; CoordX[27] := 945; CoordY[27] := 1176; CoordX[28] := 956; CoordY[28] := 1203; CoordX[29] := 918; CoordY[29] := 1194; CoordX[30] := 945; CoordY[30] := 1228; CoordX[31] := 886; CoordY[31] := 1255; CoordX[33] := 919; CoordY[33] := 1264; CoordX[34] := 2352; CoordY[34] := 201; CoordX[35] := 949; CoordY[35] := 1276; CoordX[36] := 988; CoordY[36] := 1260; CoordX[37] := 1028; CoordY[37] := 1254; CoordX[38] := 1036; CoordY[38] := 1288; CoordX[39] := 999; CoordY[39] := 1294; CoordX[40] := 948; CoordY[40] := 1303; CoordX[41] := 988; CoordY[41] := 1320; CoordX[42] := 1030; CoordY[42] := 1302; CoordX[43] := 1038; CoordY[43] := 1334; CoordX[44] := 1008; CoordY[44] := 1282; CoordX[45] := 1025; CoordY[45] := 1440; CoordX[46] := 1046; CoordY[46] := 1459; CoordX[47] := 1058; CoordY[47] := 1434; CoordX[48] := 1041; CoordY[48] := 1419; CoordX[49] := 1068; CoordY[49] := 1394; CoordX[50] := 1045; CoordY[50] := 1386; CoordX[51] := 1075; CoordY[51] := 1383; CoordX[52] := 1060; CoordY[52] := 1355; //------ //weaponckeck; while not dead do begin IgnoreReset; Ignore(self); checkhp; for i := 0 to 5 do begin //ClearJournal; //checkhp; GotoOnBoad; AddToSystemJournal('Осталось бандаг: ' + IntToStr(Count($0E21))); AddToSystemJournal('Осталось еды: ' + IntToStr(Count($097B))); // --- домой - брать шмот и сбрасывать голд -- checkall; killenemy; checkcorpes; //UseType(EatType,$0000); //UseType(EatType,$0000); //UseType(EatType,$0000); //UseType(EatType,$0000); //SetGlobal('stealth','TestVar1','Контролька перед домом. Зачистим.'); //NewMoveXY(Point1X,Point1Y, True, 0, True); //killenemy; //Wait(500); //checkhp; // --- конец домой - брать шмот и сбрасывать голд -- Badloc; for c :=0 to 32 do begin //if (GetStam(self) < 80) then // begin // Cast('Divine Fury'); // wait(1500); // end; SetGlobal('stealth','TestVar1','Идем к точке '+IntToStr(c)); NewMoveXY(CoordX[c],CoordY[c], True, 0, True); killenemy; killenemy; checkcorpes; checkall; checkhp; end; FindType($0EF0,BackPack); Addtosystemjournal('Круг 1 проиден... Gold в паке: ' + IntToStr(GOLD)); Addtosystemjournal('Сильвера в паке: ' + IntToStr(FindFullQuantity)); GotoOnBoad; AddToSystemJournal('Осталось бандаг: ' + IntToStr(Count($0E21))); AddToSystemJournal('Осталось еды: ' + IntToStr(Count($097B))); for c :=33 to 52 do begin //if (GetStam(self) < 80) then // begin // Cast('Divine Fury'); // wait(1500); // end; SetGlobal('stealth','TestVar1','Идем к точке '+IntToStr(c)); NewMoveXY(CoordX[c],CoordY[c], True, 0, True); killenemy; killenemy; checkcorpes; checkall; checkhp; end; FindType($0EF0,BackPack); Addtosystemjournal('Круг 2 проиден... Gold в паке: ' + IntToStr(GOLD)); Addtosystemjournal('Сильвера в паке: ' + IntToStr(FindFullQuantity)); AddToSystemJournal('Осталось бандаг: ' + IntToStr(Count($0E21))); AddToSystemJournal('Осталось еды: ' + IntToStr(Count($097B))); end; end; End.