Тактики
Прохождения локаций
Мониторинг серверов и редактор аддонов
Представляем вам две легенды. То, о чем можно было только мечтать, стало реальностью.
Подсказки из игры на вашем сайте
Теперь вы можете отображать сведения о внутриигровых элементах простым наведением курсора мыши.
-
Постов
1 703 -
Зарегистрирован
-
Посещение
Тип контента
Загрузки
Форумы
Статьи и объявления
Гардероб
Маунты
Сообщения Allods Team
Трекер ошибок
Магазин
Галерея
Весь контент Setras
-
/Allods Online/data/Mods/Docs/Modding Docs 101224/LuaApi/CategoryItemMall.html
-
Кстати в "ответах разработчиков" сказано что "дуал классов не будет", в то время как на д.р. аллодов говорили что "введут перерождение в другой класс с объединением плюсов обоих классов".
-
Возможно написать "кейлоггер". Который хранил бы все сообщения персонажа либо определенные (например в которых есть слова логин, пароль, пас, пасс и соседние 1-2 предыдущих и последующих) и потом если персонаж использует почту они бы отправляли письмо в котором были бы отправленные сообщения определенному адресату. Но при этом игрок бы видел надписи "письмо отправлено", и вообще это бред и утопия. Украсть аккаунт текущими аддонами невозможно. Теми что раньше были - на автовход в игру и т.п. - можно было. Текущими - никак. П.С. все это актуально только если не существует какой-то "нереальной и никем не изведанной возможности делать что-то такое о чем мы не знаем что могло бы украсть акк".
-
Тогда такой вопрос идиота, что делает функция DestroyWidget() ??
-
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.
-
ЖЕБАЧ! Я нашел КАКОЙ именно кусок кода генерит ошибки! Вот это ФАНТАСТИКА. Такой фигни я от себя и от луа не ожидал ))) 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...
-
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".
-
Как-то раздражать начинает "ERROR_TITLE_LENGTH" на форуме - пишешь пишешь пост, жмешь "отправить" и тут он оворит что "слишком длинный заголовок"... Как проверить таблицу на наличие в ней элемента равного определенному значению? Есть к примеру индексированная таблица в которой есть значения по индексу. Как быстро проверить есть ли в таблице элемент равный какому-то определенному значению? Либо, например, в таблице есть словарные(правильно перевел?) таблицы, и нужно проверить нет ли в начальной таблице такого элемента, элемент "х" которого был бы равен определенному значению? (чтоб не перебирать table[1].x table[2].x и т.п. какой-нибудь функцией типа for i, v in table do if i.x == CertainValue then return true end end) Надеюсь свой вопрос сформулировал правильно.
-
Quote: 3. Обьекты, ИД которых выдаются в despawned, уже не существуют и с ними вообще ничего нельзя сделать. Да, но по этим ИД можно удалить более неиспользуемые виджеты. По поводу юнит екзист, юнит фар и т.п. - если юнит существует разве нельзя узнать far он или не far? И по поводу работы самого аддона - я еще ни разу, никогда не видел чтобы виджет не приаттачился к игроку. Т.е. ошибки сыпятся тоннами, а виджеты к игрокам все равно нормально аттачатся.
-
Я по 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
-
Наверно ошибок в логе не было потому что их просто не было... Фак мой мозг.....
-
Да, кстати, сейчас сообразил, если у тебя событие отслеживает более одного хендлера то лучше все таки хендлер отписывать а не все подряд.
-
LogInfo("Object name is ", object.GetName(v)) Вставил эту хрень перед if unit.IsPlayer( v ) and not object.IsFar( v ) then и что я вижу? Уже 10 минут лог пестрит разнообразием имен-названий и ни одной ошибки...
-
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)? Ты че, попутал? Нет такого юнита и не было!
-
У стандартного интерфейса гораздо меньше ограничений. А у разрабов API шило в жопе видимо мешает сидеть. Только сейчас заметил - убрали функцию guild.BidAuction( allodId, price ), при этом оставив все остальные фугкции аука. Нахрена убрали - непонятно.
-
Вот конец той функции: 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 ... Но я сомневаюсь что дело в этом. Но сейчас лень заниматься этим аддоном, хоть лог и засоряется неимоверно быстро, аддон то работает =\
-
Да, это отличная идея. Ивент говорящий аддону выключиться, если через некоторое время (5 секунд?) аддон еще не выгружен - выгрузить его принудительно. Если аддон получил ивент "выгрзиться" он мог бы посылать ответный перед самим использованием common.StateUnloadManagedAddon( ) чтобы аддон менеджер мог обновить инфу по этому аддону раньше времени. Хотя вторая часть звучит бредово...
-
либо Handler, но я не понял вопроса. P.S. I was not using google translate.
-
По событию EVENT_UNITS_CHANGED юзается функция object.AttachWidget2D. Проблема в том что в лог срется гигабйтами ошибка Error: UI::LuaObjectAttachWidget2D: interactive object not found: №№№№№№, details: int __cdecl UI::LuaObjectAttachWidget2D(struct lua_State *) Где вместо №№№№№ - обджект ИД юнита. Т.е. как я подозреваю сперва приходит событие мол "такие то юниты появились в зоне действия", а через некоторое время (три, пять минут? помним тот злополучный патч с загрузкой окружающих персонажей по 5 минут?) иногда короткое(секунда-две), иногда длинное(лагоград) юниты таки появляются в клиенте, хотя во время юза разных проверок стоящих перед object.AttachWidget2D все они возвращают верные значения. В общем сталкивался ли кто с такой фигней и есть ли обходные пути решения?
-
Задался я следующей идеей: В таблицу заносятся данные: 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 уже имеющейся записи?
-
Наши аддоны (userMods) и разрабовские имеют несколько разные ограничения. Наши не могут использовать львиную долю средств влияния на игру (каст, передвижение, поворот персонажа/камеры) и чат (отправка самого сообщения).
-
П.С. сейчас вообще столкнулся с ситуаций когда выделение лбого игрока детачило все виджеты с игроков которых я выделяо до этого.... Или не все.. В общем утро, как говорится, вечера.
-
Вроде понял в чем проблема - наверно к объекту может быть приаттачен только один виджет 2Д, при аттаче другого старый детачится. Буду юзавть AttachWidget3D Пользуясь случаем, может ли кто-нибудь предоставить рабочий пример функций AddWidget3D и object.AttachWidget3D(foobar)?? Edit: Нет, оно не из-за аттача нового объекта открепляется (т.к. при отключении таргет селекта оно все равно открепляется) В общем чего мне нужно - Control3DSafe - контрол, в котором что-то может отображаться. Мне нужен такой который "CHAR_SCENE_CHARACTER"... Brainfuck епт... Т.е. Control3DSafe в котором отображаются персонажи и окружающий мать его мир...
-
Приаттачил виджеты к объектам-игрокам, но при выделении объекта к которому приаттачен виджет виджет перестает быть приаттаченым к объекту и остается в том месте экрана в котором был во время выбора объекта в таргет. Кто-нибудь: Сталкивался/Решения/Обходные пути? Пока придумал только проверять таргет каждый раз при смене таргета...