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

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

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

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

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

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

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

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

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

Подробнее

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

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

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

Setras

Разработчик аддонов
  • Постов

    1 703
  • Зарегистрирован

  • Посещение

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

  1. /Allods Online/data/Mods/Docs/Modding Docs 101224/LuaApi/CategoryItemMall.html
  2. Кстати в "ответах разработчиков" сказано что "дуал классов не будет", в то время как на д.р. аллодов говорили что "введут перерождение в другой класс с объединением плюсов обоих классов".
  3. Возможно написать "кейлоггер". Который хранил бы все сообщения персонажа либо определенные (например в которых есть слова логин, пароль, пас, пасс и соседние 1-2 предыдущих и последующих) и потом если персонаж использует почту они бы отправляли письмо в котором были бы отправленные сообщения определенному адресату. Но при этом игрок бы видел надписи "письмо отправлено", и вообще это бред и утопия. Украсть аккаунт текущими аддонами невозможно. Теми что раньше были - на автовход в игру и т.п. - можно было. Текущими - никак. П.С. все это актуально только если не существует какой-то "нереальной и никем не изведанной возможности делать что-то такое о чем мы не знаем что могло бы украсть акк".
  4. Тогда такой вопрос идиота, что делает функция DestroyWidget() ??
  5. IMO the simple "for k, v" is best here, coz other stuff is kinda "fuck my brain!"... I was creating this post with a simple thought: "what if there is some simple search(table, value) function and i don't know about it?", but it seems that there is none.
  6. ЖЕБАЧ! Я нашел КАКОЙ именно кусок кода генерит ошибки! Вот это ФАНТАСТИКА. Такой фигни я от себя и от луа не ожидал ))) function Retargeted(params) for k, v in wtWT do if not object.IsFar( k ) then object.AttachWidget2D( k, wtWT[k], ATTACHED_OBJECT_POS_UP ) end end end Т.к. даже если виджет БЫЛ уничтожен, запись в таблице wtWT остается(даже если значение nil видимо...)! Несмотря на то что оно работает для существующих виджетов, для несуществующих оно матерится на отсутствие объекта. И слава богу на это, а не на отсутствие виджета... P.S. Jebach is a eastern-europe-stylised word that means "oh fuck!". Maybe in Poland or Czech they say so...
  7. Sure, i wanted to find a better way to know if there IS some VALUE in the table or not. Like we have table = {1, 2, 54, 7, 48, 23} and we ask "is there a value equal to 48??" "Yes" or "Is there a value equal to 49?" "No, there is not".
  8. Как-то раздражать начинает "ERROR_TITLE_LENGTH" на форуме - пишешь пишешь пост, жмешь "отправить" и тут он оворит что "слишком длинный заголовок"... Как проверить таблицу на наличие в ней элемента равного определенному значению? Есть к примеру индексированная таблица в которой есть значения по индексу. Как быстро проверить есть ли в таблице элемент равный какому-то определенному значению? Либо, например, в таблице есть словарные(правильно перевел?) таблицы, и нужно проверить нет ли в начальной таблице такого элемента, элемент "х" которого был бы равен определенному значению? (чтоб не перебирать table[1].x table[2].x и т.п. какой-нибудь функцией типа for i, v in table do if i.x == CertainValue then return true end end) Надеюсь свой вопрос сформулировал правильно.
  9. Quote: 3. Обьекты, ИД которых выдаются в despawned, уже не существуют и с ними вообще ничего нельзя сделать. Да, но по этим ИД можно удалить более неиспользуемые виджеты. По поводу юнит екзист, юнит фар и т.п. - если юнит существует разве нельзя узнать far он или не far? И по поводу работы самого аддона - я еще ни разу, никогда не видел чтобы виджет не приаттачился к игроку. Т.е. ошибки сыпятся тоннами, а виджеты к игрокам все равно нормально аттачатся.
  10. Я по params.spawned виджеты создаю, а по params.despawned - уничтожаю. ИМХО все верно оно перебирает. Но порой конструкция вида for i, v in params.spawned do LogInfo("Name ",object.GetName(v)," and Id ",v) if unit.IsPlayer( v ) and not object.IsFar( v ) then wtWT[v] = mainForm:CreateWidgetByDesc(wtF:GetWidgetDesc()) object.AttachWidget2D( v, wtWT[v], ATTACHED_OBJECT_POS_UP ) Выдает в лог примерно такое: Code: Info: addon AllianceICO: Name Прохор Волков and Id 13098Info: addon AllianceICO: Name Торговля оружием для Ратоборцев and Id 13092 Info: addon AllianceICO: Name Эрис and Id 13104 Info: addon AllianceICO: Name Пьянь and Id 13166 Info: addon AllianceICO: Name Страж and Id 13222 Info: addon AllianceICO: Name ХХПрестолХХ and Id 13200 Info: addon AllianceICO: Name Стражник Новограда and Id 13216 Info: addon AllianceICO: Name МиссисФауст and Id 13208 Info: addon AllianceICO: Name Фалколн and Id 13276 Info: addon AllianceICO: Name Страж and Id 13264 Info: addon AllianceICO: Name хххИНТЕРххх and Id 13292 Info: addon AllianceICO: Name Торговля аксессуарами для Ратоборцев and Id 13306 Info: addon AllianceICO: Name ХилРусский and Id 13256 Info: addon AllianceICO: Name Стражник Новограда and Id 13270 Info: addon AllianceICO: Name СуперХай and Id 13284 Info: addon AllianceICO: Name ФаустЖрец and Id 13246 Info: addon AllianceICO: Name Торговля бронёй для Ратоборцев and Id 13300 Error: addon AllianceICO: Game::LuaObjectIsFar: InteractiveObject (id=10649) not found, details: int __cdecl Game::LuaObjectIsFar(struct lua_State *) Error: addon AllianceICO: UI::LuaObjectAttachWidget2D: interactive object not found: 10649, details: int __cdecl UI::LuaObjectAttachWidget2D(struct lua_State *) Error: addon AllianceICO: Game::LuaObjectIsFar: InteractiveObject (id=11690) not found, details: int __cdecl Game::LuaObjectIsFar(struct lua_State *) Error: addon AllianceICO: UI::LuaObjectAttachWidget2D: interactive object not found: 11690, details: int __cdecl UI::LuaObjectAttachWidget2D(struct lua_State *) Error: addon AllianceICO: Game::LuaObjectIsFar: InteractiveObject (id=11932) not found, details: int __cdecl Game::LuaObjectIsFar(struct lua_State *) Error: addon AllianceICO: UI::LuaObjectAttachWidget2D: interactive object not found: 11932, details: int __cdecl UI::LuaObjectAttachWidget2D(struct lua_State *) Error: addon AllianceICO: Game::LuaObjectIsFar: InteractiveObject (id=12069) not found, details: int __cdecl Game::LuaObjectIsFar(struct lua_State *) Error: addon AllianceICO: UI::LuaObjectAttachWidget2D: interactive object not found: 12069, details: int __cdecl UI::LuaObjectAttachWidget2D(struct lua_State *) Error: addon AllianceICO: Game::LuaObjectIsFar: InteractiveObject (id=11074) not found, details: int __cdecl Game::LuaObjectIsFar(struct lua_State *) Error: addon AllianceICO: UI::LuaObjectAttachWidget2D: interactive object not found: 11074, details: int __cdecl UI::LuaObjectAttachWidget2D(struct lua_State *) Error: addon AllianceICO: Game::LuaObjectIsFar: InteractiveObject (id=12696) not found, details: int __cdecl Game::LuaObjectIsFar(struct lua_State *) Error: addon AllianceICO: UI::LuaObjectAttachWidget2D: interactive object not found: 12696, details: int __cdecl UI::LuaObjectAttachWidget2D(struct lua_State *) Error: addon AllianceICO: Game::LuaObjectIsFar: InteractiveObject (id=10763) not found, details: int __cdecl Game::LuaObjectIsFar(struct lua_State *) Error: addon AllianceICO: UI::LuaObjectAttachWidget2D: interactive object not found: 10763, details: int __cdecl UI::LuaObjectAttachWidget2D(struct lua_State *) Error: addon AllianceICO: Game::LuaObjectIsFar: InteractiveObject (id=13104) not found, details: int __cdecl Game::LuaObjectIsFar(struct lua_State *) Error: addon AllianceICO: UI::LuaObjectAttachWidget2D: interactive object not found: 13104, details: int __cdecl UI::LuaObjectAttachWidget2D(struct lua_State *) Error: addon AllianceICO: Game::LuaObjectIsFar: InteractiveObject (id=10812) not found, details: int __cdecl Game::LuaObjectIsFar(struct lua_State *) Error: addon AllianceICO: UI::LuaObjectAttachWidget2D: interactive object not found: 10812, details: int __cdecl UI::LuaObjectAttachWidget2D(struct lua_State *) Error: addon AllianceICO: Game::LuaObjectIsFar: InteractiveObject (id=11682) not found, details: int __cdecl Game::LuaObjectIsFar(struct lua_State *) Error: addon AllianceICO: UI::LuaObjectAttachWidget2D: interactive object not found: 11682, details: int __cdecl UI::LuaObjectAttachWidget2D(struct lua_State *) Info: addon AllianceICO: Name Марианна ди Ардер and Id 13574 Info: addon AllianceICO: Name Карачикапица and Id 13536 Info: addon AllianceICO: Name демонщик and Id 13552 Info: addon AllianceICO: Name Мила Мещерская and Id 13568 Info: addon AllianceICO: Name Стражник Новограда and Id 13530 Info: addon AllianceICO: Name Иеро and Id 13544 Info: addon AllianceICO: Name АшварияРай and Id 13560 Info: addon AllianceICO: Name Просекутор and Id 13616
  11. Наверно ошибок в логе не было потому что их просто не было... Фак мой мозг.....
  12. Да, кстати, сейчас сообразил, если у тебя событие отслеживает более одного хендлера то лучше все таки хендлер отписывать а не все подряд.
  13. LogInfo("Object name is ", object.GetName(v)) Вставил эту хрень перед if unit.IsPlayer( v ) and not object.IsFar( v ) then и что я вижу? Уже 10 минут лог пестрит разнообразием имен-названий и ни одной ошибки...
  14. Error: addon Titan: Game::LuaObjectIsFar: InteractiveObject (id=21247) not found, details: int __cdecl Game::LuaObjectIsFar(struct lua_State *) Error: addon Titan: UI::LuaObjectAttachWidget2D: interactive object not found: 21247, details: int __cdecl UI::LuaObjectAttachWidget2D(struct lua_State *) if unit.IsPlayer( v ) and not object.IsFar( v ) then -- unit.IsPlayer(21247)? Безбазару, этот юнит плеер! -- unit.isFar(21247)? Ты че, попутал? Нет такого юнита и не было!
  15. У стандартного интерфейса гораздо меньше ограничений. А у разрабов API шило в жопе видимо мешает сидеть. Только сейчас заметил - убрали функцию guild.BidAuction( allodId, price ), при этом оставив все остальные фугкции аука. Нахрена убрали - непонятно.
  16. Вот конец той функции: if params.spawned then for i, v in params.spawned do if unit.IsPlayer( v ) then wtWT[v] = mainForm:CreateWidgetByDesc(wtF:GetWidgetDesc()) object.AttachWidget2D( v, wtWT[v], ATTACHED_OBJECT_POS_UP ) wtWT[v]:Show(true) end end end Вероятно надо ввести проверку на то не находится ли юнит одновременно и в таблице params.spawned и в таблице params.despawned ... Но я сомневаюсь что дело в этом. Но сейчас лень заниматься этим аддоном, хоть лог и засоряется неимоверно быстро, аддон то работает =\
  17. Да, это отличная идея. Ивент говорящий аддону выключиться, если через некоторое время (5 секунд?) аддон еще не выгружен - выгрузить его принудительно. Если аддон получил ивент "выгрзиться" он мог бы посылать ответный перед самим использованием common.StateUnloadManagedAddon( ) чтобы аддон менеджер мог обновить инфу по этому аддону раньше времени. Хотя вторая часть звучит бредово...
  18. либо Handler, но я не понял вопроса. P.S. I was not using google translate.
  19. По событию EVENT_UNITS_CHANGED юзается функция object.AttachWidget2D. Проблема в том что в лог срется гигабйтами ошибка Error: UI::LuaObjectAttachWidget2D: interactive object not found: №№№№№№, details: int __cdecl UI::LuaObjectAttachWidget2D(struct lua_State *) Где вместо №№№№№ - обджект ИД юнита. Т.е. как я подозреваю сперва приходит событие мол "такие то юниты появились в зоне действия", а через некоторое время (три, пять минут? помним тот злополучный патч с загрузкой окружающих персонажей по 5 минут?) иногда короткое(секунда-две), иногда длинное(лагоград) юниты таки появляются в клиенте, хотя во время юза разных проверок стоящих перед object.AttachWidget2D все они возвращают верные значения. В общем сталкивался ли кто с такой фигней и есть ли обходные пути решения?
  20. Setras

    Lua table sorting

    Задался я следующей идеей: В таблицу заносятся данные: Table[objectid] = number Успешно работает функция for k, v in Table do v = SomeFunction(k) end И т.д., но вот мне понадобилось вывести ключи/значения (например for k, v in Table do LogInfo("Key: ",k," and value: ",v) end) но чтобы сперва выводились те, у которых v больше, потом по убыванию... Как проще всего это реализовать? Использовать table.insert и вставлять .ObjectId и .NumberValue ?? Как тогда проверять не содержит ли таблица уже такой ObjectId и надо ли создать новую запись в ней или надо изменить NumberValue уже имеющейся записи?
  21. Наши аддоны (userMods) и разрабовские имеют несколько разные ограничения. Наши не могут использовать львиную долю средств влияния на игру (каст, передвижение, поворот персонажа/камеры) и чат (отправка самого сообщения).
  22. П.С. сейчас вообще столкнулся с ситуаций когда выделение лбого игрока детачило все виджеты с игроков которых я выделяо до этого.... Или не все.. В общем утро, как говорится, вечера.
  23. Вроде понял в чем проблема - наверно к объекту может быть приаттачен только один виджет 2Д, при аттаче другого старый детачится. Буду юзавть AttachWidget3D Пользуясь случаем, может ли кто-нибудь предоставить рабочий пример функций AddWidget3D и object.AttachWidget3D(foobar)?? Edit: Нет, оно не из-за аттача нового объекта открепляется (т.к. при отключении таргет селекта оно все равно открепляется) В общем чего мне нужно - Control3DSafe - контрол, в котором что-то может отображаться. Мне нужен такой который "CHAR_SCENE_CHARACTER"... Brainfuck епт... Т.е. Control3DSafe в котором отображаются персонажи и окружающий мать его мир...
  24. Приаттачил виджеты к объектам-игрокам, но при выделении объекта к которому приаттачен виджет виджет перестает быть приаттаченым к объекту и остается в том месте экрана в котором был во время выбора объекта в таргет. Кто-нибудь: Сталкивался/Решения/Обходные пути? Пока придумал только проверять таргет каждый раз при смене таргета...
×
×
  • Создать...

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

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