View Single Post
  #1  
Old 04-23-2016, 07:18 PM
Figback65
Discordant
 
Join Date: Aug 2009
Location: 2131231231
Posts: 255
Default Titanium/Non Crescent Hardcode startzones/default binds

This is the hardcode I implemented to make sure start zones and start binds work for titanium. Titanium was iffy on reading the start zones table, plus, it always had issues with double default binds via woodelves in kelethen bound in gfaydark and high elves bound in gfaydark. It never allowed 2 separate binds, anywho, heres the code.

I deleted all entries in the startzones table so it didn't pull anything from there.

If you want to change anything, atleast heres a good example to work with how you want it to be.

EDIT : Because I'm classic-pop with no drakkin and theres no case for froglok in rathe mountain(left froglok in for fashionquest). I added a race check in default. You could do the same for drakkin I imagine.

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->class_ == SHADOWKNIGHT) // Cazic-Thule Erudites go to Paineel WORKS
		{
			in_pp->x = 456.00;
			in_pp->y = 880.00;
			in_pp->z = -120.18;
			in_pp->zone_id = 75; // paineel
			in_pp->binds[0].zoneId = 75;
			in_pp->binds[0].x = 200.00;
			in_pp->binds[0].y = 800.00;
			in_pp->binds[0].z = 3.39;
		}
		else if (in_cc->class_ == NECROMANCER) // Cazic-Thule Erudites go to Paineel WORKS 
		{
			in_pp->x = 839.42;
			in_pp->y = 785.43;
			in_pp->z = -24.12;
			in_pp->zone_id = 75; // paineel
			in_pp->binds[0].zoneId = 75;
			in_pp->binds[0].x = 200.00;
			in_pp->binds[0].y = 800.00;
			in_pp->binds[0].z = 3.39;
		}
		else
		{
			in_pp->x = 75.89;
			in_pp->y = -14.76;
			in_pp->z = 19.75;
			in_pp->zone_id = 24;	// erudnext
			in_pp->binds[0].zoneId = 38;	// tox
			in_pp->binds[0].x = 204.20;
			in_pp->binds[0].y = 2358.52;
			in_pp->binds[0].z = -44.89;
		}
		break;
	}
	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->x = 233.76;
			in_pp->y = 20.43;
			in_pp->z = 2.44;
			in_pp->zone_id = 2;	// qeynos2
			in_pp->binds[0].zoneId = 2;	// qeynos2
			in_pp->binds[0].x = 120;
			in_pp->binds[0].y = 406.14;
			in_pp->binds[0].z = 1.88;
		}
		break;
	}
	case 2: // Halas
	{
		in_pp->x = 75.54;
		in_pp->y = 127.53;
		in_pp->z = 4.38;
		in_pp->zone_id = 29;	// halas
		in_pp->binds[0].zoneId = 30;	// everfrost
		in_pp->binds[0].x = 578.13;
		in_pp->binds[0].y = 3346.48;
		in_pp->binds[0].z = -49.70;
		break;
	}
	case 3: // Rivervale
	{
		in_pp->x = -157.54;
		in_pp->y = 100.40;
		in_pp->z = 46.16;
		in_pp->zone_id = 19;	// rivervale
		in_pp->binds[0].zoneId = 33;	// misty
		in_pp->binds[0].x = -2427.33;
		in_pp->binds[0].y = 491.37;
		in_pp->binds[0].z = 1.36;
		break;
	}
	case 4: // Freeport
	{
		in_pp->x = -667.86;
		in_pp->y = 146.32;
		in_pp->z = -54.09;
		in_pp->zone_id = 10;	// freporte
		in_pp->binds[0].zoneId = 9;	// freportw
		in_pp->binds[0].x = 100.35;
		in_pp->binds[0].y = 33.62;
		in_pp->binds[0].z = -26.12;
		break;
	}
	case 5: // Dark Elves
	{
		in_pp->x = -559.71;
		in_pp->y = -55.14;
		in_pp->z = -40.09;
		in_pp->zone_id = 40;	// neriaka
		in_pp->binds[0].zoneId = 25;	// nektulos
		in_pp->binds[0].x = -1019.67;
		in_pp->binds[0].y = 2309.76;
		in_pp->binds[0].z = 1.56;
		break;
	}
	case 6: // Trolls
	{
		in_pp->x = 3.0;
		in_pp->y = 23.0;
		in_pp->z = 5.0;
		in_pp->zone_id = 52;	// gukta
		in_pp->binds[0].zoneId = 46;	// innothule
		in_pp->binds[0].x = -536.88;
		in_pp->binds[0].y = -2617.37;
		in_pp->binds[0].z = -20.70;
		break;
	}
	case 7: // Ogres
	{
		in_pp->x = 504.00;
		in_pp->y = 208.00;
		in_pp->z = 61.59;
		in_pp->zone_id = 49;	// oggok
		in_pp->binds[0].zoneId = 47;	// feerrott
		in_pp->binds[0].x = 900.70;
		in_pp->binds[0].y = 1446.68;
		in_pp->binds[0].z = 62.94;
		break;
	}
	case 8: // Dwarfs
	{
		in_pp->x = 38.00;
		in_pp->y = 43.00;
		in_pp->z = 2.50;
		in_pp->zone_id = 60;	// kaladima
		in_pp->binds[0].zoneId = 68;	// butcher
		in_pp->binds[0].x = -212.98;
		in_pp->binds[0].y = 2876.49;
		in_pp->binds[0].z = -0.90;
		break;
	}
	case 9: // Wood Elves
	{
		if (in_cc->class_ == WARRIOR) // 
		{
			in_pp->x = 276.99;
			in_pp->y = 343.69;
			in_pp->z = 75.85;
			in_pp->zone_id = 54;	// gfaydark
			in_pp->binds[0].zoneId = 54;	// gfaydark
			in_pp->binds[0].x = 218.55;
			in_pp->binds[0].y = 204.54;
			in_pp->binds[0].z = -1.50;
		}
		else if (in_cc->class_ == BARD) // 
		{
			in_pp->x = 248.76;
			in_pp->y = -235.21;
			in_pp->z = 75.85;
			in_pp->zone_id = 54;	// gfaydark
			in_pp->binds[0].zoneId = 54;	// gfaydark
			in_pp->binds[0].x = 218.55;
			in_pp->binds[0].y = 204.54;
			in_pp->binds[0].z = -1.50;
		}
		else if (in_cc->class_ == RANGER) // 
		{
			in_pp->x = 472.72;
			in_pp->y = -411.62;
			in_pp->z = 116.28;
			in_pp->zone_id = 54;	// gfaydark
			in_pp->binds[0].zoneId = 54;	// gfaydark
			in_pp->binds[0].x = 218.55;
			in_pp->binds[0].y = 204.54;
			in_pp->binds[0].z = -1.50;
		}
		else if (in_cc->class_ == ROGUE) // 
		{
			in_pp->x = -211.92;
			in_pp->y = -499.10;
			in_pp->z = 159.85;
			in_pp->zone_id = 54;	// gfaydark
			in_pp->binds[0].zoneId = 54;	// gfaydark
			in_pp->binds[0].x = 218.55;
			in_pp->binds[0].y = 204.54;
			in_pp->binds[0].z = -1.50;
		}
		else if (in_cc->class_ == DRUID) // 
		{
			in_pp->x = 224.11;
			in_pp->y = -628.38;
			in_pp->z = 75.81;
			in_pp->zone_id = 54;	// gfaydark
			in_pp->binds[0].zoneId = 54;	// gfaydark
			in_pp->binds[0].x = 218.55;
			in_pp->binds[0].y = 204.54;
			in_pp->binds[0].z = -1.50;
		}
		else {
			in_pp->x = 218.55;
			in_pp->y = 204.54;
			in_pp->z = -1.50;
			in_pp->zone_id = 54;	// gfaydark
			in_pp->binds[0].zoneId = 54;	// gfaydark
			in_pp->binds[0].x = 218.55;
			in_pp->binds[0].y = 204.54;
			in_pp->binds[0].z = -1.50;
		}
		break;
	}
	case 10: // High Elves
	{
		in_pp->x = 94.00;
		in_pp->y = -25.00;
		in_pp->z = 1.88;
		in_pp->zone_id = 61;	// felwithea
		in_pp->binds[0].zoneId = 54;	// gfaydark
		in_pp->binds[0].x = -2331.74;
		in_pp->binds[0].y = -1999.01;
		in_pp->binds[0].z = 27.36;
		break;
	}
	case 11: // Gnomes
	{ // Case
		if (in_cc->deity == 201) // Deity
		{
			if (in_cc->class_ == CLERIC) // 
			{
				in_pp->x = -403.04;
				in_pp->y = 2091.60;
				in_pp->z = -182.06;
				in_pp->zone_id = 55;	// akanon
				in_pp->binds[0].zoneId = 56;	// steamfont
				in_pp->binds[0].x = 556.56;
				in_pp->binds[0].y = -1810.46;
				in_pp->binds[0].z = -110.03;
			}
			else if (in_cc->class_ == ENCHANTER) // 
			{
				in_pp->x = -587.69;
				in_pp->y = 2031.06;
				in_pp->z = -182.06;
				in_pp->zone_id = 55;	// akanon
				in_pp->binds[0].zoneId = 56;	// steamfont
				in_pp->binds[0].x = 556.56;
				in_pp->binds[0].y = -1810.46;
				in_pp->binds[0].z = -110.03;
			}
			else if (in_cc->class_ == MAGICIAN) // 
			{
				in_pp->x = -587.69;
				in_pp->y = 2031.06;
				in_pp->z = -182.06;
				in_pp->zone_id = 55;	// akanon
				in_pp->binds[0].zoneId = 56;	// steamfont
				in_pp->binds[0].x = 556.56;
				in_pp->binds[0].y = -1810.46;
				in_pp->binds[0].z = -110.03;
			}
			else if (in_cc->class_ == NECROMANCER) // 
			{
				in_pp->x = -403.04;
				in_pp->y = 2091.60;
				in_pp->z = -182.06;
				in_pp->zone_id = 55;	// akanon
				in_pp->binds[0].zoneId = 56;	// steamfont
				in_pp->binds[0].x = 556.56;
				in_pp->binds[0].y = -1810.46;
				in_pp->binds[0].z = -110.03;
			}
			else if (in_cc->class_ == ROGUE) // 
			{
				in_pp->x = -498.21;
				in_pp->y = 2067.43;
				in_pp->z = -182.06;
				in_pp->zone_id = 55;	// akanon
				in_pp->binds[0].zoneId = 56;	// steamfont
				in_pp->binds[0].x = 556.56;
				in_pp->binds[0].y = -1810.46;
				in_pp->binds[0].z = -110.03;
			}
			else if (in_cc->class_ == SHADOWKNIGHT) // 
			{
				in_pp->x = -435.80;
				in_pp->y = 2139.74;
				in_pp->z = -182.06;
				in_pp->zone_id = 55;	// akanon
				in_pp->binds[0].zoneId = 56;	// steamfont
				in_pp->binds[0].x = 556.56;
				in_pp->binds[0].y = -1810.46;
				in_pp->binds[0].z = -110.03;
			}
			else if (in_cc->class_ == WARRIOR) // 
			{
				in_pp->x = -511.52;
				in_pp->y = 2109.26;
				in_pp->z = -182.06;
				in_pp->zone_id = 55;	// akanon
				in_pp->binds[0].zoneId = 56;	// steamfont
				in_pp->binds[0].x = 556.56;
				in_pp->binds[0].y = -1810.46;
				in_pp->binds[0].z = -110.03;
			}
			else if (in_cc->class_ == WIZARD) // 
			{
				in_pp->x = -587.69;
				in_pp->y = 2031.06;
				in_pp->z = -182.06;
				in_pp->zone_id = 55;	// akanon
				in_pp->binds[0].zoneId = 56;	// steamfont
				in_pp->binds[0].x = 556.56;
				in_pp->binds[0].y = -1810.46;
				in_pp->binds[0].z = -110.03;
			}
		} // close deity
		else
		{
			if (in_cc->class_ == PALADIN) // 
			{
				in_pp->x = -544.65;
				in_pp->y = 1230.97;
				in_pp->z = -40.09;
				in_pp->zone_id = 55;	// akanon
				in_pp->binds[0].zoneId = 56;	// steamfont
				in_pp->binds[0].x = 556.56;
				in_pp->binds[0].y = -1810.46;
				in_pp->binds[0].z = -110.03;
			}
			else if (in_cc->class_ == CLERIC) // 
			{
				in_pp->x = -557.09;
				in_pp->y = 1190.74;
				in_pp->z = -40.09;
				in_pp->zone_id = 55;	// akanon
				in_pp->binds[0].zoneId = 56;	// steamfont
				in_pp->binds[0].x = 556.56;
				in_pp->binds[0].y = -1810.46;
				in_pp->binds[0].z = -110.03;
			}
			else if (in_cc->class_ == ENCHANTER) // 
			{
				in_pp->x = -1008.20;
				in_pp->y = 1083.57;
				in_pp->z = 29.88;
				in_pp->zone_id = 55;	// akanon
				in_pp->binds[0].zoneId = 56;	// steamfont
				in_pp->binds[0].x = 556.56;
				in_pp->binds[0].y = -1810.46;
				in_pp->binds[0].z = -110.03;
			}
			else if (in_cc->class_ == MAGICIAN) // 
			{
				in_pp->x = -1008.20;
				in_pp->y = 1083.57;
				in_pp->z = 29.88;
				in_pp->zone_id = 55;	// akanon
				in_pp->binds[0].zoneId = 56;	// steamfont
				in_pp->binds[0].x = 556.56;
				in_pp->binds[0].y = -1810.46;
				in_pp->binds[0].z = -110.03;
			}
			else if (in_cc->class_ == ROGUE) // 
			{
				in_pp->x = -605.87;
				in_pp->y = 1240.76;
				in_pp->z = -54.09;
				in_pp->zone_id = 55;	// akanon
				in_pp->binds[0].zoneId = 56;	// steamfont
				in_pp->binds[0].x = 556.56;
				in_pp->binds[0].y = -1810.46;
				in_pp->binds[0].z = -110.03;
			}
			else if (in_cc->class_ == WARRIOR) // 
			{
				in_pp->x = -436.47;
				in_pp->y = 850.33;
				in_pp->z = -30.12;
				in_pp->zone_id = 55;	// akanon
				in_pp->binds[0].zoneId = 56;	// steamfont
				in_pp->binds[0].x = 556.56;
				in_pp->binds[0].y = -1810.46;
				in_pp->binds[0].z = -110.03;
			}
			else if (in_cc->class_ == WIZARD) // 
			{
				in_pp->x = -1008.20;
				in_pp->y = 1083.57;
				in_pp->z = 29.88;
				in_pp->zone_id = 55;	// akanon
				in_pp->binds[0].zoneId = 56;	// steamfont
				in_pp->binds[0].x = 556.56;
				in_pp->binds[0].y = -1810.46;
				in_pp->binds[0].z = -110.03;
			}	
		} // close else
		break;
		} // close case
	
	case 12: // Iksar
	{
		if (in_cc->class_ == SHADOWKNIGHT) // 
		{
			in_pp->x = -190.09;
			in_pp->y = 1041.38;
			in_pp->z = 45.72;
			in_pp->zone_id = 106; // cabeast
			in_pp->binds[0].zoneId = 78; // field of bone
			in_pp->binds[0].x = 3217.32;
			in_pp->binds[0].y = -2395.32;
			in_pp->binds[0].z = 10.31;
		}
		else if (in_cc->class_ == BEASTLORD) // 
		{
			in_pp->x = -190.09;
			in_pp->y = 1041.38;
			in_pp->z = 45.72;
			in_pp->zone_id = 106; // cabeast
			in_pp->binds[0].zoneId = 78; // field of bone
			in_pp->binds[0].x = 3217.32;
			in_pp->binds[0].y = -2395.32;
			in_pp->binds[0].z = 10.31;
		}
		else if (in_cc->class_ == SHAMAN) // 
		{
			in_pp->x = -189.26;
			in_pp->y = 1030.43;
			in_pp->z = 20.75;
			in_pp->zone_id = 106; // cabeast
			in_pp->binds[0].zoneId = 78; // field of bone
			in_pp->binds[0].x = 3217.32;
			in_pp->binds[0].y = -2395.32;
			in_pp->binds[0].z = 10.31;
		}
		else if (in_cc->class_ == NECROMANCER) //  
		{
			in_pp->x = 793.48;
			in_pp->y = 315.15;
			in_pp->z = 76.72;
			in_pp->zone_id = 82; // cabwest
			in_pp->binds[0].zoneId = 78; // field of bone
			in_pp->binds[0].x = 3217.32;
			in_pp->binds[0].y = -2395.32;
			in_pp->binds[0].z = 10.31;
		}
		else if (in_cc->class_ == WARRIOR) //  
		{
			in_pp->x = 16.00;
			in_pp->y = -477.00;
			in_pp->z = 59.72;
			in_pp->zone_id = 106; // cabeast
			in_pp->binds[0].zoneId = 78; // field of bone
			in_pp->binds[0].x = 3217.32;
			in_pp->binds[0].y = -2395.32;
			in_pp->binds[0].z = 10.31;
		}
		else if (in_cc->class_ == MONK) // 
		{
			in_pp->x = -42.96;
			in_pp->y = 420.47;
			in_pp->z = 6.75;
			in_pp->zone_id = 106; // cabeast
			in_pp->binds[0].zoneId = 78; // field of bone
			in_pp->binds[0].x = 3217.32;
			in_pp->binds[0].y = -2395.32;
			in_pp->binds[0].z = 10.31;
		}
		else
		{
			in_pp->zone_id = 82;	// cabwest
			in_pp->binds[0].zoneId = 78;	// fieldofbone
		}
		break;
	}
	case 13: // Vahshir
	{
		if (in_cc->class_ == SHAMAN) // 
		{
			in_pp->x = 101.07;
			in_pp->y = 58.30;
			in_pp->z = -259.50;
			in_pp->zone_id = 155; // sharvahl
			in_pp->binds[0].zoneId = 165; // shadeweavers
			in_pp->binds[0].x = -3399.17;
			in_pp->binds[0].y = -2132.69;
			in_pp->binds[0].z = -100.65;
		}
		else if (in_cc->class_ == BEASTLORD) // 
		{
			in_pp->x = 89.92;
			in_pp->y = 275.48;
			in_pp->z = -259.52;
			in_pp->zone_id = 155; // sharvahl
			in_pp->binds[0].zoneId = 165; // shadeweavers
			in_pp->binds[0].x = -3399.17;
			in_pp->binds[0].y = -2132.69;
			in_pp->binds[0].z = -100.65;
		}
		else if (in_cc->class_ == BARD) // 
		{
			in_pp->x = 554.77;
			in_pp->y = -0.80;
			in_pp->z = -103.43;
			in_pp->zone_id = 155; // sharvahl
			in_pp->binds[0].zoneId = 165; // shadeweavers
			in_pp->binds[0].x = -3399.17;
			in_pp->binds[0].y = -2132.69;
			in_pp->binds[0].z = -100.65;
		}
		else if (in_cc->class_ == WARRIOR) // 
		{
			in_pp->x = -538.20;
			in_pp->y = -144.16;
			in_pp->z = -259.44;
			in_pp->zone_id = 155; // sharvahl
			in_pp->binds[0].zoneId = 165; // shadeweavers
			in_pp->binds[0].x = -3399.17;
			in_pp->binds[0].y = -2132.69;
			in_pp->binds[0].z = -100.65;
		}
		else if (in_cc->class_ == ROGUE) // 
		{
			in_pp->x = -300.53;
			in_pp->y = 191.60;
			in_pp->z = -247.53;
			in_pp->zone_id = 155; // sharvahl
			in_pp->binds[0].zoneId = 165; // shadeweavers
			in_pp->binds[0].x = -3399.17;
			in_pp->binds[0].y = -2132.69;
			in_pp->binds[0].z = -100.65;
		}
		break;
	}
	default:
		if (in_cc->race == 330)
		{
			in_pp->x = 227.00;
			in_pp->y = -1762.43;
			in_pp->z = 3.01;
			in_pp->zone_id = 50; // rathemtn
			in_pp->binds[0].zoneId = 50;
			in_pp->binds[0].x = 227.00;
			in_pp->binds[0].y = 1762.43;
			in_pp->binds[0].z = 3.01;
		}
	}
}
__________________
Reply With Quote