References in perl get kind of tricky, and when you ask for a nested list object, you're getting a reference.
Try something like this:
(My examples are just command line demos so I can test outside of emu)
Code:
#!/usr/bin/perl
my @CategoryNames = (Armor, Augments, Weapons, Offslots, Misc);
%Weapons = (
"alpha" => [50524,50525,50526,50527,50527,50529,50530,50531,50532,50533,50534,50535],
"beta" => [50524,50525,50526,50527,50527,50529,50530,50531,50532,50533,50534,50535],
"gamma" => [50524,50525,50526,50527,50527,50529,50530,50531,50532,50533,50534,50535],
"delta" => [50524,50525,50526,50527,50527,50529,50530,50531,50532,50533,50534,50535],
);
my %LevelList = (
65 => "delta",
50 => "gamma",
30 => "beta",
0 => "alpha",
);
#my $ItemType = $CategoryNames [rand @CategoryNames];
my $ItemType = $CategoryNames [2];
my $LevelCategory = "delta";
my $ItemHash = \%$ItemType;
my $Item = ${$ItemHash}{$LevelCategory} [rand @{ ${$ItemHash}{$LevelCategory} }];
print "$Item\n";
Or you could do this:
Code:
#!/usr/bin/perl
my @CategoryNames = (Armor, Augments, Weapons, Offslots, Misc);
my %Categories = (
"Armor" => {
"alpha" => [50524,50525,50526,50527,50527,50529,50530,50531,50532,50533,50534,50535],
"beta" => [50524,50525,50526,50527,50527,50529,50530,50531,50532,50533,50534,50535],
"gamma" => [50524,50525,50526,50527,50527,50529,50530,50531,50532,50533,50534,50535],
"delta" => [50524,50525,50526,50527,50527,50529,50530,50531,50532,50533,50534,50535],
},
"Augments" => {
"alpha" => [50524,50525,50526,50527,50527,50529,50530,50531,50532,50533,50534,50535],
"beta" => [50524,50525,50526,50527,50527,50529,50530,50531,50532,50533,50534,50535],
"gamma" => [50524,50525,50526,50527,50527,50529,50530,50531,50532,50533,50534,50535],
"delta" => [50524,50525,50526,50527,50527,50529,50530,50531,50532,50533,50534,50535],
},
"Weapons" => {
"alpha" => [50524,50525,50526,50527,50527,50529,50530,50531,50532,50533,50534,50535],
"beta" => [50524,50525,50526,50527,50527,50529,50530,50531,50532,50533,50534,50535],
"gamma" => [50524,50525,50526,50527,50527,50529,50530,50531,50532,50533,50534,50535],
"delta" => [50524,50525,50526,50527,50527,50529,50530,50531,50532,50533,50534,50535],
},
"Offslots" => {
"alpha" => [50524,50525,50526,50527,50527,50529,50530,50531,50532,50533,50534,50535],
"beta" => [50524,50525,50526,50527,50527,50529,50530,50531,50532,50533,50534,50535],
"gamma" => [50524,50525,50526,50527,50527,50529,50530,50531,50532,50533,50534,50535],
"delta" => [50524,50525,50526,50527,50527,50529,50530,50531,50532,50533,50534,50535],
},
"Misc" => {
"alpha" => [50524,50525,50526,50527,50527,50529,50530,50531,50532,50533,50534,50535],
"beta" => [50524,50525,50526,50527,50527,50529,50530,50531,50532,50533,50534,50535],
"gamma" => [50524,50525,50526,50527,50527,50529,50530,50531,50532,50533,50534,50535],
"delta" => [50524,50525,50526,50527,50527,50529,50530,50531,50532,50533,50534,50535],
}
);
my %LevelList = (
65 => "delta",
50 => "gamma",
30 => "beta",
0 => "alpha",
);
my $LevelCategory = "delta";
my $ItemPool = $Categories{$CategoryNames[rand @CategoryNames]}{$LevelCategory};
my $Item = ${$ItemPool} [rand @{$ItemPool}];
print "$Item\n";
Note ${$reference} or @{$reference} syntax.
|