No, but character backups changed recently...
Put these in your database... CREATE TABLE player_corpses_backup ( id int(11) unsigned NOT NULL auto_increment, charid int(11) unsigned NOT NULL default '0', parent_corpse_id int(11) unsigned NOT NULL default '0', zoneid smallint(11) NOT NULL default '0', x float NOT NULL default '0', y float NOT NULL default '0', z float NOT NULL default '0', heading float NOT NULL default '0', data blob NOT NULL, timeofdeath datetime NOT NULL, timeofdelete datetime NOT NULL default '0', PRIMARY KEY (id), KEY charid (charid) ) TYPE=MyISAM; CREATE TABLE character_backup ( id int(11) unsigned NOT NULL auto_increment, backupreason tinyint(3) unsigned not null default '0', charid int(11) unsigned not null default '0', account_id int(11) unsigned NOT NULL default '0', name varchar(64) NOT NULL default '', profile blob, guild int(11) unsigned default '0', guildrank tinyint(2) unsigned default '5', x float NOT NULL default '0', y float NOT NULL default '0', z float NOT NULL default '0', zoneid smallint(5) not null default '0', alt_adv blob, ts timestamp(14), PRIMARY KEY (id), KEY name (name), KEY charid (charid) ) TYPE=MyISAM; Other than that, I'm not 100% sure |
Make sure the character_backup table has the field backupreason
That was causing crashes for me until I added it in. |
Thanks for the info, that seems to have fixed it.
I've put made a .sql script to update these tables - http://www.edwardpinniger.bctalk.net...atebackups.sql also an items DB compatible with the new format - http://www.edwardpinniger.bctalk.net/eq/items_44dr1.zip |
Oh Drawde, I figured out whats happening to low end damage... Turns out its a casting problem (surprise surprise)
Heres the offender.. int max_hit = weapon_damage * ((GetSTR() + GetSkill(skillinuse)+ mylevel) / 100); All these fields are integers.. What happens is that if STR+SKILL+LEVEL < 100, then the total is a 0, and you get 0 * weapon_damage, so your max_hit will always be 0. What I've done to fix this is to cast the 3 variables to floats, then when they get jammed back into max_hit, it drops the remainder, but you dont lose the <1 case. The new field is int max_hit = weapon_damage * (( (float)GetSTR() + (float)GetSkill(skillinuse)+ (float)mylevel) / 100); A wrote a little driver stub to test this, heres the before and after with a Str of 75, skill of 0, level 1 and weapon_damage of 8. BEFORE Damage is : 2 Damage is : 2 Damage is : 2 Damage is : 2 Damage is : 2 Damage is : 2 Damage is : 2 Damage is : 2 Damage is : 2 Damage is : 2 Damage is : 2 AFTER Damage is : 6 Damage is : 6 Damage is : 2 Damage is : 3 Damage is : 3 Damage is : 6 Damage is : 2 Damage is : 4 Damage is : 4 Damage is : 4 Damage is : 3 |
Yaaaaay, Trump :) I hated not having any weapon skills... It takes a LOT of fun out of the game when mobs hit you all the time and you can't do any damage.
|
So that's why the skill level needed for the damage output to work properly varied (sometimes it was 10, sometimes 15, 20, or 25),
it was due to the varying STR of my characters. Couldn't work out why it was varying so much, I thought it was version-related.. Anyway, great work on finally fixing this! |
All times are GMT -4. The time now is 08:18 AM. |
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.