Beispiel #1
0
        private async Task ModifyskillAsync(string skill_name, int mod)
        {
            SocketGuildUser usr = Context.Guild.GetUser(Context.Message.Author.Id);

            character character = character.get_character(Context.Message.Author.Id);

            if (character == null)
            {
                await ReplyAsync("Create a character first.");

                return;
            }

            var skill = character.skills.FirstOrDefault(e => e.Name == skill_name);

            if (skill == null)
            {
                await ReplyAsync("Skill invalid");

                return;
            }

            foreach (var item in character.skills)
            {
                if (item.Name == skill_name)
                {
                    item.Level = mod;
                }
            }

            character.update_character();

            await ReplyAsync("Skill Updated.");
        }
Beispiel #2
0
        public async Task ChangearmorAsync(params string[] args)
        {
            string          armor_name = string.Join(" ", args);
            SocketGuildUser usr        = Context.Guild.GetUser(Context.Message.Author.Id);
            character       character  = character.get_character(Context.Message.Author.Id);

            if (character == null)
            {
                await ReplyAsync("Character not found. Please create one before proceeding.");

                return;
            }
            Classes.Armor selection = Classes.Armor.InitArmor(System.IO.File.ReadAllText("Data/armor.json")).ToList().FirstOrDefault(e => e.Name == armor_name);

            if (selection == null)
            {
                await ReplyAsync("Armor selection invalid.");

                return;
            }

            character.armor = selection;
            if (selection.Ac > character.ac)
            {
                character.ac = selection.Ac;
            }

            await ReplyAsync("Armor changed");
        }
Beispiel #3
0
    void HitSomething(Collider2D c)
    {
        player = c.GetComponent <character>();

        if (player != null)
        {
            IdleMovement.enabled = false;
            IdleChild.SetActive(false);

            ActiveChild.GetComponent <PowerupChild>().Init(player, player.playerGui.ActivatePowerup(this), duration);

            Vector3 lp = ActiveChild.transform.localPosition;
            ActiveChild.transform.parent        = player.transform;
            ActiveChild.transform.localPosition = lp;
            ActiveChild.transform.localRotation = Quaternion.identity;

            if (ActiveChild.GetComponent <BossMovement>() != null)
            {
                ActiveChild.GetComponent <BossMovement>().ResetOrigin();
            }

            ActiveChild.SetActive(true);
            Destroy(ActiveChild, duration);

            Destroy(gameObject);
        }
    }
Beispiel #4
0
 // Start is called before the first frame update
 private void Awake()
 {
     backgroundMusic        = this.gameObject.GetComponent <AudioSource>();
     backgroundMusic.volume = 0.5f;
     player = FindObjectOfType <character>();
     //walkingSound = player.audioSource;
 }
    // OnStateUpdate is called before OnStateUpdate is called on any state inside this state machine
    //override public void OnStateUpdate(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    //{
    //
    //}



    override public void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
    {
        actor = GameObject.FindGameObjectsWithTag("Player")[0].GetComponent <character>();

        if (stateInfo.IsName("pulldown"))
        {
            actor.isHolding             = false;
            actor.rigidbody.isKinematic = false;
            actor.animator.SetBool("pulldown", false);
        }
        else if (stateInfo.IsName("pullup"))
        {
            actor.isHolding             = false;
            actor.rigidbody.isKinematic = false;
            vaultObject aVault = actor.aVaultObject;
            if (aVault)
            {
                actor.rigidbody.MovePosition(aVault.transform.TransformPoint(aVault.curve[1]));
            }
            actor.animator.SetBool("pullup", false);
        }
        else if (stateInfo.IsName("pullup_stair"))
        {
            animator.SetTrigger("climb_end");
            animator.SetBool("pullup", false);
            actor.isClimbing            = false;
            actor.rigidbody.isKinematic = false;
        }
        else if (stateInfo.IsName("idle_vault") || stateInfo.IsName("walk_vault") || stateInfo.IsName("run_vault"))
        {
            animator.ResetTrigger("goslide");
        }
    }
Beispiel #6
0
 /////////////////////////////////////////////////////////////////////////////////
 // Get matching degree stones for item
 /////////////////////////////////////////////////////////////////////////////////
 public List <int> GetStonesDegree(int itemid, character c)
 {
     try
     {
         List <int> stones = new List <int>();
         for (int i = 0; i < Data.ItemBase.Length; i++)
         {
             if (Data.ItemBase[i] != null)
             {
                 if (Data.ItemBase[i].Etctype == Global.item_database.EtcType.STONES && Data.ItemBase[i].Degree == Data.ItemBase[itemid].Degree)
                 {
                     if (i != 0)
                     {
                         stones.Add(i);
                     }
                 }
             }
         }
         return(stones);
     }
     catch (Exception ex)
     {
         Systems.Debugger.Write(ex);
     }
     return(null);
 }
Beispiel #7
0
 public PlayerEntity(ObjectGUID objectGUID, character databaseCharacter, WorldSession session) : base(objectGUID)
 {
     this.Character              = databaseCharacter;
     this.Session                = session;
     this.SpellCollection        = new SpellCollection(this);
     this.ActionButtonCollection = new ActionButtonCollection(this);
 }
Beispiel #8
0
        private async Task AttackrangedAsync(string weapon_name, int mod = 0)
        {
            SocketGuildUser usr      = Context.Guild.GetUser(Context.Message.Author.Id);
            string          rtn_name = usr.Nickname == null ? usr.Username : usr.Nickname;

            character character = character.get_character(Context.Message.Author.Id);

            if (character == null)
            {
                await ReplyAsync("Create a character first.");

                return;
            }

            Weapon weap = character.weapons.FirstOrDefault(e => e.Name == weapon_name);

            if (weap == null)
            {
                await ReplyAsync("Weapon selection invalid.");
            }

            List <int> attack_results = new List <int>();
            List <int> damage_results = new List <int>();

            Embed hit = (Embed)character.RollToHit(weap, mod);

            Embed dmg = (Embed)weap.RollRangedDamage(character, mod);

            await Context.Channel.SendMessageAsync("", false, hit, null);

            await Context.Channel.SendMessageAsync("", false, dmg, null);
        }
Beispiel #9
0
 /////////////////////////////////////////////////////////////////////////////////
 // Get matching degree elements for item
 /////////////////////////////////////////////////////////////////////////////////
 public List <int> GetDegreeElements(int itemid, character c)
 {
     try
     {
         List <int> elements = new List <int>();
         for (int i = 0; i < Data.ItemBase.Length; i++)
         {
             if (Data.ItemBase[i] != null)
             {
                 if (Data.ItemBase[i].Etctype == Global.item_database.EtcType.ELEMENTS && Data.ItemBase[i].Degree == Data.ItemBase[itemid].Degree)
                 {
                     if (i != 0)
                     {
                         elements.Add(i);
                     }
                 }
             }
         }
         return(elements);
     }
     catch (Exception ex)
     {
         Systems.Debugger.Write(ex);
     }
     return(null);
 }
Beispiel #10
0
        public async Task <ResponseData <List <GetCharacterDTO> > > DeleteCharacter(int id)
        {
            ResponseData <List <GetCharacterDTO> > response = new ResponseData <List <GetCharacterDTO> >();

            try
            {
                character c = await _context.characters.FirstAsync(x => x.Id == id && x.user.id == getUserId());

                if (c != null)
                {
                    _context.characters.Remove(c);
                    await _context.SaveChangesAsync();

                    response.Data = _context.characters.Where(c => c.Id == getUserId()).Select(c => _imapper.Map <GetCharacterDTO>(c)).ToList();
                }
                else
                {
                    response.Message = "character not found";
                    response.success = false;
                }
            }
            catch (Exception ex)
            {
                response.success = false;
                response.Message = ex.Message;
            }

            return(response);
        }
Beispiel #11
0
        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        // Drop System Base
        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        public void SkillDrop(obj o, character c, string type)
        {
            try
            {
                world_item sitem = new world_item();
                switch (type)
                {
                case "mask":
                    sitem.Model     = 10364;
                    sitem.Ids       = new Global.ID(Global.ID.IDS.World);
                    sitem.UniqueID  = sitem.Ids.GetUniqueID;
                    sitem.PlusValue = 0;
                    sitem.x         = this.x + rnd.Next(0, 7);
                    sitem.z         = this.z;
                    sitem.y         = this.y + rnd.Next(0, 6);
                    sitem.xSec      = this.xSec;
                    sitem.ySec      = this.ySec;
                    sitem.Type      = 3;
                    sitem.fromType  = 5;
                    sitem.downType  = true;
                    sitem.fromOwner = this.UniqueID;
                    sitem.Owner     = ((Systems)this.GetTarget()).Character.Account.ID;

                    Systems.aRound(ref sitem.x, ref sitem.y, 0);
                    Systems.WorldItem.Add(sitem);
                    sitem.Send(Packet.ObjectSpawn(sitem), true);
                    break;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Skill drop error {0}", ex);
                Systems.Debugger.Write(ex);
            }
        }
Beispiel #12
0
        public async Task <ResponseData <GetCharacterDTO> > GetCharacterById(int id)
        {
            ResponseData <GetCharacterDTO> response = new ResponseData <GetCharacterDTO>();

            try
            {
                character ch = await _context.characters.
                               Include(c => c.weapon)
                               .Include(c => c.characterSkills)
                               .ThenInclude(cs => cs.skill)
                               .FirstOrDefaultAsync(c => c.Id == id && c.user.id == getUserId());

                if (ch == null)
                {
                    response.success = false;
                    response.Message = "You may not have the charcter or you may not have authority to view the record";
                    //return response;
                }
                else
                {
                    response.Data = _imapper.Map <GetCharacterDTO>(ch);
                }


                //  return response;
            }
            catch (Exception ex)
            {
                response.success = false;
                response.Message = ex.Message;
                // return response;
            }
            return(response);
        }
Beispiel #13
0
        public async Task <ResponseData <updateCharacterDTO> > UpdateCharacter(updateCharacterDTO updChar)
        {
            ResponseData <updateCharacterDTO> response = new ResponseData <updateCharacterDTO>();

            try {
                character c = await _context.characters.Include(c => c.user).FirstOrDefaultAsync(x => x.Id == updChar.Id);

                if (c.user.id == getUserId())
                {
                    c.Name         = updChar.Name;
                    c.Class        = updChar.Class;
                    c.Defense      = updChar.Defense;
                    c.HitPoints    = updChar.HitPoints;
                    c.Intelligence = updChar.Intelligence;
                    c.Strength     = updChar.Strength;

                    response.Data = _imapper.Map <updateCharacterDTO>(c);
                }
                else
                {
                    response.Message = "character not found";
                    response.success = false;
                }
            }
            catch (Exception ex)
            {
                response.success = false;
                response.Message = ex.Message;
            }

            return(response);
        }
Beispiel #14
0
 public void EnterRoom(character character)
 {
     if (HasEnemy())
     {
         print("Oppps! There is enemy in this room.");
     }
 }
Beispiel #15
0
    public override void activate(character player)
    {
        if (thisCost == cost.seeds)
        {
            if (player.seedCount >= amount)
            {
                Debug.Log("buy with seeds");
                player.spendSeed(amount);
                itemToActivate.SetActive(true);

                itemCelebration.transform.parent = null;
                itemCelebration.Play();
                gameObject.SetActive(false);
            }
        }
        if (thisCost == cost.gold)
        {
            if (player.gold >= amount)
            {
                Debug.Log("buy with gold");
                player.spendGold(amount);
                itemToActivate.SetActive(true);
                itemCelebration.transform.parent = null;
                itemCelebration.Play();
                gameObject.SetActive(false);
            }
        }
    }
        public async Task <ResponseData <GetCharacterDTO> > AddWeapon(AddWeaponDTO newWeapon)
        {
            ResponseData <GetCharacterDTO> res = new ResponseData <GetCharacterDTO>();

            try
            {
                character character = _context.characters.FirstOrDefault(c => c.Id == newWeapon.characterId && c.user.id == int.Parse(httpContextAccessor.HttpContext.User.FindFirstValue(ClaimTypes.NameIdentifier)));
                if (character == null)
                {
                    res.Message = "charcater not found";
                    res.success = false;
                }
                else
                {
                    Weapon weapon = new Weapon
                    {
                        Name        = newWeapon.Name,
                        Damage      = newWeapon.Damage,
                        characterId = newWeapon.characterId
                    };

                    await _context.Weapons.AddAsync(weapon);

                    await _context.SaveChangesAsync();

                    res.Data = mapper.Map <GetCharacterDTO>(character);
                }
            }
            catch (Exception ex)
            {
                res.success = false;
                res.Message = ex.Message;
            }
            return(res);
        }
Beispiel #17
0
 public void Init(character p, Slider d, float t)
 {
     player   = p;
     display  = d;
     duration = t;
     OnStartup();
 }
        public void ProcessGroupMessage(GroupMessageReceivedContext context)
        {
            string ec, et;

            ec = IniReadValue("com", "esiserenity", "C:\\ERC.ini");
            et = IniReadValue("com", "esitranquility", "C:\\ERC.ini");
            Jitas     J    = new Jitas();
            character C    = new character();
            string    res  = "null";
            string    com  = context.Message.Substring(0, 1);
            string    coml = "";

            if (context.Message.Length > 3)
            {
                coml = context.Message.Substring(0, 3);
            }
            else
            {
                coml = context.Message.Substring(0, 1);
            }
            if (context.Message == "帮助")
            {
                _mahuaApi.SendGroupMessage(context.FromGroup)
                .Text("EVE查询机器人使用说明")
                .Face("12").Newline()
                .Text("====物品查价功能").Face("151").Newline()
                .Text("|\t'" + ec + "'+精确名称(晨曦中文)\n|").Newline()
                .Text("|\t'" + et + "'+精确名称(宁静英文)\n|").Newline()
                .Face("54").Text("就是这样喵~").Face("54")
                .Done();
            }
            else if (com == ec)
            {
                string ser = context.Message.Replace(ec, "");
                res = J.esipriceget(ser);
                _mahuaApi.SendGroupMessage(context.FromGroup)
                .Text(ser + "晨曦查询结果:")
                .Newline()
                .Text(res)
                .Done();
            }
            else if (com == et)
            {
                string ser1 = context.Message.Replace(et, "");
                res = J.esipricegettq(ser1);
                _mahuaApi.SendGroupMessage(context.FromGroup)
                .Text(ser1 + "宁静查询结果:")
                .Newline()
                .Text(res)
                .Done();
            }
            else if (context.Message == "更新日志")
            {
                _mahuaApi.SendGroupMessage(context.FromGroup)
                .Newline()
                .Text("当前版本Public1.0\r\n开源1.0版本,仅提供最基础的吉他市场查询功能。\r\n开发者邮箱:[email protected]\r\n感谢大家的选择和使用!\r\n获取更多功能联系开发者")
                .Done();
            }
        }
 static void Main()
 {
     Application.EnableVisualStyles();
     Application.SetCompatibleTextRenderingDefault(false);
     Application.Run(new Form1());
     deviljin            = new character(); // instance of my class
     deviljin.hair_black = true;            // initiating a member of the instance
 }
Beispiel #20
0
        public static byte[] GuildStorageGold(character c)
        {
            PacketWriter Writer = new PacketWriter();

            Writer.Create(Systems.SERVER_GUILD_STORAGE_GOLD);
            Writer.LWord(c.Network.Guild.StorageGold);
            return(Writer.GetBytes());
        }
        public void DetailsValidId()
        {
            // act
            character actual = (character)((ViewResult)controller.Details("testName2")).Model;

            // assert
            Assert.AreEqual(characters[1], actual);
        }
Beispiel #22
0
        private void OnSendMail(WorldSession session, PCSendMail packet)
        {
            character reciever = Characters.SingleOrDefault(c => c.name == packet.Reciever);
            var       result   = MailResponseResult.MAIL_OK;

            if (reciever == null)
            {
                result = MailResponseResult.MAIL_ERR_RECIPIENT_NOT_FOUND;
            }
            else if (reciever.name == session.Player.Name)
            {
                result = MailResponseResult.MAIL_ERR_CANNOT_SEND_TO_SELF;
            }
            else if (session.Player.Character.money < packet.Money + 30)
            {
                result = MailResponseResult.MAIL_ERR_NOT_ENOUGH_MONEY;
            }
            else if (Mails.Where(m => m.receiver == reciever.guid).ToArray().Length > 100)
            {
                result = MailResponseResult.MAIL_ERR_RECIPIENT_CAP_REACHED;
            }
            else if (GetFaction(reciever) != GetFaction(session.Player.Character))
            {
                result = MailResponseResult.MAIL_ERR_NOT_YOUR_TEAM;
            }

            if (packet.ItemGUID > 0)
            {
                throw new NotImplementedException();
            }

            session.SendPacket(new PSSendMailResult(0, MailResponseType.MAIL_SEND, result));

            if (result == MailResponseResult.MAIL_OK)
            {
                session.Player.Character.money -= (int)(packet.Money + 30);
                Mails.Add(
                    new mail()
                {
                    messageType  = (byte)MailMessageType.MAIL_NORMAL,
                    deliver_time = 0,
                    expire_time  = (int)GameUnits.DAY * 30,
                    @checked     =
                        packet.Body != ""
                                    ? (byte)MailCheckMask.MAIL_CHECK_MASK_HAS_BODY
                                    : (byte)MailCheckMask.MAIL_CHECK_MASK_COPIED,
                    cod            = (int)packet.COD,
                    has_items      = 0,
                    itemTextId     = 0,
                    money          = (int)packet.Money,
                    sender         = session.Player.Character.guid,
                    receiver       = reciever.guid,
                    subject        = packet.Subject,
                    stationery     = (sbyte)MailStationery.MAIL_STATIONERY_DEFAULT,
                    mailTemplateId = 0
                });
            }
        }
Beispiel #23
0
        public static byte[] SendFriendList(byte count, character c)
        {
            PacketWriter Writer = new PacketWriter();
            Writer.Create(Systems.SERVER_SEND_FRIEND_LIST);
            //Groups
            Systems.MsSQL ms = new Systems.MsSQL("SELECT * FROM friends_groups WHERE playerid='"+ c.Information.CharacterID  +"'");
            int groupcount = ms.Count();
            groupcount = groupcount + 1;
            Writer.Byte((byte)groupcount);
            
            Writer.Word(0);
            Writer.Text("NonClassified");
            int groupid = 0;
            using (System.Data.SqlClient.SqlDataReader reader = ms.Read())
            {
                while (reader.Read())
                {
                    string groupname = reader.GetString(2);
                    groupid = groupid +1;
                    Writer.Word((short)groupid);
                    Writer.Text(groupname);
                }
            }
            //Friends
            Writer.Byte(count);
            ms = new Systems.MsSQL("SELECT * FROM friends WHERE owner='"+ c.Information.CharacterID  +"'");
            using (System.Data.SqlClient.SqlDataReader reader = ms.Read())
            {
                while (reader.Read())
                {
                    int model       = Systems.MsSQL.GetDataInt("SELECT * FROM character WHERE id='" + reader.GetInt32(2) + "'", "chartype");
                    int status      = Systems.MsSQL.GetDataInt("SELECT * FROM character WHERE id='" + reader.GetInt32(2) + "'", "Online");
                    int charid      = Systems.MsSQL.GetDataInt("SELECT * FROM character WHERE id='" + reader.GetInt32(2) + "'", "id");
                    string charname = Systems.MsSQL.GetData("SELECT * FROM character WHERE id='" + reader.GetInt32(2) + "'", "name");
                    string groupname = reader.GetString(4);
                    
                    Writer.DWord(charid);               // Friend CharID
                    Writer.Text(charname);              // Friend Name
                    Writer.DWord(model);                // Friend Model Type
                    if (groupname == "none")
                        Writer.Word(0);
                    else
                        Writer.Word(groupid);

                    if (status != 0)
                    {
                        Writer.Byte(0);                 // Friend is online
                    }
                    else
                    {
                        Writer.Byte(1);                 // Inverted, Friend is offline
                    }
                }
                reader.Close();
            }
            ms.Close();
            return Writer.GetBytes();
        }
Beispiel #24
0
        public PlayerEntity AddPlayerEntity(character character, WorldSession session)
        {
            ObjectGUID   guid         = new ObjectGUID((ulong)character.guid, TypeID.TYPEID_PLAYER);
            PlayerEntity playerEntity = new PlayerEntity(guid, character, session);

            PlayerEntities.Add(playerEntity);
            playerEntity.Setup();
            return(playerEntity);
        }
    private void Start()
    {
        Initialize();
        stateMachine.ChangeState(FirstCharacter.Instance);
        currentChar = character.FirstCharacter;

        AssignCharacterControls();
        InitializeDataCharacther();
    }
 // Start is called before the first frame update
 // Manage icons and button click on this slot
 private void Awake()
 {
     this.name         = null;
     this.currentStack = 0;
     isDeleted         = false;
     inventory         = GameObject.FindGameObjectWithTag("player").GetComponent <Inventory>();
     player            = FindObjectOfType <character>();
     btnX = removeButton.GetComponent <Button>();
 }
Beispiel #27
0
        private List <Spell> GetSpellsFromDatabase(character character)
        {
            List <Spell> Spells = new List <Spell>();

            var dbspells = CharacterSpells.Where(cs => cs.guid == character.guid).ToList();

            dbspells.ForEach(characterSpell => Spells.Add(CreateSpell((int)characterSpell.spell)));
            return(Spells);
        }
Beispiel #28
0
    private void Awake()
    {
        rb     = GetComponent <Rigidbody>();
        player = GameObject.FindGameObjectWithTag("Player");
        pct    = player.GetComponent <character>();
        ect    = GetComponent <character>();

        enemy = GetComponent <Animator>();
    }
Beispiel #29
0
        public static byte[] JoinFormedRequest(character requesting, character owner)
        {
            //Create new packet writer
            PacketWriter Writer = new PacketWriter();

            //Add opcode for packet
            Writer.Create(Systems.SERVER_PARTY_JOIN_FORMED);
            //Character model information (Req).
            Writer.DWord(requesting.Information.Model);
            //Leader id
            Writer.DWord(requesting.Information.UniqueID);
            //Party id
            Writer.DWord(owner.Network.Party.ptid);
            //Static
            Writer.DWord(0);
            Writer.DWord(0);
            Writer.Byte(0);
            Writer.Byte(0xFF);
            //Write character unique id
            Writer.DWord(requesting.Information.UniqueID);
            //Write character name
            Writer.Text(requesting.Information.Name);
            //Write model information
            Writer.DWord(requesting.Information.Model);
            //Write level information
            Writer.Byte(requesting.Information.Level);
            //Static
            Writer.Byte(0xAA);
            //X and Y Sector
            Writer.Byte(requesting.Position.xSec);
            Writer.Byte(requesting.Position.ySec);
            //Static
            Writer.Word(0);
            Writer.Word(0);
            Writer.Word(0);
            Writer.Word(1);
            Writer.Word(1);
            //If character is in a guild
            if (requesting.Network.Guild != null)
            {
                //Write guild name
                Writer.Text(requesting.Network.Guild.Name);
            }
            //If character is not in a guild
            else
            {
                //Write word value 0
                Writer.Word(0);
            }
            //Static
            Writer.Byte(0);
            Writer.DWord(0);
            Writer.DWord(0);
            //Return all bytes to send
            return(Writer.GetBytes());
        }
Beispiel #30
0
 public PSNameQueryResponse(character character)
     : base(WorldOpcodes.SMSG_NAME_QUERY_RESPONSE)
 {
     this.Write((ulong)character.guid);
     this.Write(Encoding.UTF8.GetBytes(character.name + '\0'));
     this.Write((byte)0); // realm name for cross realm BG usage
     this.Write((uint)character.race);
     this.Write((uint)character.guid);
     this.Write((uint)character.@class);
 }
Beispiel #31
0
 public void CheckCharStats(character ch)
 {
     if (ch.Stat.AttackPower < 0)
         Math.Abs(ch.Stat.AttackPower);
     if (ch.Stat.Hit < 0)
         Math.Abs(ch.Stat.Hit);
     if (ch.Stat.MagDef < 0)
         Math.Abs(ch.Stat.MagDef);
     if (ch.Stat.PhyDef < 0)
         Math.Abs(ch.Stat.PhyDef);
     if (ch.Stat.MinPhyAttack < 0)
         Math.Abs(ch.Stat.MinPhyAttack);
     if (ch.Stat.MinMagAttack < 0)
         Math.Abs(ch.Stat.MinMagAttack);
     if (ch.Stat.MaxPhyAttack < 0)
         Math.Abs(ch.Stat.MaxPhyAttack);
     if (ch.Stat.MaxMagAttack < 0)
         Math.Abs(ch.Stat.MaxMagAttack);
     if (ch.Information.XP < 0)
         Math.Abs(ch.Information.XP);
 }
Beispiel #32
0
        public float calstring(string text, Font font, float fontsize, SolidBrush brush, int align)
        {
            if (text == null || text == "" || align == 0)
                return 0;

            char[] chars = text.ToCharArray();

            float maxy = 1;
            float strLen = 0;
            foreach (char cha in chars)
            {
                int charno = (int)cha;

                int charid = charno ^ (int)(fontsize * 1000) ^ brush.Color.ToArgb();

                if (!charDict.ContainsKey(charid))
                {
                    charDict[charid] = new character() { bitmap = new Bitmap(128, 128, System.Drawing.Imaging.PixelFormat.Format32bppArgb), size = (int)fontsize };

                    charDict[charid].bitmap.MakeTransparent(Color.Transparent);

                    //charbitmaptexid

                    float maxx = this.Width / 150; // for space

                    // create bitmap
                    using (Graphics gfx = Graphics.FromImage(charDict[charid].bitmap))
                    {
                        pth.Reset();

                        if (text != null)
                            pth.AddString(cha + "", font.FontFamily, 0, fontsize + 5, new Point((int)0, (int)0), StringFormat.GenericTypographic);

                        gfx.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;

                        gfx.DrawPath(P, pth);

                        //Draw the face

                        gfx.FillPath(brush, pth);

                        if (pth.PointCount > 0)
                        {
                            foreach (PointF pnt in pth.PathPoints)
                            {
                                if (pnt.X > maxx)
                                    maxx = pnt.X;

                                if (pnt.Y > maxy)
                                    maxy = pnt.Y;
                            }
                        }
                    }

                    charDict[charid].width = (int)(maxx + 2);

                    //charbitmaps[charid] = charbitmaps[charid].Clone(new RectangleF(0, 0, maxx + 2, maxy + 2), charbitmaps[charid].PixelFormat);

                    //charbitmaps[charno * (int)fontsize].Save(charno + " " + (int)fontsize + ".png");

                    // create texture
                    int textureId;
                    GL.TexEnv(TextureEnvTarget.TextureEnv, TextureEnvParameter.TextureEnvMode, (float)TextureEnvModeCombine.Replace);//Important, or wrong color on some computers

                    Bitmap bitmap = charDict[charid].bitmap;
                    GL.GenTextures(1, out textureId);
                    GL.BindTexture(TextureTarget.Texture2D, textureId);

                    BitmapData data = bitmap.LockBits(new System.Drawing.Rectangle(0, 0, bitmap.Width, bitmap.Height), ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format32bppArgb);

                    GL.TexImage2D(TextureTarget.Texture2D, 0, PixelInternalFormat.Rgba, data.Width, data.Height, 0, OpenTK.Graphics.OpenGL.PixelFormat.Bgra, PixelType.UnsignedByte, data.Scan0);

                    GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)TextureMinFilter.Linear);
                    GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)TextureMagFilter.Linear);
                    GL.Finish();
                    bitmap.UnlockBits(data);

                    charDict[charid].gltextureid = textureId;
                }

                float scale = 1.0f;

                strLen += charDict[charid].width * scale;
            }

            if (align == 1)
            {
                strLen = strLen / 2;
            }
            return strLen;
        }
Beispiel #33
0
        public void LoginScreen()
        {
            try
            {
                PacketReader Reader = new PacketReader(PacketInformation.buffer);
                string name = Reader.Text();
                Reader.Close();
                #region Check name before entering (exploit)
                Systems.MsSQL ms = new Systems.MsSQL("SELECT name FROM character WHERE account='" + Player.AccountName + "' AND name='" + name + "'");
                int checkinfo = ms.Count();

                if (checkinfo == 0)
                {
                    return;
                }
                #endregion
                else
                {
                    Character = new character();

                    Character.Information.Name = name;
                    Character.Account.ID = Player.ID;
                    PlayerDataLoad();
                    LoadJobData();
                    checkSameChar(name, Character.Information.UniqueID);
                    CheckCharStats(Character);
                    clients.Add(this);
                    client.Send(Packet.LoginScreen());
                    client.Send(Packet.StartPlayerLoad());
                    client.Send(Packet.Load(Character));

                    client.Send(Packet.EndPlayerLoad());
                    client.Send(Packet.PlayerUnknowPack(Character.Information.UniqueID));
                    client.Send(Packet.UnknownPacket());

                    OpenTimer();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error login by: {0}",Character.Information.Name);
                deBug.Write(ex);
                Console.WriteLine(ex);
            }
        }
Beispiel #34
0
 public void UpdateHp(character Character)
 {
     Send(Packet.UpdatePlayer(Character.Information.UniqueID, 0x20, 1, Character.Stat.SecondHp));
 }
Beispiel #35
0
        void drawstring(HUD e, string text, Font font, float fontsize, SolidBrush brush, float x, float y)
        {
            if (!opengl)
            {
                drawstring(graphicsObjectGDIP, text, font, fontsize, brush, x, y);
                return;
            }

            if (text == null || text == "")
                return;
            /*
            OpenTK.Graphics.Begin(); 
            GL.PushMatrix(); 
            GL.Translate(x, y, 0);
            printer.Print(text, font, c); 
            GL.PopMatrix(); printer.End();
            */

            char[] chars = text.ToCharArray();

            float maxy = 1;

            foreach (char cha in chars)
            {
                int charno = (int)cha;

                int charid = charno ^ (int)(fontsize * 1000) ^ brush.Color.ToArgb();

                if (!charDict.ContainsKey(charid))
                {
                    charDict[charid] = new character() { bitmap = new Bitmap(128, 128, System.Drawing.Imaging.PixelFormat.Format32bppArgb) , size = (int)fontsize };

                    charDict[charid].bitmap.MakeTransparent(Color.Transparent);

                    //charbitmaptexid

                    float maxx = this.Width / 150; // for space


                    // create bitmap
                    using (Graphics gfx = Graphics.FromImage(charDict[charid].bitmap))
                    {
                        pth.Reset();

                        if (text != null)
                            pth.AddString(cha + "", font.FontFamily, 0, fontsize + 5, new Point((int)0, (int)0), StringFormat.GenericTypographic);

                        gfx.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;

                        gfx.DrawPath(P, pth);

                        //Draw the face

                        gfx.FillPath(brush, pth);


                        if (pth.PointCount > 0)
                        {
                            foreach (PointF pnt in pth.PathPoints)
                            {
                                if (pnt.X > maxx)
                                    maxx = pnt.X;

                                if (pnt.Y > maxy)
                                    maxy = pnt.Y;
                            }
                        }
                    }

                    charDict[charid].width = (int)(maxx + 2);

                    //charbitmaps[charid] = charbitmaps[charid].Clone(new RectangleF(0, 0, maxx + 2, maxy + 2), charbitmaps[charid].PixelFormat);

                    //charbitmaps[charno * (int)fontsize].Save(charno + " " + (int)fontsize + ".png");

                    // create texture
                    int textureId;
                    GL.TexEnv(TextureEnvTarget.TextureEnv, TextureEnvParameter.TextureEnvMode, (float)TextureEnvModeCombine.Replace);//Important, or wrong color on some computers

                    Bitmap bitmap = charDict[charid].bitmap;
                    GL.GenTextures(1, out textureId);
                    GL.BindTexture(TextureTarget.Texture2D, textureId);

                    BitmapData data = bitmap.LockBits(new System.Drawing.Rectangle(0, 0, bitmap.Width, bitmap.Height), ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format32bppArgb);

                    GL.TexImage2D(TextureTarget.Texture2D, 0, PixelInternalFormat.Rgba, data.Width, data.Height, 0, OpenTK.Graphics.OpenGL.PixelFormat.Bgra, PixelType.UnsignedByte, data.Scan0);

                    GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)TextureMinFilter.Linear);
                    GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)TextureMagFilter.Linear);

                    //    GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)All.Nearest);
                    //GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)All.Nearest);
                    GL.Finish();
                    bitmap.UnlockBits(data);

                    charDict[charid].gltextureid = textureId;
                }

                //GL.Enable(EnableCap.Blend);
                GL.BlendFunc(BlendingFactorSrc.SrcAlpha, BlendingFactorDest.OneMinusSrcAlpha);

                GL.Enable(EnableCap.Texture2D);
                GL.BindTexture(TextureTarget.Texture2D, charDict[charid].gltextureid);

                float scale = 1.0f;

                GL.Begin(PrimitiveType.Quads);
                GL.TexCoord2(0, 0); GL.Vertex2(x, y);
                GL.TexCoord2(1, 0); GL.Vertex2(x + charDict[charid].bitmap.Width * scale, y);
                GL.TexCoord2(1, 1); GL.Vertex2(x + charDict[charid].bitmap.Width * scale, y + charDict[charid].bitmap.Height * scale);
                GL.TexCoord2(0, 1); GL.Vertex2(x + 0, y + charDict[charid].bitmap.Height * scale);
                GL.End();

                //GL.Disable(EnableCap.Blend);
                GL.Disable(EnableCap.Texture2D);

                x += charDict[charid].width * scale;
            }
        }
Beispiel #36
0
 // Use this for initialization
 void Start()
 {
     _camera = Camera.main;
     screenWidth = _camera.pixelWidth;
     screenHeight = _camera.pixelHeight;
     enemies = new enemy[20];
     enemynumber = 0;
     nowenemy = 0;
     mines = new mine[1000];
     minenumber = 0;
     nowmine = 0;
     dmap = new map ();
     StreamReader sr= new StreamReader("playinfo.txt");
     mode = sr.ReadLine();
     stage = int.Parse(sr.ReadLine());
     sr.Close();
     sr = new StreamReader(mode+"map\\"+stage.ToString()+".txt");
     string nextstring="";
     char[] cstring= new char[100];
     for (int y=0; y<15; y++) {
         nextstring=sr.ReadLine();
         cstring=nextstring.ToCharArray();
         for (int x=0; x<15; x++) {
             dmap.mapparts [y, x]=int.Parse(cstring[x].ToString());
         }
     }
     nextstring=sr.ReadLine();
     cstring=nextstring.ToCharArray();
     for (int x=0; x<5; x++) {
         dmap.mine[x]=int.Parse(cstring[2*x].ToString())*10+int.Parse(cstring[2*x+1].ToString());
     }
     nextstring=sr.ReadLine();
     cstring=nextstring.ToCharArray();
     for (int x=0; x<5; x++) {
         if(cstring[x]=='0')
             dmap.enemy[x]=false;
         else
             dmap.enemy[x]=true;
     }
     dmap.playerx=int.Parse(sr.ReadLine());
     dmap.playery=int.Parse(sr.ReadLine());
     sr.Close();
     for (int y=0; y<15; y++) {
         for (int x=0; x<15; x++) {
             Vector3 nextpoint= new Vector3((float)(-3+0.668*x),(float)(4.67-0.668*y));
             Instantiate (maps [dmap.mapparts[y,x]], nextpoint, transform.rotation);
         }
     }
     player = GameObject.Find ("character").GetComponent<character>();
     player.positionx = dmap.playerx;
     player.positiony = dmap.playery;
     turn = dmap.turn;
 }
Beispiel #37
0
 public static byte[] SendGuildInfo2(character c)
 {
     PacketWriter Writer = new PacketWriter();
     Writer.Create(Systems.SERVER_GUILD_ONLINE);
     Writer.DWord(c.Information.UniqueID);               // Guildmaster ID
     Writer.DWord(c.Network.Guild.Guildid);              // Guild ID
     Writer.Text(c.Network.Guild.Name);
     if (c.Network.Guild.GrantName != "")
         Writer.Text(c.Network.Guild.GrantName);         // Guildmaster grand name len
     else
         Writer.Word(0);
     Writer.DWord(0);                                    // ?
     Writer.DWord(0);                                    // ?
     Writer.DWord(0);                                    // ? Amount of guilds in union ?
     Writer.Byte(1);                                     // ?
     Writer.Byte(1);
     return Writer.GetBytes();
 }
Beispiel #38
0
 public void GameStart(int playable)
 {
     this.playable = (character)playable;
     Application.LoadLevel("Story");
 }
Beispiel #39
0
        public static DarkEmu_GameServer.character._usingSkill Info(int SkillID, character Character)
        {
            //Create new global information
            DarkEmu_GameServer.character._usingSkill info = new DarkEmu_GameServer.character._usingSkill();
            //Wrap our function inside a catcher
            try
            {
                //Set default skill information
                info.MainSkill = SkillID;
                info.SkillID = new int[10];
                info.FoundID = new int[10];
                info.TargetType = new bool[10];
                info.NumberOfAttack = NumberAttack(SkillID, ref info.SkillID);
                info.Targethits = 1;
                info.Distance = Convert.ToByte(Data.SkillBase[SkillID].Distance);
                info.Tdistance = 0;
                info.canUse = true;
                //Switch on skills series
                switch (Data.SkillBase[SkillID].Series)
                {
                    case "SKILL_EU_ROG_TRANSFORMA_MASK_A":
                        break;
                    #region Bicheon
                    #region Smashing Series
                    case "SKILL_CH_SWORD_SMASH_A":
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_SWORD_SMASH_B":
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_SWORD_SMASH_C":
                        info.NumberOfAttack = 2;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_SWORD_SMASH_D":
                        info.NumberOfAttack = 2;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_SWORD_SMASH_E":
                        info.NumberOfAttack = 3;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_SWORD_SMASH_F":
                        info.NumberOfAttack = 3;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 2;
                        break;
                    #endregion
                    #region Chain Sword Attack Series
                    case "SKILL_CH_SWORD_CHAIN_A":
                        info.NumberOfAttack = 3;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_SWORD_CHAIN_B":
                        info.NumberOfAttack = 4;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.SkillID[4] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_SWORD_CHAIN_C":
                        info.NumberOfAttack = 5;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.SkillID[4] = SkillID;
                        info.SkillID[5] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_SWORD_CHAIN_D":
                        info.NumberOfAttack = 4;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.SkillID[4] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_SWORD_CHAIN_E":
                        info.NumberOfAttack = 5;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.SkillID[4] = SkillID;
                        info.SkillID[5] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_SWORD_CHAIN_F":
                        info.NumberOfAttack = 6;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.SkillID[4] = SkillID;
                        info.SkillID[5] = SkillID;
                        info.SkillID[6] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_SWORD_CHAIN_G":
                        info.NumberOfAttack = 6;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.SkillID[4] = SkillID;
                        info.SkillID[5] = SkillID;
                        info.SkillID[6] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_SWORD_CHAIN_H":
                        info.NumberOfAttack = 7;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.SkillID[4] = SkillID;
                        info.SkillID[5] = SkillID;
                        info.SkillID[6] = SkillID;
                        info.SkillID[7] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    #endregion
                    #region Blade Force Series
                    case "SKILL_CH_SWORD_GEOMGI_A":
                        info.Instant = 0;
                        info.Distance = 4;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_SWORD_GEOMGI_B":
                        info.Instant = 0;
                        info.Distance = 4;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_SWORD_GEOMGI_C":
                        info.NumberOfAttack = 2;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.Instant = 0;
                        info.Distance = 4;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_SWORD_GEOMGI_D":
                        info.NumberOfAttack = 2;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.Instant = 0;
                        info.Distance = 4;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_SWORD_GEOMGI_E":
                        info.NumberOfAttack = 3;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.Instant = 0;
                        info.Distance = 4;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_SWORD_GEOMGI_F":
                        info.NumberOfAttack = 3;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.Instant = 0;
                        info.Distance = 4;
                        info.P_M = false;
                        break;
                    #endregion
                    #region Hidden Blade Series
                    case "SKILL_CH_SWORD_KNOCKDOWN_A":
                        info.Instant = 0;
                        info.P_M = false;
                        info.OzelEffect = 4;
                        break;
                    case "SKILL_CH_SWORD_KNOCKDOWN_B":
                        info.Instant = 0;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 2;
                        info.OzelEffect = 4;
                        break;
                    case "SKILL_CH_SWORD_KNOCKDOWN_C":
                        info.Instant = 0;
                        info.P_M = false;
                        info.OzelEffect = 4;
                        break;
                    case "SKILL_CH_SWORD_KNOCKDOWN_D":
                        info.Instant = 0;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 3;
                        info.OzelEffect = 4;
                        break;
                    case "SKILL_CH_SWORD_KNOCKDOWN_E":
                        info.NumberOfAttack = 2;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        info.OzelEffect = 5;
                        break;
                    #endregion
                    #region Killing Heaven Blade Series
                    case "SKILL_CH_SWORD_DOWNATTACK_A":
                        info.Instant = 0;
                        info.P_M = false;
                        info.OzelEffect = 5;
                        break;
                    case "SKILL_CH_SWORD_DOWNATTACK_B":
                        info.Instant = 0;
                        info.P_M = false;
                        info.OzelEffect = 5;
                        break;
                    case "SKILL_CH_SWORD_DOWNATTACK_C":
                        info.NumberOfAttack = 2;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        info.OzelEffect = 5;
                        break;
                    case "SKILL_CH_SWORD_DOWNATTACK_D":
                        info.NumberOfAttack = 2;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        info.OzelEffect = 5;
                        break;
                    case "SKILL_CH_SWORD_DOWNATTACK_E":
                        info.NumberOfAttack = 2;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        info.OzelEffect = 5;
                        break;
                    case "SKILL_CH_SWORD_DOWNATTACK_F":
                        info.NumberOfAttack = 2;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        info.OzelEffect = 5;
                        break;
                    #endregion
                    #region Sword Dance Series
                    case "SKILL_CH_SWORD_SPECIAL_A":
                        info.Instant = 0;
                        info.Distance = 4;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 7;
                        break;
                    case "SKILL_CH_SWORD_SPECIAL_B":
                        info.Instant = 0;
                        info.Distance = 4;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 15;
                        break;
                    case "SKILL_CH_SWORD_SPECIAL_C":
                        info.Instant = 0;
                        info.Distance = 4;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 15;
                        break;
                    case "SKILL_CH_SWORD_SPECIAL_D":
                        info.Instant = 0;
                        info.Distance = 4;
                        info.P_M = false;
                        info.Targethits = 4;
                        info.Tdistance = 15;
                        break;
                    case "SKILL_CH_SWORD_SPECIAL_E":
                        info.NumberOfAttack = 2;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.Instant = 0;
                        info.Distance = 4;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 15;
                        break;
                    #endregion
                    #endregion

                    #region Heuksal
                    #region Annihilating Blade Series
                    case "SKILL_CH_SPEAR_PIERCE_A":
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_SPEAR_PIERCE_B":
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_SPEAR_PIERCE_C":
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_SPEAR_PIERCE_D":
                        info.NumberOfAttack = 2;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_SPEAR_PIERCE_E":
                        info.NumberOfAttack = 3;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_SPEAR_PIERCE_F":
                        info.NumberOfAttack = 3;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    #endregion
                    #region Heuksal Spear Series
                    case "SKILL_CH_SPEAR_FRONTAREA_A":
                        info.Instant = 0;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 1;
                        break;
                    case "SKILL_CH_SPEAR_FRONTAREA_B":
                        info.Instant = 0;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 1;
                        break;
                    case "SKILL_CH_SPEAR_FRONTAREA_C":
                        info.Instant = 0;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 1;
                        break;
                    case "SKILL_CH_SPEAR_FRONTAREA_D":
                        info.Instant = 0;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 2;
                        break;
                    case "SKILL_CH_SPEAR_FRONTAREA_E":
                        info.Instant = 0;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 2;
                        break;
                    case "SKILL_CH_SPEAR_FRONTAREA_F":
                        info.Instant = 0;
                        info.P_M = false;
                        info.Targethits = 4;
                        info.Tdistance = 3;
                        break;
                    #endregion
                    #region Soul Departs Spear Series
                    case "SKILL_CH_SPEAR_STUN_A":
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_SPEAR_STUN_B":
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_SPEAR_STUN_C":
                        info.Instant = 0;
                        info.P_M = false;
                        info.Targethits = 2;
                        break;
                    case "SKILL_CH_SPEAR_STUN_D":
                        info.Instant = 0;
                        info.P_M = false;
                        info.Targethits = 2;
                        break;
                    case "SKILL_CH_SPEAR_STUN_E":
                        info.Instant = 0;
                        info.P_M = false;
                        info.Targethits = 3;
                        break;
                    case "SKILL_CH_SPEAR_STUN_F":
                        info.Instant = 0;
                        info.P_M = false;
                        info.Targethits = 3;
                        break;
                    #endregion
                    #region Ghost Spear Attack Series
                    case "SKILL_CH_SPEAR_ROUNDAREA_A":
                        info.Instant = 0;
                        info.P_M = false;
                        info.Targethits = 5;
                        info.Tdistance = 2;
                        break;
                    case "SKILL_CH_SPEAR_ROUNDAREA_B":
                        info.Instant = 0;
                        info.P_M = false;
                        info.Targethits = 5;
                        info.Tdistance = 3;
                        break;
                    case "SKILL_CH_SPEAR_ROUNDAREA_C":
                        info.Instant = 0;
                        info.P_M = false;
                        info.Targethits = 5;
                        info.Tdistance = 4;
                        break;
                    case "SKILL_CH_SPEAR_ROUNDAREA_D":
                        info.Instant = 0;
                        info.P_M = false;
                        info.Targethits = 5;
                        info.Tdistance = 5;
                        break;
                    case "SKILL_CH_SPEAR_ROUNDAREA_E":
                        info.Instant = 0;
                        info.P_M = false;
                        info.Targethits = 5;
                        info.Tdistance = 5;
                        break;
                    case "SKILL_CH_SPEAR_ROUNDAREA_F":
                        info.Instant = 0;
                        info.P_M = false;
                        info.Targethits = 5;
                        info.Tdistance = 5;
                        break;
                    #endregion
                    #region Chain Spear Attack Series
                    case "SKILL_CH_SPEAR_CHAIN_A":
                        info.NumberOfAttack = 3;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_SPEAR_CHAIN_B":
                        info.NumberOfAttack = 4;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.SkillID[4] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_SPEAR_CHAIN_C":
                        info.NumberOfAttack = 5;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.SkillID[4] = SkillID;
                        info.SkillID[5] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 2;
                        break;
                    case "SKILL_CH_SPEAR_CHAIN_D":
                        info.NumberOfAttack = 4;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.SkillID[4] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_SPEAR_CHAIN_E":
                        info.NumberOfAttack = 6;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.SkillID[4] = SkillID;
                        info.SkillID[5] = SkillID;
                        info.SkillID[6] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        info.Targethits = 5;
                        info.Tdistance = 3;
                        break;
                    case "SKILL_CH_SPEAR_CHAIN_F":
                        info.NumberOfAttack = 6;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.SkillID[4] = SkillID;
                        info.SkillID[5] = SkillID;
                        info.SkillID[6] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        info.Targethits = 5;
                        info.Tdistance = 3;
                        break;
                    case "SKILL_CH_SPEAR_CHAIN_G":
                        info.NumberOfAttack = 7;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.SkillID[4] = SkillID;
                        info.SkillID[5] = SkillID;
                        info.SkillID[6] = SkillID;
                        info.SkillID[7] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        info.Targethits = 5;
                        info.Tdistance = 3;
                        break;
                    #endregion
                    #region Flying Dragon Spear Series
                    case "SKILL_CH_SPEAR_SHOOT_A":
                        info.Instant = 0;
                        info.Distance = 6;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_SPEAR_SHOOT_B":
                        info.Instant = 0;
                        info.Distance = 6;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_SPEAR_SHOOT_C":
                        info.Instant = 0;
                        info.Distance = 6;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_SPEAR_SHOOT_D":
                        info.NumberOfAttack = 2;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.Instant = 0;
                        info.Distance = 6;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_SPEAR_SHOOT_E":
                        info.NumberOfAttack = 2;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.Instant = 0;
                        info.Distance = 6;
                        info.P_M = false;
                        break;
                    #endregion
                    #endregion

                    #region Pacheon
                    #region Anti Devil Bow Series
                    case "SKILL_CH_BOW_CRITICAL_A":
                        info.Instant = 2;
                        info.Distance = 15;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_BOW_CRITICAL_B":
                        info.Instant = 2;
                        info.Distance = 15;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_BOW_CRITICAL_C":
                        info.Instant = 2;
                        info.Distance = 15;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_BOW_CRITICAL_D":
                        info.Instant = 2;
                        info.Distance = 15;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_BOW_CRITICAL_E":
                        info.Instant = 2;
                        info.Distance = 15;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_BOW_CRITICAL_F":
                        info.Instant = 2;
                        info.Distance = 15;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_BOW_CRITICAL_G":
                        info.Instant = 2;
                        info.Distance = 15;
                        info.P_M = false;
                        break;
                    #endregion
                    #region Arrow Combo Attack Series
                    case "SKILL_CH_BOW_CHAIN_A":
                        info.NumberOfAttack = 2;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.Instant = 0;
                        info.Distance = 15;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_BOW_CHAIN_B":
                        info.NumberOfAttack = 3;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.Instant = 0;
                        info.Distance = 15;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_BOW_CHAIN_C":
                        info.NumberOfAttack = 4;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.SkillID[4] = SkillID;
                        info.Instant = 0;
                        info.Distance = 15;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_BOW_CHAIN_D":
                        info.NumberOfAttack = 5;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.SkillID[4] = SkillID;
                        info.SkillID[5] = SkillID;
                        info.Instant = 0;
                        info.Distance = 15;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_BOW_CHAIN_E":
                        info.NumberOfAttack = 6;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.SkillID[4] = SkillID;
                        info.SkillID[5] = SkillID;
                        info.SkillID[6] = SkillID;
                        info.Instant = 0;
                        info.Distance = 15;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_BOW_CHAIN_F":
                        info.NumberOfAttack = 7;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.SkillID[4] = SkillID;
                        info.SkillID[5] = SkillID;
                        info.SkillID[6] = SkillID;
                        info.SkillID[7] = SkillID;
                        info.Instant = 0;
                        info.Distance = 15;
                        info.P_M = false;
                        break;
                    #endregion
                    #region Autumn Wind Arrow Series
                    case "SKILL_CH_BOW_PIERCE_A":
                        info.Instant = 2;
                        info.Distance = 15;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_BOW_PIERCE_B":
                        info.Instant = 2;
                        info.Distance = 15;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_BOW_PIERCE_C":
                        info.Instant = 2;
                        info.Distance = 7;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_BOW_PIERCE_D":
                        info.Instant = 2;
                        info.Distance = 15;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_BOW_PIERCE_E":
                        info.Instant = 2;
                        info.Distance = 15;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_BOW_PIERCE_F":
                        info.Instant = 2;
                        info.Distance = 15;
                        info.P_M = false;
                        break;
                    #endregion
                    #region Explosion Arrow Series
                    case "SKILL_CH_BOW_AREA_A":
                        info.Instant = 2;
                        info.Distance = 15;
                        info.P_M = false;
                        info.Targethits = 4;
                        info.Tdistance = 4;
                        break;
                    case "SKILL_CH_BOW_AREA_B":
                        info.Instant = 2;
                        info.Distance = 15;
                        info.P_M = false;
                        info.Targethits = 4;
                        info.Tdistance = 4;
                        break;
                    case "SKILL_CH_BOW_AREA_C":
                        info.Instant = 2;
                        info.Distance = 15;
                        info.P_M = false;
                        info.Targethits = 4;
                        info.Tdistance = 4;
                        break;
                    case "SKILL_CH_BOW_AREA_D":
                        info.Instant = 2;
                        info.Distance = 15;
                        info.P_M = false;
                        info.Targethits = 4;
                        info.Tdistance = 5;
                        break;
                    case "SKILL_CH_BOW_AREA_E":
                        info.Instant = 2;
                        info.Distance = 15;
                        info.P_M = false;
                        info.Targethits = 4;
                        info.Tdistance = 6;
                        break;
                    #endregion
                    #region Strong Bow Series
                    case "SKILL_CH_BOW_POWER_A":
                        info.Instant = 2;
                        info.Distance = 15;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_BOW_POWER_B":
                        info.Instant = 2;
                        info.Distance = 15;
                        info.P_M = false;
                        break;
                    case "SKILL_CH_BOW_POWER_C":
                        info.Instant = 2;
                        info.Distance = 15;
                        info.P_M = false;
                        info.Tdistance = 4;
                        break;
                    case "SKILL_CH_BOW_POWER_D":
                        info.Instant = 2;
                        info.Distance = 15;
                        info.P_M = false;
                        info.Tdistance = 5;
                        break;
                    case "SKILL_CH_BOW_POWER_E":
                        info.Instant = 2;
                        info.Distance = 15;
                        info.P_M = false;
                        info.Tdistance = 6;
                        break;
                    #endregion
                    #region Mind Bow Series
                    case "SKILL_CH_BOW_SPECIAL_A":
                        info.Instant = 2;
                        info.Distance = 15;
                        info.P_M = false;
                        info.Targethits = 2;
                        info.Tdistance = 20;
                        break;
                    case "SKILL_CH_BOW_SPECIAL_B":
                        info.Instant = 2;
                        info.Distance = 15;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 22;
                        break;
                    case "SKILL_CH_BOW_SPECIAL_C":
                        info.Instant = 2;
                        info.Distance = 15;
                        info.P_M = false;
                        info.Targethits = 4;
                        info.Tdistance = 23;
                        break;
                    case "SKILL_CH_BOW_SPECIAL_D":
                        info.Instant = 2;
                        info.Distance = 15;
                        info.P_M = false;
                        info.Targethits = 5;
                        info.Tdistance = 24;
                        break;
                    #endregion
                    #endregion

                    #region Cold
                    #region Snow Storm Series
                    case "SKILL_CH_COLD_GIGONGSUL_A":
                        info.Instant = 2;
                        info.Distance = 15;
                        info.P_M = true;

                        break;
                    case "SKILL_CH_COLD_GIGONGSUL_B":
                        info.Instant = 2;
                        info.Distance = 15;
                        info.P_M = true;
                        info.Targethits = 5;
                        info.Tdistance = 6;
                        break;
                    case "SKILL_CH_COLD_GIGONGSUL_C":
                        info.Instant = 2;
                        info.Distance = 15;
                        info.P_M = true;
                        break;
                    case "SKILL_CH_COLD_GIGONGSUL_D":
                        info.Instant = 2;
                        info.Distance = 15;
                        info.P_M = true;
                        info.Targethits = 5;
                        info.Tdistance = 7;
                        break;
                    case "SKILL_CH_COLD_GIGONGSUL_E":
                        info.Instant = 2;
                        info.Distance = 15;
                        info.P_M = true;
                        break;
                    #endregion
                    #endregion

                    #region Light
                    #region Lion Shout Series
                    case "SKILL_CH_LIGHTNING_CHUNDUNG_A":
                    case "SKILL_CH_LIGHTNING_CHUNDUNG_B":
                    case "SKILL_CH_LIGHTNING_CHUNDUNG_C":
                    case "SKILL_CH_LIGHTNING_CHUNDUNG_D":
                    case "SKILL_CH_LIGHTNING_CHUNDUNG_E":
                    case "SKILL_CH_LIGHTNING_CHUNDUNG_F":
                        info.Instant = 0;
                        info.Distance = 10;
                        info.P_M = true;
                        info.Targethits = 3;
                        info.Tdistance = 2;
                        break;
                    #endregion
                    #region Thunderbolt Force Series
                    case "SKILL_CH_LIGHTNING_STORM_A":
                    case "SKILL_CH_LIGHTNING_STORM_B":
                    case "SKILL_CH_LIGHTNING_STORM_C":
                    case "SKILL_CH_LIGHTNING_STORM_D":
                    case "SKILL_CH_LIGHTNING_STORM_E":
                        info.Instant = 2;
                        info.Distance = 12;
                        info.P_M = true;
                        info.Targethits = 3;
                        info.Tdistance = 10;
                        break;
                    #endregion
                    #endregion

                    #region Fire
                    #region Flame Wave Series
                    case "SKILL_CH_FIRE_GIGONGSUL_A":
                    case "SKILL_CH_FIRE_GIGONGSUL_B":
                    case "SKILL_CH_FIRE_GIGONGSUL_D":
                    case "SKILL_CH_FIRE_GIGONGSUL_E":
                    case "SKILL_CH_FIRE_GIGONGSUL_G":
                        info.Instant = 2;
                        info.Distance = 12;
                        info.P_M = true;
                        break;
                    case "SKILL_CH_FIRE_GIGONGSUL_F":
                    case "SKILL_CH_FIRE_GIGONGSUL_C":
                        info.Instant = 2;
                        info.Distance = 12;
                        info.P_M = true;
                        info.Targethits = 3;
                        info.Tdistance = 6;
                        break;
                    #endregion
                    #endregion

                    #region Force
                    case "SKILL_CH_WATER_CURE_A":
                    case "SKILL_CH_WATER_CURE_B":
                    case "SKILL_CH_WATER_CURE_C":
                    case "SKILL_CH_WATER_CURE_D":
                    case "SKILL_CH_WATER_CURE_E":
                    case "SKILL_CH_WATER_CURE_F":
                    case "SKILL_CH_WATER_HEAL_A":
                    case "SKILL_CH_WATER_HEAL_B":
                    case "SKILL_CH_WATER_HEAL_C":
                    case "SKILL_CH_WATER_HEAL_D":
                    case "SKILL_CH_WATER_HEAL_E":
                    case "SKILL_CH_WATER_HEAL_F":
                        if (Character.Action.Object != null || Character.Action.Object.GetType().ToString() == "DarkEmu_GameServer.Systems") info.canUse = false;

                        break;
                    case "SKILL_CH_WATER_CANCEL_A":
                    case "SKILL_CH_WATER_CANCEL_B":
                    case "SKILL_CH_WATER_CANCEL_C":
                    case "SKILL_CH_WATER_CANCEL_D":
                    case "SKILL_CH_WATER_CANCEL_E":
                    case "SKILL_CH_WATER_CANCEL_F":
                    case "SKILL_CH_WATER_CANCEL_G":
                    case "SKILL_CH_WATER_CANCEL_H":
                        if (Character.Action.Object != null || Character.Action.Object.GetType().ToString() == "DarkEmu_GameServer.Systems") info.canUse = false;

                        break;
                    case "SKILL_CH_WATER_RESURRECTION_A":
                    case "SKILL_CH_WATER_RESURRECTION_B":
                    case "SKILL_CH_WATER_RESURRECTION_C":
                    case "SKILL_CH_WATER_RESURRECTION_D":
                    case "SKILL_CH_WATER_RESURRECTION_E":
                        if (Character.Action.Object != null || Character.Action.Object.GetType().ToString() == "DarkEmu_GameServer.Systems") info.canUse = false;

                        break;
                    #endregion

                    #region Europe
                    #region Melee
                    #region Europe Warrior
                    #region One-Handed
                    case "SKILL_EU_WARRIOR_ONEHANDA_STRIKE_A":
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_WARRIOR_ONEHANDA_SHIELD_A":
                        info.Instant = 0;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 2;
                        break;
                    case "SKILL_EU_WARRIOR_ONEHANDA_SHIELD_B":
                        info.NumberOfAttack = 2;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 2;
                        break;
                    case "SKILL_EU_WARRIOR_ONEHANDA_PIERCE_A":
                        info.NumberOfAttack = 2;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_WARRIOR_ONEHANDA_PIERCE_B":
                        info.NumberOfAttack = 4;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.SkillID[4] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_WARRIOR_ONEHANDA_CRITICAL_A":
                        info.NumberOfAttack = 2;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_WARRIOR_ONEHANDA_CRITICAL_B":
                        info.NumberOfAttack = 4;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.SkillID[4] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    #endregion
                    #region Two-Handed
                    case "SKILL_EU_WARRIOR_TWOHANDA_DASH_A":
                        info.Instant = 0;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 1;
                        break;
                    case "SKILL_EU_WARRIOR_TWOHANDA_RISING_A":
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_WARRIOR_TWOHANDA_CHARGE_A":
                        info.NumberOfAttack = 2;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_WARRIOR_TWOHANDA_CHARGE_B":
                        info.NumberOfAttack = 3;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_WARRIOR_TWOHANDA_CRY_A":
                        info.Instant = 0;
                        info.P_M = false;
                        info.Targethits = 3;
                        break;
                    case "SKILL_EU_WARRIOR_TWOHANDA_CRY_B":
                        info.NumberOfAttack = 2;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        info.Targethits = 3;
                        break;
                    #endregion
                    #region Axe
                    case "SKILL_EU_WARRIOR_DUALA_CROSS_A":
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_WARRIOR_DUALA_TWIST_A":
                        info.NumberOfAttack = 2;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_WARRIOR_DUALA_TWIST_B":
                        info.NumberOfAttack = 3;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_WARRIOR_DUALA_STUN_A":
                        info.Instant = 0;
                        info.P_M = false;
                        info.Targethits = 8;
                        info.Tdistance = 5;
                        break;
                    case "SKILL_EU_WARRIOR_DUALA_COUNTER_A":
                        info.NumberOfAttack = 3;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 2;
                        break;
                    case "SKILL_EU_WARRIOR_DUALA_COUNTER_B":
                        info.NumberOfAttack = 4;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.SkillID[4] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 2;
                        break;
                    case "SKILL_EU_WARRIOR_DUALA_WHIRLWIND_A":
                        info.NumberOfAttack = 4;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.SkillID[4] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 1;
                        break;
                    case "SKILL_EU_WARRIOR_DUALA_WHIRLWIND_B":
                        info.NumberOfAttack = 5;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.SkillID[4] = SkillID;
                        info.SkillID[5] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 1;
                        break;
                    #endregion
                    #region Warrior Others
                    case "SKILL_EU_WARRIOR_FRENZYA_TOUNT_A":
                        info.Instant = 0;
                        info.Distance = 15;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 5;
                        break;
                    case "SKILL_EU_WARRIOR_FRENZYA_TOUNT_SPRINT_A":
                        info.Instant = 0;
                        info.Distance = 15;
                        info.P_M = false;
                        break;
                    #endregion
                    #endregion
                    #region Europe Rogue
                    #region Rogue
                    case "SKILL_EU_ROG_BOWA_POWER_A":
                        info.Instant = 1;
                        info.Distance = 15;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_ROG_BOWA_POWER_B":
                        info.NumberOfAttack = 2;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.Instant = 1;
                        info.Distance = 15;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_ROG_BOWA_FAST_A":
                        info.Instant = 0;
                        info.Distance = 30;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_ROG_BOWA_FAST_B":
                        info.Instant = 0;
                        info.Distance = 30;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 10;
                        break;
                    case "SKILL_EU_ROG_BOWA_RANGE_A":
                        info.Instant = 1;
                        info.Distance = 22;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_ROG_BOWA_RANGE_B":
                        info.Instant = 1;
                        info.Distance = 22;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_ROG_BOWA_KNOCK_A":
                        info.Instant = 1;
                        info.Distance = 15;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_ROG_BOWA_KNOCK_B":
                        info.NumberOfAttack = 2;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.Instant = 1;
                        info.Distance = 15;
                        info.P_M = false;
                        break;
                    #endregion
                    #region Dagger
                    case "SKILL_EU_ROG_DAGGERA_CHAIN_A":
                        info.NumberOfAttack = 2;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_ROG_DAGGERA_WOUND_A":
                        info.NumberOfAttack = 2;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_ROG_DAGGERA_WOUND_B":
                        info.NumberOfAttack = 3;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_ROG_DAGGERA_SCREW_A":
                        info.Instant = 1;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_ROG_DAGGERA_SLASH_A":
                        info.NumberOfAttack = 3;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_ROG_DAGGERA_SLASH_B":
                        info.NumberOfAttack = 5;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.SkillID[4] = SkillID;
                        info.SkillID[5] = SkillID;
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_ROG_STEALTHA_ATTACK_A":
                        info.Instant = 0;
                        info.P_M = false;
                        break;
                    #endregion
                    #endregion
                    #endregion

                    #region Caster
                    #region Europe Wizard
                    #region Earth
                    case "SKILL_EU_WIZARD_EARTHA_POINT_A":
                        info.Instant = 1;
                        info.Distance = 5;
                        info.P_M = true;
                        info.Targethits = 5;
                        info.Tdistance = 5;
                        break;
                    case "SKILL_EU_WIZARD_EARTHA_POINT_B":
                        info.Instant = 1;
                        info.Distance = 5;
                        info.P_M = true;
                        info.Targethits = 5;
                        info.Tdistance = 5;
                        break;
                    case "SKILL_EU_WIZARD_EARTHA_AREA_A":
                        info.Instant = 1;
                        info.Distance = 15;
                        info.P_M = true;
                        info.Targethits = 5;
                        info.Tdistance = 10;
                        break;
                    case "SKILL_EU_WIZARD_EARTHA_AREA_B":
                        info.Instant = 1;
                        info.Distance = 15;
                        info.P_M = true;
                        info.Targethits = 5;
                        info.Tdistance = 10;
                        break;
                    case "SKILL_EU_WIZARD_EARTHA_ABNORMAL_A":
                        info.Instant = 1;
                        info.Distance = 10;
                        info.P_M = true;
                        break;
                    case "SKILL_EU_WIZARD_EARTHA_ABNORMAL_B":
                        info.Instant = 1;
                        info.Distance = 10;
                        info.P_M = true;
                        info.Targethits = 3;
                        info.Tdistance = 5;
                        break;
                    #endregion
                    #region Cold
                    case "SKILL_EU_WIZARD_COLDA_POINT_A":
                        info.Instant = 1;
                        info.Distance = 15;
                        info.P_M = true;
                        break;
                    case "SKILL_EU_WIZARD_COLDA_POINT_B":
                        info.NumberOfAttack = 3;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.Instant = 1;
                        info.Distance = 15;
                        info.P_M = true;
                        break;
                    case "SKILL_EU_WIZARD_COLDA_AREA_A":
                        info.Instant = 1;
                        info.Distance = 15;
                        info.P_M = true;
                        info.Targethits = 5;
                        info.Tdistance = 10;
                        break;
                    case "SKILL_EU_WIZARD_COLDA_AREA_B":
                        info.Instant = 1;
                        info.Distance = 15;
                        info.P_M = true;
                        info.Targethits = 5;
                        info.Tdistance = 15;
                        break;
                    case "SKILL_EU_WIZARD_COLDA_MANADRY_A":
                        info.Instant = 1;
                        info.Distance = 10;
                        info.P_M = true;
                        break;
                    case "SKILL_EU_WIZARD_COLDA_MANADRY_B":
                        info.Instant = 1;
                        info.Distance = 10;
                        info.P_M = true;
                        info.Targethits = 3;
                        info.Tdistance = 8;
                        break;
                    #endregion
                    #region Fire
                    case "SKILL_EU_WIZARD_FIREA_POINT_A":
                        info.Instant = 1;
                        info.Distance = 15;
                        info.P_M = true;
                        break;
                    case "SKILL_EU_WIZARD_FIREA_POINT_B":
                        info.Instant = 1;
                        info.Distance = 15;
                        info.P_M = true;
                        info.Targethits = 3;
                        info.Tdistance = 3;
                        break;
                    case "SKILL_EU_WIZARD_FIREA_SPRAY_A":
                        info.NumberOfAttack = 7;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.SkillID[4] = SkillID;
                        info.SkillID[5] = SkillID;
                        info.SkillID[6] = SkillID;
                        info.SkillID[7] = SkillID;
                        info.Instant = 1;
                        info.Distance = 15;
                        info.P_M = true;
                        info.Targethits = 3;
                        break;
                    case "SKILL_EU_WIZARD_FIREA_SPRAY_B":
                        info.NumberOfAttack = 7;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.SkillID[4] = SkillID;
                        info.SkillID[5] = SkillID;
                        info.SkillID[6] = SkillID;
                        info.SkillID[7] = SkillID;
                        info.Instant = 1;
                        info.Distance = 15;
                        info.P_M = true;
                        info.Targethits = 3;
                        break;
                    case "SKILL_EU_WIZARD_FIREA_TRAP_A":
                        info.Instant = 1;
                        info.Distance = 10;
                        info.P_M = true;
                        info.Targethits = 5;
                        info.Tdistance = 7;
                        break;
                    case "SKILL_EU_WIZARD_FIREA_TRAP_B":
                        info.Instant = 1;
                        info.Distance = 10;
                        info.P_M = true;
                        info.Targethits = 5;
                        info.Tdistance = 7;
                        break;
                    #endregion
                    #region Light
                    case "SKILL_EU_WIZARD_PSYCHICA_LIGHT_A":
                        info.Instant = 1;
                        info.Distance = 15;
                        info.P_M = true;
                        info.Targethits = 2;
                        info.Tdistance = 10;
                        break;
                    case "SKILL_EU_WIZARD_PSYCHICA_LIGHT_B":
                        info.Instant = 1;
                        info.Distance = 15;
                        info.P_M = true;
                        info.Targethits = 3;
                        info.Tdistance = 10;
                        break;
                    case "SKILL_EU_WIZARD_PSYCHICA_AREA_A":
                        info.NumberOfAttack = 6;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.SkillID[4] = SkillID;
                        info.SkillID[5] = SkillID;
                        info.SkillID[6] = SkillID;
                        info.Instant = 1;
                        info.Distance = 15;
                        info.P_M = true;
                        info.Targethits = 5;
                        info.Tdistance = 10;
                        break;
                    case "SKILL_EU_WIZARD_PSYCHICA_AREA_B":
                        info.NumberOfAttack = 6;
                        info.SkillID[1] = SkillID;
                        info.SkillID[2] = SkillID;
                        info.SkillID[3] = SkillID;
                        info.SkillID[4] = SkillID;
                        info.SkillID[5] = SkillID;
                        info.SkillID[6] = SkillID;
                        info.Instant = 1;
                        info.Distance = 15;
                        info.P_M = true;
                        info.Targethits = 5;
                        info.Tdistance = 10;
                        break;
                    case "SKILL_EU_WIZARD_PSYCHICA_UNTOUCH_A":
                        info.Instant = 1;
                        info.Distance = 10;
                        info.P_M = true;
                        break;
                    case "SKILL_EU_WIZARD_PSYCHICA_UNTOUCH_B":
                        info.Instant = 1;
                        info.Distance = 10;
                        info.P_M = true;
                        info.Targethits = 5;
                        info.Tdistance = 12;
                        break;
                    #endregion
                    #endregion
                    #region Europe Warlock
                    #region Dark Mentalist
                    case "SKILL_EU_WARLOCK_DOTA_BURN_A":
                        info.Instant = 1;
                        info.Distance = 5;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_WARLOCK_DOTA_BURN_B":
                        info.Instant = 1;
                        info.Distance = 5;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 7;
                        break;
                    case "SKILL_EU_WARLOCK_DOTA_POISON_A":
                        info.Instant = 1;
                        info.Distance = 5;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_WARLOCK_DOTA_POISON_B":
                        info.Instant = 1;
                        info.Distance = 5;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 7;
                        break;
                    case "SKILL_EU_WARLOCK_DOTA_BLOODING_A":
                        info.Instant = 1;
                        info.Distance = 5;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_WARLOCK_DOTA_BLOODING_B":
                        info.Instant = 1;
                        info.Distance = 5;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 7;
                        break;
                    case "SKILL_EU_WARLOCK_DOTA_DISEASE_A":
                        info.Instant = 1;
                        info.Distance = 5;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_WARLOCK_DOTA_DISEASE_B":
                        info.Instant = 1;
                        info.Distance = 5;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 7;
                        break;
                    #endregion
                    #region Raze
                    case "SKILL_EU_WARLOCK_RAZEA_PHYSICAL_A":
                        info.Instant = 1;
                        info.Distance = 5;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_WARLOCK_RAZEA_PHYSICAL_B":
                        info.Instant = 1;
                        info.Distance = 5;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 10;
                        break;
                    case "SKILL_EU_WARLOCK_RAZEA_MAGICAL_A":
                        info.Instant = 1;
                        info.Distance = 5;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_WARLOCK_RAZEA_MAGICAL_B":
                        info.Instant = 1;
                        info.Distance = 5;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 10;
                        break;
                    case "SKILL_EU_WARLOCK_RAZEA_STR_A":
                        info.Instant = 1;
                        info.Distance = 5;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_WARLOCK_RAZEA_STR_B":
                        info.Instant = 1;
                        info.Distance = 5;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 10;
                        break;
                    case "SKILL_EU_WARLOCK_RAZEA_INT_A":
                        info.Instant = 1;
                        info.Distance = 5;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_WARLOCK_RAZEA_INT_B":
                        info.Instant = 1;
                        info.Distance = 5;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 10;
                        break;
                    #endregion
                    #region Blood
                    case "SKILL_EU_WARLOCK_BLOODA_POINT_A":
                        info.Instant = 0;
                        info.Distance = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_WARLOCK_BLOODA_POINT_B":
                        info.Instant = 0;
                        info.Distance = 0;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 5;
                        break;
                    case "SKILL_EU_WARLOCK_BLOODA_EXPLOSION_A":
                        info.Instant = 0;
                        info.Distance = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_WARLOCK_BLOODA_EXPLOSION_B":
                        info.Instant = 0;
                        info.Distance = 0;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 10;
                        break;
                    #endregion
                    #region Sould Pressure
                    case "SKILL_EU_WARLOCK_SOULA_STUN_A":
                        info.Instant = 0;
                        info.Distance = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_WARLOCK_SOULA_STUN_B":
                        info.Instant = 0;
                        info.Distance = 0;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 10;
                        break;
                    case "SKILL_EU_WARLOCK_CONFUSIONA_ILLUSION_A":
                        info.Instant = 0;
                        info.Distance = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_WARLOCK_CONFUSIONA_ILLUSION_B":
                        info.Instant = 0;
                        info.Distance = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_WARLOCK_CONFUSIONA_RANGE_A":
                        info.Instant = 0;
                        info.Distance = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_WARLOCK_CONFUSIONA_RANGE_B":
                        info.Instant = 0;
                        info.Distance = 0;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 10;
                        break;
                    #endregion
                    #region Cruel Spell
                    case "SKILL_EU_WARLOCK_BLOODA_LIFEDRAIN_A":
                        info.Instant = 0;
                        info.Distance = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_WARLOCK_BLOODA_LIFEDRAIN_B":
                        info.Instant = 0;
                        info.Distance = 0;
                        info.P_M = false;
                        info.Targethits = 5;
                        info.Tdistance = 15;
                        break;
                    case "SKILL_EU_WARLOCK_SOULA_CHAOS_A":
                        info.Instant = 0;
                        info.Distance = 0;
                        info.P_M = false;
                        info.Targethits = 5;
                        info.Tdistance = 5;
                        break;
                    case "SKILL_EU_WARLOCK_SOULA_CHAOS_B":
                        info.Instant = 0;
                        info.Distance = 0;
                        info.P_M = false;
                        info.Targethits = 5;
                        info.Tdistance = 5;
                        break;
                    case "SKILL_EU_WARLOCK_SOULA_STUNLINK_A":
                        info.Instant = 0;
                        info.Distance = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_WARLOCK_SOULA_RETURN_A":
                        info.Instant = 0;
                        info.Distance = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_WARLOCK_SOULA_RETURN_B":
                        info.Instant = 0;
                        info.Distance = 0;
                        info.P_M = false;
                        info.Targethits = 8;
                        info.Tdistance = 30;
                        break;
                    #endregion
                    #region Dim Haze
                    case "SKILL_EU_WARLOCK_SOULA_MEZA_A":
                        info.Instant = 0;
                        info.Distance = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_WARLOCK_SOULA_MEZA_B":
                        info.Instant = 0;
                        info.Distance = 0;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 10;
                        break;
                    case "SKILL_EU_WARLOCK_CONFUSIONA_HEAL_A":
                        info.Instant = 0;
                        info.Distance = 0;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_WARLOCK_CONFUSIONA_HEAL_B":
                        info.Instant = 0;
                        info.Distance = 0;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 10;
                        break;
                    case "SKILL_EU_WARLOCK_CONFUSIONA_AGGROLOW_A":
                        info.Instant = 0;
                        info.Distance = 0;
                        info.P_M = false;
                        info.Targethits = 4;
                        info.Tdistance = 25;
                        break;
                    case "SKILL_EU_WARLOCK_CONFUSIONA_AGGROLOW_B":
                        info.Instant = 0;
                        info.Distance = 0;
                        info.P_M = false;
                        info.Targethits = 8;
                        info.Tdistance = 30;
                        break;
                    #endregion
                    #endregion
                    #endregion

                    #region Buff
                    #region Europe Bard
                    #region Battle Chord
                    case "SKILL_EU_BARD_BATTLAA_DAMAGE_A":
                        info.Instant = 1;
                        info.Distance = 5;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_BARD_BATTLAA_DAMAGE_B":
                        info.Instant = 1;
                        info.Distance = 5;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 5;
                        break;
                    case "SKILL_EU_BARD_BATTLAA_MPSTEAL_A":
                        info.Instant = 1;
                        info.Distance = 5;
                        info.P_M = false;
                        break;
                    #endregion
                    #endregion
                    #region Europe Cleric
                    #region Cardinal Praise
                    case "SKILL_EU_CLERIC_BATTLEA_CROSS_A":
                        info.Instant = 1;
                        info.Distance = 5;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_CLERIC_BATTLEA_CROSS_B":
                        info.Instant = 1;
                        info.Distance = 5;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 5;
                        break;
                    #endregion
                    #region Mortal Recovery
                    case "SKILL_EU_CLERIC_BATTLEA_OVERHEAL_A":
                        info.Instant = 1;
                        info.Distance = 5;
                        info.P_M = false;
                        break;
                    case "SKILL_EU_CLERIC_BATTLEA_OVERHEAL_B":
                        info.Instant = 1;
                        info.Distance = 5;
                        info.P_M = false;
                        info.Targethits = 3;
                        info.Tdistance = 5;
                        break;
                    #endregion
                    #region Sacrifice
                    case "SKILL_EU_CLERIC_BATTLEA_SACRIFICE_A":
                        info.Instant = 1;
                        info.Distance = 5;
                        info.P_M = false;
                        info.Targethits = 5;
                        info.Tdistance = 5;
                        break;
                    case "SKILL_EU_CLERIC_BATTLEA_SACRIFICE_B":
                        info.Instant = 1;
                        info.Distance = 5;
                        info.P_M = false;
                        info.Targethits = 5;
                        info.Tdistance = 8;
                        break;
                    #endregion
                    #endregion
                    #endregion
                        #endregion
                    default:
                        //Set default for skills that havent been added
                        info.Targethits = info.NumberOfAttack;
                        info.Tdistance = 0;
                        info.Instant = 2;
                        info.P_M = false;
                        info.canUse = true;
                        //Write info if skill not added
                        Console.WriteLine("Number of attacks : " + info.NumberOfAttack + " Skillname: " + Data.SkillBase[SkillID].Series);
                        break;
                }
                //Return information
                return info;
            }
            catch (Exception ex)
            {
                Console.WriteLine("Using skill error {0}", ex);
                Systems.Debugger.Write(ex);
            }
            return info;
        }
        private void add_new_character()
        {
            // Race
            var selected_race   = Race.current_race;
            // Class
            var selected_class  = Classe.current_class;
            var selected_multiclass = new multiclass();
            //selected_multiclass.level_class = new List<Tuple<uint, complete_class>>(new Tuple<uint, complete_class>(1, selected_class))

            character new_character = new character()
            {
                account = this.account,
                /*race = selected_race,
                classes = selected_multiclass*/
            };
            /*{
                name            = ,
                avatar          = ,
                account         = this.account,

                race            = selected_race,
                classes         = selected_multiclass,
                stats           = ,
                gifts           = ,
                skills          = ,

                languages       = ,
                aptitudes       = ,
                inventory       = ,
                effects         = ,
                deity           = ,

                sex             = ,
                background      = ,
                personnality    = ,
                hair            = ,
                eyes            = ,
                skin            = ,
                height          = ,
                weight          = ,
                age             = ,
                height_category = ,       
        };*/

            client.CharacterCreate(new_character);
        }
Beispiel #41
0
 public void add_active(character active)
 {
     characters.Add (active);
 }
Beispiel #42
0
 public static byte[] GuildStorageGold(character c)
 {
     PacketWriter Writer = new PacketWriter();
     Writer.Create(Systems.SERVER_GUILD_STORAGE_GOLD);
     Writer.LWord(c.Network.Guild.StorageGold);
     return Writer.GetBytes();
 }
Beispiel #43
0
        public void UtilizeState(object state)
        {
            hero = client.GetCharacter((uint)state);
            heroUpdate = hero;

        }
Beispiel #44
0
		void drawstring(Graphics e, string text, Font font, float fontsize, SolidBrush brush, float x, float y)
        {
            if (text == null || text == "")
                return;

                       
            char[] chars = text.ToCharArray();

            float maxy = 0;

            foreach (char cha in chars)
            {
                int charno = (int)cha;

                int charid = charno ^ (int)(fontsize * 1000) ^ brush.Color.ToArgb();

                if (!charDict.ContainsKey(charid))
                {
                    charDict[charid] = new character() { bitmap = new Bitmap(128, 128, System.Drawing.Imaging.PixelFormat.Format32bppArgb), size = (int)fontsize };

                    charDict[charid].bitmap.MakeTransparent(Color.Transparent);

                    //charbitmaptexid

                    float maxx = this.Width / 150; // for space


                    // create bitmap
                    using (Graphics gfx = Graphics.FromImage(charDict[charid].bitmap))
                    {
                        pth.Reset();

                        if (text != null)
                            pth.AddString(cha + "", font.FontFamily, 0, fontsize + 5, new Point((int)0, (int)0), StringFormat.GenericTypographic);

                        gfx.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;

                        gfx.DrawPath(P, pth);

                        //Draw the face

                        gfx.FillPath(brush, pth);


                        if (pth.PointCount > 0)
                        {
                            foreach (PointF pnt in pth.PathPoints)
                            {
                                if (pnt.X > maxx)
                                    maxx = pnt.X;

                                if (pnt.Y > maxy)
                                    maxy = pnt.Y;
                            }
                        }
                    }

                    charDict[charid].width = (int)(maxx + 2);
                }

                // draw it

                float scale = 1.0f;

                DrawImage(charDict[charid].bitmap, (int)x, (int)y, charDict[charid].bitmap.Width, charDict[charid].bitmap.Height);

                x += charDict[charid].width * scale;
            }

        }
 private void characters_list_SelectionChanged(object sender, SelectionChangedEventArgs e)
 {
     short_character selection = (sender as ListBox).SelectedItem as short_character;
     current_character = client.GetCharacter(selection.uid);
     select_button.IsEnabled = true;
 }
Beispiel #46
0
 public static byte[] GuildStorageData(character c)
 {
     Systems.MsSQL getstorage = new Systems.MsSQL("SELECT * FROM char_items WHERE guild_storage_id='" + c.Network.Guild.Guildid + "' AND storagetype='3'");
     int itemcount = getstorage.Count();
     PacketWriter Writer = new PacketWriter();
     Writer.Create(Systems.SERVER_GUILD_STORAGE3);
     Writer.Byte(c.Network.Guild.StorageSlots);
     Writer.Byte(itemcount);
     if (itemcount != 0)
     {
         using (System.Data.SqlClient.SqlDataReader reader = getstorage.Read())
         {
             while (reader.Read())
             {
                 Item.AddItemPacket(Writer, reader.GetByte(5), reader.GetInt32(2), reader.GetByte(4), reader.GetInt16(6), reader.GetInt32(7), reader.GetInt32(0), reader.GetInt32(9), reader.GetInt32(30));
             }
         }
     }
     getstorage.Close();
     return Writer.GetBytes();
 }
Beispiel #47
0
 public static byte[] GuildUpdate(character c, byte type, int memberid, int permissions, int donatedgp)
 {
     PacketWriter Writer = new PacketWriter();
     Writer.Create(Systems.SERVER_GUILD_UPDATE);
     switch (type)
     {
         case 1:
             //Invited user to guild
             Writer.Byte(2);
             Writer.DWord(c.Information.CharacterID);
             Writer.Text(c.Information.Name);
             Writer.Byte(0x0A); //Check
             Writer.Byte(c.Information.Level);
             Writer.DWord(0);   //Permissions below
             Writer.DWord(0);
             Writer.DWord(0);
             Writer.DWord(0);
             Writer.DWord(0);
             Writer.Word(0);
             Writer.DWord(c.Information.Model); //Character Model For Icon In Guild
             Writer.Byte(0);
             Writer.Byte(c.Position.xSec);
             Writer.Byte(c.Position.ySec);
             Writer.DWord(0);
             Writer.DWord(0);
             Writer.Byte(1);
             break;
         case 2:
             //Disband guild
             Writer.Byte(1);
             break;
         case 3:
             //Transfer Leadership
             Writer.Byte(0x16);
             Writer.Byte(2);
             Writer.Byte(0x54);
             Writer.DWord(memberid);
             Writer.Byte(0);
             Writer.DWord(0xFFFFFFFF);
             Writer.Byte(1);
             Writer.DWord(c.Information.CharacterID);
             Writer.Byte(0x0A);
             Writer.DWord(0);
             Writer.Byte(0);
             break;
         case 4:
             //Change permissions
             Writer.Byte(0x16);
             Writer.Byte(1);
             Writer.Byte(0x10);
             Writer.DWord(c.Information.CharacterID);
             Writer.DWord(permissions);
             break;
         case 5:
             //Guild upgrade
             Writer.Byte(5);
             Writer.Byte(0x0C);//Members allowed? 12
             Writer.Byte(c.Network.Guild.Level);
             Writer.DWord(c.Network.Guild.PointsTotal);
             break;
         case 6:
             bool onlinecheck;
             //Invite user online
             Writer.Byte(6);
             Writer.DWord(memberid);
             Writer.Byte(2);
             if (c.Information.Online == 1)
                 onlinecheck = false;
             else
                 onlinecheck = true;
             Writer.Byte(onlinecheck);
             break;
         case 7:
             //User online / offline
             Writer.Byte(3);
             Writer.DWord(c.Information.CharacterID);
             Writer.Byte(2);
             break;
         case 8:
             //Update player level
             Writer.Byte(6);
             Writer.DWord(c.Information.CharacterID);
             Writer.Byte(1);
             Writer.Byte(c.Information.Level);
             break;
         case 9:
             //Update gp information guild
             Writer.Byte(6);
             Writer.DWord(c.Information.CharacterID);
             Writer.Byte(8);
             Writer.DWord(c.Network.Guild.DonateGP);
             break;
         case 10:
             //Update user location
             Writer.Byte(6);
             Writer.DWord(c.Information.CharacterID);
             Writer.Byte(0x80);//need to check
             Writer.Byte(c.Position.xSec);
             Writer.Byte(c.Position.ySec);
             break;
         case 11:
             //Guild message update
             Writer.Byte(0x05);
             Writer.Byte(0x10);
             Writer.Text(c.Network.Guild.NewsTitle);
             Writer.Text(c.Network.Guild.NewsMessage);
             break;
         case 12:
             //Leave guild
             Writer.Byte(3);
             Writer.DWord(c.Information.CharacterID);
             Writer.Byte(1);
             break;
         case 13:
             //Donated gp #1
             Writer.Byte(5);
             Writer.Byte(8);
             Writer.DWord(donatedgp);
             break;
         case 14:
             //Union invite send
             Writer.Byte(c.Network.Guild.TotalMembers);
             Writer.DWord(c.Network.Guild.Guildid);
             Writer.Text(c.Network.Guild.Name);
             Writer.Byte(c.Network.Guild.Level);
             Writer.Text(c.Information.Name);
             Writer.DWord(c.Information.Model);
             Writer.Byte(0x11);//??
             break;
     }
     return Writer.GetBytes();
 }