PDA

View Full Version : More questions on Bots


Neiv
10-11-2008, 11:32 AM
I've downloaded the binaries, spells, and source, but I am not sure what to do with them and I do not want to overwrite something without knowing just what it is I am overwriting. Also, does anything have to be sourced in manually? Is there a step-by-step procedure for installing this? Sorry for the questions, but I think this might help quite a few who would like to use this but are uncertain just how. Thanks!

Congdar
10-11-2008, 01:21 PM
The binaries are just copied into your c:\eqemu\ folder and are supported by the peq database. The spells files aren't needed for manual update anymore. If you have a recent peq database you have everything you need for the database to have the bots working.
The thing to remember is that when updating the database, first run the cvs file bot_npcs.bat to save your created bots. Then you can update the database and then source in the bots from the sql file created by bot_npcs.bat back into the database. The other bot related tables do not get deleted when updating the database... unless you completely start from scratch and blow everything away.

Neiv
10-12-2008, 07:59 AM
Thanks Congdar. I apparently have an older version of PEQ since the #bot commands are not recognized. I have never upgraded the DB, so I am concerned about what that action may overwrite. Does the "upgrade only" download overwrite the customizations I have made to the DB?

leslamarch
10-12-2008, 09:07 AM
Thanks Congdar. I apparently have an older version of PEQ since the #bot commands are not recognized. I have never upgraded the DB, so I am concerned about what that action may overwrite. Does the "upgrade only" download overwrite the customizations I have made to the DB?

The bot commands are in the eqemu code itself, I think the only thing you will need to add to your DB is the spells for the bots to use. This will be in the npc_spells VALUES from 701 to 712, and thats all i can think of that would be needed to be added in. Just make sure these are not in use already and you should be good to go.

Did you download the bot enabled compiles from here post 5 (http://www.eqemulator.net/forums/showthread.php?t=25614)? or grab the latest compiles here (http://code.google.com/p/projecteqemu/downloads/list) if you download them from here you should be able to #bot help and go from there,

leslamarch
10-12-2008, 09:40 AM
Sorry was to late on the edit timer, but if you use the latest compiles you will
have to run a few upgrade sqls. Those will not break your current DB, I will post
them here if you need them.

DROP TABLE IF EXISTS `tasks`;
CREATE TABLE `tasks` (
`id` int(11) unsigned NOT NULL,
`duration` int(11) unsigned NOT NULL,
`title` varchar(100) NOT NULL,
`description` varchar(2047) NOT NULL,
`reward` varchar(64) NOT NULL,
`rewardid` int(11) unsigned NOT NULL default '0',
`cashreward` int(11) unsigned NOT NULL default '0',
`xpreward` int(10) unsigned NOT NULL default '0',
`rewardmethod` tinyint(3) unsigned NOT NULL default '2',
`startzone` int(11) NOT NULL,
`stepped` tinyint(3) unsigned NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


DROP TABLE IF EXISTS `activities`;
CREATE TABLE `activities` (
`taskid` int(11) unsigned NOT NULL,
`activityid` int(11) unsigned NOT NULL default '0',
`step` int(11) unsigned NOT NULL default '0',
`activitytype` tinyint(3) unsigned NOT NULL default '0',
`text1` varchar(64) NOT NULL,
`text2` varchar(64) NOT NULL,
`text3` varchar(128) NOT NULL,
`goalid` int(11) unsigned NOT NULL default '0',
`goalmethod` int(10) unsigned NOT NULL default '0',
`goalcount` int(11) default '1',
`delivertonpc` int(11) unsigned NOT NULL default '0',
`zoneid` int(11) NOT NULL default '0',
`optional` tinyint(1) NOT NULL default '0',
PRIMARY KEY (`taskid`,`activityid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


INSERT INTO `activities` VALUES (1,0,1,1,'Guard Brookrock','Elven Bottle Of Wine','',36078,0,1,54124,54,0),(1,1,2,5,'Camp of Outsiders','','',1,0,1,0,54,0),(1,2,3,4,'Guard Brookrock','','',54124,0,1,0,54,0),(1,3,4,2,'Bandi ts','','',7,1,3,0,54,0),(1,4,5,4,'Guard Brookrock','','',54124,0,1,0,54,0),(1,5,6,5,'the entrance to Crushbone Citadel','','',2,0,1,0,54,0),(1,6,6,2,'Orcs','','' ,1,1,5,0,54,0),(1,7,7,4,'Guard Brookrock','','',54124,0,1,0,54,0),(1,8,8,4,'V\'Ly nn Renloe','','',202291,0,1,0,202,0),(2,0,0,2,'Orcs', '','',1,1,5,0,21,0),(2,1,0,3,'any creature','Rusty Items','',2,1,3,0,0,0),(2,2,0,5,'','','Locate the Antonica Spires in the Luclin Nexus',1,0,1,0,152,0),(3,0,0,7,'','Fish','',4,1,1, 0,69,0),(3,1,0,8,'','Roots, berries, mushrooms or cherries','',3,1,1,0,69,0),(3,2,0,2,'','','Kill Pyzjn',4147,0,1,0,0,1),(4,0,0,11,'','','Locate the lair of Innoruuk',0,0,1,0,76,0),(4,1,0,11,'','','Find the lair of Cazic Thule',0,0,1,0,72,0),(5,0,0,3,'','','Recover the Ring of the Ancients',12268,0,1,0,0,0),(5,1,0,3,'','','Retriev e a Shadowed Rapier',7100,0,1,0,0,0),(5,2,2,1,'','','Return the Ring of the Ancients to Hasten Bootstrutter',12268,0,1,50320,50,0),(5,3,2,1,'','' ,'Present the Shadowed Rapier to Hasten Bootstrutter',7100,0,1,50320,50,0),(5,4,2,100,'',' ','Give 3500 gold pieces to Hasten Bootstrutter',0,0,350000,50320,50,0),(6,0,0,6,'Cla ss 1 Wood Point Arrows','Class 1 Wood Point Arrows','',8,1,10,0,0,0),(7,0,0,2,'Rats','','',9,1 ,10,0,4,0),(7,1,0,4,'Guard Philbin','','',4062,2,1,0,4,0),(7,2,0,2,'','','Kil l 1 more rat please',9,1,1,0,4,0),(7,3,0,4,'Guard Philbin','','',4062,2,1,0,4,0),(8,0,0,2,'Bats','', '',10,1,5,0,4,0),(8,1,0,4,'Guard Philbin','','',4062,2,1,0,4,0),(9,0,0,2,'Snakes',' ','',11,1,2,0,4,0),(9,1,0,4,'Guard Philbin','','',4062,2,1,0,4,0),(10,0,0,2,'Gnolls', '','',12,1,3,0,4,0),(10,1,0,4,'Guard Philbin','','',4062,2,1,0,4,0),(11,0,0,2,'Skeleton s','','',13,1,6,0,4,0),(11,1,0,4,'Guard Philbin','','',4062,2,1,0,4,0);


DROP TABLE IF EXISTS `character_tasks`;
CREATE TABLE `character_tasks` (
`charid` int(11) unsigned NOT NULL,
`taskid` int(11) unsigned NOT NULL,
`slot` int(11) unsigned NOT NULL,
`acceptedtime` int(11) unsigned default NULL,
PRIMARY KEY (`charid`,`taskid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

DROP TABLE IF EXISTS `character_activities`;
CREATE TABLE `character_activities` (
`charid` int(11) unsigned NOT NULL,
`taskid` int(11) unsigned NOT NULL,
`activityid` int(11) unsigned NOT NULL default '0',
`donecount` int(11) unsigned NOT NULL default '0',
`completed` tinyint(1) default '0',
PRIMARY KEY (`charid`,`taskid`,`activityid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

DROP TABLE IF EXISTS `character_enabledtasks`;
CREATE TABLE `character_enabledtasks` (
`charid` int(11) unsigned NOT NULL,
`taskid` int(11) unsigned NOT NULL,
PRIMARY KEY (`charid`,`taskid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


DROP TABLE IF EXISTS `completed_tasks`;
CREATE TABLE `completed_tasks` (
`charid` int(11) unsigned NOT NULL,
`completedtime` int(11) unsigned NOT NULL,
`taskid` int(11) unsigned NOT NULL,
`activityid` int(11) NOT NULL,
PRIMARY KEY (`charid`,`completedtime`,`taskid`,`activityid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


DROP TABLE IF EXISTS `goallists`;
CREATE TABLE `goallists` (
`listid` int(10) unsigned NOT NULL,
`entry` int(10) unsigned NOT NULL,
PRIMARY KEY (`listid`,`entry`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


INSERT INTO `goallists` VALUES (1,5001),(1,5002),(1,5003),(1,5078),(1,5079),(1,50 80),(1,5082),(1,5083),(1,5084),(1,5085),(1,5089),( 1,5108),(1,5109),(1,5112),(1,5114),(1,5130),(1,912 9),(1,10000),(1,10159),(1,10166),(1,20028),(1,2003 3),(1,20036),(1,20048),(1,20171),(1,21005),(1,2101 2),(1,21026),(1,21038),(1,21039),(1,21096),(1,2109 7),(1,21102),(1,21107),(1,21115),(1,21118),(1,2111 9),(1,21121),(1,22005),(1,22022),(1,22031),(1,2205 2),(1,22053),(1,22055),(1,22142),(1,22143),(1,2214 9),(1,22155),(1,22165),(1,22171),(1,22172),(1,2217 9),(1,30033),(1,30034),(1,30042),(1,33033),(1,3303 4),(1,33036),(1,33037),(1,33038),(1,33064),(1,3310 8),(1,33113),(1,33123),(1,33124),(1,33156),(1,3401 5),(1,34105),(1,35007),(1,35008),(1,35009),(1,3501 1),(1,35034),(1,35039),(1,35042),(1,35043),(1,3504 4),(1,35052),(1,35091),(1,35092),(1,35116),(1,3512 9),(1,37014),(1,37015),(1,37017),(1,37018),(1,3702 6),(1,37032),(1,37035),(1,37040),(1,37069),(1,5002 7),(1,50028),(1,50033),(1,50034),(1,50065),(1,5007 0),(1,50211),(1,50259),(1,51088),(1,51089),(1,5109 0),(1,51110),(1,51111),(1,54001),(1,54003),(1,5400 4),(1,54008),(1,54015),(1,54016),(1,54019),(1,5402 7),(1,54037),(1,54039),(1,54185),(1,54187),(1,5418 8),(1,54190),(1,54193),(1,54194),(1,54195),(1,5420 0),(1,57001),(1,57003),(1,57004),(1,57015),(1,5702 0),(1,57040),(1,57041),(1,57056),(1,57085),(1,5709 0),(1,57136),(1,58000),(1,58001),(1,58002),(1,5800 3),(1,58004),(1,58005),(1,58006),(1,58008),(1,5800 9),(1,58011),(1,58012),(1,58013),(1,58015),(1,5801 6),(1,58024),(1,58025),(1,58026),(1,58027),(1,5802 9),(1,58033),(1,58034),(1,58035),(1,58036),(1,5803 7),(1,58038),(1,58039),(1,58040),(1,58041),(1,5804 2),(1,58043),(1,58045),(1,58047),(1,58053),(1,5805 4),(1,58055),(1,68055),(1,68056),(1,68168),(1,6816 9),(1,68190),(1,68200),(1,68223),(1,70010),(1,7001 1),(1,70042),(1,255702),(1,269011),(1,269012),(2,2 310),(2,5013),(2,5014),(2,5015),(2,5016),(2,5019), (2,5020),(2,5021),(2,5022),(2,5023),(2,5024),(2,50 25),(2,5040),(2,5072),(2,5074),(2,5076),(2,6011),( 2,6013),(2,6014),(2,6015),(2,6016),(2,6838),(2,700 7),(2,7008),(2,7009),(2,7010),(2,7790),(2,13346),( 2,13970),(2,16253),(2,19943),(2,19950),(2,20036),( 2,20176),(2,20187),(2,20198),(2,20258),(2,20297),( 2,20414),(2,26800),(2,30980),(2,31992),(2,36750),( 2,60084),(2,67531),(2,70482),(2,86875),(2,86961),( 2,89615),(2,94100),(2,94114),(2,94128),(2,94170),( 2,94212),(3,13045),(3,13046),(3,13047),(3,13048),( 3,13106),(3,13419),(3,14905),(3,14969),(3,22745),( 3,31485),(4,13019),(4,22745),(5,2300),(5,17981),(6 ,5500),(6,5507),(6,8003),(7,54035),(7,54036),(7,54 207),(7,54235),(7,54250),(7,54254),(8,8500),(8,857 2),(8,8644),(9,4007),(9,4009),(9,4013),(9,4024),(9 ,4036),(9,4043),(9,4078),(9,4080),(10,4002),(10,40 09),(10,4011),(10,4012),(10,4014),(10,4025),(10,40 39),(10,4042),(10,4043),(10,4050),(10,4051),(10,40 74),(10,4075),(10,4143),(11,4017),(11,4018),(11,40 23),(11,4044),(12,4006),(12,4015),(12,4021),(12,40 28),(12,4029),(12,4033),(12,4079),(12,4096),(12,41 52),(12,4191),(13,4010),(13,4022),(13,4045),(13,40 47),(13,4091),(13,4092),(13,4094),(13,4101),(13,41 08),(13,4109),(13,4110),(13,4112),(13,4114),(13,41 15),(13,4116),(13,4119),(13,4120),(13,4122),(13,41 25),(13,4128),(13,4129),(13,4137),(13,4139),(13,41 45),(13,4146),(13,4148),(13,4150);


DROP TABLE IF EXISTS `proximities`;
CREATE TABLE `proximities` (
`zoneid` int(10) unsigned NOT NULL,
`exploreid` int(10) unsigned NOT NULL,
`minx` float(14,6) NOT NULL,
`maxx` float(14,6) NOT NULL,
`miny` float(14,6) NOT NULL,
`maxy` float(14,6) NOT NULL,
`minz` float(14,6) NOT NULL,
`maxz` float(14,6) NOT NULL,
PRIMARY KEY (`zoneid`,`exploreid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


DROP TABLE IF EXISTS `tasksets`;
CREATE TABLE `tasksets` (
`id` int(11) unsigned NOT NULL,
`taskid` int(11) unsigned NOT NULL,
PRIMARY KEY (`id`,`taskid`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO `tasksets` VALUES (1,7),(1,8),(1,9),(1,10),(1,11);

drop table if exists `keyring`;
create table `keyring`(
`char_id` integer not null,
`item_id` integer not null
) engine=MyISAM DEFAULT CHARSET=latin1;

insert into rule_values values (1,'TaskSystem:EnableTaskSystem','true');
insert into rule_values values (1,'TaskSystem:PeriodicCheckTimer',5);
insert into rule_values values (1,'TaskSystem:RecordCompletedTasks','true');
insert into rule_values values (1,'TaskSystem:RecordCompletedOptionalActivities', 'true');
insert into rule_values values (1,'TaskSystem:KeepOneRecordPerCompletedTask','tru e');
insert into rule_values values (1,'TaskSystem:EnableTaskProximity','true');
insert into rule_values values (1,'World:EnableTutorialButton','true');
insert into rule_values values (1,'World:EnableReturnHomeButton','true');
insert into rule_values values (1,'World:MaxLevelForTutorial','10');
insert into rule_values values (1,'World:MinOfflineTimeToReturnHome','21600');
Insert into rule_values values (1, 'World:AddMaxClientsPerIP', -1);
Insert into rule_values values (1, 'World:AddMaxClientsStatus', -1);
INSERT INTO `activities` VALUES ('12', '0', '0', '2', 'giant thicket rats', '', '', '14', '1', '10', '0', '33', '0');
INSERT INTO `activities` VALUES ('12', '1', '0', '3', 'any creature', 'rat whiskers', '', '13071', '0', '4', '0', '33', '0');
INSERT INTO `activities` VALUES ('12', '2', '1', '4', 'Ace Slighthand', '', '', '0', '0', '1', '0', '19', '0');
INSERT INTO `activities` VALUES ('12', '3', '2', '1', 'Swish Appletop', 'rat whiskers', '', '13071', '0', '4', '33145', '33', '0');
INSERT INTO `goallists` VALUES ('14', '33027');
INSERT INTO `goallists` VALUES ('14', '33039');
INSERT INTO `goallists` VALUES ('14', '33055');
INSERT INTO `tasks` VALUES ('12', '0', 'Extraordinary Rodents', '[1,2, Go to the Misty Thicket, kill 10 giant thicket rats and loot four rat whiskers.]', '', '0', '722', '100', '0', '19', '1');
INSERT INTO variables VALUES ('curInstFlagNum', 2000, 'Determines what instance flag will be handed out next', '2008-09-05 04:46:47');
ALTER TABLE `zone` ADD column `insttype` tinyint (1) zerofill unsigned NOT NULL default '0';
ALTER table character_ ADD column `instZflagNum` int(10) unsigned NOT NULL default '0';
ALTER table character_ ADD column `instZOrgID` int(11) NOT NULL default '0';
INSERT INTO variables VALUES ('dfltInstZflag',1000, 'Used to determine if a zone is instanced, must be 1000 or greater', '2008-09-05 04:46:47');

ALTER TABLE `spawngroup` ADD `dist` FLOAT NOT NULL DEFAULT '0.0',
ADD `max_x` FLOAT NOT NULL DEFAULT '0.0',
ADD `min_x` FLOAT NOT NULL DEFAULT '0.0',
ADD `max_y` FLOAT NOT NULL DEFAULT '0.0',
ADD `min_y` FLOAT NOT NULL DEFAULT '0.0',
ADD `delay` INT NOT NULL DEFAULT '0';

CREATE TABLE `raid_details` (
`raidid` int(4) NOT NULL,
`loottype` int(4) NOT NULL,
`locked` tinyint(1) NOT NULL,
PRIMARY KEY (`raidid`)
);

CREATE TABLE `raid_members` (
`raidid` int(4) NOT NULL,
`charid` int(4) NOT NULL,
`groupid` int(4) NOT NULL,
`_class` tinyint(4) NOT NULL,
`level` tinyint(4) NOT NULL,
`name` varchar(64) NOT NULL,
`isgroupleader` tinyint(1) NOT NULL,
`israidleader` tinyint(1) NOT NULL,
`islooter` tinyint(1) NOT NULL,
PRIMARY KEY (`charid`)
);

cavedude
10-12-2008, 03:03 PM
Thanks Congdar. I apparently have an older version of PEQ since the #bot commands are not recognized.

No, if you got the binaries from SVN, then they weren't compiled correctly. Sorry about that, it'll be fixed in Revision 86. I do strongly recommend using SVN as the PEQ DB is current with it, and it adds a ton of great new features to EQEmu.

Neiv
10-12-2008, 07:29 PM
cavedude, if I use your update link on the PEQ site, will it overwrite the customizations I've made to my DB? Also, by SVN are you referring to Subversion? If so, I did a search for PEQ and Project EQ on the entire domain with no results.

cubber
10-13-2008, 10:46 AM
PEQ DB and Quests are obtained Via CVS not Subversion

Check this link for the addresses:

http://www.projecteq.net/phpBB2/viewtopic.php?t=2258&sid=5c3996d24b6a275b478a2ddf1d85816a

And this link for the changelog:

http://www.projecteq.net/phpBB2/viewforum.php?f=60

Neiv
10-13-2008, 07:06 PM
PEQ DB and Quests are obtained Via CVS not Subversion. Check this link for the addresses:
http://www.projecteq.net/phpBB2/viewtopic.php?t=2258&sid=5c3996d24b6a275b478a2ddf1d85816a

Does this website also have the Bot code? All I see is the link to the DB. But I suspect downloading that will overwrite my customization, no?

Andrew80k
10-13-2008, 07:10 PM
Does this website also have the Bot code? All I see is the link to the DB. But I suspect downloading that will overwrite my customization, no?
It doesn't contain the bot code. Just the db. It will overwrite any customizations that you have put into your db.

Neiv
10-13-2008, 07:40 PM
It doesn't contain the bot code. Just the db. It will overwrite any customizations that you have put into your db

So then, I assume the binaries I downloaded from the Releases thread is the most current, and that it is complied incorrectly? Also, if I want to have the latest version of the DB AND maintain my customizations, is there a way to do that?

Congdar
10-13-2008, 08:45 PM
I would do it like this:

install fresh the entire PEQ database
as I make custom entries into the database, i also write them to my_custom.sql
now I play and have fun and make bots and destroy Norrath
now an update comes out for the PEQ database
download the update from cvs
run bot_npcs.bat to save all my bots
source drop_system.sql
source peqdb_9999b.sql
source my_custom.sql
source bot_npcs.sql

I'm happy and ready to play on the new updated database.

cavedude
10-13-2008, 08:50 PM
The newest binaries are here: http://code.google.com/p/projecteqemu/downloads/list and they work.

There is no easy way to merge the newest PEQ DB with custom system changes, unless like said above you saved them to a sql file and can source that in.

Neiv
10-13-2008, 11:11 PM
The newest binaries are here: http://code.google.com/p/projecteqemu/downloads/list and they work.

Thanks, cavedude. I guess there must be something else wrong then, because when I add these to the Eqemu folder, I can't get beyond the character selection screen (all zones are "unavailable").

Thanks for the tip on creating the my_custom.sql file, Congdar. I'll do the same as soon as I learn how to script that. I assume most of those are Insert queries?

Andrew80k
10-14-2008, 10:26 AM
Thanks, cavedude. I guess there must be something else wrong then, because when I add these to the Eqemu folder, I can't get beyond the character selection screen (all zones are "unavailable").

Thanks for the tip on creating the my_custom.sql file, Congdar. I'll do the same as soon as I learn how to script that. I assume most of those are Insert queries?
What's in your logs? Surely you are getting some errors in your logs that would explain this. When this happens to me, and it does sometimes, it's usually related to db changes I have made, haven't made, or something foolish I've done to my start up script, like leaving eqlaunch out of it(done that).

Neiv
10-14-2008, 11:06 AM
What's in your logs? Surely you are getting some errors in your logs that would explain this. When this happens to me, and it does sometimes, it's usually related to db changes I have made, haven't made, or something foolish I've done to my start up script, like leaving eqlaunch out of it(done that).
I'll take a look at those when I get home. But all I did was replace the existing files in the EQEMU folder with the ones in the binary folder. I didn't overwrite the original files, but placed them in a temp folder. I have since overwritten the new files with the older ones, and the game works again. No #bot commands, but it works as it used to.

hayward6
10-22-2008, 08:27 AM
as I make custom entries into the database, i also write them to my_custom.sql

I'm curious about this... if you're making changes within game, and with different tools, how do you get that code out into text so it can be added easily later? This is the biggest reason that I don't do a lot of edits... I know they will be lost when I update.

Also, my bots are not working at all and I am using the latest source. I get command not recognized when I try #bot help

Congdar
10-22-2008, 10:22 AM
I don't add customizations to the database and then try and get them out, I create the custom sql file manually, and at the same time as I add the changes to the database. Then after a database update I can just source in the custom sql and I'm back to where I was.

The bot issue can be several things. Are you using 1129 or the SVN version? With 1129 you need to add EQBOTS to the Zone pre-processor in Visual Studio, if SVN then the Configuation Manager has a separate bot setting you can choose for debug or release binaries. If you are compiling in linux, search the eqoffline thread for linux answers.

hayward6
10-22-2008, 10:50 AM
I don't add customizations to the database and then try and get them out, I create the custom sql file manually, and at the same time as I add the changes to the database. Then after a database update I can just source in the custom sql and I'm back to where I was.

The bot issue can be several things. Are you using 1129 or the SVN version? With 1129 you need to add EQBOTS to the Zone pre-processor in Visual Studio, if SVN then the Configuation Manager has a separate bot setting you can choose for debug or release binaries. If you are compiling in linux, search the eqoffline thread for linux answers.

Ok, I guess I missunderstood... I thought that the release thread had a working source that didn't need any editing. I'll look around for what needs to be changed, thank you

Congdar
10-22-2008, 11:07 AM
The release thread source doesn't need editing. It should work right away unless you try merging it in to an existing source tree. Verify the EQBOTS setting in the preprocesser options of the Zone section.

hayward6
10-22-2008, 11:25 AM
Oh yeah, I'm using Debian Linux also.

Congdar
10-22-2008, 01:12 PM
there's some linux instructions for adding bots to the compile in that 800+ post thread.

hayward6
10-22-2008, 02:46 PM
there's some linux instructions for adding bots to the compile in that 800+ post thread.

Yeah, each time I start looking through that thread I end up fustrated and tired :) I'll pack a lunch for my next trip!

Congdar
10-22-2008, 03:08 PM
I looked... linux stuff is on one of the last 3 pages depending on your settings for how many posts to view.

Angelox
10-22-2008, 03:35 PM
These are mine, should work for you
/zone makefiles for both Linux and Windows (http://www.nahunta.org/%7Eangelox/click/click.php?id=36)
I think the only ones that change (for Bots) are the /source/zone ones - or at least thats what I change. just copy them over and rename .

Neiv
10-22-2008, 10:45 PM
I don't add customizations to the database and then try and get them out, I create the custom sql file manually, and at the same time as I add the changes to the database. Then after a database update I can just source in the custom sql and I'm back to where I was.

Can anyone post an example of such a sql script that I might be able to use as a template of sorts? Thanks.

Ikeren
10-23-2008, 12:51 PM
Yeah, each time I start looking through that thread I end up fustrated and tired I'll pack a lunch for my next trip!

I read through that entire thread once. If I ever do it again (not bloodly likely, but not hypothetically impossible); I'll give a brief summary of what happens from each post set, then post it somewhere. If someone does decide to do so, I'd suggest they make such a "content summary" for future people having this trouble.

Angelox
10-23-2008, 01:04 PM
The bots are at a point now where you only need download from the SVN and play.
Windows executables are already pre-made and posted. And usually, who ever runs a Linux server will know how to arrange the makefiles.
If someone will tell me this works (http://www.nahunta.org/%7Eangelox/click/click.php?id=36), maybe I can come up with a script you can run before you compile so you can select 'bots' or 'no bots'. Or maybe someone else wants to do this, maybe place it in the SVN. I was thinking of a Linux and Windows version.

hayward6
10-23-2008, 01:43 PM
The bots are at a point now where you only need download from the SVN and play.
Windows executables are already pre-made and posted. And usually, who ever runs a Linux server will know how to arrange the makefiles.
If someone will tell me this works (http://www.nahunta.org/%7Eangelox/click/click.php?id=36), maybe I can come up with a script you can run before you compile so you can select 'bots' or 'no bots'. Or maybe someone else wants to do this, maybe place it in the SVN. I was thinking of a Linux and Windows version.

I think bots have been generaly excepted and would benefit most servers. Wouldn't it be easier to just impliment it across the board, and then go in after and raise the status needed to run the bot commands in the database? That way everyone will have working bots if they want it, with little work, and if they don't they can change the command access.

AndMetal
10-23-2008, 02:00 PM
I think the logic is that, because not everyone is going to run bots (although they are quite awesome), it's better to use a preprocessor definition during compile than a rule, since it will decrease a lot of the required resources (memory/processor cycles) if you're not using it.

Angelox
10-23-2008, 02:11 PM
Those makefile/ files I posted work for me, I just want to make sure it works for others too.
I think the bots are more intended for a 'play at home' version, alone or maybe a friend or two (even if I'm a 'bot addict' too. I'm trying to get a few more needed commands at least started (can always be changed for the better), such as pacify and evac. Things that when alone, I always think "Damn I wish I had that right now ..."

hayward6
10-23-2008, 02:44 PM
I think the logic is that, because not everyone is going to run bots (although they are quite awesome), it's better to use a preprocessor definition during compile than a rule, since it will decrease a lot of the required resources (memory/processor cycles) if you're not using it.

A good point. I feel this is one of the best things to happen to the project in a while! It's exactly what I wanted when I first learned about the emulator, but have no skills to work on it :)

Andrew80k
10-23-2008, 02:56 PM
I think the logic is that, because not everyone is going to run bots (although they are quite awesome), it's better to use a preprocessor definition during compile than a rule, since it will decrease a lot of the required resources (memory/processor cycles) if you're not using it.

Is this actually the case? I know the executable for the zone would be bigger, but I wouldn't think it would use much more resources unless you actually spawned BOTS. If you don't I would think that resource usage would be very similar to not having them compiled in. But that's a rough guess based on looking through the code a couple of times.

Angelox
10-23-2008, 04:25 PM
Here's another problem I saw with the Bots;
When you have a good Bot group, mobs get real easy to kill - The game really gets unbalanced; lower end red-cons become easy to kill.
So, lets say you upped the exp to 2-3x , if you kill a Red, exp is like 10x! Even with normal exp, the reds are like 4x , which is ok if they are in a no-bot game (bigger challenge/ risk for a greater reward).
When I lowered the red con Exp to something more sane, then blues and lite blues gave little or no exp. If I had new players on the server that played alone (no bots) or just were starting out, I would get complaints about no exp.
So here's what I did, that may be an idea; Its a macro called 'CON_XP_SCALING', I never could get it to compile on windows with the macro, so I quoted it out and ran like that.
All the settings are changed in CON_XP_SCALING, and the original EQ settings in variables and rule_values are default.
The effect I got was fast exp on all cons, but nothing crazy for red/yellows. It may not seem to make any sense, but it works with whatever other scaling there is in the source and counters.

//#ifdef CON_XP_SCALING
if (conlevel != 0xFF) {
switch (conlevel)
{
case CON_GREEN:
//Message(15,"This creature is trivial to you and offers no experience.");
return;
case CON_LIGHTBLUE:
add_exp = add_exp * 175/100;
break;
case CON_BLUE:
//if (lvldiff >= 12)
// add_exp = add_exp * 6/10;
//else if (lvldiff > 5)
add_exp = add_exp * 250/100;
//else if (lvldiff > 3)
// add_exp = add_exp * 9/10;
break;
case CON_WHITE:
add_exp = add_exp * 175/100;
break;
case CON_YELLOW:
add_exp = add_exp * 200/100;
break;
case CON_RED:
add_exp = add_exp * 225/100;
break;
}
/*
if (otherlevel >= 65)
{
int add = add_exp*((otherlevel-49)*20/100);
add_exp += add_exp*((otherlevel-64))*2;
add_exp += add;
}
else if (otherlevel >= 50)
{
add_exp += add_exp*((otherlevel-49)*20/100);
}*/
}
//#endif





Is this actually the case? I know the executable for the zone would be bigger, but I wouldn't think it would use much more resources unless you actually spawned BOTS. If you don't I would think that resource usage would be very similar to not having them compiled in. But that's a rough guess based on looking through the code a couple of times.

Congdar
10-23-2008, 04:41 PM
Bots, like people.... when you have a full group, mobs are easier to kill. The group exp bonus applies and you get good exp. I don't think the bots make any difference in exp gains or mob difficulty than what you would get with a full group of actual players. The only differnce is, the bots go all out 100% where a player might conserve mana or the like.

If you can show in the code somewhere that exp gain is somehow increased due to bots that would be different than if you had actual players, or that somehow mobs become easier because of bots instead of players, then that would be the place to put in a fix.

Angelox
10-23-2008, 04:57 PM
Well, for one , Bots don't make mistakes, PCs do -
When I first tried the bots, I got about 30 levels in a few hours. Might be just the way EQemu always has been, most people do not want low exp rates, so exp in general goes up much faster than it would as if I played on live.
When I played on live with full, experienced groups, killing a red was always a big challenge and many times proved disastrous. Not so with the bots.
All around, EQ Live is much harder than EqEmu. I don't like the way Exp drags on on live either. But I do like the game to last a little longer than a day or two; but that's just me.
I do have the fix in what I post at my site for many weeks now, and about a dozen people use it (it's that last 'fix' that still makes my version of the source custom).

hayward6
10-23-2008, 05:29 PM
I'm hanging this up for a while... I source the released code from the bots thread and it simply doesn't work. I'll just stick with plain old 1129 untill this is either added or made easier, thanks everyone for your help.

Angelox
10-23-2008, 06:04 PM
I'm hanging this up for a while... I source the released code from the bots thread and it simply doesn't work. I'll just stick with plain old 1129 untill this is either added or made easier, thanks everyone for your help.

Hayward! you don't need to source anything - just go to the new EqEmu SVN
and download the latest source , and if you cant do the make file changes, what I posted here (http://www.nahunta.org/%7Eangelox/click/click.php?id=36) just unzip and overwrite in your zones directory. It will compile with the bots active.
If you stll have problems, post! we'll get you going. You know where the new EqEmu SVN is right?

hayward6
10-23-2008, 06:08 PM
I'll have to look again later. When I run make it isn't finishing all the files... I have to go in and do zone by itself for one example, and others just dont work... I'll re download. My biggest issue is time, I cam,e home to do this and had some ideas... but after 5 minutes the wife and kids had other plans :)

Angelox
10-23-2008, 06:22 PM
The way I have always compiled in Linux is I go into each directory and run 'make clean' , then 'make'. don't have to run 'make depend' anymore, it comes with the 'make clean' now (I guess someone fixed that).
So I go to /zone, then /world, etc.

hayward6
10-23-2008, 06:37 PM
here (http://www.nahunta.org/%7Eangelox/click/click.php?id=36) just unzip and overwrite in your zones directory. It will compile with the bots active.
If you stll have problems, post! we'll get you going. You know where the new EqEmu SVN is right?

I need to rename the files though right?

hayward6
10-23-2008, 06:43 PM
You know where the new EqEmu SVN is right?

I guess not... all I can find there are the binaries

Congdar
10-23-2008, 07:12 PM
On my server I cranked the bonus exp down due to fast leveling with bots, but it is still higher than Live. I also added more experience loss on death to help balance it out. This code has a different way of mitigating the exp but what you said about ease... maybe a different solution than what either of us did is to make the npc's harder. Looking at the npc entries in the db, except for bosses it looks like theres a pattern to npc level and stats. Maybe Cavedude can tell us how to make it more difficult overall.

Since I spend more time coding bots than actually playing the emulator, do those that play in a full group of equal level players find the emulator reds super easy and do you level so fast that you feel you would reduce exp more to balance the game? Are the regular groupers on TGC 65 and max AA real quick? I use the peq database. I believe that the bots are no different than a group of equal level players. The bots have some advantages, but many disadvantages as well. Experience is calculated by the same code as a group of pc's as it is for a pc with a group of bots.

Angelox
10-23-2008, 07:26 PM
I guess not... all I can find there are the binaries

Are you using windows or Linux?

hayward6
10-23-2008, 07:30 PM
Since switching to Linux on my server, I will never go back to Windows ;)

Angelox
10-23-2008, 08:15 PM
On my server I cranked the bonus exp down due to fast leveling with bots, but it is still higher than Live. I also added more experience loss on death to help balance it out. This code has a different way of mitigating the exp but what you said about ease... maybe a different solution than what either of us did is to make the npc's harder. Looking at the npc entries in the db, except for bosses it looks like theres a pattern to npc level and stats. Maybe Cavedude can tell us how to make it more difficult overall.

Since I spend more time coding bots than actually playing the emulator, do those that play in a full group of equal level players find the emulator reds super easy and do you level so fast that you feel you would reduce exp more to balance the game? Are the regular groupers on TGC 65 and max AA real quick? I use the peq database. I believe that the bots are no different than a group of equal level players. The bots have some advantages, but many disadvantages as well. Experience is calculated by the same code as a group of pc's as it is for a pc with a group of bots.

This thing with exp and leveling fast, is a real touchy situation. The majority of the players in EqEmu do not want exp to be Eq like, they want to level fast, easy loots, easy everything. Something with this game or many other RPGs; leveling and exp are at the heart of it all. Once you get to max level, or get all you want from the game, you grow tired of it. All this work everyone is doing, not just bots, but everything else seems like a waste if you can breeze through the whole game in a few days. Everything is part of the game; finding parts to make spells, finding better weapons, questing, etc., but if I can level up in a few days, I blow past all that.
Even if we did fix the game to where the exp, leveling were eq-like, then we'd have the problem of server ops upping exp in their servers. If you had a server with legit exp, no one would come, for a few reasons; one is the player base we have does not want this, and they will go to where it's all easy. Another is the player base we could have for this type of game play, have long since gone since they are under the impression 'EqEmu is too easy'. We could promote the 'New EqEmu', but then when they came to the mayhem of servers in public loggin, they would get frustrated again.
We'd have to do a lot to get things to where they should be; for example get a few totally legit servers (legit exp too) running and being watched over by a group that will maintain quality. We would need to set up a system in the login server that breaks down the servers into groups, something like 'legit', 'non-legit', custom, etc. But we have no say on the log in server, so scratch that.
Many of the servers in public log in, probably shouldn't even be there, not because they have anything wrong, but simply because they are new ops and learning, most of which will be gone in a few days (imagine starting a player and not finding you server a few days later?).
The new servers need to be at the bottom of the list in a group of their own.

Angelox
10-23-2008, 08:16 PM
Two page starts in a row! do I get a prize?

Angelox
10-23-2008, 08:17 PM
Since switching to Linux on my server, I will never go back to Windows ;)
Where did you get your source from?

hayward6
10-23-2008, 08:37 PM
Where did you get your source from?

Iv'e allways used the source from the front page and updated when there was a new version... But for this I took the source from the BOTS release thread.

Angelox
10-23-2008, 09:21 PM
Iv'e allways used the source from the front page and updated when there was a new version... But for this I took the source from the BOTS release thread.

You're going to the wrong place, read Cavedudes post here (http://www.eqemulator.net/forums/showthread.php?t=26376). He has links there for the new source which has tons of updates, and also includes the Bot code.
You will need to install and learn the 'svn' command, it will get you the source. You also need to update your SQL Database for this source to work with you. The updates are in an SQL directory with the source.

hayward6
10-24-2008, 06:45 AM
so ... the release thread is the wrong place to get the latest BOT release? heh we do have a bunch of loose ends don't we? I went there last night, but all I see is binaries listed. Well off to work, i'll have to take a look tomorrow. Thanks for working through this with me.

Angelox
10-24-2008, 09:43 AM
so ... the release thread is the wrong place to get the latest BOT release? heh we do have a bunch of loose ends don't we? I went there last night, but all I see is binaries listed. Well off to work, i'll have to take a look tomorrow. Thanks for working through this with me.

Well, you got me there - I made a post in that thread so people will know where to go.
It's not really a loose end, just we thought people would be looking not just at the Bot threads, but at all the new posts. The new SVN has been headline-news for me since it started, Don't know how you missed all that.

Ikeren
10-24-2008, 12:13 PM
Regarding Exp Rates with Bots:

If you are running a full raid (which, 60+, you often are, as you clear your way into a raid zone) you can gain Exp quite fast, to the tune of an AA every 20 minutes or so.

If you run a single group, I believe it is about on par with a regular Exp group, except you get all the exp. Bots don't plan offtaking well, don't plan healing well (I play a cleric and the druid always jumps the gun on heals), don't mez, won't back away from rooted mobs, won't position at all. Rather then healing the most injured party member, if more then one person needs a heal, they go down the group list (really noticable when the fighter at 60% gets hit with a heal, and then 4-5 seconds later, the enchanter at 20% gets hit with a heal)

That being said, I think the point of playing with bots isn't about leveling, or leveling fast, but instead raids; that's why they exist. Even when I max AA's, I'll keep playing if I haven't managed to destroy the toughest raid-encounters, done the quests I want, collected the clickies I want.

hayward6
10-24-2008, 05:01 PM
The new SVN has been headline-news for me since it started, Don't know how you missed all that.

I didn't miss it :) but there's no source there, just binaries... please help me clear this up, we keep talking about the same thing, and i'm still not following you.

Andrew80k
10-24-2008, 05:06 PM
There are both source and binaries. You should browse the site a bit and look at all the good stuff that's over there. I love the SVN.

hayward6
10-24-2008, 10:49 PM
There are both source and binaries. You should browse the site a bit and look at all the good stuff that's over there. I love the SVN.

Ill need some hand holding then... everything I have seen over there are binaries. :)

hayward6
10-25-2008, 07:35 AM
Ok, I see what the problem is :) I have no idea how to make use of the source on that site, I don't know how to download it, or how to install it.

Angelox
10-25-2008, 08:59 AM
Ok, I see what the problem is :) I have no idea how to make use of the source on that site, I don't know how to download it, or how to install it.

Well, you know, we're trying to help you, but you have to help yourself too. When that new SVN got opened up, I didn't know how to use it either (had no need for that before). But I figured it out and didn't ask too many stupid questions in the process (I hope!). You can Google most the questions you have, since they are all common newbe questions, the interenet is rich with answers.

hayward6
10-25-2008, 10:42 AM
Well, you know, we're trying to help you, but you have to help yourself too. When that new SVN got opened up, I didn't know how to use it either (had no need for that before). But I figured it out and didn't ask too many stupid questions in the process (I hope!). You can Google most the questions you have, since they are all common newbe questions, the interenet is rich with answers.

I know you are and I appreciate it, believe me! I'll stick with what I'm used to for now, work and family takes all my spare time. Maybe as the cold weather drives me inside more, I'll do some research on it.

Rocker8956
10-25-2008, 10:54 AM
The binaries can be downloaded from here. Those work pretty much the same as downloading the ones off the EMU’s front page.
http://code.google.com/p/projecteqemu/downloads/list

To download the latest SVN code do the following (Sorry if I left out steps I am writing most of this from memory at work)

Download and install TortoiseSVN
http://tortoisesvn.net/downloads

Create a folder on your hard drive. (This will be the folder you want to download the source files to)
Right click on the folder
In the menu that pops up click SVN Checkout…

URL of Repository:
http://projecteqemu.googlecode.com/svn/trunk/EQEmuServer
Click Ok

That should download the latest source files into the folder you created.

Some good info on the SVN can be found here
http://code.google.com/p/projecteqemu/wiki/CommittingwithSVN

hayward6
10-25-2008, 11:06 AM
Thanks a lot Rocker, I get the idea now. I'm just poking around for a Linux application and should be good to go. I'm taking the kids to a haunted house, and I'll give it a go when I get back.

Thanks for everything, all of you! I was new to compiling just a few weeks ago, and having new abbreviations tossed at me kinda tripped me up. At some point we'll need to go through the dozens of pages in the wiki that are now becoming sadly outdated.

hayward6
10-25-2008, 11:12 AM
Don't give up on my yet ;) I think I found it!

# apt-get update
# apt-get install subversion
# apt-get install libapache2-svn

hayward6
10-25-2008, 11:18 AM
Ok I got it! I'll build it in later on, gotta run! Thanks a lot everyone!

thepoetwarrior
10-26-2008, 06:16 AM
Im having trouble compiling the 1129bBots source. I know how to compile normal sources without problems. Im assuming the 1129Bot source is the same as the 1129 source, but with the bot code? So it would compile the same way? Sorry, I went thru 800+ post and saw nothin that completely explained how to install bot start to finish, probably cause everyone is expert in Linux/programming and wouldn't need a guide, but I do need some help please.

The file I used:

http://www.cerebus.net:8080/files/downloads/1129bBotsSrc.zip

The last 3 lines in the compile spam is:

make[1]: *** No rule to make target 'task.o', needed by 'zone'. Stop.
make[1]: Leaving directory '../1129bBots/zone'
make: *** [all] Error 2

I did my usual edits:

source/Makefile

Comment out 4 lines as such
all:
# $(MAKE) -C eqemucollector
# $(MAKE) -C eqextractor
clean:
# $(MAKE) -C eqemucollector clean
# $(MAKE) -C eqextractor clean

source/utils/Makefile

lines 3 & 13
gmake to make

eqlaunch/makefile & zone/makefile

remove -pg flag

and with the bot source this time, I further edit/replace a line in 2 more files

in source/zone

makefile
DFLAGS=-DEQDEBUG=5 -DCATCH_CRASH -DNO_PIDLOG -DSHAREMEM -DSPELL_EFFECT_SPAM -DFIELD_ITEMS -DCOMBINED -DAPP_OPCODE_SIZE=2 -Di386 -DEQBOTS

makefile.common
../common/guild_base.o guild_mgr.o task.o raids.o botRaids.o botAI.o petAI.o

So I removed task.o and raids.o from the last edit to compile without errors, but the #bot command doesn't work. I've updated my DB with needed tables. Any ideas? Am I compiling and installing the bot source on Debian Linux correctly? Please help.

Angelox
10-26-2008, 06:55 AM
That code is old -you're not interested in the newest bot code?

thepoetwarrior
10-26-2008, 07:20 AM
I noticed when making the symbolic links (ln -s ../etcetc...), the output was file exist, compared to before of no output from that command. So I checked the propertys and the modified date was unchanged. The symbolic links were not created/updated. The newer source was not being used. So I learned those litte arrows on the top right of the icons of the files are symbol links, and I moved them to another backup dir, and recreated symbolic links again brand new. Now my #bot commands work. So each time I updated the Linux Source, it always compiled just file, but the symbolic links never updated to it.

You can laugh at me now. Yes, Im new to Linux, but EQEmu is giving me a reason to learn how to use Linux.

Off Topic:

Maybe some time I'll use a spare PC to install another flavor of Linux. Also, the first two PC's I had to install Debian only worked with a default 1 gig ram kenel (486) and I couldn't get other kernels working. Both PC's were AMD processors. So the 3rd PC I tried was Intel that the default installed the 686 kernel and it works perfect! Sometimes with perfect install meathods, its just the hardware is the problem. I even had to add a NIC instead of using the default off the Motherboard cause it wasn't being recoginized correctly.

Thanks for reading.

thepoetwarrior
10-26-2008, 07:21 AM
That code is old -you're not interested in the newest bot code?

Whats newer than the second version of 1129Bots? I must have missed it, probably skimmed 1000+ post tonight.

thepoetwarrior
10-26-2008, 08:28 AM
Oh crap, my server went from EZ to Super EZ.Any way I can limit the bot useage? Such as per level, and number of bots that can be summoned? On the bright side, people wont feel the need to 6box. Some rule_values would be nice to put in limits. Well, so far I tested out for one hour, and Im very impressed at the AI, and the bots saving items, buffing, etc. Looks cool. Better than Guild Wars.

Angelox
10-26-2008, 09:51 AM
Oh crap, my server went from EZ to Super EZ.Any way I can limit the bot useage? Such as per level, and number of bots that can be summoned? On the bright side, people wont feel the need to 6box. Some rule_values would be nice to put in limits. Well, so far I tested out for one hour, and Im very impressed at the AI, and the bots saving items, buffing, etc. Looks cool. Better than Guild Wars.

You have to look around, if you're still using the old code and I tell you to use the new code, you'll break everything - the new code is here (http://www.eqemulator.net/forums/showthread.php?t=26376); but you have to update your SQL database.with the sqls provided in the utils/sql/svn/ directory.
As for the easiness with the bots, you can do a few things, one thing is to slow the level of exp rate. I slowed a lot on reds/yellows(red and yellow cons get real easy when Botting and probably multi-boxing too)_ and posted how I did it here (http://www.eqemulator.net/forums/showpost.php?p=158923&postcount=34)
You can also throw this (http://www.eqemulator.net/forums/showpost.php?p=159071&postcount=1) in, and set it to a high number, so the players loose a lot when they die.

hayward6
10-26-2008, 01:08 PM
There's definitely a lot of people not familiar with the new SVN link and how to use it. I don't have the time I wish I had to keep on top of everything, and I tend to rely on the download section for updates... Since that's no longer a valid section, we should probably shut it down. The announcement on the front page should be a big help, but I think we're still going to have some people lagging behind.

I was surprised just how different things are with the new code... once I updated to the new BOT code my database was all but useless. I was able to dig my account and character info out, but I've chosen to start over on custom content.

Andrew80k
10-26-2008, 04:36 PM
Another thing you can do and what I've done is raise the HP on all mobs from 2 to 10 times depending on the zone. Also decrease the assist range. This makes it harder to single a larger number of mobs.