kageboshi
-
Posts
9 -
Joined
-
Last visited
Posts posted by kageboshi
-
-
I'm guessing my c++ skills are a bit rusty. I hope my post isn't taken the wrong way. Just trying to dig through the code. Thank you all much for the effort put into this work.
-
Going through BRD Ring of Law Event, after the first wave the event does not progress and the party is stuck in the ring.
This is on rev. 615877598c24+
I found issue https://github.com/TrinityCore/TrinityCore/issues/20499 refers to case 7 within the event timer logic and removing it to advance through the event, however guess there hasn't been worked on much.
Thanks for any insight.
void UpdateAI(uint32 diff) override
{
if (MobDeath_Timer)
{
if (MobDeath_Timer <= diff)
{
MobDeath_Timer = 2500;if (RingBossGUID)
{
Creature* boss = ObjectAccessor::GetCreature(*me, RingBossGUID);
if (boss && !boss->IsAlive() && boss->isDead())
{
RingBossGUID.Clear();
Event_Timer = 5000;
MobDeath_Timer = 0;
return;
}
return;
}for (uint8 i = 0; i < MAX_NPC_AMOUNT; ++i)
{
Creature* mob = ObjectAccessor::GetCreature(*me, RingMobGUID);
if (mob && !mob->IsAlive() && mob->isDead())
{
RingMobGUID.Clear();
--MobCount;//seems all are gone, so set timer to continue and discontinue this
if (!MobCount)
{
Event_Timer = 5000;
MobDeath_Timer = 0;
}
}
}
} else MobDeath_Timer -= diff;
}if (Event_Timer)
{
if (Event_Timer <= diff)
{
switch (EventPhase)
{
case 0:
Talk(SAY_TEXT5);
HandleGameObject(DATA_ARENA4, false);
Start(false, false);
CanWalk = true;
Event_Timer = 0;
break;
case 1:
CanWalk = true;
Event_Timer = 0;
break;
case 2:
Event_Timer = 2000;
break;
case 3:
HandleGameObject(DATA_ARENA1, true);
Event_Timer = 3000;
break;
case 4:
CanWalk = true;
me->SetVisible(false);
SummonRingMob();
Event_Timer = 8000;
break;
case 5:
SummonRingMob();
SummonRingMob();
Event_Timer = 8000;
break;
case 6:
SummonRingMob();
Event_Timer = 5000;
break;
case 7:
me->SetVisible(true);
HandleGameObject(DATA_ARENA1, false);
Talk(SAY_TEXT6);
CanWalk = true;
Event_Timer = 5000;
break;
case 8:
HandleGameObject(DATA_ARENA2, true);
Event_Timer = 5000;
break;
case 9:
me->SetVisible(false);
SummonRingBoss();
Event_Timer = 0;
break;
case 10:
//if quest, complete
HandleGameObject(DATA_ARENA2, false);
HandleGameObject(DATA_ARENA3, true);
HandleGameObject(DATA_ARENA4, true);
CanWalk = true;
Event_Timer = 0;
break;
}
++EventPhase;
} else Event_Timer -= diff;
}if (CanWalk)
EscortAI::UpdateAI(diff);
}
}; -
In the folder /TrinityCore-3.3.5/sql/create you'll find a file create_mysql.sql
With the command line you'll want to go to this directory then perform the following command
>mysql -u root -p < create_mysql.sql
the -u means user and -p means password. You will have to set the user (root or another user) up after you install mariadb. There's a script that comes with ariadb for initial setup.
-
Ah ok thanks. I noticed the official CentOS repo release of boost is 1.66. Fortunately compiling ver 1.71 didn't require other depends but for how long is the question.
-
I've had TC 3.3.5 branch running on CentOS 8, now I'm currently compiling on 8 Stream (after compiling Boost 1.71). Is there any downside to continued use of CentOS 8 or should I start to look toward CentOS 9? I know 8 will be EOL in 2024. Will TrinityCore eventually go beyond the minimum dependency versions? This server isn't on any net connected to the Internet so updates aren't easy as I have to lug it into work.
Thanks for any insight.
Oh for reference, since the RHEL deriv compile is outdated, here's my command history. Not sure if all the pckg install were required
2 dnf install epel-release
4 dnf -y install git cmake3 make clang mariadb-devel openssl-devel bzip2-devel readline-devel ncurses-devel gcc-c++
6 dnf -y install libquadmath-devel vim wget mariadb-server p7zip
12 mkdir /trinity
13 adduser trinity
15 passwd trinity
20 chown trinity:trinity /trinity -R
23 usermod -d /trinity trinity
28 wget https://boostorg.jfrog.io/artifactory/main/release/1.71.0/source/boost_1_71_0.tar.gz
47 tar -xvf boost_1_71_0.tar.gz
49 cd boost_1_71_0
54 ./bootstrap.sh
55 ./b2
57 ./b2 header
58 ./b2 install
59 cd /trinity
61 mkdir bin
62 git clone -b 3.3.5 https://github.com/TrinityCore/TrinityCore.git
62 cd /trinity/TrinityCore
63 mkdir build
64 cd build
65 cmake ../ -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/trinity/beta/bin
64 make install -
So I made progress. I dumped my character db then dropped it, had Trinitycore recreate it. Edited my dump file to add item_index column to the item_loot_items table then imported the dump file. Restarted worldserver but it complained on .../src/TrinityCore/sql/old/3.3.5a/characters/21071_2021_08_15/2021_07_18_00_characters.sql, where the item_index is added. I moved that update file to a different location. Restarted worldserver and it came up without any problems.
I had debug level logging set but it wasn't explicit on where exactly it was getting hung up on mysql_stmt_prepare() id: 433. or why the Auto Updater wasn't applying the old sql update.
-
Added to topic post.
-
After tc update, getting error on starting worldserver.
Google reveals this forum thread https://community.trinitycore.org/topic/14160-could-not-prepare-statements-of-the-character-database/, bit I'm speculating there's not much I can do. I tried a clean build and reinstalled world db, but no help.
TrinityCore rev. 2cb970c66387 2022-02-09 15:13:12 +0200 (3.3.5 branch) (Unix, RelWithDebInfo, Static) (worldserver-daemon)
...
Applying update "2022_02_09_04_world.sql" 'FB5008D'...
Applied 37 queries. Containing 0 new and 6101 archived updates.
In mysql_stmt_prepare() id: 433, sql: "DELETE FROM item_loot_items WHERE container_id = ? AND item_id = ? AND item_count = ? AND item_index = ?"
Unknown column 'item_index' in 'where clause'
In mysql_stmt_prepare() id: 434, sql: "INSERT INTO item_loot_items (container_id, item_id, item_count, item_index, follow_rules, ffa, blocked, counted, under_threshold, needs_quest, rnd_prop, rnd_suffix) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
Unknown column 'item_index' in 'field list'
Could not prepare statements of the Character database,
tc-wotlk bin]# ldd worldserver
linux-vdso.so.1 (0x00007ffd8f9fb000)
libncurses.so.6 => /lib64/libncurses.so.6 (0x00007f3350c50000)
libtinfo.so.6 => /lib64/libtinfo.so.6 (0x00007f3350a20000)
libmysqlclient.so.21 => /usr/lib64/mysql/libmysqlclient.so.21 (0x00007f3350130000)
libboost_system.so.1.74.0 => /opt/boost/lib/libboost_system.so.1.74.0 (0x00007f334ff28000)
libboost_filesystem.so.1.74.0 => /opt/boost/lib/libboost_filesystem.so.1.74.0 (0x00007f334fd08000)
libboost_program_options.so.1.74.0 => /opt/boost/lib/libboost_program_options.so.1.74.0 (0x00007f334faa0000)
libboost_iostreams.so.1.74.0 => /opt/boost/lib/libboost_iostreams.so.1.74.0 (0x00007f334f888000)
libboost_regex.so.1.74.0 => /opt/boost/lib/libboost_regex.so.1.74.0 (0x00007f334f5b0000)
libssl.so.1.1 => /lib64/libssl.so.1.1 (0x00007f334f318000)
libcrypto.so.1.1 => /lib64/libcrypto.so.1.1 (0x00007f334ee30000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f334ec10000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f334ea08000)
libz.so.1 => /lib64/libz.so.1 (0x00007f334e7f0000)
libreadline.so.7 => /lib64/libreadline.so.7 (0x00007f334e5a0000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f334e208000)
libm.so.6 => /lib64/libm.so.6 (0x00007f334de80000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f334dc68000)
libc.so.6 => /lib64/libc.so.6 (0x00007f334d8a0000)
librt.so.1 => /lib64/librt.so.1 (0x00007f334d690000)
libbz2.so.1 => /lib64/libbz2.so.1 (0x00007f334d478000)
libicudata.so.60 => /lib64/libicudata.so.60 (0x00007f334b8c8000)
libicui18n.so.60 => /lib64/libicui18n.so.60 (0x00007f334b400000)
libicuuc.so.60 => /lib64/libicuuc.so.60 (0x00007f334b038000)
/lib64/ld-linux-x86-64.so.2 (0x00007f3350e80000)[root@tc-wotlk bin]# uname -a
Linux tc-wotlk 4.18.0-193.28.1.el8_2.x86_64 #1 SMP Thu Oct 22 00:20:22 UTC 2020 x86_64 x86_64 x86_64 GNU/LinuxCentOS Linux release 8.2.2004 (Core)
Blackrock Depths Ring of Law Event Stuck 3.3.5
in Help and Support
Posted
Doing some testing, it appears the event gets hung up if the first wave of mobs are killed before the gate closes. I added some logging to each of the switch case statements for EventPhase and waypointID.
Here's logging for the hung up event
npc_grimstone: Eventphase 0.
EscortAI::Start: (script: npc_grimstone) started with 6 waypoints. ActiveAttacker = 0, Run = 0, Player = GUID Full: 0x0000000000000000 Type: None Low: 0 (GUID Full: 0xf1300027700003f7 Type: Creature Entry: 10096 Low: 1015)
npc_grimstone: Eventphase increment.
npc_grimstone: waypoint 0
npc_grimstone: Eventphase 1.
npc_grimstone: Eventphase increment.
npc_grimstone: waypoint 1
npc_grimstone: Eventphase 2.
npc_grimstone: Eventphase increment.
npc_grimstone: Eventphase 3.
npc_grimstone: Eventphase increment.
npc_grimstone: waypoint 2.
npc_grimstone: Eventphase 4.
SmartScript::ProcessAction: Invoker: High Justice Grimstone GUID Full: 0xf1300027700003f7 Type: Creature Entry: 10096 Low: 1015
npc_grimstone: Eventphase increment.
npc_grimstone: waypoint 3.
npc_grimstone: Eventphase 5.
SmartScript::ProcessAction: Invoker: High Justice Grimstone GUID Full: 0xf1300027700003f7 Type: Creature Entry: 10096 Low: 1015
SmartScript::ProcessAction: Invoker: High Justice Grimstone GUID Full: 0xf1300027700003f7 Type: Creature Entry: 10096 Low: 1015
npc_grimstone: Eventphase increment.
npc_grimstone: Eventphase 6.
SmartScript::ProcessAction: Invoker: High Justice Grimstone GUID Full: 0xf1300027700003f7 Type: Creature Entry: 10096 Low: 1015
npc_grimstone: Eventphase increment.
npc_grimstone: waypoint 4.
npc_grimstone: Eventphase 7.
npc_grimstone: Eventphase increment.
npc_grimstone: event reached end and set complete waypoint 5.
and here's logging for a completed event
npc_grimstone: Eventphase 0.
EscortAI::Start: (script: npc_grimstone) started with 6 waypoints. ActiveAttacker = 0, Run = 0, Player = GUID Full: 0x0000000000000000 Type: None Low: 0 (GUID Full: 0xf130002770000402 Type: Creature Entry: 10096 Low: 1026)
npc_grimstone: Eventphase increment.
npc_grimstone: waypoint 0
npc_grimstone: Eventphase 1.
npc_grimstone: Eventphase increment.
npc_grimstone: waypoint 1
npc_grimstone: Eventphase 2.
npc_grimstone: Eventphase increment.
npc_grimstone: Eventphase 3.
npc_grimstone: Eventphase increment.
npc_grimstone: waypoint 2.
npc_grimstone: Eventphase 4.
SmartScript::ProcessAction: Invoker: High Justice Grimstone GUID Full: 0xf130002770000402 Type: Creature Entry: 10096 Low: 1026
npc_grimstone: Eventphase increment.
npc_grimstone: waypoint 3.
npc_grimstone: Eventphase 5.
SmartScript::ProcessAction: Invoker: High Justice Grimstone GUID Full: 0xf130002770000402 Type: Creature Entry: 10096 Low: 1026
SmartScript::ProcessAction: Invoker: High Justice Grimstone GUID Full: 0xf130002770000402 Type: Creature Entry: 10096 Low: 1026
npc_grimstone: Eventphase increment.
npc_grimstone: Eventphase 6.
SmartScript::ProcessAction: Invoker: High Justice Grimstone GUID Full: 0xf130002770000402 Type: Creature Entry: 10096 Low: 1026
npc_grimstone: Eventphase increment.
npc_grimstone: Eventphase 7.
npc_grimstone: Eventphase increment.
npc_grimstone: waypoint 4.
npc_grimstone: Eventphase 8.
npc_grimstone: Eventphase increment.
npc_grimstone: event reached end and set complete waypoint 5.
npc_grimstone: Eventphase 9.
SmartScript::ProcessAction: Invoker: High Justice Grimstone GUID Full: 0xf130002770000402 Type: Creature Entry: 10096 Low: 1026
npc_grimstone: Eventphase increment.
npc_grimstone: Eventphase 10.
npc_grimstone: Eventphase increment.