Add setvar null handling
This commit is contained in:
@@ -301,28 +301,34 @@ export async function runTrigger(char:character,mode:triggerMode, arg:{
|
|||||||
case'setvar': {
|
case'setvar': {
|
||||||
const effectValue = risuChatParser(effect.value,{chara:char})
|
const effectValue = risuChatParser(effect.value,{chara:char})
|
||||||
const varKey = risuChatParser(effect.var,{chara:char})
|
const varKey = risuChatParser(effect.var,{chara:char})
|
||||||
|
let originalVar = Number(getVar(varKey))
|
||||||
|
if(Number.isNaN(originalVar)){
|
||||||
|
originalVar = 0
|
||||||
|
}
|
||||||
|
let resultValue = ''
|
||||||
switch(effect.operator){
|
switch(effect.operator){
|
||||||
case '=':{
|
case '=':{
|
||||||
setVar(varKey, effectValue)
|
resultValue = effectValue
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
case '+=':{
|
case '+=':{
|
||||||
setVar(varKey, (Number(getVar(varKey)) + Number(effectValue)).toString())
|
resultValue = (originalVar + Number(effectValue)).toString()
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
case '-=':{
|
case '-=':{
|
||||||
setVar(varKey, (Number(getVar(varKey)) - Number(effectValue)).toString())
|
resultValue = (originalVar - Number(effectValue)).toString()
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
case '*=':{
|
case '*=':{
|
||||||
setVar(varKey, (Number(getVar(varKey)) * Number(effectValue)).toString())
|
resultValue = (originalVar * Number(effectValue)).toString()
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
case '/=':{
|
case '/=':{
|
||||||
setVar(varKey, (Number(getVar(varKey)) / Number(effectValue)).toString())
|
resultValue = (originalVar / Number(effectValue)).toString()
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
setVar(varKey, resultValue)
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
case 'systemprompt':{
|
case 'systemprompt':{
|
||||||
|
|||||||
Reference in New Issue
Block a user