コード例 #1
0
ファイル: TaskinfoDAL.cs プロジェクト: ycysvler/DataImport
        private static List <script> getScripts(string id)
        {
            List <script> result = new List <script>();

            string sql = string.Format(@" with a as 
               (select t.id as script_id, t.script_code   
                  from pt6.pm_task_info pt  
                  left join tdm.tdm_automatic_script t  
                    on pt.task_script_code = t.script_code  
                 where pt.id = '{0}')  
              select sa.id,  
              a.script_code,   
              sa.attach_name   
                from a  
               left join pt6.sys_attachment sa  
                  on sa.parent_register_id = a.script_id", id);

            DataSet ds = OracleHelper.Query(sql);

            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                script item = script.Parse(dr);
                result.Add(item);
            }

            return(result);
        }
コード例 #2
0
ファイル: script.cs プロジェクト: jweather/kneditor
 void Start()
 {
     the = this;
     clearStage();
     loadNew();
     cursorBall.GetComponent <Renderer>().material.color = new Color(0, 1, 0, 0.3f);
 }
コード例 #3
0
ファイル: utils.cs プロジェクト: LABELO-VSW/Sociedade-Serial
 public static void saveScript(string address, script s)
 {
     using (StreamWriter w = new StreamWriter(address))
     {
         w.Write(JsonConvert.SerializeObject(s));
     }
 }
コード例 #4
0
 public void HandleCast(int header, script.spells.Spell spell, Player player, int target = 0, short castx = 0, short casty = 0)
 {
     if (spell is script.spells.Teleport)
         (spell as script.spells.Teleport).CastIt(player, new Point2D(castx, casty));
       //  if (spell is script.spells.Trace)
        //     (spell as script.spells.Trace).CastIt(player, new Point2D(castx, casty));
 }
コード例 #5
0
ファイル: AdminForm.cs プロジェクト: XluNl/C_project
        /// <summary>
        /// 创建脚本UI展示
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void creatScript(script scp)
        {
            // 修改
            if (this.Tg == 1)
            {
                Btn.Text     = scp.Scencname;
                this.Btn.Tag = scp;
            }
            else
            {// 添加
                int btn_H = 40;
                int btn_W = Convert.ToInt32(this.panel2.Size.Width * 0.78);
                int org   = 10;
                int org_Y = org;
                int org_X = (this.panel2.Size.Width - btn_W) / 2;

                int count = this.panel2.Controls.Count;
                if (count > 0)
                {
                    org_Y = this.panel2.Controls[count - 1].Location.Y + btn_H + org;
                }
                Button btn = new Button();
                btn.MouseDown += tmpMouseDown;
                btn.Width      = btn_W;
                btn.Height     = btn_H;
                btn.Location   = new Point(org_X, org_Y);
                btn.Tag        = scp;//直接将模型给tag
                // btn.Text = "scencID=" + scp.Id + "    " + scp.Scencname;
                btn.Text             = scp.Scencname;
                btn.ContextMenuStrip = this.contextMenuStrip1;
                this.panel2.Controls.Add(btn);
                this.panel2.AutoScroll = true;
            }
        }
コード例 #6
0
        /// <summary>
        /// 添加场景
        /// </summary>
        /// <param name="scp">场景信息</param>
        /// <param name="senceScriptS">场景对应的角色</param>
        public bool addScript(script scp, List <script> senceScriptS, out int senceid)
        {
            string sql = "insert into dbo.VR_scenc values(@scene_isonline,@scenc_name) select @@identity;";

            SqlParameter[] ps =
            {
                new SqlParameter("@scene_isonline", scp.Isonline),
                new SqlParameter("@scenc_name",     scp.Scencname)
            };
            int num = Convert.ToInt32(SQLHelper.ExecuteScalar(sql, ps));

            senceid = num;
            // 根据场景ID添加对应角色
            if (num > 0)
            {
                foreach (script sc in senceScriptS)
                {
                    string         ss  = "insert dbo.VR_scenc_roleId(role_Id,scenc_Id) values(@role_Id,@scenc_Id)";
                    SqlParameter[] pss =
                    {
                        new SqlParameter("@role_Id",  sc.Screncscriptid),
                        new SqlParameter("@scenc_Id", num)
                    };
                    SQLHelper.ExecuteNonQuery(ss, pss);
                }
            }

            return(num > 0);
        }
コード例 #7
0
ファイル: IndexLoadePag.cs プロジェクト: XluNl/C_project
        private void creatSenceWithMode(script sc, Image img)
        {
            int btn_H    = 40;
            int btn_X_or = Convert.ToInt32(this.panel2.Width * 0.12);
            int btn_Y_or = 15;

            if (this.panel2.Controls.Count > 0)
            {
                int y = this.panel2.Controls[this.panel2.Controls.Count - 1].Location.Y;

                btn_Y_or = y + (btn_Y_or + btn_H);
            }

            int btn_W = this.panel2.Width - (2 * btn_X_or);

            Button btn = new Button();

            btn.Location              = new Point(btn_X_or, btn_Y_or);
            btn.Width                 = btn_W;
            btn.Height                = btn_H;
            btn.Tag                   = sc;
            btn.Text                  = sc.Scencname;
            btn.Click                += btn_Click;
            btn.BackgroundImage       = new Bitmap(img);
            btn.FlatStyle             = FlatStyle.Flat;
            btn.BackgroundImageLayout = ImageLayout.Stretch;
            btn.ForeColor             = Color.White;
            btn.Font                  = this.myfont;
            this.panel2.Controls.Add(btn);
        }
コード例 #8
0
        /// <summary>
        /// 修改场景信息
        /// </summary>
        /// <param name="sc">场景信息</param>
        /// <param name="roles">场景下面所有的任务</param>
        /// <returns></returns>
        public void editSenceWith(script sc, List <script> roles)
        {
            // 1、第一步修改场景的信息(名称,和是否多人)
            string sql = "update VR_scenc set scenc_name =@scenc_name,scene_isonline=@scene_isonline where id=@id;";

            SqlParameter[] pss =
            {
                new SqlParameter("@scenc_name",     sc.Scencname),
                new SqlParameter("@scene_isonline", sc.Isonline),
                new SqlParameter("@id",             sc.Id)
            };
            SQLHelper.ExecuteNonQuery(sql, pss);
            // 2、将场景修改后的角色,更新到数据库(先删除所有,再添加)

            //01、先删除全部
            string sql_sc = " delete from VR_scenc_roleId where scenc_Id=" + sc.Id;

            SQLHelper.ExecuteNonQuery(sql_sc);

            //02、再添加
            foreach (script ro in roles)
            {
                string         ss = "insert VR_scenc_roleId(role_Id,scenc_Id) values(@role_Id,@scenc_Id)";
                SqlParameter[] sp =
                {
                    new SqlParameter("@role_Id",  ro.Screncscriptid),
                    new SqlParameter("@scenc_Id", sc.Id)
                };
                SQLHelper.ExecuteNonQuery(ss, sp);
            }
        }
コード例 #9
0
        public override Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
        {
            var path = GetType().Namespace;

            if (string.Equals(context.TagName, "body", StringComparison.OrdinalIgnoreCase))
            {
                output.PostContent.AppendHtml(@$ "
<script src=" "_content/{path}/javascript/signalr.min.js" "></script>
コード例 #10
0
ファイル: AdminForm.cs プロジェクト: XluNl/C_project
        /// <summary>
        /// 为场景添加任务
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void 编辑ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            script         sc   = (script)this.contextMenuStrip1.Tag;
            EditScriptFrom edit = new EditScriptFrom();

            edit.Senceid = sc.Id;
            edit.ShowDialog();
        }
コード例 #11
0
    static void Init()
    {
        script window = (script)GetWindow(typeof(script), false, "Generator");

        window.minSize = new Vector2(350, 110);
        window.maxSize = new Vector2(350, 110);
        window.Show();
    }
コード例 #12
0
 // Use this for initialization
 void Start()
 {
     startX          = 0;
     startY          = 8;
     depotX          = 15;
     depotY          = 0;
     scriptReference = GameObject.Find("Controller").GetComponent <script> ();
 }
コード例 #13
0
        private script roleWitnRow(DataRow row)
        {
            script role = new script();

            role.Id             = Convert.ToInt32(row["scenc_Id"]);
            role.Screncscriptid = Convert.ToInt32(row["role_Id"]);
            return(role);
        }
コード例 #14
0
        /// <summary>
        /// 店家添加按钮 添加一个场景
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, EventArgs e)
        {
            // 名称不能为null
            if (BoxName.Text.Length < 1)
            {
                MessageBox.Show("名称不能为空!", "提示!");
                return;
            }
            // 添加场景到数据库
            script scp = new script();

            scp.Scencname = BoxName.Text;
            scp.Isonline  = Boxonline.Checked ? 1 : 0;

            // 修改操作
            if (this.Tg == 1)
            {
                if (this.ScRoles.Count < 1)
                {
                    MessageBox.Show("请选择角色!", "提示!");
                    return;
                }
                scp.Id = this.Scenc.Id;
                scDAL.editSenceWith(scp, this.ScRoles);
                // 回调
                this.Call(scp);
            }
            else   //添加操作
                   // 获取所有选中的checkbox
            {
                List <script> scencScripts = new List <script>();
                foreach (CheckBox box in this.panel1.Controls)
                {
                    VR_Role ro = (VR_Role)box.Tag;
                    if (box.Checked)
                    {
                        script sc = new script();
                        sc.Screncscriptid   = ro.Id;
                        sc.Screncscriptname = box.Text;
                        scencScripts.Add(sc);
                    }
                }
                if (scencScripts.Count < 1)
                {
                    MessageBox.Show("请选择角色!", "提示!");
                    return;
                }
                int senceid;
                if (scDAL.addScript(scp, scencScripts, out senceid))
                {
                    scp.Id = senceid;
                    this.Call(scp);
                }
                ;
            }
            // 关闭窗口
            this.Close();
        }
コード例 #15
0
ファイル: spawn.cs プロジェクト: simon13456/Travaux-personnel
 IEnumerator spawnVagueEnnemi(script vague)
 {
     for (int i = 0; i < vague.GetNbsEnnemy(); i++)
     {
         GameObject nouveauEnnemi = Instantiate(vague.GetPrefabEnnemy(), vague.GetPointRepere()[0].transform.position, Quaternion.identity);
         nouveauEnnemi.GetComponent <CheminEnnemi>().SetConfigVague(vague);
         yield return(new WaitForSeconds(vague.GetTempsSpawn()));
     }
 }
コード例 #16
0
ファイル: TaskInfo.cs プロジェクト: ycysvler/DataImport
            public static script Parse(DataRow element)
            {
                script result = new script();

                result.scriptCode = element["SCRIPT_CODE"].ToString();
                result.attachName = element["ATTACH_NAME"].ToString();
                result.url        = System.Configuration.ConfigurationManager.AppSettings["scriptdownuri"].ToString() + element["ID"].ToString();
                return(result);
            }
コード例 #17
0
        private script ScrptTabelWithMode(DataRow scp)
        {
            script sp = new script();

            sp.Id        = Convert.ToInt32(scp["id"]);
            sp.Scencname = scp["scenc_name"].ToString();
            sp.Isonline  = Convert.ToInt32(scp["scene_isonline"]);
            return(sp);
        }
コード例 #18
0
ファイル: utils.cs プロジェクト: LABELO-VSW/Sociedade-Serial
        public static script loadScript(string address)
        {
            using (StreamReader r = new StreamReader(address))
            {
                string json = r.ReadToEnd();
                script x    = JsonConvert.DeserializeObject <script>(json);

                return(x);
            }
        }
コード例 #19
0
        /// <summary>
        /// Generates a script to lazy-load the ClientDetailTemplate view of a kendo-grid
        /// </summary>
        /// <param name="html">the html-helper of a razor-view</param>
        /// <param name="scriptId">the name of the script that is referred to by the grid</param>
        /// <param name="dummyDivId">the id of the dummy-div that will be replaced (or filled) with the downloaded content</param>
        /// <param name="viewAction">the view-action where to get the lazy-content</param>
        /// <param name="replaceDummy">indicates whether to replace the dummy-div</param>
        /// <returns>the generated content</returns>
        public static IHtmlContent DetailViewScript(this IHtmlHelper html, string scriptId, string dummyDivId, string viewAction, bool replaceDummy = true)
        {
            return html.Raw(@$"<script id=""{scriptId}"" type=""text/x-kendo-template"">
                <div id=""{dummyDivId}"" viewSrc=""{viewAction}""></div>
                <script type=""text/javascript"">
                $(""\\#{dummyDivId}"").loadPartial({replaceDummy.ToString().ToLower()});
                <\/script>

                </script>");
        }
コード例 #20
0
    private void Start()
    {
        player        = FindObjectOfType <FrogBehaviour>();
        startingPos   = player.transform.position;
        background    = FindObjectOfType <script>();
        win           = false;
        duration      = 0.2f;
        startDuration = duration;

        counter = 0;
        //topCounter = 200;
    }
コード例 #21
0
 // Token: 0x060000E5 RID: 229 RVA: 0x0000E51C File Offset: 0x0000C71C
 public void \u0002(script \u0002)
 {
     if (\u0002 == this.\u0008\u2001)
     {
         return;
     }
     if (\u0002 != null)
     {
         throw new ArgumentException(global::\u0006\u2001.\u0002(-1829139669));
     }
     this.\u0003 <script>(ref this.\u0008\u2001);
 }
コード例 #22
0
ファイル: spawn.cs プロジェクト: simon13456/Travaux-personnel
    IEnumerator spawnVague()
    {
        while (!_stopaumassacre)
        {
            for (int i = _vaguedepart; i < _configVague.Count; i++)
            {
                script vagueActuel = _configVague[i];
                yield return(StartCoroutine(spawnVagueEnnemi(vagueActuel)));

                yield return(new WaitForSeconds(2f));
            }
        }
    }
コード例 #23
0
ファイル: TaskInfo.cs プロジェクト: ycysvler/DataImport
            public static script Parse(XElement element)
            {
                if (element.Elements().Count() == 0)
                {
                    return(null);
                }

                script result = new script();

                result.scriptCode = element.Element("scriptCode").Value;
                result.attachName = element.Element("attachName").Value;
                result.url        = element.Element("url").Value;
                return(result);
            }
コード例 #24
0
ファイル: KVSword.cs プロジェクト: sepharoph/LK2
 public int Proc(Player player, script.monster.Monster mob, Player play = null)
 {
     int take = 0;
     Point2D targetLoc = (play != null) ? play.Loc : mob.m_Loc;
     if (Util.Dice(1, 100, 0) <= (Stage < 7 ? 10 : 14))
     {
         take += Util.Dice((player.GetStat("str") / 1000), 50, player.GetStat("str") / 16);
         int mobile = Serial.NewMobile;
         World.SendToAll(new QueDele(player.Map, new CreateMagicEffect(mobile, 1, (short)targetLoc.X, (short)targetLoc.Y, new byte[] { 4, 0, 0, 0, 0, 0, 0, 0, 0, 110 }, 0).Compile()));
         var tmp = new QueDele(System.Environment.TickCount + 1300, player.m_Map, new DeleteObject(mobile).Compile());
         tmp.tempser = mobile;
         World.TickQue.Add(tmp);
     }
     return take;
 }
コード例 #25
0
ファイル: AdminForm.cs プロジェクト: XluNl/C_project
        /// <summary>
        /// 调用修改场景的面板
        /// </summary>
        /// <param name="tg">0表示添加、1表示修改、2表删除</param>
        private void loadSenceEditFrom(int tg)
        {
            this.Tg = tg;
            AddScript addScript = new AddScript();

            addScript.Call = creatScript;
            addScript.Tg   = tg;
            if (tg == 1)
            {//修改,传过去场景id
                script sc = (script)this.contextMenuStrip1.Tag;
                addScript.Scenc = sc;
            }
            // 创建脚本面板
            addScript.ShowDialog();
        }
コード例 #26
0
ファイル: FSofdk.cs プロジェクト: hsnks100/LakingServer
 public int Proc(Player player, script.monster.Monster mob, Player play = null)
 {
     int take = 0;
     Point2D targetLoc = (play != null) ? play.Loc : mob.m_Loc;
     if (Util.Dice(1, 100, 0) <= ((Stage < 7) ? 7 : 11))
     {
         take += Util.Dice(((player.GetStat("str") + player.GetStat("dex")) / 1000), 50, (player.GetStat("str") + player.GetStat("dex")) / 32);
         int mobile = Serial.NewMobile;
         World.SendToAll(new QueDele(player.Map, new CreateMagicEffect(mobile, 1, (short)targetLoc.X, (short)targetLoc.Y, new byte[] { 4, 0, 0, 0, 0, 0, 0, 0, 0, 16 }, 0).Compile()));
         var tmp = new QueDele(LKCamelot.Server.tickcount.ElapsedMilliseconds + 1300, player.m_Map, new DeleteObject(mobile).Compile());
         tmp.tempser = mobile;
         World.TickQue.Add(tmp);
     }
     return take;
 }
コード例 #27
0
ファイル: IndexLoadePag.cs プロジェクト: XluNl/C_project
        void btn_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            script sc  = (script)btn.Tag;

            UserHelper.sceneId = sc.Id;
            if (sc.Isonline == 1)
            {
                new ModeSelectForm().ShowDialog();
            }
            else
            { //直接进入教学模式
                GameHelper.mode = GameHelper.Mode.Offline;
                new LoadSceneForm().ShowDialog();
            }
        }
コード例 #28
0
        public void PreencherListBox_Respostas(ListBox listBox, int iIDPergunta)
        {
            scriptBLL BScript   = new scriptBLL();
            DataTable dataTable = BScript.RetornarRespostas(iIDPergunta);

            //Adiciona os itens no ListBox
            for (int iLinha = 0; iLinha < dataTable.Rows.Count; iLinha++)
            {
                int    iIDResposta        = Convert.ToInt32(dataTable.Rows[iLinha]["IDResposta"].ToString());
                string sResposta          = dataTable.Rows[iLinha]["Resposta"].ToString();
                int    iIDProximaPergunta = dataTable.Rows[iLinha]["IDProximaPergunta"].ToString() == "" ? 0 : Convert.ToInt32(dataTable.Rows[iLinha]["IDProximaPergunta"].ToString());
                string sPergunta          = dataTable.Rows[iLinha]["Pergunta"].ToString();
                bool   bVenda             = Convert.ToBoolean(dataTable.Rows[iLinha]["Venda"]);

                script Script = new script(iIDPergunta, iIDResposta, sResposta, iIDProximaPergunta, sPergunta, bVenda);
                listBox.Items.Add(Script);
            }
        }
コード例 #29
0
        public override string GetHTML(int deep = 0)
        {
            Childs.Clear();

            Childs.Add(Input);
            if (!(LabelInput is null))
            {
                Childs.Add(LabelInput);
            }

            if (Input.required)
            {
                Childs.AddRange(GetValidationAlerts(Input.Id_DOM, valid_feedback_text, invalid_feedback_text));
            }

            ////////////////////////////////////////////////
            // Фиксим проблему кроссбраузерности отправок формой чекбокса.
            // Разные браузеры могут по разному отправлять чекбокс. Для стандартизации этой процедуры с чекбоксом в паре держим его "тень" в виде скрытого input-а и контролируем значение теневого значения синхронизируя с основным
            Childs.Add(new input()
            {
                type = InputTypesEnum.hidden, value = Input.@checked ? "on" : "off", Name = Id_DOM
            });
            //
            script my_script = new script();

            my_script.AddDomNode(new text("jQuery(document).ready(function () {"));
            my_script.AddDomNode(new text("  jQuery('#" + Input.Id_DOM + "').change(function () {"));
            my_script.AddDomNode(new text("    if (jQuery(this).prop('checked')) {"));
            my_script.AddDomNode(new text("      jQuery('input[name=" + Input.Id_DOM + "').val('on');"));
            my_script.AddDomNode(new text("    }"));
            my_script.AddDomNode(new text("    else {"));
            my_script.AddDomNode(new text("      jQuery('input[name=" + Input.Id_DOM + "').val('off');"));
            my_script.AddDomNode(new text("    }"));
            my_script.AddDomNode(new text("  });"));
            my_script.AddDomNode(new text("});"));
            Childs.Add(my_script);
            ///////////////////////////////////////////////
            ///
            return(base.GetHTML(deep));
        }
コード例 #30
0
    // When the baehavior and targetting script is called, the script should be fed the desired tergetting radius and the gameobject that should be targeted within that radius
    void BehaviorSetup(GameObject User, float Radius, GameObject Target, script Action)
    {
        DesiredAction = Action;
        User.AddComponent <SphereCollider>() as SphereCollider;
        User.GetComponent <SphereCollider> .radius = Radius;
        //finds the closest object of the target type
        if (objects.Count >= 1)
        {
            Vector3 currentPosition = this.transform.position;
            float   nearestDist     = Mathf.Infinity;

            foreach (GameObject obj in objects)
            {
                Vector3 dist    = obj.transform.position - currentPosition;
                float   distSqr = dist.sqrMagnitude;
                if (distSqr < nearestDist)
                {
                    nearestDist  = distSqr;
                    WhatToTarget = obj;
                }
            }


            inRange = true;
            //here is where i call the navmesh script using obj.transform as the destination
            //hopefully the navmesh script gets called properly, and accepts the .position
            Navigate.NavMeshProvider(WhatToTarget.transform.position);
            //Conditional arguements for different actions, must fit the different call limitations of the action scripts
            if (DesiredAction == Pickupper)
            {
                //issue: calling pickup requires a button to be pressed
                pickupper.ButtonCheck();
            }
            if (DesiredAction == Usable)
            {
                //as per documentation, this should use the targeted object and not destroy it afterwards
                ActionUse.Use(WhatToTarget, false);
            }
        }
    }
コード例 #31
0
ファイル: AdminForm.cs プロジェクト: XluNl/C_project
        /// <summary>
        /// 删除一个场景
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void  除ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //ToolStripMenuItem btn = (ToolStripMenuItem)sender;
            //int id = (int)btn.GetCurrentParent().Tag;
            script sc = (script)this.contextMenuStrip1.Tag;

            ScriptDAL scrDAL = new ScriptDAL();

            // 检查当前场景是否可以被删除,有则警告用户
            if (scrDAL.checkSenceIsDelectWithSenceid(sc.Id))
            {
                DialogResult result = MessageBox.Show("检测到当前脚本下面有任务,删除后不可恢复!确认删除点击是", "重要提示:", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (result == DialogResult.Yes)
                {
                    if (scrDAL.delectSenceWithID(sc.Id))
                    {
                        // 刷新
                        this.panel2.Controls.Clear();
                        this.Tg = 2;//删除标记
                        this.getAllSence();
                        MessageBox.Show("删除成功");
                    }
                }
            }
            else  //没有则直接删除

            {
                if (scrDAL.delectSenceWithID(sc.Id))
                {
                    // 刷新
                    this.panel2.Controls.Clear();
                    this.Tg = 2;//删除标记
                    this.getAllSence();
                    MessageBox.Show("删除成功");
                }
            }
        }
コード例 #32
0
 AddToEnd(new ScriptCommandSource(script, parser, argsList));
コード例 #33
0
ファイル: Item.cs プロジェクト: sepharoph/LK2
        public void Drop(script.monster.Monster mob, Player player)
        {
            InvSlot = -1;
            m_Map = player.Map;
            DropTime = System.Environment.TickCount;

            Loc = new Point2D(mob.m_Loc.X, mob.m_Loc.Y);

            Parent = null;
        }
コード例 #34
0
ファイル: CastHandler.cs プロジェクト: hsnks100/LakingServer
        public void HandleCast(int header, script.spells.Spell castspell, Player player, int target = 0, short castx = 0, short casty = 0)
        {
            if (castspell is Teleport)
            {
                castspell.KSCast(header, player, target, castx, casty);
                return;
            }
            if (castspell is ComeBack)
            {
                if (player.MPCur > castspell.RealManaCost(player))
                {
                    player.MPCur -= castspell.RealManaCost(player);
                    castspell.CheckLevelUp(player);
                    Location loc;
                    loc.m_Loc = player.Loc;
                    loc.m_Map = player.Map;
                    m_comeBacks.Push(loc);

                    try
                    {
                        player.Loc = new Point2D(8, 12);
                        player.Map = "Arnold";
                    }
                    catch
                    {
                        return;
                    }
                }
            }
            if (castspell is Trace)
            {
                if (player.MPCur > castspell.RealManaCost(player))
                {
                    player.MPCur -= castspell.RealManaCost(player);
                    castspell.CheckLevelUp(player);

                    try
                    {
                        Location loc = m_comeBacks.Pop();
                        player.Loc = loc.m_Loc;
                        player.Map = loc.m_Map;
                    }
                    catch { return; }

                    World.SendToAll(new QueDele(player.Map, new MoveSpriteTele(player.Serial, player.Face, player.X, player.Y).Compile()));
                    return;
                }
            }

            // 도달 가능한 몬스터에 대한 배열
            var caston = World.NewMonsters.Where(xe => xe.Value.m_Serial == target
                                                    && World.Dist2d(xe.Value.m_Loc.X, xe.Value.m_Loc.Y, player.X, player.Y) <= castspell.Range
                                                    && xe.Value.Alive
                    && xe.Value.m_Map != null && xe.Value.m_Map == player.m_Map
                    ).Select(xe => xe.Value);
            // 도달 가능한 플레이어에 대한 배열.
            var playcaston = PlayerHandler.getSingleton().add.Where(xe => xe.Value != null && xe.Value != player && xe.Value.loggedIn
                    && World.Dist2d(xe.Value.m_Loc.X, xe.Value.m_Loc.Y, player.m_Loc.X, player.m_Loc.Y) <= castspell.Range
                    && xe.Value.Serial == (Serial)target
                    && xe.Value.m_Map != null && xe.Value.m_Map == player.m_Map).FirstOrDefault();

            // 무슨 의미인지 잘 모르겠음. 공격 타입에 따라 몬스터 범위를 다시 구하는것 같음.
            if (castspell.mType == LKCamelot.library.MagicType.Casted || castspell.mType == LKCamelot.library.MagicType.Target)
            {
                caston = World.NewMonsters.Where(xe => xe.Value.m_Map != null
                             && xe.Value.m_Map == player.Map
                             && World.Dist2d(xe.Value.m_Loc.X, xe.Value.m_Loc.Y, player.X, player.Y) <= castspell.Range
                             && xe.Value.Alive)
                            .Select(xe => xe.Value);
            }

            // P.K 에 대한 코드 인것 같음.
            if (playcaston.Key != null
                    && !(player.Map == "Village1" || player.Map == "Rest" || player.Map == "Arnold" || player.Map == "Loen")
                    )
            {

                if (castspell.Name == "DEMON DEATH")
                {
                    if (player.HPCur < (int)(player.HP * 0.70))
                        return;

                    var miyamo = player.Equipped.Where(xe => xe.GetType() == typeof(script.item.MiyamotosStick)).FirstOrDefault();
                    var recast = castspell.RecastTime;
                    if (miyamo != null)
                    {
                        recast -= 1000;
                        recast -= miyamo.Stage * 300;
                    }

                    if (LKCamelot.Server.tickcount.ElapsedMilliseconds - recast > castspell.Cooldown)
                    {
                        castspell.Cooldown = LKCamelot.Server.tickcount.ElapsedMilliseconds;
                    }
                    else
                        return;

                    player.HPCur -= castspell.RealManaCost(player);
                    castspell.CheckLevelUp(player);

                    int mobile = Serial.NewMobile;
                    World.SendToAll(new QueDele(player.Map, new CreateMagicEffect(mobile, 1, (short)playcaston.Value.m_Loc.X, (short)playcaston.Value.m_Loc.Y, new byte[] { 4, 0, 0, 0, 0, 0, 0, 0, 0, (byte)castspell.Seq.OnImpactSprite }, 0).Compile()));
                    var tmp = new QueDele(LKCamelot.Server.tickcount.ElapsedMilliseconds + 2000, player.m_Map, new DeleteObject(mobile).Compile());
                    tmp.tempser = mobile;
                    World.TickQue.Add(tmp);

                    TakeDamage(player, playcaston.Value, castspell);

                    return;
                }

                else // demon 이 아닌 경우
                {
                    if (player.MPCur < castspell.RealManaCost(player))
                        return;
                    player.MPCur -= castspell.RealManaCost(player);
                    castspell.CheckLevelUp(player);
                    TakeDamage(player, playcaston.Value, castspell);
                    World.SendToAll(new QueDele(player.Map, new CurveMagic(player.Serial,
                            castx, casty, castspell.Seq).Compile()));
                    System.Console.WriteLine("pk 데몽이 아닌 경우");
                }
            }

            switch (castspell.mType)
            {
                case (LKCamelot.library.MagicType.Target2):
                    foreach (var targete in caston)
                    {
                        if (castspell is ISingle)
                        {
                            System.Diagnostics.Debug.Assert(false);
                            if (player.MPCur < castspell.RealManaCost(player))
                                return;
                            player.MPCur -= castspell.RealManaCost(player);
                            castspell.CheckLevelUp(player);

                            CreateMagicEffect(targete.m_Loc, targete.m_Map, (byte)castspell.Seq.OnImpactSprite, 1500);

                            targete.TakeDamage(player, castspell);
                            return;
                        }

                        if (castspell.Name == "DEMON DEATH")
                        {
                            if (player.HPCur < (int)(player.HP * 0.70))
                                return;

                            var miyamo = player.Equipped.Where(xe => xe.GetType() == typeof(script.item.MiyamotosStick)).FirstOrDefault();
                            var recast = castspell.RecastTime;
                            if (miyamo != null)
                            {
                                recast -= 1000;
                                recast -= miyamo.Stage * 300;
                            }

                            if (LKCamelot.Server.tickcount.ElapsedMilliseconds - recast > castspell.Cooldown)
                            {
                                castspell.Cooldown = LKCamelot.Server.tickcount.ElapsedMilliseconds;
                            }
                            else
                                return;

                            player.HPCur -= castspell.RealManaCost(player);
                            castspell.CheckLevelUp(player);

                            int mobile = Serial.NewMobile;
                            World.SendToAll(new QueDele(player.Map, new CreateMagicEffect(mobile, 1, (short)targete.m_Loc.X, (short)targete.m_Loc.Y, new byte[] { 4, 0, 0, 0, 0, 0, 0, 0, 0, (byte)castspell.Seq.OnImpactSprite }, 0).Compile()));
                            var tmp = new QueDele(LKCamelot.Server.tickcount.ElapsedMilliseconds + 2000, player.m_Map, new DeleteObject(mobile).Compile());
                            tmp.tempser = mobile;
                            World.TickQue.Add(tmp);

                            targete.TakeDamage(player, castspell);

                            return;
                        }

                        if (player.MPCur < castspell.RealManaCost(player))
                            return;
                        player.MPCur -= castspell.RealManaCost(player);
                        castspell.CheckLevelUp(player);
                        targete.TakeDamage(player, castspell);
                        World.SendToAll(new QueDele(player.Map, new CurveMagic(player.Serial,
                                castx, casty, castspell.Seq).Compile()));
                    }

                    break;

                case (LKCamelot.library.MagicType.Casted):
                    if (player.MPCur < castspell.RealManaCost(player))
                        return;
                    player.MPCur -= castspell.RealManaCost(player);

                    if (castspell.Cast(player))
                        return;

                    foreach (var targete in caston)
                        targete.TakeDamage(player, castspell);

                    World.SendToAll(new QueDele(player.Map, new CurveMagic(player.Serial,
                        1, 1, castspell.Seq).Compile()));

                    break;
                case (LKCamelot.library.MagicType.Target):
                    if (player.MPCur < castspell.RealManaCost(player))
                        return;
                    player.MPCur -= castspell.RealManaCost(player);
                    if (castspell.Cast(player))
                        return;

                    World.SendToAll(new QueDele(player.Map, new CurveMagic(player.Serial, 1, 1, castspell.Seq).Compile()));
                    foreach (var targetee in caston)
                    {
                        int mobile = Serial.NewMobile;
                        World.SendToAll(new QueDele(player.Map, new CreateMagicEffect(mobile, 1, (short)targetee.m_Loc.X, (short)targetee.m_Loc.Y, new byte[] { 4, 0, 0, 0, 0, 0, 0, 0, 0, (byte)castspell.Seq.OnImpactSprite }, 0).Compile()));
                        // World.SendToAll(new QueDele(player.Map, new SetObjectEffectsMonsterSpell(targetee, castspell.Seq.OnImpactSprite).Compile()));
                        targetee.TakeDamage(player, castspell);
                        var tmp = new QueDele(LKCamelot.Server.tickcount.ElapsedMilliseconds + 1000, player.m_Map, new DeleteObject(mobile).Compile());
                        tmp.tempser = mobile;
                        World.TickQue.Add(tmp);
                    }
                    break;
            }
        }
コード例 #35
0
ファイル: Packets.cs プロジェクト: hsnks100/LakingServer
        public SetObjectEffectsMonsterSpell(script.monster.Monster play, int spell)
            : base(0x34)
        {
            //  SetObjectEffects = 0x34; // 0x34 4id 1light 1trans 4byffs 1staticmagic
            m_Stream.Write(play.m_Serial);
            m_Stream.Write((byte)0); //lightrad
            m_Stream.Write((byte)play.Transp); //transp
            m_Stream.Write((byte)spell);
            m_Stream.Fill(3);
            m_Stream.Write((byte)0); //cast once

            if (play.m_MonsterID >= 200)
                m_Stream.Write((byte)0);
            else
                m_Stream.Write((byte)1); //sprite frame type

            m_Stream.Write((byte)0); // speed
            m_Stream.Write((byte)1);
        }
コード例 #36
0
ファイル: CastHandler.cs プロジェクト: vans163/LKEmu
        public void HandleCast(int header, script.spells.Spell castspell, Player player, int target = 0, short castx = 0, short casty = 0)
        {
            if (castspell is Teleport)
            {
                var teleportdist = ((castspell.Level / 2) * 2);
                if (teleportdist <= 3) teleportdist = 4;
                if (teleportdist > 12) teleportdist = 12;
                if (World.Dist2d(castx, casty, player.X, player.Y) <= teleportdist
                    && player.MPCur > castspell.RealManaCost(player))
                {
                    var nmap = LKCamelot.model.Map.FullMaps.Where(xe => xe.Key == player.Map).FirstOrDefault().Value;
                    TiledMap curmap = null;
                    try
                    {
                        curmap = LKCamelot.model.Map.loadedmaps[nmap];
                    }
                    catch
                    {
                        Console.WriteLine(string.Format("Failed to nmap at {0}", nmap));
                    }
                    LKCamelot.model.MyPathNode randomtile;
                    try
                    {
                        randomtile = curmap.tiles[castx, casty];
                    }
                    catch
                    {
                        return;
                    }
                    if (randomtile.IsWall)
                        return;

                    player.MPCur -= castspell.RealManaCost(player);
                    castspell.CheckLevelUp(player);

                    player.Loc = new Point2D(castx, casty);
                    World.SendToAll(new QueDele(player.Map, new MoveSpriteTele(player.Serial, player.Face, player.X, player.Y).Compile()));
                    return;
                }
            }
            if (castspell is Trace)
            {
                if (player.MPCur > castspell.RealManaCost(player))
                {
                    player.MPCur -= castspell.RealManaCost(player);
                    castspell.CheckLevelUp(player);

                    try
                    {
                        var traceto = script.map.Portal.Portals.Where(xe => xe.Map == player.Map).Select(xe => xe).ToList();
                        if (traceto.Count > 1)
                        {
                            var temp = new Point2D(traceto[0].Locs[0].X, traceto[0].Locs[0].Y + 2);
                            player.Loc = temp;
                        }
                    }
                    catch { return; }

                    World.SendToAll(new QueDele(player.Map, new MoveSpriteTele(player.Serial, player.Face, player.X, player.Y).Compile()));
                    return;
                }
            }
            if (castspell is ComeBack)
            {
                return;
            }

            var caston = World.NewMonsters.Where(xe => xe.Value.m_Serial == target
                                && World.Dist2d(xe.Value.m_Loc.X, xe.Value.m_Loc.Y, player.X, player.Y) <= castspell.Range
                                && xe.Value.Alive
                && xe.Value.m_Map != null && xe.Value.m_Map == player.m_Map
                ).Select(xe => xe.Value);

            var playcaston = PlayerHandler.getSingleton().add.Where(xe => xe.Value != null && xe.Value != player && xe.Value.loggedIn
                && World.Dist2d(xe.Value.m_Loc.X, xe.Value.m_Loc.Y, player.m_Loc.X, player.m_Loc.Y) <= castspell.Range
                && xe.Value.Serial == (Serial)target
                && xe.Value.m_Map != null && xe.Value.m_Map == player.m_Map).FirstOrDefault();

            if (castspell.mType == LKCamelot.library.MagicType.Casted || castspell.mType == LKCamelot.library.MagicType.Target)
            {
                caston = World.NewMonsters.Where(xe => xe.Value.m_Map != null
                       && xe.Value.m_Map == player.Map
                       && World.Dist2d(xe.Value.m_Loc.X, xe.Value.m_Loc.Y, player.X, player.Y) <= castspell.Range
                       && xe.Value.Alive)
                      .Select(xe => xe.Value);
            }

            if (playcaston.Key != null
                && !(player.Map == "Village1" || player.Map == "Rest" || player.Map == "Arnold" || player.Map == "Loen")
                )
            {

                if (castspell is ISingle)
                {
                    if (player.MPCur < castspell.RealManaCost(player))
                        return;
                    player.MPCur -= castspell.RealManaCost(player);
                    castspell.CheckLevelUp(player);

                    CreateMagicEffect(playcaston.Value.Loc, playcaston.Value.Map, (byte)castspell.Seq.OnImpactSprite, 1500);

                    TakeDamage(player, playcaston.Value, castspell);
                    return;
                }

                if (castspell.Name == "DEMON DEATH")
                {
                    if (player.HPCur < (int)(player.HP * 0.70))
                        return;

                    var miyamo = player.Equipped.Where(xe => xe.GetType() == typeof(script.item.MiyamotosStick)).FirstOrDefault();
                    var recast = castspell.RecastTime;
                    if (miyamo != null)
                    {
                        recast -= 1000;
                        recast -= miyamo.Stage * 300;
                    }

                    if (LKCamelot.Server.tickcount.ElapsedMilliseconds - recast > castspell.Cooldown)
                    {
                        castspell.Cooldown = LKCamelot.Server.tickcount.ElapsedMilliseconds;
                    }
                    else
                        return;

                    player.HPCur -= castspell.RealManaCost(player);
                    castspell.CheckLevelUp(player);

                    int mobile = Serial.NewMobile;
                    World.SendToAll(new QueDele(player.Map, new CreateMagicEffect(mobile, 1, (short)playcaston.Value.m_Loc.X, (short)playcaston.Value.m_Loc.Y, new byte[] { 4, 0, 0, 0, 0, 0, 0, 0, 0, (byte)castspell.Seq.OnImpactSprite }, 0).Compile()));
                    var tmp = new QueDele(LKCamelot.Server.tickcount.ElapsedMilliseconds + 2000, player.m_Map, new DeleteObject(mobile).Compile());
                    tmp.tempser = mobile;
                    World.TickQue.Add(tmp);

                    TakeDamage(player, playcaston.Value, castspell);

                    return;
                }

                if (player.MPCur < castspell.RealManaCost(player))
                    return;
                player.MPCur -= castspell.RealManaCost(player);
                castspell.CheckLevelUp(player);
                TakeDamage(player, playcaston.Value, castspell);
                World.SendToAll(new QueDele(player.Map, new CurveMagic(player.Serial,
                    castx, casty, castspell.Seq).Compile()));
            }

            switch (castspell.mType)
            {
                case (LKCamelot.library.MagicType.Target2):
                    foreach (var targete in caston)
                    {
                        if (castspell is ISingle)
                        {
                            if (player.MPCur < castspell.RealManaCost(player))
                                return;
                            player.MPCur -= castspell.RealManaCost(player);
                            castspell.CheckLevelUp(player);

                            CreateMagicEffect(targete.m_Loc, targete.m_Map, (byte)castspell.Seq.OnImpactSprite, 1500);

                            targete.TakeDamage(player, castspell);
                            return;
                        }

                        if (castspell.Name == "DEMON DEATH")
                        {
                            if (player.HPCur < (int)(player.HP * 0.70))
                                return;

                            var miyamo = player.Equipped.Where(xe => xe.GetType() == typeof(script.item.MiyamotosStick)).FirstOrDefault();
                            var recast = castspell.RecastTime;
                            if (miyamo != null)
                            {
                                recast -= 1000;
                                recast -= miyamo.Stage * 300;
                            }

                            if (LKCamelot.Server.tickcount.ElapsedMilliseconds - recast > castspell.Cooldown)
                            {
                                castspell.Cooldown = LKCamelot.Server.tickcount.ElapsedMilliseconds;
                            }
                            else
                                return;

                            player.HPCur -= castspell.RealManaCost(player);
                            castspell.CheckLevelUp(player);

                            int mobile = Serial.NewMobile;
                            World.SendToAll(new QueDele(player.Map, new CreateMagicEffect(mobile, 1, (short)targete.m_Loc.X, (short)targete.m_Loc.Y, new byte[] { 4, 0, 0, 0, 0, 0, 0, 0, 0, (byte)castspell.Seq.OnImpactSprite }, 0).Compile()));
                            var tmp = new QueDele(LKCamelot.Server.tickcount.ElapsedMilliseconds + 2000, player.m_Map, new DeleteObject(mobile).Compile());
                            tmp.tempser = mobile;
                            World.TickQue.Add(tmp);

                            targete.TakeDamage(player, castspell);

                            return;
                        }

                        if (player.MPCur < castspell.RealManaCost(player))
                            return;
                        player.MPCur -= castspell.RealManaCost(player);
                        castspell.CheckLevelUp(player);
                        targete.TakeDamage(player, castspell);
                        World.SendToAll(new QueDele(player.Map, new CurveMagic(player.Serial,
                            castx, casty, castspell.Seq).Compile()));
                    }

                    break;

                case (LKCamelot.library.MagicType.Casted):
                    if (player.MPCur < castspell.RealManaCost(player))
                        return;
                    player.MPCur -= castspell.RealManaCost(player);

                    if (castspell.Cast(player))
                        return;

                    foreach (var targete in caston)
                        targete.TakeDamage(player, castspell);

                    World.SendToAll(new QueDele(player.Map, new CurveMagic(player.Serial,
                      1, 1, castspell.Seq).Compile()));

                    break;
                case (LKCamelot.library.MagicType.Target):
                    if (player.MPCur < castspell.RealManaCost(player))
                        return;
                    player.MPCur -= castspell.RealManaCost(player);
                    if (castspell.Cast(player))
                        return;

                    World.SendToAll(new QueDele(player.Map, new CurveMagic(player.Serial, 1, 1, castspell.Seq).Compile()));
                    foreach (var targetee in caston)
                    {
                        int mobile = Serial.NewMobile;
                        World.SendToAll(new QueDele(player.Map, new CreateMagicEffect(mobile, 1, (short)targetee.m_Loc.X, (short)targetee.m_Loc.Y, new byte[] { 4, 0, 0, 0, 0, 0, 0, 0, 0, (byte)castspell.Seq.OnImpactSprite }, 0).Compile()));
                        // World.SendToAll(new QueDele(player.Map, new SetObjectEffectsMonsterSpell(targetee, castspell.Seq.OnImpactSprite).Compile()));
                        targetee.TakeDamage(player, castspell);
                        var tmp = new QueDele(LKCamelot.Server.tickcount.ElapsedMilliseconds + 1000, player.m_Map, new DeleteObject(mobile).Compile());
                        tmp.tempser = mobile;
                        World.TickQue.Add(tmp);
                    }
                    break;
            }
        }
コード例 #37
0
ファイル: CastHandler.cs プロジェクト: vans163/LKEmu
        public void TakeDamage(Player caster, Player target, script.spells.Spell spell)
        {
            float h = ((float)caster.Hit / ((float)caster.Hit + (float)target.Hit)) * 200;

            if (h >= 100 || new Random().Next(0, 100) < (int)h)
            {
                int take = spell.DamBase + (spell.DamPl * spell.Level);// +(spell.DamPl * spell.SLevel2);
                if (spell.ManaCostPl != 0)
                {
                    take += (caster.GetStat("men") / spell.menCoff);
                    take += (caster.GetStat("str") / spell.strCoff);
                    take += (caster.GetStat("dex") / spell.dexCoff);
                }
                if (spell is script.spells.DemonDeath)
                    take = Convert.ToInt32(caster.HP * 0.5) + caster.GetStat("dex");

                if (target.Color == 0)
                    caster.pkpinkktime = Server.tickcount.ElapsedMilliseconds;

                target.HPCur -= (take - target.AC);
                if (target.Map == "Rest" && target.Color != 1)
                {
                    caster.pklastpk.Add(Server.tickcount.ElapsedMilliseconds);
                    caster.pklastred = Server.tickcount.ElapsedMilliseconds;
                }
                World.SendToAll(new QueDele(caster.m_Map, new HitAnimation(target.Serial,
                   Convert.ToByte(((((float)target.m_HPCur / (float)target.HP) * 100) * 1))).Compile()));
            }
        }
コード例 #38
0
ファイル: Packets.cs プロジェクト: hsnks100/LakingServer
 public CreateSlotMagic2(script.spells.Spell spell)
     : base(0x19)
 {
     m_Stream.Write((byte)spell.Slot);
     m_Stream.Write((byte)spell.mType);
     m_Stream.Write((byte)spell.Level);
     m_Stream.Write((short)spell.SpellLearnedIcon);
     m_Stream.Fill(3);
     m_Stream.Write((byte)1);
     m_Stream.WriteAsciiNull(spell.Name + " :S" + spell.SLevel2.ToString());
 }
コード例 #39
0
ファイル: Item.cs プロジェクト: hsnks100/LakingServer
        public void Drop(script.monster.Monster mob, Player player)
        {
            InvSlot = -1;
            m_Map = player.Map;
            DropTime = LKCamelot.Server.tickcount.ElapsedMilliseconds;

            Loc = new Point2D(mob.m_Loc.X, mob.m_Loc.Y);

            Parent = null;
        }
コード例 #40
0
    public void EndRecord(bool abort = false)
    {
        recording       = false;
        recordingPaused = false;

        if (abort || timings == null || timings.Count == 0)
        {
            return;
        }

        var currentCulture = System.Globalization.CultureInfo.CurrentCulture;

        System.Globalization.CultureInfo.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;

        string frameTimeStr = string.Join(",", timings);

        float med = 0f;
        float min = float.PositiveInfinity;
        float max = float.NegativeInfinity;

        foreach (var time in timings)
        {
            min  = Mathf.Min(time, min);
            max  = Mathf.Max(time, max);
            med += time;
        }

        med /= timings.Count;

        results = new RecordingResults
        {
            minMs = min,
            maxMs = max,
            avgMs = med
        };

        GraphicOption    go   = GameOption.Get <GraphicOption>();
        SpaceshipOptions o    = GameOption.Get <SpaceshipOptions>();
        float            p    = o.screenPercentage / 100f;
        float            mPix = (go.width * p * go.height * p) / 1000000;


        string dateTime        = $"{DateTime.Now.ToLongDateString()} {DateTime.Now.ToShortTimeString()}";
        string operatingSystem = $"{SystemInfo.operatingSystem}";
        string sp = o.screenPercentage == 100 ? $"Native" : $"{o.screenPercentage}% SP ({o.upsamplingMethod.ToString()})";

        string settings   = $"{go.width}x{go.height}@{go.refreshRate}Hz ({go.fullScreenMode}) {sp} ({mPix.ToString("F2")} MegaPixels)- {QualitySettings.names[QualitySettings.GetQualityLevel()]} Quality";
        string bestFPS    = $"{(1000 / min).ToString("F1")}fps ({min.ToString("F2")}ms)";
        string worstFPS   = $"{(1000 / max).ToString("F1")}fps ({max.ToString("F2")}ms)";
        string averageFPS = $"{(1000 / med).ToString("F1")}fps ({med.ToString("F2")}ms)";
        string msPerMPix  = $"{(med/mPix).ToString("F2")} ms/MPix";

        string systemInfo = $"{SystemInfo.deviceModel}";
        string cpuInfo    = $" {SystemInfo.processorType} ({SystemInfo.processorCount} threads) @ {(SystemInfo.processorFrequency / 1000f).ToString("F2")} GHz.";
        string gpuInfo    = $"{SystemInfo.graphicsDeviceName}({SystemInfo.graphicsDeviceType}) {SystemInfo.graphicsMemorySize / 1000}GB VRAM";
        string memInfo    = $"{SystemInfo.systemMemorySize / 1000}GB.";


#if UNITY_STANDALONE && !UNITY_EDITOR
        try
        {
            string myDocumentsPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
            string spaceshipPath   = Path.Combine(myDocumentsPath, "Spaceship Demo");

            if (!Directory.Exists(spaceshipPath))
            {
                Directory.CreateDirectory(spaceshipPath);
            }

            var writer = new StreamWriter($"{spaceshipPath}/{HTMLPath}");
            writer.Write(@$ "<html>
<head>
    <link href=" "https://cdnjs.cloudflare.com/ajax/libs/c3/0.7.20/c3.css" " rel=" "stylesheet" ">
    <link rel=" "preconnect" " href=" "https://fonts.gstatic.com" ">
    <link href=" "https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap" " rel=" "stylesheet" ">
    <script src=" "https://cdnjs.cloudflare.com/ajax/libs/d3/5.16.0/d3.min.js" " charset=" "utf-8" " ></script>
    <script src=" "https://cdnjs.cloudflare.com/ajax/libs/c3/0.7.20/c3.min.js" "></script>
<style>
h1, h2, h3, h4, h5, body, p
{{
font-family: 'Roboto', sans-serif;
}}
</style>
</head>
<body>
<h1> Spaceship - Benchmark Results</h1>
<b>Average FPS : </b> {averageFPS} <br/>
コード例 #41
0
ファイル: Packets.cs プロジェクト: hsnks100/LakingServer
 public CreateNPC2(script.npc.BaseNPC npc)
     : base(0x3A)
 {
     m_Stream.Write((int)npc.ID);
     m_Stream.Write((short)1); //facedir
     m_Stream.Write((short)npc.X);
     m_Stream.Write((short)npc.Y);
     m_Stream.Write((byte)0x0A);
     m_Stream.Fill(8);
     m_Stream.Write((byte)npc.Sprite);
     m_Stream.Fill(4);
     m_Stream.Write((byte)npc.aSpeed);
     m_Stream.Fill(1);
     m_Stream.Write((byte)npc.aFrames);
     m_Stream.Fill(1);
 }
コード例 #42
0
ファイル: Monster.cs プロジェクト: sepharoph/LK2
        public virtual void TakeDamage(Player player, script.spells.Spell spell)
        {
            float h = ((float)player.Hit / ((float)player.Hit + (float)Hit)) * 200;

            if (h >= 100 || new Random().Next(0, 100) < (int)h)
            {
                int take = spell.DamBase + (spell.DamPl * spell.Level);// + (spell.DamPl * spell.SLevel2);
                if (spell.ManaCostPl != 0)
                    take += (player.GetStat("men") / spell.menCoff);
                if (spell is script.spells.DemonDeath)
                    take = Convert.ToInt32(player.HP * 0.5) + player.GetStat("dex");

                HPCur -= (take - AC);
                World.SendToAll(new QueDele(m_Map, new HitAnimation(m_Serial,
                   Convert.ToByte(((((float)m_HPCur / (float)HP) * 100) * 1))).Compile()));

                if (HPCur <= 0)
                {
                    if (player.Promo > 0)
                    {
                        var temp = XP;
                        int y = player.Promo >= 7 ? 2 : 1;
                        for (int x = 0; x < y; x++)
                            temp = (int)(temp * 0.1);

                        player.XP += temp * XPMulti;
                    }
                    else
                        player.XP += XP * XPMulti;
                    DropLoot(player);
                    m_Loc.X = m_SpawnLoc.X;
                    m_Loc.Y = m_SpawnLoc.Y;
                }
            }
        }
コード例 #43
0
ファイル: Packets.cs プロジェクト: hsnks100/LakingServer
        public SetObjectEffectsMonster(script.monster.Monster play)
            : base(0x34)
        {
            //  SetObjectEffects = 0x34; // 0x34 4id 1light 1trans 4byffs 1staticmagic
            m_Stream.Write(play.m_Serial);
            m_Stream.Write((byte)0); //lightrad
            m_Stream.Write((byte)play.Transp); //transp
            m_Stream.Fill(4);
            m_Stream.Write((byte)0); //cast once

            m_Stream.Write((byte)play.FrameType);

            m_Stream.Write((byte)0); // speed
            m_Stream.Write((byte)1);
        }
コード例 #44
0
ファイル: Player.cs プロジェクト: vans163/LKEmu
 public bool LearnSpell(script.item.BaseSpellbook spellb)
 {
     var learned = m_MagicLearned.Find(xe => xe.Name.ToLower() == spellb.SpellTaught.Name.ToLower());
     if (learned != null)
     {
         if (GetStat("men") >= spellb.MenReq + (spellb.MenReqPl * learned.Level)
             && GetStat("dex") >= spellb.DexReq + (spellb.DexReqPl * learned.Level)
             && GetStat("str") >= spellb.StrReq + (spellb.StrReqPl * learned.Level)
             && Level >= spellb.LevelReq + (spellb.LevelReqPl * learned.Level)
             && (spellb.ClassReq == 0 || ((Class & spellb.ClassReq) != 0))
             && learned.Level < 12)
         {
             learned.Level++;
             client.SendPacket(new CreateSlotMagic2(learned).Compile());
             return true;
         }
     }
     else if (m_MagicLearned.Count() < 40)
     {
         if (GetStat("men") >= spellb.MenReq && GetStat("dex") >= spellb.DexReq && Level >= spellb.LevelReq
             && (spellb.ClassReq == 0 || ((Class & spellb.ClassReq) != 0)))
         {
             var spell2l = spellb.SpellTaught;
             spell2l.Slot = GetFreeSpellSlot();
             m_MagicLearned.Add(spell2l);
             client.SendPacket(new CreateSlotMagic2(spell2l).Compile());
             return true;
         }
     }
     return false;
 }
コード例 #45
0
ファイル: Packets.cs プロジェクト: hsnks100/LakingServer
 public SpawnShopGump2(script.npc.GUMP shop)
     : base(0x3E)
 {
     m_Stream.Write(shop.ID);
     m_Stream.Write((byte)shop.SellList.Count());
     m_Stream.Write(shop.Titlec);
     m_Stream.Write(shop.Boxc);
     m_Stream.Fill(1);
     m_Stream.Write(shop.Time);
     m_Stream.Write(shop.ItemIDArray, 0, 32);
     m_Stream.WriteAsciiFixed(shop.ShopName, 32);
     m_Stream.Write((short)shop.ItemNameString.Length);
     m_Stream.WriteAsciiNull(shop.ItemNameString);
 }
コード例 #46
0
ファイル: Player.cs プロジェクト: vans163/LKEmu
        public void AddBuff(script.spells.Spell buff)
        {
            if (m_Buffs.Contains(buff))
                m_Buffs.Remove(buff);

            if (!m_Buffs.Contains(buff))
            {
                m_Buffs.Add(buff);
                World.SendToAll(new QueDele(Map, new LKCamelot.model.SetObjectEffectsPlayer(this).Compile()));
                client.SendPacket(new LKCamelot.model.UpdateCharStats(this).Compile());
            }
        }