RO
moveevent

checar se tem espaço no inicio ou fim do nick

Por rorix, 19 de ago. de 2016 em Scripts

espaço
nick
8
3.4k
rorixR
19 de agosto de 2016 às 01:45

Galera, baxei um site gesior e eu vejo que os jogadores conseguem criar personagem com espaço no nome, tanto no inicio como no fim, e isso faz com que não seja possível dar exiva nesses players.

Por exemplo, o cara cria o nick: Darkness, e ele coloca espaço no final ou no inicio, com isso ninguém consegue exiva-lo

 

queria colocar um movement (stepin), no templo que checasse se tem espaço no fim ou no inicio do nick, caso tivesse o player tomaria namelock!

 

Então fica minha dúvida:

como faço um script para checar se o jogador tem espaço no inicio ou no fim do seu nick? 

o resto eu consigo criar por conta própria, obrigado!

PoccnnP
19 de agosto de 2016 às 09:05

string.find(txt,"%s")

Luga03L
19 de agosto de 2016 às 09:47
2 horas atrás, Poccnn disse:

string.find(txt,"%s")

Não acho que essa seria a melhor forma, já que pode existe Nicks como "New Bolado" onde ali no meio tem o espaço, ou seja, iria retornar verdadeiro a verificação, que não foi exatamente o que o Carinha pediu.

 

A melhor forma, seria colocar para no Gesior na hora de criar o personagem verificar se tem espaço no início ou no fim do nick.

 

Obs: Tópico movido para área correta!

Editado Agosto 19 por Drazyn

rorixR
19 de agosto de 2016 às 11:46
2 horas atrás, Drazyn disse:

Não acho que essa seria a melhor forma, já que pode existe Nicks como "New Bolado" onde ali no meio tem o espaço, ou seja, iria retornar verdadeiro a verificação, que não foi exatamente o que o Carinha pediu.

 

A melhor forma, seria colocar para no Gesior na hora de criar o personagem verificar se tem espaço no início ou no fim do nick.

 

Obs: Tópico movido para área correta!

 

bom amigo, antes de pedir o script eu tentei vários gesior, troquei o account manager, troquei o gesior todo e não tive sucesso, quando o cara poe o nick com espaço fica em vermelho como se não pudesse criar, mas ao clicar em criar o char é criado normalmente, mesmo estando em 'vermelho'

 

@Poccnn

Poderia me ajudar? comecei a desenvolver o script obtive o resultado:

local name = getCreatureName(cid)
local stringSpaceStart, stringSpaceEnd = string.find(name, "[%s]*")
print("valorFinalNick: ".. stringSpaceStart .."")
print("valorInicioNick: ".. stringSpaceEnd .."")

 

O valorInicioNick checou normal: coloquei 3 espaços no inicio do nick, e printou ("3")

agora o valorFinalNick está errado, ele printa um valor totalmente aleatorio, nao printa quantos espaços tem no final do nick, poderia ajudar?

Editado Agosto 19 por rorix

PoccnnP
19 de agosto de 2016 às 12:34

O que você quer é saber quantos espaços tem no inicio ou no fim da string?

rorixR
19 de agosto de 2016 às 13:23
47 minutos atrás, Poccnn disse:

O que você quer é saber quantos espaços tem no inicio ou no fim da string?

 

sim, no caso quero saber se o nick tem espaço no inicio ou no fim... se achar a função para checar eu mesmo monto o script que quero.

Por exemplo, se eu criar o personagem com 3 espaços no inciio e 2 no fim, quero saber como posso checar esses espaços

PoccnnP
19 de agosto de 2016 às 14:20

Vê se isto resolve teu problema.

Citar

local _,init = string.find(txt, "[%s]*")
 local name = txt:sub(init,-1):match("(.+.-)%s")

 

rorixR
19 de agosto de 2016 às 14:25
1 hora atrás, Poccnn disse:

Vê se isto resolve teu problema.

 

infelizmente não deu, esta funçao esta 'cortando' o nick quando tem espaço,

criei o personagem chamado Test Um, ao usar a função ela encontrou apenas Test, e 'cortou' o resto do nome que esta depois do espaço

bom, ta aqui a funçao que checa espaço no inicio ou fim no nick, para caso alguem queira tbm




local paramTemp, space, oldName = '', '', getCreatureName(cid)
for word in string.gmatch(txt, "%a+") do
paramTemp = "" .. paramTemp .. "" .. space .. "" .. word .. ""
if(space == '') then
space = " "
end
end

 

@Poccnn te dei os reps por ter tentado ajudar! vlw!

resolvido!

Editado Agosto 19 por rorix