Jump to content
Alloder.pro  about Allods with love 😱
Search In
  • More options...
Find results that contain...
Find results in...

Servers monitoring and the Addons Editor

We present you two legends. All dreams come true.

Servers monitoring The Addons Editor

Digest April

We talk about what was done and updated in the past month. We help keep abreast of events.

Read more

Game tooltips

Tooltips provide a way for 3rd party fansites and extensions to display detailed information on mouseover.

Read more

[1.1.0.3] Изменения API


Guest wait
 Share

Recommended Posts

Обновлением 1.1.0.3 от 07.04.2010 дополнены старые и добавлены новые "защищенные" категории функций API, не доступных для вызова из пользовательских скриптов, но активно использующихся оригинальными интерфейс-скриптами.

Скрипты использующие какие-либо функции из нижеперечисленных должны быть помечены как "временно не работает".

  • protectedCommon:

    "SetEditLineTexts"

    "IsUserModsEnabled"

    "EnableUserMods"

    "GetUserAddons"

    "EnableUserAddon"

    "OpenUrl"

    "IsGfxApprovedDriver"

    "IsEulaAccepted"

    "ConfirmAcceptEula"

    "GetGameVersion"

    "GetGameBuildInfo"

    "GetStateDebugName"

    "SendEvent"

  • protectedMission:

    "UnitGetAggroList"

    "InteractiveObjectGetPos"

    "ObjectIsLos"

    "SetContextActionToObject"

    "SetContextActionToDevice"

    "SetContextActionToItem"

    "ClearContextActionFromObject"

    "ClearContextActionFromDevice"

    "ClearContextActionFromItem"

    "AvatarHasContextActionSpell"

    "AvatarHasContextActionItemSpell"

    "GetAvatarRemoteConfigSection"

    "SetAvatarRemoteConfigSection"

  • protectedActions:

    "RunSpell"

    "RunTargetSpell"

    "RunAESpell"

    "RunContextAction"

    "RunPointContextAction"

    "InventoryUseItem"

    "InventoryUseItemOnPoint"

    "EquipmentUseItem"

    "EquipmentUseItemOnPoint"

    "CreateMail"

    "TakeLoot"

    "TakeLootMoney"

    "TakeAllLoot"

    "Use"

    "RunUsableDeviceAction"

  • protectedChat:

    "ChatSay"

    "ChatZone"

    "ChatYellZone"

    "ChatParty"

    "ChatChannel"

    "ChatWhisper"

    "RunChatInput"

  • protectedCraft:

    "DoAlchemyReaction"

    "CorrectAlchemyDrum"

    "FinishAlchemyReaction"

    "StartArmorCraftGame"

    "RerollArmorCraft"

    "LockArmorCraftProperty"

    "LockArmorCraftCounter"

    "DisassembleItem"

  • debugMission:

    "ObjectGetSysDebugName"

    "UnitGetDir"

    "UnitGetSize"

    "UnitGetSpeed"

    "UnitGetServerInfo"

    "Log"

    "PerfomanceLog"

    "GetMap"

В mods.txt теперь выводится довольно подробный лог:

Code:
Error: addon DarkDPSMeter:   func: ?, ?, line: -1, defined: C, line: -1,  [C] 

Error: addon DarkDPSMeter:     func: GetSpellInfoNameFromParams, global, line: 18, defined: Lua, line: 11,  [string "Mods/Addons/DarkDPSMeter/Scripts/DarkDPSMet..."] 

Error: addon DarkDPSMeter:       func: GetCombatantDamageData, method, line: 368, defined: Lua, line: 359,  [string "Mods/Addons/DarkDPSMeter/Scripts/DarkDPSMet..."] 

Error: addon DarkDPSMeter:         func: UpdateCombatatnsData, method, line: 413, defined: Lua, line: 410,  [string "Mods/Addons/DarkDPSMeter/Scripts/DarkDPSMet..."] 

Error: addon DarkDPSMeter:           func: UpdateFightsData, method, line: 521, defined: Lua, line: 519,  [string "Mods/Addons/DarkDPSMeter/Scripts/DarkDPSMet..."] 

Error: addon DarkDPSMeter:             func: ?, ?, line: 193, defined: Lua, line: 191,  [string "Mods/Addons/DarkDPSMeter/Scripts/DarkDPSMet..."] 

Error: addon DarkDPSMeter: Attempt to read from undeclared global variable: ID

Link to comment
Share on other sites

Ага, я заглянул в MODS.TXT, и офигел. Выводятся ошибки скриптов! Ну наконец-то!! УРА!!! =))

Правда, сыровато:

Code:
Error: addon Minimap: Game::LuaAvatarGetId: main player not found, details: int __cdecl Game::LuaAvatarGetId(struct lua_State *)

Но это приколы их движка. Во время инициализации, он иногда "не находит" таких вещей, которые ДОЛЖНЫ быть. Во время смены зоны, может не найти названия новой зоны. Во время смены резолюции, может выдать неправильную новую резолюцию. Даже не знаю, как с этим бороться - неужели, ставить в инициализации таймер на 5 секунд, и по его истечении запускать инициализацию.

Link to comment
Share on other sites

Guest KentAVr57

хотелось бы добавить что

АватарЮзИнветори тоже не работает .. ((( .. ее теперь даже нет в офф айпи.

вообще всю прелесть аддонов поубивали.. гады

Link to comment
Share on other sites

А без SendEvent() вообще не представляю, как аддоны будут общаться между собой. Через конфиг-файл? Подарочек, блин.

Быстренько сверил папки из ModsDocs.zip в WinMerge... Перемены только в папке LuaApi:

1.0.07.21 vs 1.1.0:

  • Новых файлов нет.
  • Удалено - 32 файла.
  • НЕ изменились - 982 файла.
  • Изменились - 484 файла.

Такое количество изменённых файлов потому, что из них изъяли перекрёстные ссылки на всякие запрещённые команды вроде RunSpell().

Кроме того, много где поменялись описания функций. Это требует более пристального сравнения.

Убрали такие функции как, например:

common.SendEvent()

group.Chat.....() (все функции чата!)

mission.RunChatInput()

avatar.TakeAllLoot()

avatar.TakeLoot()

avatar.TakeLootMoney()

mailBox.CreateMail()

Link to comment
Share on other sites

у девелоперов свои плюшки есть ;)

developerAddon:

"FinishAddon"

"LoadAddon"

"RunChildGame"

"RunChildGameAbsolute"

"IsChildGame"

"LoadMobList"

"LoadQuestList"

"LoadTactics"

"GetTacticsSize"

"GetParams"

"GetParam"

"LogTest"

"GetName"

Link to comment
Share on other sites

Guest KentAVr57
Quote:
а ChatSay им чем мешал?

теоретически потомучто через чат сай можно было
1.Флудить
2.Запускать команды типа "следовать" и таскать за собой твинка хила или твинка ДД
У меня правда так не получилось сделать т.к. в предыдущем патче они порезали данную команду.. думаю что в этом патче или следующем команду вернут .. а вот использовать ее уже нельзя будет..(
Link to comment
Share on other sites

УРА!!!!! Может, и перезагрузка аддона С РЕСУРСАМИ теперь работает? =)

Ушёл читать API... - Ничего не нашёл. Теперь придётся САМИМ разбираться, что значат эти функции...

А что, если эти функции НЕ для нас, а для игры, чтобы она работала с нашими аддонами?

Мне эти RunChildGame очень смахивают на запуск виртуальных машин, песочниц, для "безопасной" работы аддонов.

В принципе, Addon Developer и Developer Addon - разные вещи. Я тут, в радостной эйфории, не пригляделся. Addon Developer - это мы :), а Developer Addon - это аддоны разработчиков игры, НЕ НАШИ. :)

Так они нам доступны? Значит, мы тоже можем их использовать.

Link to comment
Share on other sites

прямо таки руки чешутся чето с этим сделать(

продолжаем тему..... (типа ЭДИТ ТУТ)

а зачем вообще нужна команда следовать?

а снять точки положения главного игрока (тем более если оно в группе это можно)?

и потом по ним проехатся?

и никакого тупого цепляния за камни и падений с аллодов)

Link to comment
Share on other sites

А без SendEvent() вообще не представляю, как аддоны будут общаться между собой. Через конфиг-файл? Подарочек, блин.

я даже знаю че ее порезали)

я ее какраз приспособил вместо CastSpell ))))

деж они берутся то (

Link to comment
Share on other sites

Тогда понятно.

Но они должны бы нам дать альтернативу, для обмена данными между аддонами. Что-нибудь вроде SendUserEvent(), и чтобы пользовательские сообщения ставились в отдельную очередь, обрабатываемую только аддонами... Удобно и безопасно.

P.S. Прощайте, всплывающие подсказки. Они работали на SendEvent().

Link to comment
Share on other sites

Спасибо, так и сделаю :)

EDIT: Поясню для всех, чтобы было понятно, и чтобы поисковики находили это решение проблемы:

Событие называется EVENT_AVATAR_CREATED

До его наступления, нельзя работать с библиотекой avatar.

Иначе, например, если при инициализации аддона попробовать взять ID аватара - avatar.GetId() - выйдет дурацкая ошибка "main player not found":

Code:
Game::LuaAvatarGetId: main player not found, details: int __cdecl Game::LuaAvatarGetId(struct lua_State *)
Link to comment
Share on other sites

Ну и ладно. Хоть отладку нормальную сделали. Это уже первый шаг :)

Интересно, не выводятся ли ошибки XDB-файлов в MODS.TXT ? Завтра проверю.

Link to comment
Share on other sites

далее тема медленно переползает в лс)

а вообще конечно ниодной команды движения я не нашел, даже после того, как сильно поковырялся в коде

такое впечатление, че луа апи ВООБЩЕ не имеет доступа к движению)

ну а остальные аспекты были изложены в потертой теме)

Link to comment
Share on other sites

я об этом и говорю - двигацца низя со скриптов, вообще нет удобных способов перемещения.

можно только получить состояние - двигаюсь ли я и куда :)

и лс тут не причем :)

Link to comment
Share on other sites

Guest KentAVr57

просто двигаться действительно нельзя.. а вот пися в чат комнду следовать можно было ходить за игроком.. другими словами можно было таскать за собой бота .. умеющего хилить или ДДшить. конечно же бегать по локам нельзя былобы .. а вот подцепив к себе двух ботов ДД и Хила играя танком.. можно было фармить героики ) и весь лут собирать себе.. а также с паломДД и Хилом ботом. лупить красных локбоссов .. при этом не делиться ни с кем лутом)

не мне вам рассказывать что с тем айпи которое нам дали в начале и с тем айпи которое дали вторым.. можно было сделать полноценных ботов.. которые применяли скилы вовремя и по назначению .. едиственный минус они (боты) не умели сами ходить)..

вот данная проблемма и решалась командой следовать и движением по щелчку мышки..

обе эти дырки прикрыли сразуже во втором айпи.

Link to comment
Share on other sites

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

By using our site you agree to the Terms of Use