EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Development::Database/World Building (https://www.eqemulator.org/forums/forumdisplay.php?f=596)
-   -   SQL Query/update to add item to all NPC's 35 and higher (https://www.eqemulator.org/forums/showthread.php?t=40960)

Toony 10-10-2016 12:08 AM

SQL Query/update to add item to all NPC's 35 and higher
 
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
Code:

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;

Code:

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...

Code:

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


Code:

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.


All times are GMT -4. The time now is 12:42 AM.

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