Area Changes and other fixes
added areas and ccoh, fixed some areas to work with crafting fixed some on death issues added server entry/ooc
This commit is contained in:
		| @@ -1,496 +0,0 @@ | ||||
| #include "mk_inc_generic" | ||||
|  | ||||
| #include "mk_inc_body" | ||||
| #include "mk_inc_craft" | ||||
| #include "mk_inc_ccoh_db" | ||||
| #include "mk_inc_states" | ||||
| #include "mk_inc_horse" | ||||
| #include "mk_inc_delimiter" | ||||
|  | ||||
| int GetIsCraftingDisabled(object oPC, int i) | ||||
| { | ||||
|     string sVarName = "MK_DISABLE_CRAFT_" + MK_IntToString(i, 2, "0"); | ||||
|     return (GetLocalInt(oPC, sVarName)==1); | ||||
| } | ||||
|  | ||||
| int StartingConditional() | ||||
| { | ||||
|     object oPC = GetPCSpeaker(); | ||||
|  | ||||
|     MK_CCOH_DB_Init(oPC); | ||||
|  | ||||
|     int nState = MK_GenericDialog_GetState(); | ||||
|  | ||||
|     int nAction = MK_GenericDialog_GetAction(); | ||||
|  | ||||
|     object oTarget = MK_GetCurrentTarget(oPC); | ||||
|  | ||||
|     int nBodyPartToBeModified = MK_GetBodyPartToBeModified(oPC); | ||||
|     MK_DEBUG_TRACE("mk_pre_body: nState="+IntToString(nState)+", nAction="+IntToString(nAction)); | ||||
|  | ||||
|     switch (nState) | ||||
|     { | ||||
|     case MK_STATE_INIT: | ||||
|         switch (nAction) | ||||
|         { | ||||
|         case MK_CRAFTBODY_HORSE: | ||||
|             // Riding | ||||
|             StoreCameraFacing(); | ||||
|             nState = MK_STATE_BODY_MODIFY; | ||||
|             CISetCurrentModMode(oPC, MK_CI_MODMODE_BODY); | ||||
|             MK_SetBodyPartToBeModified(oPC, nAction, TRUE); | ||||
| //            MK_SaveBodyPart(oPC); | ||||
|             MK_InitializeHorseSelection(oTarget); | ||||
|             MK_AddTemporaryEffects(oPC, MK_TAG_TEMP_EFFECT, FALSE, oTarget); | ||||
|             break; | ||||
|         default: | ||||
|             StoreCameraFacing(); | ||||
|             nState = MK_STATE_BODY_SELECT; | ||||
|             break; | ||||
|         } | ||||
|         MK_CCOH_DB_SaveBody(oTarget); | ||||
| //        MK_SaveBody(oPC, 0); | ||||
|         MK_GenericDialog_SetState(nState); | ||||
|         break; | ||||
|     case MK_STATE_VFX_SELECT_FILTER: | ||||
| //        if (nAction==255) | ||||
|         MK_GenericDialog_SetState(nState = MK_STATE_BODY_SELECT); | ||||
|         break; | ||||
|     case MK_STATE_DATABASE_1: | ||||
|         MK_GenericDialog_SetState(nState = MK_STATE_BODY_SELECT); | ||||
|         break; | ||||
|     case MK_STATE_DATABASE_3: | ||||
|         switch (nAction) | ||||
|         { | ||||
|         case 250: | ||||
|         { | ||||
|             int nSelectedIASStrTypes = MK_CCOH_DB_GetSelectedIASStrTypes(oPC); | ||||
|             MK_DEBUG_TRACE("> nIASStrTypes="+IntToString(nSelectedIASStrTypes)+ | ||||
|                 ", RWmode="+IntToString(MK_CCOH_DB_GetReadWriteMode(oPC))); | ||||
|             switch (MK_CCOH_DB_GetReadWriteMode(oPC)) | ||||
|             { | ||||
|             case MK_CCOH_DB_READ: | ||||
|                 switch (CIGetCurrentModMode(oPC)) | ||||
|                 { | ||||
|                 case MK_CI_MODMODE_BODY: | ||||
|                     if (MK_CCOH_DB_ReadBodyAppearanceFromDatabase( | ||||
|                         oPC, oTarget, | ||||
|                         MK_CCOH_DB_GetCurrentSlot(oPC), | ||||
|                         nSelectedIASStrTypes)) | ||||
|                     { | ||||
|                         SendMessageToPC(oPC, "Appearance read from database!"); | ||||
|                     } | ||||
|                     else | ||||
|                     { | ||||
|                         SendMessageToPC(oPC, "Failed to read appearance from database!"); | ||||
|                     } | ||||
|                     break; | ||||
|                 } | ||||
|                 break; | ||||
|             case MK_CCOH_DB_WRITE: | ||||
|                 switch (CIGetCurrentModMode(oPC)) | ||||
|                 { | ||||
|                 case MK_CI_MODMODE_BODY: | ||||
|                     if (MK_CCOH_DB_WriteBodyAppearanceToDatabase( | ||||
|                         oPC, oTarget, | ||||
|                         MK_CCOH_DB_GetCurrentSlot(oPC), | ||||
|                         nSelectedIASStrTypes, | ||||
|                         MK_CCOH_DB_GetCurrentSlotName(oPC))) | ||||
|                     { | ||||
|                         SendMessageToPC(oPC, "Appearance written to database!"); | ||||
|                     } | ||||
|                     else | ||||
|                     { | ||||
|                         SendMessageToPC(oPC, "Failed to write appearance to database!"); | ||||
|                     } | ||||
|                     break; | ||||
|                 } | ||||
|                 break; | ||||
|             } | ||||
|             break; | ||||
|         } | ||||
|         } | ||||
|         nState = MK_STATE_BODY_SELECT; | ||||
|         MK_GenericDialog_SetState(nState); | ||||
|         break; | ||||
|     case MK_STATE_BODY_SELECT: | ||||
|         if ((nAction>0) && (nAction<=MK_CRAFTBODY_NUMBER_OF_BODYPARTS)) | ||||
|         { | ||||
|             // So the finish/cancel scripts work properly | ||||
|             CISetCurrentModMode(oPC, MK_CI_MODMODE_BODY); | ||||
|  | ||||
|             MK_SetBodyPartToBeModified(oPC, nAction, TRUE); | ||||
| //            MK_SaveBodyPart(oPC); | ||||
|  | ||||
|             switch (nAction) | ||||
|             { | ||||
|             case MK_CRAFTBODY_BODY: | ||||
|                 MK_SetSubPartToBeModified(oPC, -1, FALSE); | ||||
|                 break; | ||||
|             case MK_CRAFTBODY_COLOR: | ||||
|                 MK_SetSubPartToBeModified(oPC, -1, oPC==oTarget); | ||||
|                 break; | ||||
|             } | ||||
|             nState = MK_STATE_BODY_MODIFY; | ||||
|             MK_GenericDialog_SetState(nState); | ||||
|         } | ||||
| /*        else if (nAction==MK_CRAFTBODY_SAVERESTORE) | ||||
|         { | ||||
|             // So the cancel script restores the body | ||||
|             CISetCurrentModMode(oPC, MK_CI_MODMODE_BODY); | ||||
|             MK_SetBodyPartToBeModified(oPC, nAction); | ||||
| //            MK_SaveBody(oPC, 0); | ||||
|         }*/ | ||||
|         else if (nAction!=255) | ||||
|         { | ||||
|             SendMessageToPC(oPC, "mk_pre_body: I think we shouldn't be here. Something went wrong?"); | ||||
|         } | ||||
|  | ||||
|         switch (MK_GetBodyPartToBeModified(oPC)) | ||||
|         { | ||||
| //        case MK_CRAFTBODY_HORSE: | ||||
|         case MK_CRAFTBODY_BODY: | ||||
|         case MK_CRAFTBODY_COLOR: | ||||
|         case MK_CRAFTBODY_PHENOTYPE: | ||||
|         case MK_CRAFTBODY_HEAD: | ||||
|         case MK_CRAFTBODY_TAIL: | ||||
|         case MK_CRAFTBODY_WINGS: | ||||
| //        case MK_CRAFTBODY_SCALE: | ||||
|             MK_AddTemporaryEffects(oPC, MK_TAG_TEMP_EFFECT, FALSE, oTarget); | ||||
|             break; | ||||
|         } | ||||
|  | ||||
|         break; | ||||
|     case MK_STATE_BODY_MODIFY: | ||||
|  | ||||
|         switch (nBodyPartToBeModified) | ||||
|         { | ||||
|         case MK_CRAFTBODY_PORTRAIT: | ||||
|             if ((nAction>=1) && (nAction<=4)) | ||||
|             { | ||||
|                 MK_NewPortrait(oTarget, nAction, oPC); | ||||
|                 ClearAllActions(); | ||||
|                 // So we have the proper portrait in the dialog as well | ||||
|                 ActionPauseConversation(); | ||||
|                 ActionWait(GetLocalFloat(oPC, "MK_PORTRAIT_DELAY")); | ||||
|                 ActionResumeConversation(); | ||||
|             } | ||||
|             break; | ||||
|         case MK_CRAFTBODY_HEAD: | ||||
|             switch (nAction) | ||||
|             { | ||||
|             case 1: | ||||
|             case 2: | ||||
|                 MK_NewBodyPart(oTarget, nAction, oPC); | ||||
|                 break; | ||||
|             case 20: | ||||
|             case 21: | ||||
|             case 22: | ||||
|             case 23: | ||||
|             case 24: | ||||
|                 SetLocalInt(oPC, MK_CRAFTBODY_HEAD_FILTER, (nAction-20)); | ||||
|                 break; | ||||
|             case 250: | ||||
|                 MK_SwapTattooColors(oTarget); | ||||
|                 break; | ||||
|             } | ||||
|             break; | ||||
|         case MK_CRAFTBODY_PHENOTYPE: | ||||
|         case MK_CRAFTBODY_TAIL: | ||||
|         case MK_CRAFTBODY_WINGS: | ||||
|             switch (nAction) | ||||
|             { | ||||
|             case 1: | ||||
|             case 2: | ||||
|             case 3: | ||||
|                 MK_NewBodyPart(oTarget, nAction, oPC); | ||||
|                 break; | ||||
|             } | ||||
|             break; | ||||
|         case MK_CRAFTBODY_BODY: | ||||
|         { | ||||
|             int nCurrentSubPart = MK_GetSubPartToBeModified(oPC); | ||||
|             if (nCurrentSubPart==-1) | ||||
|             { | ||||
|                 nCurrentSubPart = nAction; | ||||
|                 nAction = -1; | ||||
|                 MK_SetSubPartToBeModified(oPC, nCurrentSubPart, (oPC==oTarget) && (nBodyPartToBeModified == MK_CRAFTBODY_BODY)); | ||||
|             } | ||||
|             else if (nAction == -1) | ||||
|             { | ||||
|                 nCurrentSubPart = -1; | ||||
|                 MK_SetSubPartToBeModified(oPC, nCurrentSubPart, (oPC==oTarget) && (nBodyPartToBeModified == MK_CRAFTBODY_BODY)); | ||||
|             } | ||||
|  | ||||
|             if ((nCurrentSubPart!=-1) && (nAction!=-1)) | ||||
|             { | ||||
|                 switch (nAction) | ||||
|                 { | ||||
|                 case 1: | ||||
|                 case 2: | ||||
|                     MK_NewBodyPart(oTarget, nAction, oPC); | ||||
|                     break; | ||||
|                 } | ||||
|             } | ||||
|             break; | ||||
|         } | ||||
|         case MK_CRAFTBODY_COLOR: | ||||
|         { | ||||
|             int nCurrentSubPart = MK_GetSubPartToBeModified(oPC); | ||||
|             if ((nCurrentSubPart==-1) && (nAction==250)) | ||||
|             { | ||||
|                 MK_SwapTattooColors(oTarget); | ||||
|             } | ||||
|             else if (nCurrentSubPart==-1) | ||||
|             { | ||||
|                 nCurrentSubPart = nAction; | ||||
|                 nAction = -1; | ||||
|                 MK_SetSubPartToBeModified(oPC, nCurrentSubPart, (oPC==oTarget) && (nBodyPartToBeModified == MK_CRAFTBODY_BODY)); | ||||
|             } | ||||
|             else if (nAction == -1) | ||||
|             { | ||||
|                 nCurrentSubPart = -1; | ||||
|                 MK_SetSubPartToBeModified(oPC, nCurrentSubPart, (oPC==oTarget) && (nBodyPartToBeModified == MK_CRAFTBODY_BODY)); | ||||
|             } | ||||
|  | ||||
|             if ((nCurrentSubPart!=-1) && (nAction!=-1)) | ||||
|             { | ||||
|                 switch (nAction) | ||||
|                 { | ||||
|                 case 1: | ||||
|                 case 2: | ||||
|                     MK_NewBodyPart(oTarget, nAction, oPC); | ||||
|                     break; | ||||
|                 } | ||||
|             } | ||||
|             break; | ||||
|         } | ||||
|         case MK_CRAFTBODY_HORSE: | ||||
|         { | ||||
|             int nHorse=-1; | ||||
|             switch (nAction) | ||||
|             { | ||||
|             case 1: | ||||
|             case 2: | ||||
|                 MK_NewBodyPart(oTarget, nAction, oPC); | ||||
|                 break; | ||||
|             case 3: | ||||
|                 nHorse = GetLocalInt(oTarget, MK_VAR_CURRENT_HORSE); | ||||
|                 break; | ||||
|             case 4: | ||||
|                 nHorse = MK_HORSE_1; | ||||
|                 break; | ||||
|             case 5: | ||||
|                 nHorse = MK_HORSE_2; | ||||
|                 break; | ||||
|             case 6: | ||||
|                 nHorse = MK_HORSE_3; | ||||
|                 break; | ||||
|             case 7: | ||||
|                 nHorse = MK_HORSE_4; | ||||
|                 break; | ||||
|             case 8: | ||||
|                 nHorse = MK_HORSE_5; | ||||
|                 break; | ||||
|             case 20: | ||||
|                 nHorse = 0; | ||||
|                 break; | ||||
|             } | ||||
|             if (nHorse!=-1) | ||||
|             { | ||||
|                 MK_CreatureMountHorse(oTarget,nHorse); | ||||
|             } | ||||
|             break; | ||||
|         } | ||||
|         } | ||||
|         break; | ||||
|     } | ||||
|  | ||||
|     switch (nState) | ||||
|     { | ||||
|     case MK_STATE_BODY_SELECT: | ||||
|     { | ||||
| //        MK_DEBUG_TRACE("mk_pre_body: state=MK_STATE_BODY_SELECT"); | ||||
|         int nPartBased = MK_GetIsPartBasedAppearanceType(oTarget); | ||||
|         int iCondition; | ||||
|         int bOk; | ||||
|         string sVarName; | ||||
|         for (iCondition=11; iCondition<=26; iCondition++) | ||||
|         { | ||||
|             bOk = (!GetIsCraftingDisabled(oPC, iCondition)); | ||||
|             switch (iCondition) | ||||
|             { | ||||
|             case 11: // portraits | ||||
|                 bOk = bOk && MK_VERSION_GetIsVersionGreaterEqual_1_67(oPC); | ||||
|                 break; | ||||
|             case 12: // head | ||||
|             case 14: // body parts | ||||
|             case 15: // tail | ||||
|             case 16: // wings | ||||
|                 bOk = bOk && nPartBased && MK_VERSION_GetIsVersionGreaterEqual_1_67(oPC); | ||||
|                 break; | ||||
|             case 13: // pheno | ||||
|                 bOk = bOk && nPartBased && MK_VERSION_GetIsVersionGreaterEqual_1_64(oPC); | ||||
|                 break; | ||||
|             case 17: // color | ||||
|                 bOk = bOk && nPartBased && MK_VERSION_GetIsVersionGreaterEqual_1_69(oPC); | ||||
|                 break; | ||||
|             case 18: // not used | ||||
|             case 20: // not used | ||||
|                 bOk = FALSE; | ||||
|                 break; | ||||
|             case 21: // scale | ||||
| //                bOk = bOk && MK_VERSION_GetIsVersionGreaterEqual_1_75(oPC); | ||||
|                 bOk = bOk && MK_VERSION_GetIsBuildVersionGreaterEqual(oPC, 8193, 21); | ||||
|                 break; | ||||
|             case 23: // description | ||||
|                 bOk = bOk && MK_VERSION_GetIsVersionGreaterEqual_1_69(oPC) && | ||||
|                     //  (!GetIsCraftingDisabled(oPC, iCondition)) && | ||||
|                         (!MK_CCOH_DB_GetIsBodyChanged(oPC)) && | ||||
|                         (GetLocalInt(oPC, "MK_DISABLE_TEXT_EDITOR")!=1); | ||||
|                 break; | ||||
|             case 25: // footstep type | ||||
|                 bOk = bOk && MK_VERSION_GetIsVersionGreaterEqual_1_66(oPC); | ||||
|                 break; | ||||
|             case 26: // deity | ||||
|                 bOk = bOk && (oPC == oTarget); | ||||
|                 break; | ||||
| //            default: | ||||
| //                bOk = (!GetIsCraftingDisabled(oPC, iCondition)); | ||||
| //                break; | ||||
|             } | ||||
|             MK_GenericDialog_SetCondition(iCondition, bOk); | ||||
|         } | ||||
|         MK_GenericDialog_SetCondition(254, MK_CCOH_DB_GetIsBodyChanged(oPC)); | ||||
|         break; | ||||
|     } | ||||
|     case MK_STATE_BODY_MODIFY: | ||||
| //        MK_DEBUG_TRACE("mk_pre_body: state=MK_STATE_BODY_MODIFY"); | ||||
|  | ||||
|         MK_GenericDialog_SetCondition(254, MK_CCOH_DB_GetIsBodyChanged(oPC)); | ||||
|         MK_GenericDialog_SetCondition(255, FALSE); | ||||
|         MK_GenericDialog_SetCondition(257, TRUE); | ||||
|  | ||||
|         switch (MK_GetBodyPartToBeModified(oPC)) | ||||
|         { | ||||
| /* | ||||
|         case MK_CRAFTBODY_SAVERESTORE: | ||||
|         { | ||||
|             int bUsedAny=FALSE; | ||||
|             int nSlot; | ||||
|             for (nSlot=1; nSlot<=MK_CRAFTBODY_NUMBER_OF_SLOTS; nSlot++) | ||||
|             { | ||||
|                 int bUsed = MK_GetIsUsedSaveBodySlot(oPC, nSlot); | ||||
|                 bUsedAny = bUsedAny || bUsed; | ||||
|                 MK_GenericDialog_SetCondition(nSlot, !bUsed); | ||||
|                 MK_GenericDialog_SetCondition(10+nSlot, bUsed); | ||||
|             } | ||||
|             MK_GenericDialog_SetCondition(0, bUsedAny); | ||||
|             MK_GenericDialog_SetCondition(22, !bIsModified); | ||||
|             break; | ||||
|         } | ||||
| */ | ||||
|         case MK_CRAFTBODY_HEAD: | ||||
|         { | ||||
|             MK_GenericDialog_SetCondition(17, | ||||
|                 MK_VERSION_GetIsVersionGreaterEqual_1_69(oPC) && | ||||
|                 (!GetIsCraftingDisabled(oPC, 17))); | ||||
|  | ||||
|             int nCurrentFilter = GetLocalInt(oPC, MK_CRAFTBODY_HEAD_FILTER); | ||||
|             int nUserFilter    = (GetLocalString(oPC, "MK_2DA_VALID_HEADS")!=""); | ||||
|             int nCEPFilter     = (MK_BODY_GetCEPHeadFilterExists(oPC)); | ||||
|             MK_GenericDialog_SetCondition(20, (nCurrentFilter!=0)); | ||||
|             MK_GenericDialog_SetCondition(21, (nCurrentFilter!=1)); | ||||
|             MK_GenericDialog_SetCondition(22, (nCurrentFilter!=2) && (nUserFilter) && (!nCEPFilter)); | ||||
|             MK_GenericDialog_SetCondition(23, (nCurrentFilter!=3) && (!nUserFilter) && (nCEPFilter)); | ||||
|             MK_GenericDialog_SetCondition(24, (nCurrentFilter!=4) && (nUserFilter) && (nCEPFilter)); | ||||
|  | ||||
|             string sFilter=""; | ||||
|             switch (nCurrentFilter) | ||||
|             { | ||||
|             case 0: | ||||
|                 sFilter = "none"; | ||||
|                 break; | ||||
|             case 1: | ||||
|                 sFilter = "Bioware"; | ||||
|                 break; | ||||
|             case 2: | ||||
|                 sFilter = "User"; | ||||
|                 break; | ||||
|             case 3: | ||||
|                 sFilter = "CEP"; | ||||
|                 break; | ||||
|             case 4: | ||||
|                 sFilter = "User / CEP"; | ||||
|                 break; | ||||
|             } | ||||
|             SetCustomToken(14433, sFilter); | ||||
|  | ||||
|             break; | ||||
|         } | ||||
|         case MK_CRAFTBODY_PORTRAIT: | ||||
|         { | ||||
|             int nMaxCustomId = MK_GetMaxPortraitId(oPC, TRUE); | ||||
|             MK_GenericDialog_SetCondition(3,nMaxCustomId>0); | ||||
|             MK_GenericDialog_SetCondition(4,nMaxCustomId>0); | ||||
|             break; | ||||
|         } | ||||
|         case MK_CRAFTBODY_BODY: | ||||
|         { | ||||
|             int nBodyPart; | ||||
|             for (nBodyPart=0; nBodyPart<=17; nBodyPart++) | ||||
|             { | ||||
|                 int nMaxBodyPartID = MK_GetMaxBodyPartID(oPC, nBodyPart); | ||||
|                 MK_GenericDialog_SetCondition(nBodyPart, nMaxBodyPartID>0); | ||||
|             } | ||||
|             break; | ||||
|         } | ||||
|         case MK_CRAFTBODY_HORSE: | ||||
|         { | ||||
| //            MK_DEBUG_TRACE("mk_pre_body: part=MK_CRAFTBODY_HORSE"); | ||||
|             int bIsRiding = MK_GetIsRiding(oTarget); | ||||
|             int nCurrentHorse = GetLocalInt(oTarget, MK_VAR_CURRENT_HORSE); | ||||
|             int nHorse = GetCreatureTailType(oTarget); | ||||
| //            MK_DEBUG_TRACE("bIsRiding="+IntToString(bIsRiding)+", nCurrentHorse="+IntToString(nCurrentHorse)+", nHorse="+IntToString(nHorse)); | ||||
|             MK_GenericDialog_SetCondition(1, bIsRiding); | ||||
|             MK_GenericDialog_SetCondition(2, bIsRiding); | ||||
|             MK_GenericDialog_SetCondition(3, (nCurrentHorse!=0) && (nHorse!=nCurrentHorse)); | ||||
|             MK_GenericDialog_SetCondition(4, (nCurrentHorse!=MK_HORSE_1) && (nHorse!=MK_HORSE_1)); | ||||
|             MK_GenericDialog_SetCondition(5, (nCurrentHorse!=MK_HORSE_2) && (nHorse!=MK_HORSE_2)); | ||||
|             MK_GenericDialog_SetCondition(6, (nCurrentHorse!=MK_HORSE_3) && (nHorse!=MK_HORSE_3)); | ||||
|             MK_GenericDialog_SetCondition(7, (nCurrentHorse!=MK_HORSE_4) && (nHorse!=MK_HORSE_4)); | ||||
|             MK_GenericDialog_SetCondition(8, (nCurrentHorse!=MK_HORSE_5) && (nHorse!=MK_HORSE_5)); | ||||
|             MK_GenericDialog_SetCondition(20, bIsRiding); | ||||
|             MK_SetBodyPartTokens(oPC, oTarget); | ||||
|  | ||||
|             switch (MK_HORSE_GetHorseSystem(oPC)) | ||||
|             { | ||||
|             case MK_HORSE_BIOWARE_HORSE_SYSTEM: | ||||
|                 MK_GenericDialog_SetCondition(254, FALSE); | ||||
|                 MK_GenericDialog_SetCondition(255, TRUE); | ||||
|                 MK_GenericDialog_SetCondition(257, FALSE); | ||||
|                 SetCustomToken(14424, "Bioware Instant Horse System."); | ||||
|                 break; | ||||
|             case MK_HORSE_CCOH_HORSE_SYSTEM: | ||||
|                 MK_GenericDialog_SetCondition(254, TRUE); | ||||
|                 MK_GenericDialog_SetCondition(255, FALSE); | ||||
|                 MK_GenericDialog_SetCondition(257, TRUE); | ||||
|                 SetCustomToken(14424, "CCOH Simple Horse System."); | ||||
|                 break; | ||||
|             } | ||||
|  | ||||
|             break; | ||||
|         } | ||||
| /*        default: | ||||
|             MK_SetBodyPartTokens(oPC); | ||||
|             break;*/ | ||||
|         } | ||||
|         MK_SetBodyPartTokens(oPC, oTarget); | ||||
|  | ||||
|         break; | ||||
|     } | ||||
|  | ||||
|     MK_DELIMITER_Initialize(); | ||||
|  | ||||
|     return TRUE; | ||||
| } | ||||
		Reference in New Issue
	
	Block a user