View Single Post
  #6  
Old 07-20-2009, 01:54 PM
vales
Discordant
 
Join Date: May 2006
Posts: 458
Default

Cool. Yeah, it totally caught me off guard when I got the message about heading to the home town or wayfarer's camp to get my stone appeared. I was completely overwhelmed with glee. Heh.

I was looking for something similar about lowering the HP/MP ratio on the server, and remembered someone wrote a solo server SQL batch for WoW. Here's a small sample - maybe someone can take this and run with it. These values are completely different with EQ's but it's something for reference, really. I tested this back in the day, and it was completely awesome. Got to see content I never would have imagined this way as well.

Quote:
-- Restore original values
TRUNCATE TABLE creature_template;
INSERT INTO creature_template SELECT * FROM creature_template_backup;

-- Add tag column
ALTER TABLE creature_template ADD COLUMN solo INTEGER(1) DEFAULT 0;

-- 40 man instances
UPDATE creature_template SET `solo`=1, `minhealth`=`minhealth`/40, `maxhealth`=`maxhealth`/40, `minmana`=`minmana`/40, `maxmana`=`maxmana`/40, `mindmg`=`mindmg`/40, `maxdmg`=`maxdmg`/40, `minrangedmg`=`minrangedmg`/40, `maxrangedmg`=`maxrangedmg`/40, `attackpower`=`attackpower`/40, `rangedattackpower`=`rangedattackpower`/40 WHERE entry IN (SELECT id FROM creature WHERE map IN (249,409,469,531,533)) and rank > 0 and npcflag = 0;

-- Adjustment with maxhealth range
-- Based on 40 man (> 200,001)
UPDATE creature_template SET `solo`=1, `minhealth`=`minhealth`/40, `maxhealth`=`maxhealth`/40, `minmana`=`minmana`/40, `maxmana`=`maxmana`/40, `mindmg`=`mindmg`/40, `maxdmg`=`maxdmg`/40, `attackpower`=`attackpower`/40, `rangedattackpower`=`rangedattackpower`/40
WHERE entry IN (SELECT id FROM creature WHERE map IN (0,1,530) AND solo=0 AND maxhealth > 200001) and rank > 0 and npcflag = 0;

-- Based on 25 man (140,001 - 200,000)
UPDATE creature_template SET `solo`=1, `minhealth`=`minhealth`/25, `maxhealth`=`maxhealth`/25, `minmana`=`minmana`/25, `maxmana`=`maxmana`/25, `mindmg`=`mindmg`/25, `maxdmg`=`maxdmg`/25, `attackpower`=`attackpower`/25, `rangedattackpower`=`rangedattackpower`/25
WHERE entry IN (SELECT id FROM creature WHERE map IN (0,1,530) AND solo=0 AND maxhealth BETWEEN 140001 AND 200000) and rank > 0 and npcflag = 0;

-- Based on 20 man (100,001 - 140,000)
UPDATE creature_template SET `solo`=1, `minhealth`=`minhealth`/20, `maxhealth`=`maxhealth`/20, `minmana`=`minmana`/20, `maxmana`=`maxmana`/20, `mindmg`=`mindmg`/20, `maxdmg`=`maxdmg`/20, `attackpower`=`attackpower`/20, `rangedattackpower`=`rangedattackpower`/20
WHERE entry IN (SELECT id FROM creature WHERE map IN (0,1,530) AND solo=0 AND maxhealth BETWEEN 100001 AND 140000) and rank > 0 and npcflag = 0;

-- Based on 10 man (40,001 - 100,000)
UPDATE creature_template SET `solo`=1, `minhealth`=`minhealth`/10, `maxhealth`=`maxhealth`/10, `minmana`=`minmana`/10, `maxmana`=`maxmana`/10, `mindmg`=`mindmg`/10, `maxdmg`=`maxdmg`/10, `attackpower`=`attackpower`/10, `rangedattackpower`=`rangedattackpower`/10
WHERE entry IN (SELECT id FROM creature WHERE map IN (0,1,530) AND solo=0 AND maxhealth BETWEEN 40001 AND 100000) and rank > 0 and npcflag = 0;

-- Based on 5 man (14,000 - 40,000)
UPDATE creature_template SET `solo`=1, `minhealth`=`minhealth`/5, `maxhealth`=`maxhealth`/5, `minmana`=`minmana`/5, `maxmana`=`maxmana`/5, `mindmg`=`mindmg`/5, `maxdmg`=`maxdmg`/5, `attackpower`=`attackpower`/5, `rangedattackpower`=`rangedattackpower`/5
WHERE entry IN (SELECT id FROM creature WHERE map IN (0,1,530) AND solo=0 AND maxhealth BETWEEN 14000 AND 40000) and rank > 0 and npcflag = 0;


-- Other elite adjustement
DROP TABLE IF EXISTS `avghealth`;
CREATE TABLE `avghealth` (
`minlevel` int(3) unsigned default '0',
`minhealth` int(5) unsigned default '0',
`maxhealth` int(5) unsigned default '0',
`minmana` int(5) unsigned default '0',
`maxmana` int(5) unsigned default '0',
`mindmg` float default '0',
`maxdmg` float default '0',
`minrangedmg` float NOT NULL default '0',
`maxrangedmg` float NOT NULL default '0',
`attackpower` int(10) unsigned NOT NULL default '0',
`rangedattackpower` smallint(5) unsigned NOT NULL default '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


update creature_template as a join avghealth as b on a.minlevel = b.minlevel set a.`minhealth`=b.`minhealth`, a.`maxhealth`=b.`maxhealth`, a.`minmana`=b.`minmana`, a.`maxmana`=b.`maxmana`, a.`mindmg`=b.`mindmg`, a.`maxdmg`=b.`maxdmg`, a.`minrangedmg`=b.`minrangedmg`, a.`maxrangedmg`=b.`maxrangedmg`, a.`attackpower`=b.`attackpower`, a.`rangedattackpower`=b.`rangedattackpower` where a.minhealth > b.minhealth and solo <> 1 and rank > 0 and npcflag = 0;
This made it so the 40 man instances and stuff were perfectly accessable for a small group.

Elite mobs hit harder and have way more HP, so there was also a sql entry to tone them down a bit.

I'm not SQL savvy, but it would be nice to further customize EQ along these lines where maxhp > 10 million could be fixed to reresent something less daunting for a small group.
Reply With Quote