登录之后获取全局数据

This commit is contained in:
chen wei bo
2025-09-12 11:29:22 +08:00
parent c11a310ea1
commit 8372d3b489
7 changed files with 159 additions and 12 deletions
+17
View File
@@ -8,11 +8,13 @@ import { LoginData } from "../../chat18x/data/LoginData";
import { PlayerData } from "../../chat18x/data/PlayerData";
import { AccountData } from "../../chat18x/data/AccountData";
import { WalletData } from "../../chat18x/data/WalletData";
import { GlobalData } from "../../chat18x/data/GlobalData";
import { EnvData } from "../../chat18x/data/EnvData";
import DeviceIdService from "db://assets/Scripts/chat18x/foundation/identity/DeviceIdService";
import MachineInfoService from "db://assets/Scripts/chat18x/foundation/identity/MachineInfoService";
import { AuthService } from "db://assets/Scripts/chat18x/network/services/AuthService";
import { PlayerDataService } from "db://assets/Scripts/chat18x/network/services/PlayerDataService";
import { CommonService } from "db://assets/Scripts/chat18x/network/services/CommonService";
import proto from "db://assets/Scripts/proto/proto.pb.js";
const { ccclass, property } = _decorator;
@@ -66,9 +68,11 @@ export class LoginUI extends li_BaseView {
this.loginFinish = true;
this.reqMyInfo();
this.reqGlobalData();
}
}
// 请求个人数据
private async reqMyInfo() {
const reqData = {};
let res = await PlayerDataService.I.reqMyInfo(reqData);
@@ -81,6 +85,19 @@ export class LoginUI extends li_BaseView {
}
}
// 请求全局数据
private async reqGlobalData() {
const reqData = {
resName: "TbGlobalConfig",
};
let res = await CommonService.I.reqResConfig(reqData);
if (res && res.code === proto.cs.EnmRetCode.SUCCESS) {
// 保存数据
const globalData = DataManager.I.getDataById<GlobalData>(DataId.Global);
globalData.globals = res.data;
}
}
private enterGame() {
ResManager.I.goMainScene();
}
@@ -39,7 +39,7 @@ export class GlobalConfig extends BaseConfig {
return oneData.emotionApiKey;
}
/** 获取情绪判断机器人api */
/** 获取ai模型 */
public getModel(): string | null {
let oneData = this.getAllConfig();
if (!oneData) return null;
+136 -5
View File
@@ -5,24 +5,155 @@ import { BaseData } from "./BaseData";
import proto from 'db://assets/Scripts/proto/proto.pb.js';
export class GlobalData extends BaseData {
// api键
private _apiKey: string = "";
// 情绪判断机器人api
private _emotionApiKey: string = "";
// ai模型
private _model: string = "";
// Temperature
private _temperature: number = 0;
// 单次聊天最大token
private _maxTokens: number = 0;
// 超时时间(微秒)
private _timeout: number = 0;
// 单个角色免费聊天次数
private _freeChatTimes: number = 0;
// 单次对话增长好感度
private _onceChatAddScore: number = 0;
// 好感度等级兑换比例
private _scoreExchangeStarLevel: number = 0;
// 游戏名
private _gameName: string = "";
// 情绪评分机器人system_prompt,需拼接角色prompt
private _emotionRating: string = "";
// ai机器人基础规则
private _girlBasePrompt: string = "";
public reset(): void {
this._apiKey = "";
this._emotionApiKey = "";
this._model = "";
this._temperature = 0;
this._maxTokens = 0;
this._timeout = 0;
this._freeChatTimes = 0;
this._onceChatAddScore = 0;
this._scoreExchangeStarLevel = 0;
this._gameName = "";
this._emotionRating = "";
this._girlBasePrompt = "";
}
public clear(): void {
this._apiKey = "";
this._emotionApiKey = "";
this._model = "";
this._temperature = 0;
this._maxTokens = 0;
this._timeout = 0;
this._freeChatTimes = 0;
this._onceChatAddScore = 0;
this._scoreExchangeStarLevel = 0;
this._gameName = "";
this._emotionRating = "";
this._girlBasePrompt = "";
}
public destroy(): void {
super.destroy();
this._apiKey = null;
this._emotionApiKey = null;
this._model = null;
this._temperature = null;
this._maxTokens = null;
this._timeout = null;
this._freeChatTimes = null;
this._onceChatAddScore = null;
this._scoreExchangeStarLevel = null;
this._gameName = null;
this._emotionRating = null;
this._girlBasePrompt = null;
}
/** 设置全局数据 */
public set globals(res: proto.cs.ICSGetResConfigRes) {
public set globals(data: proto.cs.ICSGetResConfigRes) {
const parsed = JSON.parse(data.data);
if (Array.isArray(parsed) && parsed.length > 0) {
const obj = parsed[0];
this._apiKey = obj.ApiKey;
this._emotionApiKey = obj.emotionApiKey;
this._model = obj.Model;
this._temperature = obj.Temperature;
this._maxTokens = obj.MaxTokens;
this._timeout = obj.Timeout;
this._freeChatTimes = obj.FreeChatTimes;
this._onceChatAddScore = obj.OnceChatAddScore;
this._scoreExchangeStarLevel = obj.ScoreExchangeStarLevel;
this._gameName = obj.GameName;
this._emotionRating = obj.EmotionRating;
this._girlBasePrompt = obj.girlBasePrompt;
console.log("设置全局数据: ", this._gameName);
}
}
/** 获取api键 */
public getApiKey(): string {
return this._apiKey;
}
console.log("设置全局数据:");
/** 获取情绪判断机器人api */
public getEmotionApiKey(): string {
return this._emotionApiKey;
}
/** 获取ai模型 */
public getModel(): string {
return this._model;
}
/** Temperature */
public getTemperature(): number {
return this._temperature;
}
/** 单次聊天最大token */
public getMaxTokens(): number {
return this._maxTokens;
}
/** 超时时间(微秒) */
public getTimeout(): number {
return this._timeout;
}
/** 单个角色免费聊天次数 */
public getFreeChatTimes(): number {
return this._freeChatTimes;
}
/** 单次对话增长好感度 */
public getOnceChatAddScore(): number {
return this._onceChatAddScore;
}
/** 好感度等级兑换比例 */
public getScoreExchangeStarLevel(): number {
return this._scoreExchangeStarLevel;
}
/** 游戏名 */
public getGameName(): string {
return this._gameName;
}
/** 情绪评分机器人system_prompt,需拼接角色prompt */
public getEmotionRating(): string {
return this._emotionRating;
}
/** ai机器人基础规则 */
public getGirlBasePrompt(): string {
return this._girlBasePrompt;
}
}
@@ -5,7 +5,7 @@ import { HttpCommonService } from "./HttpCommonService";
import { MockCommonService } from "./MockCommonService";
// 模拟开关
const USE_MOCK = true;
const USE_MOCK = false;
export class CommonService implements ICommonService {
private static _I: CommonService | null = null;
@@ -25,7 +25,6 @@ import { ThemeData } from "../../data/ThemeData";
import { GirlData } from "../../data/GirlData";
import { WalletData } from "../../data/WalletData";
import { AccountData } from "../../data/AccountData";
import { ShopData } from "../../data/ShopData";
import proto from "db://assets/Scripts/proto/proto.pb.js";
import GameRootUI from "../../../Main/Common/GameRootUI";