public bool Add(QUEST_AUTO_PATH_POS_CHARCODE kData)
 {
     if (this.m_dicQuestAutoPathPosCharCode.ContainsKey(kData.strCharCode))
     {
         return(false);
     }
     this.m_dicQuestAutoPathPosCharCode.Add(kData.strCharCode, kData);
     return(true);
 }
Ejemplo n.º 2
0
    public void SetPlace(string strPlace, ref int i32CastleUnique, ref int i32SectionUnique, ref float fX, ref float fZ, ref int i32SrcCharKind)
    {
        if (strPlace.Equals("off"))
        {
            i32CastleUnique = -1;
            return;
        }
        char[] array    = TKString.StringChar(strPlace);
        byte   b        = 0;
        byte   b2       = 0;
        int    charkind = 0;
        string text     = string.Empty;
        bool   flag     = false;

        while ((int)b < strPlace.Length)
        {
            if (array[(int)b] == ' ')
            {
                b += 1;
            }
            else if (array[(int)b] == '_')
            {
                if (b2 == 0)
                {
                    if (text == "pos")
                    {
                        flag = true;
                    }
                    else
                    {
                        int.TryParse(text, out i32CastleUnique);
                    }
                    text = string.Empty;
                    b2  += 1;
                }
                else if (b2 == 1)
                {
                    if (flag)
                    {
                        int.TryParse(text, out i32CastleUnique);
                    }
                    else
                    {
                        int.TryParse(text, out i32SectionUnique);
                    }
                    text = string.Empty;
                    b2  += 1;
                }
                else if (b2 == 2)
                {
                    if (flag)
                    {
                        float.TryParse(text, out fX);
                    }
                    text = string.Empty;
                    b2  += 1;
                }
                b += 1;
            }
            else if (array[(int)b] == '/')
            {
                text += '_';
                b    += 1;
            }
            else
            {
                text += array[(int)b];
                b    += 1;
            }
        }
        if (flag)
        {
            float.TryParse(text, out fZ);
        }
        else
        {
            int.TryParse(text, out i32SrcCharKind);
            int.TryParse(text, out charkind);
            NrCharKindInfo charKindInfo = NrTSingleton <NrCharKindInfoManager> .Instance.GetCharKindInfo(charkind);

            if (charKindInfo != null)
            {
                QUEST_AUTO_PATH_POS_CHARCODE autoPath = NrTSingleton <NkQuestManager> .Instance.GetAutoPath((int)((short)i32CastleUnique), 0, charKindInfo.GetCode());

                if (autoPath != null)
                {
                    fX = autoPath.fDesX;
                    fZ = autoPath.fDesY;
                }
            }
        }
    }