-
Постов
3 118 -
Зарегистрирован
-
Посещение
Тип контента
Загрузки
Форумы
Статьи и объявления
Гардероб
Маунты
Сообщения Allods Team
Трекер ошибок
Магазин
Галерея
Сообщения, опубликованные icreator
-
-
спасибки за обстоятельный ответ!!! теперь поняла
-
ничего не понятно (((
вот у меня таблица с несколькими полями: ПолеА, ПолеБ, ...
мне надо отсортировать по ПолеА+ПолеБ
как код будет выглядеть?
-
ну вот этот аддон мною сделан - и послан вам сюда
-
а есть какая-нибуль среда для разработки этих GUI а то вручную как-то сложно все делать ((
-
понятно. а по части производительности? если события происходят например часто, скажем обработка списка почты, то лучше включать /выключать слежку или просто в подпрограмме-обработчике OnEvetMY сделать пару проверок?
и еще вопрос - если на одно событие подписано несколько подпрограмм - то как они будут вызываться?
-
правильно ли делать слежку за событиями, в ответ на действия аддона так, чтобы такие же события от пользователя не обрабатывались:
объявляем слежку
common.RegisterEventHandler( OnEvetMY, "EVENT_1" )
а в вызываемой процедуре сразу обрубаем:
function OnEvetMY ( pars )
common.UnRegisterEvent( "EVENT_1" )
...
-
а есть события какие чтобы понять - открылось ли окно аукциона?
-
для поля ввода <WidgetEditLine> можно сделать проще - просто для его выделения добавить
<Item href="Input1Panel.(WidgetPanel).xdb#xpointer(/WidgetPanel)" />
в потомки главной апнели и позицию совместить с WidgetEditLine
-
<TextStyle>
<Align>ALIGNY_DEFAULT</Align>
какие тут еще варианты? я так думаю
ALIGNY_LOW
ALIGNY_TOP
ALIGNY_BOTTOM
ALIGNY_MIDDLE
-
да без
<Cursor1Layer href="" />
<Cursor2Layer href="" />
поле работает но курсора в нем нету (( в слепую тыкаю мышкой и ввожу данные.
туда видимо нужно картинки вставить для мигания курсора... как бы их из игры (в чате) выцепить??
-
а вот как !! .lua сам все конвертирует на лету по контексту
-
AucEDSman
Просмотр файла
Это аддон упрощает жизнь завсегдатаям аукциона. Ваше время - ваши деньги - время экономится в разы!
*******************************************************************
как сообщать об ошибках в аддоне
Для работы нужно установить аддон:
for work need to instal:
Для вызова окна аддона - откройте AddonsMenu (двойной клик по часам) и нажмите на соответствующем пункте меню в списке аддонов
*******************************************************************
1. Работа на аукционе.
++ создание множества лотов. Надо открыть аукцион. Окно аддона откроется само автоматически. В режиме обучения (нажать кнопку Далее) – и в пустую ячейку сумки поместить кучку предметов, которые вы хотите выставлять одним лотом на аукцион. Во время обучения это можно делать с помощью шифт-, контрол-, альт-левая кнопка мыши. Можно делать несколько раз - будет запомнено только последнее действие. Название вещи и количество штук в лоте будет отображено в окне аддона.
В окне аддона вводим прочие параметры лота. Если стартовая цена = 0 - то она будет = 0.95 от цены выкупа. Выбраем продолжительность - 3/12/24 часов (жмем кнопочку там рядом).
Затем нажимаем "Далее" – и начинается работа: аддон делает из этих вещей кучку с заданным количеством и выставляет ее на аукцион, - и так пока не кончатся все вещи с таким названием в вашей сумке. При этом аддон запоминает параметры лота и следующий раз, в режиме обучения при выборе вещи, они будут подставлены автоматически.
Лоты будут выставляться даже если вы будете делать поиск на аукционе, если закрыть окно аддона или сумку (инвентарь) - главное чтобы окно аукциона было открыто. Остановить можно кнопкой Стоп или закрыв окно аукциона.
Автоматический поиск вещей на аукционе. В режиме обучения делается поиск одной страницы таких вещей на аукционе. Чтобы закрепить фильтр для окна аукциона следует нажать "Поиск" на окне аукциона.
Галочка "Подобные" - делает поиск подобных вещей. Если она не поставлена то поиск будет по названию. Если был сделан поиск подобной вещи, то чтобы найти по названию - нажмите кнопку "Поиск" аукциона.
при создании нового лота с неизвестной для аддона вещьюаддон ставит цену выкупа по умолчанию:
по залогу на аукционе и множителю ZALOG_RATE но не менее чем MINIMAL_COST - эти 2 параметра можно настраивать в config.txt
++ снятие пустых невыкупленых лотов (которые без ставки). При открытом аукционе и закладке "Владелец" - нажимаем "снять". Придется смотреть и больше ничего не трогать на аукционе, так как иначе будет попытка удалить то, что найдено последним поиском (в том числе и от пользователя). Окно аддона и сумку можно закрыть.
++ DnD - окно аддона можно передвигать по экрану. Окно аукциона тоже можно двигать - зажимая мышку на его заголовке "Аукцион".
++ База данных по ценам на вещи теперь хранит данные 1год (12 месяцев) с даты последнего выставления такой вещи на аукцион, после чего запись будет удалена - чтобы не раздувать файл конфигурации игры.
выглядит это примерно так:
http:/alloder.pro/upload/0/0/AucEDSman9--.jpg
2. Работа на почте
в версии r21 сделано авто-удаление пустых писем.
++ сбока почты с аукциона. Нажав кнопку "Обработать Почту" при открытом окне почты - аддон начинает забирать с почты все письма (деньги или предметы), пришедшие с акциона - кроме писем которые выиграны промежуточной ставкой. Пустые письма будут удаляться если поставлена галочка "Удалять пустые письма". Окно сумки может быть закрыто. Если вы забрали вещи/деньги из писем без удаления письма, то чтобы удалить пустые письма поставьте галочку "Удалитьпустые письма" и повторно нажмите кнопку аддона "Обработать Почту"
Настройка положения окна чата, когда открывается аукцион, а так же прочие настройки:
r61 - Аддон начал различать вещи с одинаковыми именами, но разные по привязанности или с разным сроком годности, так что теперь он их не смешивает, а считает разными вещами.
Если предмет не определен то при повторном нажатии "Далее" - берется 1й непустой слот в карманах сумки
ENGLISH:
AucEDSman addon description:
Simplifies life for auction frequenters. Automates the execution of 3 tasks:
1) [auction] This tool automatise creating auction lot with any stack. You need to open the auction window. Then, in a learning mode (click "Next") - take a stack of those items (which you want to put by 1pc to auction) - and drag&drop it to an empty bag slot. Then enter buyout price in addon's window (if minimum bid price = 0 - then it will be 0.95 of buyout price). Price expressed in SILVER coins. Then click "Next" - and addon starts working: takes items (one by one) from this stack, and puts to an empty slot, and then, puts it on auction... You can stop it by clicking "Stop" button or by closing the auction window.
2) [auction] Discards an empty unredeemed lots (which are without bids). While auction window's "My Auctions" tab is open - click "Discard". While addon is working, DON'T touch anything in the auction window, otherwise it will attempt to discard what was found by last search (including the user search).
3) [mail] Collects mails, which came from the auction. Click "$EDS" button while Mail window is open - addon starts collecting attachments (both money and items) from letters which came from the auction - except for letters that have won by the intermediate bids. Bag window may be closed.
Added ability to specify the "spread" of minimum bid as a percentage (for example, 2%).
Settings:
-
Добавил
-
Добавлено15.12.2010
-
Категория
-
-
есть "12345.6789" строка как из нее получить число?
common.GetIntFromWString( str ) - дает только целое
-
Code:
<?xml version="1.0" encoding="UTF-8" ?>
<WidgetEditLine>
<Name>Input1</Name>
<Priority>1000</Priority>
<Children />
<BackLayer href="" />
<FrontLayer href="" />
<textureMask href="" />
<pickMask href="" />
<Placement>
<QuantumScale>false</QuantumScale>
<sizingWidget href="" />
<sizingWidgets />
<X>
<Align>WIDGET_ALIGN_LOW</Align>
<Sizing>WIDGET_SIZING_DEFAULT</Sizing>
<Pos>0</Pos>
<HighPos>50</HighPos>
<Size>100</Size>
</X>
<Y>
<Align>WIDGET_ALIGN_LOW</Align>
<Sizing>WIDGET_SIZING_DEFAULT</Sizing>
<Pos>0</Pos>
<HighPos>100</HighPos>
<Size>200</Size>
</Y>
</Placement>
<Visible>true</Visible>
<Enabled>true</Enabled>
<TabOrder>0</TabOrder>
<bindSections />
<TransparentInput>false</TransparentInput>
<PickChildrenOnly>false</PickChildrenOnly>
<IgnoreDblClick>false</IgnoreDblClick>
<fade>1</fade>
<Cursor1Layer href="" />
<Cursor2Layer href="" />
<CursorWidth>2</CursorWidth>
<CursorChangeTimeMs>500</CursorChangeTimeMs>
<ReactionEsc />
<ReactionEnter />
<ReactionChanged />
<TextStyle>
<multiline>false</multiline>
<wrapText>true</wrapText>
<showClippedSymbol>false</showClippedSymbol>
<showClippedLine>true</showClippedLine>
<lineSpacing>0</lineSpacing>
<ellipsis>true</ellipsis>
<Align>ALIGNY_DEFAULT</Align>
</TextStyle>
<isPassword>false</isPassword>
<maxSymbolsCount>-1</maxSymbolsCount>
<filterAlias />
<globalClassName />
<selectionClassName />
<selectionLayer href="" />
</WidgetEditLine>
я так понимаю надо вот сюда что-то вставить или правильно указать положение на экране -
нет. надо чтобы прога волучила ввод от пользователя
local Str1 = input()
типа такого
-
как ввести что-либо через виджет? едитСтринг? как его заставить работать?
-
мои замечания.
Файлы с расширением .xdb и .lua - обычные текстовые. Желательно их редактировать в обычном NotePad(Блокнот) - так чтобы кодировка осталась та же. Я например долго мучилась, редактируя .xdb в XML NotePad - он переворачивал текст в кодировку виндовскую что ли, и эти файлы переставали работать.
Файлы .xdb содержат описание графического интерфейса, .lua - содержат программы обработки.
Для начала можно скопировать похожий на ваш будущий аддон уже существующий в новую паку (с названием вашего аддона) и переправить там некоторые названия в .xdb - просматривая все что вложено по тегу <Children>
Code:<Children>
<Item href="GUI/MainPanel.(WidgetPanel).xdb#xpointer(/WidgetPanel)" />
</Children>
начиная с MainForm.(WidgetForm).xdb
так например в файле MainPanel.(WidgetPanel).xdb написать в <Children>:
<Item href="InputMyName.(WidgetEditLine).xdb#xpointer(/WidgetEditLine)" />
Заметьте, что типВиджета в строке: (ТипВиджета).xdb#xpointer(ТипВиджета) - должны совпадать
затем переименовать файл Input1.(WidgetEditLine).xdb в InputMyName.(WidgetEditLine).xdb
Затем в этом файле поменять тег имени:
<Name>Input1</Name>
на
<Name>InputMyName</Name>
И тоже самое сделать в программе - редактируя .lua - вставить новые имена в инициализации:
Code:function Init()
wtButton1 = wtMainPanel:GetChildChecked( "InputMyName" , false )
...
затем загрузите игру и убедитесь что графический интерфейс виден - значит файлы .xdb без ошибок. Если некоторые из них не видны проверьте теги
<Visible>true</Visible>
<Enabled>true</Enabled>
а так же в скриптах (файлы .lua) чтобы эти виджеты не гасились, например так:
Code:wtMainPanel:Show(PanelShow)все ненужные строки в скрипте закомментируйте тремя минусами:
Code:--- wtMainPanel:Show(PanelShow)дальше все просто - программа-клиент (игра ОА) будет посылать вашему скрипту события - надо их отловить и обработать, и возможно послать события другие обратно. Для этого надо объявить какие события будет обрабатывать какая ваша функция:
Code:function OnProba()
--- напишем это в логФайл
LogInfo("Hello World!")
end
function Init()
common.RegisterEventHandler( OnProba, "EVENT_INVENTORY_ITEM_CHANGED" )
end
--------------------------------------------------------------------------------
Init()
--------------------------------------------------------------------------------
-
возможно ли сделать МОД, который бы запоминал цены на лот и затем при выставлении шмотки на аукцио ставил сразу такие же цены и даже жал "Энтер". Типа кнопка - запомнить/работать
когда горит запомнить - он запоминает последние цены. если нажато - работать - то он сам ставит цены
-
-
часто выкидывает из списка членов группы
просьба сделать так что при нажатии ОБНУЛИТЬ заново все челный группы собиральсь в список - а то постоянно приходится перезаходить
и еще
ДПС туррели приваить бы к ДПС ее собственника? там отдельной строкой писать - как умение
-
начинает удалять только при пролистывании вниз почты. чем меньше писем "ниже" тем быстрее удаляет
неудаляет если первое писбмо полное или не от Аукцион
а может сделать галочку возле - удалять автоматически - не удалять - а то и те письма что нужны - тоже удаляет при забирании из них денег...
-
чето удаление всех не пашет вообще (
Lua table sorting
в Вопросы и ответы
Опубликовано
написала так:
function MyCompare( a, b )
return (a.name .. a.comment) > (b.name .. b.comment)
end
table.sort( t, MyCompare (a, )
ошибка:
Error: addon AucEDSman: func: Repaint, method, line: 207, defined: Lua, line: 199, [string "mods/addons/aucedsman/scriptlist.lua"]
Error: addon AucEDSman: Attempt to read from undeclared global variable: a
Error: addon AucEDSman: func: Repaint, method, line: 207, defined: Lua, line: 199, [string "mods/addons/aucedsman/scriptlist.lua"]
Error: addon AucEDSman: Attempt to read from undeclared global variable: b
[string "mods/addons/aucedsman/scriptlist.lua"]:196: attempt to index local `a' (a nil value)