Postado Abril 26 Abr 26 Boa noite, espero que estejam bem! É como o titulo diz, preciso de um suporte, um pequeno tutorial ou rapida explicação de como/onde devo incluir os registros ao editar os scritps. (actions, spells, moveevents, creaturescripts, globalevents, talkactions etc... Nos servidores mais antigos com, bastava criar um arquivo .lua do script e registrar no Arquivo .xml que a edição estava inserida e funcionando no otserv. Já no canary notei que é um pocuo diferente. Onde devo inserir os scripts/registros como por ex: spells. Crio uma nova spell no mesmo formato das demais que ja funcionam no servidor porem não funcionam. Procurei algo nos forums e na web e não encontrei algo concreto e que funcionasse sm apresentar bugs. Desde já agradeço.
Postado Abril 26 Abr 26 Administrador 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. Contato :https://www.linkedin.com/in/rafhael-oliveira/Projetos :https://github.com/thetibiaking
Postado Abril 26 Abr 26 Autor Perfeito! Muito obrigado pela explicação! Acredito que pode ser a dúvida de outros tbm.
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.