Сообщения без ответов | Активные темы Текущее время: Вс ноя 18, 2018 11:16 am



Ответить на тему  [ Сообщений: 4 ] 
Список квестов 
Автор Сообщение

Зарегистрирован: Пн дек 01, 2014 9:38 am
Сообщений: 13
Сообщение Список квестов
Не нашел возможности получить список квестов, что выводится в панели информации( Он не описан в API, или же его можно получить только через пакеты?


Пт авг 10, 2018 3:07 pm
Профиль
Куда я попал

Зарегистрирован: Чт мар 29, 2018 8:12 am
Сообщений: 48
Сообщение Re: Список квестов
Нет такого. Но можно через пакеты или упороться и составить список через TL2Control.QuestStatus :D

_________________
Оказываю помощь бесплатно только публично на форуме, цените свои и мое время.
AdrenalineScript.com - премиум плагины и скрипты


Сб авг 11, 2018 12:24 am
Профиль WWW
Администратор
Аватар пользователя

Зарегистрирован: Пн янв 12, 2015 10:58 am
Сообщений: 1343
Сообщение Re: Список квестов
где-то был нужно искать, но я делал првоерку по квест статусу зная пару тысяч возможных квестов их не так много.

_________________

Мой Сайт, Тут есть все скрипты: 1-85, Заточка, Аугмент и много чего другого
skype: live:ivanius51
вопросы по СКРИПТАМ, не программированию - БЕСПЛАТНО!



Вс авг 12, 2018 5:23 pm
Профиль WWW

Зарегистрирован: Пн дек 01, 2014 9:38 am
Сообщений: 13
Сообщение Re: Список квестов
Сделал так, но костыль знатный.

Код:
uses SysUtils, Classes;
const MAX_QUEST_ID = 20000;
         
type
  TL2Quest = record
    ID : integer;
    State  : integer;
  end;
  PL2Quest=^TL2Quest;

{ TQuestList }
TQuestList=class(TList)
private                     
  function Get(Index: Integer): PL2Quest;
public
  destructor Destroy; override;
  function Add(Value: PL2Quest): Integer;
  property Items[Index: Integer]: PL2Quest read Get; default;
end;

function TQuestList.Add(Value: PL2Quest): Integer;
begin
  Result := inherited Add(Value);
end;

destructor TQuestList.Destroy;
var
  i: Integer;
begin
  for i := 0 to Count - 1 do FreeMem(Items[i], SizeOf(TL2Quest));   
  inherited;
end;

function TQuestList.Get(Index: Integer): PL2Quest;
begin
  Result := PL2Quest(inherited Items[Index]);
end;                   

{ GetQuestList }
function GetQuestList() : TQuestList;
var i, j: Integer;
    quest : PL2Quest;
begin
  Result := TQuestList.Create;
  for i:= 0 to MAX_QUEST_ID do begin
    j := 0;
    while Engine.QuestStatus(i, j+1) do begin
      j := j + 1;
    end;
    if j > 0 then begin
      GetMem(quest, SizeOf(TL2Quest));
      quest.ID := i;
      quest.State := j;
      Result.Add(quest);
    end;
  end;   
end;

{ Main }
var quest_list : TQuestList;
var tmp : integer;
begin
  quest_list := GetQuestList();
  for tmp := 0 to quest_list.Count - 1 do
    Print('ID: ' + IntToStr(quest_list[tmp].ID) + ' State: ' + IntToStr(quest_list.Items(tmp).State));
  quest_list.Free;
end.


Пн авг 13, 2018 8:14 am
Профиль
Показать сообщения за:  Сортировать по:  
Ответить на тему   [ Сообщений: 4 ] 

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Разработано: g-yar.
Русская поддержка phpBB