This commit is contained in:
Putoo
2026-07-07 18:43:01 +08:00
parent 7f29fd46b8
commit 037e845622
37 changed files with 854 additions and 106 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@@ -57,6 +57,6 @@ onMounted(() => {
/* 全局样式已移至 src/assets/css/style.css */
:root {
--van-base-font: initial !important;
--van-base-font: initial !important;
}
</style>

View File

@@ -143,9 +143,10 @@ a:focus {
}
.search-ipt {
width: 80px;
font-size: 11px;
width: 80px;
padding: 0;
font:caption;
font-size: 16px;
}
.ipt-btn {
@@ -351,4 +352,12 @@ a:focus {
.equ_glod {
color: #e6b020;
}
.dup {
background-image: url(/images/site/dup.gif);
background-repeat: no-repeat;
display: inline-block;
width: 18px;
height: 18px;
background-size: 18px;
}

View File

@@ -3,7 +3,7 @@
<div class="foot">
<div class="common">
<Abar href="/">首页</Abar>-
<Abar href="/">挂机</Abar>-
<Abar href="/user/onhook">挂机</Abar>-
<!-- <Abar href="/treasure">聚宝盆</Abar>- -->
<a target="_blank" href="https://work.weixin.qq.com/kfid/kfc86bc348120aea3e7" style="text-decoration: underline;">反馈</a>
</div>

View File

@@ -2,8 +2,8 @@
统一配置中心
*/
export class BaseConfig {
public static BaseUrl: string = 'https://localhost:7198'
public static BaseMediaUrl: string = 'https://localhost:7198/'
// public static BaseUrl:string="http://kx.iyba.cn:5291";
// public static BaseMediaUrl:string="http://kx.iyba.cn:5291";
// public static BaseUrl: string = 'https://localhost:7198'
// public static BaseMediaUrl: string = 'https://localhost:7198/'
public static BaseUrl:string="http://kx.iyba.cn:5291";
public static BaseMediaUrl:string="http://kx.iyba.cn:5291";
}

View File

@@ -8,6 +8,9 @@
<div class="common">
<Abar href="/map">继续</Abar>
</div>
<div class="common" v-if="isCopy == 1">
[<Abutton @click="onHook">立即挂机</Abutton>]
</div>
<div class="common">
你体力:{{ blood }}/{{ upBlood }}
</div>
@@ -38,6 +41,7 @@ const blood = ref(0);
const upBlood = ref(0);
const fight = ref<any>({});
const AwardTips = ref('');
const isCopy = ref(0);
let fightId = PageExtend.QueryString("f");
onMounted(async () => {
@@ -57,6 +61,7 @@ const BindData = async (): Promise<void> => {
blood.value = result.data.blood;
upBlood.value = result.data.upBlood;
fight.value = result.data.fight;
isCopy.value = result.data.isCopy;
if (fight.value.award != '') {
AwardTips.value = awardTipsStr(JSON.parse(fight.value.award))
}
@@ -89,4 +94,18 @@ const awardTipsStr = (data: any) => {
return result;
}
/**挂机 */
const onHook = async () => {
MessageExtend.LoadingToast("正在进行挂机...");
let result = await FightService.OnHook(fightId);
MessageExtend.LoadingClose();
if (result.code == 0) {
isCopy.value = 0;
MessageExtend.Notify("挂机成功!", "success");
}
else {
MessageExtend.Notify(result.msg, "danger");
}
}
</script>

View File

@@ -1,5 +1,11 @@
<template>
<GameBroadcast :data="broadcast"></GameBroadcast>
<div class="content" v-if="isHook==1">
<div class="item" style="font-size:15px;font-weight:bold;color:green">
<i class="dup"></i>
<Abar href="/user/onhook" style="color:green">小宝贝,正在挂机中...</Abar>
</div>
</div>
<div class="content">
{{ cityInfo.cityName }}·{{ mapInfo.mapName }}({{ mapInfo.x }},{{ mapInfo.y }})
<Abutton @click="Refresh">刷新</Abutton>
@@ -136,6 +142,7 @@ const monster = ref<Array<any>>([]);
const messageCount = ref(0);
const broadcast = ref<Array<any>>([]);
const gameTips = ref('');
const isHook = ref(0);
const mapGoods = ref<Array<any>>([]);
// 城内地图显示
const showCity = ref(false);
@@ -171,6 +178,7 @@ const BindData = async (map: string): Promise<void> => {
onMap.value = mapInfo.value.mapId;
gameTips.value = result.data.gameTips;
mapGoods.value = result.data.mapGoods;
isHook.value = result.data.isHook;
// console.log(result)
}
else if (result.code == 103) {

View File

@@ -1,58 +1,55 @@
<template>
<div class="content">特殊属性</div>
<div class="content">
<span>幸运:0%</span>&nbsp;&nbsp;&nbsp;<span>爆率:0%</span><br>
<span>升空:0</span>&nbsp;&nbsp;&nbsp;<span>下潜:0</span>
</div>
<div class="content">经验铜贝</div>
<div class="content">
<div class="module-title">特殊属性</div>
<div class="module-content">
<span>幸运:{{ data.luck * 100 }}%</span>&nbsp;&nbsp;&nbsp;<span>爆率:{{ data.burst * 100 }}%</span><br>
<!-- <span>升空:0</span>&nbsp;&nbsp;&nbsp;<span>下潜:0</span> -->
<span>普通经验:0%</span>&nbsp;&nbsp;&nbsp;<span>副本经验:0%</span><br>
<span>铜贝增益:0%</span>
<span>铜贝增益:{{ data.addGold * 100 }}%</span>
</div>
<div class="content">基础属性</div>
<div class="content">
<span>吸血:{{data.inBlood * 100}}%</span>&nbsp;&nbsp;&nbsp;<span>制裁:{{data.punish * 100}}%</span><br>
<span>暴击:{{data.crit * 100}}%</span>&nbsp;&nbsp;&nbsp;<span>闪避:{{data.dodge * 100}}%</span><br>
<span>免伤:{{data.noHarm * 100}}%</span>&nbsp;&nbsp;&nbsp;<span>额外伤害:{{data.harm_Add}}</span><br>
<span>反弹:{{data.rebound * 100}}%</span>&nbsp;&nbsp;&nbsp;<span>抗反弹:{{data.reboundLess * 100}}%</span><br>
<span>迟缓:{{data.slow * 100}}%</span>&nbsp;&nbsp;&nbsp;<span>抗迟缓:{{data.slowLess * 100}}%</span><br>
<span>中毒:{{data.poison * 100}}%</span>&nbsp;&nbsp;&nbsp;<span>抗中毒:{{data.poisonLess * 100}}%</span><br>
<span>诅咒:{{data.curse * 100}}%</span>&nbsp;&nbsp;&nbsp;<span>抗诅咒:{{data.curseLess * 100}}%</span><br>
<span>弱化:{{data.weaken * 100}}%</span>&nbsp;&nbsp;&nbsp;<span>抗弱化:{{data.weakenLess * 100}}%</span><br>
<span>致命:{{data.deadly * 100}}%</span>&nbsp;&nbsp;&nbsp;<span>抗致命:{{data.deadlyLess * 100}}%</span><br>
<span>沮丧:{{data.depressed * 100}}%</span>&nbsp;&nbsp;&nbsp;<span>抗沮丧:{{data.depressedLess * 100}}%</span><br>
<span>突破:{{data.breach * 100}}%</span>&nbsp;&nbsp;&nbsp;<span>抗突破:{{data.breachLess * 100}}%</span><br>
<span>麻痹:{{data.palsyAtk * 100}}%</span>&nbsp;&nbsp;&nbsp;<span>抗麻痹:{{data.palsyAtkLess * 100}}%</span><br>
<span>卸时装:{{data.del_Fashion * 100}}%</span>&nbsp;&nbsp;&nbsp;<span>连击:{{data.atk_Next * 100}}%</span><br>
<div class="module-title">基础属性</div>
<div class="module-content">
<span>吸血:{{ data.inBlood * 100 }}%</span>&nbsp;&nbsp;&nbsp;<span>制裁:{{ data.punish * 100 }}%</span><br>
<span>暴击:{{ data.crit * 100 }}%</span>&nbsp;&nbsp;&nbsp;<span>闪避:{{ data.dodge * 100 }}%</span><br>
<span>免伤:{{ data.noHarm * 100 }}%</span>&nbsp;&nbsp;&nbsp;<span>额外伤害:{{ data.harm_Add }}</span><br>
<span>反弹:{{ data.rebound * 100 }}%</span>&nbsp;&nbsp;&nbsp;<span>抗反弹:{{ data.reboundLess * 100 }}%</span><br>
<span>迟缓:{{ data.slow * 100 }}%</span>&nbsp;&nbsp;&nbsp;<span>抗迟缓:{{ data.slowLess * 100 }}%</span><br>
<span>中毒:{{ data.poison * 100 }}%</span>&nbsp;&nbsp;&nbsp;<span>抗中毒:{{ data.poisonLess * 100 }}%</span><br>
<span>诅咒:{{ data.curse * 100 }}%</span>&nbsp;&nbsp;&nbsp;<span>抗诅咒:{{ data.curseLess * 100 }}%</span><br>
<span>弱化:{{ data.weaken * 100 }}%</span>&nbsp;&nbsp;&nbsp;<span>抗弱化:{{ data.weakenLess * 100 }}%</span><br>
<span>致命:{{ data.deadly * 100 }}%</span>&nbsp;&nbsp;&nbsp;<span>抗致命:{{ data.deadlyLess * 100 }}%</span><br>
<span>沮丧:{{ data.depressed * 100 }}%</span>&nbsp;&nbsp;&nbsp;<span>抗沮丧:{{ data.depressedLess * 100 }}%</span><br>
<span>突破:{{ data.breach * 100 }}%</span>&nbsp;&nbsp;&nbsp;<span>抗突破:{{ data.breachLess * 100 }}%</span><br>
<span>麻痹:{{ data.palsyAtk * 100 }}%</span>&nbsp;&nbsp;&nbsp;<span>抗麻痹:{{ data.palsyAtkLess * 100 }}%</span><br>
<span>卸时装:{{ data.del_Fashion * 100 }}%</span>&nbsp;&nbsp;&nbsp;<span>连击:{{ data.atk_Next * 100 }}%</span><br>
</div>
</template>
<script setup lang="ts">
import { UserService } from '../../services/user/UserService';
definePageMeta({
layout: layout.default,
middleware: middleware.loading
})
definePageMeta({
layout: layout.default,
middleware: middleware.loading
})
const data = ref<any>([]);
onMounted(async () => {
try {
await BindData();
}
finally {
PageLoading.Close();
}
})
const BindData = async () => {
let result = await UserService.GetUserBaseAttrInfo();
if (result.code == 0) {
data.value = result.data;
console.log(data)
}
else {
MessageExtend.ShowDialog("特性", result.msg);
}
const data = ref<any>([]);
const unitExp = ref(0);
const dupExp = ref(0);
onMounted(async () => {
try {
await BindData();
}
finally {
PageLoading.Close();
}
})
const BindData = async () => {
let result = await UserService.GetUserBaseAttrData();
if (result.code == 0) {
data.value = result.data.data;
unitExp.value = result.data.unitExp;
dupExp.value = result.data.dupExp;
}
else {
MessageExtend.ShowDialog("特性", result.msg);
}
}
</script>

View File

@@ -0,0 +1,76 @@
<template>
<div class="module-title">挂机状态</div>
<div class="module-content" v-if="data.status == 1">
挂机对象{{ data.name }}<br>
战斗用时{{ data.time }} <span style="color: green;font-size: 14px;">ms</span> <br>
战力要求{{ Number(data.score).toFixed(2) }}<br>
挂机经验{{ data.exp }}经验/(+{{ Number(expAdd)*100 }}%)<br>
挂机铜贝{{ data.copper }}铜贝/(+{{ Number(copperAdd)*100 }}%)<br>
获得经验{{data.sumExp}}<br>
获得铜贝{{data.sumCopper}}<br>
上次更新{{TimeExtend.Format(data.uptime)}}<br>
结束时间{{TimeExtend.Format(data.endTime)}}<br>
[<Abutton @click="StopHook">结束挂机</Abutton>]
</div>
<div class="module-content" v-else>
未进行挂机!
</div>
<div class="module-title">挂机说明</div>
<div class="module-content" style="font-size: 16px;">
1.挂机状态每5分钟自动结算一次<br>
2.挂机状态中主动攻击怪物或玩家,自动结束挂机状态<br>
3.挂机状态获得的经验高低与战力有关,同时与受普通经验卡等倍数加层,具体加层倍数可通过状态->特性中查看<br>
4.挂机时间普通挂机6个小时紫钻挂机12个小时中间被击杀(体力0)会被结束挂机状态<br>
5.当结束挂机后玩家需要重新在可挂机的怪物处击杀怪物并完成战斗复刻<br>
6.挂机状态下在挂机地点不可移动<br>
</div>
</template>
<script setup lang="ts">
definePageMeta({
layout: layout.default,
middleware: 'page-loading'
})
const data = ref<any>({});
const expAdd = ref(0);
const copperAdd = ref(0);
onMounted(async () => {
try {
await BindData();
}
finally {
PageLoading.Close();
}
})
const BindData = async (): Promise<void> => {
let result = await FightService.GetUserHook();
if (result.code == 0) {
data.value = result.data.data;
expAdd.value = result.data.expAdd;
copperAdd.value = result.data.copperAdd;
}
else {
MessageExtend.ShowDialog("提示", result.msg);
}
};
/**结束挂机 */
const StopHook = async () => {
MessageExtend.LoadingToast("正在结束挂机...");
let result = await FightService.StopOnHook();
MessageExtend.LoadingClose();
if (result.code == 0) {
await BindData();
MessageExtend.Notify("挂机已结束!", "success");
}
else {
MessageExtend.Notify(result.msg, "danger");
}
}
</script>

View File

@@ -43,4 +43,28 @@ export class FightService {
static async GetFightMsg(fightId: string) {
return await ApiService.Request("get", "/Fight/GetFightMsg", { fightId });
}
/**
* 个人挂机信息
* GET /Fight/GetUserHook
*/
static async GetUserHook() {
return await ApiService.Request("get", "/Fight/GetUserHook");
}
/**
* 挂机
* GET /Fight/OnHook
*/
static async OnHook(fightId: string) {
return await ApiService.Request("get", "/Fight/OnHook", { fightId });
}
/**
* 结束挂机
* GET /Fight/StopOnHook
*/
static async StopOnHook() {
return await ApiService.Request("get", "/Fight/StopOnHook");
}
}

View File

@@ -23,6 +23,14 @@ export class UserService {
return await ApiService.Request("get", "/User/User/GetUserBaseAttrInfo", { no });
}
/**
* 获取个人特性
* GET /User/User/GetUserBaseAttrData
*/
static async GetUserBaseAttrData() {
return await ApiService.Request("get", "/User/User/GetUserBaseAttrData");
}
/**
* 获取用户资料
* GET /User/User/GetHomeInfo