смысл в том, что при одевании любой шмотки, срабатывает реморфер. т.е. проще сначала задать ему что он должен показывать, а затем "одевать", что в свою очередь вызовет срабатывание реморфера и замену модели причем именно в момент одевания вещи. т.е. я хочу сказать, что тебе не надо 20 макросов, просто в имеющиеся, надо добавить по строчке перед сменой итемов, строки с указаниями реморферу и все. дальше он сам все сделает.
15 июн 2011, 10:42
Отрицание
[1.8]
0
[4.1.0 Guide] Надоел старый вид расы? Вам суда!
Да, это решает проблему с двойным кликом, круто. Еще придумать-бы как сделать это все в одном макросе, а-то если просто свапать вепоны - это можно одним макросом и одним биндом, а если свапать вепоны и модельки, то 2 макроса и 2 бинда.
15 июн 2011, 13:08
vxsw
0
Re: [4.1.0 Guide] Надоел старый вид расы? Вам суда!
напиши макрос которым переключаешь одной кнопкой. просто я в макросах не силен и у меня в голове крутится только один относительно сложный вариант х) проще и потнятней будет, если довесить пару строк в твой макрос.
з.ы. вообще у меня странное ощущения, что я что-то недопонимаю... или ты хочешь сказать, что макрос
Этот макрос работает так: если у тебя одета двуручка - при нажатии на него одевает щит. Если одет щит то при нажатии на него одевает двуруч.
Я нашел команды через /script позволяющие одевать любую шмотку в определенный слот или-же одевать заранее сохраненный набор экипировки, а так-же получать true-false (1-0) значения о том, одета та или иная шмотка, или тип шмоток, или набор экипировки для дальнейшего использования в качестве условия для выполнения чего-либо в скрипте. Теперь надо подумать как это синтаксически правильно написать, где там какие запятые-скобочки ставить, и еще всякие if-then-else-end что-бы в одной строчке написать команду на свап вепонов одной кнопкой плюс реморф.
Команды на прямую работу с вещами:
Item Functions Edit
Item Functions Edit These functions are those which operate on item links or item information directly. See also Container/Bag Functions and Inventory Functions. EquipItemByName(itemId or "itemName" or "itemLink"[, slot]) - Equips an item, optionally into a specified slot. GetAuctionItemLink("type", index) - Returns an itemLink for the specified auction item. GetContainerItemLink(bagID, slot) - Returns the itemLink of the item located in bag#, slot#. GetItemCooldown(itemID) - Returns startTime, duration, enable. GetItemCount(itemId or "itemName" or "itemLink"[, includeBank][, includeCharges]) - Returns number of such items in inventory[, or charges instead if it has charges] GetItemFamily(itemId or "itemName" or "itemLink") - Returns the bag type that an item can go into, or for bags the type of items that it can contain. (New in Patch 2.4) GetItemIcon(itemId or "itemString" or "itemName" or "itemLink") - Returns the icon for the item. Works for any valid item even if it's not in the cache. (New in Patch 2.4) GetItemInfo(itemId or "itemString" or "itemName" or "itemLink") - Returns information about an item. GetItemQualityColor(quality) - Returns the RGB color codes for a quality. GetItemSpell(item) - Returns name, rank. GetItemStats(itemLink, statTable) - Returns a table of stats for an item. GetMerchantItemLink(index) - Returns an itemLink for the given purchasable item GetQuestItemLink("type", index) - Returns an itemLink for a quest reward item. GetQuestLogItemLink("type", index) - Returns an itemLink for a quest reward item. GetTradePlayerItemLink(id) - Returns an itemLink for the given item in your side of the trade window (if open) GetTradeSkillItemLink(index) - Returns the itemLink for a trade skill item. GetTradeSkillReagentItemLink(index, reagentId) - Returns the itemLink for one of the reagents needed to craft the given item GetTradeTargetItemLink(id) - Returns an itemLink for the given item in the other player's side of the trade window (if open) IsUsableItem(item) - Returns usable, noMana. IsConsumableItem(item) - IsCurrentItem(item) - IsEquippedItem(item) - IsEquippableItem(itemId or "itemName" or "itemLink") - Returns 1 or nil. IsEquippedItemType("type") - Where "type" is any valid inventory type, item class, or item subclass. IsItemInRange("itemName" or "itemLink", "unit") - Nil for invalid target, 0 for out of range, 1 for in range. ItemHasRange(item) - OffhandHasWeapon() - Determine if your offhand carries a weapon. SplitContainerItem(bagID,slot,amount) - Picks up part of a stack. UI SetItemRef(link, text, button) - Handles item link tooltips in chat.
Команды работы с наборами экипировки:
Equipment management
Equipment management was added to the UI in Patch 3.1.2. GetNumEquipmentSets() - Returns the number of saved equipment sets. GetEquipmentSetInfo(index) - Returns information about an equipment set. GetEquipmentSetInfoByName("name") - Returns information about an equipment set. GetEquipmentSetItemIDs("name"[, returnTable]) - Populates and returns a table with the item IDs. GetEquipmentSetLocations("name"[, returnTable]) - Populates and returns a table with the item locations. EquipmentManager_UnpackLocation(location) - Unpacks a location integer to determine the actual inventory location. PickupEquipmentSet(index) - Places an equipment set on the cursor. PickupEquipmentSetByName("name") - Places an equipment set on the cursor. EquipmentSetContainsLockedItems("name") - Checks if some of the items in the set are currently locked (pending client/server interaction). UseEquipmentSet("name") - Equips an equipment set. EquipmentManagerIgnoreSlotForSave(slot) - flags the slot to be ignored when saving an equipment set. EquipmentManagerUnignoreSlotForSave(slot) - removes the ignore flag from a slot when saving an equipment set. EquipmentManagerClearIgnoredSlotsForSave() - removes the ignore flag from all slots when saving an equipment set. SaveEquipmentSet("name", iconIndex) - Saves the currently equipped items in a set. RenameEquipmentSet("oldName", "newName") - Renames an equipment set. DeleteEquipmentSet("name") - Forgets an equipment set. UI GetEquipmentSetIconInfo(index) - Returns information about available icons.
Ссылка на вов API откуда взяты эти команды:
И вот примеры некоторых скриптов, просто посмотреть синтаксис команд
Скрипт бывший полезным в вотлк, когда нужно было менять одни виды эмблем за рейды на другие, он делал много действий сразу:
/script local function buy (n,q) for i=1,30 do if n==GetMerchantItemInfo(i) then BuyMerchantItem(i,q) end end end buy ("Эмблема завоевания",1) buy ("Эмблема доблести",1) buy ("Эмблема героизма",1);
Вот еще - скрипт продает все вещи определенного цвета. Макрос очень удобен просто подходите к торговцу и запускаете макрос, и он продает все вещи указанного цвета. После продажи предмета макрос выводит в чат имена проданных вещей. Серые вещи:
/script for bag = 0,4,1 do for slot = 1, GetContainerNumSlots(bag), 1 do local name = GetContainerItemLink(bag,slot); if name and string.find(name,"ff9d9d9d") then DEFAULT_CHAT_FRAME:AddMessage("- Продано "..name); UseContainerItem(bag,slot) end; end;end
И этот-же мой пост, который я редактировал 10 раз, может если сейчас что-то не понятно, в прошлой редакции более подробно расписано вроде.
Этот макрос работает так: если у тебя одета двуручка - при нажатии на него одевает щит. Если одет щит то при нажатии на него одевает двуруч.
Есть такая команда:
Код:
/script UseEquipmentSet("Имя")
Где "Имя" - это название любого ранее сохраненного набора экипировки. То есть сохраняем свой шмот в двух наборах, в одном с двуручем, в другом с щитом. И затем мы можем свапать двуруч на щит использованием макросов. Макрос на одевание щита:
Код:
/script UseEquipmentSet("ИмянаборагдеЩит")
Макрос на одевание двуручки:
Код:
/script UseEquipmentSet("ИмянаборагдеДвуруч")
Теперь надо подумать как это синтаксически правильно написать, где там какие запятые-скобочки ставить, и еще всякие if-then-else-end что-бы в одной строчке написать команду на свап вепонов одной кнопкой плюс реморф. Если-что - команды на смену сетов, если вся разница между сетами только в оружии, работают и в бою, только-что проверил.
Примеры некоторых скриптов
Приведу примеры скриптов, в них не известные мне правила правописания, например вот скрипт бывший полезным в вотлк, когда нужно было менять одни виды эмблем за рейды на другие, он делал много действий сразу:
/script local function buy (n,q) for i=1,30 do if n==GetMerchantItemInfo(i) then BuyMerchantItem(i,q) end end end buy ("Эмблема завоевания",1) buy ("Эмблема доблести",1) buy ("Эмблема героизма",1);
Вот еще - скрипт продает все вещи определенного цвета. Макрос очень удобен просто подходите к торговцу и запускаете макрос, и он продает все вещи указанного цвета. После продажи предмета макрос выводит в чат имена проданных вещей. Серые вещи:
/script for bag = 0,4,1 do for slot = 1, GetContainerNumSlots(bag), 1 do local name = GetContainerItemLink(bag,slot); if name and string.find(name,"ff9d9d9d") then DEFAULT_CHAT_FRAME:AddMessage("- Продано "..name); UseContainerItem(bag,slot) end; end;end
Вообще вот полный список команд через скрипт с сетами:
Equipment management
Equipment management was added to the UI in Patch 3.1.2. GetNumEquipmentSets() - Returns the number of saved equipment sets. GetEquipmentSetInfo(index) - Returns information about an equipment set. GetEquipmentSetInfoByName("name") - Returns information about an equipment set. GetEquipmentSetItemIDs("name"[, returnTable]) - Populates and returns a table with the item IDs. GetEquipmentSetLocations("name"[, returnTable]) - Populates and returns a table with the item locations. EquipmentManager_UnpackLocation(location) - Unpacks a location integer to determine the actual inventory location. PickupEquipmentSet(index) - Places an equipment set on the cursor. PickupEquipmentSetByName("name") - Places an equipment set on the cursor. EquipmentSetContainsLockedItems("name") - Checks if some of the items in the set are currently locked (pending client/server interaction). UseEquipmentSet("name") - Equips an equipment set. EquipmentManagerIgnoreSlotForSave(slot) - flags the slot to be ignored when saving an equipment set. EquipmentManagerUnignoreSlotForSave(slot) - removes the ignore flag from a slot when saving an equipment set. EquipmentManagerClearIgnoredSlotsForSave() - removes the ignore flag from all slots when saving an equipment set. SaveEquipmentSet("name", iconIndex) - Saves the currently equipped items in a set. RenameEquipmentSet("oldName", "newName") - Renames an equipment set. DeleteEquipmentSet("name") - Forgets an equipment set. UI GetEquipmentSetIconInfo(index) - Returns information about available icons.
Команды на прямую работу с вещами:
Item Functions Edit
Item Functions Edit These functions are those which operate on item links or item information directly. See also Container/Bag Functions and Inventory Functions. EquipItemByName(itemId or "itemName" or "itemLink"[, slot]) - Equips an item, optionally into a specified slot. GetAuctionItemLink("type", index) - Returns an itemLink for the specified auction item. GetContainerItemLink(bagID, slot) - Returns the itemLink of the item located in bag#, slot#. GetItemCooldown(itemID) - Returns startTime, duration, enable. GetItemCount(itemId or "itemName" or "itemLink"[, includeBank][, includeCharges]) - Returns number of such items in inventory[, or charges instead if it has charges] GetItemFamily(itemId or "itemName" or "itemLink") - Returns the bag type that an item can go into, or for bags the type of items that it can contain. (New in Patch 2.4) GetItemIcon(itemId or "itemString" or "itemName" or "itemLink") - Returns the icon for the item. Works for any valid item even if it's not in the cache. (New in Patch 2.4) GetItemInfo(itemId or "itemString" or "itemName" or "itemLink") - Returns information about an item. GetItemQualityColor(quality) - Returns the RGB color codes for a quality. GetItemSpell(item) - Returns name, rank. GetItemStats(itemLink, statTable) - Returns a table of stats for an item. GetMerchantItemLink(index) - Returns an itemLink for the given purchasable item GetQuestItemLink("type", index) - Returns an itemLink for a quest reward item. GetQuestLogItemLink("type", index) - Returns an itemLink for a quest reward item. GetTradePlayerItemLink(id) - Returns an itemLink for the given item in your side of the trade window (if open) GetTradeSkillItemLink(index) - Returns the itemLink for a trade skill item. GetTradeSkillReagentItemLink(index, reagentId) - Returns the itemLink for one of the reagents needed to craft the given item GetTradeTargetItemLink(id) - Returns an itemLink for the given item in the other player's side of the trade window (if open) IsUsableItem(item) - Returns usable, noMana. IsConsumableItem(item) - IsCurrentItem(item) - IsEquippedItem(item) - IsEquippableItem(itemId or "itemName" or "itemLink") - Returns 1 or nil. IsEquippedItemType("type") - Where "type" is any valid inventory type, item class, or item subclass. IsItemInRange("itemName" or "itemLink", "unit") - Nil for invalid target, 0 for out of range, 1 for in range. ItemHasRange(item) - OffhandHasWeapon() - Determine if your offhand carries a weapon. SplitContainerItem(bagID,slot,amount) - Picks up part of a stack. UI SetItemRef(link, text, button) - Handles item link tooltips in chat.
Через эти команды работы с вещами можно одевать любую вещь и получать true-false (1-0) значения о том, одета та или иная шмотка для дальнейшего использования в качестве условия для выполнения чего-либо в скрипте. Ссылка на вов API откуда взяты эти команды:
15 июн 2011, 13:51
vxsw
0
Re: [4.1.0 Guide] Надоел старый вид расы? Вам суда!
ну тогда проще сделать так. макрос на свап:
Код:
/script if IsEquippedItemType("Shields") then UseEquipmentSet("th") else UseEquipmentSet("sd") end
где: "th" - эквипсет с двуручкой "sd" - эквипсет со щитом из чего следует макрос с реморфером:
Код:
/script if IsEquippedItemType("Shields") then ReMorph.Slot16=ид_двуручки;ReMorph.Slot17=nil;UseEquipmentSet("th") else ReMorph.Slot16=ид_одноручного;ReMorph.Slot17=ид_щита;UseEquipmentSet("sd") end
теоретически, если ни где не накосячил - должно работать.
з.ы. естественно макросы в одну строку и где нет ";" между командами - там пробел.
15 июн 2011, 14:58
Отрицание
[1.8]
0
[4.1.0 Guide] Надоел старый вид расы? Вам суда!
Подставил нужные значения, попробовал:
Код:
/script if IsEquippedItemType("Shields") then ReMorph.Slot16=ид_двуручки;ReMorph.Slot17=nil;UseEquipmentSet("th") else ReMorph.Slot16=ид_одноручного;ReMorph.Slot17=ид_щита;UseEquipmentSet("sd") end
Меняет двуруч на щит, прописывает вид щита и одноруча. Но щит на двуруч не меняет, и вид не прописывает.
Попробовал:
Код:
/script if IsEquippedItemType("Shields") then UseEquipmentSet("th") else UseEquipmentSet("sd") end
Меняет двуручку на щит. Щит на двуручку не меняет.
Попробовал при одетом щите:
Код:
/script if IsEquippedItemType("Shields") then UseEquipmentSet("th")
Где подставил вместо th свой сет с двуручем, ноль реакции, двуруч не одело.
Одел щит и попробовал:
Код:
/script if IsEquippedItemType("Shields") then DEFAULT_CHAT_FRAME:AddMessage("I have a shield") end
Ничего не пишет. Подумал что "IsEquippedItemType("Shields")" почему-то не работает, и в этом причина, но решил проверить еще вот это:
Код:
/script DEFAULT_CHAT_FRAME:AddMessage("I have a shield") end
Оно само по себе ничего не выводит в чат.
15 июн 2011, 15:33
vxsw
0
[4.1.0 Guide] Надоел старый вид расы? Вам суда!
Отрицание писал(а):
Код:
/script DEFAULT_CHAT_FRAME:AddMessage("I have a shield") end
Оно само по себе ничего не выводит в чат.
это не будет работать из-за "енд"-а. его там быть не должно, он от условия. возможно "IsEquippedItemType("Shields")" действительно неработает, что-то в вики написано было про локализацию. у меня в енгб макрос на свап работает. сейчас придумаю проверочный макрос. на тип щита. посмотрим что он выдаст.
15 июн 2011, 15:39
Отрицание
[1.8]
0
[4.1.0 Guide] Надоел старый вид расы? Вам суда!
Опция [equipped:Shields] есть и в макросах, я написал макрос: /cast [equipped:Shields] Боевой крик Он не работает
Написал /cast [equipped:Щиты] Боевой крик Работает
То есть вместо Shields нужно писать Щиты, сейчас попробую.
Добавлено спустя 5 минут 7 секунд: FUCK YEAH!!1 Большое спасибо, все работает если заменить Shields на Щиты.
15 июн 2011, 15:45
vxsw
0
Re: [4.1.0 Guide] Надоел старый вид расы? Вам суда!
ну вот, а я уже макрос нарисовал х) ну уж спостю коль на то пошло:
в общем он должен выдавать тип предмета в левой руке (а если точнее, то подтип), к-е нужно писать вместо "Shields", ну так понял, что в руру, он выдаст "Щиты". ну в любом случае рад что заработало
15 июн 2011, 15:55
Отрицание
[1.8]
0
[4.1.0 Guide] Надоел старый вид расы? Вам суда!
Да, макрос вывел в чат "Щиты".
Думаю стоит этот макрос
Код:
/script if IsEquippedItemType("Shields") then ReMorph.Slot16=ид_двуручки;ReMorph.Slot17=nil;UseEquipmentSet("th") else ReMorph.Slot16=ид_одноручного;ReMorph.Slot17=ид_щита;UseEquipmentSet("sd") end
добавить в первый пост, ну и выкладывать в комплекте с аморфером, патчером и реморфером с описанием для чего он нужен, а-то варриорам совсем не ок без свапа оружий-же. И там еще ретрики иногда свапают вроде, и роги пухи свапают.
15 июн 2011, 16:03
Noxxy
[3.1]
0
Re: [4.1.0 Guide] Надоел старый вид расы? Вам суда!
Icevenalol писал(а):
37919 - NE Female 37918 - Dwarf Female 37917 - Blood Elf Male 37916 - Dreanei Male 37915 - Worgen Male 37914 - Worgen Female
На сайте использованы материалы, принадлежащие Blizzard Entertainment. Копирование материалов возможно только c разрешения портала. В противном случае это будет называться уже другим словом.