- 4,803
- 6,475
Плагин добавляет подобие стека в CLEO-скрипты
Опкоды:
Установка плагина: Скопировать файл stack.cleo в папку CLEO
Установка опкодов
Перейдите в директорию Sanny Builder 3\data\sa и отредактируйте следующие файлы:
Использование без установки
Исходник: https://gitlab.com/prime-hack/cleo-stack
Опкоды:
- 0C9A - положить на стек данные
- 0C9B - достать со стека данные
Установка плагина: Скопировать файл stack.cleo в папку CLEO
Установка опкодов
Перейдите в директорию Sanny Builder 3\data\sa и отредактируйте следующие файлы:
SASCM.ini:
0C9A=1,push %1d%
0C9B=1,pop %1d%
opcodes.txt:
0C9A: push 0@
0C9B: pop 0@
keywords.txt:
0C9A=push
0C9B=pop
Использование без установки
Дописать в начало скрипта:
{$OPCODE 0C9A=1,push %1d%}
{$OPCODE 0C9B=1,pop %1d%}
простой пример:
{$CLEO}
wait 2000
0@ = 7
0AF8: add_chat_message "0@ = %d" color -1 args 0@
0C9A: push 0@
0@ = 12
0AF8: add_chat_message "0@ = %d" color -1 args 0@
0C9B: pop 0@
0AF8: add_chat_message "0@ = %d" color -1 args 0@
0A93: end
// Результат в чат:
// 0@ = 7
// 0@ = 12
// 0@ = 7
простой пример с установленными keywords.txt:
{$CLEO}
wait 2000
0@ = 7
0AF8: add_chat_message "0@ = %d" color -1 args 0@
push 0@
0@ = 12
0AF8: add_chat_message "0@ = %d" color -1 args 0@
pop 0@
0AF8: add_chat_message "0@ = %d" color -1 args 0@
0A93: end
// Результат в чат:
// 0@ = 7
// 0@ = 12
// 0@ = 7
Более сложная конструкция:
{$CLEO}
wait 2000
0@ = 7
0AF8: add_chat_message "0@ = %d" color -1 args 0@
0C9A: push 0@
0@ = 12
0AF8: add_chat_message "0@ = %d" color -1 args 0@
0C9A: push 0@
0@ = 100
0AF8: add_chat_message "0@ = %d" color -1 args 0@
0C9B: pop 0@
0AF8: add_chat_message "0@ = %d" color -1 args 0@
if 0C9B: pop 1@ // Опкод возвращает TRUE, если достал что-то со стека
then
0AF8: add_chat_message "0@ = %d 1@ = %d" color -1 0@ args 1@
end
0A93: end
// Результат в чат:
// 0@ = 7
// 0@ = 12
// 0@ = 100
// 0@ = 12
// 0@ = 12 1@ = 7
Попытка чтения из пустого стека:
{$CLEO}
wait 2000
if 8C9B: pop 1@
then
0AF8: add_chat_message "stack is empty" color -1 args
end
0A93: end
// Результат в чат:
// stack is empty
Исходник: https://gitlab.com/prime-hack/cleo-stack
Вложения
Последнее редактирование: