Log in

View Full Version : SQL Query/update to add item to all NPC's 35 and higher


Toony
10-10-2016, 12:08 AM
Could really use some help with this query, I'm trying to figure out a way to add a specific item id with a 1% drop rate to all npcs level 35 and over.


I've got this so far
select * from npc_types where `level` > 34

but I'm not sure how to finish it.

Help me eqemu community, you're my only hope.

Darkscis
10-10-2016, 12:31 AM
Would be 100 times easier to script this than do it in the database. In the database you would have to create a loot drop, then add it to every NPC's loot table and/or create a loot table if they don't already have one - or if they share one with NPC's that are under level 35.

If scripting it, you can just add it to global_npc.pl and do something like;


sub EVENT_DEATH {
if ($mlevel >= 35) { $npc->AddItem(itemid, quantity); }}


EDIT: Forgot your 1% requirement. Just add a random roll statement before the additem.

kimura
10-10-2016, 12:32 AM
This should work if you put it in the global_npc.pl file. the 12345 is whatever itemID (Untested of course)...

this also will not allow pets to get the item...


sub EVENT_SPAWN{

if ($mlevel >= 35)
{
return unless $npc->GetLoottableID();
if (int(rand(100) + 1) >= 99) {
{
$npc->AddItem(12345,1,0);

}
}
}
}

Toony
10-10-2016, 11:22 AM
Thanks, new to the idea of scripting drops but yeah, that seems a lot easier.

Toony
10-10-2016, 06:46 PM
Ok, I have the following in C:\eqemu_server\quests\templates\global_npc.pl


sub EVENT_SPAWN{

if ($mlevel >= 35)
{
return unless $npc->GetLoottableID();
if (int(rand(100) + 1) >= 99) {
{
$npc->AddItem(11703,1,0);

}
}
}
}

And for testing purposes I've changed "1) >= 99)" to "50) >= 99)"

But I can't seem to get my item to drop even after several tests, what am I missing?

kimura
10-10-2016, 06:53 PM
It's in the wrong folder, it needs to be in global folder

Toony
10-10-2016, 07:10 PM
Woot, worked, thanks much.