Antes de mais nada, você precisa saber que o revscriptsys é compatível apenas com:
TFS 1.3+.
Canary.
OTX 5, que foi criado usando como base o TFS 1.3 e OTG-Global.
O revscriptsys é uma nova forma de registrar scripts para que você não precise fazer isso via XML (apenas em Lua). Você só precisa colocar seus scripts Lua dentro de "data/scripts/" ou em qualquer subpasta dele, se desejar. Os scripts de monstro são colocados em um caminho diferente: data/monster também sendo possível colocar em qualquer subpasta e organizar como você bem entender.
Este sistema suporta o uso de diferentes metatables no mesmo script (Actions, MoveEvents, GlobalEvents... Etc). Isso é muito útil se você fizer missões prolongadas (por exemplo), não necessitando criar arquivos separados para cada metatable. O script deve conter um cabeçalho e rodapé, confirme mostrado no exemplo a seguir.
-- Este é o nosso cabeçalho, é a primeira coisa que deve ser colocada, com exceção das variáveis de configuração
local testAction = Action()
-- Aqui, nós registramos a action na função onUse, se você esquecer de declarar a variável testAction aqui, o script não funcionará
function testAction.onUse(player, item, fromPosition, target, toPosition, isHotkey)
return print("We used this item: " .. item.itemid ..".)
end
-- Aqui você registra o id do item
testAction:id(2550)
-- Este é o rodapé, deve sempre ser a última função registrada
testAction:register()
-- Movement
local testMovement = MoveEvent()
function testMovement.onStepIn(creature, item, position, fromPosition)
local player = creature:getPlayer()
if not player then
return true
end
print(player:getName(), item:getId(), item:getName())
return true
end
testMovement:id(426)
testMovement:register()
No exemplo acima, temos uma Action e um MoveEvent dentro do mesmo script, lembra da introdução?
O revscriptsys suporta o uso de diferentes metatables no mesmo script.
O "testAction" é uma variável (local), o que significa que você pode mudar ele para qualquer outro nome do seu gosto, por exemplo:
local scythe = Action()
Fazendo isso, você também precisa modificar a variável que fica na linha do function, ficando assim:
function scythe.onUse(player, item, fromPosition, target, toPosition, isHotkey)
Também precisa modificar a variável do "id", ficando assim:
scythe:id(2550)
E a do register, ficando assim:
scythe:register()
Conclusão agora não é necessário mais registrar via xml você tem as tags de registro com base no nome da função no próprio script lua
ilocal scythe = Action() NOME DA FUNÇÂO + Modulo action nesse caso.
function scythe.onUse(player, item, fromPosition, target, toPosition, isHotkey) Função scythe declarada com modulo Action sendo usado na função onUse.
scythe:id(2550) Registro do ITEMID
scythe:register() Registro Do EVENTO
Então repare que agora nos scripts sempre no inicio você vai ter o nome da função que esta sendo declarada junto do modulo e no final os tipos de registros atrelado a função.