[BONFIRE] LUA SCRIPT





LUA SCRIPT

                Os scripts e proceses Lua são similares àqueles das macros e dialógicas, onde uma série de operações e verificações são feitas para permitir que os jogadores modifiquem o jogo essencialmente adicionando novas mecânicas de jogo. O recurso é colocado dentro de macros clássicas e árvores de diálogo na forma de duas ações de diálogo principais:

OrcLuaScript

Esta ação irá injetar um script de lua em seu orc. Normalmente, a injeção apenas inicializa o script e o mantém na memória, para que nenhuma injeção adicional seja necessária. Um bom uso dessa ação seria colocá-lo no início de sua macro e ter seu código aninhado em funções úteis que chamaremos posteriormente usando uma ação diferente. Outras execuções da mesma ação na mesma linha de macro não reinicializarão o código quando uma instância do mesmo script de lua com o mesmo nome de ID já existir, portanto, você pode percorrer com segurança sua macro como de costume sem precisar reinterpretar o script da sua ação. Aqui está um exemplo de um script de lua a ser injetado:

function start ()

    if orc.game.sceneis ('Outback1') then

        -- give him the pipe from the start

        orc.game.consolecommand ('asset bopipe')

        if orc.game.consoleasset == nil then

            orc.consolecommand ('batch target @self;asset World/Items/Pipe1;assetnameset bopipe;hrattachca;assetpos -0.0289,0.0571,-0.0238,-21.348,-118.294,217.56,true;assetscalereset')

        else

            orc.consolecommand ('batch target @self;hrattachca;assetpos -0.0289,0.0571,-0.0238,-21.348,-118.294,217.56,true;assetscalereset')

        end

        orc.consolecommand ('forceanim Idle SmokePipe1')

    end

end


Este código injeta apenas uma função chamada start, que faz uma série de ajustes de configuração para o personagem Bo, para que ele segure seu cachimbo. Lembre-se que este código não está sendo executado após a injeção; somente mais tarde chamaremos isso e qualquer outra função que o seu script contenha. Por favor, note que agora não é possível incluir parâmetros de função entre parênteses.

OrcLuaScriptFunction
Esta ação permitirá que você execute qualquer uma das funções contidas em um script de lua que foi previamente injetado usando a ação OrcLuaScript. Ele solicitará o nome do ID do script que foi injetado e o nome da função que você deseja executar (por exemplo, a função inicial acima). Nota: as funções precisam apenas do nome fornecido, sem os parênteses finais.


Lua commands
Seu script pode usar os seguintes comandos e variáveis ​​para construir comportamentos e mecânicas. Os comandos são sempre precedidos pelo "orc". variável, que representa o orc real carregando a instância de script. Abaixo está uma lista de comandos que podem ser usados ​​em seus scripts:

Função
Usado em:
Descrição
consolecommand
consolecommand(command)
Vai executar um comando de console clássico. Certifique-se de usar aspas, de preferência único. Exemplo:

consolecommand('barafylite @playername,1,60,0')
ifitemflag
ifitemflag(name,data)
Verifica se o orc tem o sinalizador especificado do nome e dos dados fornecidos. Ambos os parâmetros são strings.
setitemflag
setitemflag(flagname, flagdata)
Define ou altera um sinalizador de determinado flagname com determinados flagdata


orcobjset
orcobjset(name)
Vai definir o alvo "objetivo" deste orc para o orc especificado como nome. A variável pode ser um nome orc direto ou qualquer um dos argumentos usados ​​pelo console, como "@target", "@playername", etc. Uma vez definido, o objetivo pode ser manipulado usando qualquer um dos comandos lua usando o comando variável orc.orcobjective em vez de orc. como um prefixo. (Certifique-se de fazer verificações nulas nessa variável antes de usar)


fapstart
fapstart()
Begins fap
fapstop
fapstop()
Stops fap
sexanal1
sexanal2
sexanal1() or
sexanal2()
Engages into anal with objective
endsex
endsex()
Ends sex




Lua variáveis

Eles podem ser usados ​​para verificar condicionais "if" ou definir parâmetros diretamente.



Variable name
Type
Description
istheplayer
bool
Retorna verdadeiro se a instância for o jogador.


canseeorcobjective
bool
Retorna verdadeiro se o objetivo puder ser visto.


canseeinterest
bool
"Interesse" é como uma versão mais leve de "objetivo", sendo o personagem que nossa instância está olhando, mas não necessariamente segmentando. Isso retorna true se eles ainda estiverem visíveis para nossa instância.


distancetoobjective
float
Retorna a distância para o objetivo.


busywalking
bool
Retorna verdadeiro se a instância estiver ocupada caminhando até um destino


onatask
bool
Retorna true se a instância estiver ocupada executando alguma tarefa como lançar uma mágica ou sexagem.


isairborne
bool
Retorna verdadeiro se a instância estiver flutuando no ar


istalking
bool
... true se a instância estiver em um diálogo.


corruption
float
Retorna o nível de corrupção da instância. Vai de 0,0 a 3,0, 1,0 sendo o limite antes de se transformar em um gênio.


immutable
bool
... true se essa instância for um fantasma ou um caractere especial que não pode ser alterado por feitiços de transformação nem corrupção.


isgeniefragment
bool
... true se esta instância for um fragmento de gênio NPC (diferente de um gênio amaldiçoado)


isghost
bool
... verdade se esta instância for um fantasma.


isbusy
bool
... true se esta instância estiver ocupada.


issexing
bool
... verdade se a instância é sexagem.


isfapping
bool
... true se a instância estiver fracassando


arousal
float
Retorna o nível de excitação que esta instância tem no momento. Vai de 0,0 a 1,0


cumming
bool
... verdade se, durante uma cena de sexo, a instância é orgasmo


afterglowing
bool
... verdade, se a instância estiver em pós-brilho logo após o orgasmo durante uma cena de sexo.


perfectglowing
bool
... verdade depois que a instância conseguiu um orgasmo sincronizado perfeito durante uma cena de sexo.


orcname
string
O nome do personagem.


More to come later!