Всем привет! Нужна помощь, совсем голову сломал уже, код:
Код:
function TfrmMain.PartyBaffsPresent(BaffsID: DWORD): boolean; // ID бафа, прогоняем через массив
var
i, x: Integer;
begin
Result := False;
if PersInParty <> 0 then // количество челов в пати
for x := 0 to PersInParty - 1 do
if (Party[x].BaffsCount <> 0) and (Party[x].WID <> GamerInfo.WID) then //проверка есть бафы или нет, а также проверка на свой WID(в пати свои бафы не отображаются)
begin
for i := 0 to Party[x].BaffsCount - 1 do
if (Party[x].Baffs[i] = BaffsID) then // прогоняем через массив ищем совпадение
begin
Result := True;
iBF := x;
Break;// если совпало останавливаем цикл(не бафаем)
end;
// Вот здесь загвоздка, Все хорошо если совпало, а если этого бафа нет, нужно его бафнуть.
// Поучается прогнать по массиву число и если нет совпадений, его добавить(у нас бафнуть)
// Ну ни как не получается, мозги кипят уже.
//
end
else
if (Party[x].WID <> GamerInfo.WID) then // если количество бафо равно 0
begin
Result := False;
iBF := x;
Break;// бафаем
end;
end;
Все хорошо работает, когда бафов вообще нет. Когда есть хотя бы 1 баф, и нет нужного бафа, не бафает. Дописывал недостающие строчки, бафает или только ПЛ или последнего в группе.
Опять куча вопросов, почему не могу прочитать имя через пати? Почему не могу прочитать свои бафы через пати?
Последний раз редактировалось diagnost; 02.10.2015 в 23:08.
for i := 0 to Party[x].BaffsCount - 1 do
if (Party[x].Baffs[i] = BaffsID) then // прогоняем через массив ищем совпадение
begin
Result := True;
iBF := x;
Break;// если совпало останавливаем цикл(не бафаем)
end;
следующим образом:
Код:
Result := False;
for i := 0 to Party[x].BaffsCount - 1 do
begin
if (Party[x].Baffs[i] = BaffsID) then
begin
Result := True;
Break;
end;
end;
if Result = False then
begin
iBF := x;
Exit;// бафаем
end;
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
ОООгроооомное спасибо заработало вот так! Неделю мучился, час еще раз все перепроверю:
Код:
function TfrmMain.PartyBaffsPresent(BaffsID: DWORD): boolean;
var
i, x: Integer;
begin
Result := False;
if PersInParty <> 0 then
for x := 0 to PersInParty - 1 do
begin
Randomize;
// Random(x);
if (Party[x].WID <> GamerInfo.WID) then
iBF:=x;
//iBF := Random(x);
if (Party[iBF].BaffsCount <> 0) and (Party[iBF].WID <> GamerInfo.WID) then
begin
Result := False;
for i := 0 to Party[iBF].BaffsCount - 1 do
begin
if (Party[iBF].Baffs[i] = BaffsID) then
begin
Result := True;
// iBF := x;
Break;
end;
end;
if Result = False then
begin
iBF := x;
Exit;// бафаем
end;
end
else
if (Party[iBF].WID <> GamerInfo.WID) then
begin
Result := False;
// iBF := x;
// Break;
end;
end;
end;
Вот для чего требовалось [Ссылки могут видеть только зарегистрированные пользователи. ]
Вот видео, как [Ссылки могут видеть только зарегистрированные пользователи. ] Еще раз спасибо за помощь.
Последний раз редактировалось diagnost; 03.10.2015 в 01:19.