Zodiac Modding
Posted: Mon Oct 21, 2013 3:10 am
I'm running HDTP Beta, and when I started playing Zodiac, the player model was HDTP JC with Paul's original texture over his face and hands. It does not look pretty. So, I used WOTgrealDeveloper to export the textures, classes, and audio of the Zodiac mod and DEEDgui to export the meshes. After renaming a whole bunch of folders and images and wavs, and making a few adjustments to PaulDentonPlayer.uc, I finally managed to recompile Zodiac.u in its entirety with UCC.exe. Now if JC Denton HDTP is on, the player model is HDTP JC with Paul's HDTP textures. Unfortunately, the recompiling process has screwed up Zodiac's ability to manifest its original characters and objects. I had to make the SecurityGuard.uc extend Cop just to make the guards show up on the first mission, and Amanda Shays won't show up at all. If I make Amanda Shays extend TiffanySavage, the game ignores Amanda's default properties and spawns a Tiffany Savage that can't even talk to the player. How do I recompile Zodiac so that the game spawns all the NPCs properly?
By the way, the new lines of code I added to PaulDentonPlayer.uc read as such:
By the way, the new lines of code I added to PaulDentonPlayer.uc read as such:
Code: Select all
function bool Facelift(bool bOn)
{
local int i;
if(!Super.Facelift(bOn))
return false;
if(bOn)
Mesh = Mesh(DynamicLoadObject("HDTPCharacters.HDTPGM_Trench", class'Mesh', True));
if(Mesh == None || !bOn)
{
Mesh = Default.Mesh;
for(i = 0; i < 8; ++i)
MultiSkins[i] = Default.MultiSkins[i];
for(i = 0; i < 5; ++i)
{
JCTex[i] = Default.JCTex[i];
JCHandTex[i] = None;
}
}
else
{
MultiSkins[1] = Texture(DynamicLoadObject("HDTPCharacters.Skins.HDTPPaulDentonTex1", class'Texture'));
MultiSkins[2] = Texture(DynamicLoadObject("HDTPCharacters.Skins.HDTPJCDentonTex2", class'Texture'));
MultiSkins[4] = Texture(DynamicLoadObject("HDTPCharacters.Skins.HDTPJCDentonTex4", class'Texture'));
MultiSkins[5] = Texture(DynamicLoadObject("HDTPCharacters.Skins.HDTPJCDentonTex5", class'Texture'));
MultiSkins[6] = Texture(DynamicLoadObject("HDTPCharacters.Skins.HDTPJCDentonTex6", class'Texture'));
MultiSkins[7] = Texture'BlackMaskTex';
for(i = 0; i < 5; ++i)
{
JCTex[i] = Texture(DynamicLoadObject("HDTPCharacters.Skins.HDTPPaulDentonTex"$ (i+1), class'Texture'));
JCHandTex[i] = Texture(DynamicLoadObject("HDTPCharacters.Skins.HDTPJCHandsTex"$ i, class'Texture'));
}
}
SetSkin();
return true;
}
// ----------------------------------------------------------------------
// TravelPostAccept()
// ----------------------------------------------------------------------
event TravelPostAccept()
{
local DeusExLevelInfo info;
local Skill aSkill;
local int i;
Super.TravelPostAccept();
if(Super.Facelift(true))
{
switch(PlayerSkin)
{
case 0: MultiSkins[0] = Texture(DynamicLoadObject("HDTPCharacters.Skins.HDTPPaulDentonTex0", class'Texture'));
MultiSkins[3] = Texture(DynamicLoadObject("HDTPCharacters.Skins.HDTPPaulDentonTex0", class'Texture'));
break;
case 1: MultiSkins[0] = Texture(DynamicLoadObject("HDTPCharacters.Skins.HDTPPaulDentonTex2", class'Texture'));
MultiSkins[3] = Texture(DynamicLoadObject("HDTPCharacters.Skins.HDTPPaulDentonTex2", class'Texture'));
break;
case 2: MultiSkins[0] = Texture(DynamicLoadObject("HDTPCharacters.Skins.HDTPPaulDentonTex3", class'Texture'));
MultiSkins[3] = Texture(DynamicLoadObject("HDTPCharacters.Skins.HDTPPaulDentonTex3", class'Texture'));
break;
case 3: MultiSkins[0] = Texture(DynamicLoadObject("HDTPCharacters.Skins.HDTPPaulDentonTex4", class'Texture'));
MultiSkins[3] = Texture(DynamicLoadObject("HDTPCharacters.Skins.HDTPPaulDentonTex4", class'Texture'));
break;
case 4: MultiSkins[0] = Texture(DynamicLoadObject("HDTPCharacters.Skins.HDTPPaulDentonTex5", class'Texture'));
MultiSkins[3] = Texture(DynamicLoadObject("HDTPCharacters.Skins.HDTPPaulDentonTex5", class'Texture'));
break;
}
}
else
{
switch(PlayerSkin)
{
case 0: MultiSkins[0] = Texture'PaulDentonTex0';
MultiSkins[3] = Texture'PaulDentonTex0';
break;
case 1: MultiSkins[0] = Texture'PaulDentonTex4';
MultiSkins[3] = Texture'PaulDentonTex4';
break;
case 2: MultiSkins[0] = Texture'PaulDentonTex5';
MultiSkins[3] = Texture'PaulDentonTex5';
break;
case 3: MultiSkins[0] = Texture'PaulDentonTex6';
MultiSkins[3] = Texture'PaulDentonTex6';
break;
case 4: MultiSkins[0] = Texture'PaulDentonTex7';
MultiSkins[3] = Texture'PaulDentonTex7';
break;
}
}
}