Jump to content

DNL291

Retired Staff
  • Posts

    3,875
  • Joined

  • Days Won

    67

Everything posted by DNL291

  1. If you are trying to change the size of the grid list tab according to the resolution, then leave it with the original size and change only the X and Y positions. I'm not sure of what can be though, since the only code you posted is about gridlist.
  2. Sobre a adição ao grupo VIP, só remova a variável 'account' que vai guardar o retorno da função aclGroupAddObject (e causar problemas) nesta linha: local account = aclGroupAddObject (aclGetGroup("VIP"), "user."..account) Para remover do grupo quando o tempo de VIP acabar, use aclGroupRemoveObject na função makeDonateTick, vai funcionar da mesma forma que você fez na função removeOfflineVIP. No if statement na linha 91, só usar isso dentro do bloco: aclGroupRemoveObject (aclGetGroup("VIP"), "user."..ind) Já sobre o tempo de VIP no painel, você poderia ter deixado o seu código do painel aqui e eu explicaria onde usar getElementData - que já expliquei anteriormente.
  3. 'accountName' não está definido, 'account' já retorna o nome da conta.
  4. Fiz um código básico que cria um botão em DX, usando um retângulo (em DX) e um texto. Deixei algumas coisas explicadas com comentários no código: local sw,sh = guiGetScreenSize() -- Tamanho e posicionamento local DXBtn = {} local largura, altura = 100, 40 DXBtn.left = (sw - largura) /2 -- Posição X DXBtn.top = (sh - altura) /2 -- Posição Y -- Os cálculos que fiz, é só pra centralizar addEvent( "onClientDXButtonClick" ) function drawMyDXButton() -- Retângulo e texto dxDrawRectangle( DXBtn.left, DXBtn.top, largura, altura, tocolor(0,0,0,160), false ) dxDrawText( "Botão em DX", DXBtn.left, DXBtn.top, DXBtn.left + largura, DXBtn.top + altura, tocolor(255, 255, 255), 1.2, "arial", "center", "center" ) end addEventHandler( "onClientResourceStart", resourceRoot, function() showCursor(true) addEventHandler( "onClientClick", root, onButtonClick ) -- Evento para manipular o clique addEventHandler( "onClientRender", root, drawMyDXButton ) -- Renderizar o DX end ) function onButtonClick() if (button == "left") and (state == "up") and not isConsoleActive() and not isMainMenuActive() then -- Verificando se o cursor está sobre o DX if isMouseWithinRangeOf(DXBtn.left, largura, DXBtn.top, altura) then -- Chamando um evento personalizado, -- que será chamado sempre que clicar no 'botão' return triggerEvent( "onClientDXButtonClick", resourceRoot ) end end end addEventHandler( "onClientDXButtonClick", root, function () -- O evento foi chamado, isto significa que, -- o jogador clicou no botão em DX outputChatBox("O botão em DX foi clicado!", 0,230,0) -- Se quiser remover o botão: showCursor(false) removeEventHandler( "onClientRender", root, drawMyDXButton ) -- Se quiser remove também o evento "onClientClick", -- e o adiciona denovo quando for mostrar o DX novamente end ) -- Esta função verifica se o mouse está num local da tela function isMouseWithinRangeOf(psx,pssx,psy,pssy) if not isCursorShowing() then return false end; local cx,cy = getCursorPosition() cx,cy = cx*sw,cy*sh if cx >= psx and cx <= psx+pssx and cy >= psy and cy <= psy+pssy then return true end return false end Só não sei se vai rodar no servidor sem dar erro, já que não testei. Mas você pode procurar entender como funciona e tentar aprender como fazer.
  5. Use estas funções dentro do comando addvip: aclGroupAddObject -- 'account' (o nome da conta) vai no 2º argumento aclGetGroup("vip") -- O nome é [b]case sensitive[/b] ! O resource deve ter direito para adicionar no grupo da ACL. Para o tempo de VIP, só usar no client: getElementData(player, "vipTime") Isso vai retornar o tempo do VIP, então você só vai usar isso na função showDonateMembers.
  6. Vehicle mod: https://community.multitheftauto.com/index.php?p= ... s&id=11945 DONE
  7. local xx = 20 local twidth = dxGetTextWidth( time ) dxDrawText( time, xx+50, 20, (xx+50)+twidth, 120, tocolor ( 7, 235, 249, 255 ), 1, "default","left","top",false,false,true,true) Try it.
  8. The value stored in the account must be a string. Also, the if statement at line 4 is checking if it's a guest account. I've edited Walid's code, so try this: addCommandHandler( "setlvl", function(player, cmd, playerToAdd, amount) if tonumber(amount) and not isGuestAccount(getPlayerAccount(player)) then if isObjectInACLGroup ( "user." ..getAccountName( getPlayerAccount(player) ), aclGetGroup ( "Admin" )) then local playerToAdd = getPlayerFromPartialName(playerToAdd) if (isElement(playerToAdd)) and not isGuestAccount(getPlayerAccount(playerToAdd)) then setAccountData(getPlayerAccount(playerToAdd), "lvl" , tostring(amount)) outputChatBox("I-ai setat lvl lui "..getAccountName(getPlayerAccount(playerToAdd)).." la "..tostring(amount), player,0,255,0) else outputChatBox("No player with that name or that player isn't logged in", player, 255, 0, 0) end end end end ) function getPlayerFromPartialName(name) 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
  9. Wrong section. Post here next time (When it's in the Portuguese language): viewforum.php?f=152 Sobre a sua questão: addCommandHandler -- Verifique se o jogador é policial getPlayerWantedLevel outputChatBox getPlayerFromPartialName --Fonte: [url=https://wiki.multitheftauto.com/wiki/GetPlayerFromPartialName]https://wiki.multitheftauto.com/wiki/Ge ... artialName[/url]
  10. Make sure that 'name' doesn't returns a nil value. See what debugmode shows (with /debugscript 3).
  11. Simplificando sua sugestão: Posso alertar os membros com mal comportamento através de MP, sendo que na terceira vez que ele cometer a infração, entro em contato com algum moderador global com um relatório sobre a conduta dele nesta seção. Mas sobre a moderação do Cadu12, vou ser sincero e direto: Desde que ele foi elegido como moderador (em 2012), não cheguei a ver comprometimento nem responsabilidade da parte dele com a moderação do fórum. Eu mesmo já cheguei a fazer uma reclamação para o jhxp (antes mesmo de mim ser moderador). Só que por algum motivo, nenhuma decisão foi tomada. Não sei se por causa do conteúdo da minha mensagem - que tinha alguns exageros e argumentos um tanto fracos. Cheguei a pensar em falar diretamente com o Cadu sobre isso, visto que eu se sentia injustiçado por ser, desde lá, bem ativo por aqui (um simples tópico, não via ser movido à área correta) e também pelo moderador não corresponder ao cargo - que é digno de alguém que tome ações como moderador. Como já expliquei anteriormente, o Cadu pode ter suas justificativas pra isso, mas é algo de responsabilidade da pessoa. E pior, já fazem 3 anos; e o que muito vi, foi um tópico ser trancado e uma coisa e outra que nem me lembro. Acho que já é tempo de repensar isso, se envolver mais com o fórum e ser mais responsável pelo cargo - que por sinal, é um cargo, não um simples título no perfil. Ou se isso não puder ser cumprido, ter honestidade o suficiente para passar a moderação para outro membro digno.
  12. Desculpa se fui implicante. Mas em resumo, quis dizer que o negócio é ler tutoriais e usar a prática para absolver as coisas. Olhar códigos de recursos disponíveis no community.multitheftauto.com também é algo que ajuda muito.
  13. Aonde chegará este tópico? Aliás, é sobre a escolha de um novo moderador, crítica à moderação ou o que exatamente? Porque na maioria dos posts só vejo discussões paralelas ao assunto. Se isso é apenas uma discussão livre que não chegará em nada, serei obrigado a trancar o tópico. E outra: Nenhum Staff maior do fórum vai entender nada já que não fala português, se for uma denúncia, votação para um novo moderador ou algo tipo nada será considerado e o tópico será simplesmente ignorado já que não está em inglês. A propósito, faria desta citação as minhas palavras:
  14. Se eu fosse o Reggae estaria muito grato por toda a explicação do Stanley. Se ele prefere o código pronto e não quer aprender lendo tutoriais é problema dele. O post está lá, e será de grande proveito pra quem está interessado. É questão de interesse, de que adianta querer fazer um servidor com bases de códigos feitas por outro? Se for por preguiça, então o servidor será sempre fraco e a pessoa nunca vai aprender nada e sempre vai precisar de ajuda. Digo isto, porque já fui assim, daqueles que "não quer estudar mas quer aprender" (ou no caso: fazer um servidor). E quando aprendi Lua foi sem base sobre o funcionamento de tudo; isso porque havia aprendido quase tudo na prática, mas quando minha 'cabeça mudou' passei a aproveitar todo tutorial que lia aliado da prática que nunca deixei de lado. Sei que isso já é uma outra discussão e está fora do assunto do tópico. De qualquer forma, quis deixar minha opinião para aqueles que tem o conceito errado.
  15. Sobre tomar providências mais severas, depende do que você está falando. Como sou um moderador para a seção portuguesa, estou limitado ao poder de: Remover mensagens, gerenciar posts reportados e enviar feedback aos membros do fórum. Como moderador, poderia também: falar com alguém que têm cargo superior quando houvesse algum problema no qual uma ação só pudesse ser tomada por um Staff com os devidos direitos. Nenhuma ação mais rígida seria de minha responsabilidade, afinal sou moderador. Mas sim, poderia ter contatado uma pessoa com um cargo superior quando houve problemas aqui anteriormente. Talvez seja pela minha rotina, que tenho outras responsabilidades a mais, que não cheguei a fazer isso - acho que essa foi minha falha. Ainda assim, não quer dizer que nenhum moderador global ou administrador nunca teve conhecimento das briguinhas que vira e mexe ocorrem aqui. Removi muitos posts que infringiram as regras, para coibir mais ações desse tipo, já que esses infratores (e todos membros) sempre veriam suas mensagens aleias aqui pelo fórum - bem, acho que isso poderia motivar a continuar a fazer isso. Sobre a escolha de um novo moderador, pra mim, ninguém aqui fora o StanleySathler aqui está apto para ser moderador. Cadu12 já não tem participação aqui neste fórum há um tempo - não sei ele tem motivos pra isso - mas é uma responsabilidade que temos que conciliar com nossa vida. Eu sei que tenho essa responsabilidade, por isso tento moderar aqui de forma regular - caso não possa algum dia, terei o prazer de indicar algum novo moderador. Não continuaria como moderador nessas circunstâncias, até porque quero o bem para o nosso fórum. Não um moderador sumido que além de não frequentar o fórum, não repassa a moderação. Não sei se isso se aplica ao Cadu, nem estou acusando ele de tal coisa, faria isso se tivesse plena certeza. Seria um grande problema isso, já que outras pessoas teriam que lidar com o problemas como: briguinhas, mensagens fora do assunto e todo tipo de desrespeito às regras. Se vocês querem uma boa moderação, quer dizer que querem o melhor para o nosso fórum português, então, porque vocês também não faz daqui um lugar organizado e pacífico? (como já disse muito bem o Stanley)
  16. onPlayerWasted getPlayerTeam -- check the player's team who got killed and the killer.
  17. Show the code. No one will know where the error is without the code.
  18. Skin mod: https://community.multitheftauto.com/ind ... s&id=11893 DONE
  19. Acho que não precisa de mais postagens, já que MrBugsFive encontrou uma hospedagem. Mesmo que ainda não estivesse resolvido, vocês estão bem fora do assunto. Mas eu sei que é raro ver isso entre vocês
  20. The first or the second argument of the function 'round5spawnplayer' and 'round5spawnplayer2' is returning 0. And cor is not returning a table for some reason.
  21. local score = 0 function hello() dxDrawText("Score: " .. tostring(score), 118, 358, 291, 380, tocolor(255, 174, 0, 255), 1.30, "default-bold", "left", "top", false, false, false, false, false) end function wepfire() if getElementHealth(source) == 0 then score = score + 3 addEventHandler("onClientRender", root, hello) end end addEventHandler("onClientPlayerWasted", localPlayer, wepfire) addCommandHandler("removedx", function () removeEventHandler("onClientRender", root, hello) end ) It should work.
  22. DNL291

    I Dont Know

    Change the event name "onPlayerSkin" to: "setPlayerSkin".
  23. The money will not be synchronized with the server side, it will be only set to the client. -- Client-side function panel() w = guiCreateWindow(x,y,w,h,"money",false) b = guiCreateButton(x,y,w,h,"moneyb", false, w) showCursor(true) addEventHandler("onClientGUIClick", b, function() triggerServerEvent("moneyhere", localPlayer) destroyElement(w) showCursor(false) end, false) end -- Server-side function givemoney() if source == client then givePlayerMoney(source, 10000) end end addEvent("moneyhere",true) addEventHandler("moneyhere", root, givemoney)
  24. Onde está a função isMouseInPosition? Se o botão é o retângulo-DX na linha 10, então é por que está definido 0 na altura dele. Também, tem um texto-DX na linha 12 que não tem nada escrito.
×
×
  • Create New...