zMpyster

Members
  • Content Count

    104
  • Joined

  • Last visited

Everything posted by zMpyster

  1. posCars = { [1] = {-60.607, -1891.674, 7.345, -0, 0, 38.494, 589}, [2] = {-67.794, -1893.794, 7.373, -0, 0, 6.455, 402}, [3] = {-63.686, -1876.661, 7.145, -0, 0, 68.574, 492}, [4] = {-68.76, -1883.958, 7.231, -0, 0, 64.54, 546}, [5] = {-72.508, -1875.779, 7.144, -0, 0, 37.604, 400}, [6] = {-74.556, -1893.794, 7.375, -0, 0, 9.432, 579}, [7] = {-96.755, -1874.517, 7.059, -0, 0, 300.318, 580}, [8] = {-86.229, -1883.356, 7.192, -0, 0, 329.811, 550}, [9] = {-88.031, -1875.9, 7.092, -0, 0, 305.942, 494}, [10] = {-83.617, -1895.983, 7.36, -0, 0, 342, 474}, [11] = {-90.568, -1893.863, 7.321, -0, 0, 324.894, 603}, [12] = {-95.74, -1889.7, 7.257, -0, 0, 322.857, 549, 500}, [13] = {-102.904, -1884.16, 7.173, -0, 0, 316.183, 507}, [14] = {-115.831, -1879.266, 7.087, -0, 0, 320.578, 483}, [15] = {-113.032, -1883.835, 7.151, -0, 0, 309.337, 404}, [16] = {-87.334, -1907.68, 7.5, -0, 0, 350.368, 502}, [17] = {-81.205, -1913.04, 7.581, -0, 0, 9.733, 536}, [18] = {-93.914, -1914.425, 7.576, -0, 0, 339.613, 600}, [19] = {-100.304, -1902.246, 7.412, -0, 0, 323.16, 421}, [20] = {-108.174, -1900.021, 7.369, -0, 0, 307.313, 602}, [21] = {-102.732, -1916.18, 7.583, -0, 0, 330.774, 540}, [22] = {-112.588, -1910.002, 7.491, -0, 0, 311.229, 445}, [23] = {-119.002, -1905.607, 7.423, -0, 0, 304.179, 426}, [24] = {-115.182, -1917.262, 7.581, -0, 0, 294.489, 566}, [25] = {-122.122, -1914.214, 7.529, -0, 0, 315.483, 604}, [26] = {-116.957, -1892.801, 7.26, -0, 0, 305.495, 547}, [27] = {-118.075, -1899.84, 7.35, -0, 0, 303.497, 411}, [28] = {-124.798, -1891.835, 7.234, -0, 0, 314.033}, [29] = {-128.865, -1875.398, 7.014, -0, 0, 293.666}, [30] = {-131.948, -1881.229, 7.084, -0, 0, 312.091}, [31] = {-122.083, -1903.347, 12.111, -0, 0, 325.415}, [32] = {-104.14, -1914.299, 12.289, -0, 0, 344.294}, } function resourceStart() for k=1, #posCars do car[k] = createVehicle(posCars[k][7] or 411, posCars[k][1], posCars[k][2], posCars[k][3], posCars[k][4], posCars[k][5], posCars[k][6]) setVehicleDamageProof(car[k], true) setVehicleLocked(car[k], true) setVehicleColor(car[k], 255, 255, 255) setTimer (function() setElementFrozen(car[k], true) end, 3000, 1) end end addEventHandler("onResourceStart", resourceRoot, resourceStart) Esse script estava normal, porém hj fui iniciá-lo e começou a spawnar 2 carros ao invés de apenas 1 cliente: obj = createObject(1917, -100.8, -1879.4, -4.3, 0.75, 0, 187.75) objLowLOD = createObject ( 1917, -100.8, -1879.4, -4.3,0.75, 0, 187.75,true ) setLowLODElement ( obj, objLowLOD ) engineSetModelLODDistance ( 1917, 300 ) attempt to call global 'engineSetModelLODDistance' (a nil value) esse erro tbm, começou a dar apenas agr, eu queria deixar o debug limpo, esse erro não está interferindo em nada, porém fica dando no debug
  2. Sim, eu dei uma olhada e também vi essas funções, más, eu ainda tenho uma dúvida aqui, por que eles removeram essas funções? Alguém sabe se à algum projeto para novas funções parecidas como essas? O "Custom Train Tracks" ainda ta de pé? Talvez vocês saibam mais do que eu
  3. Alguém sabe se o MTA oferece algum suporte para criar trilhos personalizados, alguma função...?
  4. zMpyster

    zModeler erro

    Comecei agora a mexer com o zmodeler, estou tendo um problema na parte de textura, meu carro estava com a porta invertida, o porta-malas tava como porta direita e a porta direita como porta-malas. Eu arrumei esse problema, exportei o dff tudo certo, porém quando iniciei o recurso do carro ele ficou sem textura, as portas estavam certas porém ele estava sem textura. Eu fiz aquilo de exportar o txd em bmp para ver se no zmodeler ele ficava com textura, porém nada, e as vezes dava esse erro aqui "invalid file signature. file:OpenSaveService.cpp. line:680" Eu tentei colocar a textura pela bola vermelha, porém fica tudo errado, coisas sobrepondo outras.
  5. é como eu disse kkkk, não tenho como testar, não tenho host
  6. Então, é que o que eu queria mesmo é por exemplo: Eu spawno um "linerunner" e um trailer, ai encaixando o trailer no caminhão ele fica preso pra todos, não fica aquela coisa bugada para os players sabe, será que então um código assim funcionaria: test = {} function detachTrailer(theTruck) if test[source] ~= true then attachTrailerToVehicle(theTruck, source) test[source] = true end end addEventHandler("onTrailerAttach", getRootElement(), detachTrailer) function reattachTrailer(theTruck) if test[source] == true then test[source] = false end end addEventHandler("onTrailerDetach", getRootElement(), reattachTrailer) Não testei, porém, creio eu que dessa forma acabaria com o loop infinito
  7. Acho que não é novidade pra ninguém que quando pegamos um trailer de caminhão manualmente sem script, fica bugado para os outros jogadores. Daí eu descobri um evento, "onTrailerAttach" que curiosamente ele é chamado até quando é do jeito manualmente (sem ser pela função "attachTrailerToVehicle") E com isso criei esse pequeno código, que na teoria, ele desbugaria o trailer quando estivesse no caminhão, más, eu não tenho uma host, e por isso não consigo ter a visão dos jogadores, e ai venho perguntar a vocês que já testaram ou podem testar Esse código realmente funciona? Ou a carga fica bugada mesmo assim? function detachTrailer(theTruck) attachTrailerToVehicle(theTruck, source) end addEventHandler("onTrailerAttach", getRootElement(), detachTrailer)
  8. Sim, sim, vou ter que fazer isso, é que com o respawn acabava ficando mais prático
  9. Então mn, tem um problema, como eu to usando o setElementFrozen, buga, algumas horas fica flutuando, outra para como se tivesse kickado no chão e subido novamente, outras em baixo da terra, parece que o carro respawna em "z" aleatório
  10. trailerPos = { [1] = {279.029, 1441.746, 10.586, -0, 0, 87.888}, [2] = {280.043, 1465.739, 10.586, -0, 0, 90.49}, [3] = {279.93, 1396.926, 10.586, -0, 0, 84.962}, [4] = {278.257, 1373.356, 10.586, -0, 0, 80.523}, [5] = {278.169, 1351.675, 10.586, -0, 0, 85.951}, } for k=1, #trailerPos do trailer[k] = createVehicle(435, trailerPos[k][1], trailerPos[k][2], trailerPos[k][3], -0, 0, trailerPos[k][6]) setVehicleRespawnPosition(trailer[k], trailerPos[k][1], trailerPos[k][2], trailerPos[k][3], -0, 0, trailerPos[k][6]) setTimer ( function() setElementFrozen(trailer[k], true) end, 800, 1) end function teste() for k=1, #trailerPos do respawnVehicle(trailer[k]) setTimer ( function() setElementFrozen(trailer[k], true) end, 800, 1) end end addCommandHandler("teste", teste) Então pessoal, queria mostrar pra vcs um bug que ta tendo nesse script, podem ver que a posição é sempre a mesma, só que quando eu respawno o veículo eles ficam bugados, más, usando as mesma coordenadas eu consigo criar eles sem nenhum bug. no createVehicle eles nascem normalmente como qualquer carro no respawnVehicle eles nascem debaixo da terra
  11. Bom pessoal, eu fiz um mapa, e eu queria saber se tem como colocar pra ele ser visto da mesma distância do mapa do GTA SA, pq quando eu vou um pouco pra trás no meu mapa ele some, já no do GTA SA não, o mapa que eu fiz foi feito pelo editor de mapas.
  12. Vocês recomendam que eu armazene em uma variável, ou na hora de chamar a função eu coloque um timer?
  13. Realmente ficou bem mais simplificado, só que ainda persisto com a dúvida do inicio, se dois players chamassem o uber ao mesmo tempo, teria chance de bugar as distâncias?
  14. Na vdd, se vc for testar no debug dessa forma não vai acusar erro, ou seja, não acho que seja um erro, o local pode ser chamado de desnecessário, más, eu coloco pq acostumei
  15. playerOrDist = {} accountName = {} distancia = {} function getUberNear(cliente) tableUber = aclGroupListObjects(aclGetGroup("UBER")) for objects,name in pairs(tableUber)do local accountName = split(name, '.') local player = getAccountPlayer(getAccount(accountName[2])) if (getElementType( player ) == "player" and player ~= cliente) then local jX, jY, jZ = getElementPosition (player) local pX, pY, pZ = getElementPosition (cliente) local dist = getDistanceBetweenPoints3D ( pX, pY, pZ, jX, jY, jZ) if distancia[cliente] == nil or distancia[cliente] == false then distancia[cliente] = dist..","..player else local playerOrDist = split(distancia[cliente], ',') if playerOrDist[1] > dist then distancia[cliente] = dist..","..player end end end end return distancia[cliente] end Testei agr, pensava que no loop, "name" retornava a conta já, más, retorna "user.conta". Pelo oq vi agr ta tudo certo, não da pra testar muita coisa pq precisa de 2 players...
  16. playerOrDist = {} distancia = {} function getUberNear(cliente) tableUber = aclGroupListObjects(aclGetGroup("UBER")) for objects,name in pairs(tableUber)do player = getAccountPlayer(getAccount(name)) if (getElementType( player ) == "player" and player ~= cliente) then local jX, jY, jZ = getElementPosition (player) local pX, pY, pZ = getElementPosition (cliente) local dist = getDistanceBetweenPoints3D ( pX, pY, pZ, jX, jY, jZ) if distancia[cliente] == nil or distancia[cliente] == false then distancia[cliente] = dist..","..player else local playerOrDist = split(distancia[cliente], ',') if playerOrDist[1] > dist then distancia[cliente] = dist..","..player end end end end return distancia[cliente] end a "distancia" eu tinha declarado lá em cima, sorry, na linha 5, eu acho que arrumei, o local na parte "local playerOrDist = split(distancia[cliente], ',')" eu coloquei por causa que o split, faz playerOrDist virar uma tabela contendo duas variáveis (distância e nome). Desculpe os erros bestas, não testei o mod
  17. playerOrDist = {} function getUberNear(cliente) tableUber = aclGroupListObjects(aclGetGroup("UBER")) for objects,name in pairs(tableUber)do player = getAccountPlayer(name) if (getElementType( player ) == "player" and player ~= cliente) then local jX, jY, jZ = getElementPosition (player) local pX, pY, pZ = getElementPosition (cliente) local dist = getDistanceBetweenPoints3D ( pX, pY, pZ, jX, jY, jZ) if distancia[cliente] == nil or distancia[cliente] == false then distancia[cliente] = dist..","..player else local playerOrDist = split(distancia[cliente], ',') if playerOrDist[1] > dist then distancia[cliente] = dist..","..player end end end end return distancia[cliente] end Fiz esse pequeno código, aonde retorna um trabalhador da UBER mais próximo de tal player, estou com uma pequena dúvida, ali na parte "if playerOrDist[1] > dist then", se dois players pedirem uber ao mesmo tempo, tem chance de um número sobrepor o outro ex: cliente(Danilo) - uber mais próximo(carlos) - km(1) cliente2(João) - uber mais próximo(Jorge) - km(6) o meu medo é de quando "Danilo" e "João" pedirem uber ao mesmo tempo, acabe bugando e ficando assim cliente(Danilo) - uber mais próximo(Jorge) - km(6) cliente2(João) - uber mais próximo(Jorge) - km(6) espero que tenham entendido, boa noite!
  18. Bom pessoal, estava fazendo umas hands de veículos e acabei ficando confuso em uma coisa, uns dos critérios usados no MTA para definir a velocidade de tal veículo através de hands é: Aceleração e o peso, eu não sei se entra nessa lista a velocidade máxima, más então, eu fiz duas hands, uma de um Kadett (coloquei no lugar do Elegant) e outra de uma porsche Carrera GT(no lugar no alpha). Eu modifiquei, a velocidade máxima, inércia, peso, aceleração, deixei a aceleração de ambos no 8, e ai na hora do teste fiquei surpreso, na mesma avenida, o Kadett pegou 141 e a Porsche 140, a velocidade máxima dela era de 330km/h e a do Kadett 174km/h. Bom acabei ficando confuso nessa hora e por isso estou aqui, queria saber quais são todos os critérios utilizados no MTA para determinar a velocidade de tal veículo. OBS: Usei o mod hands, o mais conhecido, eu acho...
  19. Bom gente, gostaria de saber se existe alguma função que retorna as posições das luzes de tal veículo, onde poderia ser usado para fazer um script de seta para veículos
  20. Na verdade nesses veículos ai não, más, eu achei estranho na função aparecer que é compatível com o veículo edit: acabei de testar no elegy e também aconteceu a mesma coisa
  21. Ontem eu estava terminando um script de oficina, em uma função minha ela recuperava todos os spoilers disponíveis no veículo, ai que ta o problema, na wiki do MTA o id 1164 é um spoiler Só que tem um pequeno problema, quando eu tento colocar esse spoiler em qualquer carro ele simplesmente buga e não acontece nada (não é colocado nenhum spoiler e o carro fica sem nenhum spoiler como estava), sendo que na função local upgrade = getVehicleUpgradeOnSlot(car, 2) ele é retornado, agora eu não sei se o bug é do MTA ou do meu mod...
  22. Conta seria um valor de xp do player que chega de 0 a 100
  23. local screenW, screenH = guiGetScreenSize() dxDrawRectangle(screenW * 0.4319, screenH * 0.0898, screenW * 0.1464, screenH * 0.0195, tocolor(0, 0, 0, 39), false) dxDrawRectangle(screenW * 0.4319, screenH * 0.0898, screenW*(conta1*2), screenH * 0.0195, tocolor(251, 165, 0, 254), false) -- quadrado que varia do valor de conta1 Bom, o conta1 ele varia de 0 até 100, eu queria saber como posso deixar o quadrado certo em todas as resoluções
  24. Eu, me esqueci que tinha como fazer contas mais simplificadas nesse caso kk, não sou muito bom ainda com script, acho que essa é a primeira função que faço...