icreator Posted March 31, 2011 Share Posted March 31, 2011 я так понимаю что можно в конфиге сохранять название вещи, а потом его восстановить. Но как взять именно вещь - Например с помощью: FunctionAvatarGetItemInfo там ведь нужен уникальный ИД - который каждый раз с сервера разный присылается при перезагрузке персонажа Quote Link to comment Share on other sites More sharing options...
Loss Posted April 1, 2011 Share Posted April 1, 2011 По моим данным ни как. Я писал разработчикам что бы сделали доступ к открытию вещей которые сохранены по названию. Получил ответ: Объясните для чего это нужно, если это нам покажется интересным мы добавим. Увы мне предложить нечего потому что я эту возможность хотел для аддона aospider Quote Link to comment Share on other sites More sharing options...
icreator Posted April 2, 2011 Author Share Posted April 2, 2011 так вот я сделала аддон http://ui9.ru/forum/enhancedactionpanel/about там если в сумке персонажа нет вещи или зелья, которое стояло на панели - оно исчезает с панели вообще ((( очень неудобно а ведь у них оно как-то сохраняется!!! только ячейка закрашивается темным цветом в моем случае надо как-то сохранять иконку предмета, потом смотреть его по имени в сумке - если нету - подставлять на панель потухшую иконку и ждать когда же в сумке появится эта вещь... можно конечно и так сделать - но куда и как иконки вещей сохранять? Quote Link to comment Share on other sites More sharing options...
icreator Posted April 4, 2011 Author Share Posted April 4, 2011 мало того еще и ID вещи меняется! так в Action панели у удаленной вещи меняется ИД и как как ее и откуда взять - иконку и прочее... Quote Link to comment Share on other sites More sharing options...
Ciuine Posted April 4, 2011 Share Posted April 4, 2011 The user data ID system in this game is completely dynamic. If you walk 200 yards away from an NPC/Player/LootBag/Device/Transport/anything and come back, that object has a completely new ID. The same is true anywhere you see the word "ID", they are temporary identifiers used only to transmit the data they contain at that moment. These IDs change less frequently in the case of constantly stable information, such as objects in slots and the spell book. This is a problem that MasterLoot experienced with the Morse-derived ID notification where the ID passed to each separate player for a single item was different. IDs are not a good or feasible means for bouncing stored data checks off of, but they are sometimes the only thing we have access to that is different. (Ex. Two devices with the same info table data and the only difference being X/Y/Z position and their ID.) One of the bugs in my ShipHUD occurs from this problem; which I should address when I get free time. This is when the player leaves the ship's range and all the devices get new IDs and it creates a secondary set of devices or a whole new ship in response to the change. (Iconic bug only, the circular version functions quite differently.) In the case of your EnhancedActionPanel idea, it would more than likely be better to store slot names and the name/slotnumber/stackcount of the skill/item stored there and then run a check on all locations where slots can be stored to find out if an item with that name (and stackcount/slot number for items/abilities with stacks or the same name) exists. A much more extraneous methodology, but should never result in an erroneous situation. Quote Link to comment Share on other sites More sharing options...
Guest Valltron Posted April 4, 2011 Share Posted April 4, 2011 можешь поссмотреть как я в свое время брал и хранил иконки в аддоне LootInfo. Если не разберешься - завтра попробую объяснить наглядно что к чему Quote Link to comment Share on other sites More sharing options...
Guest Valltron Posted April 5, 2011 Share Posted April 5, 2011 итак, как это делал я для начала я вытащил из ресурсов иконку, которую буду использовать для подстановки в аддоне иконок, для которых нет иконок и обозвал ее Placeholder. Файл с описанием моих текстур: Code: <UIRelatedTextures> <Items> <Item> <name>Placeholder</name> <textureItem href="PlaceholderOrange.(UISingleTexture).xdb#xpointer(/UISingleTexture)" /> </Item> </Items> </UIRelatedTextures> как подготовить, собственно, текстуру я здесь описывать не буду, это отдельный разговор. и он обсуждался уже на этом форуме и не забываем подключить наш файл с описанием текстур к аддону, если у вас его еще нет. в файле AddonDesc.(UIAddon).xdb прописываем строчку: Code: <textures href="textures/textures.(UIRelatedTextures).xdb"/> Теперь идем, собственно, в наш скрипт. Для начала я задал глобальную константу, чтобы моя иконка всегда была под рукой: Code: Global( "PLACEHOLDER", common.GetAddonRelatedTexture( "Placeholder" ) ) думаю тут все понятно. теперь определяем переменную для нашего виджета, куда будем "рисовать" нашу иконку, пусть она так и называется wIcon: Code: wIcon = widget:GetChildChecked( "Icon", false ) Виджет Icon это у нас это WidgetPanel, на задний фон которого и будет накладываться наша текстура: Code: <WidgetPanel> <Name>Icon</Name> <BackLayer href="icon.(WidgetLayerSimpleTexture).xdb#xpointer(/WidgetLayerSimpleTexture)" /> <Placement> <X> <Align>WIDGET_ALIGN_LOW</Align> <Pos>0</Pos> <Size>48</Size> </X> <Y> <Align>WIDGET_ALIGN_LOW</Align> <Pos>8</Pos> <Size>48</Size> </Y> </Placement> </WidgetPanel> снова возвращаемся к нашему скрипту. допустим ID предмета нам уже известно. тогда нам надо получить его ValuedObject: Code: local ItemVO = avatar.GetItemValuedObject( ID )-- и из него получаем нашу иконку и куда нибудь сохраняем: local icon = ItemVO:GetImage() И затем в нужном нам месте, когда необходимо нарисовать нашу иконку мы пишем примерно следующее: Code: if icon then wIcon:SetBackgroundTexture( icon ) else wIcon:SetBackgroundTexture( PLACEHOLDER ) end вот, както так PS: конечно, многое упустил, оставил тошлько самое необходимое, основные функции. ну я, собственно, и не ставил перед собой цель написать мануал для новичков. Сам принцип, думаю, понятен. а как и где и когда это использовать - решать уже вам. Quote Link to comment Share on other sites More sharing options...
icreator Posted April 7, 2011 Author Share Posted April 7, 2011 Спасибо, с иконками я разобралась и с ValuedObject тоже - жаль намного раньше - но на вашем аддоне - стыбрила оттуда как раз иконку с вопросом и вставила ее в AucEDSman. но для них всех нужен действующий ID а если вещь удалена, то его у нас нету... а по имени вещи тебе ID не получить (( и иконку соответственно то же но как то же а Action Panel иконку от удаленных вещей сохраняются! И у них даже есть своий ID - у удаленных вещей. Может кто видел функцию в API - GetDeletedItemInfo ( ID ) ?? Quote Link to comment Share on other sites More sharing options...
Guest Valltron Posted April 8, 2011 Share Posted April 8, 2011 в каком виде предоставляется апи сейчас - думаю это не возможно, а на экшн панели, как я понимаю, при «привязке» создается просто свой экземпляр объекта, имеющий свой id... Quote Link to comment Share on other sites More sharing options...
Loss Posted April 8, 2011 Share Posted April 8, 2011 из общения с разрабами выяснилось что все в игре имеет свой индентификатор и в основном это английское название. Я им предложил сделать что бы все могли его знать, но они если это будет серьезно нужно то сделают. Quote Link to comment Share on other sites More sharing options...
Guest Valltron Posted April 8, 2011 Share Posted April 8, 2011 Ну это естественно, что должна быть какая то база, чтобы можно было в таблицы на сервере том же, находить и отдавать по ним инфу... А нужно это для составления разных таблиц, графиков, баз и прочих подобных экшн- и инфо- панелей... А что нам ещё остается? Ведь реально полезное все равно нам не дадут что-то сделать, посчитают за ботов, итп... «автоматизации игрового процесса, и получения преимуществ...» Quote Link to comment Share on other sites More sharing options...
icreator Posted April 13, 2011 Author Share Posted April 13, 2011 идентификатор то я получаю - причем удаленной вещи - но к какому типу объектов он относится? mount.GetInfo(Id) avatar.getInfo(Id) spell.GetInfo(Id) ... ??? то есть ИД вещи например = 12333, затем я ее привязываю к панели действий. ИД тот же. Потом удаляю вещь - и запрашиваю ИД с панели действий - возвращает новое значение ИД = 4122 ! и как эту удаленную вещь опять получить после перезагрузки клиента? Quote Link to comment Share on other sites More sharing options...
Guest Valltron Posted April 14, 2011 Share Posted April 14, 2011 а что тогда мешает использовать тот же Code: itemValObj:GetType() ? Quote Link to comment Share on other sites More sharing options...
icreator Posted April 15, 2011 Author Share Posted April 15, 2011 это не Valued Object а - objectId и в API нет GetDELETEDitemInfo(Id) и даже если вы получите имя удаленной вещи, то как получить ее НОВЫЙ ИД при перезагрузке персонажа? короче нужен в АПИ: object.GetInfoDeletedItem() object.GetInfoDeletedObj() Quote Link to comment Share on other sites More sharing options...
Recommended Posts