예제 #1
0
    public static void SetQuadmistOpponentId(Obj gCur)
    {
        Int32 fldMapNo = (Int32)FF9StateSystem.Common.FF9.fldMapNo;
        Int32 uid      = (Int32)gCur.uid;

        EMinigame.quadmistOpponentId = EMinigame.CreateNPCID(fldMapNo, uid);
        EMinigame.SetGroupingOpponentId();
    }
예제 #2
0
    public static void SetThiefId(Obj gCur)
    {
        Int32 fldMapNo = (Int32)FF9StateSystem.Common.FF9.fldMapNo;

        if (fldMapNo == 908 || fldMapNo == 1908)
        {
            Int32 num  = EMinigame.CreateNPCID(fldMapNo, (Int32)gCur.uid);
            Int32 num2 = num;
            if (num2 == 908009 || num2 == 1908006)
            {
                EMinigame.SetGroupingOpponentId();
            }
        }
    }
예제 #3
0
    private bool IsInQuadHotFix(Quad quad, float x, float z)
    {
        if (this.gMode != 1)
        {
            return(this.IsInQuad(quad, x, z));
        }
        int npcid = EMinigame.CreateNPCID(FF9StateSystem.Common.FF9.fldMapNo, quad.sid);

        if (EventEngineUtils.QuadCircleData.ContainsKey(npcid))
        {
            return(EventEngineUtils.QuadCircleData[npcid].IsCollisionEnter(x, z));
        }
        return(this.IsInQuad(quad, x, z));
    }
예제 #4
0
    private static Boolean IsQuadTalkable(PosObj ctrl, Obj quad)
    {
        if (PersistenSingleton <EventEngine> .Instance.gMode == 1)
        {
            Obj   obj      = (Obj)null;
            Int32 fldMapNo = (Int32)FF9StateSystem.Common.FF9.fldMapNo;
            Int32 uid      = (Int32)quad.uid;
            Int32 key      = EMinigame.CreateNPCID(fldMapNo, uid);
            if (EventEngineUtils.QuadTalkableData.ContainsKey(key))
            {
                obj = PersistenSingleton <EventEngine> .Instance.GetObjUID(EventEngineUtils.QuadTalkableData[key]);
            }
            if (obj != null)
            {
                Int32 num = fldMapNo;
                Int32 num2;
                if (num == 2108)
                {
                    num2 = EventCollision.GetDir((Actor)ctrl);
                    return(num2 > 90 && num2 < 160);
                }
                if (num == 2109)
                {
                    num2 = EventCollision.GetDir((Actor)ctrl);
                    return(num2 > 159 && num2 < 223);
                }
                if (num == 2103)
                {
                    num2 = EventCollision.GetDir((Actor)ctrl);
                    return(num2 > 159 && num2 < 223);
                }
                if (num != 2802)
                {
                    num2 = EventCollision.CollisionAngle(ctrl, obj);
                    return(num2 > -880 && num2 < 880);
                }
                Obj objUID = PersistenSingleton <EventEngine> .Instance.GetObjUID(18);

                Single num3 = 0f;
                if (PersistenSingleton <EventEngine> .Instance.isPosObj(objUID))
                {
                    num3 = -((PosObj)objUID).pos[1];
                }
                num2 = EventCollision.GetDir((Actor)ctrl);
                return(num2 > 16 && num2 < 112 && num3 > 950f);
            }
        }
        return(true);
    }
예제 #5
0
    private Boolean IsInQuadHotFix(Quad quad, Single x, Single z)
    {
        if (this.gMode != 1)
        {
            return(this.IsInQuad(quad, x, z));
        }
        Int32 npcid = EMinigame.CreateNPCID((Int32)FF9StateSystem.Common.FF9.fldMapNo, (Int32)quad.sid);

        if (!EventEngineUtils.QuadCircleData.ContainsKey(npcid))
        {
            return(this.IsInQuad(quad, x, z));
        }
        QuadCircle quadCircle = EventEngineUtils.QuadCircleData[npcid];

        if (!quadCircle.UseOriginalArea)
        {
            return(quadCircle.IsCollisionEnter(x, z));
        }
        if (!quadCircle.IsCollisionEnter(x, z))
        {
            return(this.IsInQuad(quad, x, z));
        }
        return(true);
    }