Jump to content

androksi

Other Languages Moderators
  • Posts

    518
  • Joined

  • Last visited

  • Days Won

    32

androksi last won the day on December 20 2021

androksi had the most liked content!

About androksi

  • Birthday 23/12/1999

Member Title

  • Portuguese Section Moderator

Details

  • Gang
    Destiny Community
  • Location
    Brasil
  • Occupation
    Scripter
  • Interests
    Programming, art, nature & music

Recent Profile Visitors

5,959 profile views

androksi's Achievements

Playa Partner

Playa Partner (27/54)

280

Reputation

1

Community Answers

  1. E aí, @THG. Tudo bem? O que você quis dizer com path? (eu leio como caminho do arquivo) — de qualquer forma, se estiver falando do conteúdo da imagem, você precisa codificar normalmente com encodeString. Daí, na hora de descriptografar, com decodeString, você pega o resultado e usa base64Decode. Retornará para você o conteúdo normalmente. Sem erros.
  2. E aí, @SrBarata! O problema ocorre pois o evento está se propagando para todos os outros elementos do seu painel. Você precisa adicionar um false no quarto parâmetro da função addEventHandler.
  3. E aí, @SciptNovato! Sim, tem como você gerar uma lista pronta com o nome de todos os recursos do seu servidor. Mas, para uma melhor organização, considere usar um nome ou sigla antes, fica muito mais fácil e você tem um controle maior. Daí basta criar um recurso para ligar todos de uma só vez. Com considere usar um nome ou sigla antes eu quis dizer isto, por exemplo: sn_vehicles. Sempre separando por underline, aquele traço inferior.
  4. E aí, @XablauzinFT. Tudo beleza? Você pode usar a função setWeaponProperty para obter esse resultado. Há algumas propriedades, você irá utilizar as seguintes: anim_loop_start anim_loop_stop ...para diminuir o tempo entre um tiro e outro. Se não me engano, essas são as únicas propriedades que você necessita. P.S: irá mudar globalmente, ou seja, para todo o servidor, todos os players. Há uma forma de realizar isso individualmente, mas você teria de fazer bastante modificações.
  5. Sobre o código acima, prefira verificar se o elemento que acertou o marcador foi realmente um player, caso contrário irá dar um aviso no debug. Para isso, use a função getElementType. Para fins de boas práticas de programação, tente sempre colocar bons nomes em variáveis, parâmetros de funções e outros — thePlayer não faz sentido ali, pois o que irá tocar será um elemento, seja ele um player, veículo, objeto, tanto faz. Altere para hitElement.
  6. E aí, @SciptNovato. Belezinha? Quando o código é server-side, o elemento do player precisa estar vindo de algum lugar para o servidor reconhecer. Aquele todo seu primeiro código (para referência, veja abaixo) não faz sentido nesse caso — playerSource, targetPlayer e thePlayer não existem ali. Eles precisam estar dentro de alguma função que o player faça sentido. Além disso, prefira usar variáveis locais em vez de globais, irá poupar recursos do seu servidor e irá manter o escopo global do seu servidor limpo. Jogador1 = getPlayerName(playerSource) Jogador2 = getPlayerName(targetPlayer) Jogador3 = getPlayerName(thePlayer) IP1 = getPlayerIP(playerSource) IP2 = getPlayerIP(targetPlayer) IP3 = getPlayerIP(thePlayer) Serial1 = getPlayerSerial(playerSource) Serial2 = getPlayerSerial(targetPlayer) Serial3 = getPlayerSerial(thePlayer) ID1 = getElementData(playerSource, "ID") ID2 = getElementData(targetPlayer, "ID") ID3 = getElementData(playerSource, "ID") players = getElementsByType("player")
  7. E aí, @Guilherme Mendes! Primeiramente, remova aquele else e return false. Segundamente, o i é referência de cada entrada da tabela de veículos, enquanto o v é o elemento do veículo. Um exemplo mais prático: -- A função getElementsByType retorna uma tabela ordenada de elementos. Ela é semelhante a esta: local vehicles = { [1] = vehicle, [2] = vehicle, [3] = vehicle } -- E assim por diante, dependendo de quantos veículos há no servidor. -- Então, quando fazemos um for loop, a primeira coisa que ele irá pegar é o índice (index), enquanto a segunda é o seu valor. for index, value in pairs(vehicles) do -- Index: 1, 2, 3... -- Value: cada elemento 'vehicle' mostrado naquela tabela de exemplo. -- Como boas práticas de programação, é bom deixar claro o que cada coisa recebe. Então em vez de 'value', eu colocaria 'vehicle'. -- Já que é um carro. end
  8. @carlinloko — para cada dano que o player tomar, você pode enviar para o servidor, sem problemas algum. Isso não irá acarretar problemas de desempenho ou qualquer coisa relacionada. Poderia ter 10 players atirando em outro, mas aquele que atirar por último pra matar mesmo, e quando processar essas informações, é que vai de fato contar quem o matou. Pode não ter sido essa sua dúvida. Me diga se eu estiver errado.
  9. E aí, @Muskzeera, de boa? Você precisa obter as informações sobre o dano dado de acordo com quem tá atirando, e não recebendo os tiros. Para isso, você deve usar o evento onClientPlayerDamage, obter os dados que vêm dos parâmetros da função e enviá-los para o servidor, através da função triggerServerEvent.
  10. E aí, @L0KZERATV! O seu tópico está agora trancado para futuras respostas, pois ele contém poucas informações sobre o que o comando citado irá fazer e causar no PC do usuário que usá-lo. Por favor, numa próxima vez, adicione detalhes sobre a execução de um comando.
  11. E aí, @dextzone! Para fazer isso, você precisa levar em consideração o que a pessoa que atira está vendo. Neste caso, é feito o uso do evento onClientPlayerDamage. Pegando as informações que vêm desse evento, basta mandá-las para o servidor, através de um triggerServerEvent. Só tome cuidado pois você terá de cancelar esse evento, usando cancelEvent. Isso significa que todos os jogadores ficarão invencíveis, mas ainda ocorrerá o tratamento dos dados lá no servidor. Sendo assim, haverá uma perfeita sincronia. Qualquer dúvida, basta deixá-la aqui!
  12. E aí, @Kelvenbrryan! Corrigi o código pra você. local alpha = 255 bindKey ( "aim_weapon", "both", function ( _, state ) if getPedWeaponSlot ( localPlayer ) == 6 then if ( state == "down" ) then alpha = 0 elseif ( state == "up" ) then alpha = 255 end for _, v in ipairs ( getElementsByType ( "object", root, true ) ) do if isElementAttachedToBone ( v ) then local id = getElementModel ( v ) if ( id == 2584 ) then setElementAlpha ( v, alpha ) setElementDimension(v, alpha == 0 and 9999 or getElementDimension(localPlayer)) end end end end end Peço que por favor, nas próximas vezes que postar algo, use a ferramenta Code (<>) e indente o seu código.
  13. E aí, @ajobr! Não funciona pois a função que você usou para criar o veículo (createVehicle) não retorna uma instância. Você precisa usar desta forma: local vehicle = Vehicle(411, Vector3(0, 0, 3)) vehicle:setColor(255, 0, 0) Agora, usando a classe Vehicle, você está apto a usar todos métodos disponíveis. Test: cat.zip
  14. E aí, @BruXo! Antes tarde do que nunca, você pode realizar essa checagem usando a função engineGetVisibleTextureNames. Ela retornará uma tabela. Sendo assim, se o tamanho dela for igual a zero, quer dizer que o player usou aquela opção. Exemplo: local screenWidth, screenHeight = guiGetScreenSize() addEventHandler("onClientRender", root, function() if #engineGetVisibleTextureNames() == 0 then dxDrawRectangle(0, 0, screenWidth, screenHeight, tocolor(0, 0, 0, 255)) dxDrawText("Desabilite a função de remover os gráficos.", 0, 0, screenWidth, screenHeight, tocolor(255, 255, 255, 240), 1.5, "unifont", "center", "center") end end) Assim que ele ativar aquela opção, a tela ficará preta e mostrando aquela mensagem encontrada no código acima.
  15. E aí, @koshe! No terceiro parâmetro da função guiGridListAddColumn você define a largura da coluna. Pode ser um valor real de 0 a 1. Tente diminuir o do ID para 0.15, o nome do item para 0.48, preço e quantidade para 0.4. Foi apenas um chute. Vá configurando e testando novos valores.
×
×
  • Create New...