EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Development::Tools (https://www.eqemulator.org/forums/forumdisplay.php?f=593)
-   -   PEQ Database Editor 1.0 (for servers 0.6.4 and up) (https://www.eqemulator.org/forums/showthread.php?t=20073)

wolfwalkereci 08-01-2013 03:26 PM

I enjoy tinkering with the tools the eqemu community uses and produces.
The peq editor has been a favorite of mine for some time since I sometimes forget to double check sql syntax and then I end up borking entire tables.
Just ask Natedog he was on vent with me the other day when I had to drop altadv_vars because I changed in range using <= and <= ... silly me.
GUI interfaces help reduce the mistakes I make :)

I would have posted this on the PEQ boards but for some reason I just never made a forum account there, no idea why because I monitor the forums for all gold/green and high pop white server looking for reasons to tinker with things.

I can't think of anything else the editor could use that would not step on other tools that are already well made or bloat it in size but I'll continue poking it with a spork and post .patch files for stuff to be considered.

wolfwalkereci 08-02-2013 05:43 AM

Figured I would attempt to break guilds tab.
Had to tweak it a little to fit the new button and I think its kind of ugly but not sure if its really something useful so making it pretty can come later.
http://img580.imageshack.us/img580/1390/l3jx.png
Grabs the next ID for you, just need to input the guild name and the name of the character that is to be the leader.
Not sure if guild names can contain characters that require escaping for sql so did not attempt to check for that in the query. So "Dan's party guild" would probably fail to insert.

Code:

Index: css/peq.css
===================================================================
--- css/peq.css    (revision 376)
+++ css/peq.css    (working copy)
@@ -242,4 +242,10 @@
 
 .indented {
  margin: 5px 0px 0px 10px;
+}
+
+.newgid {
+  color: darkred;
+  font-size: 12px;
+  font-weight: bold;
 }
\ No newline at end of file
Index: lib/guild.php
===================================================================
--- lib/guild.php    (revision 376)
+++ lib/guild.php    (working copy)
@@ -70,6 +70,16 @@
    delete_guild();
    header("Location: index.php?editor=guild");
    exit;
+  case 6: // Add new guild template
+    check_admin_authorization();
+    $body = new Template("templates/guild/guild.addnew.tmpl.php");
+    $body->set('new_guild_id', getNextGuildID());
+  break;
+  case 7: // Add new guild submission
+    check_admin_authorization();
+    add_new_guild();
+    header("Location: index.php?editor=guild");
+    exit;
 }
 
 function guild_info () {
@@ -116,4 +126,26 @@
  global $mysql, $playerid;
  //Delete guild info here
 }
+
+function getNextGuildID () {
+global $mysql;
+$query = "SELECT MAX(id) as id FROM guilds";
+$result = $mysql->query_assoc($query);
+return ($result['id'] + 1);
+}
+
+function add_new_guild () {
+  global $mysql;
+  $guild_name = $_POST['guild_name'];
+  $new_guild_id = $_POST['new_guild_id'];
+  $leader_name = $_POST['leader_name'];
+  $query = "SELECT id FROM character_ AS id WHERE name=\"$leader_name\"";
+  $result = $mysql->query_assoc($query);
+  $char_id = $result['id'];
+  $query = "INSERT INTO guilds SET id=$new_guild_id, name=\"$guild_name\", leader=$char_id";
+  $mysql->query_no_result($query);
+  $query = "INSERT INTO guild_members SET char_id=$char_id, guild_id=$new_guild_id, rank=1";
+  $mysql->query_no_result($query);
+}
+
 ?>
\ No newline at end of file
Index: templates/guild/guild.addnew.tmpl.php
===================================================================
--- templates/guild/guild.addnew.tmpl.php    (revision 0)
+++ templates/guild/guild.addnew.tmpl.php    (working copy)
@@ -0,0 +1,27 @@
+<div style="width: 275px; margin: auto;">
+  <div style="border: 1px solid black;">
+    <div class="edit_form_header">Create a new guild</div>
+      <div class="edit_form_content">
+        <form name="guild" method="post" action="index.php?editor=guild&action=7">
+
+<table width="100%">
+  <tr>
+    <td><strong>Guild Name:</strong></td>
+    <td><strong>Leader Name:</strong></td>
+    <td><strong>New Guild ID:</strong></td>
+  </tr>
+  <tr>
+    <td><input size="8" type="text" name="guild_name" value="<?=$guild_name?>"></td>
+    <td><input size="8" type="text" name="leader_name" value="<?=$leader_name?>"></td>
+    <td align="center" class="newgid"><input type="hidden" name="new_guild_id" value="<?=$new_guild_id?>"><?=$new_guild_id?></td>
+  </tr>
+</table>
+<br>
+<center>
+  <input type="submit" value="Submit">&nbsp;<input type="button" value="Cancel" onclick="history.back()">
+</center>

+        </form>
+      </div>
+  </div>
+</div>
\ No newline at end of file
Index: templates/searchbar/searchbar.guild.tmpl.php
===================================================================
--- templates/searchbar/searchbar.guild.tmpl.php    (revision 376)
+++ templates/searchbar/searchbar.guild.tmpl.php    (working copy)
@@ -1,5 +1,11 @@
      <div id="searchbar">
        <table width="100%">
+          <tr>
+            <th align="center">Select by menu</th>
+            <th align="center">Select by guild id or name</th>
+            <th align="center">Select by char id or name</th>
+            <th align="center">Add new</th>
+          </tr>
          <tr>
            <td>
              <strong>1.</strong>
@@ -21,7 +27,7 @@
 ?>
              </select>
            </td>
-            <td> or <strong>&nbsp;2.</strong>
+            <td><strong>&nbsp;2.</strong>
              <form action="index.php" method="GET">
                <input type="hidden" name="editor" value="guild">
                <input type="hidden" name="action" value="2">
@@ -29,7 +35,7 @@
                <input type="submit" value=" GO ">
              </form>
            </td>
-            <td> or <strong>&nbsp;3.</strong>
+            <td><strong>&nbsp;3.</strong>
              <form action="index.php" method="GET">
                <input type="hidden" name="editor" value="guild">
                <input type="hidden" name="action" value="3">
@@ -37,6 +43,13 @@
                <input type="submit" value=" GO ">
              </form>
            </td>
+            <td><strong>&nbsp;4.</strong>
+              <form action="index.php" method="GET">
+                <input type="hidden" name="editor" value="guild">
+                <input type="hidden" name="action" value="6">
+                <input type="submit" value=" Create ">
+              </form>
+            </td>
          </tr>
        </table>
      </div>


volkmeer 08-27-2013 10:12 AM

Issues inside editor
 
I have the editor running and connecting to my database. I can actually make changes. But I get tons of errors on the opening page and when creating new items. (This is so far that I am aware of)

I am using the latest install of XAMPP 1.8.2.1

The first is:
Notice: Use of undefined constant c71 - assumed 'c71' in C:\xampp\htdocs\peq\lib\data.php on line 2601

*This error above is actually the last in 100 plus errors that are before the actual interface. I began manually formatting all entries in data.php that have a letter before the number with single quotes ('c71'). This seemed to fix this issue. But I am not sure what impact this has.

The second is:
Notice: Undefined variable:

*This occurs when creating a new item. Almost all selectable boxes begin with this error.

I also noticed when I create NPCs that very few are available and pull up only the human model even when say Bristlebane is selected.

I am not a programer, but I enjoy EQ and my step son and I love playing on our own home server. I am attempting to make it more fun for him by slightly customizing our server.

Volkmeer

wolfwalkereci 08-27-2013 12:22 PM

Quote:

Originally Posted by volkmeer (Post 223758)
Notice: Use of undefined constant c71 - assumed 'c71' in C:\xampp\htdocs\peq\lib\data.php on line 2601

\lib\data.php only has 1806 lines so I am not sure how you have a reported error on 2601

Not sure off the top of my head why you are seeing the error. I'll check this again later today when I have more time, though probably a more knowledgeable person will have responded by then, or at least I hope so.

volkmeer 08-27-2013 12:55 PM

Thanks for reply. I really want to get this working. My data.php from the current download has 2606 lines total.

By adding the single quotes i have fixed a number of issues.

But I get undefined variables in the interface:

Notice: Undefined variable: table_string in C:\xampp\htdocs\peq\lib\npc.php on line 2035

Notice: Undefined variable: update_string in C:\xampp\htdocs\peq\lib\npc.php on line 2047


and

Notice: Undefined variable: version in C:\xampp\htdocs\peq\lib\headbars.php on line 347

Notice: Undefined variable: version in C:\xampp\htdocs\peq\lib\headbars.php on line 352


and (Item Creation seems really broken as all fields have the variable error)

Notice: Undefined variable: filename in C:\xampp\htdocs\peq\templates\items\items.add.tmpl .php on line 51

Notice: Undefined variable: filename in C:\xampp\htdocs\peq\templates\items\items.add.tmpl .php on line 54




It looks like the 'php' code is calling a field in the database and associating it with a variable. But, what happens is it is not keeping that association when it runs a greater or less than query against it. Hope that makes sense. It looks like if 1=apple, then apple=grape, grape > 3 goto 'tree', if grape < 3 goto bush. But grape doesnt seem to '=' 1 anymore.

Anyway somethings do work still.

If you have a different version of the tool I would definitely try it!

If you tell me how i could upload the tool contents I have I would do that as well.


Volkmeer

cavedude 08-27-2013 01:43 PM

This problem was handled by Joligario farther up in this thread:

Quote:

Originally Posted by joligario (Post 206104)
Looks like you have your php.ini error messaging set higher than you need. In your php.ini file, scroll down to the error handling and logging section and set your error reporting to this:

error_reporting = E_ALL & ~E_NOTICE

Not sure, but I think you may need to stop/start your httpd services after that change.

I can't provide any further details on how to do that as I don't use Windows. :I

Also, none of your line numbers line up with the current release, so grab the editor from here (updated daily): http://www.peqtgc.com/releases/

volkmeer 08-27-2013 04:13 PM

Ok I made the php.ini change and i downloaded the new editor. I actually get more variable errors now.

joligario 08-27-2013 08:01 PM

Notices are not errors. Think of them as just warnings.

Since you are using 1.8.2, that has newer PHP. I recommend using this to turn off all the strict/warnings.

Code:

error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED & ~E_WARNING

wolfwalkereci 08-27-2013 09:11 PM

Report back if joligario's suggestion does not work out. As I said earlier there are a bunch of people that will assist in figuring it out with you.

volkmeer 08-29-2013 09:16 PM

Made the above changes but still get the variable error. Seems everything is working just errors everywhere.

joligario 08-31-2013 06:10 PM

Not descriptive enough for anyone to help you.

wolfwalkereci 08-31-2013 06:34 PM

Can you print screen, crop it and post that so we can see what is going on.

NatedogEZ 10-03-2013 09:42 AM

I noticed there were few missing spell effects in the Spell editor when I grabbed the newest PEQ editor from the daily dump.


I decided to update the ones that were OLD "unknowns" that are now known to the correct effect name and added all the ones that were missing.

Placed "NI" at the from the effect if it wasn't implement as of 10 /3 /2013

Code:

--- "lib\spellenums.php"
+++ "lib\spellenums.php"
@@ -772,14 +772,14 @@
    332 => "Summon To Corpse",
    333 => "Effect On Fade",
    334 => "Bard AOE Dot",
-    335 => "Unknown335",
+    335 => "BlockNextSpellFocus",
    337 => "Percent XP Increase",
    338 => "Summon and Res All Corpses",
    339 => "Trigger On Cast",
    340 => "Lifeshard Chance",
    342 => "Immune to Fleeing",
    343 => "Interrupt Casting",
-    348 => "Unkown348",
+    348 => "LimitManaCost",
    350 => "Manaburn",
    351 => "Persistent Effect",
    352 => "Unknown352",
@@ -788,9 +788,9 @@
    355 => "Unknown355",
    358 => "Current Mana Once",
    360 => "Spell On Kill",
-    361 => "Unknown361",
+    361 => "SpellOnDeath",
    365 => "Spell On Death",
-    366 => "Unkown366",
+    366 => "NI ShieldEquipDmgMod",
    367 => "Add Body Type",
    368 => "Faction Mod",
    369 => "Corruption Counter",
@@ -803,7 +803,68 @@
    380 => "Knockdown",
    382 => "Block Damage Shield",
    383 => "Decrease Hitpoints",
-    384 => "Leap"
+    384 => "Leap",
+        385 => "LimitSpellGroup",
+        386 => "CastOnCurer",
+        387 => "CastOnCure",
+        388 => "NI SummonCorpseZone",
+        389 => "Forceful_Rejuv",
+        390 => "NI CastResistRestrict",
+        391 => "NI Unknown391",
+        392 => "AdditionalHeal2",
+        393 => "HealRate2",
+        394 => "NI Unknown394",
+        395 => "CriticalHealRate",
+        396 => "AdditionalHeal",
+        397 => "NI PetMeleeMitigation",
+        398 => "SwarmPetDuration",
+        399 => "Twincast",
+        400 => "HealGroupFromMana",
+        401 => "ManaDrainWithDmg",
+        402 => "EndDrainWithDmg",
+        403 => "NI ReluctantBene",
+        404 => "LimitExcludeSkill",
+        405 => "TwoHandBluntBlock",
+        406 => "CastonNumHitFade",
+        407 => "NI Unknown397",
+        408 => "LimitHPPercent",
+        409 => "LimitManaPercent",
+        410 => "LimitEndPercent",
+        411 => "LimitClass",
+        412 => "NI Unknown412",
+        413 => "IncreaseSpellPower",
+        414 => "LimitSpellSkill",
+        415 => "NI Unknown415",
+        416 => "ACv2",
+        417 => "ManaRegen_v2",
+        418 => "SkillDamageAmount2",
+        419 => "AddMeleeProc",
+        420 => "NI Unknown420",
+        421 => "IncreaseNumHits",
+        422 => "NI Unknown422",
+        423 => "NI Unknown423",
+        424 => "GravityEffect",
+        425 => "NI Display",
+        426 => "NI IncreaseExtTargetWindow",
+        427 => "SkillProc",
+        428 => "LimitToSkill",
+        429 => "SkillProc2",
+        430 => "NI Unknown430",
+        431 => "NI Unknown431",
+        432 => "NI Unknown432",
+        433 => "NI Uknonwn433",
+        434 => "CriticalHealChance2",
+        435 => "CriticalHealOverTime2",
+        436 => "NI Unknown432",
+        437 => "NI Anchor",
+        438 => "NI Unknown438",
+        439 => "NI IncreaseAssassinationLvl",
+        440 => "FinishingBlowLvl",
+        441 => "NI MovementSpeed2",
+        442 => "NI TriggerOnHPAmount",
+        443 => "NI Unknown443",
+        444 => "NI AggroLock",
+        445 => "NI AdditionalMercenary"
 );
 
 $sp_fields = array(


NatedogEZ 10-04-2013 08:22 AM

Found a few missing fields for item edit / add.

Allow for augtype up to 20

http://i.imgur.com/vLo0ITP.png


Code:

--- "templates\iframes\js.tmpl.php"
+++ "templates\iframes\js.tmpl.php"
@@ -112,5 +112,13 @@
 form.augtype_Type_10.checked = form.all_none5.checked ;
 form.augtype_Type_11.checked = form.all_none5.checked ;
 form.augtype_Type_12.checked = form.all_none5.checked ;
+form.augtype_Type_13.checked = form.all_none5.checked ;
+form.augtype_Type_14.checked = form.all_none5.checked ;
+form.augtype_Type_15.checked = form.all_none5.checked ;
+form.augtype_Type_16.checked = form.all_none5.checked ;
+form.augtype_Type_17.checked = form.all_none5.checked ;
+form.augtype_Type_18.checked = form.all_none5.checked ;
+form.augtype_Type_19.checked = form.all_none5.checked ;
+form.augtype_Type_20.checked = form.all_none5.checked ;
 }
 </script>



Code:

--- "templates\items\items.add.tmpl.php"
+++ "templates\items\items.add.tmpl.php"       
@@ -811,6 +811,18 @@
                    <input type="checkbox" name="augtype_Type_11" value=1024 <?echo ($augtype & 1024) ? "checked" : ""?>> Type 11<br>
                    <input type="checkbox" name="augtype_Type_12" value=2048 <?echo ($augtype & 2048) ? "checked" : ""?>> Type 12<br>
                  </td>
+                                  <td valign="top" align="left"><br/>
+                    <input type="checkbox" name="augtype_Type_13" value=4096 <?echo ($augtype & 4096) ? "checked" : ""?>> Type 13<br/>
+                    <input type="checkbox" name="augtype_Type_14" value=8192 <?echo ($augtype & 8192) ? "checked" : ""?>> Type 14<br/>
+                    <input type="checkbox" name="augtype_Type_15" value=16384 <?echo ($augtype & 16384) ? "checked" : ""?>> Type 15<br/>
+                    <input type="checkbox" name="augtype_Type_16" value=32768 <?echo ($augtype & 32768) ? "checked" : ""?>> Type 16<br/>
+                  </td>
+                                  <td valign="top" align="left"><br/>
+                    <input type="checkbox" name="augtype_Type_17" value=65536 <?echo ($augtype & 65536) ? "checked" : ""?>> Type 17<br/>
+                    <input type="checkbox" name="augtype_Type_18" value=131072 <?echo ($augtype & 131072) ? "checked" : ""?>> Type 18<br/>
+                    <input type="checkbox" name="augtype_Type_19" value=262144 <?echo ($augtype & 262144) ? "checked" : ""?>> Type 19<br/>
+                    <input type="checkbox" name="augtype_Type_20" value=524288 <?echo ($augtype & 524288) ? "checked" : ""?>> Type 20<br/>
+                  </td>
                  <td valign="top" align="left">
                    <br>
                    <input type="checkbox" name="all_none5" value="yes" onClick="Check5(document.item_edit)"> <b>All/None</b><br>



Code:

--- "templates\items\items.edit.tmpl.php"
+++ "templates\items\items.edit.tmpl.php"       
@@ -752,6 +752,18 @@
                    <input type="checkbox" name="augtype_Type_12" value=2048 <?echo ($augtype & 2048) ? "checked" : ""?>> Type 12<br/>
                  </td>
                  <td valign="top" align="left"><br/>
+                    <input type="checkbox" name="augtype_Type_13" value=4096 <?echo ($augtype & 4096) ? "checked" : ""?>> Type 13<br/>
+                    <input type="checkbox" name="augtype_Type_14" value=8192 <?echo ($augtype & 8192) ? "checked" : ""?>> Type 14<br/>
+                    <input type="checkbox" name="augtype_Type_15" value=16384 <?echo ($augtype & 16384) ? "checked" : ""?>> Type 15<br/>
+                    <input type="checkbox" name="augtype_Type_16" value=32768 <?echo ($augtype & 32768) ? "checked" : ""?>> Type 16<br/>
+                  </td>
+                                  <td valign="top" align="left"><br/>
+                    <input type="checkbox" name="augtype_Type_17" value=65536 <?echo ($augtype & 65536) ? "checked" : ""?>> Type 17<br/>
+                    <input type="checkbox" name="augtype_Type_18" value=131072 <?echo ($augtype & 131072) ? "checked" : ""?>> Type 18<br/>
+                    <input type="checkbox" name="augtype_Type_19" value=262144 <?echo ($augtype & 262144) ? "checked" : ""?>> Type 19<br/>
+                    <input type="checkbox" name="augtype_Type_20" value=524288 <?echo ($augtype & 524288) ? "checked" : ""?>> Type 20<br/>
+                  </td>
+                  <td valign="top" align="left"><br/>
                    <input type="checkbox" name="all_none5" value="yes" onClick="Check5(document.item_edit)"> <b>All/None</b><br/>
                  </td>
                </tr>


Code:

--- "lib\items.php"
+++ "lib\items.php"
@@ -358,6 +358,14 @@
  if (isset($_POST['augtype_Type_10'])) $augtype = $augtype+512;
  if (isset($_POST['augtype_Type_11'])) $augtype = $augtype+1024;
  if (isset($_POST['augtype_Type_12'])) $augtype = $augtype+2048;
+  if (isset($_POST['augtype_Type_13'])) $augtype = $augtype+4096;
+  if (isset($_POST['augtype_Type_14'])) $augtype = $augtype+8192;
+  if (isset($_POST['augtype_Type_15'])) $augtype = $augtype+16384;
+  if (isset($_POST['augtype_Type_16'])) $augtype = $augtype+32768;
+  if (isset($_POST['augtype_Type_17'])) $augtype = $augtype+65536;
+  if (isset($_POST['augtype_Type_18'])) $augtype = $augtype+131072;
+  if (isset($_POST['augtype_Type_19'])) $augtype = $augtype+262144;
+  if (isset($_POST['augtype_Type_20'])) $augtype = $augtype+524288;
 
  $fields = '';
  if ($item['slots'] != $slots) $fields .= "slots=\"$slots\", ";
@@ -682,6 +690,14 @@
  if (isset($_POST['augtype_Type_10'])) $augtype = $augtype+512;
  if (isset($_POST['augtype_Type_11'])) $augtype = $augtype+1024;
  if (isset($_POST['augtype_Type_12'])) $augtype = $augtype+2048;
+  if (isset($_POST['augtype_Type_13'])) $augtype = $augtype+4096;
+  if (isset($_POST['augtype_Type_14'])) $augtype = $augtype+8192;
+  if (isset($_POST['augtype_Type_15'])) $augtype = $augtype+16384;
+  if (isset($_POST['augtype_Type_16'])) $augtype = $augtype+32768;
+  if (isset($_POST['augtype_Type_17'])) $augtype = $augtype+65536;
+  if (isset($_POST['augtype_Type_18'])) $augtype = $augtype+131072;
+  if (isset($_POST['augtype_Type_19'])) $augtype = $augtype+262144;
+  if (isset($_POST['augtype_Type_20'])) $augtype = $augtype+524288;
 
  $fields = '';
  $fields .= "slots=\"$slots\", ";


Thank you for this wonderful tool :)


Created a random item with it :)

http://i.imgur.com/0jUFW01.png

joligario 10-04-2013 05:44 PM

Thank you for the contribution. I'll get this in tonight.


All times are GMT -4. The time now is 01:55 AM.

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