Findeh 34 Posted September 18, 2017 Share Posted September 18, 2017 I'm trying to make a small function (maybe plugin) that uses trinkets. And i'm stuck with trinket cd time left. I'd like to use it as a c# condition. Have tried different lua methods, and they always return 0 or False. private bool FirstTrinketReady = Lua.LuaDoString<bool>("local s, d, e = GetInventoryItemCooldown(\"player\",13); t=GetTime(); if s+d<=t then return = \"true\" else return = \"false\" end"); Always return False. private int FirstTrinketMSLeft = Lua.LuaDoString<int>("local s, d, e = GetInventoryItemCooldown(\"player\",13); t=GetTime(); r=s+d-t; if r>0 then return = r else return = 0 end"); Always return 0. Can't understand why. I'm not good at Lua. Do hope that's happening because i'm falling asleep already, or because of some really stupid mistake. Any advices apriciated. And the second thing, i was not able to use an equiped item by ID with wManager.Wow.Helpers.ItemsManager.UseItem(uint itemId). It uses item in inventory, no problem here, but it is not working for equiped items. Right now i'm doing it with lua UseInventoryItem(slot). Is there any way to use equiped items by item id? Thank you for any advices. Link to comment https://wrobot.eu/forums/topic/7127-trinket-cooldown-time-left/ Share on other sites More sharing options...
Avvi 98 Posted September 19, 2017 Share Posted September 19, 2017 (edited) I'm not the greatest with lua, so here is my answer but in C#. int itemID = 123; var itemCooldown = wManager.Wow.Helpers.Bag.GetContainerItemCooldown(itemID); var itemTimer = new robotManager.Helpful.Timer(itemCooldown); itemIsReady.ForceReady(); if (itemTimer.IsReady) { ItemsManager.UseItem((uint)itemID); itemTimer.Reset(); } Also, i'm not really sure about what this does: Bag.GetContainerItemCooldown(itemID) This may actually return the remaining time. I haven't tested. If it DOES return the remaining time, then you can pretty much skip the whole timer thing :). Anyway, let me know! I found an example that does it very similarly to my above snippet: Edited September 19, 2017 by Avvi Findeh 1 Link to comment https://wrobot.eu/forums/topic/7127-trinket-cooldown-time-left/#findComment-32283 Share on other sites More sharing options...
Findeh 34 Posted September 19, 2017 Author Share Posted September 19, 2017 Thank you for your reply, but the problem is, there is no c# functions (atleast i have not found one) to check CD of equipped items. They works only with items in your bags, but not with equipped one. For example, if you will use a trinket and then put it in your bag, wManager.Wow.Helpers.Bag.GetContainerItemCooldown(itemID) will return correct CD time of that trinket (while it is in your bag). But if you equip that trinket, it will aways return 0, as if you have not such item. btw, just was curious as well, maybe it will usefull for someone. wManager.Wow.Helpers.Bag.GetContainerItemCooldown(itemID) returns time of CD left in milliseconds, for example for 30 minutes trinket it will return 1800000 if you just used it, and 0 if it's ready to use or if there is no such item in your bag. Link to comment https://wrobot.eu/forums/topic/7127-trinket-cooldown-time-left/#findComment-32289 Share on other sites More sharing options...
reapler 154 Posted September 19, 2017 Share Posted September 19, 2017 Hello, this might help you: /// <summary> /// Used to get the cooldown of an inventory item. /// </summary> /// <param name="slotId">The slot to get from.</param> /// <returns>The left cooldown of the item.</returns> public int GetInventoryCooldown(WoWInventorySlot slotId) { return Lua.LuaDoString<int>( @" local start, duration, enable = GetInventoryItemCooldown(""player"", "+(int)slotId+@") local coolDown = duration-(GetTime()-start); if (coolDown < 0) then return 0; end return coolDown; "); } Usage: Logging.Write("Cooldown of Trinket1: "+GetInventoryCooldown(WoWInventorySlot.Trinket1)); Findeh 1 Link to comment https://wrobot.eu/forums/topic/7127-trinket-cooldown-time-left/#findComment-32291 Share on other sites More sharing options...
Findeh 34 Posted September 19, 2017 Author Share Posted September 19, 2017 Thank you alot. It is working, return seconds, like lua should. That's funny, because technically it's the same function. I guess my method was broken because of bad return or local variables declaration. Link to comment https://wrobot.eu/forums/topic/7127-trinket-cooldown-time-left/#findComment-32302 Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now