Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Bots

Development::Bots Forum for bots.

Reply
 
Thread Tools Display Modes
  #1  
Old 03-09-2017, 07:06 PM
Uleat's Avatar
Uleat
Developer
 
Join Date: Apr 2012
Location: North Carolina
Posts: 2,240
Default Bot Binaries Update

The pre-compiled binaries for Akkadius's Installer package have been updated to the latest code.

If anyone has a sandbox that they are willing to test these on, I would appreciate any feedback.


-U


UPDATE:

For the most part the binaries appear to be functioning correctly.

There is, however, a slight snag in the update process.

You may need to manually run eqemu_server.pl once or twice to ensure that all update triggers are caught properly.


Running this query:
Code:
SHOW COLUMNS FROM `bot_spell_casting_chances`;
..should return 20 columns to be properly updated.


If a suitable fix for this can be found, I will update the binaries again.

This issue is only a minor update glitch and does not affect character data.
__________________
Uleat of Bertoxxulous

Compilin' Dirty

Last edited by Uleat; 03-09-2017 at 11:36 PM..
Reply With Quote
  #2  
Old 03-09-2017, 07:41 PM
Jahosphat
Sarnak
 
Join Date: Apr 2009
Location: LA
Posts: 67
Default

We're updating to the new code now. Will report anything wonky Thanks for the work man
Reply With Quote
  #3  
Old 03-10-2017, 02:46 PM
GRUMPY's Avatar
GRUMPY
Hill Giant
 
Join Date: Oct 2016
Posts: 181
Default

I ran that bot setup on a test server (which was not bot enabled). Seems it all installed ok, created and spawned a bot.
Is 9017 the current update version ? If so, it's normal.
EDIT: Sorry forgot to add, I got 20 rows in that query.
__________________
Smokin' in the Boys Room .....
Reply With Quote
  #4  
Old 03-10-2017, 03:56 PM
Akkadius's Avatar
Akkadius
Administrator
 
Join Date: Feb 2009
Location: MN
Posts: 1,823
Default

Thanks for taking care of bots Uleat
__________________
Reply With Quote
  #5  
Old 03-10-2017, 05:50 PM
Uleat's Avatar
Uleat
Developer
 
Join Date: Apr 2012
Location: North Carolina
Posts: 2,240
Default

Aye, figured I would play nice and share
__________________
Uleat of Bertoxxulous

Compilin' Dirty
Reply With Quote
  #6  
Old 03-10-2017, 08:07 PM
Uleat's Avatar
Uleat
Developer
 
Join Date: Apr 2012
Location: North Carolina
Posts: 2,240
Default

There is a critical fix in the binaries.

If anyone has updated within the last 24 hours, you should download these new ones.
__________________
Uleat of Bertoxxulous

Compilin' Dirty
Reply With Quote
  #7  
Old 03-12-2017, 07:55 PM
ionhsmith
Discordant
 
Join Date: Jun 2014
Posts: 250
Default

How do I update the server pack from Akkadius? I thought it was made to auto update?
Reply With Quote
  #8  
Old 03-12-2017, 09:56 PM
Uleat's Avatar
Uleat
Developer
 
Join Date: Apr 2012
Location: North Carolina
Posts: 2,240
Default

Run 'eqemu_server.pl' manually, select 'assets' and you can download the latest pre-compiled binaries.
__________________
Uleat of Bertoxxulous

Compilin' Dirty
Reply With Quote
  #9  
Old 03-12-2017, 10:07 PM
NostalgiaEQ
Banned
 
Join Date: Sep 2016
Location: us
Posts: 201
Default

Quote:
Originally Posted by Uleat View Post
Run 'eqemu_server.pl' manually, select 'assets' and you can download the latest pre-compiled binaries.
I typed assets now what? windows_server_download or windows_server_latest?

Thanks
Reply With Quote
  #10  
Old 03-12-2017, 10:32 PM
Uleat's Avatar
Uleat
Developer
 
Join Date: Apr 2012
Location: North Carolina
Posts: 2,240
Default

Now, this is for BOTS-enabled binaries and you would want to use windows_server_download_bots for this particular update.


If you're not using BOTS, those stable binaries have not been updated as recently.

Downloading the 'latest' of those gives you access to the most recent changes without waiting..but, it also subjects you to the possibility of unvetted code
and the increased risk of bugs and server crashes.


I do plan on updating both 'stable' downloads in a week or so, after the recent changes have had some time accumulated on them.
__________________
Uleat of Bertoxxulous

Compilin' Dirty
Reply With Quote
  #11  
Old 03-21-2017, 07:59 PM
kokey98
Sarnak
 
Join Date: Dec 2012
Location: terra firma
Posts: 65
Default

So i've run eqmu server.pl multiple times...

SHOW COLUMNS FROM `bot_spell_casting_chances`;

returns 6 col and 20 rows

i've used both updates through he auto-update system (assets/db). i even doubled and quadrupled, at this point Nth times updated bots db. i've also run the sql files that keep re-downloading by hand. (9010 and 9014)

description from log:

the first go-round it says i am missing 9010 - which then re-downloads 9010.... runs update 9010.

it starts going through manifest again (assume normal), but this time says i am missing 9014. which was not missing moment before (same process after "start server with LS.pl").

if i restart the server, it does the same 9010 missing alone, then 9014 missing alone. But, it's in reverse order. as i write this i am going to look inside and see what the loop is... but may still need guidance?


also, the manifest that is downloaded tops at 9015 - so i don't see 9017 like someone else did? 3 entries for 2-26 are the latest in the manifes that keeps re-downloading.

each time i start the server, it says bots database not up-to-date with binaries and does what i describe. my concern is that it performs a backup each and every time... and i'm not changing anything, lol.

server does work fine - i think, but i'd rather not have a 200mb write to an ssd for no reason each time i restart my server :p i assume it's quite wasteful to be re-downloading all the time too.

did i screw something up? what can i explore?... i'm good with google and probably won't need my hand held, but a little guidance is sought at this point... i've done what i can deduce on my own. i've been dinking around with it on my own for more than i care to admit... no mas

edit: tried starting from scratch completely, too (at least downloading binaries and fresh db... nothing lost... nothign put into server yet. so, anything along those lines is okay, too.
Reply With Quote
  #12  
Old 03-21-2017, 08:23 PM
GRUMPY's Avatar
GRUMPY
Hill Giant
 
Join Date: Oct 2016
Posts: 181
Default

Quote:
Originally Posted by kokey98 View Post
my concern is that it performs a backup each and every time... and i'm not changing anything, lol.

server does work fine - i think, but i'd rather not have a 200mb write to an ssd for no reason each time i restart my server :p i assume it's quite wasteful to be re-downloading all the time too.
I use this to disable the script (and world) from force checking updates. Nothing wrong with it for people who use it.
I just rename the original to eqemu_server.OFF and save this one as the .pl script. Then run the main one when I am
in the mood for update checks (grin). But some people need automated things to compensate for a busy day.

Code:
#!/usr/bin/perl

###########################################################
#::: General EQEmu Server Administration Script
#::: Purpose - Handles:
#::: 	Automatic database versioning (bots and normal DB)
#::: 	Updating server assets (binary, opcodes, maps, configuration files)
#::: Original Author: Akkadius
#::: 	Contributors: Uleat
#::: Purpose: To upgrade databases with ease and maintain versioning
###########################################################

use Config;
use File::Copy qw(copy);
use POSIX qw(strftime);
use File::Path;
use File::Find;
use Time::HiRes qw(usleep); 

#::: Variables
#$install_repository_request_url = "https://raw.githubusercontent.com/Akkadius/EQEmuInstall/master/";
#$eqemu_repository_request_url = "https://raw.githubusercontent.com/EQEmu/Server/master/";

#::: Globals
#$time_stamp = strftime('%m-%d-%Y', gmtime());
#$db_run_stage = 0; #::: Sets database run stage check
#if($Config{osname}=~/freebsd|linux/i){ $OS = "Linux"; }
#if($Config{osname}=~/Win|MS/i){ $OS = "Windows"; }
#$has_internet_connection = check_internet_connection();
#($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime();

#::: Check for script self update
#do_self_update_check_routine();
#get_perl_version();
#read_eqemu_config_xml();
#get_mysql_path();

#::: Remove old eqemu_update.pl
#if(-e "eqemu_update.pl"){
#	unlink("eqemu_update.pl");
#}
#::: Create db_update working directory if not created
#mkdir('db_update'); 

#print "[Info] For EQEmu Server management utilities - run eqemu_server.pl\n" if $ARGV[0] eq "ran_from_world";

#::: Check if db_version table exists... 
#if(trim(get_mysql_result("SHOW COLUMNS FROM db_version LIKE 'Revision'")) ne "" && $db){
#	print get_mysql_result("DROP TABLE db_version");
#	print "[Database] Old db_version table present, dropping...\n\n";
#}
__________________
Smokin' in the Boys Room .....
Reply With Quote
  #13  
Old 03-21-2017, 09:06 PM
kokey98
Sarnak
 
Join Date: Dec 2012
Location: terra firma
Posts: 65
Default

heh i was just looking though that .pl file, lol... Thank you.. i will back old pl script or edit it as yours is. i'll just run eqemu_server.pl to do updates manually on occasion. i prefer that anyway.

but i also might have useful info why update is snagging?

-- Update npc_spells_id to new values
UPDATE `bot_spells_entries` SET `npc_spells_id` = '3002' WHERE `npc_spells_id` = '701';


that's the first 2 lines form one of the update sql's... believe it's 9014

set npcspell id to 3002 where npc spell id is 701... that' can't be right.. i assume this is supposed to be set npc spells id where "id" is 701?

"id" doesn't go past low-2000's is why i assume... not real familiar with this db structure at all, lol.
Reply With Quote
  #14  
Old 03-21-2017, 09:21 PM
Uleat's Avatar
Uleat
Developer
 
Join Date: Apr 2012
Location: North Carolina
Posts: 2,240
Default

I wasn't aware of any circular triggers..but, there is one that triggers late due to the way the criteria is specified - and only doesn't trigger the first time around if your
version is older than the first trigger. (That was a mistake on my part. I build triggers based on current conditions - not assuming that older updates are not in place.)


Since the bots update list is fairly small, you can run through its manifest really quick.

You can manually run the queries listed here: https://github.com/EQEmu/Server/blob...anifest.txt#L1

For instance, to check update 9000, run..
Code:
SHOW TABLES LIKE 'bot_data'
If the query return matches the criteria, in this case `empty` (zero results,) you would run the update sql `2015_09_30_bots.sql` located in the `required` sub-directory.

Just be sure that you don't update past the version of binary version that you are using..that would likely cause problems.

When you've finished manually updating, set the `db_version`.`bots_version`field to the last update that you applied.


If you can pin-point the update that is causing problems, I can look into fixing any problems with it.
__________________
Uleat of Bertoxxulous

Compilin' Dirty

Last edited by Uleat; 03-21-2017 at 09:30 PM..
Reply With Quote
  #15  
Old 03-21-2017, 09:28 PM
Uleat's Avatar
Uleat
Developer
 
Join Date: Apr 2012
Location: North Carolina
Posts: 2,240
Default

On that change in particular, that is correct.

I moved bots' npc_spells_id to the 3000 range.

In addition, the original grouping only included 12 of the 16 player classes allowed and were not in the order of the classes.

I re-organized that to sequentially list them, as well as add the 4 missing melee classes. This will allow future bot work to include aa-based abilities in the
AI_Spell processing.

The npc_spells_id is now determined by:
Code:
Bot::GetClass() + 3000
__________________
Uleat of Bertoxxulous

Compilin' Dirty
Reply With Quote
Reply

Thread Tools
Display Modes

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 06:26 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 - 2017, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3