-
Posts
4,005 -
Joined
-
Last visited
-
Days Won
184
Everything posted by Lord Henry
-
Ah bom... vc espera vender somente pra 1 usuário. Entendi. No caso dos meus resources, seria venda em massa mesmo, dai preciso ter controle sobre a distribuição não autorizada. Pois ninguém mais iria comprar de mim se existe de graça na internet. Eu tenho o péssimo hábito de sempre esperar o pior das pessoas.
-
Meu painel já faz isso, mas eu esperava que você corresse atrás dos estudos e conseguisse fazer por conta própria usando as funções que lhe passamos em vez de só querer as coisas prontas. https://prnt.sc/jfs880 Outra coisa: O painel dará problema em servidores grandes, pois ele vai mostrar TODAS as contas que existem criadas no server, o que causará um Network Trouble temporário até ele conseguir processar todas, por vezes até queda de conexão (no server que testei, com mais de 20 mil registros de contas, ocorreu Network Trouble toda vez que abria esse painel, então corrigi para ele processar somente as contas dos jogadores online). Sugiro que faça o mesmo se quiser evitar problemas futuros.
-
Então todos os scripts são descompilados, certo? E como vc espera manter o controle de usuários que plagiarem e redistribuírem tudo de graça? Já pensou nisso? O cara compra 1 vez o seu servidor e posta ele inteiro em sites de terceiros.
-
Comece não fazendo Spam no fórum. Não use Caps Lock em excesso e não use fonte grande, ninguém aqui é cego. Para criar o painel, use guiCreateWindow, os demais elementos aparecem ao final da página. Para setar um mapa, vc deve usar o resource nativo do MTA: Resource:Mapmanager
-
Nada impede de vc colocar o colorpicker (GUI) junto ao painel DX.
-
Como baixar mta no linux mint?
Lord Henry replied to P4BL0's topic in Ajudas relacionadas ao MTA:SA (Cliente/Servidor)
Acho que ele queria jogar MTA no Linux, e não criar um servidor no Linux. -
Sugiro que use este colorPicker: Use isso para obter as cores selecionadas no colorpicker: local r, g, b = colorPicker.updateTempColors() Use isso para abrir o painel do colorpicker: function openColorPicker() if (colorPicker.isSelectOpen) or not isElement(veh) then return end -- veh = veículo que vc quer pintar no seu script. colorPicker.openSelect() -- abre o colorpicker end Pra fechar o painel ele já tem uma função interna que fecha sozinho ao clicar fora do painel. Mas se quiser fechar por algum comando ou botão, da pra usar isso: colorPicker.closeSelect() Obs: Tudo isso é somente client-side.
-
[CLOSED] Resolvido por privado. Ele estava usando a função hasObjectPermissionTo no lado client. A solução foi usar triggerClientEvent no lado server.
-
Manda os dois scripts inteiros. Se não quiser postar em público, então manda por mensagem privada.
-
<script src="s_camhack.lua" /> -- Isso é server-side. Aqui funciona. <script src="c_camhack.lua" type="client" /> -- Isso é client-side, essa função não vai funcionar aqui. A função hasObjectPermissionTo é server-side, ela não funciona em scripts do tipo client. Além disso, provavelmente as funções setPlayerCamHackEnabled e setPlayerCamHackDisabled que estão em outra parte do código possuem funções client-side, dai não adianta passar o script inteiro pra server-side que dai elas não vão funcionar. Nesse caso terá que usar triggerClientEvent, pois você possui funções que só funcionam client-side e outras que só funcionam server-side.
-
Você está tentando restringir um comando, por padrão usa-se false no terceiro parâmetro. Isso significa que o comando só será liberado se a ACL do jogador estiver explícito que ele tem tal permissão, caso contrário negará o comando. Se você deixar como true, ele vai sempre permitir o comando exceto se estiver explícito na ACL do jogador que ele não tem essa permissão, neste caso o comando se torna vulnerável, para quem não está explícita a permissão de nenhum jeito. if hasObjectPermissionTo (thePlayer, "command.ban", false) then No seu exemplo, poderia adicionar uma condição de escape, informando o jogador que ele não tem essa permissão. Geralmente é recomendável dar feedback ao jogador depois que ele usa comandos, senão ele pensa que simplesmente digitou o comando errado e fica tentando novamente sem sucesso. Eu faria assim: addCommandHandler ("camhack", function (thePlayer) if hasObjectPermissionTo (thePlayer, "command.ban", false) then if isPedInVehicle (thePlayer) then if getVehicleOccupant (getPedOccupiedVehicle (thePlayer)) ~= thePlayer then -- Aqui não entendi seu objetivo. Sempre será true. if getElementData (thePlayer, "isPlayerInCamHackMode") then setElementAlpha (thePlayer, 255) setPlayerCamHackDisabled (thePlayer) else setElementAlpha (thePlayer, 0) setPlayerCamHackEnabled (thePlayer, false) end end elseif getElementData (thePlayer, "isPlayerInCamHackMode") then setElementAlpha (thePlayer, 255) setPlayerCamHackDisabled (thePlayer) setElementFrozen (thePlayer, false) setElementCollisionsEnabled (thePlayer, true) else setElementAlpha (thePlayer, 0) setPlayerCamHackEnabled (thePlayer, true) setElementFrozen (thePlayer, true) setElementCollisionsEnabled (thePlayer, false) end else outputChatBox ("Acesso negado.", thePlayer, 255, 0, 0) end end) addCommandHandler ("camhackm", function(thePlayer) if hasObjectPermissionTo (thePlayer, "command.ban", false) then isSlowCamHack = not isSlowCamHack else outputChatBox ("Acesso negado.", thePlayer, 255, 0, 0) end end)
-
Não sei porque não atualizaram mais. Eu sei que a comunidade global não liga para a sessão PT, mas poderiam manter atualizadas as regras. Mas enfim, achei que a regra ainda era válida.
-
Realmente, se ele desativar no meta.xml e o script tiver outras funções além dessa do chat, pode comprometer outras coisas que não deveriam ser desativadas. E como está compilado, não teria o que fazer pois não da pra editar nada. No fim das contas a dor de cabeça é tão grande que é mais válido refazer o Gamemode do 0, mas é um problema pequeno demais para se incomodar tanto. Ele poderia também tentar entrar em contato com o desenvolvedor do GM para pedir ajuda.
-
Sim, mas me refiro a deixar como comentário no meta.xml
-
Quando eu preciso deletar uma linha de código que não sei se é importante ou não, em vez de simplesmente deletar, deixo ela como comentário. No caso, é só abrir o código com notepad++ e usar Ctrl+Q na linha. Dai ela vira comentário.
-
erro CD48
Lord Henry replied to Tiu_Trump's topic in Ajudas relacionadas ao MTA:SA (Cliente/Servidor)
Você possui anti-vírus no computador? Qual? Se não tiver, instale um. -
Abra o meta.xml do GM. E remova esse arquivo do script. Assim ele não será usado.
-
O jeito é vc ir dando stop nos resources 1 por 1 até achar o resource que está mostrando a mensagem em azul. Parece ser algum resource relacionado ao ID do jogador. Por padrão o chat não mostra o ID dos jogadores, ou seja, não é um resource nativo do MTA que está fazendo isso.
-
Você deveria ler as regras do fórum antes de criar um post.
-
Depende muito de como este nick está sendo mostrado. Pois dependendo da função, cores não são possíveis. É por um outputChatBox? DxDrawText? GuiCreateLabel? Se for por outputChatBox, é bem simples de fazer. Basta deixar como true no parâmetro de cores. outputChatBox ("Nome#ff0000Com#00ff00Cor", root, 255, 255, 0, true) Isso retornará NomeComCor (se o script for client-side, é a mesma coisa mas sem o parâmetro do root. Se for usando dxDrawText, ele também tem um parâmetro para habilitar as cores. Basta ler na Wiki. dxDrawText ("Nome#ff0000Com#00ff00Cor", 1, 1, 100, 30, tocolor (255, 255, 0, 255), 1, "default", "left", "top", false, false, false, true) -- (posicionado no canto superior esquerdo da tela) Isso retornará NomeComCor Precisa estar dentro de uma função onClientRender para permanecer visível. Se for usando guiCreateLabel, multi-cores não é possível. Só é possível colocar cor única no texto inteiro usando GuiLabelSetColor. Por não existir um parâmetro de cores, é necessário remover os códigos manualmente para que seja mais fácil ler o texto sem eles. Diferente das funções anteriores, onde os códigos já eram substituídos pelas cores, nesta função você precisa remover o código manualmente, já que eles não funcionam nesta função. Exemplo: local nome = "#ffff00Nome#ff0000Com#00ff00Cor" -- Texto normal com os códigos. local nome2 = string.gsub (nome, "#%x%x%x%x%x%x", "") -- Texto normal sem os códigos. guiCreateLabel (1, 1, 100, 30, nome2, false) -- Cria o texto sem os códigos de cores, no canto superior esquerdo da tela. Isso retornará NomeComCor. Por padrão na cor branca. Espero ter ajudado.
-
Não tem nenhum givePlayerMoney no seu código, dai não tem o que funcionar. Quanto ao givePlayerXP, vc deve salvar o XP na conta do jogador usando setAccountData e para receber esses dados depois, use getAccountData. Tem como fazer por ID sim.
-
Então seu script de TAGs foi feito errado. Ele deveria cancelar o chat normal antes e mandar o chat com TAG depois. Exemplo: function tagChatbox (text, msgtype) local account = getAccountName (getPlayerAccount (source)) local name = getPlayerName (source) if msgtype == 0 then -- Se a mensagem for pelo /say (tecla T) if isObjectInACLGroup ("user."..account, aclGetGroup ("Console")) then -- Se o jogador estiver na ACL Console, faz o seguinte: cancelEvent (true) -- Cancela o chat normal. outputChatBox ("#494949║#1b1b1b✖ #FFFF00DONO #1b1b1b✖#494949║#ffffff - "..name.."#ffffff: "..text, root, 255, 255, 255, true) -- Manda o chat com TAG. outputServerLog ("CHAT: [Console] "..name..": "..text) -- Registra o chat no serverlog. elseif isObjectInACLGroup ("user."..account, aclGetGroup ("Admin")) then -- Mesma coisa se estiver na ACL Admin. cancelEvent (true) outputChatBox ("#494949║#ffffff✖ #FF0000ADMIN #ffffff✖#494949║#ffffff - "..name.."#ffffff: "..text, root, 255, 255, 255, true) outputServerLog ("CHAT: [Admin] "..name..": "..text) else -- Se for um jogador comum, então: cancelEvent (true) outputChatBox ("#003CFF║#ffffff✘ #00A513JO#ffff00GA#003CFFDOR #ffffff✘#003CFF║#ffffff - "..name.."#ffffff: "..text, root, 255, 255, 255, true) outputServerLog ("CHAT: [Jogador] "..name..": "..text) end end end addEventHandler ("onPlayerChat", getRootElement(), tagChatbox)
-
O Freeroam não fica na pasta [gamemodes], ele fica no [gameplay]. Ele é o painel F1.
-
Desligue o Freeroam.
-
Se for em painel GUI, use guiCreateEdit. Para fazer a função de procura, use essa função: addEventHandler("onClientGUIClick", getRootElement(), function (btn) if btn ~= "left" then return end if source == searchBox then -- Função que busca os jogadores pela barra de pesquisa chamada searchBox. guiGridListClear(gridJogadores) -- Lista que mostra a lista dos jogadores encontrados. local Nome = guiGetText (searchBox) for i, thePlayer in ipairs (getElementsByType ("player")) do if (thePlayer ~= localPlayer) then if (string.find(getPlayerName(thePlayer):lower(), Nome:lower())) then local row = guiGridListAddRow (gridJogadores) guiGridListSetItemText (gridJogadores, row, 1, getPlayerName(thePlayer), false, false) end end end end end)