EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Quests::Q&A (https://www.eqemulator.org/forums/forumdisplay.php?f=599)
-   -   Multiple item checker and nuker on EVENT_TARGET_CHANGE. Need help. (https://www.eqemulator.org/forums/showthread.php?t=35314)

Secrets 05-07-2012 06:13 AM

Quote:

Originally Posted by Drakiyth (Post 209583)
I apologize if I came off rude. I'm just extremely stressed out right now with trying to fix this stuff up. I decided to make the first tier and higher path charms epic lore so now people can't have two of them in their inventory at once, however bots are bringing in a problem with being able to stash these charms. Trevius, Secrets, Lerxst, Joligaro, Oslander, thank you for your help.

Would you good folks know how to do away with unwanted items on bots by any chance?

No, there's no easy fix for permanently preventing items for bots atm, but I don't see why it couldn't be implemented.

nosfentora 05-07-2012 10:17 AM

Quote:

Would you good folks know how to do away with unwanted items on bots by any chance?
Off the top of my head I would expand on your current script.

Create a list of item id's you DON'T want bots to have. That way you don't need to add any more code, you just need to add the item id to the list.

Check against that list when trading with the bot, and either poof the item or hand it back to the character.

I haven't looked at what events are available for bots, but at trading time would probably be the best, or you could do at bot despawn if that event is available.

The 2nd method wouldn't prevent some form of abuse while the bot is alive though.

You could expand it further by setting a qglobal on the character that if they do it once, they get the item back and a warning. if they do it again the item poofs. do it a third time they get sent to the POJ trials alone or some interesting place.

I haven't touched quests in a long time so i'm not sure what events are available for bots.

Drakiyth 05-07-2012 04:14 PM

That's actually a really good idea. Just need to find a way to remove items with a script from bots in general. Do you have any ideas on that, Nosfentora? Aside from hacking...

nosfentora 05-07-2012 04:59 PM

Off the top of my head not really. You could run an sql query something like

Code:

DELETE FROM botinventory WHERE ItemID IN (itemid1,itemid2,itemid3)
that would delete all items that are in that list from bot inventory.

you could get real complicated and have a scheduled task run on the os every X hours and run that script, or run it by hand whenever you want.

as far as a perl script, you could do something like this pseudo code suggests

Code:

var banned_item_id_list = {1000,10002,10003}

EVENT bot_spawn

for each item in bot_inventory
  if banned_item_id_list contains item.itemid
    delete item
  end if
next

end event


chrsschb 05-07-2012 10:09 PM

I assume these class / sub-class charms are pretty powerful. So powerful in fact that a player would never want to get rid of it. So if the charm is used in the quest to upgrade it, I'm assuming that the quest is repeatable? If the quest is repeatable make it NOT repeatable and you've solved your problem. I know if > I < only had ONE badass charm, and couldn't get another, I damn sure wouldn't waste it on a bot.

Cilraaz 05-08-2012 10:39 AM

Quote:

Originally Posted by chrsschb (Post 209610)
I assume these class / sub-class charms are pretty powerful. So powerful in fact that a player would never want to get rid of it. So if the charm is used in the quest to upgrade it, I'm assuming that the quest is repeatable? If the quest is repeatable make it NOT repeatable and you've solved your problem. I know if > I < only had ONE badass charm, and couldn't get another, I damn sure wouldn't waste it on a bot.

I think it's more a matter of dropping the starter charm on a bot, obtaining a second one, questing the second one to the best it can be, taking the first one back from the bot, and questing it up to be next to the best it can be. That assumes that it's somehow possible to get the starter item again, but I think it's the problem that's happening.

Drakiyth, if you're interested in finding out who is cheating (now that you've outlined that storing a charm on a bot is a no-no), you could use something like:

Code:

SELECT * FROM account WHERE id=(
SELECT account_id FROM character_ WHERE id=(
SELECT BotOwnerCharacterID FROM bots WHERE BotID=(
SELECT BotID FROM botinventory WHERE ItemID IN('00001','00002'))));

Obviously substitute item numbers 00001 and 00002 for whatever items you're checking for. That should return the account rows for any account where any character owns any bot holding any disallowed item.


All times are GMT -4. The time now is 07:23 PM.

Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.