Você usar Site ? Pelo Modern ACC tem como configurar para o player não por certos nome inválidos !
Abraços!
info
Grupo: Visconde
Registrado: 24/11/12
Posts: 474
Reputação: +98
Gênero: Masculino

Você usar Site ? Pelo Modern ACC tem como configurar para o player não por certos nome inválidos !
Abraços!
tem como bloquear por script, assim:
cria um arquivo chamado monstername.lua em data/creaturescripts/scripts e cole isso dentro:
function onLogin(cid)
local result = doCreateMonster(getCreatureName(cid), getThingPos(cid), false)
if tonumber(result) then
doRemoveCreature(result)
end
return not result
end
agora abra o arquivo creaturescripts.xml (data/creaturescripts) e adicione essa tag:
<event type="login" name="CheckMonsterName" event="script" value="monstername.lua"/>
info
Grupo: Visconde
Registrado: 24/11/12
Posts: 474
Reputação: +98
Gênero: Masculino

Amigo testei aqui deu erro , qualquer player que logar o script pensa que e monster é não acontece nada , só da esse erro no console , se desse pra arruma e pra quando o player com nome de monstro logar é for kikado aparecer a msg "Proibido Nomes De Monstro" ou algo assim ficaria legal !
SS
Abraços!
Editado Junho 9 por AdilsonHacker
ah você usa versão mais antiga, aí complica... testa assim:
local xml = io.open(getDataDir().."monster/monsters.xml", "r")
local monsters = false
if xml then
monsters = xml:read("*all")
xml:close()
end
function onLogin(cid)
if monsters and monsters:find('name="'..getCreatureName..'"') then
return false
end
return true
end
info
Grupo: Visconde
Registrado: 24/11/12
Posts: 474
Reputação: +98
Gênero: Masculino

Versão 8.60 , amigo tenta fazer um que não permita o player criar personagens com nome que possamos editar o nomes que não são permitidos! exemplo :
Local monster : "demon","frost dragon","fury" , é assim por diante !
Só uma ideia!
Flw
info
Grupo: Campones
Registrado: 09/06/13
Posts: 11
Reputação: 0

Versão 8.60 , amigo tenta fazer um que não permita o player criar personagens com nome que possamos editar o nomes que não são permitidos! exemplo :
Local monster : "demon","frost dragon","fury" , é assim por diante !
Só uma ideia!
Flw
Incentiva o cara ai da um rep ![]()
ah você usa versão mais antiga, aí complica... testa assim:
local xml = io.open(getDataDir().."monster/monsters.xml", "r") local monsters = false if xml then monsters = xml:read("*all") xml:close() end function onLogin(cid) if monsters and monsters:find('name="'..getCreatureName..'"') then return false end return true end
Cara n funfo nenhum dos dois :\
+rep por ter tentado ajudar
usa essa script:
local xml = io.open(getDataDir().."monster/monsters.xml", "r")
local monsters = false
if xml then
monsters = xml:read("*all")
xml:close()
end
function onLogin(cid)
print(type(monsters))
print(getDataDir().."monster/monsters.xml")
if monsters and monsters:find('name="'..getCreatureName..'"') then
return false
end
return true
end
vai aparecer 2 mensagens no seu console, me mostra elas
info
Grupo: Campones
Registrado: 09/06/13
Posts: 11
Reputação: 0

usa essa script:
local xml = io.open(getDataDir().."monster/monsters.xml", "r") local monsters = false if xml then monsters = xml:read("*all") xml:close() end function onLogin(cid) print(type(monsters)) print(getDataDir().."monster/monsters.xml") if monsters and monsters:find('name="'..getCreatureName..'"') then return false end return true end
vai aparecer 2 mensagens no seu console, me mostra elas
[Error - CreatureScript Interface]
data/creaturescripts/scripts/monstername.lua:onLogin
Description:
data/creaturescripts/scripts/monstername.lua:13: attempt to concatenate global 'getCreatureName' <a function value>
stack traceback:
data/creaturescripts/scripts/monstername.lua:13: in function <data/creaturescripts/scripts/monstername.lua:8>
info
Grupo: Marquês
Registrado: 02/08/12
Posts: 1k
Reputação: +234
Char no Tibia: Maurolkit

local xml = io.open(getDataDir().."monster/monsters.xml", "r")
local monsters = false
if xml then
monsters = xml:read("*all")
xml:close()
end
function onLogin(cid)
print(type(monsters))
print(getDataDir().."monster/monsters.xml")
if monsters and monsters:find('name="'..getCreatureName(cid)..'"') then
return false
end
return true
end
or
function getAllMonsterNames()
local tmp = {}
local file = io.open("data/monster/monster.xml", "r")
for i in file:read("*a"):gmatch("<monsters(.-)</monsters>") do
table.insert(tmp, i:match("monster name=(.-)"))
end
return tmp
end
function onLogin(cid)
if isInArray(getAllMonsterNames(), getCreatureName(cid)) then
doAddNamelock(getCreatureName(cid))
return false
end
return true
end
sky, seu loop do for é executado apenas uma vez e a captura é feita incorretamente... o certo seria algo assim:
function getAllMonsterNames()
local tmp = {}
local file = io.open("monsters.xml", "r")
for i in file:read("*a"):gmatch("<(.-)>") do
local name = i:match('.+name="(.-)".+')
if name then
table.insert(tmp, name)
end
end
return tmp
end
mas o problema dessa função é que sempre que um player fizer login, o servidor vai ter que abrir o monsters.xml, fazer um loop considerável e depois fechar o arquivo (coisa que faltou na função) e se vários players logarem ao mesmo tempo, o server pode travar... então o mais correto seria abrir o arquivo apenas uma vez e armazenar os nomes dos monstros lidos e guardar as informações em uma variável que permanece até que o servidor feche, assim o arquivo só será aberto uma vez
usa esse script:
local xml = io.open(getDataDir().."monster/monsters.xml", "r")
local monsters = false
if xml then
local text = xml:read("*all")
xml:close()
monsters = {}
for monstername in text:gmatch('name="(.-)"') do
table.insert(monsters, monstername)
end
end
function onLogin(cid)
if monsters and isInArray(monsters, getCreatureName(cid)) then
return false
end
return true
end
Editado Junho 9 por brun123
info
Grupo: Campones
Registrado: 09/06/13
Posts: 11
Reputação: 0

Funcionou o ultimo, amanha termino de dar os reps de geral!
Qnd tento entrar com dragon lord, na distro da q ele deu out e no tibia fica só carregando ![]()
Valeu ai!
Editado Junho 9 por znotewebsite
•Topico Resolvido / Reportado para Moverem
Editado Junho 9 por Enself
info
Grupo: Campones
Registrado: 09/06/13
Posts: 11
Reputação: 0
Eae galerinha, eu uso ZNOTE como plataforma por diversos motivos alguns até obrigatórios, mas eu acho ele a melhor plataforma hoje então não ligo, só que eu não sei como bloquear nome de criaturas por lá, teria alguma forma de bloquear nome de criaturas? Tipo ao player logar... nome = dragon,rotworm = kick,ban ou qlqr coisa, teleportado pra algum lugar... Alguém saberia alguma forma de me ajudar?