Page 1 of 1
Скрипт на персонажа-грушу (DRW)
Posted: 23.08.2008 12:06
by dukeduke
Простой скриптик на персонажа, на котором мона качать других персонажей:
Code: Select all
Program Healing;
{$Include 'all.inc'}
const
Eat=$09bb; {тип еды}
Washbasin=$403116db; {мойка}
bloodbandages=$0E20; {кровавые бинты, тип}
CharHP=177; {количество здоровья у персонажа груши}
ElBow=$404aa15e; {ельвин лук}
BoxSunduk=$4037064e; {сундук для безопасного хранения ельвин лука}
var
Str1,str2,str3,str4,str5:String;
bandages:cardinal;
BEGIN
AddToSystemJournal('СКРИПТ ЗАГРУЖЕН!');
bandages:=FindType($0E21,backpack);
Str1:='You bandage';
Str2:='You put ';
Str3:='You sucessfully ';
Str4:='Do you ';
Str5:='You must wait to perform another action';
WaitConnection(5000);
While not Dead do
begin
If Life >= CharHP then
begin
MoveItem(ElBow,1,Backpack,0,0,0);
Wait(800);
UseObject(ElBow);
Wait(3000);
UOSay('go');
SetWarMode(true);
While Life > (CharHP - 100) do Wait(100);
end;
UOSay('stay');
SetWarMode(false);
MoveItem(ElBow,1,BoxSunduk,0,0,0);
While HP < CharHP do
Begin
AddToSystemJournal('Лечимся');
SetWarMode(false);
UseObject(bandages);
SetWarMode(false);
WaitTargetSelf;
SetWarMode(false);
While (InJournal(str1)<0) and (InJournal(str2)<0) and (InJournal(str3)<0) and (InJournal(str4)<0) and (InJournal(str5)<0) do wait(500);
SetWarMode(false);
Wait(2500);
SetWarMode(false);
end;
Wait(100);
SetWarMode(false);
FindType(bloodbandages,backpack);
SetWarMode(false);
if FindCount >= 1 then
begin
wait(100);
SetWarMode(false);
AddToSystemJournal('Начинаю мыть бинты');
SetWarMode(false);
UseObject(finditem);
SetWarMode(false);
WaitForTarget(5000);
SetWarMode(false);
if TargetPresent then TargetToObject(Washbasin);
SetWarMode(false);
wait(100);
SetWarMode(false);
AddToSystemJournal('Вымыл бинты');
SetWarMode(false);
FindType(Eat,backpack);
SetWarMode(false);
if FindCount >= 1 then
begin
SetWarMode(false);
AddToSystemJournal('кушаем');
SetWarMode(false);
UseObject(finditem);
SetWarMode(false);
end else
SetWarMode(false);
AddToSystemJournal('нечего кушать');
end else
SetWarMode(false);
AddToSystemJournal('Нечего мыть');
end;
END.
Posted: 23.08.2008 12:10
by dukeduke
Кароче так - у персонажа-груши должно быть в бекпаке бинтов уйма, мойка, жрачка! А у того кто качается должен быть скрипт на го\стей спаринг, иногда при плохом конекте скрипт глючит!
Posted: 08.09.2008 1:12
by Beren
У меня несколько иной скрипт. Рабочий, правда не знаю на счёт того, убивал ли я когда-нибудь куклу, возможно ведь, что просто потом воскрешал)))
Code: Select all
Program Dummy;
const
Enemy=$000C8B01; // ID противника
EnemyType=$0190; // Тип противника
Weapons=$4037BE9B;// ID оружия
clean_bandages = $0E21;// Тип чистых бинтов
bloody_bandages =$0E20;// Тип кровавых бинтов
a_wash_basin =$1008;// Тип чашки для мытья бинтов
EatType=$160A;// Тип еды
lim_iter=300;// Максимальное количество итераций;
Min_Damage=11; // Минимально допустимое кол-во условных пунктов жизни противника
var
TempDamage: integer; // жизнь противника в условных единицах
Body:Cardinal; // для поиска противника
iter: integer; // условие выхода из цикла
{$Include 'all.inc'}
function to_out(do_iter:boolean):boolean;
begin
if do_iter then iter:=iter+1;
Body:= FindType(EnemyType,Ground);
if (((not connected) and (Body=0)) or ((iter>lim_iter) and do_iter)) then
begin
Result:= true;
iter:=0;
end
else Result:= false;
end;
procedure Wash;
begin
UseObject(FindType(bloody_bandages,Backpack));
repeat
wait(100);
checksave;
until ((targetpresent) or to_out(true));
WaitTargetObject(FindType(a_wash_basin,Backpack));
end;
procedure Heal;
var
ctime : TDateTime;
begin
SetWarMode(false);
repeat
ctime := Now;
checksave;
UseObject(FindType(clean_bandages,Backpack));
repeat
wait(250);
checksave;
until ((targetpresent) or to_out(true));
WaitTargetObject(Enemy);
repeat
wait(100);
checksave;
until (((InJournalBetweenTimes('You put the bloody bandage in your pack.|You apply the bandages, but they barely help.|does not need you to
heal or cure him.|You can''t use another bandage yet!', ctime, Now))<>-1) or to_out(true));
wait(250);
until (((InJournalBetweenTimes('does not need you to heal or cure him.', ctime, Now))<>-1) or to_out(true));
wait(250);
Wash;
end;
Begin
FindDistance:=1;
iter:=0;
clearjournal;
while not Dead do
begin
if Connected then
begin
checksave;
Equip(RhandLayer,Weapons);
UseObject(FindType(EatType,Backpack));
Attack(Enemy);
repeat
TempDamage:=GetHP(Enemy);
checksave;
wait(100);
until ((TempDamage<Min_Damage) or to_out(false));
iter:=0;
Heal;
end;
end;
End.
Re: Скрипт на персонажа-грушу (DRW)
Posted: 15.10.2008 16:51
by -Bulevif-
спс за скриптик

Posted: 09.11.2009 17:51
by Maruk
18:50:58 [myst]: Compiling
18:50:58 [myst]: Compiler: [Error] (спаринг3.sc at 60:34): tbtString error
18:50:58 [myst]: Compiler: [Error] (спаринг3.sc at 60:34): Syntax error
18:50:58 [myst]: Compiling failed
18:50:58 [myst]: Script спаринг3.sc stopped successfuly
Вот такая батва
Posted: 09.11.2009 23:53
by WladL
Code: Select all
until (((InJournalBetweenTimes('You put the bloody bandage in your pack.|You apply the bandages, but they barely help.|does not need you to
heal or cure him.|You can''t use another bandage yet!', ctime, Now))<>-1) or to_out(true));
замени на
Code: Select all
until (((InJournalBetweenTimes('bloody|barely|does not need|bandage yet', ctime, Now))<>-1) or to_out(true));
Posted: 10.03.2010 19:08
by Faxford
Re:
Posted: 22.01.2012 14:46
by Delmar
Beren wrote:У меня несколько иной скрипт. Рабочий, правда не знаю на счёт того, убивал ли я когда-нибудь куклу, возможно ведь, что просто потом воскрешал)))
Code: Select all
Program Dummy;
const
Enemy=$000C8B01; // ID противника
EnemyType=$0190; // Тип противника
Weapons=$4037BE9B;// ID оружия
clean_bandages = $0E21;// Тип чистых бинтов
bloody_bandages =$0E20;// Тип кровавых бинтов
a_wash_basin =$1008;// Тип чашки для мытья бинтов
EatType=$160A;// Тип еды
lim_iter=300;// Максимальное количество итераций;
Min_Damage=11; // Минимально допустимое кол-во условных пунктов жизни противника
var
TempDamage: integer; // жизнь противника в условных единицах
Body:Cardinal; // для поиска противника
iter: integer; // условие выхода из цикла
{$Include 'all.inc'}
function to_out(do_iter:boolean):boolean;
begin
if do_iter then iter:=iter+1;
Body:= FindType(EnemyType,Ground);
if (((not connected) and (Body=0)) or ((iter>lim_iter) and do_iter)) then
begin
Result:= true;
iter:=0;
end
else Result:= false;
end;
procedure Wash;
begin
UseObject(FindType(bloody_bandages,Backpack));
repeat
wait(100);
checksave;
until ((targetpresent) or to_out(true));
WaitTargetObject(FindType(a_wash_basin,Backpack));
end;
procedure Heal;
var
ctime : TDateTime;
begin
SetWarMode(false);
repeat
ctime := Now;
checksave;
UseObject(FindType(clean_bandages,Backpack));
repeat
wait(250);
checksave;
until ((targetpresent) or to_out(true));
WaitTargetObject(Enemy);
repeat
wait(100);
checksave;
until (((InJournalBetweenTimes('You put the bloody bandage in your pack.|You apply the bandages, but they barely help.|does not need you to
heal or cure him.|You can''t use another bandage yet!', ctime, Now))<>-1) or to_out(true));
wait(250);
until (((InJournalBetweenTimes('does not need you to heal or cure him.', ctime, Now))<>-1) or to_out(true));
wait(250);
Wash;
end;
Begin
FindDistance:=1;
iter:=0;
clearjournal;
while not Dead do
begin
if Connected then
begin
checksave;
Equip(RhandLayer,Weapons);
UseObject(FindType(EatType,Backpack));
Attack(Enemy);
repeat
TempDamage:=GetHP(Enemy);
checksave;
wait(100);
until ((TempDamage<Min_Damage) or to_out(false));
iter:=0;
Heal;
end;
end;
End.
Это как я понял, он тупо бьёт куклу, хилит и тд. Так, да?)
Re: Скрипт на персонажа-грушу (DRW)
Posted: 08.02.2012 16:46
by +Ghost+
Да этот скрипт бьет и лечит) У меня вопросик в другом, я недавно вернулся и все позабыл в уо, играю на ДРВ! Скажите пожалуйста почему когда я запущу скрипт он побьет куклу, начинает лечить и стоит и лечит, кукла уже в мумию от бинтов превращается, давно полечив он все равно пытается лечить, но бить так и не начинает! Скажите в чем проблема ...
Code: Select all
Program Dummy;
const
Enemy=$0004FEA7; // ID противника
EnemyType=$0191; // Тип противника
Weapons=$400B27B4;// ID оружия
clean_bandages = $0E21;// Тип чистых бинтов
bloody_bandages =$0E20;// Тип кровавых бинтов
a_wash_basin =$1008;// Тип чашки для мытья бинтов
EatType=$160A;// Тип еды
lim_iter=300;// Максимальное количество итераций;
Min_Damage=11; // Минимально допустимое кол-во условных пунктов жизни противника
var
TempDamage: integer; // жизнь противника в условных единицах
Body:Cardinal; // для поиска противника
iter: integer; // условие выхода из цикла
{$Include 'all.inc'}
function to_out(do_iter:boolean):boolean;
begin
if do_iter then iter:=iter+1;
Body:= FindType(EnemyType,Ground);
if (((not connected) and (Body=0)) or ((iter>lim_iter) and do_iter)) then
begin
Result:= true;
iter:=0;
end
else Result:= false;
end;
procedure Wash;
begin
UseObject(FindType(bloody_bandages,Backpack));
repeat
wait(500);
checksave;
until ((targetpresent) or to_out(true));
WaitTargetObject(FindType(a_wash_basin,Backpack));
end;
procedure Heal;
var
ctime : TDateTime;
begin
SetWarMode(false);
repeat
ctime := Now;
checksave;
UseObject(FindType(clean_bandages,Backpack));
repeat
wait(2500);
checksave;
until ((targetpresent) or to_out(true));
WaitTargetObject(Enemy);
repeat
wait(500);
checksave;
until (((InJournalBetweenTimes('bloody|barely|does not need|bandage yet', ctime, Now))<>-1) or to_out(true));
wait(250);
until (((InJournalBetweenTimes('does not need you to heal or cure him.', ctime, Now))<>-1) or to_out(true));
wait(250);
Wash;
end;
Begin
FindDistance:=1;
iter:=0;
clearjournal;
while not Dead do
begin
if Connected then
begin
checksave;
Equip(RhandLayer,Weapons);
UseObject(FindType(EatType,Backpack));
Attack(Enemy);
repeat
TempDamage:=GetHP(Enemy);
checksave;
wait(200);
until ((TempDamage<Min_Damage) or to_out(false));
iter:=0;
Heal;
end;
end;
End.
Re: Скрипт на персонажа-грушу (DRW)
Posted: 10.02.2012 16:25
by Kynep
Это,
Code: Select all
until (((InJournalBetweenTimes('does not need you to heal or cure him.', ctime, Now))<>-1) or to_out(true));
замени на это:
Code: Select all
until (GetHP(Enemy) = GetMaxHP(Enemy)) OR (to_out(true));
Re: Скрипт на персонажа-грушу (DRW)
Posted: 16.02.2012 14:33
by Dsk
[quote="+Ghost+"]Да этот скрипт бьет и лечит) У меня вопросик в другом, я недавно вернулся и все позабыл в уо, играю на ДРВ! Скажите пожалуйста почему когда я запущу скрипт он побьет куклу, начинает лечить и стоит и лечит, кукла уже в мумию от бинтов превращается, давно полечив он все равно пытается лечить, но бить так и не начинает! Скажите в чем проблема ...
until (((InJournalBetweenTimes('does not need you to heal or cure him.', ctime, Now))<>-1) or to_out(true));
либо тупо проблема в этой фразе когда чар кукла девушка то фраза будет cure her. а когда мужик то будет cure him. и того что сделать тупо можно
until (((InJournalBetweenTimes('does not need you to heal or cure him.|does not need you to heal or cure her.', ctime, Now))<>-1) or to_out(true));
я лично сделал так у меня пашет без б ну как описал выше купер ето 100% лудший вариант

Re: Скрипт на персонажа-грушу (DRW)
Posted: 16.02.2012 17:29
by MuDaCk
Сходу вижу несколько ошибок:
правильно "луЧший" и текст кода лучше хаключать в теги