Перейти к содержанию
LineaAge II Forum L2Corvet

Hy6ac

Пользователи
  • Публикаций

    9
  • Зарегистрирован

  • Посещение

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

Hy6ac's Achievements

Бродяга

Бродяга (1/10)

1

Репутация

  1. а чего бы и нет то ,мы стали на год старее ,скоро на пенсию )так что включай и полетели фарм)))
  2. Новый год на носу ))может какой то ивент топовый?)
  3. Админ,а дроп и споил таким же на старте будет ? а то ,я чутка потестил пофармил дак вообще слабо (((
  4. Hy6ac

    Повтор окнами

    Братва у кого то есть рабочий скрипт «повтор окнами за основой « а то этот ругается или кто то может этот исправить ,помогите ! const DialogRepeatEnable: boolean = true; // повтор диалогов, true(да) / false(нет) // список ников персонажей, которые должны повторять за основным окном DialogRepeatPlayerList: array of string = ['Krickt1338', 'Krickt1339', 'Vasya']; OpcodeStr = '23'; // для Interlude заменить на '21' OpcodeHex = $23; // для Interlude заменить на $21 procedure OnCliPacket(ID1, ID2: Cardinal; Data: Pointer; Size: Word); // обработчик исходящих пакетов (C->S) begin if (DialogRepeatEnable) and (ID1 = OpcodeHex) then // если повтор включен, и id пакета совпадает с выбором диалога, то DialogRepeat(MemToHex(Data^, Size)); // вызываем функцию, которая повторит выбор диалога указанным окнам end; procedure DialogRepeat(PacketData: string); var E: TL2Control; i: integer; begin for i:= 0 to Length(DialogRepeatPlayerList)-1 do begin // проходим по списку чаров, которыми нужно повторять диалоги E:= nil; E:= GetControl(DialogRepeatPlayerList[i]); // получаем Engine нужного окна if (E <> nil) then E.SendToServer(OpcodeStr + PacketData); // если Engine получен, то отправляем пакет выбора диалога end; end; procedure DialogOpen(E: TL2Control); // берет в таргет и открывает диалог с нужным NPC другим окном begin E.SetTarget(User.Target.ID); E.DlgOpen; end; procedure DialogOpenThread(); // основной поток, выполняющий всю логику var p1, p2: integer; i: integer; E: TL2Control; LastTargetID: cardinal; // тут мы храним ID последнего нашего таргета LastDlgText: string; // тут будет храниться текст последнего диалога begin Engine.SendActID(1); // активируем перехват C->S пакетов while (true) do begin // запускаем бесконечный цикл Engine.WaitAction([laDlg], p1, p2); // ждем события "открытие диалога" while (User.Target.ID = LastTargetID) and (Engine.DlgText <> LastDlgText) do delay(10); for i:= 0 to Length(DialogRepeatPlayerList)-1 do begin // для каждого ника из списка персонажей E:= nil; E:= GetControl(DialogRepeatPlayerList[i]); // получаем его Engine if (E <> nil) then // и если Engine получен, то Script.NewThread(@DialogOpen(E)); // запускаем для его поток, который откроет диалог с нужным NPC end; LastTargetID:= User.Target.ID; // перезаписываем ID последнего цели LastDlgText:= Engine.DlgText; // и текст последнего диалога end; end; begin if (DialogRepeatEnable) then // если повтор включен, то Script.NewThread(@DialogOpenThread); // запускаем поток, который будет делать все необходимое // code ... Delay(-1); end.
  5. + можно поставить на голосование на ограничение окон ! Админ что скажешь ?
  6. Hy6ac

    В поиске

    Вечер в хату,братва буду стартовать здесь на сервере ищу с кем можно стартонуть ,для совместной игры (на долгую игру )! писать в лс или сюда .
×
×
  • Создать...