From c2a2f74ba523063aaeb02afe992ec282dd7d0539 Mon Sep 17 00:00:00 2001 From: strawberry42271 <2806566736@qq.com> Date: Fri, 21 Mar 2025 11:04:13 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E5=81=9A=E6=88=98=E6=96=97=E5=8A=A8?= =?UTF-8?q?=E7=94=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- project/icons.js | 3 +- project/maps.js | 1 + project/materials/terrains.png | Bin 51393 -> 51963 bytes project/plugins.js | 258 +++++++++++++++------------------ 4 files changed, 122 insertions(+), 140 deletions(-) diff --git a/project/icons.js b/project/icons.js index 91a378a..2188db4 100644 --- a/project/icons.js +++ b/project/icons.js @@ -119,7 +119,8 @@ var icons_4665ee12_3a1f_44a4_bea3_0fccba634dc1 = "T363": 87, "T364": 88, "T365": 89, - "T397": 90 + "T397": 90, + "T399": 91 }, "animates": { "star": 0, diff --git a/project/maps.js b/project/maps.js index 79fc26a..260b43b 100644 --- a/project/maps.js +++ b/project/maps.js @@ -297,6 +297,7 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e = "396": {"cls":"items","id":"I396"}, "397": {"cls":"items","id":"postman"}, "398": {"cls":"terrains","id":"T397"}, + "399": {"cls":"terrains","id":"T399"}, "20034": {"cls":"tileset","id":"X20034","canPass":true}, "20154": {"cls":"tileset","id":"X20154","canPass":true}, "20216": {"cls":"tileset","id":"X20216","canPass":true}, diff --git a/project/materials/terrains.png b/project/materials/terrains.png index 16761243c0eab940fcc2ac9b61dbc9d8c462bdef..4edff72ed658ac9f08040a598045532674a64242 100644 GIT binary patch delta 3549 zcmYM1X*ARg8^-@*Fk`QbP>JlaZ(~Vg>^tMJmaSxGERkLRv4n_ZE$i5_B{U*K8lIvU z4Ot6~CHo#(vc0{}Iq&%)ESZ`bwZI=`#q3G^@vn#Re9gVO^5;Bi}hs^N;vThIo2 zQ7_;D_2AO#_T=2E@|EJJg8ZJc#SajgvI=6X8dr3piJ8?H5Apl7*5U(K6D|2O|H`x! z^VHIiluP8TVid~4mB3%qM`xZ?aw%3aly?NI4y9)7Q`-ZN0vD#ncO&vb9*IOWw<4Q! zkk``hEff^(^(pze?Y@1Mr*dG#913b1BTZ^rGDRv8bR+id?@8n=VTG^RvH z;OsixT^klwH4U?ARH5O|<(9Bmqn;pizNIGoZ_FbNM&oG6HiDNqRD&@qdtiT`i%zPp z@Nu5o0qaFin(a`kGr?M8?6*h6&}Wz2$HyOzZWS`zdHL$+8#c4VC8%6oUKVI&E%B=~ z=N8BE4~Du$hm7YdP52Jjl>EQKgwkJb+Y|nN?!D1(5$d*XSC>cdix?s?6{CzOIax1_ zbm2obrU-RchKQOvybUmfB~_{+6LNf=2V{g&A6xiE(&l}$z83WfKJhC{JSD(BF$dWv z*XEYc!>^E?iwCE*^Q)z8H603gf(9ON_D@X#MLpE7lUh-+0t&Lvo_`&<>!?!oB5}(+ z`Xxjy$gdz^b@6Pjm3_~KZ~dY80=ay;0kK9sh19-uFz8ktKZuD7<=2?je~R+KmY(d3 z)|D^;s{)B^k6U1yH3=KCswb1WLPEDyJL)ENe4cakC4v2|8^{5c(Yo@~UF)R2)B#$% z{trVV0|rrTDQtdy&ka(A4j~fGBD#}`9qer1ZwK+Hkd10LW<3b=3sAPyovmUY;^Zxd@rxgS(P+O7p5AX4;>3Wm82ipOHS_7`S8;=lNcUeStg;2t;GiYs=ly{3eMzV0nR4H zRkoC;geT~FICoBv zUxwMSe(9-^s)%mC+`bOkbIi%rLIVIJ)<9dsGTvQp>2IiHP@~dk8~yC;%uUvnu&lr; z@Yd6;`nmdK;m~D0s_ad>+^|yBV1rpXa!0W;2ZhnxZu|;yhN;)nMfvl|^?i6Lp>(Hi z9&`)5gm)g)G!(9S)fN*UuUF;1`Q{p62l^8R?pJ2blkLzC_hon;RZ!U_C45cOm&&Zf zy+gTAw8PUS1s`$5KAauu17w0pTIqtyMEaTTs*sPa>_gyja#ufEJu5T5rC?eDZ87D> zdDMkpo}g1u%g6JLfB|(3WU))QZxq1-RdnW#WS2Ho^S0+huxg z6=c_Zk#u2AGVku#QD2k*8)rM^P?rH9Xv%`=JSK#~_e;orH>O4%EW91AN*?wdWO7sG zR6p^I{1(*QxnYMW>uCwBYK4tHK$uIMzy6hJeiO4wyx6IxBvPu-IylAdQr88>ElHEQ zbT0W{P+O6B&YSa`oTpS2{u|&!b8sxi2PEl`i^mk9qc3coN%0AXLYC)CEag5)*?Q~> z?xvof4jN&&D#_HqE1FhVMxYc@u2oE_OGtO?(i`h?M2@C-(@Qz1Qe?2858*J>Fkb0B z{3!~$8*{rxDO|%GcV5a~UkiMAdpDTG2?vxXL;OA7Ux%75tVNcKA6+zW_nL3CFM|AE z(Vg=B6BFdRD|h{)$i<$I<@Dk@2yYv7U_jXu$iM~xk+EjjjD*m zTrV%L%Bre|xp{eCbp(K)+!O%Q`)g%X9`KMPI(vJsAl$Y&if#jnj?KP2gVNus< zhaWtm)J!h?(E0FB`Tr^X3l}ahdOsy8TfvwoO=jP#^BvT#f>APGdfiuSg|9>sf3dl2 zUr9Wc23{TTnr^XGGR#Fto#H}G)4F<2Y-VfKq`85se~GN0FHo#;Ys_UD62|3oAHr5w z!B&PP_HDK?hMsx#&0`SS4wClR_D>*G^{GQxu6vw8MskLjKKh>)vvMwI7tKCK`ZN)K|arZBEpNhL6J~WPyA@D>-7}hQ+Gl(UA|YqEH`-aN)F$ggYb1dHOe<66jHCU zCYQc|%2~S;=014O44qKs(+7&6z{r&`^)zn~$9@PB4;p0BA-CMA?#VVvNM$jt$@jQ> zV*lFTJpNy%=*~ZZ$?j(Nozi+EcWKd5+g~jJ>v@96_~EcHMv{-B)C{gL-wMnSF-c2- zP{2DSbv~Sp45Xw5AP71X2!ykTzJ#Kn)~I}W?@RqW=7nO#>O2cS=Y9`vJsW0WLh;nx zcM1@W_(E&_cB(Oychg5u4a>brO^l>hTcR_yR&h($J+`WAzuT2;EiX1<;3y8HQ~nsJ z@hpUjj{S_1I*oM)Rq>QYjQ&2a8YHdvbcz9IpE3E2j@0v8N)*}#l0JDLGZd^}-ZD3& z(DR?Qt&i5fM|XIbIOMiz409QM)XwtJ0yqisc`Z5<#%?PK3za+fd$0j@t~$Xt>EC2GJbo6)oh63}^o%eue#VIatBxMq-&vx7({Yg5r)@X#zaxU_I!#b|0RIBlPVzN@R5W`3nDV$^--dM7-_ENXNf3Y7G@NG)e_I{% zDNw2N2~`%T=X-=6*tV7y+y4q4!sTMH&xX8DSR2 zsnk!W-@)Ia6f3~mb&)ZO5inQgdDMT{y?o^xI2>l&Op73{`W5WV%_oWVRP4t45M^~> z+Og*Kj_e$y>O85kidH=?+UDaJ`0?B@8-XV6Ibqp=8C`kKYdBa}m{xJUc5VJOjbih8 zi$SCLl=e|yxZA56b5HaiveV5;xt0$TUl~a9ftO!K9^wZo_@2n!EDM zmHHj@aR#~uf)t^(-gkcOA5BPZWoj09( z70hu^|D`6bz1WF~A11j_ZAG#WV2v@=7~Kao(kw?fOIAd=b|*JU{Gi2;T&8&t&I9*iDuyS5-p30OWG>WNZs&Qx ztH|UH00CY<+lx?Cr0O%hK zd^%5Y(xoF=IIBE|SI1d+Zf(F4~qd3-Xf%z3{%r?aun zCqS3$?V!H&(bt`P2jY4O^YKS@EP!9%U0IhcYub3X<1Lq6TYS;4E%oxjdT{u>oef5d z3TKL#cCYIfFvH>vX-aTwZ)7$IsS;4%kZIEw=Qph)y7KnZjB VIv_om`e(!e20EtNFEww){0HH4vO@p> delta 2975 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 Vs@u~>`2YX_07(Z$PDHLkV1lH}xVZoT diff --git a/project/plugins.js b/project/plugins.js index 27639e8..98f7637 100644 --- a/project/plugins.js +++ b/project/plugins.js @@ -21473,6 +21473,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = const ctx = animateAttack.getContext("2d"); core.plugin.playingattack = new Set(); const ctx6 = main.dom.animate2.getContext("2d"); + const changeY = -30 let easy = false; const { imagelighter } = core.plugin.utils; @@ -21625,9 +21626,9 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = function animateonAttack(name, onenemy) { if (onenemy) { - playanimate(name, 290, 180); + playanimate(name, 290, 180 + changeY); } else { - playanimate(name, 130, 180); + playanimate(name, 130, 180 + changeY); } } @@ -21678,20 +21679,30 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = return sx <= x && x <= dx && sy <= y && y <= dy; }; const pos = [px, py]; - const easybox = makeBox([90, 232], [80, 22]), - easyclosebox = makeBox([290, 232], [40, 22]), - uneasybox = makeBox([265, 330], [65, 20]), - uneasyclosebox = makeBox([290, 350], [40, 20]); + const easybox = makeBox([90, 232 + changeY], [80, 22]), + easyspeedbox = makeBox([290, 232 + changeY], [40, 22]), + uneasybox = makeBox([265, 330 + changeY], [65, 20]), + uneasyspeedbox = makeBox([290, 350 + changeY], [40, 20]), + uneasyClosebox = makeBox([265, 370 + changeY], [65, 20]), + easyClosebox = makeBox([290, 255 + changeY], [40, 20]); if (inRect(pos, easybox) && easy) { easy = false; } else if (inRect(pos, uneasybox) && !easy) { easy = true; } else if ( - (inRect(pos, easyclosebox) && easy) || - (inRect(pos, uneasyclosebox) && !easy) + (inRect(pos, easyspeedbox) && easy) || + (inRect(pos, uneasyspeedbox) && !easy) ) { flags.qukly = !flags.qukly + } else if ((inRect(pos, easyClosebox) && easy) || + (inRect(pos, uneasyClosebox) && !easy) + ) { + core.status.event.id = ""; + core.unregisterAnimationFrame("attackAnimate"); + core.clearMap(ctx); + core.closePanel(); + res(); } }; async function drawAttackAnimate( @@ -21751,18 +21762,18 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, hero.name, 127, - 148, + 148 + changeY, "#FFFFFF", "#000000", "bold 14px Verdana" ); core.setTextAlign(ctx, "left"); - core.drawIcon(ctx, "hp", 70, 210, 16, 16); + core.drawIcon(ctx, "hp", 70, 210 + changeY, 16, 16); core.fillBoldText( ctx, "生命 " + core.formatBigNumber(heroInfo.hp, true), 90, - 225, + 225 + changeY, "#FFFFFF", "#000000", "bold 14px Arial" @@ -21772,13 +21783,13 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, "详细模式", 90, - 250, + 250 + changeY, "#FFFF60", "#000000", "bold 18px Verdana" ); - core.strokeRect(ctx, 112, 159, 32, 48, "rgba(255,255,255,1)", 1); + core.strokeRect(ctx, 112, 159 + changeY, 32, 48, "rgba(255,255,255,1)", 1); let img = attack && heroDiffList[turn].hp < 0 ? imagelighter(core.material.images.images["hero.webp"]) : @@ -21796,7 +21807,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = 32, 48, 112, - 159, + 159 + changeY, 32, 48 ); @@ -21806,7 +21817,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, enemyInfo.name, 289, - 148, + 148 + changeY, "#FFFFFF", "#000000", "bold 14px Verdana" @@ -21814,7 +21825,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = core.setTextAlign(ctx, "right"); if (enemyInfo.cls === "enemys") { - core.strokeRect(ctx, 272, 175, 32, 32, "rgba(255,255,255,1)", 1); + core.strokeRect(ctx, 272, 175 + changeY, 32, 32, "rgba(255,255,255,1)", 1); let img = attack && enemyDiffList[turn].hp < 0 ? imagelighter(core.getBlockInfo(enemyInfo.id).image) : @@ -21832,12 +21843,12 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = 32, 32, 272, - 175, + 175 + changeY, 32, 32 ); } else { - core.strokeRect(ctx, 272, 159, 32, 48, "rgba(255,255,255,1)", 1); + core.strokeRect(ctx, 272, 159 + changeY, 32, 48, "rgba(255,255,255,1)", 1); let img = attack && enemyDiffList[turn].hp < 0 ? imagelighter(core.getBlockInfo(enemyInfo.id).image) : @@ -21855,18 +21866,18 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = 32, 48, 272, - 159, + 159 + changeY, 32, 48 ); } - core.drawIcon(ctx, "hp", 330, 210, 16, 16); + core.drawIcon(ctx, "hp", 330, 210 + changeY, 16, 16); core.fillBoldText( ctx, core.formatBigNumber(enemyInfo.hp, true) + " 生命", 330, - 225, + 225 + changeY, "#FFFFFF", "#000000", "bold 14px Verdana" @@ -21875,17 +21886,25 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, flags.qukly ? "正常" : "极速", 330, - 250, + 250 + changeY, + "#FFFF60", + "#000000", + "bold 18px Verdana" + ); + core.fillBoldText( + ctx, + "跳过", + 330, + 273 + changeY, "#FFFF60", "#000000", "bold 18px Verdana" ); - core.fillBoldText( ctx, "V", 219, - 183, + 183 + changeY, "#FFFFFF", "#000000", "bold 48px pala" @@ -21894,7 +21913,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, "s", 231, - 183, + 183 + changeY, "#FFFFFF", "#000000", "bold 36px pala" @@ -21904,26 +21923,26 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = let enemynow = Math.min(100 + (enemyInfo.now / oneTurn) * 215, 315); ctx.fillStyle = "#FFFFFF"; ctx.beginPath(); - ctx.moveTo(enemynow, 120); - ctx.lineTo(enemynow + 5, 110); - ctx.lineTo(enemynow - 5, 110); + ctx.moveTo(enemynow, 120 + changeY); + ctx.lineTo(enemynow + 5, 110 + changeY); + ctx.lineTo(enemynow - 5, 110 + changeY); ctx.closePath(); ctx.fill(); - core.drawIcon(ctx, 'T367', enemynow - 16, 74, 32, 32) + core.drawIcon(ctx, 'T397', enemynow - 16, 84 + changeY, 32, 32) - core.drawLine(ctx, 100, 125, 315, 125, "#FFFFFF", 5); + core.drawLine(ctx, 100, 125 + changeY, 315, 125 + changeY, "#FFFFFF", 5); equipInfo.forEach(function (v) { if (!attack && !onAttack) v.now += v.speed; let vnow = Math.min(100 + (v.now / oneTurn) * 215, 315); ctx.beginPath(); - ctx.moveTo(vnow, 120); - ctx.lineTo(vnow + 5, 110); - ctx.lineTo(vnow - 5, 110); + ctx.moveTo(vnow, 120 + changeY); + ctx.lineTo(vnow + 5, 110 + changeY); + ctx.lineTo(vnow - 5, 110 + changeY); ctx.closePath(); ctx.fill(); - core.drawIcon(ctx, v.id, vnow - 16, 54, 32, 32); + core.drawIcon(ctx, v.id, vnow - 16, 84 + changeY, 32, 32); }); if (!attack && !onAttack && !flags.qukly) heroInfo.now += hero.speed; let heronow = Math.min(100 + (heroInfo.now / oneTurn) * 215, 315); @@ -21934,18 +21953,8 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx.closePath(); ctx.fill(); - core.drawImage( - ctx, - "hero.webp", - 0, - 0, - 32, - 48, - heronow - 16, - 58, - 32, - 48 - ); + core.drawIcon(ctx, 'T399', heronow - 16 - 4, 84 - 4 + changeY, 40, 40) + } else { core.fillRect(ctx, 64, 52, 288, 320, "rgba(0,0,0,0.5)"); core.strokeRect(ctx, 64, 52, 288, 320, "rgba(255,255,255,0.5)", 4); @@ -21954,25 +21963,25 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, hero.name, 127, - 148, + 148 + changeY, "#FFFFFF", "#000000", "bold 14px Verdana" ); core.setTextAlign(ctx, "left"); - core.drawIcon(ctx, "hp", 70, 210, 16, 16); - core.drawIcon(ctx, "atk", 70, 230, 16, 16); - core.drawIcon(ctx, "def", 70, 250, 16, 16); - core.drawIcon(ctx, "I374", 70, 270, 16, 16); - core.drawIcon(ctx, "I375", 70, 290, 16, 16); - core.drawIcon(ctx, "mdef", 70, 310, 16, 16); - core.drawIcon(ctx, "amulet", 70, 330, 16, 16); - core.drawIcon(ctx, "jumpShoes", 70, 350, 16, 16); + core.drawIcon(ctx, "hp", 70, 210 + changeY, 16, 16); + core.drawIcon(ctx, "atk", 70, 230 + changeY, 16, 16); + core.drawIcon(ctx, "def", 70, 250 + changeY, 16, 16); + core.drawIcon(ctx, "I374", 70, 270 + changeY, 16, 16); + core.drawIcon(ctx, "I375", 70, 290 + changeY, 16, 16); + core.drawIcon(ctx, "mdef", 70, 310 + changeY, 16, 16); + core.drawIcon(ctx, "amulet", 70, 330 + changeY, 16, 16); + core.drawIcon(ctx, "jumpShoes", 70, 350 + changeY, 16, 16); core.fillBoldText( ctx, "生命 " + core.formatBigNumber(heroInfo.hp, true), 90, - 225, + 225 + changeY, "#FFFFFF", "#000000", "bold 14px Arial" @@ -21982,7 +21991,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, "攻击 " + core.formatBigNumber(heroInfo.atk), 90, - 245, + 245 + changeY, "#FFFFFF", "#000000", "bold 14px Arial" @@ -21991,7 +22000,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, "防御 " + core.formatBigNumber(heroInfo.def), 90, - 265, + 265 + changeY, "#FFFFFF", "#000000", "bold 14px Arial" @@ -22000,7 +22009,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, "法强 " + core.formatBigNumber(heroInfo.spell), 90, - 285, + 285 + changeY, "#FFFFFF", "#000000", "bold 14px Arial" @@ -22009,7 +22018,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, "法攻 " + core.formatBigNumber(heroInfo.matk), 90, - 305, + 305 + changeY, "#FFFFFF", "#000000", "bold 14px Arial" @@ -22018,7 +22027,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, "护盾 " + core.formatBigNumber(heroInfo.mhp), 90, - 325, + 325 + changeY, "#FFFFFF", "#000000", "bold 14px Arial" @@ -22027,7 +22036,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, "法抗 " + heroInfo.mdef + "%", 90, - 345, + 345 + changeY, "#FFFFFF", "#000000", "bold 14px Arial" @@ -22036,13 +22045,13 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, "速度 " + core.formatBigNumber(heroInfo.speed), 90, - 365, + 365 + changeY, "#FFFFFF", "#000000", "bold 14px Arial" ); - core.strokeRect(ctx, 112, 159, 32, 48, "rgba(255,255,255,1)", 1); + core.strokeRect(ctx, 112, 159 + changeY, 32, 48, "rgba(255,255,255,1)", 1); let img = attack && heroDiffList[turn].hp < 0 ? imagelighter(core.material.images.images["hero.webp"]) : @@ -22060,7 +22069,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = 32, 48, 112, - 159, + 159 + changeY, 32, 48 ); @@ -22070,7 +22079,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, enemyInfo.name, 289, - 148, + 148 + changeY, "#FFFFFF", "#000000", "bold 14px Verdana" @@ -22078,7 +22087,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = core.setTextAlign(ctx, "right"); if (enemyInfo.cls === "enemys") { - core.strokeRect(ctx, 272, 175, 32, 32, "rgba(255,255,255,1)", 1); + core.strokeRect(ctx, 272, 175 + changeY, 32, 32, "rgba(255,255,255,1)", 1); let img = attack && enemyDiffList[turn].hp < 0 ? imagelighter(core.getBlockInfo(enemyInfo.id).image) : @@ -22096,12 +22105,12 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = 32, 32, 272, - 175, + 175 + changeY, 32, 32 ); } else { - core.strokeRect(ctx, 272, 159, 32, 48, "rgba(255,255,255,1)", 1); + core.strokeRect(ctx, 272, 159 + changeY, 32, 48, "rgba(255,255,255,1)", 1); let img = attack && enemyDiffList[turn].hp < 0 ? imagelighter(core.getBlockInfo(enemyInfo.id).image) : @@ -22119,22 +22128,22 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = 32, 48, 272, - 159, + 159 + changeY, 32, 48 ); } - core.drawIcon(ctx, "hp", 330, 210, 16, 16); - core.drawIcon(ctx, "atk", 330, 230, 16, 16); - core.drawIcon(ctx, "def", 330, 250, 16, 16); - core.drawIcon(ctx, "I374", 330, 270, 16, 16); - core.drawIcon(ctx, "amulet", 330, 290, 16, 16); - core.drawIcon(ctx, "jumpShoes", 330, 310, 16, 16); + core.drawIcon(ctx, "hp", 330, 210 + changeY, 16, 16); + core.drawIcon(ctx, "atk", 330, 230 + changeY, 16, 16); + core.drawIcon(ctx, "def", 330, 250 + changeY, 16, 16); + core.drawIcon(ctx, "I374", 330, 270 + changeY, 16, 16); + core.drawIcon(ctx, "amulet", 330, 290 + changeY, 16, 16); + core.drawIcon(ctx, "jumpShoes", 330, 310 + changeY, 16, 16); core.fillBoldText( ctx, core.formatBigNumber(enemyInfo.hp, true) + " 生命", 330, - 225, + 225 + changeY, "#FFFFFF", "#000000", "bold 14px Arial" @@ -22143,7 +22152,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, core.formatBigNumber(enemyInfo.atk) + " 攻击", 330, - 245, + 245 + changeY, "#FFFFFF", "#000000", "bold 14px Arial" @@ -22152,7 +22161,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, core.formatBigNumber(enemyInfo.def) + " 防御", 330, - 265, + 265 + changeY, "#FFFFFF", "#000000", "bold 14px Arial" @@ -22161,7 +22170,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, (enemyInfo.spell ?? 0) + " 法强", 330, - 285, + 285 + changeY, "#FFFFFF", "#000000", "bold 14px Arial" @@ -22170,7 +22179,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, (enemyInfo.mdef ?? 0) * 100 + "% 法抗", 330, - 305, + 305 + changeY, "#FFFFFF", "#000000", "bold 14px Arial" @@ -22179,7 +22188,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, core.formatBigNumber(enemyInfo.speed) + " 速度", 330, - 325, + 325 + changeY, "#FFFFFF", "#000000", "bold 14px Arial" @@ -22188,7 +22197,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, "简易模式", 330, - 345, + 345 + changeY, "#FFFF60", "#000000", "bold 16px Verdana" @@ -22197,17 +22206,25 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, flags.qukly ? "正常" : "极速", 330, - 365, + 365 + changeY, + "#FFFF60", + "#000000", + "bold 16px Verdana" + ); + core.fillBoldText( + ctx, + "跳过", + 330, + 385 + changeY, "#FFFF60", "#000000", "bold 16px Verdana" ); - core.fillBoldText( ctx, "V", 219, - 183, + 183 + changeY, "#FFFFFF", "#000000", "bold 48px pala" @@ -22216,7 +22233,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, "s", 231, - 183, + 183 + changeY, "#FFFFFF", "#000000", "bold 36px pala" @@ -22226,74 +22243,37 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = let enemynow = Math.min(100 + (enemyInfo.now / oneTurn) * 215, 315); ctx.fillStyle = "#FFFFFF"; ctx.beginPath(); - ctx.moveTo(enemynow, 120); - ctx.lineTo(enemynow + 5, 110); - ctx.lineTo(enemynow - 5, 110); + ctx.moveTo(enemynow, 120 + changeY); + ctx.lineTo(enemynow + 5, 110 + changeY); + ctx.lineTo(enemynow - 5, 110 + changeY); ctx.closePath(); ctx.fill(); + core.drawIcon(ctx, 'T397', enemynow - 16, 84 + changeY, 32, 32) - if (enemyInfo.cls === "enemys") { - core.drawImage( - ctx, - core.getBlockInfo(enemyInfo.id).image, - 32, - core.getBlockInfo(enemyInfo.id).posY * 32, - 32, - 32, - enemynow - 16, - 74, - 32, - 32 - ); - } else { - core.drawImage( - ctx, - core.getBlockInfo(enemyInfo.id).image, - 32, - core.getBlockInfo(enemyInfo.id).posY * 48, - 32, - 19, - enemynow - 16, - 58, - 32, - 48 - ); - } - core.drawLine(ctx, 100, 125, 315, 125, "#FFFFFF", 5); + core.drawLine(ctx, 100, 125 + changeY, 315, 125 + changeY, "#FFFFFF", 5); equipInfo.forEach(function (v) { if (!attack && !onAttack) v.now += v.speed; let vnow = Math.min(100 + (v.now / oneTurn) * 215, 315); ctx.beginPath(); - ctx.moveTo(vnow, 120); - ctx.lineTo(vnow + 5, 110); - ctx.lineTo(vnow - 5, 110); + ctx.moveTo(vnow, 120 + changeY); + ctx.lineTo(vnow + 5, 110 + changeY); + ctx.lineTo(vnow - 5, 110 + changeY); ctx.closePath(); ctx.fill(); - core.drawIcon(ctx, v.id, vnow - 16, 54, 32, 32); + core.drawIcon(ctx, v.id, vnow - 16, 84 + changeY, 32, 32); }); if (!attack && !onAttack && !flags.qukly) heroInfo.now += hero.speed; let heronow = Math.min(100 + (heroInfo.now / oneTurn) * 215, 315); ctx.beginPath(); - ctx.moveTo(heronow, 120); - ctx.lineTo(heronow + 5, 110); - ctx.lineTo(heronow - 5, 110); + ctx.moveTo(heronow, 120 + changeY); + ctx.lineTo(heronow + 5, 110 + changeY); + ctx.lineTo(heronow - 5, 110 + changeY); ctx.closePath(); ctx.fill(); - core.drawImage( - ctx, - "hero.webp", - 0, - 0, - 32, - 48, - heronow - 16, - 58, - 32, - 48 - ); + core.drawIcon(ctx, 'T399', heronow - 16 - 4, 84 - 4 + changeY, 40, 40) } let nowattacking = false; if (heroInfo.now >= oneTurn && !heroInfo.isAttack) { @@ -22323,7 +22303,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = Dove.MorePerform.ShowDamagePop.PopDamage( ctx, // 默认画布名称 270, // 英雄位置 x - 160, // 英雄位置 y + 160 + changeY, // 英雄位置 y text, // 伤害值 18, // 默认字体大小 "Arial", //默认字体 @@ -22348,7 +22328,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = Dove.MorePerform.ShowDamagePop.PopDamage( ctx, // 默认画布名称 110, // 英雄位置 x - 160, // 英雄位置 y + 160 + changeY, // 英雄位置 y text, // 伤害值 18, // 默认字体大小 "Arial", //默认字体