• You've discovered RedGuides, an EverQuest multi-boxing and scripting community 🧙‍♀️⚙️. We want you to play several EQ characters at once, come join us and say hello! 👋

  • A TLP without truebox has thawed (Very Vanilla ready)
    Frostreaver

Bug - Ninjadvloot.inc will boot your characters while looting

Joined
Nov 11, 2012
RedCents
1,397¢
Noticed an interesting little bug with Ninjadvloot.inc, not sure if anyone else has ever encountered this. So, if someone tries to boot your toon while you are looting it will hit the "yes" option and this is probably due to this part of the looting routine right here:


[CODE lang="ini" title="Loot"] /if (${Select[${IniEntry},Keep,Destroy,Sell]}) {
/if (${Debugloot}||${SpamLootInfo}) /echo NINJADVLOOT: PList: Looting Item# ${k}, ${ITPName}=${IniEntry}
/delay 3s !${AdvLoot.LootInProgress}
/advloot personal ${k} loot
/delay 3s !${AdvLoot.LootInProgress}
/delay ${Math.Calc[${LootLagDelay}+5]}
/if (${Window[ConfirmationDialogBox].Open}) {
----------> /nomodkey /notify ConfirmationDialogBox Yes_Button leftmouseup <-------------
/delay ${Math.Calc[${LootLagDelay}+10] }
}
/if (${Select[${IniEntry},Destroy]}) {
/if (${LootLagDelay}) /delay ${LootLagDelay}
/call HandleItem "${ITPName}" Destroy "${ITStackSize}"
}
}[/CODE]

Specifically the part I am pointing to , it seems that it presses yes on the ConfirmationDialogBox if it is open during looting. This is more than likely for looting no drop items as it will open a confirmation box but as an unfortunate side effect it will also say yes to ANY confirmation box, including the one to kick.

My solution was to put a statement right before the looting statement that hits no right before it loots the item:

[CODE lang="ini" title="New Loot"] /if (${Select[${IniEntry},Keep,Destroy,Sell]}) {
/if (${Window[ConfirmationDialogBox].Open}) {
/nomodkey /notify ConfirmationDialogBox No_Button leftmouseup
}
/if (${Debugloot}||${SpamLootInfo}) /echo NINJADVLOOT: PList: Looting Item# ${k}, ${ITPName}=${IniEntry}
/delay 3s !${AdvLoot.LootInProgress}
/advloot personal ${k} loot
/delay 3s !${AdvLoot.LootInProgress}
/delay ${Math.Calc[${LootLagDelay}+5]}
/if (${Window[ConfirmationDialogBox].Open}) {
/nomodkey /notify ConfirmationDialogBox Yes_Button leftmouseup
/delay ${Math.Calc[${LootLagDelay}+10]}
}
/if (${Select[${IniEntry},Destroy]}) {
/if (${LootLagDelay}) /delay ${LootLagDelay}
/call HandleItem "${ITPName}" Destroy "${ITStackSize}"
}
}[/CODE]

But I still feel like this could be exploited if someone just tried to spam kick you and got the timing just right. Any ideas on how you could possibly fix this to eliminate the problem entirely? Going to be toying with it myself, but open to any ideas.


Edit:
You could probably check the child of the ConfirmationDialogBox CD_TextOutput for the specific text regarding looting and throw an if in there that hits yes or no determinant on that, may try that out.
 
Last edited:
Fixed it:


[CODE lang="ini" title="Fixed Loot"] /if (${Select[${IniEntry},Keep,Destroy,Sell]}) {
/if (${Debugloot}||${SpamLootInfo}) /echo NINJADVLOOT: PList: Looting Item# ${k}, ${ITPName}=${IniEntry}
/delay 3s !${AdvLoot.LootInProgress}
/advloot personal ${k} loot
/delay 3s !${AdvLoot.LootInProgress}
/delay ${Math.Calc[${LootLagDelay}+5]}
/if (${Window[ConfirmationDialogBox].Open} && ${Window[ConfirmationDialogBox].Child[CD_TextOutput].Text.Equal[${ITPName} is a NO TRADE ITEM, are you sure you wish to loot it?]}) {
/nomodkey /notify ConfirmationDialogBox Yes_Button leftmouseup
/delay ${Math.Calc[${LootLagDelay}+10]}
} else {
/nomodkey /notify ConfirmationDialogBox No_Button leftmouseup
}
/if (${Select[${IniEntry},Destroy]}) {
/if (${LootLagDelay}) /delay ${LootLagDelay}
/call HandleItem "${ITPName}" Destroy "${ITStackSize}"
}
}[/CODE]

Essentially threw a condition in the if statement for checking the text of the ConfirmationDialogBox and, if it doesn't equal the no trade text as well as being open, it hits the no button instead.

Also I have a old post located here: https://www.redguides.com/community/threads/characters-getting-kicked.71733/

And I believe this is what was happening to me during that time, I just didn't put two and two together but didn't want to necro that thread.
 
Last edited:
Bug - Ninjadvloot.inc will boot your characters while looting

Users who are viewing this thread

Back
Top
Cart