Классы
Статы, идеальное соотношение · Умения и вехи, как получить · Души · Сравнение классов
Воин · Жрец · Некр · Лучник · Шаман · Мист · Бард · Инж · Демон
Игровой процесс
Как одеваться · Драконий облик · Наследие Богов · Фарм золота
Прохождения локаций
Мониторинг серверов и редактор аддонов
Представляем вам две легенды. То, о чем можно было только мечтать, стало реальностью.
Подсказки из игры на вашем сайте
Теперь вы можете отображать сведения о внутриигровых элементах простым наведением курсора мыши.
-
Постов
1703 -
Зарегистрирован
-
Посещение
Тип контента
Загрузки
Форумы
Статьи и объявления
Гардероб
Маунты
Сообщения Allods Team
Магазин
Галерея
Весь контент Setras
-
В ScriptGuildGui1b.lua добавить: В строке 962 заменить: Code: LogInfo( ";", (i+1), ";", m .name, ";", m .sysClassName, ";", m .level, ";", m .sysTabardType, ";", guild.GetRankInfo( m .rank ).sysName, ";", m .authority, ";", m .loyalty, ";", m .joinTime, ";", m .lastOnline, ";", m .zone,zonesep,m .subzone ) на Code: LogInfo( ";", (i+1), ";", m .name, ";", m .sysClassName, ";", m .level, ";", m .sysTabardType, ";", guild.GetRankInfo( m .rank ).sysName, ";", m .authority, ";", m .mauthority, ";", m .loyalty, ";", m .joinTime, ";", m .lastOnline, ";", m .zone,zonesep,m .subzone ) В строке 949 заменить: Code: LogInfo( ";#;Name;Class;Lvl;Tabard;Rank;Prestige;Loyalty;JoinDate;LastOnline;Zone" ) на Code: LogInfo(";#;Name;Class;Lvl;Tabard;Rank;Prestige;MonthPrestige;Loyalty;JoinDate;LastOnline;Zone") между строками 207 и 208 надо вставить строку(средняя) чтоб было так: Code: BaseList .authority = members .authorityBaseList .mauthority = members .monthAuthority BaseList .loyalty = members .loyalty Не перепутайте номера строк, написал максимально понятно (и начиная с самых последних, дабы при редактировании вы не напутали ;-) )
-
Имхо Денаю можно верить на все 100% Потому у него и не было 12 и 13 рун до последнего момента - что все данные 100%. Но в этом я на 100% не уверен ;-) Если тебя смущает низкая цена 13 рун - так это потому что курс голды поднялся неимоверно. А когда кристаллы стоят много голды - выгоднее положить больше пыли и меньше крошки, цена рун падает. П.С. Ждем когда денай сам скажет "Инфа 100%, мужики!"
-
Quote: например просто списком в отдельном файле Файл mods.txt сойдет? ;-)
-
Можно еще в конфиге координаты заменить, но да, это более геморный способ
-
А может просто 1 к 1 перенести игровую палитру? Уж она то меняться не будет, а вот к раскраске поначалу было неудобно привыкать. В предложенном варианте мне жрецы кажутся слегка темноваты, а сталки - наоборот ярковаты, по сравнению с игрой... Не знаю, может это из-за картинок так.
-
Все данные калькулятора http://allodov.net/runes/ точны (по крайней мере 8-е+ руны я не делал, так что в этом не уверен ). Неточны то как раз внутриигровые данные, точнее серверные. Потому что когда функцией "узнать количество крошки" получается значение "Х", а на самом деле отнимается "Х+1" - тут начинаются проблемы. Т.е. такое ощущение что в игре оно округляется 5/4, а в реальности - всегда в большую сторону. Ну т.е. наверняка там есть какая-то формула. По которой оно высчитывается...
-
А, ну да, сообщений должно быть как минимум два, например: Quote: Внимание! В среду поход в ГД!С.В.О.И. это Сила, Воля, Отвага, Интеллект! (при этом самое последнее, соответственно, и будет висеть основное время в сообщении). Таким образом можно добавить сколь угодно много сообщений которые будут выдаваться в чат по определенным условиям и т.п.... Надеюсь этот функционал не порежут, т.к. он может использоваться только внутри гильдии, что исключает всевозможный спам и прочий абьюз...
-
Code: Global("Stak", {} ) Global("GName", nil ) ------- Counters Global("Counter", {} ) Counter.Hour = 0 Counter.Min_x5 = 0 Counter.Minute = 0 -------- Queues Global("Queues", {} ) Queues.Kats = {} Queues.TO = {} Queues.WasInKats = {} Queues.Minute = {} --============================================================-- ------------------FUNCTIONS AND PROCEDURES---------------------- --============================================================-- function AreTablesEqual(tab1, tab2) --Tables are equal if all values of tab1 are present in tab2, tab2 however can have some additional values, should be no problem. if type(tab1) ~= type(tab2) then return false end for i, v in tab1 do if type(v) == "table" then if AreTablesEqual(tab1 , tab2 ) == false then return false end else if tab1 ~= tab2 then return false end end end return true end function PosInTable(a_var, a_table) --Returns position of variable in a table, if it was not found returns false. if type(a_var) == "table" then for i, v in a_table do if AreTablesEqual(a_var, v) then return i end end else for i, v in a_table do if a_var == v then return i end end return false end end function ChatMsg(params) local mess = userMods.FromWString(params.msg) local sender = userMods.FromWString(params.sender) --!курс if params.chatType == CHAT_TYPE_GUILD and mess == "!курс" then local brate = userMods.FromWString(common.FormatFloat( currencyExchange.CalcBuyRate()/10000, "%.2f" )) local srate = userMods.FromWString(common.FormatFloat( currencyExchange.CalcSellRate()/10000, "%.2f" )) table.insert( Stak, userMods.ToWString("Курс кри: покупка "..brate.."г, продажа "..srate.."г")) end --- --!ролл if params.chatType == CHAT_TYPE_GUILD and mess == "!ролл" then local rolled = math.random(1, 100) table.insert( Stak, userMods.ToWString(tostring(sender).." кидает игральную кость, дальность полета "..tostring(rolled).." метров.")) end --- --The End. end function Sectim() --Runs each second, contains minute/5_minute/hourly timers. --Performs actions that can't be performed more than once per second. --Runs one per hour if Counter.Hour ~= mission.GetLocalTimeHMS().h then Counter.Hour = mission.GetLocalTimeHMS().h end --Runs each 5 minutes if Counter.Min_x5 ~= math.floor(mission.GetLocalTimeHMS().m/5) then Counter.Min_x5 = math.floor(mission.GetLocalTimeHMS().m/5) if Queues.Kats [1] ~= nil and Counter.KatsCantEnter == nil then --Reminds about cats queue table.insert( Stak, userMods.ToWString(tostring(Queues.Kats [1] ).." все еще стоит в очереди в катакомбы.")) end --- end --Runs each minute if Counter.Minute ~= mission.GetLocalTimeHMS().m then Counter.Minute = mission.GetLocalTimeHMS().m if Queues.Minute [1] then end table.insert( Stak, GetGuildMess()) end --Runs actions from stack, one action per second. if Stak [1] then guild.SetMessage( Stak [1] ) table.remove(Stak, 1) end --The End. end function GuildMemChanged(params) --- end function GMemJoined(params) --Loyalty check & reminder local MemInfo = guild.GetMemberInfo(params.id) if MemInfo.loyalty < 97 and MemInfo.tabardType ~= ENUM_TabardType_None then local str = userMods.FromWString(MemInfo.name)..", твоя верность всего "..MemInfo.loyalty.."! Качай-качай! " table.insert( Stak, userMods.ToWString(str)) end --The End. end function GetGuildMess() if GName == "С.В.О.И." then return userMods.ToWString("С.В.О.И. это Сила, Воля, Отвага, Интеллект!") elseif GName == "Братство Сумеречного Леса" then return userMods.ToWString("Не забываем сдавать налоги.") else return userMods.ToWString("По какой-то причине не опознано имя гильдии, сообщите об этом создателю бота.") end --The End. end function Avcrea() GName = userMods.FromWString(unit.GetGuildName(avatar.GetId())) local wdate = mission.GetWorldDateYMD() table.insert( Stak, userMods.ToWString( "("..wdate.y.."-"..wdate.m.."-"..wdate.d..") Script started")) common.UnRegisterEventHandler( Avcrea, "EVENT_AVATAR_CREATED" ) common.RegisterEventHandler(Sectim, "EVENT_SECOND_TIMER") end function Init() common.RegisterEventHandler(GuildMemChanged, "EVENT_GUILD_MEMBER_CHANGED") common.RegisterEventHandler(GMemJoined, "EVENT_GUILD_MEMBER_ONLINE") common.RegisterEventHandler(ChatMsg, "EVENT_CHAT_MESSAGE") common.RegisterEventHandler(Avcrea, "EVENT_AVATAR_CREATED") if avatar.IsExist() then Avcrea() end end Init() Часть кода удалил, оставил только самое полезное. Если есть вопросы - задавайте. Кстати, если кто знает более продуктивный/красивый (второе приоритетнее т.е. с продуктивностью проблем нет ;-) ) способ переписать функции AreTablesEqual(tab1, tab2) и PosInTable(a_var, a_table) - поделитесь
-
Если выставить одно и то же сообщение повторно то... Пустое место, "ну вы поняли" Сообщение не изменится, соответственно события о том что сообщение изменилось не придет WString можно конвертировать в обычный стринг функцией userMods.FromWString(WString) и обратно userModsToWString(string). А проблему с изменением сообщения гильдии я решал следующим образом: делал массив из сообщений которые должны быть проиграны, и периодически они отображались в той последовательности в какой были заданы. Попозже приведу пример мной используемой функции. Сейчас несколько занят (минут 20-50)
-
Man 0_o wtf are you talking about... Don't care 'bout trolls or flamers. They're not worth it. What's the problem with your addon? I can upload the "newest" russian API doc or try to fix and test it on current RU servers. Unfortunateley i am too lazy to set up test realm client.
-
Нельзя. Функции "купить" и "продать" сокрыты от нашего взора (они в библиотеке protectedMission вроде).
-
Это не позволяет просмотреть костюм который одет на другом персонаже без линка его в чат. А так - да, по ссылке выше отличный аддон аналогов которому нет Позволяет "примерить" визуально любую вещь, будь то костюм, оружие или "Липкая Слизь".
-
Эм... Спросить? Тут все постигается методом проб и ошибок, курением скриптов стародавних да доков имеющихся. У айси спроси - я кажется догадался зачем ей нужен был "Фокус".
-
Yes, you can not use AttachWidget2D on targets that are not tracked by avatar (like quest givers, vendors, party members, spouse). But you may use AttachWidget3D. In your version it still may be possible, this feature was removed in late-2.0.8.* - 2.0.9.0
-
Quote: Даже Ctrl+F на странице? Даже http://www.google.ru + site:ui9.ru ?
-
Я пользуюсь уже год как... Минус - не заливается на сайт. Плюсы - уже озвучены (только сжатие я использую стандартное, на всякий).
-
I don't know what name does your addon have, but if mainForm is called the same as returned by common.GetAddonName() then it should properly hide on alt+z. And 'bout ContextDamageVis unloading, this is the firsttime i've encountered that unloading an addon messes up the other one >_<
-
Just looked @ the addon, it has been modified by icreator. Should work on RU, if wasnt broken by some recent hotfix(which shouldn't happen).
-
Are you sure? Why then? AFAIK nothing else has changed since it was working.
-
Поле над графиком для истории продаж и покупок на разных серверах. Изменения, вроде, сохраняются не в юзер конфигах а в глобале. Узнавать изменения курса за время оффлайна - через систему П2П трансфера. По поводу истории изменений курса - некоторым, вероятно, хочется видеть изменения за неделю, месяц, квартал.
