Пример #1
0
    private NrCharBase _CreateClientNPC(string CharCode, POS3D CharPos, POS3D CharDirection)
    {
        NrCharKindInfo charKindInfoFromCode = NrTSingleton <NrCharKindInfoManager> .Instance.GetCharKindInfoFromCode(CharCode);

        if (charKindInfoFromCode == null)
        {
            return(null);
        }
        NEW_MAKECHAR_INFO nEW_MAKECHAR_INFO = new NEW_MAKECHAR_INFO();

        nEW_MAKECHAR_INFO.CharName     = TKString.StringChar(charKindInfoFromCode.GetName());
        nEW_MAKECHAR_INFO.CharPos.x    = CharPos.x;
        nEW_MAKECHAR_INFO.CharPos.y    = CharPos.y;
        nEW_MAKECHAR_INFO.CharPos.z    = CharPos.z;
        nEW_MAKECHAR_INFO.Direction.x  = CharDirection.x;
        nEW_MAKECHAR_INFO.Direction.y  = CharDirection.y;
        nEW_MAKECHAR_INFO.Direction.z  = CharDirection.z;
        nEW_MAKECHAR_INFO.CharKind     = charKindInfoFromCode.GetCharKind();
        nEW_MAKECHAR_INFO.CharKindType = 3;
        nEW_MAKECHAR_INFO.CharUnique   = (short)(31000 + this._GetEmptySlot());
        NrTSingleton <NkCharManager> .Instance.SetChar(nEW_MAKECHAR_INFO, false, false);

        NrCharBase charByCharUnique = NrTSingleton <NkCharManager> .Instance.GetCharByCharUnique(nEW_MAKECHAR_INFO.CharUnique);

        if (charByCharUnique != null)
        {
            if (charByCharUnique.IsHaveAnimation(eCharAnimationType.TalkStart1))
            {
                charByCharUnique.SetAnimationLoadAfter(eCharAnimationType.TalkStart1);
            }
            else if (charByCharUnique.IsHaveAnimation(eCharAnimationType.TalkStay1))
            {
                charByCharUnique.SetAnimationLoadAfter(eCharAnimationType.TalkStay1);
            }
            else
            {
                charByCharUnique.SetAnimationLoadAfter(eCharAnimationType.Stay1);
            }
        }
        return(charByCharUnique);
    }