EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Development::Bots (https://www.eqemulator.org/forums/forumdisplay.php?f=676)
-   -   Bot Binaries Update (https://www.eqemulator.org/forums/showthread.php?t=41191)

Uleat 03-09-2017 07:06 PM

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.

Jahosphat 03-09-2017 07:41 PM

We're updating to the new code now. Will report anything wonky :) Thanks for the work man

GRUMPY 03-10-2017 02:46 PM

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.

Akkadius 03-10-2017 03:56 PM

Thanks for taking care of bots Uleat

Uleat 03-10-2017 05:50 PM

Aye, figured I would play nice and share :)

Uleat 03-10-2017 08:07 PM

There is a critical fix in the binaries.

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

ionhsmith 03-12-2017 07:55 PM

How do I update the server pack from Akkadius? I thought it was made to auto update?

Uleat 03-12-2017 09:56 PM

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

NostalgiaEQ 03-12-2017 10:07 PM

Quote:

Originally Posted by Uleat (Post 253361)
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

Uleat 03-12-2017 10:32 PM

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.

kokey98 03-21-2017 07:59 PM

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.

GRUMPY 03-21-2017 08:23 PM

Quote:

Originally Posted by kokey98 (Post 253651)
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";
#}


kokey98 03-21-2017 09:06 PM

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.

Uleat 03-21-2017 09:21 PM

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 03-21-2017 09:28 PM

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


All times are GMT -4. The time now is 05:55 PM.

Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.