Big Smoker Posted June 9, 2017 Share Posted June 9, 2017 Spoiler addEventHandler("onClientGUIChanged", VGUI.edit[1],function() text = guiGetText(source) if string.len(text) > 10 then outputChatBox("Foi") guiSetText(source, text:gsub(" ","")) end end) Esse script eu fiz tentando Para o guiCreateEdit quando tive-se chegado a 20 caracterios no text.. so que nao bloqueia o text quando chega a 10 caracterios pode me ajuda? Link to comment
DNL291 Posted June 9, 2017 Share Posted June 9, 2017 (edited) Use: guiEditSetMaxLength Ou dependendo do seu caso, tente isto: addEventHandler("onClientGUIChanged", VGUI.edit[1],function() local t = guiGetText(source) if string.len(t) > 10 then guiSetText( source, t:sub( 1, #t-1 ) ) end end) Lembre-se de postar na seção Portuguesa da próxima vez: https://forum.multitheftauto.com/forum/127-programação-em-lua/ Caso contrário, ninguém vai te entender e você não vai receber nenhuma ajuda. Edited June 9, 2017 by DNL291 Link to comment
Big Smoker Posted June 9, 2017 Author Share Posted June 9, 2017 (edited) Eu nao Sabia qual era o português, mais enfim nesse sistema a minha intenção era.. quando vc digita no "guiCreateEdit" e coloca-se mais de 20 letras ele nao ia mais deixar digitar no "guiCreateEdit" OPS: Aquele 10 é um text que eu fiz Edited June 9, 2017 by felipebaidoloko correção Link to comment
Big Smoker Posted June 10, 2017 Author Share Posted June 10, 2017 Pode me ajuda nesse script ? nao sei o que eu fiz de errado nele era um sistema que kikava o player se tiver menos de 4 palavras no nick.. so que se o cara entrar com numero maior no jogo.. e dentro do jogo ele troca para um menor Tipo com 2 palavras (BK < um exemplo) ele nao é kikado ou s eo cara colocar um codigo de cor no nick dele o sistema nao kika ele e ele fica com nick invisivel Spoiler function removeHexJoin(text, digits) assert(type(text) == "string", "Bad argument 1 @ removeHexJoin [String expected, got " .. tostring(text) .. "]") assert(digits == nil or (type(digits) == "number" and digits > 0), "Bad argument 2 @ removeHexJoin [Number greater than zero expected, got " .. tostring(digits) .. "]") return string.gsub(text, "#" .. (digits and string.rep("%x", digits) or "%x+"), "") end function nickChangeHandler () local PlayerJoin = getPlayerName( source ) local CheckPlayer = removeHexJoin (PlayerJoin, 6) if string.len(CheckPlayer) <= 4 then outputChatBox("[#ff0000"..PlayerJoin.."#ffffff] Seu Nickname é muito curto.",source,255,255,255,true) kickPlayer(source,"Nickname muito curto!") end end addEventHandler("onPlayerJoin", getRootElement(), nickChangeHandler) addEventHandler("onPlayerChangeNick", getRootElement(), nickChangeHandler) eu que fiz ele e ta com esses bug Link to comment
DNL291 Posted June 12, 2017 Share Posted June 12, 2017 (edited) Tente: function nickChangeHandler (oldNick, newNick) local nick = getPlayerName(source) if eventName == "onPlayerJoin" then if string.len( nick:gsub("#%x%x%x%x%x%x","") ) <= 4 then outputChatBox("[#ff0000"..nick.."#ffffff] Seu Nickname é muito curto.",source,255,255,255,true) kickPlayer(source,"Nickname muito curto!") end return end if string.len( newNick:gsub("#%x%x%x%x%x%x","") ) <= 4 then outputChatBox("[#ff0000"..oldNick.."#ffffff] Seu nick deve ter mais que 4 caracteres.",source,255,255,255,true) cancelEvent( true, "nick curto" ) end end addEventHandler("onPlayerJoin", getRootElement(), nickChangeHandler) addEventHandler("onPlayerChangeNick", getRootElement(), nickChangeHandler) Você disse que é menos de 4 caracteres, mas o código está verificando se o nick tem 4 ou menos - se o mínimo for realmente 3 pra baixo, troque <= para <. Sobre a expulsão do jogador, eu não te aconselho fazer isso. Se você quer que entre mais jogadores, porque você expulsa do servidor o jogador só porque ele tem poucas letras no nick? Claro, a ideia é ele trocar o nick manualmente e reentrar, mas nem todos certamente farão. Só mais um aviso, use esta ferramenta e selecione a linguagem Lua quando postar algum código Lua: Edited June 12, 2017 by DNL291 Link to comment
Big Smoker Posted June 14, 2017 Author Share Posted June 14, 2017 certo muito obrigado eu tinha feito outro sistema parecido que funciono, mais vou testar esse ai deve ser melhor Obrigado Link to comment
Other Languages Moderators Lord Henry Posted June 14, 2017 Other Languages Moderators Share Posted June 14, 2017 On 2017-6-12 at 00:30, DNL291 said: Sobre a expulsão do jogador, eu não te aconselho fazer isso. Se você quer que entre mais jogadores, porque você expulsa do servidor o jogador só porque ele tem poucas letras no nick? Claro, a ideia é ele trocar o nick manualmente e reentrar, mas nem todos certamente farão. Perdão em me meter no tópico, mas fiquei curioso em relação a forma de punição. O que é aconselhável fazer nesse caso para fazer o jogador mudar o nick sem kická-lo? Será que um texto atrapalhando na tela serve? Tipo uma marca d'agua que só desaparece quando o jogador possuir um nick válido. Link to comment
Big Smoker Posted June 14, 2017 Author Share Posted June 14, 2017 eu coloquei uma mensagem de texto, ate o jogador muda o nick, pois muitos fazem isso para sacanear no servidor, então quem quer realmente jogar vai alterar... pq se tem um nick menor que 4 letras ou ate mesmo com cor no nick é pq quer apronta algo, cansei de banir jogador pq colocava qualquer nick sem texto pra zoar dentro dele. então fiz esse sistema de poder kikar ele Link to comment
DNL291 Posted June 15, 2017 Share Posted June 15, 2017 12 hours ago, Lord Henry said: Perdão em me meter no tópico, mas fiquei curioso em relação a forma de punição. O que é aconselhável fazer nesse caso para fazer o jogador mudar o nick sem kická-lo? Será que um texto atrapalhando na tela serve? Tipo uma marca d'agua que só desaparece quando o jogador possuir um nick válido. Eu faria um painel pequeno, apenas para ele trocar o nick e usar um válido. Também poderia usar um sistema que gera um nick aleatório assim como o do MTA quando instala - seria perca de tempo com coisa pequena, na minha opinião, o primeiro método dá pra criar rápido e sem dificuldade. Link to comment
Other Languages Moderators Lord Henry Posted June 15, 2017 Other Languages Moderators Share Posted June 15, 2017 (edited) 3 hours ago, DNL291 said: Eu faria um painel pequeno, apenas para ele trocar o nick e usar um válido. Também poderia usar um sistema que gera um nick aleatório assim como o do MTA quando instala - seria perca de tempo com coisa pequena, na minha opinião, o primeiro método dá pra criar rápido e sem dificuldade. Sim, mas e nos casos em que o jogador insiste em ficar com o nick "ilegal"? Alguma forma de insistir que ele mude o nick? Por isso que pensei na marca d'água, pois é algo que incomoda o jogador solicitando que ele corrija o nick e ao mesmo tempo não é uma punição. 14 hours ago, felipebaidoloko said: eu coloquei uma mensagem de texto, ate o jogador muda o nick, pois muitos fazem isso para sacanear no servidor, então quem quer realmente jogar vai alterar... pq se tem um nick menor que 4 letras ou ate mesmo com cor no nick é pq quer apronta algo, cansei de banir jogador pq colocava qualquer nick sem texto pra zoar dentro dele. então fiz esse sistema de poder kikar ele Então...no servidor que eu sou Staff não posso fazer isso, pois alguns caras sem nick são Staffs investigativos. Dai kickar os caras vai ser ruim pois não se sabe se o objetivo do jogador é realmente zoar ou apenas não ser visto. Edited June 15, 2017 by Lord Henry Link to comment
Big Smoker Posted June 15, 2017 Author Share Posted June 15, 2017 Bom o que voces me indica fazer então? bloquear a troca de nick? Link to comment
Other Languages Moderators Lord Henry Posted June 15, 2017 Other Languages Moderators Share Posted June 15, 2017 4 hours ago, felipebaidoloko said: Bom o que voces me indica fazer então? bloquear a troca de nick? Bloquear o chat talvez? Sempre que o cara com nick ilegal tentar falar no chat, bloqueia a mensagem dele e manda um outputChatBox pra ele solicitando que mude o nick. Link to comment
DNL291 Posted June 16, 2017 Share Posted June 16, 2017 14 hours ago, Lord Henry said: Sim, mas e nos casos em que o jogador insiste em ficar com o nick "ilegal"? Alguma forma de insistir que ele mude o nick? Por isso que pensei na marca d'água, pois é algo que incomoda o jogador solicitando que ele corrija o nick e ao mesmo tempo não é uma punição. Então...no servidor que eu sou Staff não posso fazer isso, pois alguns caras sem nick são Staffs investigativos. Dai kickar os caras vai ser ruim pois não se sabe se o objetivo do jogador é realmente zoar ou apenas não ser visto. Se o jogador realmente insistir em um nick curto, em primeiro lugar eu posso tratar ele como alguém que entra no servidor pra bagunçar apenas e não leva a sério o jogo-limpo. Então, talvez fazer um sistema mais específico nesse caso. A propósito, eu nunca tive um servidor de MTA com fluxo alto de jogadores, creio que quem têm deve conhecer bem como é lidar com jogadores problemáticos. Em alguns servidores RPs é obrigatório o uso de nicks que estão de acordo com o servidor, então a ideia da marca d'água não vai se aplicar. Por isso mesmo eu pensei nessa outra forma: O jogador entra, verifica seu nick, caso não seja aceito no servidor, mostre-o um painel e ele só joga quando trocar para outro nick válido. No caso de alguns membros da Equipe do servidor agir dessa forma pra algum tipo de investigação, vai do consenso da Equipe não usar um sistema desses e adotar outro tipo de ideia mais apropriada. Link to comment
Big Smoker Posted June 16, 2017 Author Share Posted June 16, 2017 Galera agora cortando um pouco desse assunto pode me ajuda com esse sistema que fiz pro meu servidor Esse sistema espalha 1 caixa em cada cordenada da tabela que eu fiz, olhe so function removeLootsMilitarys (blip,Military,LootMility) if isElement(blip) then destroyElement(blip) end if isElement(Military) then destroyElement(Military) end if isElement(LootMility) then destroyElement(LootMility) end end function LootMilitarys () local item_id = math.random(3,#vehSpawns["LootsMilitarys"]) local x,y,z = vehSpawns["LootsMilitarys"][item_id][1],vehSpawns["LootsMilitarys"][item_id][2],vehSpawns["LootsMilitarys"][item_id][3] Military = createObject(964,x,y,z, 0, 0, 0) outputChatBox("CRIADO") blip = createBlip ( x,y,z, 23 ) LootMility = createColSphere(x,y,z,3) attachElements(LootMility, Military, 0, 0, 0) setElementData(Military,"parent",LootMility) setElementData(LootMility,"parent",Military) setElementData(LootMility,"Loot Militar",true) setElementData(LootMility,"MAX_Slots",0) setElementData(LootMility, "MAX_Slots", 0) setTimer(removeLootsMilitarys,120000,1,blip,Military,LootMility) end setTimer(LootMilitarys,120000,0 Pra testa eu deixei de 2 em 2 min para criar a caixa e 2 min para remover, e deu certo só que ela cria 1 caixa só eu queria que cria-se 3 caixas ai de 2 em 2 min pelo SetTimer removia as 3 e trocava de lugar de volta aleatoriamente Pode ver a onde eu errei? Por favor Obrigado Link to comment
Other Languages Moderators Lord Henry Posted June 16, 2017 Other Languages Moderators Share Posted June 16, 2017 (edited) Crie outro post com o novo assunto. Edited June 16, 2017 by Lord Henry Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now