Jump to content

Lord Henry

Other Languages Moderators
  • Posts

    4,008
  • Joined

  • Last visited

  • Days Won

    184

Everything posted by Lord Henry

  1. Testei aqui e tem sim. Você tem que colocar o retângulo dentro da função do playVideo. Depois do render da imagem do browser. function webBrowserRender () dxDrawImage (posX, posY, width, height, webBrowser, 0, 0, 0, tocolor(255,255,255,255), postGUI) dxDrawRectangle () -- Seu retângulo aqui. end
  2. Não repita a publicação, vc não viu o vídeo das regras? Este tópico já está na área correta.
  3. Não está. Veja esse vídeo e saiba tudo que vc precisa saber antes de postar aqui:
  4. Ele fez uma bagunça no post e colocou a print em outra página. O erro é este: ERROR: Server triggered clientside event lojaArma, but event is not added clientside. Está faltando o código server-side para verificarmos. Ele já criou outro post que também estava faltando a parte server-side. @Hize assista este vídeo antes de continuar:
  5. Se quiser algo mais prático, recomendo guiCreateProgressBar que já vem pronta. Você só precisará da função guiProgressBarSetProgress para setar a quantidade dela cheia.
  6. Cara, na própria Wiki da função útil PlayVideo já tem uma explicação dos códigos embed que vc coloca no link do youtube. /embed/ Use this on place of watch?v= normal url. This is a required code. (videoID) The video ID. This is a required code. autoplay=1 This will auto play the video, otherwise the player will only see the video thumbnail. This is a required code. controls=0 Hide the youtube's video controls and video progress bar. This and the following codes are all optional. disablekb=1 Disable keyboard video controls. showinfo=0 Hide the video title, watch later button and share button. rel=0 Disable related videos after the reproduction. Instead of showing them, it will show the video thumbnail. start=67 This will start the video on the time 1:07 instead of 0:00 by default. You can use any integer number here. end=72 This will stop the video on the time 1:12 instead of their end by default. You can use any integer number here. cc_load_policy=1 This will enable closed captions on the video if it have one. list=(playlist ID) If you will reproduce a playlist, you use this after the video ID. index=1 Only aplicable if you will reproduce a playlist. This will start the playlist on the second video. If you want to start on the third video, use 2 instead of 1 and so on. You can use any integer number here. color=white this will make the video progress bar white instead of red. There are not other colors. Only aplicable if you don't use controls=0 code.
  7. Crie o marker client-side. Mas em vez de mandar o triggerClientEvent pra só 1 cara, mande para a table da dupla.
  8. Pq os senhores estão revivendo este tópico de Maio do ano passado?
  9. Não poste o código direto no texto, use o botão <> para colocar código. E deixe o código devidamente indentado. Recomendo também que você assista esse vídeo antes de continuar:
  10. Mostre o código para que possamos ajudá-lo onde colocar a parte do carregamento.
  11. E quanto ao usuário dele? Não acho que ele será punido no fórum, pois o usuário dele não violou as regras daqui.
  12. Entendi a referência, Sr. Bender. Boa sorte ae e mãos a obra, quero dizer, mãos ao código.
  13. Não. Vai sair isso: Se vc usar o comando: Gaimo: Oi! -- Essa mensagem vai para o joaozinho33 Se joaozinho usar o comando: joaozinho33: Oi! -- Essa mensagem vai para o Gaimo. Aquela sua função msgDuo não vai funcionar. Pois se a mensagem tiver espaço, não vai aparecer o resto. Na sua função exitDuo, é mais fácil fazer um loop entre todas as duplas, quando encontrar uma dupla que o cara que executou o comando estiver dentro, remove essa dupla de dentro da table global. Desfazendo a dupla. function exitDupla (thePlayer, cmd) -- Função que remove a si mesmo da dupla. Desfazendo-a. for i, dupla in ipairs (globalLixeiros) do -- Para cada dupla da table globalLixeiros, faça: if dupla[1] == thePlayer or dupla[2] == thePlayer then -- Se o jogador informado está nesta dupla, então: outputChatBox ("Sua dupla foi desfeita.", dupla[1]) -- Manda esse aviso pro primeiro cara da dupla. outputChatBox ("Sua dupla foi desfeita.", dupla[2]) -- Manda esse aviso pro segundo cara da dupla. table.remove (globalLixeiros, i) -- Remove a dupla que estiver na posição i da globalLixeiros, no caso a dupla que está sendo verificada agora. break -- Sai do loop, pois não precisa verificar o resto das duplas. end end end addCommandHandler ("sdupla", exitDupla)
  14. Guarde as provas e deixe claro lá na sua denuncia que você as possui. Você deverá entrar em contato com um administrador do fórum via mensagem privada (em inglês) para que ele tome as medidas cabíveis. Como o ccw por exemplo. Banir o usuário dele tem como sim. Mas duvido que a administração queira banir ele, pois o usuário dele em si não viola as regras do fórum. Sobre banir o servidor dele, o que a administração faz é apenas bloquear o servidor da serverlist do MTA para que ele não apareça mais. Porém o servidor continua online normalmente, se o cara digitar o IP e der Join, consegue acessar normalmente, mesmo não aparecendo na lista.
  15. Faça sua denúncia no fórum internacional em inglês. Aqui: Poste lá na seguinte formatação: (Tem que ser tudo em inglês, exceto os nomes) Os ????? é onde vc vai preencher com seus dados. My Server Name: ????? My Server IP: ????? Fake Server Name: ????? Fake Server IP: ????? Additional details: ??????? (imagem mostrando o seu servidor e o servidor fake na serverlist do MTA) Sobre o resource ilegal do @AirNewSCR você tem como provar essas acusações? Você ainda tem o resource em questão?
  16. Já tentou traduzir os erros e descobrir oq significam?
  17. Putz, que bosta hein.... Hahauahuahauah Sobre a sua dúvida de colocar 2 jogadores juntos sem dar conflito com outras duplas, a minha sugestão é que vc coloque os dois dentro de uma table e essa table dentro de uma table global. Exemplo marotamente maroto: local globalLixeiros = {} -- Onde as duplas ficam, dentro de suas tables. function criaDuplas (thePlayer, cmd, theDuplaName) -- Cria a table de cada dupla. if getPlayerFromPartialName (theDuplaName) and getPlayerFromPartialName (theDuplaName) ~= thePlayer then -- Se existe um jogador com o nick informado e esse jogador informado não é o mesmo que o jogador que executou o comando (evita fazer dupla com si mesmo), então: if getDupla (getPlayerFromPartialName (theDuplaName)) then -- Se o jogador que foi informado no comando já tem uma dupla, então: outputChatBox ("O jogador '"..theDuplaName.."' já está em uma dupla de lixeiros.", thePlayer, 255, 150, 0) -- Manda este aviso ao jogador que executou o comando. else -- Se o jogador informado não está em uma dupla de lixeiros ainda, então: local theDupla = {thePlayer, getPlayerFromPartialName (theDuplaName)} -- Cria a table da dupla, inserindo o jogador que executou o comando e o jogador que ele informou na mesma table dupla. table.insert (globalLixeiros, theDupla) -- Insere a table theDupla na table globalLixeiros. outputChatBox ("Você colocou '"..theDuplaName.."' como sua dupla de lixeiro.", thePlayer) -- Manda este output ao cara que executou o comando. end end end addCommandHandler ("dupla", criaDuplas) -- Uso do comando: /dupla NickDoSeuAmigo function getDupla (theLixeiro) -- Função que retorna a dupla do jogador informado. for i, dupla in ipairs (globalLixeiros) do -- Para cada dupla da table globalLixeiros, faça: if dupla[1] == theLixeiro then -- Se o jogador informado está como primeiro elemento desta dupla, então: return dupla[2] -- Retorna o segundo elemento desta dupla. elseif dupla[2] == theLixeiro then -- Se o jogador informado está como segundo elemento desta dupla, então: return dupla[1] -- Retorna o primeiro elemento desta dupla. end end end function qualquerCoisa (thePlayer, cmd) -- Função que manda um "Oi" para a dupla do jogador que usou o comando. if getDupla (thePlayer) then -- Se o jogador que executou o comando tiver uma dupla, então: outputChatBox (getPlayerName(thePlayer).."#FFFFFF: Oi!", getDupla (thePlayer), 255, 255, 255, true) -- Manda esse outputChatBox pro outro player da dupla. end end addCommandHandler ("eae", qualquerCoisa) function getPlayerFromPartialName(name) -- Função útil que pelo nome já sabe pra que serve. local name = name and name:gsub("#%x%x%x%x%x%x", ""):lower() or nil if name then for _, player in ipairs(getElementsByType("player")) do local name_ = getPlayerName(player):gsub("#%x%x%x%x%x%x", ""):lower() if name_:find(name, 1, true) then return player end end end end A table deve ficar tipo isso: local globalLixeiros = { {playerElement01, playerElement02}, -- Dupla 1. {playerElement04, playerElement07}, -- Dupla 2. {playerElement05, playerElement08} -- Dupla 3. }
  18. function blockDead() if getElementHealth(localPlayer) <= 30 then -- ERRO: localPlayer nem sempre é quem está levando dano. Quem sempre está levando dano é o source. if not getElementData(localPlayer, "jobSAMU") then -- Se o player NÃO estiver trabalhando como SAMU, então: if not getElementData(localPlayer, "playerFallen") then -- Se o player NÃO estiver aguardando atendimento do SAMU, então: (ERRO) cancelEvent() -- Cancela o dano no player. ERRO: Vai cancelar o dano em jogadores saudáveis. Pois eles não estão trabalhando no SAMU e não estão aguardando atendimento do SAMU. E a verificação de vida nem sempre é deles. end end end end addEventHandler("onClientPlayerDamage", localPlayer, blockDead) Eu faria algo assim: function blockDead() if source == localPlayer then -- Se o elemento que tomou dano for o localPlayer, então: (Garante que essa função só funcionará no cliente do localPlayer que estiver tomando dano. Além de evitar que source seja outro tipo de elemento.) if getElementHealth (source) <= 30 then -- Se o jogador que tomou dano ficar com 30 ou menos de vida após o dano, então: if not getElementData (source, "jobSAMU") then -- Se o player que domou dano NÃO estiver trabalhando como SAMU, então: if getElementData (source, "playerFallen") then -- Se o player que tomou dano estiver SIM aguardando atendimento do SAMU, então: cancelEvent() -- Cancela o dano no player, fazendo com que a vida volte ao que estava antes desse dano. -- Se o jogador estiver com 45 de vida e o dano for de 15 ou mais, então ele não vai perder vida, pois ficaria com 30 ou menos. end end end end end addEventHandler("onClientPlayerDamage", localPlayer, blockDead) Obs: Não testei. E pelo que andei olhando no resto do código, tem outros erros também. Como por exemplo uma variável que não existe sendo usada em comparação.
  19. Putz, dai tu complica né mano. Vc baixa o resource e n entende nem a lógica dele? E dai como vc espera que a gente te ajude se vc não sabe nem como ele funciona? Quer que a gente faça tudo pra vc? Aliás se vc soubesse lógica de programação, vc já poderia descobrir o que está errado ali.
  20. GetAccount não funciona a partir de um playerElement. Somente a partir de uma string de accountName. Substitua por getPlayerAccount.
  21. Então vou explicar pra vc e dai vc arruma: function blockDead() if getElementHealth(localPlayer) <= 30 then -- Se o player estiver com 30 ou menos de vida, então: if not getElementData(localPlayer, "jobSAMU") then -- Se o player NÃO estiver com a data jobSAMU, então: if not getElementData(localPlayer, "playerFallen") then -- Se o player NÃO estiver com a data playerFallen, então: cancelEvent() -- Cancela o dano no player. end end end end addEventHandler("onClientPlayerDamage", localPlayer, blockDead)
  22. Ainda tenho mais 2 personagens pra distribuir. Quem quiser só me pedir o link via mensagem privada. Mas só passo pra quem for ativo no fórum e que ajuda a galera.
  23. Bem estranho isso. Aparentemente vc colocou algum objeto com textura modificada. A propósito, a imagem é esta:
×
×
  • Create New...