Page 1 of 2
					
				резка рыбы
				Posted: 18.05.2008 13:37
				by MeLFiS
				Скрипт таков берет с пола 1 рыбу, режит ее дагером, полученые фиштейки ложит на пол ,помогите пожалуйсто написать имеютса 2 инклюда GetResFromGround и DropCrafts.
			 
			
					
				
				Posted: 18.05.2008 13:44
				by MeLFiS
				Code: Select all
Program ruba; 
{$Include 'all.inc'} 
begin
FindDistance := 1; 
GetResFromGround($09CC,1,'рыба');
WaitTargetObject($09CC);
usetype($0F51);
wait(500)
DropCrafts($097A,7,'рыба);
End.
Ну вот что  у меня получилось исправте пожалуйсто чтобы было правильно
 
			 
			
					
				
				Posted: 18.05.2008 17:03
				by -=JoKeR=-
				Code: Select all
Program FishKaput;
{$Include 'all.inc'} 
const
Fish = $09CC;
Steak = $097A;
Dagger = $0F51;
Begin 
While not Dead do
  FindDistance := 1;
  FindType(Fish,backpack);
  IF FindCount < 1 then
    begin
      checklag;
      checksave;
      GetResFromGround(Fish,1,'рыбы');
      wait(1000);
    end
  ELSE
    begin
      if TargetPresent then CancelTarget;
      UseObject(Dagger);
      WaitTargetObject(FindItem);
      AddToSystemJournal('-= Порезал =-');
      wait(1000);
      checklag;
      checksave;
      DropCrafts(Steak,7,'стэйков');
    end;
End.
Что-то типа этого, писал в окне ответа.
 
			 
			
					
				
				Posted: 18.05.2008 20:25
				by MeLFiS
				неа нечего вобше не происходит
			 
			
					
				
				Posted: 19.05.2008 21:13
				by -=JoKeR=-
				хз-хз
правь под себя...
			 
			
					
				
				Posted: 20.05.2008 22:10
				by MeLFiS
				жаль  что больше некому помоч (
			 
			
					
				
				Posted: 21.05.2008 17:29
				by Ko
				а ты умри, сразу произойдет.. 
Code: Select all
While not Dead do 
  FindDistance := 1; 
а вот тут у тебя зацикливание происходит, не хватает begin...end
попробуй
Code: Select all
Program FishKaput; 
{$Include 'all.inc'} 
const   Fish = $09CC; 
        Steak = $097A; 
        Dagger = $0F51; 
begin 
  While not Dead do begin
    FindDistance := 1; 
    FindType(Fish,backpack); 
    IF FindCount < 1 then begin 
      checklag; 
      checksave; 
      GetResFromGround(Fish,1,'рыбы'); 
      wait(1000); 
    end else begin
      if TargetPresent then CancelTarget; 
      UseObject(Dagger); 
      WaitTargetObject(FindItem); 
      AddToSystemJournal('-= Порезал =-'); 
      wait(1000); 
      checklag; 
      checksave; 
      DropCrafts(Steak,7,'стэйков'); 
    end; 
  end;
End.
 
			 
			
					
				
				Posted: 27.05.2008 21:28
				by MeLFiS
				он чегото не хочет брать по 1 рыбе берет токо по 2 (((
			 
			
					
				
				Posted: 28.05.2008 1:14
				by Edred
				Стопка, наверное, неподъемная. Есть такой глюк в УО. Надо в таких случаях брать по две, одну кидать обратно.
			 
			
					
				
				Posted: 28.05.2008 9:21
				by AlexM2008
				Интересно, а на земле резать нельзя
 или принципиально брать и резать по ОДНОЙ?
			 
			
					
				
				Posted: 28.05.2008 11:04
				by -=JoKeR=-
				Ага, Edred точно подметил.
Бери по две и скидывай одну или не скидывай если не надо, или бери сколько можешь взять в пак.
			 
			
					
				
				Posted: 28.05.2008 11:48
				by MeLFiS
				AlexM2008 wrote:Интересно, а на земле резать нельзя
 или принципиально брать и резать по ОДНОЙ?
Просто у на шарде если режиш по 1 рыбе то 7 фиштейков а если решиш 100 рыбы то 400 фиштейков выходит ))
 
			 
			
					
				
				Posted: 28.05.2008 14:47
				by MeLFiS
				15:51:40 [bura]: UseObject error: Object not finded.
15:51:40 [bura]: -= Ïîðåçàë =-
Пишет это и не режит рыбу .И да еше он берет две рыбы и если  выбераеш скинуть одну рыбу он тоже скидвает две рыбы
			 
			
					
				
				Posted: 28.05.2008 16:10
				by -=JoKeR=-
				Тип даггера проверь, они бывают двух типов.
Если не поможет, попробуй вместо типа вписать ID.
Вот посморти как здесь зделано. Берёт 2 итема, скидывает  один.
http://stealth.od.ua/forum/viewtopic.php?t=721 
			 
			
					
				
				Posted: 28.05.2008 19:12
				by AlexM2008
				Если у тебя:  const Dagger = $0F51;
то пробуй: usetype(Dagger,$FFFF);
Не вижу как работает GetResFromGround, может надежнее сделать:
findtype($Fish,ground); 
if finditem > 0 then MoveItem(FindItem,2,Backpack,0,0,0);
Берет по 1 если в кучке меньше 18к, поэтому брать по 2.
а, увидел:
procedure DropCrafts(tmptyp : cardinal; tmpcnt : integer; tmpstr : string); 
// tmptyp   - тип скрафченного 
// tmpcnt   - количество (которое необходимо сбросить) 
// tmpstr   - название скрафченного (для сообщений) 
// 
Если количество указанного крафта в паке больше или равно заданного -  то все скрафченное будет сброшено под ноги. 
п.с.
       Поделитесь инклюдами 
