#include "moi_inc_moifunc" #include "inc_dynconv" int RebindFeatToChakra(int nSpellId) { int nReturn = -1; if (nSpellId == 18977) nReturn = CHAKRA_CROWN; else if (nSpellId == 18978) nReturn = CHAKRA_FEET ; else if (nSpellId == 18979) nReturn = CHAKRA_HANDS ; else if (nSpellId == 18980) nReturn = CHAKRA_ARMS ; else if (nSpellId == 18981) nReturn = CHAKRA_BROW ; else if (nSpellId == 18982) nReturn = CHAKRA_SHOULDERS; else if (nSpellId == 18983) nReturn = CHAKRA_THROAT ; else if (nSpellId == 18984) nReturn = CHAKRA_WAIST ; else if (nSpellId == 18985) nReturn = CHAKRA_HEART ; else if (nSpellId == 18986) nReturn = CHAKRA_SOUL ; else if (nSpellId == 18987) nReturn = CHAKRA_TOTEM ; return nReturn; } void main() { object oMeldshaper = OBJECT_SELF; int nClass = GetPrimaryIncarnumClass(oMeldshaper); int nChakra = RebindFeatToChakra(GetSpellId()); int nMeld = GetIsChakraBound(oMeldshaper, nChakra); // The meld to swap to has to be bound to either the regular chakra or the double chakra int nTest = GetIsChakraUsed(oMeldshaper, nChakra, nClass); int nTest2 = GetIsChakraUsed(oMeldshaper, nChakra+11, nClass); // Double is the regular one plus 11 // We switch to the other one here int nSwap = nTest2; if (nMeld == nTest2) nSwap = nTest; // Unbind the meld, then bind it DeleteLocalInt(oMeldshaper, "BoundMeld"+IntToString(nChakra)); BindMeldToChakra(oMeldshaper, nSwap, nChakra, nClass); // Shape them both ShapeSoulmeld(oMeldshaper, nMeld); ShapeSoulmeld(oMeldshaper, nSwap); /* if (GetLocalInt(oMeldshaper, "PerfectMeldshaper")) return; AssignCommand(oMeldshaper, ClearAllActions(TRUE)); SetLocalInt(oMeldshaper, "RebindSoulmeldCnv", GetSpellId()); StartDynamicConversation("moi_rebindcnv", oMeldshaper, DYNCONV_EXIT_NOT_ALLOWED, FALSE, TRUE, oMeldshaper); */ }