dengsir / tdbattlepetscript Goto Github PK
View Code? Open in Web Editor NEWBattle pet combat script for wow.
License: MIT License
Battle pet combat script for wow.
License: MIT License
Check code for checking multiple weathers correctly functions, setting out weathers as:
[weather ~ Mudslide,Scorched Earth,Blizzard]
should work but seemingly didn't at last test.
Recently was trying to set conditions for Life Exchange to only cast when your pet will gain health by comparing my pets health with the enemy pets health, but the only way to use hp compare in the API documentation is to use an absolute number.
The in-game editor accepts [self.hp>enemy.hp] but breaks the script entirely.
Doing Dalaran WQ Fight Night: Sir Galveston (https://wow-petguide.com/index.php?Strategy=968) with Iron Starlet in first slot.
With following script:
ability(566) [!self(#1).dead & self.round=1]
ability(459) [!self(#1).dead & self.round=2]
ability(208) [!self(#1).dead & self.round=3]
ability(459) [!self(#1).dead & self.round<=6]
On turn 4 (round=4) starlet kills enemy pet. On next turn round=6, skipping 5 value. Tested with
test(1) [self.round=1]
test(1) [self.round=2]
test(1) [self.round=3]
test(1) [self.round=4]
test(1) [self.round=5]
test(1) [self.round=6]
before each turn.
Probably caused by dead enemy pet, but it's hard to debug.
Message: ...Ons\tdBattlePetScript\Libs\tdGUI\Widget\DropMenu.lua line 33:
attempt to call method 'SetBackdrop' (a nil value)
Debug:
[string "=[C]"]: SetBackdrop()
[string "@tdBattlePetScript\Libs\tdGUI\Widget\DropMenu.lua"]:33: ctor()
[string "@tdBattlePetScript\Libs\tdGUI\Libs\LibClass-2.0\Class-2.0.lua"]:90:
...PetScript\Libs\tdGUI\Libs\LibClass-2.0\Class-2.0.lua:82
[string "=(tail call)"]: ?
[string "@tdBattlePetScript\Libs\tdGUI\Widget\DropMenu.lua"]:329
Message: ...Ons\tdBattlePetScript\UI\Widgets\AutoCompleteBox.lua line 25:
attempt to call method 'SetBackdrop' (a nil value)
Debug:
[string "=(tail call)"]: ?
[string "@tdBattlePetScript\UI\Widgets\AutoCompleteBox.lua"]:25: ctor()
[string "@tdBattlePetScript\Libs\tdGUI\Libs\LibClass-2.0\Class-2.0.lua"]:90:
...PetScript\Libs\tdGUI\Libs\LibClass-2.0\Class-2.0.lua:82
[string "=(tail call)"]: ?
[string "@tdBattlePetScript\UI\Widgets\ScriptEditor.lua"]:17: ctor()
[string "@tdBattlePetScript\Libs\tdGUI\Libs\LibClass-2.0\Class-2.0.lua"]:90:
...PetScript\Libs\tdGUI\Libs\LibClass-2.0\Class-2.0.lua:82
[string "=(tail call)"]: ?
[string "@tdBattlePetScript\UI\MainPanel.lua"]:234: MakeBox()
[string "@tdBattlePetScript\UI\MainPanel.lua"]:255:
tdBattlePetScript\UI\MainPanel.lua:26
[string "=[C]"]: ?
[string "@ace3\AceAddon-3.0\AceAddon-3.0.lua"]:70:
Ace3\AceAddon-3.0\AceAddon-3.0.lua:65
Anytime I reinstall windows, or move from one computer to another, I lose my scripts. Was curious if it were possible to import/export all scripts into a single file, similar to how Rematch imports/exports teams.
Even though I save my interface addons folder, they don't seem to transfer over my scripts.
Thanks!
I was trying to write a script to capture new pets that I don't have in the pet collection. I noticed that an addon (I believe it is the "pet tracker") indicates when a wild pet from the enemy team does not yet exist in my collection. The addon:
It turns out that the enemy pet I want to capture can be the first, the second or the third. There is no exact order in each battle. My script works to capture, but I need to edit it at each battle saying specifically which enemy pet I want to capture (sometimes the first, sometimes the second or sometimes the third pet)
There is a possibility to add a condition or checker that would allow the script to check if the wild pet I am facing exists in my collection?
If so, the script would proceed to capture. If not, the script would continue the battle, defeating the current pet and facing the team's next enemy.
In the example sent, I thought of suggesting a new keyword, something like "enemy.is.improve" (for my pet collection)
Could you implement this enhancement? I would like to take the opportunity to thank you for the addon. It is very useful and facilitator for pet battles.
The current script, which I need to specifically indicate the pet I want to capture, and the message from the other addon indicating what wild pet from the enemy team is an improvement for my collection.
How the script would look. I would not need to edit it and I would capture the wild pet only if it is an improvement to my collection, otherwise I would defeat them.
The current script:
if [ enemy.is(Gorm Ferraiz:2919) ]
change(next) [ self.dead ]
ability(#3) [ !enemy.aura(Defesas Estilhaçadas:542).exists & enemy.hp.full & self.ability(#3).weak ]
ability(#2)
change(next) [ !ability(#2).usable & enemy.hp>=400 ]
catch [ enemy.hp<=400 ]
endif
ability(#3) [ !enemy.aura(Defesas Estilhaçadas:542).exists ]
ability(#2)
ability(#1)
change(next) [ self.dead ]
My capture team:
Capturar::21151R2:21131S9:21181VQ:
Now that Curseforge has revoked API access from third-party addon managers like WowUp and Ajour, are there currently any plans to host this addon elsewhere (Wago, WowInterface)? If not, would you be open to using BigWigs Packager to append formatted zips so that the aforementioned third-party addon clients can install directly from this repo?
When I first enter a pet fight, I disconnect. When I come back into the game I can start the fight normally and use the TD script.
TDScript doesn't work if you use ability.duration with <, > if the pet with this ability isn't active.
Example:
Your active pet is a rabbit (1/2/1)
TD Script:
use(Dodge:312)
use(Burrow:159) [self.ability(Dodge:312).duration<3]
use(#1)
Fight:
Round 1: Dodge
Round 2: ability 1
Round 3: ability 1
Round 4 Burrow
... --> This one works fine
Now the buggy version
Your active pet is a Emerald-Proto-Whelp (2/2/2) (Emerald bite/Emerald Presence/Emerald Dream)
TD Script: (Same one)
use(Dodge:312)
use(Burrow:159) [self.ability(Dodge:312).duration<3]
use(#1)
Fight:
Round 1: Script is doing nothing --> normally (old Version 8) the script will do "use(#1)"
edit: This issue is caused by the following change:
d99b9f0
When trying to edit script in combat:
3x tdBattlePetScript_Rematch\Addon.lua:40: Usage: GetPetInfoByID(petGUID)
[string "=[C]"]: in function GetPetInfoByPetID' [string "@tdBattlePetScript_Rematch\Addon.lua"]:40: in function
GetPetTip'
[string "@tdBattlePetScript_Rematch\Addon.lua"]:59: in function tipFormatting' [string "@tdBattlePetScript\UI\UI.lua"]:31: in function <tdBattlePetScript\UI\UI.lua:17> [string "=(tail call)"]: ? [string "@tdBattlePetScript\UI\PetBattle.lua"]:180: in function <tdBattlePetScript\UI\PetBattle.lua:178> [string "=[C]"]: ? [string "@tdBattlePetScript\Libs\tdGUI\Libs\LibClass-2.0-9\Class-2.0.lua"]:37: in function <...PetScript\Libs\tdGUI\Libs\LibClass-2.0\Class-2.0.lua:35> [string "@tdBattlePetScript\Libs\tdGUI\Libs\LibClass-2.0-9\Class-2.0.lua"]:138: in function
Fire'
[string "@tdBattlePetScript\Libs\tdGUI\Widget\ViewItem.lua"]:28: in function `FireHandler'
[string "@tdBattlePetScript\Libs\tdGUI\Widget\ViewItem.lua"]:59: in function <...Ons\tdBattlePetScript\Libs\tdGUI\Widget\ViewItem.lua:57>
x1 tdBattlePetScript\Plugins\Base.lua:12: attempt to call method 'NewPlugin' (a nil value)
Stack: tdBattlePetScript\Plugins\Base.lua:12: in main chunk
Time: 2018/12/15 20:11:59 Index: 1/10
RealUI Version: 2.0.7
Locals:
ns = <table> {
Director = <table> {}
Action = <table> {}
Addon = <table> {}
ICON = "Icons\INV_Misc_PenguinPet"
Condition = <table> {}
Option = <table> {}
UI = <table> {}
L = <table> {}
Util = <table> {}
Stack = <table> {}
}
Addon = <table> {
SetDefaultModuleLibraries = <function> defined @Masque\Libs\AceAddon-3.0\AceAddon-3.0.lua:367
ResetFrames = <function> defined @tdBattlePetScript\Core\Addon.lua:135
Enable = <function> defined @Masque\Libs\AceAddon-3.0\AceAddon-3.0.lua:294
UnregisterAllEvents = <function> defined @Masque\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:174
EnableModule = <function> defined @Masque\Libs\AceAddon-3.0\AceAddon-3.0.lua:332
modules = <table> {}
GetModule = <function> defined @Masque\Libs\AceAddon-3.0\AceAddon-3.0.lua:210
IterateEmbeds = <function> defined @Masque\Libs\AceAddon-3.0\AceAddon-3.0.lua:442
defaultModuleLibraries = <table> {}
OnDatabaseShutdown = <function> defined @tdBattlePetScript\Core\Addon.lua:97
RegisterAction = <function> defined @tdBattlePetScript\Core\Action.lua:14
SetDefaultModulePrototype = <function> defined @Masque\Libs\AceAddon-3.0\AceAddon-3.0.lua:409
name = "tdBattlePetScript"
IsEnabled = <function> defined @Masque\Libs\AceAddon-3.0\AceAddon-3.0.lua:451
orderedModules = <table> {}
DisableModule = <function> defined @Masque\Libs\AceAddon-3.0\AceAddon-3.0.lua:350
NewClass = <function> defined @tdBattlePetScript\Libs\tdGUI\Libs\LibClass-2.0\Class-2.0.lua:340
RegisterMessage = <function> defined @Masque\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:90
UnregisterMessage = <function> defined @Masque\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:153
OpenOptionFrame = <function> defined @tdBattlePetScript\UI\Option.lua:381
RegisterCondition = <function> defined @tdBattlePetScript\Core\Condition.lua:72
ResetSetting = <function> defined @tdBattlePetScript\Core\Addon.lua:119
GetSetting = <function> defined @tdBattlePetScript\Core\Addon.lua:109
SetSetting = <function> defined @tdBattlePetScript\Core\Addon.lua:113
IsModule = <function> defined @Masque\Libs\AceAddon-3.0\AceAddon-3.0.lua:468
PET_BATTLE_SCRIPT_SCRIPT_REMOVED = <function> defined @tdBattlePetScript\Core\Addon.lua:105
SendMessage = <function> defined @Masque\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:59
PET_BATTLE_SCRIPT_SCRIPT_ADDED = <function> defined @tdBattlePetScript\Core\Addon.lua:101
OnModuleCreated = <function> defined @tdBattlePetScript\Core\Addon.lua:88
SetEnabledState = <function> defined @Masque\Libs\AceAddon-3.0\AceAddon-3.0.lua:424
UpdateDatabase = <function> defined @tdBattlePetScript\Core\Addon.lua:71
enabledState = true
InitSettings = <function> defined @tdBattlePetScript\Core\Addon.lua:65
RegisterEvent = <function> defined @Masque\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:90
UnregisterAllMessages = <function> defined @Masque\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:174
OnEnable = <function> defined @tdBattlePetScript\Core\Addon.lua:58
OnInitialize = <function> defined @tdBattlePetScript\Core\Addon.lua:18
NewModule = <function> defined @Masque\Libs\AceAddon-3.0\AceAddon-3.0.lua:235
IterateModules = <function> defined @Masque\Libs\AceAddon-3.0\AceAddon-3.0.lua:437
defaultModuleState = true
SetDefaultModuleState = <function> defined @Masque\Libs\AceAddon-3.0\AceAddon-3.0.lua:387
GetName = <function> defined @Masque\Libs\AceAddon-3.0\AceAddon-3.0.lua:279
GetClass = <function> defined @
x1 ...terface\tdBattlePetScript\Extension\Round.lua:7: attempt to index field 'BattleCacheManager' (a nil value)
Stack: ...terface\tdBattlePetScript\Extension\Round.lua:7: in main chunk
Time: 2018/12/15 20:11:59 Index: 2/10
RealUI Version: 2.0.7
Locals:
ns = <table> {
Director = <table> {}
Action = <table> {}
Addon = <table> {}
ICON = "Icons\INV_Misc_PenguinPet"
Condition = <table> {}
Option = <table> {}
UI = <table> {}
L = <table> {}
Util = <table> {}
Stack = <table> {}
}
(*temporary) = nil
(*temporary) = nil
(*temporary) = <table> {
Director = <table> {}
Action = <table> {}
Addon = <table> {}
ICON = "Icons\INV_Misc_PenguinPet"
Condition = <table> {}
Option = <table> {}
UI = <table> {}
L = <table> {}
Util = <table> {}
Stack = <table> {}
}
(*temporary) = nil
(*temporary) = "attempt to index field 'BattleCacheManager' (a nil value)"
x1 ...erface\tdBattlePetScript\Extension\Played-Played.lua:7: attempt to index field 'BattleCacheManager' (a nil value)
Stack: ...erface\tdBattlePetScript\Extension\Played-Played.lua:7: in main chunk
Time: 2018/12/15 20:11:59 Index: 3/10
RealUI Version: 2.0.7
Locals:
ns = <table> {
Director = <table> {}
Action = <table> {}
Addon = <table> {}
ICON = "Icons\INV_Misc_PenguinPet"
Condition = <table> {}
Option = <table> {}
UI = <table> {}
L = <table> {}
Util = <table> {}
Stack = <table> {}
}
(*temporary) = nil
(*temporary) = nil
(*temporary) = <table> {
Director = <table> {}
Action = <table> {}
Addon = <table> {}
ICON = "Icons\INV_Misc_PenguinPet"
Condition = <table> {}
Option = <table> {}
UI = <table> {}
L = <table> {}
Util = <table> {}
Stack = <table> {}
}
(*temporary) = nil
(*temporary) = "attempt to index field 'BattleCacheManager' (a nil value)"
x1 ...ce\tdBattlePetScript\Extension\Conditions.lua:10: attempt to index field 'BattleCacheManager' (a nil value)
Stack: ...ce\tdBattlePetScript\Extension\Conditions.lua:10: in main chunk
Time: 2018/12/15 20:11:59 Index: 4/10
RealUI Version: 2.0.7
Locals:
ns = <table> {
Director = <table> {}
Action = <table> {}
Addon = <table> {}
ICON = "Icons\INV_Misc_PenguinPet"
Condition = <table> {}
Option = <table> {}
UI = <table> {}
L = <table> {}
Util = <table> {}
Stack = <table> {}
}
Addon = <table> {
SetDefaultModuleLibraries = <function> defined @Masque\Libs\AceAddon-3.0\AceAddon-3.0.lua:367
ResetFrames = <function> defined @tdBattlePetScript\Core\Addon.lua:135
Enable = <function> defined @Masque\Libs\AceAddon-3.0\AceAddon-3.0.lua:294
UnregisterAllEvents = <function> defined @Masque\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:174
EnableModule = <function> defined @Masque\Libs\AceAddon-3.0\AceAddon-3.0.lua:332
modules = <table> {}
GetModule = <function> defined @Masque\Libs\AceAddon-3.0\AceAddon-3.0.lua:210
IterateEmbeds = <function> defined @Masque\Libs\AceAddon-3.0\AceAddon-3.0.lua:442
defaultModuleLibraries = <table> {}
OnDatabaseShutdown = <function> defined @tdBattlePetScript\Core\Addon.lua:97
RegisterAction = <function> defined @tdBattlePetScript\Core\Action.lua:14
SetDefaultModulePrototype = <function> defined @Masque\Libs\AceAddon-3.0\AceAddon-3.0.lua:409
name = "tdBattlePetScript"
IsEnabled = <function> defined @Masque\Libs\AceAddon-3.0\AceAddon-3.0.lua:451
orderedModules = <table> {}
DisableModule = <function> defined @Masque\Libs\AceAddon-3.0\AceAddon-3.0.lua:350
NewClass = <function> defined @tdBattlePetScript\Libs\tdGUI\Libs\LibClass-2.0\Class-2.0.lua:340
RegisterMessage = <function> defined @Masque\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:90
UnregisterMessage = <function> defined @Masque\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:153
OpenOptionFrame = <function> defined @tdBattlePetScript\UI\Option.lua:381
RegisterCondition = <function> defined @tdBattlePetScript\Core\Condition.lua:72
ResetSetting = <function> defined @tdBattlePetScript\Core\Addon.lua:119
GetSetting = <function> defined @tdBattlePetScript\Core\Addon.lua:109
SetSetting = <function> defined @tdBattlePetScript\Core\Addon.lua:113
IsModule = <function> defined @Masque\Libs\AceAddon-3.0\AceAddon-3.0.lua:468
PET_BATTLE_SCRIPT_SCRIPT_REMOVED = <function> defined @tdBattlePetScript\Core\Addon.lua:105
SendMessage = <function> defined @Masque\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:59
PET_BATTLE_SCRIPT_SCRIPT_ADDED = <function> defined @tdBattlePetScript\Core\Addon.lua:101
OnModuleCreated = <function> defined @tdBattlePetScript\Core\Addon.lua:88
SetEnabledState = <function> defined @Masque\Libs\AceAddon-3.0\AceAddon-3.0.lua:424
UpdateDatabase = <function> defined @tdBattlePetScript\Core\Addon.lua:71
enabledState = true
InitSettings = <function> defined @tdBattlePetScript\Core\Addon.lua:65
RegisterEvent = <function> defined @Masque\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:90
UnregisterAllMessages = <function> defined @Masque\Libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:174
OnEnable = <function> defined @tdBattlePetScript\Core\Addon.lua:58
OnInitialize = <function> defined @tdBattlePetScript\Core\Addon.lua:18
NewModule = <function> defined @Masque\Libs\AceAddon-3.0\AceAddon-3.0.lua:235
IterateModules = <function> defined @Masque\Libs\AceAddon-3.0\AceAddon-3.0.lua:437
defaultModuleState = true
SetDefaultModuleState = <function> defined @Masque\Libs\AceAddon-3.0\AceAddon-3.0.lua:387
GetName = <function> defined @Masque\Libs\AceAddon-3.0\AceAddon-3.0.lua:279
GetClass = <function> defined @
I get this error code when I paste this:
ability(Supercharge:208) [enemy.ability(Headbutt:376).duration<=4]
1x tdBattlePetScript\Core\Condition.lua:37: attempt to compare boolean with nil
[string "@tdBattlePetScript\Core\Condition.lua"]:37: in function <tdBattlePetScript\Core\Condition.lua:37>
[string "=(tail call)"]: ?
[string "=(tail call)"]: ?
[string "@tdBattlePetScript\Core\Director.lua"]:32: in function Action' [string "@tdBattlePetScript\Core\Director.lua"]:22: in function
Run'
[string "@tdBattlePetScript\UI\PetBattle.lua"]:312: in function `OnAutoButtonClick'
[string "@tdBattlePetScript\UI\PetBattle.lua"]:67: in function <tdBattlePetScript\UI\PetBattle.lua:66>
Locals:
a = false
b = nil
(*temporary) = nil
(*temporary) = "attempt to compare boolean with nil"
That would be the scripts for the world quest: Caregiver Maximillian
ability(Supercharge:208) [enemy.ability(Headbutt:376).duration<=4]
ability(170) [round=2]
ability(654) [self.aura(242).exists]
ability(117)
change(#2) [self(#1).dead]
change(#3) [self(#2).dead]
standby [self.aura(927).exists]
ability(204) [self.aura(207).exists]
ability(384)
ability(589)
ability(489)
What am I doing wrong? :(
1x ...Ons\tdBattlePetScript\UI\Widgets\AutoCompleteBox.lua:25: attempt to call method 'SetBackdrop' (a nil value)
[string "@tdBattlePetScript\UI\Widgets\AutoCompleteBox.lua"]:25: in function ctor' [string "@tdBattlePetScript\Libs\tdGUI\Libs\LibClass-2.0-10\Class-2.0.lua"]:61: in function <...PetScript\Libs\tdGUI\Libs\LibClass-2.0\Class-2.0.lua:53> [string "=(tail call)"]: ? [string "@tdBattlePetScript\UI\Widgets\ScriptEditor.lua"]:17: in function
ctor'
[string "@tdBattlePetScript\Libs\tdGUI\Libs\LibClass-2.0-10\Class-2.0.lua"]:61: in function <...PetScript\Libs\tdGUI\Libs\LibClass-2.0\Class-2.0.lua:53>
[string "=(tail call)"]: ?
[string "@tdBattlePetScript\UI\MainPanel.lua"]:234: in function MakeBox' [string "@tdBattlePetScript\UI\MainPanel.lua"]:255: in function <tdBattlePetScript\UI\MainPanel.lua:26> [string "=[C]"]: ? [string "@ElvUI\Libraries\Ace3\AceAddon-3.0\AceAddon-3.0-13.lua"]:70: in function <...s\ElvUI\Libraries\Ace3\AceAddon-3.0\AceAddon-3.0.lua:65> [string "@ElvUI\Libraries\Ace3\AceAddon-3.0\AceAddon-3.0-13.lua"]:498: in function
InitializeAddon'
[string "@ElvUI\Libraries\Ace3\AceAddon-3.0\AceAddon-3.0-13.lua"]:623: in function <...s\ElvUI\Libraries\Ace3\AceAddon-3.0\AceAddon-3.0.lua:615>
Unfortunately, I wasn't able to reproduce it, but a while ago I had a situation where the hp.can_explode
condition for an Explode left my opponent alive with 1 hitpoint left.
Addon:RegisterCondition('hp.can_explode', { type = 'boolean', arg = false }, function(owner, pet)
return C_PetBattles.GetHealth(owner, pet) < floor(C_PetBattles.GetMaxHealth(getOpponentActivePet(owner)) * 0.4)
end)
Maybe there's an issue with in-game rounding weirdness so we need to add +0.5
or -0.5
somewhere in that code?
Example (only speculation):
The player pet has 1339MaxHP, the enemy pet is shown with 535HP left but internally it's 535.8
The function compares 1339*0.4 (535.6) with the exact number 535.8 and returns true but the pet explodes with rounded 535 damage and leaves 0.8HP which I see in a 1HP surviving enemy? idk
When you share a team, can you share the TD Script with it also?
请问Self.count命令是删掉了吗?有无替代命令呢
Version 80000.01 works properly until today's (07/21) WoW update.
7x Couldn't open tdBattlePetScript\Libs\tdGUI\Libs\LibClass-2.0-7\LibClass-2.0.xml
!BugGrabber\BugGrabber.lua:578: in function <!BugGrabber\BugGrabber.lua:578>
Locals:
nil
Allow checking of multiple of multiple buffs on an enemy by adding a or command " | "
currently it's not easy to check for two buffs or debuffs before deciding if a move is a good idea having " | " to mean "and" could be the way to go
Just found about this great addon!
I'm having an issue with Mr Wiggles.
I change to this pet fine like this:
change(Mr. Wiggles:126)
But when I try to do something like this, it won't work:
[self(Mr. Wiggles:126).active]
Other pets do work. Might the "." in the name be causing this (this is the official name)?
When the original author added the hp.can_explode condition I started thinking about something more flexible since we have a variety of abilities based on some sort of HP-percentage (i.E. 6% Glowing Toxin, 10% Drain Blood, 15% Corpse Explosion, 40% Explode, etc.) and maybe see additions with different numbers or nerfs to existing ones that can be adjusted by script writers without the need for a code update.
So my idea was to have two conditions (or whatever they are categorized since I don't know how the values would be added) like:
hpp.s_explode.##
(s for source, used for abilities like Corpse Explosion that are looking into the MaxHP of the source)
Returns True if actual HP of the target is lower than maximum HP of source * ## / 100
hpp.t_explode.##
(t for target, used for abilities like Drain Blood that are looking into the MaxHP of the target)
Returns True if actual HP of the target is lower than maximum HP of target * ## / 100
WoW is now at version 9.2.5. Please update the add-on to the current version.
It is packaged with the older version of the tdGUI lib
Rather than just mindlessly tapping 'A' while watching something on another screen during Squirt days, some kind of a sound effect to indicate when the Auto button is ready to be pressed would be a nice feature.
The addon loads and mostly seems to work, but when I click Write Script, nothing happens. LUA error is as follows:
Message: Interface/AddOns/tdBattlePetScript/UI/MainPanel.lua:502: attempt to index field 'MainPanel' (a nil value)
Time: Thu Oct 27 07:40:36 2022
Count: 1
Stack: Interface/AddOns/tdBattlePetScript/UI/MainPanel.lua:502: attempt to index field 'MainPanel' (a nil value)
[string "=[C]"]: ?
[string "@Interface/AddOns/tdBattlePetScript/UI/MainPanel.lua"]:502: in function `UpdateLayout'
[string "@Interface/AddOns/tdBattlePetScript/UI/MainPanel.lua"]:442: in function `OpenScript'
[string "@Interface/AddOns/tdBattlePetScript/UI/MainPanel.lua"]:451: in function <Interface/AddOns/tdBattlePetScript/UI/MainPanel.lua:450>
[string "=(tail call)"]: ?
[string "@Interface/AddOns/tdBattlePetScript_Rematch/UI.lua"]:15: in function `func'
[string "@Interface/AddOns/Rematch/Menus/Menu.lua"]:393: in function <Interface/AddOns/Rematch/Menus/Menu.lua:388>
I have the following line in a script and it keeps executing if the command is available regardless of whether the aura is active:
use(Minefield:634) [!enemy.aura(Minefield:635).exists]
Obviously, I want to reapply Minefield if the Minefield isn't there (either by timeout or by having been triggered by a new pet being swapped in). I created the line through the auto-fill method of creating the script while in combat. When that didn't work, I copied the line from another script. When that didn't work, I tried
use(Minefield:634) [enemy.round=1]
The idea was to at least limit the script to only firing minefield if exploded because a pet was swapped in but the ability was cast as soon as it was off timeout regardless.
Either I'm getting something wrong or this is a bug.
D
P.S. Minefield isn't called anywhere else in the script -- just to make sure it was my error.
The addon does not register Gamepad Buttons when i try to set a Hotkey in the settings.
Message: Interface\AddOns\tdBattlePetScript\UI\PetBattle.lua:208: '=' expected near 'self'
Time: Mon Aug 3 07:34:05 2020
Count: 6
Stack: Interface\AddOns\tdBattlePetScript\UI\PetBattle.lua:208: '=' expected near 'self'
Locals:
1x ...Ons\tdBattlePetScript\Libs\tdGUI\Widget\DropMenu.lua:33: attempt to call method 'SetBackdrop' (a nil value)
[string "@tdBattlePetScript\Libs\tdGUI\Widget\DropMenu.lua"]:33: in function `ctor'
[string "@tdBattlePetScript\Libs\tdGUI\Libs\LibClass-2.0-10\Class-2.0.lua"]:61: in function <...PetScript\Libs\tdGUI\Libs\LibClass-2.0\Class-2.0.lua:53>
[string "=(tail call)"]: ?
[string "@tdBattlePetScript\Libs\tdGUI\Widget\DropMenu.lua"]:329: in main chunk
Locals:
self = {
0 =
menuList =
Hi, this is a very long shot request, and I completely understand if you shut it down. I was wondering if there might be any interest at all among the dev team in creating a version of tdBattlePetScript that works in a 5.4.8 (Mists of Pandaria) client.
There is renewed interest in that expansion this year, a private server just launched with the highest peak population since before WoW Classic. And MoP was the expansion where battle pets got started, so there might be an audience of battlers that would like to go back and experience the original pets and meta.
Certain other addons have been backported to this version of the game (like WeakAuras, link here), and Rematch also existed back in 5.4. I love tdBPS so much and would love to use it in a Mists environment.
Thank you for your consideration.
Would love to see a hp.max added, already added it to my personal files:
Addon:RegisterCondition('hp.max', { type = 'compare', arg = false }, C_PetBattles.GetMaxHealth)
Fix auto checking of entire script versus blank script upon entering character into the script, causes slowdown at hundred of lines of code.
New addon developer has some ideas, this is just a reminder note about sending the test file to authors of scripts to enable entering information without slowdown.
Locals:
a = 273
b = "enemy.speed"
(*temporary) = nil
(*temporary) = "attempt to compare number with string"
报错信息
Message: ...nterface\AddOns\tdBattlePetScript\Core\Condition.lua:36: attempt to compare number with string
Time: Thu Jul 26 15:58:56 2018
Count: 1
Stack: ...nterface\AddOns\tdBattlePetScript\Core\Condition.lua:36: attempt to compare number with string
...nterface\AddOns\tdBattlePetScript\Core\Condition.lua:36: in function <...nterface\AddOns\tdBattlePetScript\Core\Condition.lua:36>
(tail call): ?
(tail call): ?
...nterface\AddOns\tdBattlePetScript\Core\Condition.lua:98: in function `Run'
Interface\AddOns\tdBattlePetScript\Core\Director.lua:32: in function `Action'
Interface\AddOns\tdBattlePetScript\Core\Director.lua:32: in function `Action'
Interface\AddOns\tdBattlePetScript\Core\Director.lua:22: in function `Run'
Interface\AddOns\tdBattlePetScript\UI\PetBattle.lua:267: in function `OnAutoButtonClick'
Interface\AddOns\tdBattlePetScript\UI\PetBattle.lua:71: in function <Interface\AddOns\tdBattlePetScript\UI\PetBattle.lua:70>
Locals: a = 1025
b = "enemy.hp"
(*temporary) = nil
(*temporary) = "attempt to compare number with string"
使用脚本
change(#1) [ self(#2).dead ]
change(next) [ self.dead ]
if [ self(#1).active & enemy(#1).active ]
ability(#1) [ enemy.round=1 ]
ability(#3) [ enemy.round=2 ]
ability(#1)
endif
if [ self(#1).active & enemy(#2).active ]
change(#2)
endif
if [ self(#2).active & enemy(#2).active ]
if [ self.aura(昏睡).exists ]
standby
endif
ability(#2) [ enemy.hpp > 50 & self.hp < enemy.hp ]
ability(#3) [ !weather(月光) ]
ability(#1) [ weather(月光) ]
ability(#1) [ enemy.hp > 618 ]
standby
endif
if [ self(#1).active & enemy(#3).active ]
if [ enemy.hp < 618 ]
ability(#2)
endif
ability(#1)
endif
应该是执行到这条ability(#2) [ enemy.hpp > 50 & self.hp < enemy.hp ]
的时候报错的
4x Interface/AddOns/tdBattlePetScript/UI/MainPanel.lua:366: attempt to index field 'ScriptBox' (a nil value)
[string "@Interface/AddOns/tdBattlePetScript/UI/MainPanel.lua"]:366: in function OnFontChanged' [string "@Interface/AddOns/tdBattlePetScript/UI/MainPanel.lua"]:352: in function <Interface/AddOns/tdBattlePetScript/UI/MainPanel.lua:351> [string "=[C]"]: ? [string "@Interface/AddOns/ElvUI/Libraries/Core/Ace/AceAddon-3.0-13/AceAddon-3.0.lua"]:66: in function <...vUI/Libraries/Core/Ace/AceAddon-3.0/AceAddon-3.0.lua:61> [string "@Interface/AddOns/ElvUI/Libraries/Core/Ace/AceAddon-3.0-13/AceAddon-3.0.lua"]:523: in function
EnableAddon'
[string "@Interface/AddOns/ElvUI/Libraries/Core/Ace/AceAddon-3.0-13/AceAddon-3.0.lua"]:536: in function EnableAddon' [string "@Interface/AddOns/ElvUI/Libraries/Core/Ace/AceAddon-3.0-13/AceAddon-3.0.lua"]:626: in function <...vUI/Libraries/Core/Ace/AceAddon-3.0/AceAddon-3.0.lua:611> [string "=[C]"]: in function
LoadAddOn'
[string "@Interface/FrameXML/UIParent.lua"]:530: in function UIParentLoadAddOn' [string "@Interface/AddOns/Rarity/Core/Collections.lua"]:63: in function
ScanToys'
[string "@Interface/AddOns/Rarity/Core/Collections.lua"]:282: in function ScanExistingItems' [string "@Interface/AddOns/Rarity/Core.lua"]:175: in function
DoEnable'
[string "@Interface/AddOns/Rarity/Core.lua"]:151: in function <Interface/AddOns/Rarity/Core.lua:150>
[string "=[C]"]: ?
[string "@Interface/AddOns/ElvUI/Libraries/Core/Ace/AceAddon-3.0-13/AceAddon-3.0.lua"]:66: in function <...vUI/Libraries/Core/Ace/AceAddon-3.0/AceAddon-3.0.lua:61>
[string "@Interface/AddOns/ElvUI/Libraries/Core/Ace/AceAddon-3.0-13/AceAddon-3.0.lua"]:523: in function `EnableAddon'
[string "@Interface/AddOns/ElvUI/Libraries/Core/Ace/AceAddon-3.0-13/AceAddon-3.0.lua"]:626: in function <...vUI/Libraries/Core/Ace/AceAddon-3.0/AceAddon-3.0.lua:611>
Hi,
Since Dragonflight, I'm not able to open the talent frame window whenever I'm in combat.
An error message appear only in the chat "Interface action failed because of an Addon".
I disabled all my others addons but TdBattleScript when testing.
Thanks for the addon and the updates :)
Limpi'
你好,请问这个插件会更新到9.0前夕吗?谢谢
Can you find out if your mechanical pet has a free death in a condition?
Example
ability(282) [self.hp <= 375 & !self.freedeath.available] # (only self destruct if free death not available)
'Collected' function returns boolean. Should check pet against player collection.
I have seen other addons able to display this information and believe it would be valuable in td for the creation of capture scripts.
It would be nice to see the missing weather effects Lightning Storm (203), Lightning Storm X (2320), and Toxic Gas (2350) added into snippets.lua in a future update.
Is this intended? I can run the script if I manually select it and click "run" every turn, but I'd like to be able to just press my auto key. I'm not using a very complicated team comp and I don't mind losing every now and then due to not paying attention.
This is an issue brought up on the curseforge page I'm just rewriting it here so it's tracked and resolved properly.
A solution discovered by Minstril43 on curseforge involves not creating "ArtFrame2" if ElvUI is active and skinning the pet battle UI.
See workaround here: https://www.curseforge.com/wow/addons/tdbattlepetscript?comment=89
NOTE: the below happens even when I only have Rematch and Tdbattlepetscript running.
After updating to the 10.0 version, this happens and I am unable to do anything in a fight:
2x ...terface/AddOns/tdBattlePetScript/Extension/Round.lua:12: table index is nil
[string "@Interface/AddOns/tdBattlePetScript/Extension/Round.lua"]:12: in function <...terface/AddOns/tdBattlePetScript/Extension/Round.lua:9>
[string "=[C]"]: ?
[string "@Interface/AddOns/Ace3/AceAddon-3.0-13/AceAddon-3.0.lua"]:66: in function <Interface/AddOns/Ace3/AceAddon-3.0/AceAddon-3.0.lua:61>
[string "@Interface/AddOns/Ace3/AceAddon-3.0-13/AceAddon-3.0.lua"]:523: in function EnableAddon' [string "@Interface/AddOns/Ace3/AceAddon-3.0-13/AceAddon-3.0.lua"]:536: in function
EnableAddon'
[string "@Interface/AddOns/Ace3/AceAddon-3.0-13/AceAddon-3.0.lua"]:536: in function EnableAddon' [string "@Interface/AddOns/Ace3/AceAddon-3.0-13/AceAddon-3.0.lua"]:626: in function <Interface/AddOns/Ace3/AceAddon-3.0/AceAddon-3.0.lua:611> [string "=[C]"]: in function
LoadAddOn'
[string "@Interface/AddOns/PetTracker/addons/main/main.lua"]:46: in function ?' [string "@Interface/AddOns/PetTracker/libs/WildAddon-1.0-1/WildAddon-1.0.lua"]:20: in function <...dOns/PetTracker/libs/WildAddon-1.0/WildAddon-1.0.lua:18> [string "@Interface/AddOns/PetTracker/libs/WildAddon-1.0-1/WildAddon-1.0.lua"]:56: in function <...dOns/PetTracker/libs/WildAddon-1.0/WildAddon-1.0.lua:53> [string "=[C]"]: ? [string "@Interface/AddOns/Ace3/CallbackHandler-1.0-7/CallbackHandler-1.0.lua"]:24: in function <...Ons/Ace3/CallbackHandler-1.0/CallbackHandler-1.0.lua:20> [string "@Interface/AddOns/Ace3/CallbackHandler-1.0-7/CallbackHandler-1.0.lua"]:59: in function
Fire'
[string "@Interface/AddOns/Ace3/AceEvent-3.0-4/AceEvent-3.0.lua"]:120: in function <Interface/AddOns/Ace3/AceEvent-3.0/AceEvent-3.0.lua:119>
[string "=[C]"]: in function LoadAddOn' [string "@Interface/FrameXML/UIParent.lua"]:530: in function
UIParentLoadAddOn'
[string "@Interface/FrameXML/UIParent.lua"]:665: in function `TimeManager_LoadUI'
[string "@Interface/FrameXML/UIParent.lua"]:1466: in function <Interface/FrameXML/UIParent.lua:1350>
[string "=[C]"]: ?
'Breed' function to return the breed of the pet. I have seen other addons capable of displaying this information but having it in td is valuable for the creation of capture scripts.
Hello, I have the problem that "aura.duration <= 5" or "aura.duration <5" is ignored as operations.
If I use "aura.duration = 5" it works.
My script as a test at Caregiver Maximillian:
if [enemy (# 1) .active]
ability (Ghostly Bite: 654) [enemy.ability (Mudslide: 572) .duration <5]
endif
ability (117)
Hello, I have the problem that "aura.duration <= 5" or "aura.duration <5" is ignored as operations.
If I use "aura.duration = 5" it works.
My script as a test at Caregiver Maximillian:
if [enemy (# 1) .active]
ability (Ghostly Bite: 654) [enemy.ability (Mudslide: 572) .duration <5]
endif
ability (117)
Operation is simply ignored and Ghostly Bite is used immediately.
Operation is simply ignored and Ghostly Bite is used immediately.
1x tdBattlePetScript\UI\MainPanel.lua:365: attempt to index field 'ScriptBox' (a nil value)
[string "@tdBattlePetScript\UI\MainPanel.lua"]:365: in function OnFontChanged' [string "@tdBattlePetScript\UI\MainPanel.lua"]:351: in function <tdBattlePetScript\UI\MainPanel.lua:350> [string "=[C]"]: ? [string "@ElvUI\Libraries\Ace3\AceAddon-3.0\AceAddon-3.0-13.lua"]:70: in function <...s\ElvUI\Libraries\Ace3\AceAddon-3.0\AceAddon-3.0.lua:65> [string "@ElvUI\Libraries\Ace3\AceAddon-3.0\AceAddon-3.0-13.lua"]:527: in function
EnableAddon'
[string "@ElvUI\Libraries\Ace3\AceAddon-3.0\AceAddon-3.0-13.lua"]:540: in function EnableAddon' [string "@ElvUI\Libraries\Ace3\AceAddon-3.0\AceAddon-3.0-13.lua"]:630: in function <...s\ElvUI\Libraries\Ace3\AceAddon-3.0\AceAddon-3.0.lua:615> [string "=[C]"]: ? [string "=[C]"]: in function
LoadAddOn'
[string "@arkinventory\ArkInventory-30942.lua"]:10232: in function LoadAddOn' [string "@ArkInventory\ArkInventory-30942.lua"]:10247: in function
BlizzardAPIHook'
[string "@arkinventory\ArkInventory-30942.lua"]:2632: in function <ArkInventory\ArkInventory.lua:2602>
...
[string "=[C]"]: ?
[string "@ElvUI_SLE\core\toolkit.lua"]:307: in function InitializeModules' [string "@ElvUI_SLE\core\core.lua"]:85: in function
?'
[string "@ElvUI\Libraries\LibElvUIPlugin-1.0\LibElvUIPlugin-1.0-36.lua"]:303: in function <...\Libraries\LibElvUIPlugin-1.0\LibElvUIPlugin-1.0.lua:299>
[string "=[C]"]: in function Initialize' [string "@ElvUI\init.lua"]:154: in function <ElvUI\init.lua:153> [string "=[C]"]: ? [string "@ElvUI\Libraries\Ace3\AceAddon-3.0\AceAddon-3.0-13.lua"]:70: in function <...s\ElvUI\Libraries\Ace3\AceAddon-3.0\AceAddon-3.0.lua:65> [string "@ElvUI\Libraries\Ace3\AceAddon-3.0\AceAddon-3.0-13.lua"]:527: in function
EnableAddon'
[string "@ElvUI\Libraries\Ace3\AceAddon-3.0\AceAddon-3.0-13.lua"]:630: in function <...s\ElvUI\Libraries\Ace3\AceAddon-3.0\AceAddon-3.0.lua:615>
Allow the script cleaner to change all longform into shortform automatically
ability = use
endif = ei
and so on to eliminate all long form ways of writing and still keep all "old" scripts compatible with the single simplified uniform way of writing scripts
大佬,在下个版本中 能不能添加个快捷函数, 就是判断当前宠物自爆能炸死对面。 这样脚本写起来能方便点
Not sure how feasible, but maybe one would like to have conditions for other states than weather as well, to avoid listing many auras in scripts. Drawback is that this list would be manually assembled and not available via API, thus needs per-patch updates. Relevant would be those with common mechanics most likely, here for 9.0.1.35213. Note that underground/flying abilities of course also have untargetable
.
BattlePetAbilityID | BattlePetStateLuaName |
---|---|
410 | Mechanic_IsBleeding |
491 | Mechanic_IsBleeding |
462 | Mechanic_IsBlind |
257 | Mechanic_IsBlind |
954 | Mechanic_IsBlind |
1014 | Mechanic_IsBlind |
1048 | Mechanic_IsBlind |
385 | Mechanic_IsBomb |
635 | Mechanic_IsBomb |
637 | Mechanic_IsBomb |
1071 | Mechanic_IsBomb |
1081 | Mechanic_IsBomb |
171 | Mechanic_IsBurning |
177 | Mechanic_IsBurning |
500 | Mechanic_IsBurning |
502 | Mechanic_IsBurning |
900 | Mechanic_IsBurning |
1042 | Mechanic_IsBurning |
1889 | Mechanic_IsBurning |
1918 | Mechanic_IsBurning |
546 | Mechanic_IsChilled |
721 | Mechanic_IsChilled |
415 | Mechanic_IsChilled |
785 | Mechanic_IsChilled |
787 | Mechanic_IsChilled |
848 | Mechanic_IsChilled |
205 | Mechanic_IsChilled |
341 | Mechanic_IsFlying |
737 | Mechanic_IsFlying |
322 | Mechanic_IsFlying |
839 | Mechanic_IsFlying |
852 | Mechanic_IsFlying |
2339 | Mechanic_IsFlying |
261 | Mechanic_IsInvisible |
822 | Mechanic_IsInvisible |
565 | Mechanic_IsInvisible |
294 | Mechanic_IsObject |
328 | Mechanic_IsObject |
329 | Mechanic_IsObject |
671 | Mechanic_IsObject |
711 | Mechanic_IsObject |
326 | Mechanic_IsObject |
480 | Mechanic_IsObject |
464 | Mechanic_IsObject |
434 | Mechanic_IsObject |
438 | Mechanic_IsObject |
443 | Mechanic_IsObject |
333 | Mechanic_IsObject |
747 | Mechanic_IsObject |
720 | Mechanic_IsObject |
810 | Mechanic_IsObject |
189 | Mechanic_IsObject |
819 | Mechanic_IsObject |
175 | Mechanic_IsObject |
635 | Mechanic_IsObject |
385 | Mechanic_IsObject |
332 | Mechanic_IsObject |
827 | Mechanic_IsObject |
1001 | Mechanic_IsObject |
1058 | Mechanic_IsObject |
1081 | Mechanic_IsObject |
1355 | Mechanic_IsObject |
2088 | Mechanic_IsObject |
2103 | Mechanic_IsObject |
2299 | Mechanic_IsObject |
151 | Mechanic_IsPoisoned |
271 | Mechanic_IsPoisoned |
358 | Mechanic_IsPoisoned |
379 | Mechanic_IsPoisoned |
397 | Mechanic_IsPoisoned |
633 | Mechanic_IsPoisoned |
368 | Mechanic_IsPoisoned |
664 | Mechanic_IsPoisoned |
781 | Mechanic_IsPoisoned |
1048 | Mechanic_IsPoisoned |
1961 | Mechanic_IsPoisoned |
2290 | Mechanic_IsPoisoned |
2350 | Mechanic_IsPoisoned |
734 | Mechanic_IsStunned |
174 | Mechanic_IsStunned |
927 | Mechanic_IsStunned |
1030 | Mechanic_IsStunned |
498 | Mechanic_IsStunned |
1348 | Mechanic_IsStunned |
1593 | Mechanic_IsStunned |
1671 | Mechanic_IsStunned |
2061 | Mechanic_IsStunned |
2211 | Mechanic_IsStunned |
331 | Mechanic_IsUnderground |
829 | Mechanic_IsUnderground |
830 | Mechanic_IsUnderground |
340 | Mechanic_IsUnderground |
565 | Mechanic_IsUnderground |
326 | Mechanic_IsWall |
480 | Mechanic_IsWall |
464 | Mechanic_IsWall |
434 | Mechanic_IsWall |
443 | Mechanic_IsWall |
381 | Mechanic_IsWebbed |
338 | Mechanic_IsWebbed |
924 | resilient |
284 | unkillable |
242 | unkillable |
725 | unkillable |
341 | untargettable |
737 | untargettable |
331 | untargettable |
261 | untargettable |
829 | untargettable |
830 | untargettable |
565 | untargettable |
340 | untargettable |
839 | untargettable |
852 | untargettable |
1358 | untargettable |
2339 | untargettable |
List is made by SELECT BattlePetAbilityID, LuaName AS BattlePetStateLuaName FROM BattlePetAbilityState, BattlePetState WHERE BattlePetAbilityState.BattlePetStateID = BattlePetState.ID AND (BattlePetState.LuaName LIKE "Mechanic_%" OR …)
(-equivalent in LibreOffice).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.