Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Checkout the repo examples to get an idea of other ways you can use scripting
- // https://github.com/AIDungeon/Scripting/blob/master/examples
- members = ['Frodo', 'Sam', 'Merry', 'Pippin', 'Gandalf', 'Aragorn', 'Legolas', 'Gimli', 'Boromir']
- const modifier = (text) => {
- splitText = text.split('[/]')
- inputText = splitText[0]
- memText = memory
- if (splitText.length > 1) {
- inputArray = splitText[1].split(',')
- numToGen = parseInt(inputArray[0])
- selectionArray = []
- if (inputArray.length > 1) {
- exclusions = inputArray.slice(1)
- for (i = 0; i < members.length; i++) {
- member = members[i]
- if (!exclusions.includes(member)) {
- selectionArray.push(member)
- }
- }
- } else {
- selectionArray = members.slice()
- }
- state.message = 'Selection:'
- for (i = 0; i < numToGen; i++) {
- memberIndex = Math.floor(Math.random() * selectionArray.length)
- member = selectionArray[memberIndex]
- state.message += ' ' + member + ','
- memberPlaceholder = '[member' + i.toString() + ']'
- while (inputText.includes(memberPlaceholder)) {
- inputText = inputText.replace(memberPlaceholder, member)
- }
- while (memText.includes(memberPlaceholder)) {
- memText = splitMem[1].replace(memberPlaceholder, member)
- }
- selectionArray.splice(memberIndex, 1)
- }
- } else {
- state.message = ''
- }
- splitMem = memText.split('[/]')
- state.memory.context = splitMem[0]
- if (splitMem.length > 1) {
- if (state.message != '') {
- state.message += '\n'
- }
- trimmedText = inputText.trim()
- lastChars = trimmedText.slice(-2)
- if (lastChars.match(/.[.!?]|[.!?]['"]?/i)) {
- state.memory.frontMemory = splitMem[1]
- state.message += 'frontMemory: '
- } else {
- state.memory.context += ' ' + splitMem[1]
- state.message += 'context: '
- }
- state.message += splitMem[1]
- }
- return {text: inputText}
- }
- // Don't modify this part
- modifier(text)
Add Comment
Please, Sign In to add comment