PDA

View Full Version : Question for P99 Devs, regarding Titanium Client


Stubbay
06-23-2019, 06:08 AM
This is not directly related to P99, but myself, and another EQEmu user, have been trying to figure this out for 3 or more days, and today learned, that the issue I'm dealing with, is in regard to the Titanium Client while trying to run a private (Windows) server.

Original Post via EQEmu (http://www.eqemulator.org/forums/showthread.php?t=42500)

I hope you guys don't mind me bringing this issue here, but this problem appears to be unique, in some way, and you guys are top dogs, using the same client.

The short version (so, you don't have to go to the post):


Installed a Windows Server, via EQEmu Github
I am using a Titanium disc install for my client
Fresh server install (i.e. no changes to the DB, whatsoever); Fresh install of Titanium.
Can log on fine; Try to make a new toon; World.exe spits this out "No start_zones entry in database, using defaults"
For example, Frogloks ALWAYS spit out in South Qeynos. Other races land in odd default locations in their starting cities.


I'm wondering if any of you devs, around here, have seen this issue, or know of any possible fixes. Any help would be greatly appreciated.

loramin
06-23-2019, 11:38 AM
Can log on fine; Try to make a new toon; World.exe spits this out "No start_zones entry in database, using defaults"

I know nothing about the EQ Emulator software, bu the error seems to be telling you everything you need to know right there. Apparently the EQEmulator program has database records in a table called "start_zones", and they specify which zone various races start in. You need to add those records, and because you haven't yet your server is spitting people out in "odd" default locations.

And if a random person who doesn't even know the software, on what really is the wrong message bard to even be asking, is helping you ... then I think it's probably time to step back and realize that you need to spend some time reading the EQ Emulator documentation ;)

Haynar
06-23-2019, 12:15 PM
Never seen anything like that. EQEmu has changed a lot though. You don’t set it up the same way anymore. Config is now in json I think. Nothing like what we use here.

Its probably been several years since I tried to set up an eqemu server. Because I keep multiple versions of perl installed to support diff servers, it would not install easily.

If you have a clean pc to run on, it should be super easy to set up. Just point and click.

loramin
06-23-2019, 12:30 PM
Because I keep multiple versions of perl installed to support diff servers, it would not install easily.

Even one version of Perl is one too many ;)

Seriously though, what do you need multiple versions for? Do different EQ Emu versions depend on them? I didn't even know EQ Emu needed Perl.

Haynar
06-23-2019, 01:12 PM
P99 uses perl 10. When i started on takp, we used perl 12, which has since been removed. Lua is now scripting choice. Takp i build on VS 2017. But p99 never moved past 2010, so I need set up to build both. Its a fun combo.

My dev laptop is set up to code on either project. Keeping it working for all has been a challenge.

nilbog
06-23-2019, 01:15 PM
As Haynar said, a lot has changed for eqemu. Unfortunately, I'm not sure any of us could help you better than the folks maintaining the current version.

Even one version of Perl is one too many ;)


:(

loramin
06-23-2019, 01:23 PM
P99 uses perl 10. When i started on takp, we used perl 12, which has since been removed. Lua is now scripting choice. Takp i build on VS 2017. But p99 never moved past 2010, so I need set up to build both. Its a fun combo.

My dev laptop is set up to code on either project. Keeping it working for all has been a challenge.

Ugh. Hopefully Perl has a decent version/environment manager like pyenv.

And yeah Lua seems to be the new "hot" choice for adding scripting to apps; I'm more partial to JS or Python for scripting, but to each their own.

Even one version of Perl is one too many

:(

Heh, I'm not one to start holy wars over languages, and Perl was like the second real programming language I learned (after Visual Basic), so I'll always appreciate it for what it is.

But ... c'mon: would you really rather maintain a mess of Perl scripts, or scripts written in a more ... sophisticated language (Python, JS, or heck even Ruby, which actually stole a lot from Perl)?

I mean, if so, great. It's just that Perl isn't exactly known for being maintainable, so most coders I know would pick a different language if they had a choice.

loramin
06-23-2019, 01:31 PM
https://i.imgur.com/Saq0icp.png

;)

Rogean
06-23-2019, 02:42 PM
I don't think anyone is disputing that Perl is garbage. It would just be a massive undertaking at this point to convert all of the scripts to another language, and at that point what are we really gaining.

loramin
06-23-2019, 03:56 PM
I don't think anyone is disputing that Perl is garbage.
<3

It would just be a massive undertaking at this point to convert all of the scripts to another language, and at that point what are we really gaining.

Oh totally ... although honestly if I ever win the lotto and have too much free time it sounds like a fun project ... but then again I'm a bit of masochist when it comes to updating legacy code ;)

P.S. Nilbog AND Rogean (and Haynar!) posting in the same thread? I haven't seen that in ... I can't even remember the last thread like that!

And who would have thought: all it took was a little Perl-bashing (well, and an EQEmu question) :D

Rogean
06-23-2019, 05:06 PM
but then again I'm a bit of masochist when it comes to updating legacy code ;)

You and me both. The number of systems I've completely recoded and overhauled since we forked from EQEmu is many. I'm a bit of a performance OCD Freak. Recoding the Scripting engine would definitely improve performance too, but I'm not going to recode all those scripts and I can't expect any of the other devs to either.

Stubbay
06-23-2019, 08:35 PM
I know nothing about the EQ Emulator software, bu the error seems to be telling you everything you need to know right there. Apparently the EQEmulator program has database records in a table called "start_zones", and they specify which zone various races start in. You need to add those records, and because you haven't yet your server is spitting people out in "odd" default locations.

And if a random person who doesn't even know the software, on what really is the wrong message bard to even be asking, is helping you ... then I think it's probably time to step back and realize that you need to spend some time reading the EQ Emulator documentation ;)

The other person is experienced. My start_zones file is as it should be. That's why we're confused. It makes no sense, and as I pointed out, this issue appears to be specific to Titanium, as they were able to recreate this issue, with a fresh server install, and using both Titanium and SoF to connect to the server. SoF worked correctly; Titanium did not.

In fact, World.exe also gives this, despite SoF and Titanium start zones being set to -1:
[World Server] Found 'TitaniumStartZoneID' rule setting: -1
[Status] SoF Start zone query: SELECT x, y, z, heading, start_zone, bind_id, bind_x, bind_y, bind_z FROM start_zones WHERE zone_id = 12 AND player_class = 7 AND player_deity = 203 AND player_race = 128

##How I got the name Bong through hitting random, I don't know
No start_zones entry in database, using defaults
[World Server] Attempting autobootup of tutorialb (189:0)
[World Server] (Bong) Zoning from character select tutorialb (Zone ID 189: Instance ID: 0)
[World Server] Account (Stubbay) Logging(Out) to character select :: LSID: 2
[World Server] Database::DeleteCharacter name : 'Bong'
[World Server] Found 'TitaniumStartZoneID' rule setting: -1
[Status] SoF Start zone query: SELECT x, y, z, heading, start_zone, bind_id, bind_x, bind_y, bind_z FROM start_zones WHERE zone_id = 12 AND player_class = 7 AND player_deity = 203 AND player_race = 128

No start_zones entry in database, using defaults
[World Server] Attempting autobootup of cabwest (82:0)

Zone_id= 12, is actually the chosen starting city (player_choice), on the character creation screen. However, it's reading it as the start_zone.

That comic about Perl got a genuine chuckle out of me lol.

loramin
06-24-2019, 10:41 AM
The other person is experienced. My start_zones file is as it should be. That's why we're confused. It makes no sense, and as I pointed out, this issue appears to be specific to Titanium, as they were able to recreate this issue, with a fresh server install, and using both Titanium and SoF to connect to the server. SoF worked correctly; Titanium did not.

In fact, World.exe also gives this, despite SoF and Titanium start zones being set to -1:
[World Server] Found 'TitaniumStartZoneID' rule setting: -1
[Status] SoF Start zone query: SELECT x, y, z, heading, start_zone, bind_id, bind_x, bind_y, bind_z FROM start_zones WHERE zone_id = 12 AND player_class = 7 AND player_deity = 203 AND player_race = 128

##How I got the name Bong through hitting random, I don't know
No start_zones entry in database, using defaults
[World Server] Attempting autobootup of tutorialb (189:0)
[World Server] (Bong) Zoning from character select tutorialb (Zone ID 189: Instance ID: 0)
[World Server] Account (Stubbay) Logging(Out) to character select :: LSID: 2
[World Server] Database::DeleteCharacter name : 'Bong'
[World Server] Found 'TitaniumStartZoneID' rule setting: -1
[Status] SoF Start zone query: SELECT x, y, z, heading, start_zone, bind_id, bind_x, bind_y, bind_z FROM start_zones WHERE zone_id = 12 AND player_class = 7 AND player_deity = 203 AND player_race = 128

No start_zones entry in database, using defaults
[World Server] Attempting autobootup of cabwest (82:0)

Zone_id= 12, is actually the chosen starting city (player_choice), on the character creation screen. However, it's reading it as the start_zone.

That comic about Perl got a genuine chuckle out of me lol.


Again, I don't know EQEmulator at all .. but even not knowing it, it seems like you already have everything you need in that message:

SELECT x, y, z, heading, start_zone, bind_id, bind_x, bind_y, bind_z FROM start_zones WHERE zone_id = 12 AND player_class = 7 AND player_deity = 203 AND player_race = 128

Run that query. Presumably no database records come back. To fix it, run this one:

INSERT INTO start_zones(
x, y, z, heading, start_zone, bind_id, bind_x, bind_y, bind_z, zone_id, player_class, player_deity, player_race
) VALUES (
?, ?, ?, ?, ?, ?, ?, ?, ?, 12, 7, 203, 128
)

Except replace the question marks with the x/y/z, bind x/y/z, and other details about where players of class 7, race 128, and deity 203 should start.

Run the SELECT again, see a record come back, and if it does your EQEmu should work (for that class/race/religion at least).