Jump to content

Search the Community

Showing results for tags 'resources'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Multi Theft Auto: San Andreas 1.x
    • Support for MTA:SA 1.x
    • User Guides
    • Open Source Contributors
    • Suggestions
    • Ban appeals
  • General MTA
    • News
    • Media
    • Site/Forum/Discord/Mantis/Wiki related
    • MTA Chat
    • Other languages
  • MTA Community
    • Scripting
    • Maps
    • Resources
    • Other Creations & GTA modding
    • Competitive gameplay
    • Servers
  • Other
    • General
    • Multi Theft Auto 0.5r2
    • Third party GTA mods
  • Archive
    • Archived Items
    • Trash

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


About Me


Member Title


Gang


Location


Occupation


Interests

  1. Hello all. This is another custom map open to the public of the MTA community made by me. It's a new island where players are free to go and explore. Please be aware this map will not come with any resources other than the map itself, draw distance and some custom textures. Feel free to use the map for any gamemode. This map offers the following stuff (Total Objects: 1622): - Airport - Beaches - Bridges - Contruction Area - Dock - Factories - Fire Department - Forested Area - Gas Station - Hospital - Parking Lots - Police Station - Restaurants - Ships - Shopping Area - Skyscrapers - Small Mountain - Stunt Objects - Suburban Area - Traffic Lights, Lampposts - Warehouses VIDEO: SCREENSHOTS: INSTALLATION: 1 - Simly unpack the ZIP file. Open the "resources" folder and copy the "Custom-City-LS" folder to: <MTA installation directory>\server\mods\deathmatch\resources 2 - Connect to your server and type "refresh" in the console window so the server will detect the new resources. 3 - Now in the console again type in: start Custom-City-LS. That's it Note: you can also open it with the map editor. LOCATION: Los Santos X: 2904 Y: -792 Z: 11 CLICK HERE TO DOWNLOAD This map wasn't rushed in any way, I've always tried to deliver high quality maps, also it has been tested for bugs and gameplay. Please do not upload these files on any other site. However, you are welcome to share the link to this site whereever you want. Cheers and have fun! MORE MAPS FOR FREE: [RACE] Reiko's Map-Pack [RACE] RG's Map-Pack [RACE] Custom Racing Circuit Map-Pack
  2. MTASA Typescript I am developing utility packages for transpiling TypeScript into an MTASA-compatible Lua code. I would like to share that project to receive some suggestions and, I believe, to help someone in resource writing. Why Lua is not so good Classes. Lua does not support classes (syntax) from scratch. If you want to write OOP code with your own classes, you have to use metatables to implement class objects behavior. That's make the source code more complicated, than it could be. Hints (from your IDE). Lua is dynamic typed language, therefore, it's hard to determine, what the variable is and, hence, IDE cannot hint you function declarations, object methods and etc. MTASA Lua is still 5.1 (it is not developing). Lua, like any programming language, is developing, however MTASA core strongly linked to Lua 5.1. Why TypeScript There is TypeScriptToLua project. My project is based on TypeScriptToLua (I use it as a dependency). General purpose of TypeScriptToLua: convert (transpile) typescript code into Lua code. Thus, you can use TypeScript without modifying MTASA core. You are available to not use types in some parts of code (you are not restricted to use types everywhere). The TypeScript is being developed by Microsoft and, I believe, that TypeScript will be alive for several years. When to not use TypeScript (where to use Lua instead of TypeScript) 1. If you are not familiar with Lua or with scripting in general. 2. if you are writing simple script. Introduction Video I have made the video, where I describe Lua disadvantages, explain, why I have chosen TypeScript (and language transpiling) and write an example. Few word about mtasa-lua-types I have created this package to provide MTASA declarations in TypeScript. If you would like to create a resource, you haven't to install it manually, just use the boilerplate. Quick Start I have provided the tutorial here: https://github.com/mtasa-typescript/resource-boilerplate. So, you have to install NodeJS and download my boilerplate. And,... you are ready to code. If you have any ideas, issues or suggestions -- post them below, or in youtube comments, or in github issues ? Example code (from youtube video) import { Player } from 'mtasa-lua-types/types/mtasa/server/oop/Player'; import { mtasa } from 'mtasa-lua-types/types/mtasa/server'; interface GithubCommitApiResponse { commit: { message: string; } } mtasa.addCommandHandler('getcommit', function(player: Player, cmd: string) { mtasa.fetchRemote( 'https://api.github.com/repos/mtasa-typescript/mtasa-lua-types/commits?per_page=1', (data: string) => { const json = mtasa.fromJSON(data) as GithubCommitApiResponse mtasa.outputConsole(`The last commit message: ${json.commit.message}`) } ) }) Future plans - Github bot, that will crawl mtasa wiki and update mtasa-lua-types continuously - Add better hinting for `addEventHandler` function Links WebSite: https://mtasa-typescript.github.io/ GitHub MTASA TypeScript Projects: https://github.com/mtasa-typescript Resource Boilerplate: https://github.com/mtasa-typescript/resource-boilerplate Resource Example: https://github.com/mtasa-typescript/resource-example
  3. Necesito ayuda con este script de trabajo para Petrolero. El trabajo consiste en que después de aceptar el trabajo en la agencia y en el punto de lugar. Agarrar un Camión, ingresar a una plataforma, seleccionar el destino o ruta, luego de eso se te añade el tráiler atrás del camión y llevarlo a una gasolinera dejar la carga y que te pague al dejarla. Hasta ahí todo bien y funciona, excepto el pago. cuando dejas la carga no da el dinero, tampoco sale la alerta de haberla entregado. Lo compare con la mayoría de los scripts de trabajos que si pagan y no logro encontrar el fallo. ¿Alguien me podría decir que es lo que esta mal? dejo el client y server, el meta y mapeo que tienen estan bien y funcionando. los paneles para elegir rutas tambien. Solo el final del recorrido es lo que no da el pago.... NOTA: el script original esta en portugues, yo voy traduciendo al español solo los dxDrawText, outputChatBox y los comandos por escrito, este es el client ↓↓↓↓↓↓ local screenW,screenH = guiGetScreenSize() local resW, resH = 1366,768 local x, y = (screenW/resW), (screenH/resH) -------------------------------------------------------------------- function Window(rnames) if isElement(myWindow) then return end local screenW, screenH = guiGetScreenSize() myWindow = guiCreateWindow((screenW - x*485) / 2, (screenH - y*404) / 2, x*485, y*404, "Rotas", false) Rotas = guiCreateGridList(x*40, y*40, x*405, y*275, false, myWindow) guiWindowSetSizable(myWindow, false) guiSetAlpha(Rotas, x*0.70) guiGridListAddColumn( Rotas, "Rotas", x*0.85 ) for k,v in pairs(rnames) do row = guiGridListAddRow ( Rotas ) guiGridListSetItemText ( Rotas, row, 1, tostring(k), false, false ) end showCursor(true) fechar = guiCreateButton(x*275, y*334, x*168, y*35, "Cerrar", false, myWindow) escolher = guiCreateButton(x*42, y*334, x*168, y*35, "Cargar", false, myWindow) end addEvent("JOBUS>AbrirPainel<Client", true) addEventHandler("JOBUS>AbrirPainel<Client", localPlayer, Window) -------------------------------------------------------------------- function botoes(bt,state) if state == "up" and bt == "left" then if source == fechar then if isElement(myWindow) then destroyElement(myWindow) showCursor(false) end end if source == escolher then local selectedItemx = guiGridListGetSelectedItem(Rotas) local nome = guiGridListGetItemText(Rotas, selectedItemx, 1) if nome == nil then exports.Script_Textos:createNewDxMessage('Seleccione una ruta para cargar su camión!', 255, 255, 255) return end triggerServerEvent("request>Startrota>Server",localPlayer,localPlayer,nome) if isElement(myWindow) then destroyElement(myWindow) showCursor(false) end end end end addEventHandler("onClientGUIClick", root,botoes) -------------------------------------------------------------------- function blips(state,x,y,z) if state == true then if not isElement(blips) then blips = createBlip( x, y, z ) end else if isElement(blips) then destroyElement(blips) end end end addEvent("JOBUS>blips<Client", true) addEventHandler("JOBUS>blips<Client", localPlayer, blips) -------------------------------------------------------------------- local g_screenX, g_screenY = guiGetScreenSize(); local gScale = 0.3; local gAlphaDistance = 25; local gMaxDistance = 50; local gTextAlpha = 120; local gTextSize = 0.7; local gAlphaDiff = gMaxDistance - gAlphaDistance; gScale = 1 / gScale * 800 / g_screenY; local gMaxScaleCurve = { { 0, 0 }, { 3, 3 }, { 13, 5 } }; local gTextScaleCurve = { { 0, 0.8 }, { 0.8, 1.2 }, { 99, 99 } }; local gTextAlphaCurve = { { 0, 0 }, { 25, 100 }, { 120, 190 }, { 255, 190 } }; local x = 269.73334 local y = 1415.76489 local z = 10 addEventHandler("onClientRender",getRootElement(), function() local px,py,pz = getElementPosition(getLocalPlayer()) local distance = getDistanceBetweenPoints3D ( x,y,z,px,py,pz ) if distance <= 50 then local sx,sy = getScreenFromWorldPosition ( x, y, z+0.95, 0.06 ) if not sx then return end local scale = 1 / ( gScale * ( distance / gMaxDistance ) ); local alpha = ( ( distance - gAlphaDistance ) / gAlphaDiff ); alpha = ( alpha < 0 ) and gTextAlpha or gTextAlpha - ( alpha * gTextAlpha ); scale = math.evalCurve( gMaxScaleCurve, scale ); local textscale = math.evalCurve( gTextScaleCurve, scale ); local textalpha = math.evalCurve( gTextAlphaCurve, alpha ); dxDrawText ( ">>Entrada del Area de Cargamento>>", sx, sy - 30, sx, sy - 30, tocolor ( 0, 0, 0, textalpha ), textscale * gTextSize, "arial", "center", "bottom", false, false, false, true ); dxDrawText ( ">>Entrada del Area de Cargamento>>", sx -2, sy - 30 -2, sx -1, sy - 30 -2, tocolor ( 255, 0, 0, textalpha ), textscale * gTextSize, "arial", "center", "bottom", false, false, false, true ); end end ) local x = 269.34631 local y = 1393.52222 local z = 10 addEventHandler("onClientRender",getRootElement(), function() local px,py,pz = getElementPosition(getLocalPlayer()) local distance = getDistanceBetweenPoints3D ( x,y,z,px,py,pz ) if distance <= 50 then local sx,sy = getScreenFromWorldPosition ( x, y, z+0.95, 0.06 ) if not sx then return end local scale = 1 / ( gScale * ( distance / gMaxDistance ) ); local alpha = ( ( distance - gAlphaDistance ) / gAlphaDiff ); alpha = ( alpha < 0 ) and gTextAlpha or gTextAlpha - ( alpha * gTextAlpha ); scale = math.evalCurve( gMaxScaleCurve, scale ); local textscale = math.evalCurve( gTextScaleCurve, scale ); local textalpha = math.evalCurve( gTextAlphaCurve, alpha ); dxDrawText ( "<<Salida del Area de Cargamento<<", sx, sy - 30, sx, sy - 30, tocolor ( 0, 0, 0, textalpha ), textscale * gTextSize, "arial", "center", "bottom", false, false, false, true ); dxDrawText ( "<<Salida del Area de Cargamento<<", sx -2, sy - 30 -2, sx -1, sy - 30 -2, tocolor ( 255, 0, 0, textalpha ), textscale * gTextSize, "arial", "center", "bottom", false, false, false, true ); end end ) local x = 192.2998046875 local y = 1400.599609375 local z = 10 addEventHandler("onClientRender",getRootElement(), function() local px,py,pz = getElementPosition(getLocalPlayer()) local distance = getDistanceBetweenPoints3D ( x,y,z,px,py,pz ) if distance <= 50 then local sx,sy = getScreenFromWorldPosition ( x, y, z+0.95, 0.06 ) if not sx then return end local scale = 1 / ( gScale * ( distance / gMaxDistance ) ); local alpha = ( ( distance - gAlphaDistance ) / gAlphaDiff ); alpha = ( alpha < 0 ) and gTextAlpha or gTextAlpha - ( alpha * gTextAlpha ); scale = math.evalCurve( gMaxScaleCurve, scale ); local textscale = math.evalCurve( gTextScaleCurve, scale ); local textalpha = math.evalCurve( gTextAlphaCurve, alpha ); dxDrawText ( "Area del Cargamento", sx, sy - 30, sx, sy - 30, tocolor ( 0, 0, 0, textalpha ), textscale * gTextSize, "arial", "center", "bottom", false, false, false, true ); dxDrawText ( "Area del Cargamento", sx -2, sy - 30 -2, sx -1, sy - 30 -2, tocolor ( 8, 114, 246, textalpha ), textscale * gTextSize, "arial", "center", "bottom", false, false, false, true ); end end ) function math.evalCurve( curve, input ) if input < curve[ 1 ][ 1 ] then return curve[ 1 ][ 2 ]; end for idx = 2, #curve do if input < curve[ idx ][ 1 ] then local x1 = curve[ idx - 1 ][ 1 ]; local y1 = curve[ idx - 1 ][ 2 ]; local x2 = curve[ idx ][ 1 ]; local y2 = curve[ idx ][ 2 ]; local alpha = ( input - x1 ) / ( x2 - x1 ); return math.lerp( y1, y2, alpha ); end end return curve[ #curve ][ 2 ]; end function math.lerp( from, to, alpha ) return from + ( to-from ) * alpha; end -------------------------------------------------------------------- y este es el server ↓↓↓↓↓ PetroleiroPickup = createPickup ( 283.75128, 1432.13159, 10.79398, 3, 1210) MarkerPetroleiro = createMarker ( 283.75128, 1432.13159, 10.79398, "cylinder", 1.2, 255, 255, 255, 0 ) attachElements ( MarkerPetroleiro, PetroleiroPickup, 0, 0, -1 ) BlipPetroleiro = createBlipAttachedTo ( MarkerPetroleiro, 42 ) setBlipVisibleDistance ( BlipPetroleiro, 150 ) safe = createMarker ( 192.2998046875, 1400.599609375, 9, "cylinder", 11, 0, 255, 0, 0) function CancelarSumirPickup ( player ) cancelEvent() end addEventHandler ( "onPickupHit", PetroleiroPickup, CancelarSumirPickup ) -------------------------------------------------------------------- LetraParaMarkers = "k" cmd1 = "hq" cmd2 = "profesion" -------------------------------------------------------------------- local HQPetroleiroBlip = createBlip ( 270.59879, 1409.27441, 10.46635 ) setElementVisibleTo ( HQPetroleiroBlip, root, false ) -------------------------------------------------------------------- function VerificarBlipEmprego(player) if player then acc = getPlayerAccount ( player ) if isGuestAccount ( acc ) then return end setElementVisibleTo ( HQPetroleiroBlip, player, false ) end end setTimer( function() for i, pl in pairs(getElementsByType("player")) do if pl ~= (false or nil) then if getElementData ( pl, "Emprego" ) == "Petroleiro" then return end VerificarBlipEmprego(pl) end end end, 3000,0) -------------------------------------------------------------------- function ComandoHQ ( source ) if getElementData ( source, "Emprego" ) == "Petroleiro" then if isElementVisibleTo ( HQPetroleiroBlip, source ) then setElementVisibleTo ( HQPetroleiroBlip, source, false ) exports.Scripts_Dxmessages:outputDx(source, "Su lugar de trabajo ha sido deseleccionado del mapa!", "info") else setElementVisibleTo ( HQPetroleiroBlip, source, true ) exports.Scripts_Dxmessages:outputDx(source, "Su lugar de trabajo ha sido marcado en el mapa!", "info") end end end addCommandHandler ( cmd1, ComandoHQ ) -------------------------------------------------------------------- function AceitarEmprego02 (source) exports.Scripts_OnMarkerMsgs_:delete(source) unbindKey ( source, LetraParaMarkers, "down", AceitarEmprego02 ) if getElementData ( source, "AirNew>Encaminhamento" ) == "Petroleiro" then setElementData ( source, "AirNew>Encaminhamento", false ) setElementData ( source, "Emprego", "Petroleiro" ) exports.Scripts_Dxmessages:outputDx(source, "Ahora trabaja como trabajador petrolero, para obtener más información escriba (/profesión )", "success") else exports.Scripts_Dxmessages:outputDx(source, "Debe ser derivado de la Agencia de Empleo para trabajar en este lugar!", "error") end end function RecusarEmprego02 (source) exports.Scripts_OnMarkerMsgs_:delete(source) unbindKey ( source, LetraParaMarkers, "down", RecusarEmprego02 ) if isElementVisibleTo ( HQPetroleiroBlip, source ) then setElementVisibleTo ( HQPetroleiroBlip, source, false ) end removeElementData ( source, "Emprego", "Petroleiro" ) exports.Scripts_Dxmessages:outputDx(source, "Usted renunció exitosamente al trabajo de petrolero!", "warning") end -------------------------------------------------------------------- function ComandosProf ( ThePlayer ) if getElementData ( ThePlayer, "Emprego" ) == "Petroleiro" then playSoundFrontEnd ( ThePlayer, 43 ) outputChatBox ( "#F9A631~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #F96031Profesion #F9A631~~~~~~~~~~~~~~~~~~~~~~~~~~~~", ThePlayer, 255, 255, 255, true ) outputChatBox ( "#F96031» #BEE09AComandos de la profesión de petrolero", ThePlayer, 255, 255, 255, true ) outputChatBox ( "#F96031» #55D444/HQ #ffffff- #9ABDE0Para marcar / desmarcar su lugar de trabajo", ThePlayer, 255, 255, 255, true ) outputChatBox ( "#F96031» #FFD700Sube al camión y conduce hasta el área de carga.", ThePlayer, 255, 255, 255, true ) outputChatBox ( "#F96031» #FFD700DEBES IR POR LA ENTRADA DE LA DERECHA, POSICIONAR EN LA PLATAFORMA AMARILLA DEL MEDIO.", ThePlayer, 255, 255, 255, true ) outputChatBox ( "#F96031» #FFD700En el área de carga presione la letra 'K' para seleccionar la carga", ThePlayer, 255, 255, 255, true ) outputChatBox ( "#F96031» #FFD700Y SALIR POR EL OTRO LADO PARA INICIAR EL VIAJE.", ThePlayer, 255, 255, 255, true ) outputChatBox ( "#F9A631~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #F96031Profesion #F9A631~~~~~~~~~~~~~~~~~~~~~~~~~~~~", ThePlayer, 255, 255, 255, true ) end end addCommandHandler(cmd2, ComandosProf ) -------------------------------------------------------------------- function emarker(marker,md) if (md) then if not isPedInVehicle ( source ) then if marker == MarkerPetroleiro then if getElementData ( source, "Emprego" ) == "Petroleiro" then exports.Scripts_OnMarkerMsgs_:create(source,"Presione 'K' para renunciar al trabajo de petrolero") bindKey ( source, LetraParaMarkers, "down", RecusarEmprego02 ) else exports.Scripts_OnMarkerMsgs_:create(source,"Presione 'K' para aceptar el trabajo de aceite") bindKey ( source, LetraParaMarkers, "down", AceitarEmprego02 ) end end end local seat = getPedOccupiedVehicleSeat ( source ) if seat == 0 then if marker == safe then bindKey ( source, LetraParaMarkers, "down", pickjobonbus ) exports.Scripts_OnMarkerMsgs_:create(source,"Presione 'K' para cargar su camión") end if marker == ppcik[source] then bindKey ( source, LetraParaMarkers, "down", ifPlayerEnterOnMarker ) exports.Scripts_OnMarkerMsgs_:create(source,"Presione 'K' para descargar su camión") end end end end addEventHandler("onPlayerMarkerHit",getRootElement(),emarker) function lmarker(marker,md) if (md) then if marker == MarkerPetroleiro then exports.Scripts_OnMarkerMsgs_:delete(source) unbindKey ( source, LetraParaMarkers, "down", AceitarEmprego02 ) unbindKey ( source, LetraParaMarkers, "down", RecusarEmprego02 ) end if marker == safe then unbindKey ( source, LetraParaMarkers, "down", pickjobonbus ) exports.Scripts_OnMarkerMsgs_:delete(source) end if marker == ppcik[source] then unbindKey ( source, LetraParaMarkers, "down", ifPlayerEnterOnMarker ) exports.Scripts_OnMarkerMsgs_:delete(source) end end end addEventHandler("onPlayerMarkerLeave",getRootElement(),lmarker) -------------------------------------------------------------------- atualrotnumber = {} ppcik = {} blips = {} -------------------------------------------------------------------- rotas = { ["Puesto de Fort Carson - $7000"] = { {70.36392, 1218.65625, 18.81190}, }, ["Puesto de Bone County - $9000"] = { {612.14429, 1695.00281, 6.99219}, }, ["Puesto de Tierra Robada - $14000"] = { {-1477.12805, 1863.58386, 32.63281}, }, ["Puesto de Tierra Robada II - $14500"] = { {-1328.97241, 2672.06689, 50.06250}, }, ["Puesto de Redsands West - $13500"] = { {1595.82605, 2198.85205, 10.82031}, }, ["Puesto de Spinybed - $29000"] = { {2147.65674, 2747.65161, 10.82031}, }, ["Puesto de The Emerald Isle - $16000"] = { {2202.37598, 2474.13965, 10.82031}, }, ["Puesto de Las Venturas - $14000"] = { {2639.75928, 1106.16931, 10.82031}, }, ["Puesto de Las Venturas II - $13000"] = { {2115.28882, 920.22015, 10.82031}, }, ["Puesto de Montgomery - $16000"] = { {1382.29285, 460.14056, 20.34520}, }, ["Puesto de Dillimore - $17500"] = { {654.96869, -559.74841, 16.50149}, }, ["Puesto de Temple - $28500"] = { {1004.65613, -936.75317, 42.32813}, }, ["Puesto de Idlewood - $32000"] = { {1942.37158, -1772.88501, 13.64063}, }, ["Puesto de Flint County - $39500"] = { {-93.53500, -1174.47327, 2.28485}, }, ["Puesto de Whetstone - $59000"] = { {-1605.74585, -2714.55273, 48.53347}, }, ["Puesto de Angel Pine - $53050"] = { {-2244.26880, -2561.07104, 31.92188}, }, ["Puesto de Juniper Hallow - $45000"] = { {-2410.03662, 976.18658, 45.42539}, }, ["Puesto de Easter Basin - $39200"] = { {-1675.65918, 413.23929, 7.17969}, }, } -------------------------------------------------------------------- pay={ ["Puesto de Fort Carson - $700"] = 7000, ["Puesto de Bone County - $900"] = 9000, ["Puesto de Tierra Robada - $1400"] = 14000, ["Puesto de Tierra Robada II - $1450"] = 14500, ["Puesto de Redsands West - $1350"] = 13500, ["Puesto de Spinybed - $2900"] = 29000, ["Puesto de The Emerald Isle - $1600"] = 16000, ["Puesto de Las Venturas - $1400"] = 14000, ["Puesto de Las Venturas II - $1300"] = 13000, ["Puesto de Montgomery - $1600"] = 16000, ["Puesto de Dillimore - $1750"] = 17500, ["Puesto de Temple - $2850"] = 28500, ["Puesto de Idlewood - $3200"] = 32000, ["Puesto de Flint County - $3950"] = 39500, ["Puesto de Whetstone - $5900"] = 54000, ["Puesto de Angel Pine - $5350"] = 53500, ["Puesto de Juniper Hallow - $4500"] = 45000, ["Puesto de Easter Basin - $3920"] = 39200, } -------------------------------------------------------------------- function receivert(source,rotaname) if isElement(ppcik[source]) then destroyElement(ppcik[source]) end triggerClientEvent(source,"JOBUS>blips<Client",source,false) setElementData(source,"rtname",rotaname) atualrotnumber[source] = 1 gerarrota(source) end addEvent("request>Startrota>Server", true) addEventHandler("request>Startrota>Server",getRootElement(), receivert) -------------------------------------------------------------------- function ifPlayerEnterOnMarker ( source ) if isPedInVehicle(source) then if not isElementWithinMarker(source, ppcik[source]) then return end if isElement(ppcik[source]) then local vh = getPedOccupiedVehicle(source) local id = getElementModel(vh) if id == 514 then if ( getVehicleTowedByVehicle ( vh ) == CargaPet[source] ) then local rname = getElementData(source,"rtname") or nil if rname == nil then return end destroyElement(ppcik[source]) triggerClientEvent(source,"JOBUS>blips<Client",source,false) if atualrotnumber[source] <= #rotas[rname] then gerarrota(source) elseif atualrotnumber[source] == #rotas[rname]+1 then setElementData(source,"rtname",rname) atualrotnumber[source] = 1 local rec = pay[rname] givePlayerMoney(source,tonumber(rec)) local vh = getPedOccupiedVehicle(source) destroyElement ( CargaPet[source] ) setElementData(source,"rtname",nil) exports.Scripts_Dxmessages:outputDx(source, "Su carga se descargó y recibió $"..rec.." Por su servicio!", "success") unbindKey ( source, LetraParaMarkers, "down", ifPlayerEnterOnMarker ) exports.Scripts_OnMarkerMsgs_:delete(source) end else exports.Scripts_Dxmessages:outputDx(source, "No puede descargar su camión sin su carga!", "error") end end end end end -------------------------------------------------------------------- function pickjobonbus(source) if not isElement(source) then return end local im = isPedInVehicle(source) if im == false then return end local job = getElementData(source,"Emprego") or false if job == false or job == nil then exports.Scripts_Dxmessages:outputDx(source, "No es un petrolero, por lo que no puede usar este comando!", "error") return end if job == "Petroleiro" then local vh = getPedOccupiedVehicle(source) if isElement(vh) then local x,y = getElementPosition(vh) local x1,y1 = getElementPosition(source) local dist = getDistanceBetweenPoints2D(x,y,x1,y1) local issafe = isElementWithinMarker(vh,safe) local id = getElementModel(vh) local seat = getPedOccupiedVehicleSeat(source) if dist > 0 then return end if id == 514 then if seat == 0 then local speedX, speedY, speedZ = getElementVelocity ( vh ) local actualSpeed = (speedX^2 + speedY^2 + speedZ^2)^(0.5) local KMH = math.floor(actualSpeed*180) if KMH >= 1 then exports.Scripts_Dxmessages:outputDx(source, "Detener el camión para cargar!", "warning") return end if issafe == false then return end unbindKey ( source, LetraParaMarkers, "down", pickjobonbus ) exports.Scripts_OnMarkerMsgs_:delete(source) triggerClientEvent(source,"JOBUS>AbrirPainel<Client",source,rotas) end end end end end -------------------------------------------------------------------- --[[function setPlayerBlipColor( thePlayer , r, g, b ,a) if not a then a = 255 end local blips = getElementsByType( "blip" ) for k, theBlip in ipairs( blips ) do if getElementAttachedTo( theBlip ) == thePlayer then setBlipColor ( theBlip, r, g, b ,a ) end end end --]] CargaPet = {} function gerarrota(source) local rname = getElementData(source,"rtname") or nil if rname == nil then return end if not isElement(ppcik[source]) and isPedInVehicle(source) then local vh = getPedOccupiedVehicle(source) local id = tonumber(atualrotnumber[source]) local x,y,z = rotas[rname][id][1],rotas[rname][id][2],rotas[rname][id][3] ppcik[source] = createMarker (x, y,z, "checkpoint", 5, 255, 0, 0, 50,source) triggerClientEvent(source,"JOBUS>blips<Client",source,true,x,y,z) atualrotnumber[source] = id+1 local vh = getPedOccupiedVehicle(source) local xe,ye,ze = getElementPosition ( source ) if CargaPet[source] and isElement( CargaPet[source] ) then destroyElement ( CargaPet[source] ) CargaPet[source] = nil end CargaPet[source] = createVehicle ( 584, xe,ye,ze +15 ) setTimer ( attachTrailerToVehicle, 50, 1, vh, CargaPet[source] ) setTimer ( attachTrailerToVehicle, 1000, 1, vh, CargaPet[source] ) setTimer ( attachTrailerToVehicle, 5000, 1, vh, CargaPet[source] ) exports.Scripts_Dxmessages:outputDx(source, "Su camion fue cargado, siga el ícono marcado en el mapa para descargar su carga!", "info") end end -------------------------------------------------------------------- function sair ( quitType ) if isElement(ppcik[source]) then destroyElement(ppcik[source]) end end addEventHandler ( "onPlayerQuit", getRootElement(), sair ) -------------------------------------------------------------------- function removeHelmetOnExit ( thePlayer, seat, jacked ) local job = getElementData(thePlayer,"Emprego") or false if job ~= "Petroleiro" then return end local rname = getElementData(thePlayer,"rtname") or nil if rname == nil then return end if ( getElementModel ( source ) == 514 ) then canceljobtimer (thePlayer) end end addEventHandler ( "onVehicleExit", getRootElement(), removeHelmetOnExit ) -------------------------------------------------------------------- function SairDoCaminhao ( thePlayer, seat, jacked ) local rname = getElementData(thePlayer,"rtname") or nil if rname == nil then return end canceljobtimer (thePlayer) exports.Scripts_Dxmessages:outputDx(thePlayer, "Te bajaste del camión y tu carga fue destruida!", "warning") end addEventHandler ( "onVehicleExit", getRootElement(), SairDoCaminhao ) -------------------------------------------------------------------- function canceljobtimer(source) if isElement(ppcik[source]) then destroyElement(ppcik[source]) end triggerClientEvent(source,"JOBUS>blips<Client",source,false) atualrotnumber[source] = 1 setElementData(source,"rtname",nil) if isElement( CargaPet[source] ) then destroyElement ( CargaPet[source] ) end end -------------------------------------------------------------------- function canceljobdeath() local job = getElementData(source,"Emprego") or false if job ~= "Petroleiro" then return end local rname = getElementData(source,"rtname") or nil if rname == nil then return end canceljobtimer(source) DestruirPetroleiroVeiculo(source) exports.Scripts_Dxmessages:outputDx(source, "Moriste y tu carga fue destruida!", "warning") end addEventHandler( "onPlayerWasted", getRootElement( ),canceljobdeath) -------------------------------------------------------------------- function CriarVeiculosComData () VeiculosComDataPetroleiro = { createVehicle(514, 282.71198, 1389.41418, 12.35385, 0, 0, 90 ), createVehicle(514, 282.71198, 1384.41418, 12.35385, 0, 0, 90 ), createVehicle(514, 282.71198, 1379.41418, 12.35385, 0, 0, 90 ), createVehicle(514, 282.71198, 1374.41418, 12.35385, 0, 0, 90 ), createVehicle(514, 282.71198, 1369.41418, 12.35385, 0, 0, 90 ), createVehicle(514, 282.71198, 1364.41418, 12.35385, 0, 0, 90 ), createVehicle(514, 282.71198, 1359.41418, 12.35385, 0, 0, 90 ), createVehicle(514, 282.71198, 1354.41418, 12.35385, 0, 0, 90 ), createVehicle(514, 282.71198, 1349.41418, 12.35385, 0, 0, 90 ), createVehicle(514, 282.71198, 1344.41418, 12.35385, 0, 0, 90 ), createVehicle(514, 282.71198, 1339.41418, 12.35385, 0, 0, 90 ), } for i, veh in ipairs(VeiculosComDataPetroleiro) do setElementData ( veh, "Emprego", "Petroleiro" ) setVehicleDamageProof(veh,true) setVehicleColor( veh, 0, 0, 0 ) setVehiclePlateText ( veh, "RPGAMING" ) addEventHandler("onVehicleStartEnter", veh, VerificarEmprego ) --addEventHandler("onVehicleExit", veh, SairDoVeiculosComData ) local tx, ty, tz = getElementPosition(veh) local rx, ry, rz = getElementRotation(veh) setVehicleRespawnPosition(veh, tx, ty, tz, rx, ry, rz) end end addEventHandler("onResourceStart", resourceRoot, CriarVeiculosComData ) function VerificarEmprego (thePlayer, seat) local Jogador = getElementData(thePlayer, "Emprego" ) if seat == 0 then if Jogador == "Petroleiro" then else cancelEvent() exports.Scripts_Dxmessages:outputDx(thePlayer, "Este vehículo es exclusivo para petroleros!", "error") end end end --[[function SairDoVeiculosComData () local veh = source setTimer(function() if getVehicleOccupant(veh) == false then respawnVehicle(veh) end end, 30000, 1) end addEventHandler ( "onPlayerQuit", getRootElement(), SairDoVeiculosComData ) --]] -------------------------------------------------------------------- local rElement = getRootElement() function respawnVehicles(player, seconds) for i, veh in ipairs(VeiculosComDataPetroleiro) do if isEmpty( veh ) then respawnVehicle ( veh ) end end end setTimer(respawnVehicles, 60000,0) function isEmpty( vehicle ) local passengers = getVehicleMaxPassengers( vehicle ) if type( passengers ) == 'number' then for seat = 0, passengers do if getVehicleOccupant( vehicle, seat ) then return false end end end return true end --------------------------------------------------------------------
  4. I'm new in creating servers for MTA and i downloaded a costum map, Akina mountain for races and stuff with and i dont know how to install it or create a server with the map. I hope someone can hope with the procedement to install and create the server :D
  5. I'm getting this erros on my server.log, pls give-me a solution: Maybe there is something missing?
  6. La versión más completa del panel de admin. en español a la fecha, actualizada y traducida en un 99.5% con la conciencia y los ajustes más altos al idioma, desde la ventana de "Jugador" hasta "Opciones" pasando por "Resources" y el administrador del ACL. Versión desarrollada y traducida para un mejor entendimiento de sus funciones al momento de ejecución. Esta versión incluye: Texto de las ventanas traducidos Botones traducidos con el mayor grado de minimalismo outputChatBox's de todas las funciones en español Administrador ACL traducido en su totalidad Admin Wizard traducido Apartado de reportes (/report) traducido * (El apartado anterior no es más que puntos a resaltar, el script completo casi en su totalidad está traducido). Esta versión ayuda a todo aquel que no domine el idioma inglés y quiera interactuar desde la perspectiva de un administrador con su servidor, así como también a la comunidad hispanohablante que por simple gusto o cuestiones de comodidad quiera incorporar una versión traducida al español del panel. Importante: * Algunas palabras como "Stats", "Resources", "Client" y "Server" han sido dejadas como están en su idioma original, ya que queda claro lo que estas quieren transmitir, a excepción de "Kick" que en el ámbito de la moderación en juegos multijugador en español puede ser expresada como "Kickear" siendo una adaptación del término en inglés. Esto pasa también con la palabra "Customize" que puede ser transformada a "Customizar". * Todos los comandos han sido dejados por defecto. * Esta versión incluye algunos logs traducidos mas no incluye la información de confirmación de las acciones del panel en la consola principal. * En caso de encontrar un error gramatical, por favor, deja un comentario. * Esta es la primera versión del panel de admin en español traducido al español casi en su totalidad, por lo que no es perfecta, pero sí la más precisa y acorde. * Existe la disposición de desarrollar nuevas versiones a medida que se vayan reportando nuevos errores. DESCARGA: https://community.multitheftauto.com/index.php?p=resources&s=details&id=18185 Todos los créditos van a lil_Toady, creador de los archivos originales que hacen de la versión en inglés la versión oficial del panel para MTA: San Andreas. All credits goes to lil_Toady, creator of the original files that makes english version, the official one for MTA: San Andreas.
  7. Hola abro este foro para ver si alguien me puede ayudar mandandome un pack de jobs o algunos en singular para un servidor RPG de mta ya que en internet no hay muchos que funcionen correctamente no importa el idioma en el que esten ya que yo se traducirlos
  8. I've been working on my own server for a few weeks now. After adding mods for vehicles, weapons and skins rocketed it to aproximatelly 500mb. I've found servers that are filled with skins, great mappings, scripts and more, and they weight around 200mbs. They have more skins, a lot more scripts and complex functions, new textures for buildings; basically, a complete make-over. I've only heard about the word "compiling". I'm confident there are other ways to reduce the weight for the client. Is there such thing as "server-side mods"? These are the heaviest. Maybe moving them server-side reduces the downloaded content significantly.
  9. I recently dove into this simple thing called "scripting and building a server". Naturally —added to my already curious personality—, I always come up with a doubt, a question, or any sort of uncertainty. After a week of messing around with it, I noticed that 5 of the 10 last posts made in the Script section were from me. I was having so much fun —truthfully— that I just kept on finding new things to ask. I'm pretty sure they are common questions. I'm not asking to have a script from scratch, or to be taught absolutely everything. It is most commonly about errors and to help myself understand the colloquial language of the scripts. However, I can't help but think that maybe it's not the best approach. I always think to myself "try to find it on your own", but I frenquently find myself getting even more confused the more I tour into each command and function. Is there a certain tacit limit as to how many questions can be asked? Is there any way to get the necessary help without flooding the sections?
  10. [SOLVED] This will certainly be a beginner's subject. The folder [gameplay], located in "Resources", is filled with .rar files. I want to edit 'help.xml', which is inside "freeroam.rar". I tried extracting everything into a new folder called "freeroam", but my server is not detecting said folder. I'm sure I'm ignoring a command somewhere that's failing to locate the folder (might be written to only locate "freeroam.rar"). What can I do to reach the file, modify it, and keep the freeroam files working?
  11. This is the dumbest question I've ever asked on this forum, but I have problem even not only with this. So, how can I add scripts from different folders in my meta.xml? And in these scripts, how can I load xml files from different folders, too? Any idea? If yes, please, show me example I know, that I would use xml = xmlLoadFile("filename.xml") But how to load xml in different folders? Same <script src="script.Lua" type="server"/> But how to tell MTA to load script from different folder?
  12. Im working on a roleplay server and I always test the resources in local host server, however I have just noticed today that the freshly added resources are not even running on the server, only the older ones. Ive tried to start them with command but the server just cant find 'em while they are clearly there.. Currently there are maybe 20 resources running on the server.. The only thing what came to my mind was maybe there is a limitation of usable resorces for local servers..
  13. Opá. Manos conheci esse site agora e já jogo MTA a um tempo mais nunca parei para criar um servidor bom estou criando o meu agora e quando os players vão digitar no painel login exemplo se logarem ou registrarem acabam soltando sua BIND eu queria saber se tem como bloquear soltar as BINDS apenas no painel Login. Obrigado pela Compreensão Qualquer coisa já ajuda
  14. Está iniciando seu servidor ou começando scripting no MTA? Aqui será listado tudo o que você precisa para aprender desde configurar seu servidor, ACL, colocar resources, até aprender Lua no MTA e criar scripts para modificar o jogo por meio da programação. Se você é totalmente leigo no assunto você também verá links que irá te introduzir no nível básico da programação, basta ter o mínimo de esforço e acompanhar os tutoriais aqui mostrados. Se você já têm uma noção de programação, encontrará tutoriais que irão te ajudar a se aprofundar na programação Lua e ter uma boa experiência de Scripting no MTA. Informações relacionadas ao MTA Se você busca configurar corretamente o seu Servidor e entender como as coisas funcionam, estes links serão de grande ajuda: Links traduzidos para português Manual do Servidor ACL - Lista de Controle de Acesso Resources (ou Recursos) - O que são? O arquivo meta.xml Quer programar scripts? Acompanhe este links: Nota: Se você é um iniciante na programação veja também os tutoriais para iniciantes em: Iniciando na programação Introdução a Scripting no MTA (link útil) Programar GUI no MTA Depurando seu código Programação e a linguagem Lua Iniciando na programação: Vídeo - Introdução a Algoritmos Introdução aos Algoritmos Vídeo - Lógica de programação Programação Lua: Conheça a linguagem Lua Manual de Referência de Lua 5.1 Playlist - Programando em Lua (vídeo) Playlist - Curso de programação em Lua (vídeo) Introdução à linguagem de programação Lua Teaching-lp seminario-Lua PDF Outros links (em inglês): Lua.org Lua wiki www.tutorialspoint.com/Lua Lista de tutoriais e manuais Lua Sub-fórum - Tutorials E também: Tutoriais: sub-fórum da seção Portuguesa Editores para programar e Ferramentas Com plugins/extensões do MTA disponíveis: - Notepad++ | Plugins do MTA - Sublime Text | Plugins (Atualizado: link) - Visual Studio Code | Extensões: MTA:SA Lua Debugger: MTA:SA Debugger and Test Framework - Atom Editor | Plugins Sem plugins do MTA: - ZeroBrane Studio - IntelliJ IDEA - Eclipse - Decoda Lua IDE Também: Lua for windows | GitHub
  15. Hello! I would like to buy some resources for my dayz server. (Anyway, if you have/know any free res. you can share it if u want wink wink) PAYPAL Only! I can pay enough for nice resource. ↓ ↓ ↓ ↓ ↓ ↓ Thank you,have a nice day/night/whatever you want #SryForMyBadEnglish
  16. Hello, i'm trying to create a checkbox to enable and disable the ghost-mode on my F1(freeroam) panel on MTA server, but actually i dont know how to do it. someone can help me?
  17. Hello everyone, guys please help me, I need a script that will protect custom machines, maps, write in a personal, or here in the topic, thank you all in advance
  18. First I would like to say if there is any possibility or some way I am depriving the resources of my server, however I say if there is any way to get access to the resource folders for players. Features these I say as .DFF .TXD both of cars and skin, as I am with some exclusive ones that I paid dearly and would not want them to simply be stolen. My question is: Is there any way I can block resource folders or just those modifications so nobody can catch them?
  19. Fala galera, estou com um problema na nova versão do MTA, seguinte quando eu edito algo no freeroam e salvo, depois vou no Painel Admin e do um restart na resource "Freeroam", e não muda nada continua como padrão, só muda quando eu desligo o servidor e volto a liga-lo ai sim eu vejo oque eu mudei!.Será que é algum bug ou uma opção no servidor que esteja causando esse bug?, em versões antigas do MTA, o RESTART na, resource funciona normalmente, sem eu precisar desliga e ligar o servidor novamente.Estou a 2 dias, procurando a solução e nada ate agora, se alguma alma viva que esteja com o mesmo problema e tenha conseguido corrigir isso, pls mande a solução, grato!.
  20. Server closed, mode resources https://drive.google.com/file/d/1a1LhPHrO0mmq2bSfqlUhCwS2BOwyQeCt/view
  21. Server closed, mode resources https://drive.google.com/file/d/1a1LhPHrO0mmq2bSfqlUhCwS2BOwyQeCt/view
  22. Tengo errores en esta funciones dentro de mi sistema de nivel me ayudarían a solucionarlo por favor?. ---EN EL SERVER TENGO ESTE ERROR AQUI: getPlayerEXP = function(l_13_0) if not tonumber(getElementData(l_13_0, "exp")) then -- return not l_13_0 or type(l_13_0) ~= "userdata" or getElementType(l_13_0) ~= "player" or 0 -- do return end -- AQUI end outputDebugString("Bad argument @ 'getPlayerEXP' [Expected player element at argument 1, got " .. tostring(l_13_0) .. "]", 2) return false end -- EN EL CLIENTE TENGO ESTE ERROR AQUI EN LAS MIMAS LINEAS: getPlayerEXP = function(l_7_0) if not tonumber(getElementData(l_7_0, "exp")) then return not l_7_0 or type(l_7_0) ~= "userdata" or getElementType(l_7_0) ~= "player" or 0 do return end -- AQUI end outputDebugString("Bad argument @ 'getPlayerEXP' [Expected player element at argument 1, got " .. tostring(l_7_0) .. "]", 2) return false end -- LOS ERRORES SON DE: `end`expected (to close `if` at line 197) near do
  23. where i can change the text from that circled photo??? where is placed in resources ?? in announcement isn't https://imgur.com/a/galEmaI PLEASE HELP MEEEE
  24. I already rebooted the mta, gave stop and restart in the panel of the host and did not return the resources https://uploaddeimagens.com.br/imagens/mta-screen_2018-05-08_22-42-39-png
  25. Hi... i'm making my own rpg / rp server with my friend and i have a little issue As you can see in the title; when i start a new resource when my "rpg" gamemode is enabled the maps are loaded multiple times, so i have to restart my "rpg" gamemode to have just a single map loaded It means that, for example, i hit a marker and the GUI is displayed 2 times (Because there are 2 markers in the same place) The way to load maps i do is in 'meta' like this: ----------------------------------------------------------------------------------------------------------------- <meta> <!-- MAPPING --> <script src="mapping/mapEditorScriptingExtension_s.lua" type="server"></script> <script src="mapping/mapEditorScriptingExtension_c.lua" type="client" validate="false"></script> <map src="mapping/BASE_Map.map" dimension="0"></map> <!-- MARKERS --> <map src="markers/freecars.map" dimension="0" /> <script src="markers/freecars_s.lua" type="server" /> <script src="markers/freecars_c.lua" type="client" /> </meta> ------------------------------------------------------------------------------------------------------------ I saw another post that probably talks about the same problem, but, at least i noticed is map loading's fault: https://forum.gtanet.work/index.php?threads/entershape-gets-triggered-twice.2044/ If you know how to solve this kind of "over load" it's perfect for me But if you don't really know i would like to know a different ways (As much ways as you know) to load those maps when i start my rpg mode Thanks <3
×
×
  • Create New...