Example #1
0
        public Node lit_list()
        {
            //Console.WriteLine("lit_list");
            //Node lit_list = new Lit_list_();
            Node lit = new Lit_list_();

            if (CurrentToken == TokenCategory.FALSE)
            {
                lit = new False_();
                var r = Expect(TokenCategory.FALSE);
                lit.AnchorToken = r;
            }
            else if (CurrentToken == TokenCategory.TRUE)
            {
                lit = new True_();
                var r = Expect(TokenCategory.TRUE);
                lit.AnchorToken = r;
            }
            else if (CurrentToken == TokenCategory.CHARACTER)   //y si le ponemos que espera un valor
            {
                lit = new Character_();
                var r = Expect(TokenCategory.CHARACTER);
                lit.AnchorToken = r;
            }
            else if (CurrentToken == TokenCategory.INTEGER)
            {
                lit = new Integer_();
                var r = Expect(TokenCategory.INTEGER);
                lit.AnchorToken = r;
            }
            else if (CurrentToken == TokenCategory.BINARYINT)
            {
                lit = new Integer_();
                var r = Expect(TokenCategory.BINARYINT);
                lit.AnchorToken = r;
            }
            else if (CurrentToken == TokenCategory.OCTALINT)
            {
                lit = new Integer_();
                var r = Expect(TokenCategory.OCTALINT);
                lit.AnchorToken = r;
            }
            else if (CurrentToken == TokenCategory.HEXAINT)
            {
                lit = new Integer_();
                var r = Expect(TokenCategory.HEXAINT);
                lit.AnchorToken = r;
            }
            else
            {
                throw new SyntaxError(firstOfSimpleExpression, tokenStream.Current);//hay que arreglar estos diccionarios al final
            }
            //lit_list.Add(lit);
            while (CurrentToken == TokenCategory.COMA)
            {
                Expect(TokenCategory.COMA);
                lit.Add(lit_list());
            }
            return(lit);
        }
Example #2
0
 public static void Start()
 {
     ExecuteSavedQueries();
     PulseTimer.Elapsed += new ElapsedEventHandler(Pulse);
     Character = new Character_();
     Mastery = new Mastery_();
     Item = new Item_();
     Skill = new Skill_();
     User = new User_();
     if (PulseFlag)
         PulseTimer.Start();
     Pulse(null, null);
 }
Example #3
0
        public string Visit(Character_ node, int modo)
        {
            string s   = node.AnchorToken.lexeme;
            int    n   = 0;
            string str = s;

            //Console.WriteLine(s);
            //Console.WriteLine("'\\\"'");
            if (s == "'\\n'")
            {
                n = 10;
            }
            else if (s == "'\\r'")
            {
                n = 13;
            }
            else if (s == "'\\t'")
            {
                n = 9;
            }
            else if (s == "'\\'")
            {
                n = 92;
            }
            else if (s == "'\\''")
            {
                n = 10;
            }
            else if (s == "'\\\"'")
            {
                n = 34;
            }
            else if (s.Length == 10)
            {
                //Console.WriteLine(str+ "aqui");
                s = str.Substring(3, 6);
                //str = s.Substring(1,9);
                //Console.WriteLine(s+ " aqui");
                n = int.Parse(s, System.Globalization.NumberStyles.HexNumber);;
            }
            else
            {
                n = GetUnicodeCodePoints(s);
                //Console.WriteLine(n+" aqui");
            }
            VisitChildren(node, modo);
            Console.WriteLine(n);
            //Console.WriteLine(node.AnchorToken.row);
            return(n + "");
        }
Example #4
0
 public static void Start()
 {
     ExecuteSavedQueries();
     PulseTimer.Elapsed += new ElapsedEventHandler(Pulse);
     Character           = new Character_();
     Mastery             = new Mastery_();
     Item  = new Item_();
     Skill = new Skill_();
     User  = new User_();
     if (PulseFlag)
     {
         PulseTimer.Start();
     }
     Pulse(null, null);
 }
Example #5
0
        public Node lit_simple()
        {
            //Console.WriteLine("lit_simple");
            Node  True = null;
            Token r;

            switch (CurrentToken)
            {
            case TokenCategory.TRUE:
                True             = new True_();
                r                = Expect(TokenCategory.TRUE);
                True.AnchorToken = r;
                return(True);

            case TokenCategory.FALSE:
                True             = new  False_();
                r                = Expect(TokenCategory.FALSE);
                True.AnchorToken = r;
                return(True);

            case TokenCategory.INTEGER:
                True             = new Integer_();
                r                = Expect(TokenCategory.INTEGER);
                True.AnchorToken = r;
                return(True);

            case TokenCategory.CHARACTER:
                True             = new Character_();
                r                = Expect(TokenCategory.CHARACTER);
                True.AnchorToken = r;
                return(True);

            default:
                throw new SyntaxError(TokenCategory.CHARACTER, tokenStream.Current);
            }
        }
Example #6
0
        public static void Spawn_Char(Packet packet, uint model)
        {
            Character_ character = new Character_();
            byte       trade     = 0;
            byte       stall     = 0;

            packet.ReadBYTE(); // Volume/Height
            packet.ReadBYTE(); // Rank
            packet.ReadBYTE(); // Icons
            packet.ReadBYTE(); // Unknown
            packet.ReadBYTE(); // Max Slots
            byte items_count = packet.ReadBYTE();

            character.Items = new List <Item_>(items_count);
            for (byte i = 0; i < items_count; i++)
            {
                uint     itemid = packet.ReadDWORD();
                ItemData item   = BotData.SROItems[Globals.ModelToStr(itemid)];
                string   type   = item.PK2Name;
                if (type.StartsWith("ITEM_CH") || type.StartsWith("ITEM_EU") || type.StartsWith("ITEM_FORT") || type.StartsWith("ITEM_ROC_CH") || type.StartsWith("ITEM_ROC_EU"))
                {
                    byte plus = packet.ReadBYTE(); // Item Plus
                    character.Items.Add(new Item_ {
                        ID = itemid, Plus = plus
                    });
                }
                if (type.Contains("_TRADE_TRADER_") || type.Contains("_TRADE_HUNTER_") || type.Contains("_TRADE_THIEF_"))
                {
                    trade = 1;
                }
            }
            packet.ReadBYTE(); // Max Avatars Slot
            byte avatar_count = packet.ReadBYTE();

            for (byte i = 0; i < avatar_count; i++)
            {
                packet.ReadDWORD(); // Avatar ID
                packet.ReadBYTE();  // Avatar Plus
            }
            int mask = packet.ReadBYTE();

            if (mask == 1)
            {
                uint   id   = packet.ReadDWORD();
                string type = BotData.SROMobs[Globals.ModelToStr(id)].PK2Name;
                if (type.StartsWith("CHAR"))
                {
                    packet.ReadBYTE();
                    byte count = packet.ReadBYTE();
                    for (int i = 0; i < count; i++)
                    {
                        packet.ReadDWORD();
                    }
                }
            }

            uint UniqueID = packet.ReadDWORD();

            character.objID = UniqueID;
            byte  xsec   = packet.ReadBYTE();
            byte  ysec   = packet.ReadBYTE();
            float xcoord = packet.ReadSINGLE();

            packet.ReadSINGLE();
            float ycoord = packet.ReadSINGLE();

            packet.ReadWORD();             // Position
            byte move = packet.ReadBYTE(); // Moving

            packet.ReadBYTE();             // Running

            if (move == 1)
            {
                xsec = packet.ReadBYTE();
                ysec = packet.ReadBYTE();
                if (ysec == 0x80)
                {
                    xcoord = packet.ReadDWORD();
                    packet.ReadDWORD();
                    ycoord = packet.ReadDWORD();
                }
                else
                {
                    xcoord = packet.ReadWORD();
                    packet.ReadWORD();
                    ycoord = packet.ReadWORD();
                }
            }
            else
            {
                packet.ReadBYTE(); // No Destination
                packet.ReadWORD(); // Angle
            }

            packet.ReadBYTE();                     // Alive
            packet.ReadBYTE();                     // Unknown
            packet.ReadBYTE();                     // Unknown
            packet.ReadBYTE();                     // Unknown

            packet.ReadSINGLE();                   // Walking speed
            packet.ReadSINGLE();                   // Running speed
            packet.ReadSINGLE();                   // Berserk speed

            byte active_buffs = packet.ReadBYTE(); // Buffs count

            for (int a = 0; a < active_buffs; a++)
            {
                uint   skillid = packet.ReadDWORD();
                string type1   = "";
                try
                {
                    type1 = BotData.SROSkills[Globals.ModelToStr(skillid)].PK2Name;
                }
                catch { }
                packet.ReadDWORD(); // Temp ID
                if (type1.StartsWith("SKILL_EU_CLERIC_RECOVERYA_GROUP") || type1.StartsWith("SKILL_EU_BARD_BATTLAA_GUARD") || type1.StartsWith("SKILL_EU_BARD_DANCEA") || type1.StartsWith("SKILL_EU_BARD_SPEEDUPA_HITRATE"))
                {
                    packet.ReadBYTE();
                }
            }
            string name = packet.ReadSTRING("ascii");

            character.Name = name;
            if (trade == 1)
            {
                packet.ReadQWORD();
                packet.ReadSTRING("ascii");
            }
            else
            {
                packet.ReadBYTE(); // Unknown
                byte cnt = packet.ReadBYTE();
                if (cnt == 1)
                {
                    packet.ReadDWORD();                           // Unknown
                }
                packet.ReadBYTE();                                // Job type
                packet.ReadBYTE();                                // Job level
                stall           = packet.ReadBYTE();              // Stall flag
                character.Guild = packet.ReadSTRING("ascii");     // Guild
                packet.ReadDWORD();                               // Guild ID
                character.GrantName = packet.ReadSTRING("ascii"); // Grant Name
                packet.ReadDWORD();
                packet.ReadDWORD();
                packet.ReadDWORD();
                packet.ReadWORD();
                if (stall == 4)
                {
                    packet.ReadSTRING("ascii"); // Stall Name
                    packet.ReadDWORD();         // Unknown
                }
            }
            packet.ReadWORD(); // 00 and PK Flag (0xFF)
            Globals.AroundChars.Add(character.objID, character);
            // Globals.UpdateLogs(string.Format("Char:{0} Spawned", character.Name));
        }
Example #7
0
        public Node expr_primary()
        {
            //Console.WriteLine("expr_primary");
            if (CurrentToken == TokenCategory.IDENTIFIER)
            {
                //Console.WriteLine("expr_primary1");
                var id = new Id_();
                var r  = Expect(TokenCategory.IDENTIFIER);
                id.AnchorToken = r;
                if (CurrentToken == TokenCategory.OPENP)
                {
                    //Console.WriteLine("expr_primary2");
                    Expect(TokenCategory.OPENP);
                    if (CurrentToken != TokenCategory.CLOSEP) /////////////////////////////MODIFICADO///////////////////////////
                    {
                        id.Add(expr_list());
                    }
                    Expect(TokenCategory.CLOSEP);
                    //Console.WriteLine("semi9");
                    //Expect(TokenCategory.SEMICOLON);
                }
                return(id);
            }
            else if (CurrentToken == TokenCategory.FALSE)
            {
                //Console.WriteLine("expr_primary3");
                var False = new False_();
                var r     = Expect(TokenCategory.FALSE);
                False.AnchorToken = r;
                return(False);
            }
            else if (CurrentToken == TokenCategory.TRUE)
            {
                //Console.WriteLine("expr_primary4");
                var False = new True_();
                var r     = Expect(TokenCategory.TRUE);
                False.AnchorToken = r;
                return(False);
            }
            else if (CurrentToken == TokenCategory.CHARACTER)
            {
                //Console.WriteLine("expr_primary5");
                var False = new Character_();
                var r     = Expect(TokenCategory.CHARACTER);
                False.AnchorToken = r;
                return(False);
            }
            else if (CurrentToken == TokenCategory.INTEGER)
            {
                //Console.WriteLine("expr_primary6");
                var False = new Integer_();
                var r     = Expect(TokenCategory.INTEGER);
                False.AnchorToken = r;
                return(False);
            }
            else if (CurrentToken == TokenCategory.BINARYINT)
            {
                //Console.WriteLine("expr_primary7");
                var False = new Integer_();
                var r     = Expect(TokenCategory.BINARYINT);
                False.AnchorToken = r;
                return(False);
            }
            else if (CurrentToken == TokenCategory.OCTALINT)
            {
                //Console.WriteLine("expr_primary8");
                var False = new Integer_();
                var r     = Expect(TokenCategory.OCTALINT);
                False.AnchorToken = r;
                return(False);
            }
            else if (CurrentToken == TokenCategory.HEXAINT)
            {
                //Console.WriteLine("expr_primary9");
                var False = new Integer_();
                var r     = Expect(TokenCategory.HEXAINT);
                False.AnchorToken = r;
                return(False);
            }
            else if (CurrentToken == TokenCategory.STRING)
            {
                //Console.WriteLine("expr_primary10");
                var False = new String_();
                var r     = Expect(TokenCategory.STRING);
                False.AnchorToken = r;
                return(False);
            }
            else if (CurrentToken == TokenCategory.OPENP)
            {
                //Console.WriteLine("expr_primary11");
                var openp = new Openp_();
                var r     = Expect(TokenCategory.OPENP);
                openp.AnchorToken = r;
                //Console.WriteLine("CURRRRRRRREEEEENT" + CurrentToken);
                if (CurrentToken != TokenCategory.CLOSEP)
                {
                    openp.Add(expr());
                }

                Expect(TokenCategory.CLOSEP);
                return(openp);
            }
            else if (CurrentToken == TokenCategory.OPENB)
            {
                //Console.WriteLine("expr_primary12");
                var r = array_list();
                return(r);
            }
            else if (CurrentToken == TokenCategory.EXCLAMATION)
            {
                //Console.WriteLine("expr_primary13");
                var exclamation = new Exclamation_();
                var r           = Expect(TokenCategory.EXCLAMATION);
                exclamation.AnchorToken = r;
                if (CurrentToken == TokenCategory.IDENTIFIER)
                {
                    var id = new Id_();
                    var m  = Expect(TokenCategory.IDENTIFIER);
                    id.AnchorToken = m;
                    exclamation.Add(id);
                }
                return(exclamation);
            }
            else
            {
                throw new SyntaxError(firstOfSimpleExpression, tokenStream.Current);
            }
        }
Example #8
0
        public string Visit(Character_ node, int modo)
        {
            string s   = node.AnchorToken.lexeme;
            int    n   = 0;
            string str = s;

            // Console.WriteLine(s);
            // Console.WriteLine("'\\\"'");
            if (s == "'\\n'")
            {
                n = 10;
            }
            else if (s == "'\\r'")
            {
                n = 13;
            }
            else if (s == "'\\t'")
            {
                n = 9;
            }
            else if (s == "'\\'")
            {
                n = 92;
            }
            else if (s == "'\\''")
            {
                n = 10;
            }
            else if (s == "'\\\"'")
            {
                n = 34;
            }
            else if (s.Length == 10)
            {
                // Console.WriteLine(str+ "aqui");
                s = str.Substring(3, 6);
                //str = s.Substring(1,9);
                // Console.WriteLine(s+ " aqui");
                n = int.Parse(s, System.Globalization.NumberStyles.HexNumber);;
            }
            else
            {
                n = GetUnicodeCodePoints(s);
                // Console.WriteLine(n+" aqui");
            }
            // Console.WriteLine(node.AnchorToken.row);

            if (modo != 7)
            {
                return("\t\tldc.i8 " + n.ToString() + "\n");
            }
            else
            {
                try{
                    return(n.ToString() + " " + Visit((dynamic)node[0], 7));
                }
                catch (System.ArgumentOutOfRangeException e) {
                    return(n.ToString());
                }
                return(n.ToString());
            }
        }