EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   Support::Windows Servers (https://www.eqemulator.org/forums/forumdisplay.php?f=587)
-   -   Start_Zones Titanium Manual Entry Help (https://www.eqemulator.org/forums/showthread.php?t=40392)

Figback65 02-11-2016 05:17 AM

Start_Zones Titanium Manual Entry Help
 
Ive read through the forums and on wiki and ive seen several times that the Starting zones for titanium is hardcoded. So I have been working with the code and I got most of it working but I noticed even in the entries already in the code for default bind point does not work. I tested it with good erudites, it has them start in city and when they die they goto Tox, this does not work, they go right to their starting point.

Unedited worlddb.cpp
Code:

void WorldDatabase::SetTitaniumDefaultStartZone(PlayerProfile_Struct* in_pp, CharCreate_Struct* in_cc)
{
        switch (in_cc->start_zone)
        {
        case 0: // Erudin
        {
                if (in_cc->deity == 203) // Cazic-Thule Erudites go to Paineel
                {
                        in_pp->zone_id = 75; // paineel
                        in_pp->binds[0].zoneId = 75; // broke
                }
                else
                {
                        in_pp->zone_id = 24;        // erudnext start zone
                        in_pp->binds[0].zoneId = 38;        // tox does not go to tox broke
                }
                break;
        }

Edited worlddb.cpp
Code:

case 1: // Qeynos
        {
                if (in_cc->deity == 201)
                {
                        in_pp->x = -370.89; // works
                        in_pp->y = 361.61; // works
                        in_pp->z = -38.22; // works
                        in_pp->zone_id = 45; // qcat works
                        in_pp->binds[0].zoneId = 2; // broke
                        in_pp->binds[0].x = 120; // broke
                        in_pp->binds[0].y = 406.14; // broke
                        in_pp->binds[0].z = 1.88; // broke
                }
                else
                {
                        in_pp->zone_id = 2;        // qeynos2
                        in_pp->binds[0].zoneId = 2;        // qeynos2 broke
                }
                break;
        }

My manual set loc for starting X Y Z and zone_id = 45 works. The binds.zoneID, binds.x, binds.y, binds.z does not take hold. I have tried all kinds of variations.

I have deleted my starting_zones entries to make sure it loads defaults, which is the hardcode.

I am on titanium, thus why I am hardcoding it.

Any idea why the binds are not taking hold for the bind points and zone?

Figback65 02-11-2016 05:54 AM

Well I also found this

client.cpp
Code:

        /* Will either be the same as home or tutorial */
        pp.binds[0].zoneId = pp.zone_id;
        pp.binds[0].x = pp.x;
        pp.binds[0].y = pp.y;
        pp.binds[0].z = pp.z;
        pp.binds[0].heading = pp.heading;

So now I am assuming using binds[0] is pulling this and automatically setting the bind zoneid,x,y,z right to the home point that is set manually.

Is there a way to individually set the bind points in worlddb.cpp, I assume my coding is wrong is the problem.

Figback65 02-11-2016 06:22 AM

Fixed it.

commented out this is client.cpp so it stopped overwriting entries.

client.cpp
Code:

        /* Will either be the same as home or tutorial */
        // pp.binds[0].zoneId = pp.zone_id;
        // pp.binds[0].x = pp.x;
        // pp.binds[0].y = pp.y;
        // pp.binds[0].z = pp.z;
        // pp.binds[0].heading = pp.heading;

now this works in worlddb.cpp

worlddb.cpp
Code:

        case 1: // Qeynos
        {
                if (in_cc->deity == 201)
                {
                        in_pp->x = -370.89;
                        in_pp->y = 361.61;
                        in_pp->z = -38.22;
                        in_pp->zone_id = 45; // qcat
                        in_pp->binds[0].zoneId = 2;
                        in_pp->binds[0].x = 120;
                        in_pp->binds[0].y = 406.14;
                        in_pp->binds[0].z = 1.88;
                }
                else
                {
                        in_pp->zone_id = 2;        // qeynos2
                        in_pp->binds[0].zoneId = 2;        // qeynos2
                }
                break;
        }

For anybody that wants to manually enter. This also fixes the issue of in_pp->binds[0].zoneId = 2; and like entries for all the towns, not being able to work because the code in client.cpp was overwriting it.

Of course rebuild

provocating 02-12-2016 12:41 AM

Yeah it is a pain. Same thing with the character create combinations for titanium, which is also controlled in the source.


All times are GMT -4. The time now is 11:24 AM.

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