Jump to content

ber

Members
  • Posts

    167
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by ber

  1. Estou precisando de um MOD de concessionária/garagem e achei um na net que parece ser muito bom, porém analisando ele não "destroi" e "cria" o veículo quando o player guarda e tira da garagem, ele apenas manda para outra dimensão aleatória, isso faz com que o servidor fique pesado e lagando ou pelo fato de estar em outra dimensão já dá uma diminuída?
  2. Isso deve resolver seu problema: setElementRotation(source, 0, 0, 180)
  3. Não tenho certeza, mas creio que quando o veículo estiver com o damageProof ativado os tiros não irão acertar o player dentro pois o carro estará blindado.
  4. Se estiver testando em uma host pode ser porque excedeu o limite de armazenamento, quando isso acontece os scripts até são enviados para a host mas na hora de executá-los aparece esse erro indicando ser o meta.
  5. Não pode ser utilizada uma variável no accountData, você precisa primeiro pegar a conta desse elemento utilizando 'getPlayerAccount' e aí sim usar ela no accountData. Exemplo: local contaPlayer = getPlayerAccount(source) setAccountData(contaPlayer , "Porte", sim) Outra coisa, não use set/getAccountData de uma vez pois eles consomem muita memória e demoram para serem buscados. É melhor usar o set/getAccountData apenas quando o player logar/quitar do servidor, e baseado no resultado você setar o elementData no player. Exemplo: function savePorte(source) local conta = getPlayerAccount(source) if getElementData(source, "Porte") == true then setAccountData(conta, "Porte", 1) end end addEventHandler("onPlayerQuit", getRootElement(), savePorte) function restorePorte(source) local conta = getPlayerAccount(source) if getAccountData(conta, "Porte") == 1 then setElementData(source, "Porte", true) end end addEventHandler("onPlayerLogin", getRootElement(), restorePorte) Seu código corrigido: function Porte() local Porte = getElementData ( source, "Porte" ) if ( getPlayerMoney (source) >= 10000) then if Porte == false then takePlayerMoney(source, 10000) setElementData(source, "Porte", true) exports.Scripts_Dxmessages:outputDx(source,"Você Comprou Um Porte de Armas por R$:10,000 ","success",source, true) else exports.Scripts_Dxmessages:outputDx(source,"Você Ja Possui Porte","error",source, true) end else exports.Scripts_Dxmessages:outputDx(source,"Você Não Possui DInheiro suficiente Para Comprar o Porte","error",source, true) end end addEvent("Porte", true) addEventHandler("Porte", root, Porte) function savePorte(source) local conta = getPlayerAccount(source) if getElementData(source, "Porte") == true then setAccountData(conta, "Porte", 1) end end addEventHandler("onPlayerQuit", getRootElement(), savePorte) function restorePorte(source) local conta = getPlayerAccount(source) if getAccountData(conta, "Porte") == 1 then setElementData(source, "Porte", true) end end addEventHandler("onPlayerLogin", getRootElement(), restorePorte)
  6. Alterar é impossível mesmo, mas caso queira reseta-los você consegue excluindo o MOD de ID e colocando ele novamente do jeito que você o baixou.
  7. Depende, se o eventHandler que você está usando o source for o player sim, caso contrário use player.
  8. Ou seria mais fácil mudar todo esse script para server-side, pois não vi nenhuma função aí que seja apenas client-side. Só dar ctrl-c ctrl-v no script de server-side e mudar o localPlayer
  9. Poderia reformular sua pergunta? Pois pra mim não ficou muito claro seu problema. O alarme só dispara uma vez? Tipo, se um veículo estiver disparado e você bater em outro ele não vai disparar nesse mais recente?
  10. Os sistemas de ID usam o ID real da conta pelo comando getAccountID, e não existe o setAccountID, então ele apenas puxa o ID da conta do jogador e não tem como alterar, se alterar o elementData quando o player relogar vai voltar para o ID antigo mesmo.
  11. dxDrawRectangle(screenW * 0.5514, screenH * 0.5022, screenW * 0.1319, screenH * 0.0522, COLOR, false) COLOR = tocolor(0, 0, 0, 150) if isCursorOnElement (screenW * 0.5514, screenH * 0.5022, screenW * 0.1319, screenH * 0.0522) then COLOR = tocolor(30, 144, 255, 150) end O COLOR você coloca no lugar do tocolor(xxx, xxx, xxx, xxx)
  12. function onLogout () kickPlayer (source, nil, "Logging out is disallowed.") end addEventHandler ("onPlayerLogout", getRootElement(), onLogout)
  13. Estou tentando de todas as maneiras fazer uma progress bar por timer mas ela sempre buga e não começa do início, ela tipo "avança" um pouco e quando ela termina ainda demora uns 5~10 segundos para que o timer finalize e a bar suma. Esse é o código que estou usando (não o fiz do 0, apenas editei um pouco): function ProgressBar () local barra = interpolateBetween(0, 0, 0, 0.3558, 0, 0, (getTickCount()-tick)/3/60000, "Linear") dxDrawRectangle(screenW * 0.3221, screenH * 0.4701, screenW * 0.3558, screenH * 0.0599, tocolor(0, 0, 0, 150), false) dxDrawRectangle(screenW * 0.3221, screenH * 0.4701, screenW * barra, screenH * 0.0599, tocolor(30, 144, 255, 150), false) dxDrawText("Hackeando...", screenW * 0.4524, screenH * 0.4844, screenW * 0.5476, screenH * 0.5091, tocolor(255, 255, 255, 255), 1.00, dxfont0_icons, "left", "top", false, false, false, false, false) end Queria saber como eu faço para ela ficar perfeitamente sincronizada com um tempo de 3 minutos, pois desse jeito que ta não fica 100% sincronizado
  14. Na próxima vez tenta colocar o código aqui para que possamos ajudar melhor, pois senão serão apenas suposições. Eu suponho que o Blip está sendo criado pela função createBlipAttachedTo, você precisa mudar para createBlip e colocar as coordenadas do player que ligou, e para pegar essas coordenadas basta usar o getElementPosition
  15. https://wiki.multitheftauto.com/wiki/IsVehicleReversing <- usa esta função para verificar se o veículo esta dando ré e use marker corona para fazer a luz
  16. Não seria mais simples um: onVehicleStartEnter > getVehicleController > if getElementType(ped) then > destroyElement ??
  17. Não é o jeito certo mas o importante é que funciona: local id = getElementModel(altere aqui pela var do veiculo) if id ~= 418 and id ~= 416 and id ~= 433 and id ~= 427 and id ~= 490 then ......... ... ....... ..... else outputChatBox("Você não pode desmanchar este veículo", source) end end Essa função irá ver o ID do veículo que estão tentando desmanchar e se for diferente de todos esses IDs aí ele irá aceitar. Mas como o colega informou aí encima, o correto é utilizar tabela para deixar o código mais "organizado".
  18. Estou fazendo um trabalho de carregador e preciso da animação em que o ped ergue os dois braços para tipo segurar uma caixa, porém não consigo colocar essa anim e fazer com que ele consiga andar para levar a caixa em outro lugar, como posso fazer isso?
  19. Eu uso um spawn de veículos por marker no meu servidor que peguei na net e editei só o básico, mas ja joguei em outros servidores em que tinha um spawn melhorado, onde se o veículo estivesse spawnado ele podia passar na marker que não acontecia nada, só conseguiria pegar outro veículo se ele destruísse o anterior passando na outra marker de destroy. Dessa forma fica mais organizado pois não precisa spawnar o veículo longe da marker, pois se spawnar dentro da marker vai ficar bugando infinitamente. local viatura = createMarker(1278.04, -1804.923, 13.384 -1, "cylinder", 2.5, 30, 144, 255, 80) local rocam = createMarker(1278.187, -1810.993, 13.386 -1, "cylinder", 2.5, 30, 144, 255, 80) local destroy = createMarker(1277.769, -1798.945, 13.389 -1, "cylinder", 2.5, 255, 0, 0, 80) veh = {} function spawnVT(source) if isElementWithinMarker(source, viatura) then if isElement(veh[source]) then destroyElement(veh[source]) end veh[source] = createVehicle(597, 1278.108, -1817.025, 13.387, 0, 0, 90) warpPedIntoVehicle(source, veh[source]) end end addEventHandler("onMarkerHit", viatura, spawnVT) function spawnROCAM(source) if isElementWithinMarker(source, viatura) then if isElement(veh[source]) then destroyElement(veh[source]) end veh[source] = createVehicle(523, 1278.108, -1817.025, 13.387, 0, 0, 90) warpPedIntoVehicle(source, veh[source]) end end addEventHandler("onMarkerHit", rocam, spawnROCAM) function destroyVeh(source) if isElementWithinMarker(source, destroy) then destroyElement(veh[source]) end end addEventHandler("onMarkerHit", destroy, destroyVeh) function sairserver() destroyElement(veh[source]) end addEventHandler("onPlayerQuit", root, sairserver) Já tentei alterar para: veh = {} function spawnVT(source) if isElementWithinMarker(source, viatura) then if isElement(veh[source]) then return end veh[source] = createVehicle(597, 1278.108, -1817.025, 13.387, 0, 0, 90) warpPedIntoVehicle(source, veh[source]) end end addEventHandler("onMarkerHit", viatura, spawnVT) ou: veh = {} function spawnVT(source) if isElementWithinMarker(source, viatura) then if veh[source] == nil then veh[source] = createVehicle(597, 1278.108, -1817.025, 13.387, 0, 0, 90) warpPedIntoVehicle(source, veh[source]) end end end addEventHandler("onMarkerHit", viatura, spawnVT) porém não obtive sucesso, ele não destrói o meu veículo mas cria um novo do mesmo jeito, ja tentei de muitas formas consertar isso mas não consigo... Se puderem me ajudar ficarei muito agradecido.
  20. Sempre que eu abro algum script mais avançado para editar sempre me deparo com duas linhas/conjuntos de código que eu nunca entendo, uma é for v, in players do - algo assim, não faço idéia do que seja isso e ja tentei procurar na wiki do mta e não tem nada a respeito disso. a outra é geralmente veh[player] - sei que ela cria um veículo associado ao player para facilitar depois para ser destruído ou algo assim, mas eu posso usar esse [player] em outras ocasiões também? quais seriam?
  21. Não, abaixo do warpPed você coloca setVehicleHandling(veh[player], hand). como disse ali encima esse nome antes do = é uma indicação para aquela função, se você colocar o ID do carro não vai acontecer nada, você precisa nomear aquela ação e usar esse nome para que seja executado algo referente a ela
  22. Da pra fazer usando o esquema de banco ou dinheiro sujo, só criar um elementData("Dinheiro:VIP") tipo assim. Procura na net um script de banco ou dinheiro sujo descompilado e estude o código dele e veja o que da pra reutilizar pra adiantar seu trabalho.
  23. Você pode usar um cancelEvent junto com a onVehicleDamage ou um setVehicleDamageProof(true) dentro da função de spawn do veículo
×
×
  • Create New...