EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Quests::Plugins & Mods (https://www.eqemulator.org/forums/forumdisplay.php?f=678)
-   -   Akka's Diablo Loot Generator Script (https://www.eqemulator.org/forums/showthread.php?t=38291)

ionhsmith 09-29-2014 08:29 PM

Yea i did that already I got the errors i posted above ... sorry thought i posted that...

Akkadius 09-29-2014 08:35 PM

Did you copy and paste the script out of the Wiki or did you go to the Pastebin?

You need to copy it from the Pastebin because there are some characters that mess up the parsing of the script in the Wiki.

ionhsmith 09-30-2014 07:57 PM

I got it from the wiki... what is or where is the pastebin?

Akkadius 09-30-2014 08:11 PM

Quote:

Originally Posted by ionhsmith (Post 234381)
I got it from the wiki... what is or where is the pastebin?

Nevermind this one doesn't have a pastebin option.

Make sure you run the script command line in the server directory, as in 'cd' to the directory and then run the script inside the directory.

ionhsmith 09-30-2014 08:24 PM

I did that .... this is what i did ... cd C:\EQ\EQEMUServer then it went to

C:\EQ\EQEMUServer> perl Diabloloot all

and i got all those errrors.... am i suppose to put my database pw in or something like that ?


and this step :•You will need this START and END code placed in your EVENT_SPAWN routing in your global_npc.pl, so that when your NPC spawns, the loot table can be added .... i cannot find a global_npc.pl in my server folder anywhere

Mortow 09-30-2014 10:47 PM

The global_npc.pl file is located in c:\EQ\EQEmuServer\Quests\global directory. Edit it with Notepad++ or whatever text editor you prefer.

This is a copy of what is in mine. I hope this helps.

Code:

sub EVENT_SPAWN
 {
        if($npc->GetEntityVariable("Scaled") != 1)
        { ### If not flagged as scaled, then scale the NPC
                quest::signalwith(50, 21, 0);
                quest::signalwith(50, $npc->GetNPCTypeID(), 0);
        }
       
            #::: START: Akka's Diablo Loot Handler :::#
            $NTYPE = 0; #::: TRASH
            if(substr($npc->GetName(), 0, 1) eq "#" && substr($npc->GetName(), 1, 2) ne "#"){  $NTYPE = 1; } #::: NAMED
            if(substr($npc->GetName(), 0, 2) eq "##" && substr($npc->GetName(), 2, 3) ne "#"){ $NTYPE = 2; } #::: RAID
            $LID = (200000 + ($NTYPE * 1000) + $npc->GetLevel());
            if($npc->GetLoottableID() != $LID)
          {
          $npc->ModifyNPCStat("loottable_id", (210000 + ($NTYPE * 1000) + $npc->GetLevel())); $npc->AddLootTable();
          $npc->ModifyNPCStat("loottable_id", (200000 + ($NTYPE * 1000) + $npc->GetLevel())); $npc->AddLootTable(); 
          }
          #::: END: Akka's Diablo Loot Handler :::#
}


ionhsmith 10-01-2014 12:45 PM

yea its not in mine ... only thing i have in there is global_player.pl

Mortow 10-01-2014 03:28 PM

If you are using Notepad++ just click on New and copy and paste the code I posted above into it, then do a Save as, as global_npc.pl

Make sure you change the Save as type line under where you type in the file name to All types (*.*) and save it to the global folder.

That will create the file.

ionhsmith 10-04-2014 01:10 AM

OK i got that file now but I still get the same errors ... execute failled no database selected at DiabloLoot.pl

Mortow 10-04-2014 02:39 PM

I had issues with it parsing the info from my config file. I know this is because I have something wrong somewhere but I was able to get it to function by just commenting out the parser section like this:

Code:

    # CONFIG VARIABLES - Parsed from eqemu_config.xml
    #my $confile = "eqemu_config.xml"; #default
    #open(F, "<$confile") or die "Unable to open config: $confile\n";
    #my $indb = 0;
    #while(<f>) {
    #    s/\r//g;
    #    if(/<database>/i) { $indb = 1; }
    #    next unless($indb == 1);
    #    if(/<\/database>/i) { $indb = 0; last; }
    #    if(/<host>(.*)<\/host>/i) { $host = $1; }
    #    elsif(/<username>(.*)<\/username>/i) { $user = $1; }
    #    elsif(/<password>(.*)<\/password>/i) { $pass = $1; }
    #    elsif(/<db>(.*)<\/db>/i) { $db = $1; }
    #}

Adding the # before a line comments it out.

Then I manually added my db username and password to lines 35 & 36, like this:

Code:

    if(!$connect){ $connect = DBI->connect($dsn, USERNAME, PASSWORD); }
    if(!$connect2){ $connect2 = DBI->connect($dsn, USERNAME, PASSWORD); }

Once that was done it worked for me.

Akkadius 10-05-2014 06:25 PM

I checked into these connection issues as they are long overdue.

There was an issue with the config parsing section which I've used hundreds of times but somehow some characters got messed up in the Wiki source editor.

Here is the script, download it in raw here:

http://wiki.eqemulator.org/i?Module=...Paste=o5AoEbke

And, I've updated the Diablo Loot Generator documentation which you will need to read because it relies on the tables and information in the page.

http://wiki.eqemulator.org/p?Diablo_...nerator_Script

Enjoy

ionhsmith 10-05-2014 07:08 PM

Working now

ionhsmith 10-05-2014 07:23 PM

OK my question is do i need to run it everytime i turn the server on?

Akkadius 10-05-2014 07:26 PM

Quote:

Originally Posted by ionhsmith (Post 234499)
OK my question is do i need to run it everytime i turn the server on?

You run it everytime you want to regenerate loot based on what you have in the items table.

It creates thousands of loot tables based on the cust_npc_loot_scale definition table, that should have all been mentioned on the page.

ionhsmith 10-05-2014 07:32 PM

I did read that but wasnt sure what it ment exactly ... it creating thousands of loot tables means the mobs will have random loot on them now where as in my server most of them didnt drop anything? If so that is awesome


All times are GMT -4. The time now is 05:04 AM.

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