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

Как вызвать правильно контекстное меню и нажать на кнопку..

тут можно задать вопрос по скриптингу
Post Reply
UOMO
Posts: 2
Joined: 07.01.2010 7:38

Как вызвать правильно контекстное меню и нажать на кнопку..

Post by UOMO »

Шард ДРВ.. Пытаюсь написать улетание по хелпу к кресту когда чар-гост.

Как вызвать меню и нажать на кнопку Help?
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Post by Vizit0r »

что-то мне кажется, что меню в твоем понимании, и меню на самом деле - две большие разницы.

скрин в студию вместе с комментариями - как вызывается, что нажать и т.д. а то телепаты в отпуске.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Vano
Neophyte
Neophyte
Posts: 24
Joined: 31.01.2008 23:26

Post by Vano »

Для этого специально есть:
procedure HelpRequest; // Хелп через папердол
После чего 2 обычных гампа.
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Post by Vizit0r »

а, ну вам там виднее :)
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
WladL
Apprentice
Apprentice
Posts: 240
Joined: 27.07.2009 17:21
Location: DRW
Contact:

Post by WladL »

Вот sample для ДРВ , прыжок в "синие" города через папердол:

Code: Select all

function GetCurrentRegion:Integer;
begin
  Result := -1;
  CheckSave;
  UOSAY('.where');
  if not WaitJournalLine(Now,'I am in|Britain|Northern Territory|WasteLands|Minoc|Desert|Trinsic|Yew',75000) then exit;
  {
  Получаем текущее местоположение чара в виде цифры от 0 до .. , 
  в зависимости от позиции региона в параметре функции WaitJournalLine.
   
    Britain = 1
    WasteLands = 3
    Minoc = 4
    ....
  }
  Result:=FoundedParamID;
end;

procedure RecallFromPaperdol(town:Integer);
var
ATown,CurRegion,StartRegion:Integer;
begin 
SetWarMode(false);
StartRegion:=GetCurrentRegion;

WaitConnection(3000);
UseObject(self);
wait(1000);
checksave;
HelpRequest;//Нажать  "Help"
wait(1000);
checksave;
waitgump('3');//Нажать "Help i am stuck"
wait(1000);
checksave;
waitgump(IntToStr(town));//Нажать на кнопку города 

//привязка к GetCurrentRegion
Case Town of
	1:ATown:=1;//Brit
	2:ATown:=4;//Minoc
	3:ATown:=6;//Trinsic
	4:ATown:=7;//Yew
end; 

//ждем пока не прыгнет (нельзя прыгать в тот-же регион где стоял чар перед прыжком)
CurRegion := GetCurrentRegion;
while (CurRegion = StartRegion) do 
begin
	AddToSystemJournal('Waiting for teleport...')
	wait(5000);
            CurRegion := GetCurrentRegion; 
end;
if (CurRegion = ATown)  then AddToSystemJournal('Jump is OK...') else AddToSystemJournal('Ups...');
end;
Пример использования: Ресалка с креста, с прыжком через папердол в Minoc.

Code: Select all

procedure TryResurrect;
begin
 AddToSystemJournal('TryResurrect...');
 FindDistance:=10;
 RecallFromPaperdol(2);//to Minoc
 while findtype($0004,ground)=0 do wait(500);
  moveXY(getX(findItem),getY(findItem),false,1,false);
 repeat 
	useObject(findItem);
	wait(1000);
 until HP>0;
 AddToSystemJournal('I am alive...');
end;
"Как хочешь ты трудись;
Но приобресть не льстись
Ни благодарности, ни славы,
Коль нет в твоих трудах ни пользы, ни забавы. (с) С.Крылов."
UOMO
Posts: 2
Joined: 07.01.2010 7:38

Post by UOMO »

Спасиб. *Hic*
Post Reply