Page 1 of 1

2 таргета

Posted: 06.07.2009 13:47
by MeLFiS
как написать скрипт сразу на 2 таргита ??

Posted: 06.07.2009 13:57
by Vizit0r
как-то.

я не телепат - какой вопрос, такой и ответ.

P.S. хочешь нормальный ответ - пиши что именно надо.

Posted: 06.07.2009 17:19
by MeLFiS

Code: Select all

rogram Arms; 
var t : Integer; 

{$Include 'all.inc'} 

Begin 
SetARStatus(true); 
clearjournal;
while not Dead do 
 begin 
  if Connected then 
  begin 
   for t := 0 to 10 do 
   begin 
        if TargetPresent then CancelTarget;  
        CheckTargetError(5,2);  
        CheckSave; 
UseObject($74B34358);
WaitTargetObject($00248A90);
wait(1000)
WaitTargetObject($00248A90); // ID вещи 

   end; 
   end; 
 end; 
End.
Это скрипт на хердинг но у меня на сервере нету на него задержки и вот после не долгой качки чара постояно выкидывает из-за таргет ерора, а если я уберу CheckTargetError тогда скрипт не будет работать, вопрос в том как написать скрипт на 2 таргета чтобы он работал нормально

Posted: 08.07.2009 13:55
by MeLFiS
визитор так что ?

Posted: 08.07.2009 14:23
by Vizit0r

Code: Select all

Program Prov;
var
t:byte;
Skilltimer:TdateTime;
Const
Animal = $019927E6; //животное для макроса

{$Include 'all.inc'}

procedure CheckDead;
var SayTimer : Cardinal;
begin
SayTimer := 0;
CheckSave;
if Dead then
begin
 SetWarMode(true);
 WaitGump('1');
 wait(2000);
 while (Dead) do
    begin
    //uosay('.forgivethee')
    WaitGump('1');
    if Timer > (SayTimer + (5 * 60 * 1000)) then
        begin
        UOSay('.c I''m was killed');
        SayTimer := Timer;
        SetWarMode(true);
        end;
    Wait (1000);
    end;
 WaitConnection(3000);
 CheckSave;
 WaitConnection(3000);
 CheckSave;
 Hungry(1,ground);
 end
end;

procedure CHeckMusic;
Var music: Array of Word;
ggg: integer;
begin
music:=[$0EB4,$0EB3,$0EB2,$0EB1,$0E9C,$0E9D];
WaitConnection(3000);
checksave;
checkDead;
for ggg:= 0 to getArrayLength(music)-1 do
begin
WaitConnection(5000);
checksave;
checkDead;
if Count(music[ggg])<>0 then Exit;
end;
for ggg:= 0 to getArrayLength(music)-1 do
begin
WaitConnection(5000);
checksave;
checkDead;
if CountGround(music[ggg])<>0 then begin Grab(findtype(music[ggg],ground),1);AddToSystemJournal('Осталось '+IntToStr(CountGround(music[ggg]))); exit; end;
end;
end;

Begin
FindDistance:=30;
SetARStatus(true);
Hungry(1,ground);
while true do
begin
for t:= 0 to 30 do  
begin 
 if targetpresent then canceltarget;
Checktargeterror(10,3);
CheckSave;
checkDead;
CHeckMusic;
{  UseSkill('Provocation');
  wait(1500);                     }
if targetpresent then CancelTarget;
WaitConnection(3000);
if Skilltimer<> 0 then while ((Skilltimer+(0.05/1440))> Now) do Wait(100);
//repeat
Waitconnection(5000);
Checksave;
Checkdead;
  Skilltimer:=Now;  
WaitTargetObject(Animal);
  UseSkill('Provocation');
//until
WaitJournalLine(Skilltimer, 'onto|play|You enrage|I am already',10000); //serching in journal
  WaitForTarget(4050);
  if TargetPresent then TargetToObject(self);
  wait(2000);
end;
Hungry(1,ground);
end;   
End.
проверь, я уже не помню что за скрипт, правильный или нет.

если не будет работать нормально - скажешь, опишу подробнее.

Posted: 09.07.2009 10:48
by MeLFiS
это провокацыя))

Posted: 10.07.2009 10:14
by alpi
попробуй поставить задержку несколько секунд после последнего таргета.
и зачем там цикл for интересно?

Posted: 10.07.2009 11:02
by Vizit0r
потому что некоторые извращенцы проверяют таким образом сытость - поставить таймер - это уметь надо, а так выполнил цикл 30 раз, проверил сытость и прочее.
при этом что-то может слететь запросто и эти 30 кругов выполнятся за секунду-две, и постоянно будет проверяться сытость - но кого это волнует?

Posted: 10.07.2009 11:54
by MeLFiS
alpi wrote:попробуй поставить задержку несколько секунд после последнего таргета.
и зачем там цикл for интересно?
Не знаю зачем там фор просто умею пока токо такие скрипты писать )) уродуя другие так что поможете с 2 таргетами ??

Posted: 10.07.2009 22:39
by Vizit0r

Code: Select all

WaitTargetObject(Animal); 
  UseSkill('Provocation'); 
//until 
WaitJournalLine(Skilltimer, 'onto|play|You enrage|I am already',10000); //serching in journal 
  WaitForTarget(4050); 
  if TargetPresent then TargetToObject(self);
что непонятно?
ответ "всё" - неправильный и не принимается.

Posted: 14.07.2009 15:16
by alpi
MeLFiS wrote:
alpi wrote:попробуй поставить задержку несколько секунд после последнего таргета.
и зачем там цикл for интересно?
Не знаю зачем там фор просто умею пока токо такие скрипты писать )) уродуя другие так что поможете с 2 таргетами ??
я ж говорю, попробуй задержку поставить.
+ объекты, по которым кликаешь таргетом ищи через FindType а не жестко добавляй.

Code: Select all

UseObject($74B34358);
WaitTargetObject($00248A90);
wait(1000)
WaitTargetObject($00248A90); // ID вещи 
не так

Code: Select all

UseObject(FindType(ObjectID),backpack);
WaitTargetObject(FindType(Target1_ID,target_place));
wait(100);
WaitTargetObject(FindType(Target2_ID,target_place)); // ID вещи
wait(1000) 
а как-то так.
читай документацию по коммандам и вникай что там написано, за тебя никто не разберется в этом.
потому что некоторые извращенцы проверяют таким образом сытость - поставить таймер - это уметь надо, а так выполнил цикл 30 раз, проверил сытость и прочее.
кушать ? таким образом? хех)

Posted: 15.07.2009 21:50
by Vizit0r
alpi wrote:

Code: Select all

UseObject(FindType(ObjectID),backpack);
WaitTargetObject(FindType(Target1_ID,target_place));
wait(100);
WaitTargetObject(FindType(Target2_ID,target_place)); // ID вещи
wait(1000) 
а как-то так.
читай документацию по коммандам и вникай что там написано, за тебя никто не разберется в этом.
ты команды явно читал, а готовые скрипты мало :)
фиксированные задержки, особенно в этом случае - полный бред. абсолютный. малейший лаг - и все, привет тебе...

после первого WaitTarget ставится ожидание реакции на первый таргет от сервера (например, сообщение типа "теперь укажите на кого вы хотите спровоцировать выбранное животное" при провокации, да и любые другие на других скиллах). и только когда реакция от сервера пришла - ставить вейттаргет и ждать реакции на второй таргет.

Только так и никак иначе.

Posted: 20.07.2009 17:20
by alpi
На моем сервере проблем не возникало с обычным таргетом. Правда я все таргеты жестко прописываю.
В случае с поиском таргета конечно нужно проверять дополнительно.
Просто не доводилось еще :)