Перейти к содержанию
Сообщество рейдеров EverQuest II
Авторизация  
Pirate

Идеи для модов

Рекомендуемые сообщения

Помогите чем можите( Никак не получается сделать параметр объекта переменной в параметре другого объекта. Создал чекбокс, текстовое поле, кнопку.

далее код вроде такого


    <Checkbox Activated="true" BackgroundColor="#FFFFFF" BackgroundOpacity="1.000" Checked="true" Location="138,31" MinimumSize="22,22" Name="CS" OnSet="parent.text.Text=&apos;текст1&apos;" OnUnset="parent.text.Text=&apos;текст2&apos;" PackLocation="left,top" PackSize="a,f" ScrollExtent="22,22" Size="22,22" Style="/CommonElements.Checkbox.data.style" TextColor="#EBDEAA"  </Checkbox>


<Button  Location="41,-1" Name="NB" OnPress="&apos;parent.text.Text&apos; &#xD;&#xA;Текст3" ScrollExtent="54,21" Size="54,21" Style="/ButtonStyles.BoxButton" />

пытаюсь сделать аналогию макросу с двума командами, где первая команда в зависимости от чекбокса ставится, а вторая постоянная. Конечно если явно написать 2 команды, то все работает, а если выбор через чекбокс делать, то проходит только вторая команда.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не совсем понял, что именно надо сделать, но сделал бы так:


<Checkbox Activated="true" BackgroundColor="#FFFFFF" BackgroundOpacity="1.000" Checked="true" Location="138,31" MinimumSize="22,22" Name="CS" OnSet="parent.Text1.Text=&apos;текст1&apos;" OnUnset="parent.Text1.Text=&apos;текст2&apos;" PackLocation="left,top" PackSize="a,f" ScrollExtent="22,22" Size="22,22" Style="/CommonElements.Checkbox.data.style" TextColor="#EBDEAA" </Checkbox>


<Button Location="41,-1" Name="NB" OnPress="parent.Text1.Text&#xD;&#xA;Текст3" ScrollExtent="54,21" Size="54,21" Style="/ButtonStyles.BoxButton" />

Больше всего смутило у тебя то, что название переменной Text. Лучше применять уникальные имена.

И в OnPress у тебя переменная была в &apos; зачем-то. Даже если это стринг (текстовая переменная), кавычки ставить не надо.

И ещё, даже если у тебя стоит по-умолчанию Checked="true", это не значит, что при заходе в игру сработает OnSet. Переменную Text1 надо забить в parent'e, чтобы она была там с самого начала (типа, по умолчанию).

Изменено пользователем Pirate

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А, сори, теперь дошло.

В таких случаях правильнее пользоваться сложением текстовых переменных, типа:

OnSet="parent.NB.OnPress=parent.Text1.Text ## &apos;&#xD;&#xA;Текст3&apos;" OnUnSet="parent.NB.OnPress=parent.Text2.Text ## &apos;&#xD;&#xA;Текст3&apos;"

А если текст надо ещё где-то выводить, то добавить в чекбокс отдельное parent.Text1.Text=текст1.

Изменено пользователем Pirate

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кстати, я уже достаточно давно выложил один мод в файловый архив, а его до сих пор не подтвердили и насколько я понимаю, скачать его нельзя (это CureFinder от DrumsUI, с небольшими правками по сохранению настроек... уж не знаю, умышленно он допустил косяк или просто не заметил).

Мод на автомакросы выложил сегодня, но как бы его не постигла та же судьба )

Изменено пользователем Pirate

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

блин нифига игра не может забрать значение свойства. Смысл то был при нажатии кнопки 2 команды подряд идут, причем первая хранится в текстовом поле, получается код типа onpress="&apos;parent.Text1.Text&apos;&#xD;&#xA;вторая_команда" должен работать, но нифига. Работает только если через чекбокс задать onpress целиком OnSet="parent.Button1.OnPress=&apos;parent.Text1.Text&apos;##вторая_команда". Тогда получается никакого смысла хранить команды в текстовом поле, сразу их писать в OnSet и OnUnset для кнопки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

блин нифига игра не может забрать значение свойства. Смысл то был при нажатии кнопки 2 команды подряд идут, причем первая хранится в текстовом поле, получается код типа onpress="&apos;parent.Text1.Text&apos;&#xD;&#xA;вторая_команда" должен работать, но нифига. Работает только если через чекбокс задать onpress целиком OnSet="parent.Button1.OnPress=&apos;parent.Text1.Text&apos;##вторая_команда". Тогда получается никакого смысла хранить команды в текстовом поле, сразу их писать в OnSet и OnUnset для кнопки.

Свойства забираются, просто не работает подстановка макроса на место переменной.

И для того, чтобы хранить какие-либо переменные, не обязательно создавать другие поля и даже не надо заранее эти переменные прописывать.

Строка &apos;parent.Text1.Text&apos; вообще смысла не имеет и не будет работать. Переменная, заключённая в кавычки &apos; должна становиться обычным текстом, содержащим имя переменной, а не её значение. Это по моей логике, я не проверял )

Ты пробовал без кавычек?

Попробуй например такое:

say parent.Text1.Text

и

say &apos;parent.Text1.Text&apos;

Не знаю, что получится, но может быть интересно )

Изменено пользователем Pirate

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробовал

say parent.Text1.Text

и

say &apos;parent.Text1.Text&apos;

Результат одинаковый. Персонаж говорит тот текст, который содержит переменная.

А если задать переменную, типа say Hi, а потом поставить её в OnPress="parent.Text1.Text", то ничего не произойдёт. Это подтверждает, что простая подстановка макроса на место переменной не происходит. Было несколько идей, но ни одна не прокатила...

Но есть масса других способов. И хранить макросы отдельно можно и объединять их. Просто придётся делать больше на 1-2 строки в OnSet.

Изменено пользователем Pirate

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пришла в личку просьба написать что-нить для облегчения выполнения скрипта на Джинне. Выкладываю сюда без разрешения, но мне один фиг неинтересно делать что-то для одного человека, если это не моя жена)))

Порталы вроде называются Вихрь воздуха, Вихрь земли и т.д. появляются всегда строго в 4 точках но названия рандомно.

Эвент сделан так. Примерно раз в 30-40 сек, появились 4 портала, и одновременно на 4 чел. повесилось серое зрение, без этого зрения все остальные члены рейда видят названия вихрей и в каком порядке они стоят, так как над ними надпись что это за вихрь. А вот те кто под зрением как раз не видят этих надписей над вихрями, они появляются когда серое зрение уже висит, тоесть заранее игрок не сможет соорентироваться где нужный вихрь. Сейчас РЛы голосом каждый раз при появлении вихрей называют порядок респа вихрей но зачастую народ сильно путается. У того кто под зрением, в окне враждебных иконка если на нее навести мышку то видно в описании что это к примеру вода. Я должен моментально соорентироваться где стоит портал земли и побежать к нему, что бы снять серое зрение. Времени дают мало, потому и спросил реально ли сделать так что бы активировалась дорожка что бы знать куда бежать к нужному вихрю(порталу)

Тоесть наведя мышку в окне враждебных, я понимаю что вода, у меня на панели стоит мод или макрос с подобной иконкой воды а в макросе(моде) прописано что показать путь к вихрю земли. Я увидел у себя воду.. нажал на иконку с водой и побежал по дорожке к вихрю земли.

Порядок снятия:

1 игрок дот - земля, бежит к воде

2 игрок дот - вода, бежит к земле

3 игрок дот - огонь, бежит к льду

4 игрок дот - лед, бежит к огню

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

Раз уж этот эвент вызывает проблемы, то видимо вихри нельзя взять в цель. А если бы и можно было, то я не знаю, как сделать дорожку к цели. Только к заранее известным координатам.

Правда, у меня возникла мысль, а не палит ли имена вихрей мой мод на имена мобов, если врубить его на полное отображение?

Но можно попробовать придумать что-то более оригинальное )

Например, можно попробовать использовать общий для всех членов гильдии банк информации, доступный через интерфейс каждому члену рейда (если конечно все члены рейда состоят в одной гильдии... но тут уж ничего не попишешь, т.к. я не знаю подобного банка только для членов рейда). И когда назначенные люди видят вихри, то они жамкают макросы, которые кидают в этот банк координаты соответствующих вихрей. Затем люди, на которых висит зрение, жамкают макрос, который юзает эту инфу, создавая дорожку к нужному вихрю.

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

Таким образом можно было бы скидывать всякую полезную инфу для макросов (например, имена персов) во время рейда, если бы не косячный клиент, который не понимает кириллицы ((

Больше всего бесит именно то, что такое происходит с именами персов ((

Сложность в том, что нужно 4 ячейки для хранения информации, ибо вихрей 4 штуки. Но поискать можно.

А кто-нить знает, как нарезать через мод текст на куски по ключевым символам (типа переноса строки)? Тогда можно было бы обойтись и одной ячейкой.

Или использовать какой-нибудь объект, у которого есть свойство, состоящее из 12 цифр (4 вихря по x,y,z). Типа Size="a,b,c,d,e,f,g,h,i,j,k,l"...

А вообще, можно создать в моде такой объект самому, чтобы потом вызывать цифры по именам переменных?

Изменено пользователем Pirate

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Правда, у меня возникла мысль, а не палит ли имена вихрей мой мод на имена мобов, если врубить его на полное отображение?

Но можно попробовать придумать что-то более оригинальное )

Надо потестить.

И когда назначенные люди видят вихри, то они жамкают макросы, которые кидают в этот банк координаты соответствующих вихрей. Затем люди, на которых висит зрение, жамкают макрос, который юзает эту инфу, создавая дорожку к нужному вихрю.

Правда, надо сделать ещё макрос, обнуляющий данные, когда вихри исчезли, чтобы люди потом случайно не побежали по старым координатам

Там очень мало времени на принятие решения в какую сторону бежать, врятли этот вариант удобен был бы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Там очень мало времени на принятие решения в какую сторону бежать, врятли этот вариант удобен был бы.

Но это же быстрее и проще, чем по голосовому или текстовому чату? По сути, это то же самое "нажал на иконку с водой и побежал по дорожке к вихрю земли", просто работать эта кнопка будет только после того, как кто-то в рейде жамкнет макросы на вихри, чтобы указать моду их координаты. Изврат, конечно, но я пока не придумал, как исключить этап с сообщением о местоположении вихрей ))

Просто имеет ли смысл заморачиваться с модом, если принципиально ничего не меняется.

А вихрь можно взять в цель, когда НЕ висит зрение?

Изменено пользователем Pirate

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
А вихрь можно взять в цель, когда НЕ висит зрение?

Можно. Но дело не в этом.

Имхо, нет смысла заморачиваться с модом под конкретный эвент. Координаты вихрей постоянны. Они меняют только названия.

Мало того - дорожка проведет его напрямую к своему вихрю - прямо через зону действия чужого, в которую забегать не рекомендуется.

А писать математику, обсчитывающую маршруты... Хм... Это вам не яндекс-пробки :)

По моему мнению, сие писал человек, не умеющий рулить персом :)

Проблем добежать в нужный портал-вихрь при своевременном озвучивании "где какой висит", оббежав при этом чужие - ноль целых, ноль десятых.

Изменено пользователем Лао

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вопросик.

Играя меником на стандартном интерфейсе столкнулся с тем, что не всегда успеваю реснуть павших рейдеров: пока в рейдовом окне отыщешь трупик, ткнешь в него (попасть же нужно, а иногда и крутит тебя или бежишь), потом мышой тянешься на хотбар к ресалке, тыкаешь ее - поздно, кто-то уже опередил тебя, лезешь другого поднимать - та же песня...

Конечно это все можно обяснить криворукостью или недостатком опыта игры, что простительно, учитывая количество времени, которое я могу посвятить игре, и тем не менее... Поскольку я по природе ленив, то эта лень часто толкает меня на поиски решений, способных компенсировать мои недостатки. Вот и тут попробовал сделать макрос, перебирающий по очереди всех рейдмемберов (через useabilityonplayer r# код_умения). Типа - увидел, что кто-то слег, жамкнул кнопку макроса (даже без смены цели) и раз ресалка только на труп действует, то живых она пропустит, а первый же труп зацепит - начнет читаться...

Опробовать этот макрос вне рейда не представляю как, а когда попробовал в рейде - ничего не получилось - макрос ругался, что цель не та. Ну и так как времени долго экспериментировать на своих товарищах не было, пришлось ресать по старинке в несколько кликов.

Но проблема осталась.

Подскажите, может быть уже есть готовое решение (вроде поискал по форуму, но не нашел).

Или может быть я неверно написал команду? Какой может быть синтаксис у useabilityonplayer цель код_умения (можно ли указывать целей в рейде как r0, r1, r2, ... r22, r23

или как r1, r2, r3, ... r23, r24

или нужно вообще использовать что-то типа %r

а также какой синтаксис для группы?

Я писал макрос через вызов текстового файла по команде do_file_command

А в самом текстовом файле было что-то типа того:

useabilityonplayer r1 3390154729

useabilityonplayer r2 3390154729

...

useabilityonplayer r24 3390154729

Ну или может быть есть мысли, как эту задачу можно решить другим путем?

Изменено пользователем ilex33

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В нестандартных интерфейсах( профит, фуего ) рес члена рейда/группы уже реализован в окнах группы рейда на быстрых клавишах.

Чтобы твой макрос сработал его нужно тыркать много раз, и да, при этом он всегда будет ругаться. Принцип работы макроса, в связи с большой нагрузкой на сервер, СОЕ в свое время изменило так: срабатывает первое отлипшее умение сверху списка и последнее в списке. если тыркать часто кнопку с макросом, сработают и остальные, но вот все 24 врядли.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Принцип работы макроса, в связи с большой нагрузкой на сервер, СОЕ в свое время изменило так: срабатывает первое отлипшее умение сверху списка и последнее в списке. если тыркать часто кнопку с макросом, сработают и остальные, но вот все 24 врядли.

Я думал, что немного не так. Сработает первое сверху списка, которое не в залипе, и для которого выполнены все условия срабатывания, и потом попытается сработать последнее в списке (встанет в очередь если выполнены условия срабатывания, или не встанет в очередь, если не выполнены каки-то условия срабатывания).

Дальнейщий полет мысли был такой - раз цель заклинания - труп союзника, то на живых оно просто не будет срабатывать, значит будет пролистываться по строчкам макроса, пока не найдется труп...

Или полет мысли был неправильный?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не, не правильный. Раньше примерно так и было, как ты рассуждаешь, но несколько лет назад все изменилось. Не отправляет клиент на сервер все твои 24 команды, которые кстати представляют собой один и тот же спел. Поэтому первый закл у тебя в списке всегда не в залипе, как и 23 остальных.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну, можно и мод написать, который будет юзаться как обычный макрос с панели.

У меня другой вопрос возникает: а как быть, если надо поднимать выборочно (хила или танка, в первую очередь) или если труп лежит далеко?

Можно сделать в моде приоритет по классам, конечно... Типа, хил-танк-развед(ибо меники)-маг.

Изменено пользователем Pirate

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно сделать в моде приоритет по классам, конечно... Типа, хил-танк-развед(ибо меники)-маг.

Было бы великолепно!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В общем, делать мод для обычного реса упавших союзников я не стал, ибо неинтересно и неэффективно (лучше пользоваться макрокнопками рейдового окна фуего, профита и т.п.), а с приоритетом по классам сделать не так просто, потому что помимо поиска упавших необходимо сравнивать их классы.

В общем, сделать реально, но времени пока нет ) Отпишусь, когда что-нибудь получится.

Кстати, мысли о трупах натолкнули на идею добавить в мод на дальность отображения имён изменение цвета имён трупов (не в окне рейда, а на общем экране) на более заметный. Потому что серый цвет плохо заметен и вообще... Но тут подумал, что возможно в настройках цветов интерфейса можно выбрать другой цвет имён трупиков (там, где выбираются цвета в зависимости от уровня моба и т.д.)? Не?

Изменено пользователем Pirate

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Понятно, надо посоветовать знакомым меникам ))

Карыч, а ты не знаешь, как интерфейс переварит событие, типа OnShow="...", если в нём будет около сотни условий, типа dead=(parent.Volume.Group1.Member3.Basic.Health.Progress == 0.000)?

Просто я когда-то пытался увеличить список умений, отслеживаемых в поддерживаемых заклинаниях, но клиент начинал глючить. Не знаю, связано это было со слишком большим количеством операторов "или" в одной команде или с большим количеством строк в блоке.

Иначе придётся писать какой-нибудь цикл с приращением, а я ещё не настолько разобрался с последовательностью срабатывания элементов в xml.

Типа, если будет вот так:

<Button Name="1" OnPress="parent.2.press=true

parent.3.press=true"/>

<Button Name="2" OnPress="say 2"/>

<Button Name="3" OnPress="say 3"/>

То при нажатии кнопки №1:

а). Будут отработаны все команды кнопки №1, затем все команды кнопки №2, затем все команды кнопки №3.

б). Будет отработана команда parent.2.press=true, затем команда say 2, затем команда parent.3.press=true, затем команда say 3.

Ты не в курсе, как это работает? )

Вообще, это не так сложно проверить, но вдруг ты в курсе или есть работающий пример )

И ещё интереснее такой каскад:

<Button Name="1" OnPress="parent.2.press=true"/>

<Button Name="2" OnPress="parent.3.press=true"/>

<Button Name="3" OnPress="parent.1.press=true"/>

Изменено пользователем Pirate

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Последовательность обработки строк/команд в xml слева направо, сверху вниз.

<Button Name="1" OnPress="parent.2.press=true

parent.3.press=true"/>

<Button Name="2" OnPress="say 2"/>

<Button Name="3" OnPress="say 3"/>

Первая строка будет обработана eq2 как <Button Name="1" OnPress="parent.2.press=true&#xD;&#xA;parent.3.press=true"/>, т.е. слева направо, т.е. тыкнется кнопка 2, потом кнопка 3. Соответственно вариант б) Если сравнить с бейсиком, здесь тыкание кнопок parent.2.press=true аналогично вызову функции, а не безусловный переход (goto)

<Button Name="1" OnPress="parent.2.press=true"/>

<Button Name="2" OnPress="parent.3.press=true"/>

<Button Name="3" OnPress="parent.1.press=true"/>

Эта штука поидее не имеет выхода, бесконечный цикл, поидее клиент должен подвиснуть при обрабоке данного цикла.

Изменено пользователем Каркарыч

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Эта штука поидее не имеет выхода, бесконечный цикл, поидее клиент должен подвиснуть при обрабоке данного цикла.

Этот цикл я для примера привёл, а вообще, он должен иметь такой вид, при котором цикл повторяется n-ое количество раз. Насколько я понял, примерно такой цикл использован в Cure Finder.

За ответ спасибо, попробую проверить его на практике, если не получится впихнуть 100-120 строк в один блок )

P.S. глянул старый мод таймеров иммунитетов от Aditu, там есть блок OnShow, содержащий почти 70 строк с такими же условиями, что и у меня (== и true : false). Так что буду пробовать.

Хотя, наибольший интерес для программиста представляет цикл )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Интересно, а можно ли иметь больше 10-ти панелей горячих клавиш? А то 10-ти уже как бы не хватать стало, особенно после того, как часть панелей решил задействовать под работу в группе - типа ману лить, бафы персональные кидать, доты снимать (у меня стандартный интерфейс, без глобальных модификаций типа Профита).

Или может быть под эти цели (персональный саппорт в группе/рейде) можно как-то изменить часть интерфейса?

Знаю, что Пират делал "Окно группы/рейды" а-ля Профит. Но там вроде бы под макрокнопки задействована 10-тая панель макросов, которая опять же используется под его же мод "Автомакро" (гранд-респект).

Так вот, во-первых вроде бы последняя обнова мода по Окну группы/рейда вроде бы - начало 2013 г. Работает ли он после наката обнов и дополнений?

А во-вторых, может быть есть вариант более простого окна группы/рейда с макрокнопками и крестами, чтобы не занимать 10-ую панель макросов?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1) Игровой клиент предоставляет только 10 панелей горячих клавиш, больше нельзя.

2) Панели горячих клавиш у пирата используются для определения отлипа закла/макроса, получения иконок. В модах профит, фуего и многие другие панели горячих клавиш не используются.

3) Различные окна группы на http://www.eq2interface.com

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

За ссылку спасибо, там действительно уйма вариантов. Одна проблема, языками я не владею. А у нас на русский из того набора ничего не переделывали?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

×