Ir para conteúdo
Banner com Efeitos

Featured Replies

Postado

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
  • Administrador

 

Antes de mais nada, você precisa saber que o revscriptsys é compatível apenas com:


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.

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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo