-
Posts
3,875 -
Joined
-
Days Won
67
Everything posted by DNL291
-
O que posso dizer sobre o TIGS98 é que, têm boa habilidade de programação e decente experiência em tal coisa. Além do mais, é confiável e têm maturidade o suficiente. Boa sorte TIGS98.
-
Ajuda com um servidor linux
DNL291 replied to Ryuzaki's topic in Ajudas relacionadas ao MTA:SA (Cliente/Servidor)
Eu ja te ajudei cara, mas parece que você é estúpido demais para receber algum comentário positivo de alguém. Aliás todo mundo ja viu que você não sabe como se comportar em um fórum público, não confunda essa comunidade com o jardim de infância que você frequenta, a propósito não tenho preconceito com sua idade mental mas se você não quer ajuda, não posso fazer nada.. Além disso, se você acha que os meus posts não fazem sentido. Por que você ainda me responde? Qual é o seu objetivo? Se eu soubesse sobre linux ajudaria e não deixava o link do google, ou gosta de julgar o conhecimento dos outros sem conhecer? Se não está afim de dar suporte então não faz postagens. Que tal usar o Skype ou outra ferramenta pra bate-papo e provocações? 90% dos seus posts em áreas de suporte sempre saem do assunto. E o pior é que um membro com essa grande reputação tentou tirar minha moderação, que moral você tem pra isso? Já cansei de você e faz tempo. Estou fechando o tópico, porque o post do Hornet parece ter ajudado e pra não ter discussões aleias com o Xeon. -
Have you at least tried to fix the problem I mentioned? Try this: aw1 = createMarker(-1694.87244, 950.35175, 24.89063,"cylinder",2,255,255,0,80) spawns = {} setElementData(resourceRoot,"map","no") setElementData(resourceRoot,"winMoney","0") addEventHandler("onMarkerHit", aw1, function(player, dim) if (getElementType(player) ~= "player") or not (dim) then return end if checkDuel(player) == "prestart" and ( not checkExistPlrOnDuel(player) ) then online = countPlayersOnDerby() if tonumber(online)+1 < 32 then setData(player,"onCrossMap","yes") exports.killmessages:outputMessage("* - ( Derby ) : Please wait ..",player,255,255,0,true) setD(player) spawnOnMap(player) else exports.killmessages:outputMessage("* ≈- ( Derby ) : No place to you , come later,",player,0,255,0,true) end end end) function checkDuel(p) if tostring(getElementData(resourceRoot,"map")) == "yes" then exports.killmessages:outputMessage("* ≈ [ DerbySystem ] ≈",p,255,255,0,true) elseif tostring(getElementData(resourceRoot,"map")) == "no" then exports.killmessages:outputMessage("* ≈ - ( Derby ) : Please wait to start derby",p,255,255,0,true) end return tostring(getElementData(resourceRoot,"map")) end function checkExistPlrOnDuel(p) per = getElementData(p,"onCrossMap") if tostring(per) == "yes" then return true else return false end end function setData(element,key,vlr) setElementData(element,key,vlr) end function setD(element) setElementDimension(element,30) end function spawnOnMap(p) count = countPlayersOnDerby() spawned = "no" for i,data in pairs(spawns)do if tonumber(data.id) == tonumber(count) then spawned = "yes" v = createVehicle(411,data.x,data.y,data.z,data.rx,data.ry,data.rz) setElementDimension(v,30) setElementFrozen(v,true) setElementData(v,"creatorDerby","yes") break end end if spawned == "no" then randomS = math.random("1","32") for i,data in pairs(spawns)do if tonumber(data.id) == tonumber(randomS) then v = createVehicle(411,data.x,data.y,data.z,data.rx,data.ry,data.rz) setElementDimension(v,30) setElementFrozen(v,true) setElementData(v,"creatorDerby","yes") break end end end toggleControl(p,"enter_exit", false ) warpPedIntoVehicle(p,v) setCameraTarget(p,p) end
-
It's because a marker element is being passed to the function spawnOnMap.
-
ME AJUDEM COM ESSE BUG!
DNL291 replied to brunolehh's topic in Ajudas relacionadas ao MTA:SA (Cliente/Servidor)
Se for o script, só o dono do servidor resolve é claro. Chegou a perguntar a algum amigo se o mesmo acontece com ele? Ou entrar em contato com o proprietário do servidor? Ninguém aqui será capaz de ajudar com um problema que não tem a ver com o cliente (jogador). Tem casos que pode não ser com o script, como já aconteceu comigo. Talvez seja por falta de memória de vídeo livre (no meu caso foi com DX). Mas não acredito que seu problema é o mesmo. -
ME AJUDEM COM ESSE BUG!
DNL291 replied to brunolehh's topic in Ajudas relacionadas ao MTA:SA (Cliente/Servidor)
Isso só acontece com você ou com mais jogadores? Se é só com você então não tem a ver com o script. Você poderia desisinstalar todo o MTA do computador e instalar novamente. Se isso não corrigir, a melhor alternativa é pedir suporte na área global de suporte. -
A mensagem com o bug era outra. De qualquer forma, tente convertendo a codificação para UTF-8 without BOM (ou: sem BOM) e re-compila.
-
Você pode contatar moderador ou admin aqui mesmo no fórum e será avaliado se é apto para ser moderador. A proposito, têm uma abordagem sobre isso nas regras do fórum.
-
As i understood, you want to make an Edit box to edit players their accounts. If "Yes", so that's not possible I don't think he meant it. Don't know exactly what's his issue, but I guess it's related to group panel.
-
What's the problem with your code and where is the warning? What do you mean by "clear this code"?
-
Não precisa. Se estiver com problemas pra usar essa função posta aqui o código.
-
You aren't getting the argument sent to the function 'add1'. function Tag1Name () local jugadorseleccionado = guiGridListGetItemText(GridJugadores3, guiGridListGetSelectedItem(GridJugadores3), 1) triggerServerEvent("addtag1", localPlayer, getPlayerFromName(jugadorseleccionado)) end addEventHandler ("onClientGUIClick", Tag1, Tag1Name ,false) function add1 (thePlayer) if not (isElement(thePlayer)) then return end; local accountName = getAccountName(getPlayerAccount(thePlayer)) if accountName then aclGroupAddObject (aclGetGroup("Admin"), "user."..accountName) outputChatBox ("Painel TAG: Conta '"..accountName.."' Foi Adcionada com sucesso ao Grupo.", client) else outputChatBox ("Painel TAG: Conta Não Especificada.", client) outputChatBox ("Painel TAG: Selecione um Player na Lista.", client) end end addEvent( "addtag1", true ) addEventHandler( "addtag1", root, add1 ) Try it.
-
setPedAnimation Leia a documentação sobre a função pra entender os argumentos.
-
É por isso que te sugeri usar Timestamp, seria melhor e retornaria até os segundos do VIP enquanto esse método atual é incapaz. Sobre a sua pergunta de como usar: Tem um tutorial abordando o uso na categoria 'Tutoriais em geral'. Pra reescrever o seu código usando Timestamp é o seguinte, na função que dá o VIP, você pega as horas de VIP - me refiro ao argumento do comando - converte as horas para segundos [horas * 3600] e grava no banco de dados o tempo de VIP somado com o Timestamp do momento que a função foi chamada. Lembre-se: obedecendo o funcionamento do código, quando for 0, então será eterno. Então vai 0 em vez de somar os segundos. Na função makeDonateTick vai decrescer 3600 do tempo em vez de 1 - faça isso no if statement na parte que atualiza o tempo de VIP. Quando abaixar o tempo, já verifica se ainda é maior ou igual a zero, até porque o VIP já pode ter expirado. @EDIT Corrigindo, quando o valor do tempo for subtraído você pega o Timestamp atual e também o do momento em que o VIP foi concedido. Comparam esses valores verificando se: o tempo armazenado na tabela é menor (ou igual) ao do tempo em que foi dado o VIP. Então vai uma outra coisa, quando armazenar o tempo no banco de dados, grava também o Timestamp (da data que o VIP foi dado) para verificar a data do VIP.
-
Acho melhor você usar outro método para o tempo de VIP, notei que o tempo de todos os VIPs só é atualizado a cada 1 hora. A melhor alternativa seria realmente substituir pelo uso de Time Stamp. Já sobre problema do tempo não expirar, não sei te dizer o que é. makeDonateTick parece estar funcionando sem erros pra mim. Se você quiser, pode usar outputChatBox pra mostrar certos valores como o que retorna na função isPlayerDonator.
-
Você quer dizer que só quando usa um número com decimal que não decresce o tempo? Se for isso então tente usando math.floor em isPlayerDonator(player).
-
Tente isto novamente: function getMyVIP( player ) if isPlayerDonator(player) then if (tonumber(isPlayerDonator(player)) == 0) then -- VIP sem tempo pra acabar return outputChatBox("O seu vip tem duração eterna.", player, 255, 255, 255, true) end local vipSecs = isPlayerDonator(player) * 3600 local sec = math.floor( vipSecs %60 ) local minutes = math.floor( (vipSecs % 3600) /60 ) local hours = math.floor( (vipSecs / 3600) % 24 ) local days = math.floor( vipSecs / 86400 ) outputChatBox("Voce tem "..tostring(days).." dias, "..tostring(hours).." horas, "..tostring(minutes).." minutos, "..tostring(sec).." segundos de vip", player, 255, 255, 255, true) end end addCommandHandler("viptime", getMyVIP)
-
Define uma variável que indica se o DX está mostrando ou não e use-a no evento onClientClick. Assim: local g_isDXVisible = false function pm() dxDrawRectangle(541, 215, 258, 352, tocolor(0, 0, 0, 179), false) dxDrawRectangle(540, 213, 259, 29, tocolor(129, 0, 0, 254), false) dxDrawText("Painel da Policia", 539, 212, 799, 242, tocolor(255, 255, 255, 255), 0.80, "bankgothic", "center", "center", false, false, false, false, false) dxDrawRectangle(538, 562, 159, 0, tocolor(255, 255, 255, 255), false) dxDrawRectangle(540, 524, 259, 28, tocolor(129, 0, 0, 254), false) dxDrawText("Script Criado Por : +Stronger", 538, 521, 799, 552, tocolor(255, 255, 255, 255), 0.50, "bankgothic", "center", "center", false, false, false, false, false) dxDrawRectangle(553, 284, 98, 79, tocolor(129, 0, 0, 254), false) -- Viatura dxDrawRectangle(691, 284, 98, 79, tocolor(129, 0, 0, 254), false) -- Skin dxDrawRectangle(691, 403, 98, 79, tocolor(129, 0, 0, 254), false) -- Vida/Colete dxDrawRectangle(551, 403, 98, 79, tocolor(129, 0, 0, 254), false) -- Armas dxDrawText("Viatura", 552, 281, 651, 363, tocolor(255, 255, 255, 255), 0.75, "bankgothic", "center", "center", false, false, false, false, false) dxDrawText("Skin", 690, 281, 789, 363, tocolor(255, 255, 255, 255), 0.75, "bankgothic", "center", "center", false, false, false, false, false) dxDrawText("Vida\n Colete", 690, 400, 789, 482, tocolor(255, 255, 255, 255), 0.75, "bankgothic", "center", "center", false, false, false, false, false) dxDrawText("Armas", 551, 400, 650, 482, tocolor(255, 255, 255, 255), 0.75, "bankgothic", "center", "center", false, false, false, false, false) dxDrawText("X", 755, 244, 789, 274, tocolor(209, 0, 0, 254), 1.00, "bankgothic", "center", "center", false, false, false, false, false) end function iniciarRenderizacao ( ) addEventHandler("onClientRender", root, pm) g_isDXVisible = true showCursor(true) end addCommandHandler("tut1", iniciarRenderizacao) ------------------------------------------------------------------- function isMouseInPosition ( x, y, width, height ) if ( not isCursorShowing ( ) ) then return false end local sx, sy = guiGetScreenSize ( ) local cx, cy = getCursorPosition ( ) local cx, cy = ( cx * sx ), ( cy * sy ) if ( cx >= x and cx <= x + width ) and ( cy >= y and cy <= y + height ) then return true else return false end end addEventHandler ( "onClientClick", root, function ( _, state ) if state == "down" and g_isDXVisible and not isConsoleActive() and not isMTAWindowActive() then -- Viatura if isMouseInPosition ( 553, 284, 98, 79 ) then triggerServerEvent ( "darAuto", getLocalPlayer() ) -- Skin elseif isMouseInPosition ( 691, 284, 98, 79 ) then triggerServerEvent ( "onGreetinC", getLocalPlayer() ) -- Vida / Colete elseif isMouseInPosition ( 691, 403, 98, 79 ) then triggerServerEvent ( "VidaColete", getLocalPlayer() ) -- Armas elseif isMouseInPosition ( 551, 403, 98, 79 ) then triggerServerEvent ( "onGreeting", getLocalPlayer() ) -- Fechar elseif isMouseInPosition ( 755, 244, 34, 30 ) then removeEventHandler ( "onClientRender", root, pm ) g_isDXVisible = false showCursor ( false ) end end end )
-
Tente isto aqui: function getMyVIP( player ) if isPlayerDonator(player) then local hours = isPlayerDonator(player) if (tonumber(hours) == 0) then -- VIP sem tempo pra acabar return outputChatBox("O seu vip tem duração eterna.", player, 255, 255, 255, true) end local vipSecs = ( isPlayerDonator(player) * 60 ) * 60 local sec = ( vipSecs %60 ) local minutes = math.floor ( ( vipSecs % 3600 ) /60 ) local hours = math.floor ( ( vipSecs % 86400 ) /3600 ) local days = math.floor ( vipSecs /86400 ) outputChatBox("Voce tem "..tostring(days).." dias, "..tostring(hours).." horas, "..tostring(minutes).." minutos, "..tostring(sec).." segundos de vip", player, 255, 255, 255, true) end end addCommandHandler("viptime", getMyVIP)
-
Você entendeu errado. Substitua revistar com "seu_comando", de revistar para "revistar", como o Stanley disse.
-
Use a função secondsToTimeDesc Já que está retorna horas, você pode converter em segundos assim: local hours = isPlayerDonator(plr) secondsToTimeDesc(( hours * 60 ) * 60)
-
Deve ser 'thePlayer' não retornando um elemento-jogador.
-
command deve ser nulo ou não retorna uma string com o comando. E também, falta um parêntese para fechar a função addCommandHandler.
-
tabPanel hides the last tab depending on resolution
DNL291 replied to -ffs-AbodyRulez's topic in Scripting
You don't have to define locally the variable of each gui-element created. You can do this way: local guiWidth, guiHeight = 0.6, 0.6 local tabWidth, tabHeight = 0.32, 0.25 local centerX, centerY = .5 - (guiWidth / 2), .5 - (guiHeight / 2) local tCenterX, tCenterY = .5 - (tabWidth / 2), .5 - (tabHeight / 2) About your issue, I don't think the text length of the tab is causing this problem (even though I may be wrong). My guess is that your code is adjusting the interface to fit in all resolutions and causing this. I wasn't able to realize this, by looking at the code you posted, though. Try changing positions from relative to absolute and see if it works. If the problem persists, post here the entire code (or send me via PM). -
tabPanel hides the last tab depending on resolution
DNL291 replied to -ffs-AbodyRulez's topic in Scripting
Well, the tab panel has a parent element which is a window. In this case, try positioning the tab panel without adjusting their positions. Look at the code of the tab and see if there's nothing wrong with it, by comparing with other gui-elements in the window - something should be wrong since it happens only to the tab panel.