Page 1 of 1
Как вызвать правильно контекстное меню и нажать на кнопку..
Posted: 07.01.2010 7:50
by UOMO
Шард ДРВ.. Пытаюсь написать улетание по хелпу к кресту когда чар-гост.
Как вызвать меню и нажать на кнопку Help?
Posted: 07.01.2010 9:17
by Vizit0r
что-то мне кажется, что меню в твоем понимании, и меню на самом деле - две большие разницы.
скрин в студию вместе с комментариями - как вызывается, что нажать и т.д. а то телепаты в отпуске.
Posted: 07.01.2010 12:37
by Vano
Для этого специально есть:
procedure HelpRequest; // Хелп через папердол
После чего 2 обычных гампа.
Posted: 07.01.2010 12:48
by Vizit0r
а, ну вам там виднее

Posted: 07.01.2010 14:45
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;
Posted: 11.01.2010 11:24
by UOMO
Спасиб. *Hic*