Code: Select all
{$Include 'all.inc'}
var err,g,allowed,allowed2,terpila,xjoke: integer;
var List : Array [0..41] of integer; // Если был дописан чар, тут менять цифру!
var Check: String;
procedure GetResFromGround(tmptyp : cardinal; tmpstr : string);
Var m, p : integer;
begin
FindDistance:=2;
findtype(tmptyp,ground);
if FindCount > 0 then
begin
m := FindQuantity;
Grab(FindItem,m)
UOsay('Взял ' + inttostr(m) + ' ' + tmpstr + '. Спасибо! ');
end;
end;
procedure isinlist;
begin
List[1]:=$0000156F //
List[2]:=$0000258A //
List[3]:=$000BC551 //
List[4]:=$000BDC14 //
List[5]:=$000030BB //
List[6]:=$00132CFD //
List[7]:=$0004C683 //
List[8]:=$00043E64 //
List[9]:=$00174EFA //
List[10]:=$000320DF //
List[11]:=$0003F025 //
List[12]:=$00049702 //
List[13]:=$0004C683 //
List[14]:=$000027D0 //
List[15]:=$0004FF77 //
List[16]:=$0001F510 //
List[17]:=$0002F680 //
List[18]:=$0001B1E3 //
List[19]:=$00008De4 //
List[20]:=$00004E1c //
List[21]:=$001D9ED0 //
List[22]:=$99999999 //
List[23]:=$99999999 //
List[24]:=$99999999 //
List[25]:=$99999999 //
List[26]:=$99999999 //
List[27]:=$99999999 //
List[28]:=$99999999 //
List[29]:=$99999999 //
List[30]:=$99999999 //
List[31]:=$99999999 //
List[32]:=$99999999 //
List[33]:=$99999999 //
List[34]:=$99999999 //
List[35]:=$99999999 //
List[36]:=$99999999 //
List[37]:=$99999999 //
List[38]:=$99999999 //
List[39]:=$99999999 //
List[40]:=$99999999 //
List[41]:=$99999999 //
// Дописывать после последнего!
allowed:=0;
for g := 0 to 41 do // ТУт тож менять посл цифру !!
begin
if terpila=List[g] then
begin
allowed:=1;
end;
end;
if allowed=0 then
begin
UOSAY(GetName(LineID) + ' ты кто такой? я тебя не знаю!')
end;
End;
Procedure saysomethin;
var joke : Array [1..2] of String;
Begin
joke[1] := 'Flash может разменять неразменную монету.';
joke[2] := 'Дьявол продал свою душу Flash.';
If xjoke<2 then
begin
UOSay(joke[xjoke]);
end;
End;
procedure checkreags;
begin
allowed2:=1
FindTypeEx($0F86,0,backpack,true);
if FindCount < 1 then
begin
allowed2:=0
UOSAY('Реагенты закончились, кастить не буду!')
wait(2000);
UOSAY('Кинь на пол Mr и скажи *reags*')
end;
FindTypeEx($0F84,0,backpack,true);
if FindCount < 1 then
begin
allowed2:=0
UOSAY('Реагенты закончились, кастить не буду!')
wait(2000);
UOSAY('Кинь на пол Gr и скажи *reags*')
end;
FindTypeEx($0F88,0,backpack,true);
if FindCount < 1 then
begin
allowed2:=0
UOSAY('Реагенты закончились, кастить не буду!')
wait(2000);
UOSAY('Кинь на пол Ns и скажи *reags*')
end;
FindTypeEx($0F8C,0,backpack,true);
if FindCount < 1 then
begin
allowed2:=0
UOSAY('Реагенты закончились, кастить не буду!')
wait(2000);
UOSAY('Кинь на пол Sa и скажи *reags*')
end;
FindTypeEx($0F7A,0,backpack,true);
if FindCount < 1 then
begin
allowed2:=0
UOSAY('Реагенты закончились, кастить не буду!')
wait(2000);
UOSAY('Кинь на пол Bp и скажи *reags*')
end;
FindTypeEx($0F8D,0,backpack,true);
if FindCount < 1 then
begin
allowed2:=0
UOSAY('Реагенты закончились, кастить не буду!')
wait(2000);
UOSAY('Кинь на пол Ss и скажи *reags*')
end;
FindTypeEx($0F7B,0,backpack,true);
if FindCount < 1 then
begin
allowed2:=0
UOSAY('Реагенты закончились, кастить не буду!')
wait(2000);
UOSAY('Кинь на пол Bm и скажи *reags*')
end;
FindTypeEx($0F85,0,backpack,true);
if FindCount < 1 then
begin
allowed2:=0
UOSAY('Реагенты закончились, кастить не буду!')
wait(2000);
UOSAY('Кинь на пол Gs и скажи *reags*')
end;
clearjournal;
end;
procedure buff;
begin
err:=0;
injournal('*cast*');
terpila:=LineID;
isinlist;
checkreags;
if ((allowed=1) and (allowed2=1)) then
begin
if (getdistance(LineID)>10) then
begin
UOSAY(GetName(LineID) + ' а ты ещё дальше встать не мог?')
err:=1;
end;
if err=0 then
begin
UOSAY(GetName(LineID) + ' сейчас я тебя кааак закастую!')
Waittargetobject(LineID)
cast('Magic Arrow');
wait(1500);
Waittargetobject(LineID)
cast('Agility');
wait(1500);
Waittargetobject(LineID)
cast('Cunning');
wait(1500);
Waittargetobject(LineID)
cast('Strength');
wait(1500);
Waittargetobject(LineID)
cast('Bless');
wait(2500);
Waittargetobject(LineID)
cast('Arch Protection');
wait(3500);
Waittargetobject(LineID)
cast('Greater Heal');
wait(1500);
UOSAY(GetName(LineID) + ' готов. Следующий!')
end;
end;
end;
procedure dispell;
begin
err:=0;
injournal('*dispel');
terpila:=LineID;
isinlist;
checkreags;
if ((allowed=1) and (allowed2=1)) then
begin
if (getdistance(LineID)>10) then
begin
UOSAY(GetName(LineID) + ' а ты ещё дальше стать не мог?')
err:=1;
end;
if err=0 then
begin
UOSAY(GetName(LineID) + ' шо, покурсили тебя, да?')
Waittargetobject(LineID)
cast('Magic Arrow');
wait(1500);
Waittargetobject(LineID)
cast('Dispel');
wait(3500);
UOSAY(GetName(LineID) + ' готов. Следующий!')
end;
end;
end;
procedure heal;
begin
err:=0;
injournal('*heal');
terpila:=LineID;
isinlist;
checkreags;
if ((allowed=1) and (allowed2=1)) then
begin
if (getdistance(LineID)>10) then
begin
UOSAY(GetName(LineID) + ' а ты ещё дальше стать не мог?')
err:=1;
end;
if err=0 then
begin
UOSAY(GetName(LineID) + ' бедняжка, кто тебя обидел?')
Waittargetobject(LineID)
cast('Greater Heal');
wait(2500);
UOSAY(GetName(LineID) + ' готов. Следующий!')
end;
end;
end;
procedure cure;
begin
err:=0;
injournal('*cure');
terpila:=LineID;
isinlist;
checkreags;
if ((allowed=1) and (allowed2=1)) then
begin
if (getdistance(LineID)>10) then
begin
UOSAY(GetName(LineID) + ' а ты ещё дальше стать не мог?')
err:=1;
end;
if err=0 then
begin
UOSAY(GetName(LineID) + ' отравился, что-ли?')
Waittargetobject(LineID)
cast('Arch Cure');
wait(2500);
UOSAY(GetName(LineID) + ' готов. Следующий!')
end;
end;
end;
procedure checkmana;
begin
if getmana(self)<50 then
begin
Useskill('Meditation')
wait(10000)
clearjournal;
end;
end;
begin
while true do
begin
checkmana;
if (InJournal('*cast*')<>-1) then begin
buff;
clearjournal;
end;
if (InJournal('*dispel*')<>-1) then begin
dispell;
clearjournal;
end;
if (InJournal('*heal*')<>-1) then begin
heal;
clearjournal;
end;
if (InJournal('*cure*')<>-1) then begin
cure;
clearjournal;
end;
if (InJournal('*reags*')<>-1) then begin
GetResFromGround($0F86,'Mr');
wait(300);
GetResFromGround($0F84,'Gr');
wait(300);
GetResFromGround($0F88,'Ns');
wait(300);
GetResFromGround($0F8C,'Sa');
wait(300);
GetResFromGround($0F7A,'Bp');
wait(300);
GetResFromGround($0F8D,'Ss');
wait(300);
GetResFromGround($0F7B,'Bm');
wait(300);
GetResFromGround($0F85,'Gs');
wait(300);
clearjournal;
end;
if (InJournal('*food*')<>-1) then begin
GetResFromGround($097B,'хавки');
wait(300);
clearjournal;
end;
if (InJournal('help')<>-1) then begin
UOSAY('Я понимаю команды cast, heal, dispel,cure,food написанные в звёздочках (*)')
wait(1000);
clearjournal;
end;
wait(1000)
saysomethin;
Hungry(1,backpack);
end;
end.
Code: Select all
13:34:47 [bz]: Compiling
13:34:47 [bz]: Compiler: [Hint] (Bless .sc at 14:5): Variable 'P' never used
13:34:47 [bz]: Compiler: [Hint] (Bless .sc at 7:5): Variable 'CHECK' never used
13:34:47 [bz]: Compiled succesfully
13:34:48 [bz]: Out Of Range at 34.221
13:34:48 [bz]: Script Bless .sc stoped successfuly
Code: Select all
program cast;
const
sunduk = $54C6F6B6;
var
r,i : integer;
s : string;
MissingReg : cardinal;
Reags : array[1..8] of cardinal;
ctime : TDateTime;
{$Include 'all.inc'}
function timer(var acttimer:integer;actafter:integer):boolean;
begin
result:=false;
acttimer:=acttimer+1;
if acttimer>=actafter then
begin
acttimer:=0;
result:=true;
end;
end;
procedure CheckJournal;
begin
if int < 180 then
begin
waittargetself;
Cast('Bless');
wait(3000);
checksave;
waittargetself;
Cast('Cunning');
wait(3000);
checksave;
exit;
end;
if InJournalBetweenTimes('hp', ctime, Now) <> -1 then
begin
WaitTargetObject(LineID);
cast('Greater Heal');
exit;
end;
if InJournalBetweenTimes('arm', ctime, Now) <> -1 then
begin
WaitTargetObject(LineID);
cast('Arch Protection');
exit;
end;
if InJournalBetweenTimes('bless', ctime, Now) <> -1 then
begin
WaitTargetObject(LineID);
cast('Bless');
exit;
end;
if InJournalBetweenTimes('cast', ctime, Now) <> -1 then
begin
WaitTargetObject(LineID);
cast('Bless');
wait(2500);
WaitTargetObject(LineID);
Cast('Agility');
wait(2500);
WaitTargetObject(LineID);
Cast('Strength');
wait(2500);
WaitTargetObject(LineID);
Cast('Cunning');
wait(2500);
WaitTargetObject(LineID);
Cast('Arch Protection');
wait(3000);
WaitTargetObject(LineID);
Cast('Greater Heal');
wait(2000);
exit;
end;
if InJournalBetweenTimes('macro', ctime, Now) <> -1 then
begin
WaitTargetObject(LineID);
cast('Bless');
wait(3000);
WaitTargetObject(LineID);
Cast('Agility');
wait(3000);
WaitTargetObject(LineID);
Cast('Heal');
wait(3000);
exit;
end;
if InJournalBetweenTimes('dispel', ctime, Now) <> -1 then
begin
WaitTargetObject(LineID);
Cast('Dispel');
end;
end;
function CheckReags : boolean;
begin
Result := True;
Reags[1] := $0F7B // BloodMosss
Reags[2] := $0F7A // BlackPearls
Reags[3] := $0F84 // Garlick
Reags[4] := $0F85 // Ginseng
Reags[5] := $0F86 // Madrake Roots
Reags[6] := $0F88 // NightShades
Reags[7] := $0F8C // Sulphuruos Ashs
Reags[8] := $0F8D // Spider Silks
for r := 1 to 8 do
begin
findtype(Reags[r],BackPack);
if findcount = 0 then
begin
MissingReg := Reags[r];
Result := False;
end;
end;
end;
procedure Waiting;
begin
if MissingReg = $0F7B then s := 'BloodMosss';
if MissingReg = $0F7A then s := 'BlackPearls';
if MissingReg = $0F84 then s := 'Garlick';
if MissingReg = $0F85 then s := 'Ginseng';
if MissingReg = $0F86 then s := 'Madrake Roots';
if MissingReg = $0F88 then s := 'NightShades';
if MissingReg = $0F8C then s := 'Sulphuruos Ashs';
if MissingReg = $0F8D then s := 'Spider Silks';
AddToSystemJournal('KoH4uJIucb ' + s);
while (not CheckReags) do
begin
ctime := now;
wait(10000);
if InJournalBetweenTimes('dispel|cast|macro|arm|hp', ctime, Now) <> -1 then uosay('KoH4uJIucb ' + s );
uosay(' ');
findtype(MissingReg,sunduk);
if findcount > 0 then MoveItems(sunduk, MissingReg, $FFFF, backpack, 0, 0, 0, 500);
end;
end;
BEGIN
uosay('.showclasse');
useobject(sunduk);
MissingReg := 0;
while (not dead) do
begin
if (not CheckReags) then Waiting;
ctime:=now;
wait(1000);
checksave;
if timer(i,100) then
begin
Hungry(1,backpack);
uosay(' ');
end;
if TargetPresent then CancelTarget;
CheckJournal;
if mana < 35 then
begin
wait(1000);
useskill('Meditation');
WaitJournalLine(now,'stop medit',30000);
checksave;
end;
end;
END.
А просьба такова: Очень хотелось что бы починили первый скрипт или добавили во второй что бы он кастовал не на всех подрят, а на людей из списка.
Пожааалуйста, ооочень надо. Спасибо[/code]