Jump to content

DNL291

Retired Staff
  • Posts

    3,875
  • Joined

  • Days Won

    67

Everything posted by DNL291

  1. DNL291

    checkpoint

    Did you put the coordinates on markers table?
  2. DNL291

    set skin

    validSkins [math.random(1,#validSkins)], 0, 0 ) : missing the first parenthesis validSkins[math.random(1,#validSkins)] : table 0, 0 : argument ? Maybe you forgot to use the function before the table.
  3. DNL291

    checkpoint

    Something like this should work: local markers = { {x, y, z}; {x, y, z}; } local curMarkerBlip local curMarker local ID function event() call(getResourceFromName("guitext"),"outputServerGuiText",root,"An event was placed on your Map",0,255,0) createCheckpoint( 1 ) ID = 1 end addEvent ("event", true) addEventHandler ("event", root, event) function createCheckpoint(ID) if ID then if isElement(curMarker) and isElement(curMarkerBlip) then destroyElement(curMarker) destroyElement(curMarkerBlip) end local x, y, z = unpack(markers[tonumber(ID)]) curMarker = createMarker( x, y, z, "checkpoint", 2, 135, 191, 255, 200 ) curMarkerBlip = createBlipAttachedTo( curMarker, 49 ) return true end return false end addEventHandler( "onClientMarkerHit", resourceRoot, function (hitPlayer, dim) if (curMarker and source == curMarker and hitPlayer == localPlayer and dim) then ID = ID + 1 if ID > #markers then ID = 1 end createCheckpoint( ID ) -- create the next checkpoint end end )
  4. Garage_OBJ_COL = { {"garage_1.col",1484}, {"garage_2.col",1485}, } function replacemodels(player) for i,v in ipairs(Garage_OBJ_COL) do engineReplaceCOL( engineLoadCOL(v[1]), v[2] ) end end addEventHandler("onClientResourceStart",resourceRoot,replacemodels) It's a client-side code.
  5. Baixe e execute o MTADiag: https://mirror.multitheftauto.com/mtasa/utils/MTADiag.exe Siga as instruções e cole aqui o link gerado no fim da verificação.
  6. It's probably a problem with the texture.
  7. In addition, you can use onClientPlayerQuit event to refresh the list, a timer will also be useful for that.
  8. Você está tendo este mesmo problema: https://forum.multitheftauto.com/topic/104698-erro-mta/ ? Se é o mesmo tipo de problema, certifique-se que o seu MTA esteja instalado corretamente, com todas as dependências necessárias e permissões.
  9. --mission 4-- local Mfim4 = createMarker ( -1875.0139160156, -1474.5141601563, 1 -1, "ring", 4, 0 ,255 ,0, 255) local Bfim4 = createBlipAttachedTo ( Mfim4, 20 ) setElementVisibleTo ( Bfim4, root, false ) local veh4 = {} function inicio4 () if isElement (veh4[client]) then -- Client = localPlayer, somente neste caso. destroyElement (veh4[client]) veh4[client] = nil end Trabalho = true veh4[client] = createVehicle (493, -615.03826904297, 1807.0825195313, 0.19021162390709, 0, 0, 76.391845703125) setElementVisibleTo ( Bfim4, client, true ) warpPedIntoVehicle (client, veh4[client]) outputChatBox ("Take this Flag Card without leaving the vehicle!", client, 255, 255, 0) local player = client addEventHandler ( "onVehicleExplode", veh4[client], function () if (veh4[player]) and isElement(veh4[player]) then destroyElement (source) setElementVisibleTo ( Bfim4, player, false ) outputChatBox("Mission failled, your vehicle blow.", player , 255, 0, 0) end end) end addEvent ("iniciaJob4", true) addEventHandler ("iniciaJob4", getRootElement(), inicio4)
  10. Provavelmente por causa do 'client' que só está disponível no escopo da função inicio4. Algumas formas de obter o dono do veículo: usar getElementSyncer(source) dentro do "onVehicleExplode", criar uma variável "local player = client" e usar a variável player no evento ou chamar uma função passando o jogador e adicionar o evento fora (o que daria mais trabalho).
  11. veh4[client] = createVehicle (493, -615.03826904297, 1807.0825195313, 0.19021162390709, 0, 0, 76.391845703125) addEventHandler ( "onVehicleExplode", veh4[client], function () destroyElement (source) setElementVisibleTo ( Bfim4, source, false ) outputChatBox("#ff0000Mission failled, your vehicle blow", root ,0,0,0,true) end )
  12. local i = math.random( #localitionveh ) local vx vy, vz, vrot = localitionveh[ i ][ 2 ], localitionveh[ i ][ 3 ], localitionveh[ i ][ 4 ], localitionveh[ i ][ 7 ] veh4[client] = createVehicle ( vehicleID, vx, vy, vz, 0, 0, vrot ) Use um nome apropriado pro tópico da próxima vez, por favor.
  13. Tentei aqui reproduzir o bug que você tiveram, mas não consegui, usando o table.sort do código do MaligNos. Qual número decimal vocês testaram?
  14. Desculpa a demora na resposta, tinha esquecido de responder. Pelo que me lembro é um bug com a transferência de números quebrados. Já tive esse tipo de problema há um tempo e não lembro exatamente. Como string deve funcionar normal.
  15. Add to the table the player coordinates of entrance/exit: local Markers = { -- outX, outY, outZ, outInt, outDim, inX, inY, inZ, inInt, inDim {1852.8375244141, -1752.1379394531, 13.3828125, 0, 0, 1839.7073974609, -1745.7852783203, 13.546875, 0, 0, entrancePos = { x, y, z, rot }, exitPos = { x, y, z, rot } }, {1825.2690429688, -1758.576171875, 13.3828125, 0, 0, 1815.5324707031, -1769.6801757813, 13.546875, 0, 0 entrancePos = { x, y, z, rot }, exitPos = { x, y, z, rot } } } local teleportMarkers = {} addEventHandler("onResourceStart",getResourceRootElement(getThisResource()), function() for k, v in pairs(Markers) do local outX, outY, outZ, outDim, outInt, inX, inY, inZ, inDim, inInt = v[1], v[2], v[3], v[4], v[5], v[6], v[7], v[8], v[9], v[10] teleportMarkers[k] = { createMarker(inX, inY, inZ, "cylinder", 1, 0, 255, 0, 180), -- inside createMarker(outX, outY, outZ, "cylinder", 1, 255, 0, 0, 150) -- outside } setElementInterior( teleportMarkers[k][1], inDim ) setElementPosition( teleportMarkers[k][1], inInt ) addEventHandler( "onMarkerHit", teleportMarkers[k][2], function ( hitElement, matchingDimension ) if getElementType(hitElement) == "player" and matchingDimension then local px,py,pz,rot = unpack( Markers[k].entrancePos ) setElementPosition( hitElement, px, py, pz+1 ) setElementRotation( hitElement, 0, 0, rot ) setElementDimension( hitElement, Markers[k][10] ) setElementInterior( hitElement, Markers[k][9] ) end end) addEventHandler( "onMarkerHit", teleportMarkers[k][1], function ( hitElement, matchingDimension ) if getElementType(hitElement) == "player" and matchingDimension then local px,py,pz,rot = unpack( Markers[k].exitPos ) setElementPosition( hitElement, px, py, pz+1 ) setElementRotation( hitElement, 0, 0, rot ) setElementDimension( hitElement, Markers[k][5] ) setElementInterior( hitElement, Markers[k][4] ) end end) end)
  16. O ideal é você usar esse código no lado cliente, então cada jogador terá a marker visível apenas para si. Já sobre as marcas anteriores, acho que o certo seria destruí-las quando tiver na próxima. Você pode criar uma tabelas da localizações e definir uma variável do índice da tabela e usar essa variável pra definir a próxima localização na tabela.
  17. Um método simples é criando uma colshape no objeto e usar onColShapeHit/leave pra abrir/fechar o portão. Edit: Isso se você achar melhor abrir quando se aproximar sem ter que digitar comando, caso contrário, a função que o Lord Henry mencionou vai fazer o que você quer.
  18. local account = getAccount ( account, password ) logIn (source, account, password)
  19. Tried removing Memo's scrollBar and I could not either :/ I don't remember any solution to that, since in your case, the player should be able to select the text. You may consider using another way to show that text-box without using a Memo.
  20. Because the variable will be assigned to only one marker. An easy solution is storing the markers in a table: local teleportMarkers = {} teleportMarkers[k] = { createMarker(inX, inY, inZ, "cylinder", 1, 0, 255, 0, 180), -- inside createMarker(outX, outY, outZ, "cylinder", 1, 255, 0, 0, 150) -- outside } addEventHandler( "onMarkerHit", teleportMarkers[k][1], function ( hitElement, matchingDimension ) setElementPosition(hitElement, outX, outY + 3, outZ) end) addEventHandler( "onMarkerHit", teleportMarkers[k][2], function ( hitElement, matchingDimension ) setElementPosition(hitElement, inX, inY, inZ) end) -- * everything except the table inside the loop * --
  21. Com certeza, mas o problema é que todas as contas do server vão ser mostradas. E obviamente terão contas deslogadas. Então se você realmente quer mostrar o nick, você pode guardar o nick do dono nos dados da conta e usar esse valor pra passar pro client. Ou se quiser deixar só os jogadores online, use getElementsByType em um loop no lugar do getAccounts.
  22. Esse erro é porque o math.round ainda tá lá no script server, sendo que você tirou a função. Então edite a linha do insert: table.insert (killDeath, ratio) No client, edite a linha: guiGridListAddRow (scoreGrid, accounts[i], kills[i], deaths[i], ratio[i]) E coloque o math.round: guiGridListAddRow (scoreGrid, accounts[i], kills[i], deaths[i], math.round(tonumber(ratio[i]), 2))
  23. A função eu digo, a math.round, use ela no lado client.
×
×
  • Create New...