Перейти к содержанию

Garik66

Помогаторы
  • Постов

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

  • Победитель дней

    292

Весь контент Garik66

  1. И ещё посмотри моё видео (недавно выполнял заказ Stronghold 2 , но из-за поехавших ссылок, спойлеров и кода там сечас чёрт ногу сломит) , может тоже поможет разобраться. А ссылку на видео выложу:
  2. Если эта инструкция работает не только с адресом твоего героя, но и других тварей, то ПКМ по этой инструкции и выбери в контекстном меню "Найти адреса, к которым обращается эта инструкция." В окне появятся адреса жизни твоего Героя и других. Сперва нажми в окне наверху на Адрес, чтобы адреса расположились по возрастанию, а потом построй структуру, выбрав несколько адресов подряд и вот там уже будет понятно через какие офсеты будет идти следующий НПС или через какие поинтеры. ЗЫ: И ещё, если ты найдёшь откуда инструкция получает значение для ESI (т.е. по сути найдёшь следующий поинтер), то это тоже поможет понять, как найти всех тварей.
  3. Garik66

    Вопрос по CE

    Отлично!!! Видишь можно писать на LUA не зная его.
  4. Garik66

    Вопрос по CE

    Да выше уже написал.
  5. Garik66

    Вопрос по CE

    Зы одну ошибку у себя уже заметил: нужно : control_setCaption(UDF1_CELabel1,"Открыто") Где UDF1 - имя формы. Но если ты используешь строчку из своего скрипта: CELabel1 = component_findComponentByName(CETrainer,"CELabel1") тогда не нужно.
  6. Garik66

    Вопрос по CE

    Попробуй. Но сразу предупреждаю - я не знаю LUA.
  7. MasterGH, сенк! Как я понял - можно использовать только регистр EAX? (Всё-таки пло_хо Гугл переводит не вся инфа в голову сразу лезит с его переводом.)
  8. Garik66

    Вопрос по CE

    Так уже лучше. Адрес 00B53D44 - статичный?
  9. Garik66

    Вопрос по CE

    Не понял для чего ты привёл этот скрипт? Как я понял, ты хочешь, чтобы при каком-то значении в каком-то адресе, изменился заголовок какого-то лейбла - так? Ответь на все как........., т.е. уточни информацию и тогда поможем.
  10. Нет. Ты много чего не сделал. Описывать словами сложно, будет время - запишу видео.
  11. Утверждение не верное, пример показан в последнем скрипте 4. Скрипт по заданию "Timer Mission v. Sound" моей статьи - Работа с игровыми таймерами.
  12. Ну и для закрепления. Мы написали скрипт, выложили его в паблик и нам пишет ну допустим "Несообразительный пользователь". "Несообразительный пользователь" - "Я включил скрипт, а время не как в игре. Сделайте пожалуйста как в игре. Из сообщения мы понимаем, что пользователь хочет, чтобы таймер был поделён на минуты и секунды. И тут вмешиваетесь Вы, так как уже написали скрипт 2. Обнуление таймера при достижении определённого значения пример скрипт "Timer Mission v. Adding a limit to the timer": Вы - "Это просто, добавим ещё один таймер и каждые 60 секунд будем обнулять секундомер, а минутный таймер увеличивать на 1." Немного подумав, Я - "И это всё? Вы точно всё учли?" И через паузу - "А если "Несообразительный пользователь" активирует скрипт не вначале миссии, когда таймер равен 0, а в середине, например после 10 минут? В этом случае нам нужно разово сделать пересчёт секунд в минуты и остаток записать в секундомер." Итак с первым заданием разобрались. Но "Несообразительный пользователь" не унимается - "Я поставил уровень сложности "Кошмар", а там интерфейса нет, как в Hitman: Absolution и таймера не видно, сделайте мне пожалуйста, чтобы скрипт хотя бы каждую минуту сообщал мне об этом." Итак со вторым заданием тоже всё ясно - нужно добавить какой-нибудь звуковой сигнал и чтобы он звучал каждую минуту. Для этого уже ассемблера СЕ нам не хватит, придётся использовать вставки на LUA. И снова "Несообразительный пользователь" - "И сделайте пожалуйста, чтобы таймер обнулился на 12 минутах, а потом каждые 2 минуты. (время подобрано, чтобы не удлинять видео) Ну вот и третье задание. Сам скрипт на этот раз комментировать не буду. После скрипта опишу некоторые новые опкоды и немного LUA. 4. Скрипт по заданию "Timer Mission v. Sound" Новое на ассемблер: 1. fild dword ptr [timer2] - копируем значение в [timer2] в st(0), сдвигая стек, одновременно переводя значение из Integer во Float. 2. fistp dword ptr [timer2] - выталкиваем из st(0) в [timer2], восстанавливая стек, одновременно переводя значение из Float в Integer, но fistp при этом делает либо усечение (в нашем случае если остаток меньше 30 секунд), либо округление (если больше 30 секунд). На самом деле есть более подходящий для нас опкод fisttp (который отбрасывает дробную часть), но он почему то не компилируется СЕ, поэтому пришлось добавить дополнительные 6 строчек в код: jb @f //1 sub eax,ecx mov [timer3],eax jmp code2 @@: //2 sub [timer2],1 //3 add eax,#60 //4 sub eax,ecx //5 mov [timer3],eax //6 Про вставку на LUA. {$LUA} - выполнить LUA код. {$ASM} - выполнить код на ассемблер СЕ. timer = createTimer(true) - активируем таймер, обратите внимание на это, обязательно деактивируйте таймер при выключении скрипта: [DISABLE] {$LUA} timer:setEnabled(false) timer:setInterval(5) - устанавливаем интервал timer.OnTimer = function() - функция таймера, т.е. что нужно проверять и делать. getAddressList() - функция получающая данные с Вашей таблицы getAddressList().getMemoryRecordByID("63").Value == "59" - проверяет равно ли, значение записи в таблице с ID=63, 59. (в нашем случае это Second Timer). как узнать ID записи в таблице -> посмотрите эту тему - Как посмотреть название, ID и индекс записи в табличке СЕ. Используется LUA-скрипт от MasterGH. PlaySound(findTableFile([[Activate]])) - проигрывание встроенного звука активации скриптов в СЕ, если Вы хотите какой-нибудь другой звук, то посмотрите мой видео урок sleep "1000" - нужен для того, чтобы сигнал прозвучал один раз, уменьшая 1000 Вы можете добиться, чтобы сигнал прозвучал два раза, три и т.д. Если убрать sleep "1000" совсем, то вместо сигнала будет тарахтение в течении 1 секунды. Полностью прокомментировать, что делает скрипт попробуйте сами. На видео показана работа скрипта: И залил табличку со всеми скриптами этой темы. Добавил ещё один скрипт и перезалил табличку в следующем сообщении.
  13. Тоже самое вначале - цветной, после отправки цветной, но стоит перелистнуть страничку - чёрный.
  14. Ни твой, ни NullAlex. что выкладывал ранее, не портятся - остаются цветными.
  15. А у меня не в какую не хочет. Вставил скрипт в код - цвет есть, отправил ответ - цвет есть, но делаю обновление окна и цвет исчезает.
  16. Да - вошёл сейчас через microsoft edge, всё тоже самое.
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.