PDA

View Full Version : Listing class spells with NPC and plugin


N0ctrnl
06-09-2021, 12:00 PM
I'm working on a plugin to read spells from a table (by class) and report data in a table. Basically I've taken Akkadius' Leaderboards plugin and hacked it up to accomplish this.


sub ShowSpellList {
my $class = $_[0];
$connect = plugin::LoadMysql();

$query = "SELECT
`Name`,
`class`,
`level`,
`expansion`,
`spell_id`
FROM
`va_spells`
WHERE class = ? ORDER BY level";
$query_handle = $connect->prepare($query);

$query_handle->execute($class);
quest::debug("$DBI::errstr") if $DBI::errstr;
my $Result = "";
while (@row = $query_handle->fetchrow_array()){
my ($spell_name, $spell_class, $spell_level, $spell_expansion, $spell_id) = $query_handle->fetchrow();
$count++;
quest::debug("Name: $spell_name");
quest::debug("Class $spell_class");
quest::debug("Level $spell_level");
quest::debug("Expansion $spell_expansion");
quest::debug("ID $spell_id");

$Result .= "
<tr>
<td><c \"#FFFF66\">$count~</td>
<td><c \"#FFFF66\">" . $spell_name . "~</td>
<td><c \"#DF7401\">" . $spell_class . "~ </td>
<td><c \"#00FF00\">" . $spell_level . "~ </td>
<td><c \"#FF0000\">" . $spell_expansion . "~ </td>
<td><c \"#3366FF\">" . $spell_id . "~ </td>
</tr>";
}

$count = 0;
plugin::DiaWind(
"{linebreak}
<br>
Spells ~
<br>
{linebreak}
<br>
<table>
<tr>
<th></th>
<th>Name</th>
<th>Class</th>
<th>Level</th>
<th>Expansion</th>
<th>Spell ID</th>
</tr>
" . $Result . "
</table>
noquotes
");
}


The query works, and the debug messages report things correctly. Just doesn't pop up a window with a table in it.

https://bladesofwrath.org/skax/query-debug.png

I don't see anything obvious, but it probably is :)

Splose
06-09-2021, 02:57 PM
I'm working on a plugin to read spells from a table (by class) and report data in a table. Basically I've taken Akkadius' Leaderboards plugin and hacked it up to accomplish this.


sub ShowSpellList {
my $class = $_[0];
$connect = plugin::LoadMysql();

$query = "SELECT
`Name`,
`class`,
`level`,
`expansion`,
`spell_id`
FROM
`va_spells`
WHERE class = ? ORDER BY level";
$query_handle = $connect->prepare($query);

$query_handle->execute($class);
quest::debug("$DBI::errstr") if $DBI::errstr;
my $Result = "";
while (@row = $query_handle->fetchrow_array()){
my ($spell_name, $spell_class, $spell_level, $spell_expansion, $spell_id) = $query_handle->fetchrow();
$count++;
quest::debug("Name: $spell_name");
quest::debug("Class $spell_class");
quest::debug("Level $spell_level");
quest::debug("Expansion $spell_expansion");
quest::debug("ID $spell_id");

$Result .= "
<tr>
<td><c \"#FFFF66\">$count~</td>
<td><c \"#FFFF66\">" . $spell_name . "~</td>
<td><c \"#DF7401\">" . $spell_class . "~ </td>
<td><c \"#00FF00\">" . $spell_level . "~ </td>
<td><c \"#FF0000\">" . $spell_expansion . "~ </td>
<td><c \"#3366FF\">" . $spell_id . "~ </td>
</tr>";
}

$count = 0;
plugin::DiaWind(
"{linebreak}
<br>
Spells ~
<br>
{linebreak}
<br>
<table>
<tr>
<th></th>
<th>Name</th>
<th>Class</th>
<th>Level</th>
<th>Expansion</th>
<th>Spell ID</th>
</tr>
" . $Result . "
</table>
noquotes
");
}


The query works, and the debug messages report things correctly. Just doesn't pop up a window with a table in it.

https://bladesofwrath.org/skax/query-debug.png

I don't see anything obvious, but it probably is :)

I'm gonna guess its the colors.. using <c> and then ~ at the end? Honestly no clue.

I would decouple this from DiaWind and just have it use it's own dedicated popup window. I am moving today and tomorrow but once I get settled I don't mind taking a look I used DiaWind for years lol.

Edit:

I almost forgot there are a few functions in that may be useful I know fo at least getspelllevel that I added and getspellname that kingly added may not need to use dbi idk.

N0ctrnl
06-09-2021, 03:01 PM
I had that thought too, but the Leaderboards plugin uses it the same way.

https://github.com/N0ctrnl/VAPlugins/blob/master/Leaderboards.pl

And yeah, popup might be the way to go. Just a little frustrating. I just can't find it...

N0ctrnl
06-09-2021, 03:34 PM
Got it. Was just returning too many results. Looks like 10 is the max(?)

https://bladesofwrath.org/skax/spell-table.png

Splose
06-09-2021, 08:24 PM
Got it. Was just returning too many results. Looks like 10 is the max(?)

https://bladesofwrath.org/skax/spell-table.png

Nice.. It looks great using the table.