Ir para conteúdo

New System Register Event


caotic

Posts Recomendados

Todo mundo já sabe que quando queremos "colocar" algum script em creaturescripts alguns precisam ser registrado.

 

O registro e para que o evento inicie quando o player logar.

Mais muitas vezes o cadastramento consome linhas e tempo.

 

Pensando nisso desenvolvi um código para que o próprio usuário registre o evento na tag

 

Vamos a instalação.

 

Crie um arquivo lua chamado de register em lib e coloque este código:

 

 

function getEventRegisterName()
local x = {}
local events = io.open("data/creaturescripts/creaturescripts.xml", "r")
for i in events:read("*a"):gmatch('name="(.-)"') do
table.insert(x, i)
end
return x or nil
end

function getEventRegisterTrueByName(name)
local x = {}
local events = io.open("data/creaturescripts/creaturescripts.xml", "r")
for i in events:read("*a"):gmatch('name="'..tostring(name)..'" register = "(.-)"') do
table.insert(x, tonumber(i))
end
return x[1] or nil
end

function registerEvents(cid)
for y = 1, #getEventRegisterName() do
local x = getEventRegisterName()[y]
if getEventRegisterTrueByName(x) == 1 then
registerCreatureEvent(cid, x)
end
end
end

 

Agora vá em creaturescripts em login.lua antes do ultimo return true

Exclua todos os registro de evento:

Eles são estarão assim:

registerCreatureEvent(cid, "event")

 

Depois no mesmo lugar coloque isto:

 

registerEvents(cid)

 

Agora em TODAS AS SUAS TAGS isto entre name e event.

 

register = "1"

 

(Sendo que 1 e ativado e 0 Desativado)

 

Ela ficara assim:

 

<event type="joinchannel" name="mens" register = "1" event="script" value="mensagens.lua"/>

 

Pronto sistema instalado

 

Para usar e simples.

E so colocar na tag

E colocar a 1(verdadeiro ativado) ou o(false desativado)

Editado por caotic
Link para o comentário
Compartilhar em outros sites

Todo mundo já sabe que quando queremos "colocar" algum script em creaturescripts alguns precisam ser registrado.

 

O registro e para que o evento inicie quando o player logar.

Mais muitas vezes o cadastramento consome linhas e tempo.

 

Pensando nisso desenvolvi um código para que o próprio usuário registre o evento na tag

 

Vamos a instalação.

 

Crie um arquivo lua chamado de register em lib e coloque este código:

 

 

function getEventRegisterName()
local x = {}
local events = io.open("data/creaturescripts/creaturescripts.xml", "r")
for i in events:read("*a"):gmatch('name="(.-)"') do
table.insert(x, i)
end
return x or nil
end

function getEventRegisterTrueByName(name)
local x = {}
local events = io.open("data/creaturescripts/creaturescripts.xml", "r")
for i in events:read("*a"):gmatch('name="'..tostring(name)..'" register = "(.-)"') do
table.insert(x, tonumber(i))
end
return x[1] or nil
end

function registerEvents(cid)
for y = 1, #getEventRegisterName() do
local x = getEventRegisterName()[y]
if getEventTrueRegisterByName(x) == 1 then
registerCreatureEvent(cid, x)
end
end
end

 

Agora vá em creaturescripts em login.lua antes do ultimo return true

Exclua todos os registro de evento:

Eles são estarão assim:

registerCreatureEvent(cid, "event")

 

Depois no mesmo lugar coloque isto:

 

registerEvents(cid)

 

Agora em TODAS AS SUAS TAGS isto entre name e event.

 

register = "1"

 

(Sendo que 1 e ativado e 0 Desativado)

 

Ela ficara assim:

 

<event type="joinchannel" name="mens" register = "1" event="script" value="mensagens.lua"/>

 

Pronto sistema instalado

 

Para usar e simples.

E so colocar na tag

E colocar a 1(verdadeiro ativado) ou o(false desativado)

 

Caramba, maneira sua função, gostei.

 

REP+.

Link para o comentário
Compartilhar em outros sites

ui boas funçoes ms.. tenhu q aprender a usar esse gmatch kk REP+

 

Gmatch da para fazer muita coisa.

Isto e só um pouco dela.

 

E não precisa ser necessariamente usada para arquivos remotos.

Link para o comentário
Compartilhar em outros sites

Finalmente posso te parabenizar, você realmente fez algo útil dessa vez e soube usar bem as funções Lua, caotic. Tá progredindo hein, rapaz.

 

Já planeje uma nova versão que leia o campo register, e pegue dois valores, player e monster, caso o valor seja monster, corra por todos os arquivos XML dos monstros e registre o creaturescript nele desse jeito:

 

<script>
  <event name=""/>
</script>

 

Parabéns mesmo.

Link para o comentário
Compartilhar em outros sites

Finalmente posso te parabenizar, você realmente fez algo útil dessa vez e soube usar bem as funções Lua, caotic. Tá progredindo hein, rapaz.

 

Já planeje uma nova versão que leia o campo register, e pegue dois valores, player e monster, caso o valor seja monster, corra por todos os arquivos XML dos monstros e registre o creaturescript nele desse jeito:

 

<script>
  <event name=""/>
</script>

 

Parabéns mesmo.

 

Sim sim.

Estou dando uma revisada no sistema.

Pensando bem cara poderia ser usado "onSpawn".

Estava conversando com o iunux e a melhor maneira para registrar um monstro especifico.

 

Mais sera melhorado

Editado por caotic
Link para o comentário
Compartilhar em outros sites

Finalmente posso te parabenizar, você realmente fez algo útil dessa vez e soube usar bem as funções Lua, caotic. Tá progredindo hein, rapaz.

 

Já planeje uma nova versão que leia o campo register, e pegue dois valores, player e monster, caso o valor seja monster, corra por todos os arquivos XML dos monstros e registre o creaturescript nele desse jeito:

 

<script>
  <event name=""/>
</script>

 

Parabéns mesmo.

 

 

sem mais, ótimo trabalho caotic.

Link para o comentário
Compartilhar em outros sites

  • 1 month later...
  • 2 years later...
×
×
  • Criar Novo...