-
Posts
4,006 -
Joined
-
Last visited
-
Days Won
184
Everything posted by Lord Henry
-
Cara, poste o meta. Não temos como adivinhar o erro sem ler o código. Use o botão <> do fórum pra postar código.
-
Qual parte vc não entendeu da Wiki? removeWorldModel (ID, raio, posX, posY, posZ [, interior]) ID - Número do modelo do objeto a ser removido. (para descobrir o ID de um objeto, veja o tutorial abaixo.) raio - Distância máxima que o script vai procurar a partir das coordenadas. posX, posY, posZ - Coordenadas de onde o script vai começar a procurar o objeto. interior - Parâmetro opcional, para que o script procure em um interior em vez de exterior.
-
Apenas insira outra variável, para receber o segundo valor da função. function Login() account = getAccountName(getPlayerAccount(source)) info, info2 = Login:getNumInfo(account) end addEventHandler("onPlayerLogin", getRootElement(), Login)
-
Armas no marker por comando /batercartao AJUDA
Lord Henry replied to magicplayerc's topic in Programação em Lua
Ah, perdão. Não tinha visto que ele queria outras coisas além de armas. Por isso que se deve colocar os detalhes do post antes do código. -
Para verificar se um timer já existe, use a função isTimer. Exemplo: timers = {} function verificar (thePlayer) if not isTimer (timers[thePlayer]) then -- Se não existe o timer, então: timers[thePlayer] = setTimer (outputChatBox, 5000, 1, "Timer concluído.", thePlayer) -- Cria o timer, que irá mandar uma mensagem daqui a 5 segundos. else -- Se existe o timer, então: outputChatBox ("Já existe um timer criado.", thePlayer) -- Manda isso pro jogador que executou o comando. end end addCommandHandler ("eae", verificar)
-
Armas no marker por comando /batercartao AJUDA
Lord Henry replied to magicplayerc's topic in Programação em Lua
Use a função giveWeapon a partir da linha 8. -
Markertrab = createMarker(2275.962890625, -1766.6162109375, 13.546875 -1, "cylinder",2.0 ,1, 255, 0, 255) veh[ThePlayer] = () -- ERRO, uma tabela é declarada com {} e não com parênteses. function Trab(ThePlayer) if isElementWithinMarker(ThePlayer, Markertrab) then if veh[ThePlayer] and isElement( veh[ThePlayer] ) then destroyElement ( veh[ThePlayer] ) veh(ThePlayer) = nil end x,y,z = getElementPosition(ThePlayer) -- Essas variáveis provavelmente devem ser locais. Trabalho = true -- Qual a utilidade disso? veh[ThePlayer] = createVehicle(431,2266.1005859375, -1751.3544921875, 13.3828125) setPedSkin ( ThePlayer, 431 ) outputChatBox("#00ff00=========================================",ThePlayer,0,0,0,true ) -- Declare as cores nos parâmetros RGB em vez de código #hex. outputChatBox("#ff00ffLeve O Veiculo Até o Blip Em Seu Radar!!!",ThePlayer,0,0,0,true ) outputChatBox("#00ff00=========================================",ThePlayer,0,0,0,true ) end end addEventHandler( "onMarkerHit", Markertrab, Trab ) Comentei o que vi de problemas no código. Corrija-os.
-
Não. Isso não existe: or 2 or 3 or 4 or 5 or 6 or 9 or 22 or 24 or 25 or 26) then E pq vc fica citando a si mesmo em vez de mandar mensagem normal?
-
dxDrawImage é o que renderiza sua HUD na tela do jogador.
-
Cadê os dxDraw? E está faltando o client.lua no seu meta.xml
-
Você tem que ocultar a HUD original com SetPlayerHudComponentVisible. Não se esqueça que existem teclas que ocultam e mostram o HUD original, como por exemplo o F11.
-
Estou prevendo os seguintes erros neste código: O timer irá bugar se o usuário ficar usando /190 várias vezes. Pois não existe nenhuma verificação que impede o spam do comando. O timer irá duplicar, pois não há nenhuma verificação se ele já existe antes de criá-lo novamente. Um timer de 5 minutos não é 10000 milissegundos, isso é só 10 segundos. 5 minutos são 300000 milissegundos. Erros de indentação no código.
-
É por isso que o ideal é vc bloquear o uso do /register e criar um painel de login com restrições de segurança. Por exemplo: Proibir contas com símbolos ou espaços no login. Proibir contas com menos de 4 caracteres no login. Proibir contas com mais de 30 caracteres no login e na senha. (você pode simplesmente limitar o número de caracteres que cabem no input do painel) Proibir contas com menos de 4 caracteres na senha. Demonstração de painel de login com segurança avançada: https://www.youtube.com/watch?v=oWiZzCRtNhs&index=6&list=PLfmz7dULp2ueFkL8o8yNJeyEfNY1j57kU
-
Acho que sinceramente o esforço pra fazer isso não valeria a pena. Acho mais válido o cara pensar em um painel menor. Uma alternativa seria usar tabPanel para separar o conteúdo em diferentes tipos em vez de deixar todos juntos. Eu precisei fazer assim com um painel de corporação que eu fiz uma vez, uma aba era cheia de botões de dar TAG e a outra era botões de funções gerais, como pegar viatura, abrir portão de base, pegar skin, pegar armas, pegar vida/colete, etc. Se eu não usasse tabPanel, o painel precisaria ser gigante pra caber todos os botões nele.
-
Comigo também aparece símbolos no código quando copio daqui. Só que eu mesmo corrijo no notepad++. Também uso Chrome. Internet Explorer não tem como, kkkkk
-
Traduzindo: Usando posição relativa. No entanto, se o jogador estiver com uma resolução baixa demais, alguns elementos não vão caber, como os textos, cuja escala não pode ser alterada.
-
Não tem como colocar um painel maior do que a resolução do jogador.
-
Vlw galera. Tamo junto! Quem sabe um dia eu faço sobre DX.
-
Lol, primeira vez que vejo alguém ter o empenho de colocar ; no fim dos comandos.
-
Element data reduz o desempenho do servidor?
Lord Henry replied to Kaarpas's topic in Programação em Lua
Exato. O setElementData, independente se for feito client ou server-side, sempre será sincronizado com todos os outros jogadores. E essa sincronização consome bastante processamento do servidor. Totalmente inviável. Conexão com banco de dados não deve ser feito a cada frame, ele é pesado demais para ser feito tantas vezes em curtos períodos de tempo. Além disso, conexão com banco de dados só pode ser feita server-side, e um "draw" só pode ser feito client-side. Ou seja, vc precisaria de um triggerServerEvent a cada frame, que ficaria absurdamente mais pesado ainda. -
Corrigi várias coisas, entre elas o seguinte: Corrigi os outputChatBox que estavam com código hexadecimal no início, mudei pro código RGB nos parâmetros. Aumentei o tamanho dos markers de objetivo, que estavam pequenos demais, sendo necessário passar com o avião no lugar exato pra conseguir. Criei a 3 posição em LV, assim o jogador começa e finaliza no mesmo aeroporto. Mudei as posições de objetivo, colocando-os no meio da pista pra facilitar. Mudei a posição onde cria o avião e os Peds. Removi as linhas que setavam rotação nos Peds, em vez disso declaro a rotação deles no createPed. Deixei os Peds em tables também. Corrigi algumas indentações. Adicionei verificador do jogador nos timers, caso ele quite antes do tempo.
-
A regra é clara: Se está tudo funcionando sem erros e nem bugs. Então está certo. Sempre pode existir um jeito "melhor" de fazer, mas não significa que seja necessariamente o mais certo. Na programação existem diversas formas de se conseguir um objetivo.