[fix] script loading

This commit is contained in:
kwaroran
2023-07-16 01:37:53 +09:00
parent a14e8655ae
commit 8a4aaadfd6

View File

@@ -130,30 +130,37 @@ export function processScriptFull(char:character|groupChat, data:string, mode:Sc
} }
} }
else{ else{
let mOut = outScript.replace(dreg, "$&")
if(chatID !== -1){ function skr(da:string){
const selchar = db.characters[get(selectedCharID)] return da.replace(/{{(.+?)}}/g, (v, p1:string) => {
const chat = selchar.chats[selchar.chatPage]
mOut = mOut.replace(/{{(.+?)}}/g, (v, p1:string) => {
if(p1 === 'previous_char_chat'){ if(p1 === 'previous_char_chat'){
let pointer = chatID - 1 if(chatID !== -1){
while(pointer >= 0){ const selchar = db.characters[get(selectedCharID)]
if(chat.message[pointer].role === 'char'){ const chat = selchar.chats[selchar.chatPage]
return chat.message[pointer].data let pointer = chatID - 1
while(pointer >= 0){
if(chat.message[pointer].role === 'char'){
return chat.message[pointer].data
}
pointer--
} }
pointer-- return selchar.firstMsgIndex === -1 ? selchar.firstMessage : selchar.alternateGreetings[selchar.firstMsgIndex]
} }
return selchar.firstMsgIndex === -1 ? selchar.firstMessage : selchar.alternateGreetings[selchar.firstMsgIndex] return
} }
if(p1 === 'previous_user_chat'){ if(p1 === 'previous_user_chat'){
let pointer = chatID - 1 if(chatID !== -1){
while(pointer >= 0){ const selchar = db.characters[get(selectedCharID)]
if(chat.message[pointer].role === 'user'){ const chat = selchar.chats[selchar.chatPage]
return chat.message[pointer].data let pointer = chatID - 1
while(pointer >= 0){
if(chat.message[pointer].role === 'user'){
return chat.message[pointer].data
}
pointer--
} }
pointer-- return selchar.firstMsgIndex === -1 ? selchar.firstMessage : selchar.alternateGreetings[selchar.firstMsgIndex]
} }
return selchar.firstMsgIndex === -1 ? selchar.firstMessage : selchar.alternateGreetings[selchar.firstMsgIndex]
} }
if(p1.startsWith('calc')){ if(p1.startsWith('calc')){
const v = p1.split("::")[1] const v = p1.split("::")[1]
@@ -162,11 +169,12 @@ export function processScriptFull(char:character|groupChat, data:string, mode:Sc
return v return v
}) })
} }
let mOut = skr(outScript.replace(dreg, "$&"))
if(randomness.test(data)){ if(randomness.test(data)){
const list = data.split('|||') const list = data.split('|||')
data = list[Math.floor(Math.random()*list.length)]; data = list[Math.floor(Math.random()*list.length)];
} }
data = data.replace(reg, mOut) data = skr(data.replace(reg, mOut))
} }
} }
} }