Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7

Помогите разобрацца ((

тут можно задать вопрос по скриптингу
Post Reply
Val
Neophyte
Neophyte
Posts: 14
Joined: 01.06.2005 4:46

Помогите разобрацца ((

Post by Val »

написал скрипт на БК и он даже работаеть :wink: , но есть одно но:
после изготовления стрелы он плотноо замерает сек на 5. вопрос: че я сделал криво??? Помогите.

Code: Select all

Program arrow; 
{$Include 'checksave.inc'}  //CheckSave 
{$Include 'hungry.inc'}     //Hungry(1,backpack); 
{$Include 'iscurmessage.inc'}     //Hungry(1,backpack); 
{$Include 'stack.inc'}     //Hungry(1,backpack); 

var Arrow_type,Shaft_type,Pero_type:Word;

var t:Integer; 
b : TDateTime; 
var i,j:Integer;

Begin 

Arrow_type:=$0F3F;
Shaft_type:=$1BD4;
Pero_type:=$1BD1;

 SetARStatus(true); 
 FindDistance := 1; 
 i:=0;
clearjournal; 
 if connected then hungry(1,ground); 
 AutoMenu('What','Arrow');
While not dead do 
  begin 
   if  (NOT connected) then
    begin
      SetARStatus(true); 
      connect;
    end

   if (GetQuantity(FindType(Arrow_type,backpack)) > 0) then stack(Arrow_type,$FFFF);

   for t:=1 to 50 do 
    begin 
    if ((GetQuantity(FindType(Pero_type,ground)) > 0)) and ((GetQuantity(FindType(Shaft_type,ground)) > 0)) then 
     begin 

      checksave; 

      j:=GetQuantity(FindType(Shaft_type,backpack));
      if j=0 then  
       begin
       MoveItem(FindType(Shaft_type,ground),1,backpack,0,0,0) ;
       while j = GetQuantity(FindType(Shaft_type,backpack)) do
        begin
        wait(50)
        end;
       end

      WaitTargetGround(Pero_type); 
      b:=Now; 

      UseObject(FindType(Shaft_type,backpack)); 
      WaitJournalLine(b,'You',4000); 
     end 
     else 
     begin 
     SetARStatus(false); 
     Disconnect; 
     end; 
   end; 
t:=1; 
if connected then Hungry(1,ground); 
end; 
End.
причем надпись о изготовлении стрелы появляеться почти мнгновенно.
Miralex
Developer
Developer
Posts: 656
Joined: 11.03.2005 19:12
Contact:

Post by Miralex »

Похоже что не на 5 сек а ровно на 4 сек замирает.

Code: Select all

WaitJournalLine(b,'You',4000);
Ты уверен, что в фразе встречается слово "You" и первая буква точно заглавная?
Val
Neophyte
Neophyte
Posts: 14
Joined: 01.06.2005 4:46

Post by Val »

Абсолютно. шард НДВ. сообщение либо You create some.... либо You destroy.... самое противное, что на инже все тоже самое работает аж со свистом...((((
Miralex
Developer
Developer
Posts: 656
Joined: 11.03.2005 19:12
Contact:

Post by Miralex »

Code: Select all

WaitTargetGround(Pero_type); 
b:=Now; 
Поменяй их местами.
Val
Neophyte
Neophyte
Posts: 14
Joined: 01.06.2005 4:46

Post by Val »

поменял... заменил...

Code: Select all

WaitJournalLine(b,'You',4000); 
на

Code: Select all

WaitJournalLine(b,'You create some arrows and put them in your pack.',40000); 
задеражка один фиг - от 4 до 8 сек....
нифига не понимаю...((((
при этом в журнале надпись появляется мнгновенно...
Miralex
Developer
Developer
Posts: 656
Joined: 11.03.2005 19:12
Contact:

Post by Miralex »

Я другое говорил...
Поменять:

Code: Select all

WaitTargetGround(Pero_type); 
b:=Now;
на

Code: Select all

b:=Now;
WaitTargetGround(Pero_type); 
Val
Neophyte
Neophyte
Posts: 14
Joined: 01.06.2005 4:46

Post by Val »

поменял...
наверное просто некорректно ответил... ето я тоже сделал - эффекту 0.(((
Val
Neophyte
Neophyte
Posts: 14
Joined: 01.06.2005 4:46

Post by Val »

походу дела вопрос - moveitem по координатам 0.0.0 не можеть отмораживаться???
Guru
Neophyte
Neophyte
Posts: 22
Joined: 10.07.2005 7:02

Post by Guru »

Code: Select all

WaitJournalLine(Now,'You',4000);
У меня скрипт иначе работает... пойже выложу.
В паке лежат все перья, палки на полу.
В цикле пока чар не мертв происходит:
1 - записывается кол-во шафтов
2 - поднимается 1 шафт
3 - цикл ждет пока кол-во шафтов не увеличится
4,5,6 - аналогично с болтами/стрелами

Отличается динамической задержкой, поэтому более удобен и быстр.
Guru
Neophyte
Neophyte
Posts: 22
Joined: 10.07.2005 7:02

Post by Guru »

Val wrote:походу дела вопрос - moveitem по координатам 0.0.0 не можеть отмораживаться???
Попробуй заменить на

Code: Select all

grab(чя-го,кол-во)
Val
Neophyte
Neophyte
Posts: 14
Joined: 01.06.2005 4:46

Post by Val »

Guru писал:
WaitJournalLine(Now,'You',4000);
заменил.... - монопенисуально, пардон...((( дело не в баяне...
меня не устраивают перья в БП. достаточно много хулиганов... могут затрусить(((
Guru
Neophyte
Neophyte
Posts: 22
Joined: 10.07.2005 7:02

Post by Guru »

Code: Select all

function getitem(what:word;count:integer):boolean;
begin
	findtype(what,ground);
	if findcount>0 then
	begin
		grab(finditem,count);
		result:=true;
	end
	else result:=false;
end;
Грабает по типу необходимое кол-во.
Miralex
Developer
Developer
Posts: 656
Joined: 11.03.2005 19:12
Contact:

Post by Miralex »

Кинул скрипт на боукрафт:
http://stealth.od.ua/forum/viewtopic.php?t=192

Этот у меня работал без проблем.


Что у тебя в скрипте не работает - позже гляну.
Post Reply