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

Дайджесты за январь-февраль

Обновления гайдов и аддонов

Январь Февраль

Мониторинг серверов и редактор аддонов

Представляем вам две легенды. То, о чем можно было только мечтать, стало реальностью.

Мониторинг серверов Редактор аддонов

Подсказки из игры на вашем сайте

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

Подробнее

Апдейтер аддонов

Представляем вам программу для автообновления аддонов и делимся подробностями.

Подробнее Скачать

Обьединение WString.


Гость jkot

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

DarkMaster, жду с нетерпением того что вышло) Сижу с Гуи для гильдии и объединение wstring будет как мана небесная)

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

ну если рассмотривать "ихний" код, да еще старый, то можно было бы сделать так:

Code:
local msg = ToWs(FromWs(msg1) .. FromWs(msg2))

где msg1, msg2 - это строки WString, msg - результат их соединения, тоже WString.

Но ToWs и FromWs - это просто определенные сокращения для функций из библиотеки debugCommon (ToWString и FromWString соответственно), эта библиотека отключена.

Да и сами разработчики применяют подобное только в процессе отладки (для собственного удобства) и в конечном варианте такие функции не используются.

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

А не фига не вышло ! *))) GetText - это метод ValuedObject - а его как я понял реально получить только из обектов:

Спелл

Абилка

Игрок

Юнит.....

Кароче жопа. Поднял на офф форуме тему - посмритим ра реакцию.....

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

Люди, а чего вы так пристали к этому объединению WString? :-)

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

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

ООО комрад я обьясню ....

1. Есть переменая FightTime

2. Есть переменая FigthFirstPulledMobName

3. Есть переменая FightDamageDone

4. Есть список переменных PlayerName[ i ]

5. Есть список переменных DamageDone[ i ]

Я хочу вывести в чат следующее:

Бой с "СуперМоб-ом" занял 123 секунды, за бой было нанесено 12345 урона

1. Вася - 2314 ( 1231 ) 57%

2. Петя - 1242 ( 345 ) 36%

3. Маша - 245 ( 122 ) 18%

В АО Апи для этого мне нужно использовать - group.ChatSay( text ), где text - обизательно должен быть WString. Так вот я не могу написать вот так:

Code:
text = common.FormatInt( i, "%d" ) + "." + PlayerName [ i ]  + DamageDone [ i ]  + " ( " + DPS + ")" + Percentage + "%"

так как нету конконтинации для WString. group.ChatSay( text ) - кушал обычные строки, или была бы возможность конверировать строку в WString, которая кстати есть ToWS( string_text ) , но закрыта разбрами в АПИ.

Этого бы "вайна" не было бы, если бы

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

Мне кажется, здесь изначально занята неправильная позиция, такая что:

Quote:
Я хочу вывести в чат
Quote:
мне нужно использовать - group.ChatSay( text )

Неужели необходимо выдавать статистику боя всем, кто бегает вокруг? Функция group.ChatSay выдает сообщение в общий (белый) чат. Да даже если выдавать ее в пати-чат (функция group.ChatParty), то это не всем сопартийцам может быть нужно, а скорее всего наоборот, только мешать будет. Так что IMHO статистика эта должна быть видна только у того, кто юзает этот аддон.

Так зачем пытаться использовать систему чата, которая для этого не предназначена? Не лучше ли завести виджет типа TextContainer, в который можно добавлять составные строки типа ValuedText с помощью метода PushFrontValuedText(VT), причем этих строк там может быть много и их можно пролистывать назад-вперед, удалять (как первые, так и последние) или очищать все окно. Ну а в объект типа ValuedText как раз и можно напихать сколько угодно WString-строк, в перемешку с поясняющим текстом. По-моему, как раз то, что нужно для данной задачи.

По поводу функции ToWs(). Она определена так:

Code:
function ToWs( text )

if common.HasDebugLibs() then

return debugCommon.ToWString( text )

else

return common.GetEmptyWString()

end

end

Понятно, что при отключенных debug-библиотеках мы всегда получим пустую строку.

Но таким образом и сами разрабы ей пользоваться не могут в конечных вариантах своих модулей, т.е. нет таких мест где они сами бы конвертировали string <--> WString, а нам бы при этом не давали :-)

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

хммммм ... чудненько *))))

Послушайте уважаемый комрад kst.

1. Вывод статистики - это вопрос решаемый самим игроком - куда выводить. Решаейт игрок. У меня стаж ММО 9 лет. 2 года - Ultima, 2 года Everquest, 5 лет WOW. Поверьте моему опыту - вывод статистики нужная и важная функция в ДПС метрах. Причин много - от "попантоваться", до анализа данных. И аддон должен предоставлять такую возможность - в виде вариантов выбора при экспорте. Темболее это отроботана годами.... но если вы сомневаетесь в моей ( да и не всего прогрессивного ММО собощества ) позиции - можно конечно спорить, но лучше согласиться ... ибо в конце полемики все равно согласитесь, если конечно не упретесь рогом.

2. Я пишу аддон для многих игр, WoW, AoK, WAR, Ragnarok, список могу длинный привести и не только аддонов. Но такого жуткова, сырово, и не удобного АПИ я давно не встречал.

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

4. В многих проектах есть доступны выводы как в чаты, так и в фреймы чатов. Разница в том что при выводим в чат - это видять окружающие, при выводи в фрейм чата - только игрок. Это удобно и нужно для отладки обьявлений и т.д

Аддонов где это нужно, очень очень очень много. Примеров масса. Адекватных причин не дать мод мейкернам НОРМАЛЬНУЮ работу со строками и выводом я вообще не вижу, вернее догадываюсь об одной, но она опятьже выставляет нивал не в лущем свете.

Quote:
о таким образом и сами разрабы ей пользоваться не могут в конечных вариантах своих модулей, т.е. нет таких мест где они сами бы конвертировали string <--> WString, а нам бы при этом не давали :-)

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

Quote:
"-Вася, а почему ты все время ищещ инфу на буржуйских ресурсах ? Ведь можно найти на русс, и понятно и быстрее !"

"- Хехе Петя, зеленый ты еше. Только на русских форумах - на четко поставленный вопрос, в 90% случаях пишут - А зачем тебе это нада ?, в место ответа..."

Разговор в курилке, прогрммисткой конторы *)

Вообщем комрад, пишет болше по сабжу, а то за флудим тему. Я надеюсь б ольше не будет вопросов - "зачем" *)))))

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

Вродк же отписывался как можно "объединять"

пишем файлик, text.txt:

Code:
<header alignx = "center" fontsize="12"><rs class="class">дядька <tip_blue><r name="target"/></tip_blue> только что нанес <r name="damage"/> урона</rs></header>

и из скрипта регим виджет и устанавливаем нужные значения:

Code:
text:SetVal( "target", MyWStringParam )

text:SetVal( "damage", MyIntDamage )

ну и далее выводим куда нам надо. как регить valued text и выводить строку - уже писали гдето тут неподалеку... так что повторяться не буду...

PS: Сплю и пишу на память.

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

Отвечу, пожалуй, тоже по пунктам :)

1. Никто не спорит, что вывод статистики вещь нужная, но выводить ее именно таким образом все же несколько странно. У меня тоже немалый опыт различных ММО-игр, но пока ни разу не видел, чтобы чья-то статистическая/отладочная инфа выводилась в какой-либо канал чата, и даже не слышал о таком. :)

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

3. Тут надо четко различать что есть строки для внутреннего использования (string), и строки предназначенные для отображения пользователю (WString). С первым типом вообще все понятно, все стандартные возможности присутствуют. Второй же тип, это не просто "замах на универсализацию", это вполне реализованная концепция минимума затрат при локализациях. И разработчики аддонов находятся в тех же условиях, что и разработчики клиента, подчинены тем же ограничениям. Хотя с моей точки зрения, можно было бы сделать библиотечку работы с типом WString как с обычной строкой, чтобы было и объединение, и вырезка подстрок, и поиск внутри строки и т.д. Почему такого средства нет, мне непонятно, может у них были на то причины, а может поленились. Но еще раз повторюсь, аддон-мейкерам в этом отношении ничего не обрезали, и в просмотренных мной оригинальных ниваловских модулях я не нашел какой-то сложной работы с типом WString. Все упоминания ToWs, FromWs и т.п. закомментированы, т.е. после завершения отладки не работают. Если кто-то приведет пример кода, где это не так, я буду удивлен. :)

4. Про вывод в чат-канал я писал выше, а вывод в фрейм - это я, собственно, и предлагал. Только вот стандартные фреймы чатов, (разговорного и комбат-лога), являющиеся виджетами TextContainer, нам для манипуляций вроде как недоступны (если это не так, то подскажите как можно обращаться к ним и другим оригинальным виджетам, буду благодарен ;-)). Поэтому я и предложил создать свой экземпляр виджета и писать в него все, что захочется, отображая WString-строки, как угодно скомпонованные через ValuedText.

Ну а по сабжу "Обьединение WString" ответ был дан давно и многими - никак.

В коде не получить строку WString из двух других или из обычной строки. Просто мне стало интересно, почему люди упорно пытаются проломить стену (капитальную!), вместо того чтобы поискать дверь. ;-)

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

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

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

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

Quote:
выводилась в какой-либо канал чата, и даже не слышал о таком.


А я с этим встречался милеон раз как в виде отладочной инфы так и ввиде полезных аддонов. Вот примеры

DeadlyBossMods, BigWigs, BattleGrounds .... - выводят разлисные предупрежденяи в чат по боссам событиям, пвп и т.д., может писать как видимые только игроку так м выдимые пати\рейду.

В практически всех аддонах имеющих внутриигровую синхронизацию. ВОВ это не АО там все намного глубже и продуманнее ( кроме графики, по которой АО беспороно впереди, да и только ). Так вот там есть возможность создавать чат каналы - публичные и скрытые - то есть я моугу создать канал с любым Именем, с паролем или без. Любой игрок сможет присоедениться к данному каналу и обшатсья со мной и теми кто в этот канал подключенн. Например - у нас есть каналы ИмяГилдииПристы, ИмяГилдииОхотники .... и т.д. Там конкретные классы обсуждаю свои конкретные темы - по игре, механике, тактике на боссов и т.д. Конечно, кто то использует это, а кто то нет - на свое усмотрение. Но даже не это самое важное - синхронизация аддонов вот что дествительно важно. Как скажите 2 аддона установленных у разных людей должны синхронизироваться в АО ? Ответ - никак, пока нет возмжности нормальной работы с чат мессагами. В ВОВ я могу создать для своего аддона специальный чат для синхронизации - поставить ему тип - скрытый, и слать\чиать туда инфу для синхронизации данных между аддонами у разных игроков. Предупреждая очередной глупый вопрос - "Зачем?", приведу яркие примеры:

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

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

ДПС меетр и прочии метры - синхронизируються для повышения точности отображаемого результат.

Аддоны управления рейдовой валутой, DKP, KP, EGP - аддоны которые позваляют автоматизировать процесс раздачи условных рейдовых очков. ( кто не знает что это такое - гуглите: DKP описание ). Автоматизация распределения лута РейдЛидером и т.д.

И это только то что первое приходит на ум.....


А теперь комрад kst еше раз скажи мне что не нужно выводить в чат... *))))


Quote:
АПИ, очевидно, далек от совершенства, но тем не менее это тот же самый АПИ, которым пользуются сами разработчики, и на котором написана вся или почти вся интерфейсная часть игры. Другое дело, что часть этого АПИ не документирована...


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

Quote:
Второй же тип, это не просто "замах на универсализацию", это вполне реализованная концепция минимума затрат при локализациях.

Да для себя, для команды разбров - это круто. Но нам то это все нахрена в аддонах ? Близзы сделаи проше - локализаци оставлии на усмотрения авторов аддонов. Дали им спец структуру данных, в котрой описываеться локализация и все - и никаких проблем ! А тут намудрили.... вернее подумали только о себе....

Quote:
люди упорно пытаются проломить стену (капитальную!), вместо того чтобы поискать дверь. ;-)


Помоему тут как раз и пытаються найти дверь, иммено дверь а не восмиугольный проем в потолке в который нада пролазить предворительно трансформировав себя в 5-мерное пространсво *)))) ( это я по поводу файликов, и VauledText )



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

Ну и где же тут что-то "по сабжу", к чему ты сам призывал выше? Таки зафлудили тему... ;-)

Немного ответного офф-топика:

Quote:
А я с этим встречался милеон раз как в виде отладочной инфы так и ввиде полезных аддонов. Вот примеры

Мы же вроде про АО говорим, причем тут ВОВ и его многочисленные и многообразные аддоны? Я прекрасно понимаю, что могут быть случаи когда нужен вывод в чат. Более того, у меня самого есть служебный аддончик, посылающий по некоторым условиям сообщения в ПМ, для синхронизации, в некотором роде. :-) Просто тобой изначально была описана конкретная ситуация: вывод статистической таблицы дамага в общий разговорный чат (а не какой-то специальный именованный).

Quote:
еше раз скажи мне что не нужно выводить в чат

Я скажу так: нужно думать, что нужно выводить в чат (и в какой именно чат), а что не нужно. :-)

Quote:
Я не знаю как они там у себя это все делают, понять сложно, если ты уверен что делают - покажи премер, если не влом

Читай внимательнее - я как раз уверен что ничего "такого" они и сами не делают - они не конвертируют string <--> WString, не объединяют/разделяют WString-строки, они их только получают в готовом виде из заранее созданных текстовых ресурсов и запихивают в интерфейсные элементы, непосредственно или через промежуточные ValuedText-ы.

Quote:
Да для себя, для команды разбров - это круто. Но нам то это все нахрена в аддонах?

А клиенту АО пофигу, написан аддон разрабами или фанатом-модмейкером. И с этой точки зрения проблем с локализацией не должно быть ни у оригинального куска клиента, ни у пользовательского дополнения. Тут локализацию не оставили на усмотрение, наоборот - она заложена в основу всей модели клиента и АПИ. Нам остается только смириться с этим, и приспособиться к данным условиям (что, в общем-то не сложно), т.к. вряд ли тут что-то изменится, ну или забить на АО и продолжать писать для ВОВ. :-)

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

Все выше сказанное мной лишь ответная реакция на твою упретость *))) Реально это бесконечный процесс. Спорить будем долго. Суть в том что - нормальные игры предоставляют нормальное АПИ и только наша "Игра-Кактус" предоставила нам "Кактус-АПИ". Я вообше не понимаю чего тут спорить то - факт: то что Нивал не предоставил нам адекватного способа работы со строками говорит лишь об одном - об их халатном отношенни к работе, и к нам - модмейкерам. И искать тут какието оправдания - типа : "...а вот у себя вскриптах они использует метод - через ж...". Клиента мало волнует что и как использует разбр для себя, клиент хочет получить качественную услугу, а модмейкеры такиеже клиенты - как и рядовые игроки. Это и отличат нас от буржуев - бурги заботяьться о комфорте своих клинтов, наши - нет. Это давно доказанный факт.

Все началось если ты не забыл с того что ты спросил: " ... А зачем вам это нада ?...", я ответил, но видимо тебя мой ответ не удовлетворил. Просто прими как факт - нужна нормальная работа с стороками, с возможностью вывода в чат, от этого выиграют все: мы, разбры, рядовые игроки.

Я думаю стоит закрыть флуд *) Если ты остался убежденным в своей позиции, я просто ужэе и не знаю как иммено тебе донести мысль *) Заранее приношу извенения если задел чем либо.

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...

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

Пользуясь сайтом, вы принимаете Условия использования