Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Bug Reports

Development::Bug Reports Post detailed bug reports and what you would like to see next in the emu here.

Reply
 
Thread Tools Display Modes
  #1  
Old 01-18-2007, 07:30 PM
WildcardX
Developer
 
Join Date: Apr 2003
Posts: 589
Default

I shamelessly stole the php skeleton from a guy whose name escapes me but he wrote this clever php script for Minilogin support. Anyway, great job whatever your name was!

I wrote this quick for use with our world server at PEQ today and it seems to work well, but I advise you to backup your database before using this tool just to be safe.

What this does is clears all buffs from the character you specify. This does not fix the problem, but it does let you manage the issue until either KLS or myself identify the cause of this problem and implement a fix.

Anyway, use this at your own risk.

Code:
<?php

$DB_ADDY = ""; //address:port for the MySQL server
$DB_USER = ""; //username to login to MySQL with
$DB_PASS = ""; //password to login to MySQL with
$DB_DB = ""; //database name

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>PEQ - Player Character Buff Removal</title>
<style type="text/css">
<!--
body,td,th {
	font-family: Geneva, Arial, Helvetica, sans-serif;
	font-size: 14px;
	color: #CCCCCC;
}
body {
	background-color: #000000;
	margin-left: 0px;
	margin-top: 0px;
	margin-right: 0px;
	margin-bottom: 0px;
}
.style1 {font-size: 9px}
.formelements {
	font-family: Geneva, Arial, Helvetica, sans-serif;
	font-size: 12px;
	font-style: normal;
	line-height: normal;
	font-weight: normal;
	font-variant: normal;
	color: #FFFFFF;
	background-color: #333333;
	border: thin solid #666666;
}
a {
	font-family: Geneva, Arial, Helvetica, sans-serif;
	font-size: 14px;
	color: #CCCCCC;
}
a:link {
	text-decoration: none;
}
a:visited {
	text-decoration: none;
	color: #CCCCCC;
}
a:hover {
	text-decoration: underline;
	color: #CCCCCC;
}
a:active {
	text-decoration: none;
	color: #CCCCCC;
}
.style4 {font-size: 10px}
-->
</style>
</head>

<body>
<div align="center"><?php
if(!isset($_POST['Submit'])) {
?>
  <br />
  <br />
  <form id="form1" name="form1" method="post" action="index.php">
    <table width="500" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td align="right" valign="top"><div align="right">Account Name:&nbsp;&nbsp;</div></td>
        <td align="left" valign="top"><input name="accountname" type="text" class="formelements" id="accountname" size="30" maxlength="30" />
        <br />
        <span class="style1">*must be a valid account name for this server only.</span></td>
      </tr>
      <tr>
	  	<td align="right" valign="top"><div align="right">Character Name:&nbsp;&nbsp;</div></td>
	    <td align="left" valign="top"><input name="charactername" type="text" class="formelements" id="charactername" size="64" maxlength="64" />
	   	<br />
	    <span class="style1">*must be a valid character name for the account name provided above.</span></td>
      </tr>
      <tr>
      	<br />
        <td colspan="2" align="center" valign="top"><input name="Submit" type="submit" class="formelements" value="Remove All Buffs" />&nbsp;&nbsp;&nbsp;<input name="Reset" type="reset" class="formelements" value="Clear" /></td>
      </tr>
    </table>
  </form>
<?php
} else {
	$link = mysql_connect($DB_ADDY,$DB_USER,$DB_PASS);
	mysql_select_db($DB_DB,$link);
	$sql_select_charid = "select c.id from account a inner join character_ c on a.id = c.account_id where a.name like '".($_REQUEST['accountname'])."' and c.name like '".($_REQUEST['charactername'])."'";
	$res = mysql_query($sql_select_charid,$link) or die ("MySQL server database error: ".mysql_error());
	$row_count = mysql_num_rows($res);

	if($row_count == 1) {
		$row = mysql_fetch_row($res);
		$characterid = $row[0];

		if($characterid >= 0) {
			$sql_select_character_profile = "select profile from character_ where id = ".$characterid;
			$res = mysql_query($sql_select_character_profile,$link) or die ("MySQL server database error: ".mysql_error());

			if($res) {
				$row = mysql_fetch_row($res);
				$profile_data = $row[0];
				$before_length = strlen($profile_data);
				$i = 5506;

				while($i < 6008) {
					$profile_data[$i] = 0;
					$i++;
				}

				$after_length = strlen($profile_data);

				if($before_length == $after_length) {
					$sql_profile_update = "update character_ set profile = '$profile_data' where id = '$characterid'";

					// echo "<p>$sql_profile_update</p>";

					mysql_query($sql_profile_update,$link) or die ("MySQL server database error: ".mysql_error());

					echo "<p>Successfully removed all buffs from character ".($_REQUEST['charactername'])." (".$characterid.")!</p>";

					// echo "<p>Before the update, profile length was $before_length bytes. After the update, profile length is $after_length</p>.";
				}
				else {
					echo "ERROR: Unable to process request to clear buffs for character = ".($_REQUEST['charactername'])."($characterid) because your profile lengths did not match. Please notify a GM.";
				}
			}
			else {
				echo "ERROR: Unable to retrieve character profile data for character  = ".($_REQUEST['charactername'])."($characterid). Please notify a GM.";
			}
		}
		else {
			echo "ERROR: Obtained an invalid character id (id = ".$characterid.").";
		}
	}
	else {
		echo "ERROR: Unable to retrieve data for character ".($_REQUEST['charactername']).".";
	}
}
?>
<br />
<br />
</body>
</html>
__________________
Read my developer notes at my blog.

Quote:
If it's not on IRC, it ain't l33t!
Reply With Quote
  #2  
Old 01-22-2007, 10:28 PM
number6
Sarnak
 
Join Date: Sep 2006
Posts: 62
Default

I reverted back to release 939 for now and the problem seems to have gone away judging from initial reports from the players. When I have time I'll look at some code diffs and see if I can work out what broke. Is this what the rest of you have done in order to sidestep the problem?

Paul.
Reply With Quote
  #3  
Old 01-23-2007, 03:34 AM
cavedude's Avatar
cavedude
The PEQ Dude
 
Join Date: Apr 2003
Location: -
Posts: 1,988
Default

The issue started in build 942. Using 941 seems to be safe, however since there are features in 942+ than PEQ requires, we are diligently trying to come up with a fix. Once we do, we'll post it here.
Reply With Quote
  #4  
Old 01-23-2007, 06:04 AM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

I spent my whole morning tracking this down and I think I have it fixed with the next version 945.
Reply With Quote
  #5  
Old 01-23-2007, 06:06 AM
cavedude's Avatar
cavedude
The PEQ Dude
 
Join Date: Apr 2003
Location: -
Posts: 1,988
Default

Thank you!
Reply With Quote
  #6  
Old 01-23-2007, 08:24 AM
solid11's Avatar
solid11
Discordant
 
Join Date: Dec 2004
Posts: 266
Default

Wooty woot woot
__________________
Reply With Quote
  #7  
Old 01-24-2007, 06:12 AM
number6
Sarnak
 
Join Date: Sep 2006
Posts: 62
Default

Many thanks - I've patched my server and so far, so good

Paul.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 12:25 PM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3