Page 1 of 1

Выбор переменной в зависимости от ника чара.

Posted: 28.08.2016 17:45
by KaToK
подскажите пытаюсь объявить переменные в моем случае рунбуки.
подумал сделать через массив

Code: Select all

Program test;
const
  hbook[NBK] = $4123BC50;
  hbook[Sync] = $41272377;
var
i integer;
begin
AddToSystemJournal(inttostr(hbook[NBK])+' & '+inttostr(hbook[CharName]));
end.
Но массивы тут нужно строить отдельно.
Подскажите кто как решал подобную задачу?

Re: Выбор переменной в зависимости от ника чара.

Posted: 28.08.2016 22:39
by drabadan
KaToK wrote:подскажите пытаюсь объявить переменные в моем случае рунбуки.
подумал сделать через массив

Code: Select all

Program test;
const
  hbook[NBK] = $4123BC50;
  hbook[Sync] = $41272377;
var
i integer;
begin
AddToSystemJournal(inttostr(hbook[NBK])+' & '+inttostr(hbook[CharName]));
end.
Но массивы тут нужно строить отдельно.
Подскажите кто как решал подобную задачу?

Code: Select all

var RunebookId : Cardinal;
procedure Init(MyCharName : String);
begin
 RunebookId := 0;
 if (MyCharName = NBK) then
  RunebookId := $4123BC50;

 if (MyCharName = Sync) then 
  RunebookId := $41272377;

 if (RunebookId = 0) then
  AddToSystemJournal('Unknown player connected! RunebookId = 0.');
end;

begin
 Init(CharName);
end;
http://www.delphibasics.ru/Case.php <- тоже вариант.

http://stealth.od.ua/forum/viewtopic.ph ... 080#p22666 <- вот у меня тут для разных чаров разные конфиги.

Re: Выбор переменной в зависимости от ника чара.

Posted: 29.08.2016 1:02
by KaToK
Я по другому сделал уже.

Code: Select all

procedure getbooks;
begin
    IgnoreReset;
    FindType(bookt,Backpack);
    while FindCount>0 do
    begin
        ClickOnObject(FindItem);
        CheckLag(LagWait);
        AddToSystemJournal(GetName(FindItem)+' & '+inttostr(FindCount)+' & '+inttostr(BMSearch(1, GetName(FindItem), 'Home')));
        if BMSearch(1, GetName(FindItem), 'Home') > 0 then home_book := FindItem;
        if BMSearch(1, GetName(FindItem), 'Work') > 0 then work_book := FindItem;
        Ignore(FindItem);
        FindType(bookt,Backpack);
    end;
end;
Мне кажется так более красиво, и не нужно переписывать ID бук главное следовать правилам наименований бук.
Сейчас вот осталось дописать рекол по названию руны в буке. и в инклуды такое запихнуть.
Очень жаль что нет встроенных глобальных массивов в духе globals[шард][ник][] которые хранятся и считываются при запуске стелса. Подобное не сложно хранить даже в текстовом файле.