diff --git a/src/ts/process/command.ts b/src/ts/process/command.ts index 26111a13..97ad3cc2 100644 --- a/src/ts/process/command.ts +++ b/src/ts/process/command.ts @@ -1,7 +1,7 @@ import { get } from "svelte/store"; import { DataBase, setDatabase } from "../storage/database"; import { selectedCharID } from "../stores"; -import { alertInput, alertMd, alertSelect, alertToast } from "../alert"; +import { alertInput, alertMd, alertNormal, alertSelect, alertToast } from "../alert"; import { sayTTS } from "./tts"; import { risuChatParser } from "../parser"; import { sendChat } from "."; @@ -22,8 +22,10 @@ export async function processMultiCommand(command:string) { } } splited.push(command.slice(lastIndex)) + console.log(splited) for(let i = 0; iv.data).join(' ') if(condition.type2 === 'strict'){ pass = da.split(' ').includes(val) @@ -162,23 +165,27 @@ export async function runTrigger(char:character,mode:triggerMode, arg:{ for(const effect of trigger.effect){ if(effect.type === 'setvar'){ switch(effect.operator){ - case '=': - varValues[effect.var] = effect.value + case '=':{ + setVar(effect.var, effect.value) break - case '+=': - varValues[effect.var] = (Number(varValues[effect.var]) + Number(effect.value)).toString() + } + case '+=':{ + setVar(effect.var, (Number(getVar(effect.var)) + Number(effect.value)).toString()) break - case '-=': - varValues[effect.var] = (Number(varValues[effect.var]) - Number(effect.value)).toString() + } + case '-=':{ + setVar(effect.var, (Number(getVar(effect.var)) - Number(effect.value)).toString()) break - case '*=': - varValues[effect.var] = (Number(varValues[effect.var]) * Number(effect.value)).toString() + } + case '*=':{ + setVar(effect.var, (Number(getVar(effect.var)) * Number(effect.value)).toString()) break - case '/=': - varValues[effect.var] = (Number(varValues[effect.var]) / Number(effect.value)).toString() + } + case '/=':{ + setVar(effect.var, (Number(getVar(effect.var)) / Number(effect.value)).toString()) break + } } - varValuesChanged = true } else if(effect.type === 'systemprompt'){ additonalSysPrompt[effect.location] += effect.value + "\n\n" @@ -193,6 +200,7 @@ export async function runTrigger(char:character,mode:triggerMode, arg:{ } } } + let caculatedTokens = 0 if(additonalSysPrompt.start){ caculatedTokens += await tokenize(additonalSysPrompt.start) @@ -203,10 +211,9 @@ export async function runTrigger(char:character,mode:triggerMode, arg:{ if(additonalSysPrompt.promptend){ caculatedTokens += await tokenize(additonalSysPrompt.promptend) } - if(varValuesChanged){ - for(const key in varValues){ - chat.scriptstate['$' + key] = varValues[key] - } + if(varChanged){ + const currentChat = get(CurrentChat) + currentChat.scriptstate = chat.scriptstate } return {additonalSysPrompt, chat, tokens:caculatedTokens}