Jump to content

DNL291

Retired Staff
  • Posts

    3,875
  • Joined

  • Days Won

    67

Everything posted by DNL291

  1. Sim, o 3000 é o tempo em milisegundos (segundos * 1000) e o 1 as vezes que irá executar o setTimer (se for 0 é infinito). local time = getTimerDetails( armaCooldown ) outputChatBox( "Tempo: "..tostring(time) )
  2. Sim, no primeiro método funcionará se deixar o allowRemoteTrigger = false, e isso pode ser vantajoso em performance, mas não posso confirmar, mas o contra seria a quantidade de addEvent's para cada mod. O segundo acho mais viável.
  3. local screenW, screenH = guiGetScreenSize() local armaCooldown local equipCooldown function vip() triggerServerEvent ( "ClientHaveLevel", localPlayer ) end addCommandHandler ("vip", vip) function armavip () if armaCooldown and isTimer(armaCooldown) then return end showCursor (true) triggerServerEvent("onGreeting", localPlayer, "Armas") guiSetEnabled(arma,false) armaCooldown = setTimer(guiSetEnabled,3000,1,arma,true) end function equipvip () if equipCooldown and isTimer(equipCooldown) then return end showCursor (true) -- pode ser desnecessário, caso o cursor já esteja ativado triggerServerEvent("onGreeting2", localPlayer, "Recursos") -- não precisa usar outro evento, só passar o parâmetro guiSetEnabled(equip,false) equipCooldown = setTimer(guiSetEnabled,3000,1,equip,true) end function vip2() panelvip = guiCreateWindow((screenW/2)-(448/2), (screenH/2)-(280/2), 448, 280, "PAINEL V.I.P", false) guiWindowSetSizable(panelvip, false) showCursor ( true ) guiSetAlpha(panelvip, 1.00) guiSetProperty(panelvip, "CaptionColour", "FF6AE419") arma = guiCreateButton(48, 144, 341, 38, "EQUIPAMENTOS", false, panelvip) equip = guiCreateButton(48, 193, 341, 38, "SUPRIMENTOS", false, panelvip) close = guiCreateButton(156, 250, 114, 37, "FECHAR", false, panelvip) memo = guiCreateMemo(17, 30, 421, 104, "Obrigado por adquirir vip por 30 dias em nosso servidor\nNosso painel esta em BETA\n\nNÃO ABRA OUTROU PAINEL JUNTO", false, panelvip) guiMemoSetReadOnly(memo, true) addEvent( "showvip",true ) addEventHandler ( "onClientGUIClick", arma, armavip, false ) addEventHandler ( "onClientGUIClick", equip, equipvip, false ) addEventHandler ( "onClientGUIClick", close, function() guiSetVisible(panelvip, false) showCursor(false) end, false ) end addEvent( "ShowVipPanel", true ) addEventHandler( "ShowVipPanel", getRootElement(), vip2) Tente isso
  4. A do comando de abrir o painel já deve ser suficiente .
  5. Acho a minha segunda alternativa mais viável, leve seria até mais que os dois outros métodos - exports e trigger/executeCommandHandler. Além disso mais fácil para fazer sua tarefa com menos código. Não tenho 100% de certeza que irá funcionar sem haver imprevistos mas definitivamente vale a pena por em prática.
  6. Quando o jogador digitar o comando chame setTimer (ou com getTickCount) e a função deve ser armazenada numa variável que você irá verificar sempre que o comando você chamado. Se você não tem conhecimento suficiente, sugiro mostrar aqui seu código.
  7. Funciona, mas pelo que entendi, dessa forma você teria que adicionar eventos novos em cada resource, e no trigger identificar ele de alguma forma - usando o ID do mod no nome do evento por exemplo. Alternativamente, daria também pra você fazer criando o evento no próprio mod manager e chamando triggerEvent. Então nos outros resources, você iria apenas usar addEventHandler("eventName", root, func) e passar o id lá no triggerEvent, assim você verifica qual modelo substituir e faz o resto. Exemplo: -- suponhamos que este é o mod manager addEvent( 'callClientEvent', true ) addCommandHandler( "replace", function( cmd, value ) triggerEvent( "callClientEvent", resourceRoot, value ) end) Resource do mod: addEventHandler("callClientEvent", root, function( v ) outputChatBox( "Valor recebido: "..tostring(v) ) end) Obs: com a primeira alternativa vai funcionar sem precisar ativar o argumento allowRemoteTrigger, já com essa acima, ele deverá ser ativado.
  8. @Poderoso Lembre-se de postar na seção portuguesa/brasileira da próxima vez. Aqui: https://forum.multitheftauto.com/forum/97-portuguese-português/ Use esta função: https://wiki.multitheftauto.com/wiki/DxDrawImageOnElement
  9. Não sabia desse limite por resource, se não fosse essa questão, o melhor seria deixar todos os mods dentro do resource do painel. Não sei qual é esse limite mas para evitar o excesso de resources-mods eu faria um controle em cada um definindo tamanho; pelo menos isso evitaria a quantidade de resources ser muito alta. Também pensei em outras sugestões sobre isso mas pelo trabalho x resultado acho que não vale a pena. Outra alternativa seria usar triggerEvent no painel chamando o evento para ativar o mod.
  10. @ChrisT @stPatrick: Topics posted outside the Other languages sub-forum must be in English. I'll be moving this topic to the hungarian section, please remember that next time.
  11. If I understood it right, you'll need to make your code on the server-side calling a client event with triggerClientEvent which will call 'createInfoBox'.
  12. Este tópico é relacionado ao mesmo assunto: https://forum.multitheftauto.com/topic/114937-definir-setweaponproperty-para-apenas-um-player-sera-que-é-possivel/ Em resumo: setWeaponProperty muda o valor em todos os players, não funciona individualmente. @Lord Henry Você pode reportar sua própria mensagem e pedir a remoção, caso não dê pra remover por você mesmo.
  13. Make sure that getRandomPlayer is returning a player-element, if the server is empty it will return false. function checkVehicleInWater () local randomPlayer = getRandomPlayer() if randomPlayer then triggerClientEvent(randomPlayer,"checkVehicleInWaterClient",randomPlayer) end end setTimer(checkVehicleInWater,1800000,0)
  14. toggleControl https://wiki.multitheftauto.com/wiki/Control_names Deve ser "vehicle_fire" ou "vehicle_secondary_fire"
  15. DNL291

    Acl problem

    line 57 is returning a table. Debug these values with iprint: iprint( settings.cashCount ) iprint( settings.premiumCount ) If you aren't able to fix it show us the whole code.
  16. Pra isso você precisa primeiro do sistema de ID. Então você irá obter com uma função exportada ou getElementData dependendo de como tiver no script, e substitui pela função do sistema de ID.
  17. Aqui @juaosilv Com relação ao cache=false, contanto que você não utilize isso em muitos scripts não tem problema, são poucos KBs e muitas vezes é imperceptível o download, mas sugiro você fazer isso só para os scripts que você acha de muita importância.
  18. DNL291

    marker bug

    Have you used the function mentioned above? (isElementVisibleTo)
  19. Se o mesmo acontece fora do mta então pode ser um problema diferente, caso contrário, faça o seguinte: Baixe o MTA:SA em mtasa.com e reinstale. Se não corrigir, tente atualizando os seus drivers usando um software de atualização de drivers. Pode ser também algum programa executando que esteja interferindo no seu MTA ou você pode estar infectado com um vírus.
  20. Try reinstalling your MTA:SA from mtasa.com. If this didn't help, do the following: download and run MTADiag and follow the instructions. And paste here the pastebin link generated on your clipboard. Also, these topics have the same issue related to yours, so make sure you read them: https://forum.multitheftauto.com/topic/101109-could-not-create-direct3d-font-tahomabd/ https://forum.multitheftauto.com/topic/80449-verdanatff-problem/
  21. Como já foi falado acima se você não pode simplesmente remover o comando e deixar apenas a senha, não da forma que você quer. Você teria que criar 'addCommandHandler' para cada senha definida, e remover/redefinir quando mudar a senha, remover a base. E isso não vale a pena o esforço para uma coisa desse tipo na minha opinião. Você pode optar por um painel no lugar de comando se você não curte usar comandos.
  22. DNL291

    marker bug

    You can use the last argument of the function for this. local inimarker = createMarker (2102.8264160156, -1788.5377197266, 12.5546875, "cylinder", 1.5, 255, 0, 0) local marker1 = createMarker (2067.9577636719, -1731.6177978516, 12.87615776062, "cylinder", 1.5, 255, 0, 0, 255, resourceRoot) local inicio = createBlipAttachedTo(inimarker, 42) local blip1 = createBlipAttachedTo( marker1, 41, 2, 255, 0, 0, 255, 0, 16383, resourceRoot ) local vehjob = {} function inicio(player) if getElementType(player) ~= "player" then return end if vehjob[player] and isElement(vehjob[player]) then destroyElement(vehjob[player]) vehjob[player] = nil end vehjob[player] = createVehicle(462, 2107.9953613281, -1781.9140625, 13.388528823853) outputChatBox("#FF0000Você Aceitou O Emprego De Entregador De Pizza!", player, 255,255,255,true) outputChatBox("#FF0000Entregue As Pizzas Nos Locais Marcados Em Seu GPS!", player, 255,255,255,true) outputChatBox("#FF0000Para Cancelar Seu Emprego Digite /cancelar!", player, 255,255,255,true) -- define a variable here, it should be for each player that enters the marker, so it must be stored in a table just like the vehicle is createPed (297, 2067.1535644531,-1731.5858154297, 14.206628799438, 268.24844360352) warpPedIntoVehicle(player, vehjob[player]) setElementVisibleTo(marker1, player, true) setElementVisibleTo(blip1, player, true) end addEventHandler("onMarkerHit", inimarker, inicio) Try it.
  23. Não dá pra entender o que você quis dizer, dê mais informações por favor.
  24. Andar enquanto executa a animação tem como fazer, só que o jogador pode interromper com as teclas (não tenho certeza se dá pra cancelar a interrupção (setando apenas com setPedAnimation)), se for isso que você quer então esclarecendo: dá pra fazer.
×
×
  • Create New...