corbingene01
Wanderer
wow once again thanks. you know i never thought of that lol.
I believe so.Malaperth said:So if the files the server uses are patched up to current, will this work on a 1.0 server?
public enum FoundationType
{
Stone,
DarkWood,
LightWood,
Dungeon,
Brick,
ElvenGrey,
ElvenNatural,
Crystal,
Shadow
}
case FoundationType.Crystal: corner = 0x3672; east = 0x3671; south = 0x3670; post = 0x3677; break;
case FoundationType.Shadow: corner = 0x3614; east = 0x3636; south = 0x3637; post = 0x3617; break;
case 8:
{
if ( isOwner && isCustomizable )
{
FoundationType newType;
switch ( index )
{
case 0: newType = FoundationType.DarkWood; break;
case 1: newType = FoundationType.LightWood; break;
case 2: newType = FoundationType.Dungeon; break;
case 3: newType = FoundationType.Brick; break;
case 4: newType = FoundationType.Stone; break;
case 5: if( Core.ML ) newType = FoundationType.ElvenGrey; else return; break;
case 6: if( Core.ML ) newType = FoundationType.ElvenNatural; else return; break;
case 7: if( Core.ML ) newType = FoundationType.Crystal; else return; break;
case 8: if( Core.ML ) newType = FoundationType.Shadow; else return; break;
default: return;
}
Warning: there are more than oneThistle said:Adding in the 2 new house foundation sets are fairly simple:
In HouseFoundation.cs:
Code:public enum FoundationType { Stone, DarkWood, LightWood, Dungeon, Brick, ElvenGrey, ElvenNatural, Crystal, Shadow }
At the "static void GetFoundationGraphics" section just add in:
Code:case FoundationType.Crystal: corner = 0x3672; east = 0x3671; south = 0x3670; post = 0x3677; break; case FoundationType.Shadow: corner = 0x3614; east = 0x3636; south = 0x3637; post = 0x3617; break;
To get them to actually display in the House Customization Menu, look in HouseGumpAOS.cs for "public override void OnResponse" line 1252 and replace with this:
Code:case 8: { if ( isOwner && isCustomizable ) { FoundationType newType; switch ( index ) { case 0: newType = FoundationType.DarkWood; break; case 1: newType = FoundationType.LightWood; break; case 2: newType = FoundationType.Dungeon; break; case 3: newType = FoundationType.Brick; break; case 4: newType = FoundationType.Stone; break; case 5: if( Core.ML ) newType = FoundationType.ElvenGrey; else return; break; case 6: if( Core.ML ) newType = FoundationType.ElvenNatural; else return; break; case 7: if( Core.ML ) newType = FoundationType.Crystal; else return; break; case 8: if( Core.ML ) newType = FoundationType.Shadow; else return; break; default: return; }
Now we just need to get those darn doors working. *grumbles*
case 8
Oh doors.. I want some of those, how can I get the ItemIDs??mitty said:Had to add a little bit more but added the foundation numbers everything works like a charm and ty TY! I'm working on adding the Doors to the scripts right now. It looks like you gotta add em in the HouseFoundation.cs script in the fixtures and possibly make a Doors.cs script for the constructable portion. I'll post my work soon as I get it going. Thanks again Thistle. Plus if you come up with anything let me know here also, and good luck!
I used your method and it works perfect, ++Karma for theeCheetah2003 said:Seems to work perfect. Just OR'd snicker7's code to the ML code to get that new one. Oddly, in the packet log, that's come out as 0x82FB. I think it's something to do with the 6th character slot, there's some handling for that in the SupportedFeatures packet class.Code:new ExpansionInfo( 4, "9th Edition" , new ClientVersion("5.0.0a"), 0x82DF, 0x1A8, 0xE0 )
Also, if you add that, add something in the enum above it (I put 'NE', cuz can't have a number starting a variable name), and modify CurrentExpansion.cs accordingly as well. No problems so far.
Snicker7's method'll work perfectly (and its a lot simpler), but I just like doing things the 'right' way. BTW, file to edit is a core server file (so you gotta recompile your runuo.exe), ExpansionInfo.cs. Snicker7's method doesn't need a core recompile. Both work just as good.
Back to Server.Multis
FoundationType (Enum)
Stone = 0,
DarkWood = 1,
LightWood = 2,
Dungeon = 3,
Brick = 4
public void AddFixtures( Mobile from, MultiTileEntry[] list )
{
if( m_Fixtures == null )
m_Fixtures = new ArrayList();
uint keyValue = 0;
for( int i = 0; i < list.Length; ++i )
{
MultiTileEntry mte = list[i];
int itemID = mte.m_ItemID & 0x3FFF;
if( itemID >= 0x181D && itemID < 0x1829 )
{
HouseTeleporter tp = new HouseTeleporter( itemID );
AddFixture( tp, mte );
}
else
{
BaseDoor door = null;
[COLOR="Red"]//crystal and shadow
if( itemID >= 0x367B && itemID < 0x369B )
{
int type = (itemID - 0x367B) / 16;
DoorFacing facing = (DoorFacing)(((itemID - 0x367B) / 2) % 8);
switch( type )
{
case 0: door = new GenericHouseDoor( facing, 0x367B, 0xEC, 0xF3 ); break;
case 1: door = new GenericHouseDoor( facing, 0x368B, 0xEC, 0xF3 ); break;
}
}
// add else to if on next line
else[/COLOR] if( itemID >= 0x675 && itemID < 0x6F5 )
{
public static bool IsFixture( int itemID )
{
itemID &= 0x3FFF;
[COLOR="Red"]// crystal and shadow
if(itemID >= 0x367B && itemID < 0x369B)
return true;
//
else [/COLOR]if( itemID >= 0x675 && itemID < 0x6F5 )
return true;