Search the Community
Showing results for tags 'script'.
-
como faço para colocar esse script de portão automático dentro de um interior/dimensão local gate = createObject(16775, 246, 72.599609375, 1004.799987793, 0, 0, 0) local marker = createMarker(246, 72.599609375, 1004.799987793, "cylinder", 8, 0, 0, 0, 0) function moveGate(thePlayer) if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(thePlayer)) , aclGetGroup("Policial")) then moveObject(gate, 3000, 246, 72.599609375, 1004.799987793) end end addEventHandler("onMarkerHit", marker, moveGate) function move_back_gate() moveObject(gate, 3000, 246, 72.599609375, 1007.2) end addEventHandler("onMarkerLeave", marker, move_back_gate)
-
¡Hola, tiempo sin pasarme por este foro! En esta oportunidad, vengo a vender un... SISTEMA DE DESCARGAS EN SEGUNDO PLANO + SISTEMA DE ENCRIPTACION DE ARCHIVOS Tal y como lo dice su nombre, estoy vendiendo un sistema de descarga de archivos en segundo plano, el cual incluye un sistema de encriptación para mantener los archivos protegidos en el cache y que estos no puedan ser extraídos o robados. ¿PORQUE COMPRAR ESTE SCRIPT? ♦ COMODIDAD: Para brindarle una mayor comodidad a la hora de descargar archivos a los usuarios, ya que el sistema descarga e instala los archivos que se le especifiquen, de forma automatizada mientras el usuario se encuentra jugando tranquilamente en el servidor. ♦ SEGURIDAD: El sistema descarga los archivos y los encripta a través de una clave la cual puede ser cambiada a voluntad dentro del propio código para mayor personalización en la encriptación. En ningún momento, el usuario contará con el archivo desencriptado en su cache, debido a que la información se desencripta solo para ser utilizada a nivel de código. El archivo se mantendrá siempre encriptado para el usuario. CARACTERISTICAS DEL SCRIPT ♦ METODO DE DESCARGA FRAGMENTADO: El sistema, para mayor optimización a la hora de descargar archivos de gran tamaño, divide el archivo en 10-12 partes, las cuales descarga una a una. Y al momento de tener todas las partes descargadas, las une todas para crear el archivo en cuestión. Esto, para que los usuarios no experimentaran problemas de lag al momento de descargar archivos de gran tamaño. En su lugar, descargarán el archivo en partes pequeñas para que de esta forma no haya caídas. ♦ METODO DE ENCRIPTACIÓN: Como bien mencioné antes, el sistema cuenta con un sistema de encriptación, en donde, encriptará los archivos que se le especifiquen al sistema y estos se guardarán en el cache encriptados. Estos nunca se desencriptarán para ser utilizados. En su defecto, el sistema desencriptará solo la información de los archivos a nivel de código, para que los archivos en ningún momento sean desencriptados ♦ UTILIZACIÓN DE ARCHIVOS DE MANERA GLOBAL: Si deseas utilizar un archivo descargado a través de este script, ya sea una skin (txd/dff), objeto (txd/dff/col) o una textura (png), podrás obtener dichos datos a través de una función para ser utilizada en cualquier script de terceros en donde consideres necesario. De esta manera, si necesitas colocar en este script las imágenes que utilizan otros scripts, podrás hacerlo tranquilamente (obviamente, revisando que los archivos estén previamente descargados y disponibles antes de eso) ♦ VERIFICACIÓN DE LA INTEGRIDAD DE LOS ARCHIVOS: Con el fin de evitar la modificación clandestina de algunos archivos dentro del script, al momento de iniciarse o al momento que un jugador entra al servidor, el sistema verifica archivo a archivo, que la integridad de estos no se haya visto afectada. Es decir, verifica que los archivos en el caché sean exactamente los mismos que se encuentran en el servidor. Si un archivo se encuentra afectado, el sistema lo borra y descarga nuevamente, con el fin de evitar modificaciones a los archivos caché del script. ♦ OPORTUNIDAD PARA INTERFAZ PERSONALIZADA: El script NO cuenta con una interfaz de barra de descarga ni nada por el estilo, mas allá de un texto ubicado debajo del radar, donde se especifica el archivo que se está descargando y el % de la descarga. Sin embargo, en el código, se puede especificar un nombre y una descripción a cada archivo individualmente, el cual puede ser utilizado, o bien para informar a otros usuarios que manipulen este código, el saber para que es cada archivo, o bien, añadirle por su cuenta una barra de descarga que contenga dicha información para notificarle al usuario que está descargando. No se colocó ningún diseño para dejar la ventana abierta a cualquier personalización. El código está enfocado mas en la descarga y encriptación, no en el diseño como tal. FORMATO DE ARCHIVOS SOPORTADOS: TXD DFF COL PNG ¿QUE INCLUYE EL SCRIPT? El script. (duh) Un skin de personaje (ID: 217) y vehículo (ID: 402), para ejemplificar su uso Un skin de un objeto (Reemplazo directo al mapa del juego), para ejemplificar su uso (en el script aparecen las coordenadas del mapa modificado) Una textura (png, reemplazo directo al mapa del juego), para ejemplificar su uso (en el script aparecen las coordenadas de la textura modificada) Garantía de soporte gratuito sobre cualquier bug/fallo encontrado en el sistema durante 48hrs luego de la compra (esto no incluye bugs creados por modificar el sistema por su cuenta) PRECIO DEL PRODUCTO El precio de dicho sistema, es de 5.00$ (negociable, pero tampoco regalo) METODOS DE PAGO DISPONIBLES Binance (USDT) (sin comisiones) PayPal (USD) +5.4% +0.30$ adicionales por comisiones (5.61$) DISCLAIMER #1: Si eres de VENEZUELA, se pueden ampliar los métodos de pago a los nacionales. El monto sería el mismo, a la tasa del día de compra, del DOLAR PROMEDIO. DISCLAIMER #2: Si deseas hacerle modificaciones al mod para hacerlo mas "personal" a tu servidor, se puede cobrar un EXTRA por dichas modificaciones. DISCLAIMER #3: Si te sales de la garantía, por modificar el recurso por tu cuenta, cualquier arreglo/modificación tendrá un coste adicional. DISCLAIMER #4: Si te sales de la garantía, por pasar el plazo de 48hrs para reportar un bug, cualquier arreglo/modificación PODRÍA TENER un coste adicional (en la mayoría de los casos no cobro) METODOS DE CONTACTO Por mensaje privado (no recomendado, ya que no frecuento este lugar) Discord: !Sergiioks#4818 Mis métodos de contacto también están abiertos a cualquier otra petición de scripts, ya que, aunque no suelo tener una amplia disponibilidad, si la tengo, estaré dispuesto a echarte una mano, por un módico precio. IMAGENES DEL RECURSO Debido a que, reitero, el script es mayormente funcionalidad de código que diseño, mostraré los avisos del debugscript y el texto notificando la descarga de los archivos Sin nada mas que añadir, fue un gusto volver a pasarme por acá. Cualquier duda relacionada con el recurso o demás, puedes dejar un comentario o comunicarte conmigo por las vías de contacto especificadas. ¡Un saludo!
-
- downloader
- sell
-
(and 1 more)
Tagged with:
-
Let's talk script security. It might be a taboo topic for some but it shouldn't, at all. In fact, the more people talk about this and unite to discuss and create robust, safe and well-coded scripts, the better the MTA resource development community will be. Rules: Main article: https://wiki.multitheftauto.com/wiki/Script_security The key points are there, but the code examples don't suffice, and the implementations will vary depending on the gamemode and resources. Pinned information: Coming soon Notes: - I'm not perfect and everyone makes mistakes. Please correct me when I'm wrong. - Eventually if this becomes a popular topic, I am willing to incorporate translations of certain explanations into other languages in this OP, as I know a majority of the MTA community doesn't master the English language and prefers to communicate and read in other languages.
-
I have designed a Snake game in my Multi Theft Auto project using the Lua programming language, implementing all functionalities and dynamics. Additionally, I have designed the controls to be very functional, allowing gameplay with either a keyboard or Xbox/PlayStation controllers. Here’s a link for you to watch.
-
Hello dear forum members, I am deeply interested in a persistent question regarding my shader for the effect of raindrops flowing down the sides of the car, as well as the effect of raindrops (spots) on the surface of the car (roof, bumper). I’ve been struggling with these issues for a long time and still can’t figure out how to solve my two problems. I hope someone can help me and explain to a beginner in HLSL how to properly implement the shader. The first problem is that I don’t understand how to make the raindrops flow down the different sides of the car. Essentially, I have a single texture applied to the car, and I can't figure out how to split it into multiple segments and adapt it to flow around the sides of the car. (I also need to account for the unique features of each car model so that the flow looks realistic on each vehicle.) The second problem is the effect of tiny raindrops on the roof, hood, and bumper of the car (the generation of small droplets that gradually appear and disappear). The issue is that I’m trying to apply both effects in one shader, but the problem is that either only one of them works under certain settings, or nothing works at all. I can't get both effects to work harmoniously together. I’ll also provide an example of the Lua script and the textures used for the shader. I really hope for your help. I've been spending too much time on this, and I can't seem to find a solution. float4x4 gWorld : WORLD; float4x4 gView : VIEW; float4x4 gProjection : PROJECTION; float gTime : TIME; // Rain parameters float gDropSpeed = 0.03; // Speed of droplet flow float2 noiseScale = float2(0.2, 0.8); // Noise texture scale float3 lightDirection = float3(1.0, 1.0, -1.0); // Light direction float gDropSpread = 0.3; // Droplet spread float gDropDepth = 0.3; // Droplet depth texture gTexture; // Main car texture texture texRain; // Raindrop texture texture texNormalRain; // Raindrop normals texture texNoise; // Noise texture // Variables for controlling the effect float gAlpha = 0.01; // Alpha channel for the car float rainAlpha = 1.8; // Alpha channel for raindrops sampler2D gTextureSampler = sampler_state { Texture = ( gTexture ); MinFilter = Linear; MagFilter = Linear; AddressU = Wrap; AddressV = Wrap; }; sampler2D texRainSampler = sampler_state { Texture = ( texRain ); MinFilter = Linear; MagFilter = Linear; AddressU = Wrap; AddressV = Wrap; }; sampler2D texNormalRainSampler = sampler_state { Texture = ( texNormalRain ); MinFilter = Linear; MagFilter = Linear; AddressU = Wrap; AddressV = Wrap; }; sampler2D texNoiseSampler = sampler_state { Texture = ( texNoise ); MinFilter = Linear; MagFilter = Linear; AddressU = Wrap; AddressV = Wrap; }; struct VertexShaderInput { float4 Position : POSITION; // Using standard POSITION semantics for the vertex shader float2 TextureCoordinate : TEXCOORD0; // Passing texture coordinates }; struct PixelShaderInput { float4 Position : POSITION; // Passing position as float4 for proper operation float3 WorldPos : TEXCOORD1; // Passing world coordinates for calculations float2 TextureCoordinate : TEXCOORD0; // Passing texture coordinates }; PixelShaderInput VertexShaderFunction(VertexShaderInput input) { PixelShaderInput output; // Position in world coordinates float4 worldPos = mul(input.Position, gWorld); // Storing position for further projection output.Position = mul(mul(input.Position, gWorld), gView); output.Position = mul(output.Position, gProjection); // Applying projection // Storing world coordinates (for droplet flow) output.WorldPos = worldPos.xyz; // Passing texture coordinates output.TextureCoordinate = input.TextureCoordinate; return output; } float4 PixelShaderFunction(PixelShaderInput output) : COLOR0 { float2 textureCoordinate = output.TextureCoordinate; // Main car texture float4 baseColor = tex2D(gTextureSampler, textureCoordinate); baseColor.rgb = max(baseColor.rgb, 0.1); // Brightening dark areas // Getting noise for random movement float noise = tex2D(texNoiseSampler, textureCoordinate * noiseScale).r; // World coordinates to determine droplet direction float3 worldPos = output.WorldPos; // Using world coordinates // Determining droplet direction based on normals and world position float3 normal = normalize(output.WorldPos); // Normal to the surface // Checking direction by normals to determine which side of the car we're on if (abs(normal.x) > abs(normal.y) && abs(normal.x) > abs(normal.z)) { // Side surfaces textureCoordinate.y += gDropSpeed * gTime; // Flowing down the sides } else if (normal.y > 0.5) { // Top surface (roof) textureCoordinate.y -= gDropSpeed * gTime; // Droplets flow down } else { // Other sides (front and back) textureCoordinate.x -= gDropSpeed * gTime; // Optionally add droplet flow forward/backward } // Reducing random offset for more precise flow float2 offset = gDropSpread * (noise * 4.0 - 0.5) * float2(1.0, 2.5); // Using float2 for offset textureCoordinate -= offset; // Applying deviation in both axes // Raindrop texture float4 rainColor = tex2D(texRainSampler, textureCoordinate); // Adjusting droplets to the car color rainColor.rgb = baseColor.rgb * 0.8 + float3(0.1, 0.1, 0.1); // Adding body tint to droplets rainColor.a = rainAlpha; // Alpha channel of droplets // Normals for droplets float4 tempRainNormal = tex2D(texNormalRainSampler, textureCoordinate); // Explicitly using float4 float3 rainNormal = normalize(tempRainNormal.rgb * 2.5 - 0.75); // Normalizing normals // Lighting on droplets float diffuse = saturate(dot(normalize(rainNormal), normalize(lightDirection))); // Correct lighting // Combining colors float4 finalColor = lerp(baseColor, rainColor, rainAlpha * diffuse); finalColor.a = lerp(gAlpha, rainAlpha, diffuse * 0.9); // Adding droplet depth finalColor.rgb += gDropDepth * 0.9; // Depth effect of droplets float3 v = float3(0.0, 0.0, 0.0); float Tr2 = gTime * 11000.0; float2 n = tex2D(texNoiseSampler, textureCoordinate * 0.5).rg; for (float r = 4.0; r > 0.0; r--) // Reducing the number of iterations { float2 x = 2100.0 * r * 0.015; float2 p = 6.28 * textureCoordinate * x + (n - 0.5) * 2.0; float4 d = tex2D(texNoiseSampler, round(textureCoordinate * x - 0.25) / x); float t = (sin(p.x) + sin(p.y)) * max(0.0, 1.0 - frac(Tr2 * (d.b + 0.1) + d.g) * 2.0); if (d.r < (2.0 - r) * 0.08 && t > 0.5) { v += normalize(float3(-cos(p.x), lerp(1.2, 2.0, t - 0.5), 0.0)); } } finalColor.rgb += v * rainAlpha; return finalColor; } technique Replace { pass P0 { DepthBias = -0.0001; AlphaBlendEnable = TRUE; SrcBlend = SRCALPHA; DestBlend = INVSRCALPHA; VertexShader = compile vs_1_1 VertexShaderFunction(); PixelShader = compile ps_3_0 PixelShaderFunction(); } } LUA CODE: local shader = dxCreateShader("fx/shader.fx", 2, 300, true, "vehicle"); local zapylyayushiesyaDetali = { "remap_body", }; local rainTexture = dxCreateTexture("assets/RainCar.png") local normalRainTexture = dxCreateTexture("assets/RainNormal.png") local noiseTexture = dxCreateTexture("assets/enbnoise.png") dxSetShaderValue(shader, "texRain", rainTexture) dxSetShaderValue(shader, "texNormalRain", normalRainTexture) dxSetShaderValue(shader, "texNoise", noiseTexture) -- Применение шейдера к машине local vehicle = getPedOccupiedVehicle(localPlayer) if vehicle then --engineApplyShaderToWorldTexture(shader, "vehiclegrunge256", vehicle) for _, name in ipairs(zapylyayushiesyaDetali) do engineRemoveShaderFromWorldTexture(shader, name, localPlayer.vehicle) engineApplyShaderToWorldTexture(shader, name, localPlayer.vehicle) end end renderTarget = dxCreateRenderTarget(512, 512, true) addEventHandler("onClientRender", root, function() iprint(shader) if shader then if renderTarget then dxSetRenderTarget(renderTarget, true) dxDrawImage(0, 0, 512, 512, shader) dxSetRenderTarget() dxDrawImage(50, 50, 256, 256, renderTarget) end end end)
-
- shader mta
- shader hlsl
-
(and 6 more)
Tagged with:
-
Timer not canceled after player dies. The player dies but does not appear to have left the area. That's why the rockets keep firing. sorry my english bad server g_base_col = createColCuboid(-381.27297973633, 1517.2098388672, -5.718826293945, 1600, 1600, 200.25) g_root = getRootElement () function hit ( pla, dim, hitElement ) if getElementType ( pla ) == "player" then local vehicle = getPedOccupiedVehicle ( pla ) if vehicle or vehicle then if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(pla)), aclGetGroup("roket")) then outputChatBox ( "Hoş Geldin Asker!, "..getPlayerName(pla).."!", pla, 0, 150, 0 ) else setElementData ( pla, "inRestrictedArea", "true" ) triggerClientEvent ( pla, "destroyTrepassor", g_root, pla ) outputChatBox ( "Askeri Bölge Derhal Uzaklaş!", pla, 255, 0, 0 ) outputChatBox ( "[Uyarı] Roket Saldırısı!", g_root, 255, 0, 0 ) end end end end addEventHandler ( "onColShapeHit", g_base_col, hit ) function leave ( pla, dim ) if getElementType ( pla ) == "player" then local vehicle = getPedOccupiedVehicle ( pla ) if vehicle or vehicle then if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(pla)), aclGetGroup("roket")) then outputChatBox ( "İyi Devriyeler Asker!", pla, 0, 100, 0 ) else setElementData ( pla, "inRestrictedArea", "false" ) triggerClientEvent ( pla, "destroyTimers", g_root, pla ) outputChatBox ( "[Uyarı] Roket Saldırısı Durdu!", g_root, 255, 0, 0 ) outputDebugString ( "*"..getPlayerName(pla).." has left col shape" ) end end end end addEventHandler ( "onColShapeLeave", g_base_col, leave ) client g_loc_pla = getLocalPlayer () g_loc_root = getRootElement () addEvent ( "destroyTrepassor", true ) addEventHandler ( "destroyTrepassor", g_loc_root, function () posX = -147.10989379883 posY = 2001.6342773438 posZ = 97.30118560791 posX2 = -135.48461914062 posY2 = 1652.8358154297 posZ2 = 97.30118560791 posX3 = 99.344902038574 posY3 = 2233.484375 posZ3 = 130.27871704102 posX4 = 478.35934448242 posY4 = 2160.7651367188 posZ4 = 97.30118560791 posX5 = 523.74835205078 posY5 = 1976.8087158203 posZ5 = 97.30118560791 posX6 = 448.73950195312 posY6 = 1715.9664306641 posZ6 = 97.30118560791 posX7 = 219.20726013184 posY7 = 1836.5458984375 posZ7 = 97.30118560791 posX8 = 188.45198059082 posY8 = 2081.4970703125 posZ8 = 97.30118560791 local isInResArea = getElementData ( g_loc_pla, "inRestrictedArea" ) rotZ = getPedRotation ( g_loc_pla ) if isInResArea == "true" then timer1 = setTimer ( createProjectile, 3000, 0, g_loc_pla, 20, posX, posY, posZ, 1.0, g_loc_pla, 0, 0, rotZ, 0.1, 0.1, 0.1 ) timer2 = setTimer ( createProjectile, 3000, 0, g_loc_pla, 20, posX2, posY2, posZ2, 1.0, g_loc_pla, 0, 0, rotZ, 0.1, 0.1, 0.1 ) timer3 = setTimer ( createProjectile, 3000, 0, g_loc_pla, 20, posX3, posY3, posZ3, 1.0, g_loc_pla, 0, 0, rotZ, 0.1, 0.1, 0.1 ) timer4 = setTimer ( createProjectile, 3000, 0, g_loc_pla, 20, posX4, posY4, posZ4, 1.0, g_loc_pla, 0, 0, rotZ, 0.1, 0.1, 0.1 ) timer5 = setTimer ( createProjectile, 3000, 0, g_loc_pla, 20, posX5, posY5, posZ5, 1.0, g_loc_pla, 0, 0, rotZ, 0.1, 0.1, 0.1 ) timer6 = setTimer ( createProjectile, 3000, 0, g_loc_pla, 20, posX6, posY6, posZ6, 1.0, g_loc_pla, 0, 0, rotZ, 0.1, 0.1, 0.1 ) timer7 = setTimer ( createProjectile, 3000, 0, g_loc_pla, 20, posX7, posY7, posZ7, 1.0, g_loc_pla, 0, 0, rotZ, 0.1, 0.1, 0.1 ) timer8 = setTimer ( createProjectile, 3000, 0, g_loc_pla, 20, posX8, posY8, posZ8, 1.0, g_loc_pla, 0, 0, rotZ, 0.1, 0.1, 0.1 ) end end ) addEvent ( "destroyTimers", true ) addEventHandler ( "destroyTimers", g_loc_root, function () local isInResArea = getElementData ( g_loc_pla, "inRestrictedArea" ) if isInResArea == "false" then killTimer ( timer1 ) killTimer ( timer2 ) killTimer ( timer3 ) killTimer ( timer4 ) killTimer ( timer5 ) killTimer ( timer6 ) killTimer ( timer7 ) killTimer ( timer8 ) end end )
-
Hello, I have a problem when logging in. I try to see if the hashed password in the database is the same as the one entered by the player for the password, so I check if the password is correct. But even if you enter a good password and the two passwords are the same, the system always says that the password is incorrect. Can you help? addEvent("login", true) addEventHandler("login", root, function (user, pass) local serial = getPlayerSerial(client) local dq = dbQuery(db, "SELECT * FROM accounts WHERE serial=?", serial) local result = dbPoll(dq, 250) if (#result > 0) then outputChatBox(pass) local Pass = hash("sha512", pass) outputChatBox(Pass) if user == result[1]["username"] then if Pass == result[1]["password"] then print("Sikeres bejelentkezés!") else print("Hibás jelszó!") end else print("Felhasználónév nem található!") end else print("Sikertelen bejelentkezés!") end end )
- 15 replies
-
Hello everyone, i was wondering if there's a way to make some models exceptions on this code, that is supposed to delete all GTA default models but i need the ints to not be deleted so i want to know how can i make exceptions for some interior models.. addEventHandler("onResourceStart", resourceRoot, function() for i=550, 20000 do removeWorldModel(i, 10000, 0, 0, 0) setOcclusionsEnabled(false) end end)
-
Olá, alguém sabe como posso adicionar um hitmarker que mostra o dano causado e a área atingida, como colete e capacete, igual ao do "Top GTA" no meu servidor de DayZ
-
Hello dear Community. In this post i wanna release my Cops 'n' Robbers Gamemode which is complete Selfmade. Enjoy! Previews -> Click Download -> Click
-
Recentemente abaixei um mod da internet cujo a funçao dele e interação policial na hora de algemar prender esses trem porem nao e possivel ver a CNH pelo painel ja mudei o SetElementData O GetElementData Modifiquei acl coloquei na acl adm mas sem sucesso ja tentei contatar o dono do mod peço facebook porem sem exito --[[ =========================================================== # Minha página: https://www.facebook.com/TioSteinScripter/# # ╔════╗╔══╗╔═══╗ ╔═══╗╔════╗╔═══╗╔══╗╔═╗─╔╗ # # ║╔╗╔╗║╚╣─╝║╔═╗║ ║╔═╗║║╔╗╔╗║║╔══╝╚╣─╝║║╚╗║║ # # ╚╝║║╚╝─║║─║║─║║ ║╚══╗╚╝║║╚╝║╚══╗─║║─║╔╗╚╝║ # # ──║║───║║─║║─║║ ╚══╗║──║║──║╔══╝─║║─║║╚╗║║ # # ──║║──╔╣─╗║╚═╝║ ║╚═╝║──║║──║╚══╗╔╣─╗║║─║║║ # # ──╚╝──╚══╝╚═══╝ ╚═══╝──╚╝──╚═══╝╚══╝╚╝─╚═╝ # =========================================================== --]] Comando = "policial" ACL = "Policial" CorPainel = tocolor(225, 0, 0, 252) NomeDoServidor = "Brasil Mundo Avançado" ------------- Nome que você quer que apareça no painel ElementDataBanco = "TS:Banco" -------------- Element Data Do Banco, o mesmo da HUD ElementDataPorteDeArmas = "TS:PorteDeArmas" -------------- Element Data Do Porte de armas ElementHab1 = "DNL:Categoria(B)" ------------------- Element Data Habilitação Carro CaractereHab1 = "Sim" -------------- Se é "Sim" ou true ElementHab1 = "DNL:TestePratico" ------------------- Element Data Habilitação Carreta CaractereHab1 = "Sim" -------------- Se é "Sim" ou true ElementHab2 = "DNL:Categoria(A" ------------------- Element Data Habilitação Moto CaractereHab2 = "Sim" -------------- Se é "Sim" ou true ElementHab3 = "DNL:Categoria(C)" ------------------- Element Data Habilitação Caminhao CaractereHab3 = "Sim" -------------- Se é "Sim" ou true ElementHab3 = "DNL:Categoria(D)" ------------------- Element Data Habilitação Caminhao CaractereHab3 = "Sim" -------------- Se é "Sim" ou true ElementHab4 = "DNL:Categoria(E)" ------------------- Element Data Habilitação Caminhao CaractereHab4 = "Sim" -------------- Se é "Sim" ou true ElementHab5 = "DNL:TestePratico" ------------------- Element Data Habilitação Carreta CaractereHab5 = "Sim" -------------- Se é "Sim" ou true ElementRG = "ID" ------------------- Element Data RG ElementDataNascimento = "TS:DataDeNascimento" ------------------- Element Data de nascimento TiposDeMulta = { {"Infração Gravíssima", 5000}, ------------- Motivo da multa, Valor da multa {"Infração Grave", 4000}, ------------- Motivo da multa, Valor da multa {"Infração Média", 3000}, ------------- Motivo da multa, Valor da multa {"Infração Leve", 2000}, ------------- Motivo da multa, Valor da multa } e aki A CNH Entrar = createMarker(1111.70715, -1796.76624, 16.59375 -1, "cylinder", 1.2, 0, 255, 0, 90) Blip = createBlipAttachedTo ( Entrar, 36 ) setBlipVisibleDistance(Blip, 150) Sair = createMarker(-2026.97485, -104.28124, 1035.17188 -1, "cylinder", 1.2, 0, 255, 0, 90) setElementInterior(Sair, 3) Marker_Categoria = createMarker(-2033.13196, -117.45327, 1035.17188 -1, "cylinder", 1.2, 0, 255, 0, 90) setElementInterior(Marker_Categoria, 3) Marker_Multas = createMarker(-2031.19666, -115.17245, 1035.17188 -1, "cylinder", 1.2, 0, 255, 0, 90) setElementInterior(Marker_Multas, 3) function Entrar_Detran (source) setElementInterior(source, 3) setElementPosition(source, -2029.55017, -105.98931, 1035.17188) setElementDimension(source, 0) end addEventHandler("onMarkerHit", Entrar, Entrar_Detran) function Sair_Detran (source) setElementInterior(source, 0) setElementPosition(source, 1109.35291, -1796.64258, 16.59375) setElementDimension(source, 0) end addEventHandler("onMarkerHit", Sair, Sair_Detran) function Abrir_Prova(source) local account = getPlayerAccount (source) if isGuestAccount (account) then outputChatBox ( "#ff0000✘ #ffffffDetran #ff0000✘➺ #FFFFFFVocê não pode Fazer Prova Deslogado!", source, 255,255,255,true) return end if isElementWithinMarker(source, Marker_Categoria) then triggerClientEvent(source,"DNL:AbrirCategorias",source) end end addEventHandler( "onMarkerHit", Marker_Categoria, Abrir_Prova ) function PagarMultas(source) local account = getPlayerAccount (source) if isGuestAccount (account) then outputChatBox ( "#ff0000✘ #ffffffDetran #ff0000✘➺ #FFFFFFVocê não pode Pagar Multas Deslogado!", source, 255,255,255,true) return end if isElementWithinMarker(source, Marker_Multas) then triggerClientEvent(source,"DNL:Abrir_Multas",source) end end addEventHandler( "onMarkerHit", Marker_Multas, PagarMultas ) -------- Carregar_Dados -------- function Carregar_Dados () local Account = getPlayerAccount(source) local HabilitacaoA = getAccountData (Account, "DNL:Categoria(A)") local HabilitacaoB = getAccountData (Account, "DNL:Categoria(B)") local HabilitacaoC = getAccountData (Account, "DNL:Categoria(C)") local HabilitacaoD = getAccountData (Account, "DNL:Categoria(D)") local HabilitacaoE = getAccountData (Account, "DNL:Categoria(E)") setElementData(source, "DNL:Categoria(A)", HabilitacaoA) setElementData(source, "DNL:Categoria(B)", HabilitacaoB) setElementData(source, "DNL:Categoria(C)", HabilitacaoC) setElementData(source, "DNL:Categoria(D)", HabilitacaoD) setElementData(source, "DNL:Categoria(E)", HabilitacaoE) end addEventHandler("onPlayerLogin", root, Carregar_Dados) function carteira (source, cmd, pname) local accountname = getAccountName(getPlayerAccount(source)) if isObjectInACLGroup("user."..accountname, aclGetGroup("Everyone")) then -- Grupo permitido a usar o comando local Player_2 = getPlayerFromPartialName(pname) if isElement(Player_2) then local Account = getPlayerAccount(Player_2) setElementData(Player_2, "DNL:Categoria(A)", true) setAccountData ( Account, "DNL:Categoria(A)", true) setElementData(Player_2, "DNL:Categoria(B)", true) setAccountData ( Account, "DNL:Categoria(B)", true) setElementData(Player_2, "DNL:Categoria(C)", true) setAccountData ( Account, "DNL:Categoria(C)", true) setElementData(Player_2, "DNL:Categoria(D)", true) setAccountData ( Account, "DNL:Categoria(D)", true) setElementData(Player_2, "DNL:Categoria(E)", true) setAccountData ( Account, "DNL:Categoria(E)", true) else outputChatBox ( "#ff0000✘ #ffffffERRO #ff0000✘➺ #ffffff O Jogador(a) Não Foi Encontrado!", source, 255,255,255,true) end else outputChatBox ( "#ff0000✘ #ffffffERRO #ff0000✘➺ #FFFFFFVocê não tem permissão para utilizar este comando!", source, 255,255,255,true) end end addCommandHandler("carteira", carteira) -------------------------------------------------------------------- function getPlayerFromPartialName(name) local name = name and name:gsub("#%x%x%x%x%x%x", ""):lower() or nil if name then for _, player in ipairs(getElementsByType("player")) do local name_ = getPlayerName(player):gsub("#%x%x%x%x%x%x", ""):lower() if name_:find(name, 1, true) then return player end end end end -------------------------------------------------------------------- Outra parte do Script --[[ ===================================== --]] -- = CATEGORIA A = -- --[[ ===================================== --]] function CNHMoto (source, seat) if getElementData( source, "DNL:TestePratico", true ) then return end if getElementData(source, "DNL:Categoria(A)", true) then return end local temp = getPedOccupiedVehicle(source) if (getElementModel (temp) == 581) or (getElementModel (temp) == 462) or (getElementModel (temp) == 521) or (getElementModel (temp) == 463) or (getElementModel (temp) == 522) or (getElementModel (temp) == 461) or (getElementModel (temp) == 448) or (getElementModel (temp) == 468) or (getElementModel (temp) == 586) or (getElementModel (temp) == 523) then -- if getVehicleOccupant(temp,0) then if seat == 0 then triggerClientEvent(source,"CNH:AlertaMoto",source) end end end addEventHandler ( "onVehicleEnter", root, CNHMoto ) --[[ ===================================== --]] -- = CATEGORIA B = -- --[[ ===================================== --]] function CNHCarro (source, seat) if getElementData( source, "DNL:TestePratico", true ) then return end if getElementData(source, "DNL:Categoria(B)", true) then return end local temp = getPedOccupiedVehicle(source) if (getElementModel (temp) == 602) or (getElementModel (temp) == 496) or (getElementModel (temp) == 525) or (getElementModel (temp) == 401) or (getElementModel (temp) == 518) or (getElementModel (temp) == 527) or (getElementModel (temp) == 589) or (getElementModel (temp) == 419) or (getElementModel (temp) == 587) or (getElementModel (temp) == 533) or (getElementModel (temp) == 526) or (getElementModel (temp) == 474) or (getElementModel (temp) == 545) or (getElementModel (temp) == 517) or (getElementModel (temp) == 410) or (getElementModel (temp) == 600) or (getElementModel (temp) == 436) or (getElementModel (temp) == 439) or (getElementModel (temp) == 549) or (getElementModel (temp) == 491) or (getElementModel (temp) == 445) or (getElementModel (temp) == 604) or (getElementModel (temp) == 507) or (getElementModel (temp) == 585) or (getElementModel (temp) == 466) or (getElementModel (temp) == 492) or (getElementModel (temp) == 546) or (getElementModel (temp) == 551) or (getElementModel (temp) == 516) or (getElementModel (temp) == 467) or (getElementModel (temp) == 426) or (getElementModel (temp) == 547) or (getElementModel (temp) == 405) or (getElementModel (temp) == 580) or (getElementModel (temp) == 409) or (getElementModel (temp) == 550) or (getElementModel (temp) == 566) or (getElementModel (temp) == 540) or (getElementModel (temp) == 421) or (getElementModel (temp) == 529) or (getElementModel (temp) == 485) or (getElementModel (temp) == 438) or (getElementModel (temp) == 574) or (getElementModel (temp) == 420) or (getElementModel (temp) == 490) or (getElementModel (temp) == 470) or (getElementModel (temp) == 596) or (getElementModel (temp) == 598) or (getElementModel (temp) == 599) or (getElementModel (temp) == 597) or (getElementModel (temp) == 531) or (getElementModel (temp) == 536) or (getElementModel (temp) == 575) or (getElementModel (temp) == 534) or (getElementModel (temp) == 567) or (getElementModel (temp) == 535) or (getElementModel (temp) == 576) or (getElementModel (temp) == 429) or (getElementModel (temp) == 541) or (getElementModel (temp) == 415) or (getElementModel (temp) == 480) or (getElementModel (temp) == 562) or (getElementModel (temp) == 565) or (getElementModel (temp) == 434) or (getElementModel (temp) == 494) or (getElementModel (temp) == 502) or (getElementModel (temp) == 503) or (getElementModel (temp) == 411) or (getElementModel (temp) == 559) or (getElementModel (temp) == 561) or (getElementModel (temp) == 560) or (getElementModel (temp) == 506) or (getElementModel (temp) == 451) or (getElementModel (temp) == 558) or (getElementModel (temp) == 555) or (getElementModel (temp) == 477) or (getElementModel (temp) == 568) or (getElementModel (temp) == 424) or (getElementModel (temp) == 504) or (getElementModel (temp) == 457) or (getElementModel (temp) == 483) or (getElementModel (temp) == 571) or (getElementModel (temp) == 500) or (getElementModel (temp) == 444) or (getElementModel (temp) == 556) or (getElementModel (temp) == 557) or (getElementModel (temp) == 471) or (getElementModel (temp) == 495) or (getElementModel (temp) == 539) or (getElementModel (temp) == 459) or (getElementModel (temp) == 422) or (getElementModel (temp) == 482) or (getElementModel (temp) == 605) or (getElementModel (temp) == 530) or (getElementModel (temp) == 418) or (getElementModel (temp) == 572) or (getElementModel (temp) == 582) or (getElementModel (temp) == 413) or (getElementModel (temp) == 440) or (getElementModel (temp) == 543) or (getElementModel (temp) == 583) or (getElementModel (temp) == 554) or (getElementModel (temp) == 579) or (getElementModel (temp) == 400) or (getElementModel (temp) == 404) or (getElementModel (temp) == 489) or (getElementModel (temp) == 505) or (getElementModel (temp) == 479) or (getElementModel (temp) == 422) or (getElementModel (temp) == 458) or (getElementModel (temp) == 402) then --if getVehicleOccupant(temp,0) then if seat == 0 then triggerClientEvent(source,"CNH:AlertaCar",source) end end end addEventHandler ( "onVehicleEnter", root, CNHCarro ) --[[ ===================================== --]] -- = CATEGORIA C = -- --[[ ===================================== --]] function CNHCaminhao (source, seat) if getElementData( source, "DNL:TestePratico", true ) then return end if getElementData(source, "DNL:Categoria(C)", true) then return end local temp = getPedOccupiedVehicle(source) if (getElementModel (temp) == 408) or (getElementModel (temp) == 552) or (getElementModel (temp) == 416) or (getElementModel (temp) == 433) or (getElementModel (temp) == 427) or (getElementModel (temp) == 528) or (getElementModel (temp) == 407) or (getElementModel (temp) == 544) or (getElementModel (temp) == 601) or (getElementModel (temp) == 428) or (getElementModel (temp) == 499) or (getElementModel (temp) == 609) or (getElementModel (temp) == 498) or (getElementModel (temp) == 524) or (getElementModel (temp) == 532) or (getElementModel (temp) == 578) or (getElementModel (temp) == 486) or (getElementModel (temp) == 406) or (getElementModel (temp) == 573) or (getElementModel (temp) == 455) or (getElementModel (temp) == 588) or (getElementModel (temp) == 423) or (getElementModel (temp) == 414) or (getElementModel (temp) == 443) or (getElementModel (temp) == 456) or (getElementModel (temp) == 478) or (getElementModel (temp) == 508) or (getElementModel (temp) == 431) or (getElementModel (temp) == 437) then if seat == 0 then triggerClientEvent(source,"CNH:AlertaCAM",source) end end end addEventHandler ( "onVehicleEnter", root, CNHCaminhao ) --[[ ===================================== --]] -- = CATEGORIA D = -- --[[ ===================================== --]] function CNHCarreta (source, seat) if getElementData( source, "DNL:TestePratico", true ) then return end if getElementData(source, "DNL:Categoria(D)", true) then return end local temp = getPedOccupiedVehicle(source) if (getElementModel (temp) == 403) or (getElementModel (temp) == 515) or (getElementModel (temp) == 514) then if seat == 0 then triggerClientEvent(source,"CNH:AlertaCARRETA",source) end end end addEventHandler ( "onVehicleEnter", root, CNHCarreta ) --[[ ===================================== --]] -- = CATEGORIA E = -- --[[ ===================================== --]] function CNHHeli (source, seat) if getElementData( source, "DNL:TestePratico", true ) then return end if getElementData(source, "DNL:Categoria(E)", true) then return end local temp = getPedOccupiedVehicle(source) if (getElementModel (temp) == 548) or (getElementModel (temp) == 425) or (getElementModel (temp) == 417) or (getElementModel (temp) == 487) or (getElementModel (temp) == 488) or (getElementModel (temp) == 497) or (getElementModel (temp) == 563) or (getElementModel (temp) == 447) or (getElementModel (temp) == 469) then if seat == 0 then triggerClientEvent(source,"CNH:AlertaHeli",source) end end end addEventHandler ( "onVehicleEnter", root, CNHHeli ) --[[ ===================================== --]] -- = REMOVER CNH = -- --[[ ===================================== --]] function RemCNH (source, seat) if seat == 0 then triggerClientEvent(source,"CNH:AlertaMoto_Off",source) triggerClientEvent(source,"CNH:AlertaCar_Off",source) triggerClientEvent(source,"CNH:AlertaCAM_Off",source) triggerClientEvent(source,"CNH:AlertaCARRETA_Off",source) triggerClientEvent(source,"CNH:AlertaHeli_Off",source) end end addEventHandler ( "onVehicleExit", root, RemCNH )
-
um script da o seguinte erro [servidor]\[servidor]\[Scripts]\[AtivarVip\caioS.Lua:14: <min_mtaversion> section in the meta.xml is incorrect or missing (expected at least server 1.5.4-9.11413 becayse 'formFields' is begin used Script aki local url = "https://discordapp.com/api/webhooks/1133572830953476227/ja3_b-h9pOGeJIxAcLJfc2FQQWUOUtXbR-614F93FwhTM-b4mSg96oLjyp2DNfRCoNsb" ---- Coloque o link da sua webhook entre as "aspas" -------- --> --> --> --> --> "LOGS" nao mexa aqui <-- <-- <-- <-- <-- function messageDiscord(message, link) sendOptions = { queueName = "dcq", connectionAttempts = 3, connectTimeout = 5000, formFields = { content=""..message.."" }, } fetchRemote(link, sendOptions, function () return end) end --> --> --> --> --> LOGS <-- <-- <-- <-- <-- function messageS(player, message, tipo) exports['FR_DxMessages']:addBox(player, message, tipo) ----------- altere para sua infobox----- end function RegisterEvent(event, ...) addEvent(event, true) addEventHandler(event, ...) end addEventHandler('onResourceStart', getResourceRootElement(getThisResource()), function () connection = dbConnect('sqlite', 'dados.sqlite') dbExec(connection, 'create table if not exists key (key, vip, dias)') dbExec(connection, 'create table if not exists keyPoints (key, amount)') dbExec(connection, 'create table if not exists vips (conta, vip, tempo)') end ) setTimer( function ( ) local logins = dbPoll(dbQuery(connection, 'select * from vips'), - 1) if (#logins ~= 0) then for i, v in ipairs(logins) do if (v['tempo'] < 11000) then aclGroupRemoveObject(aclGetGroup(v['vip']), 'user.'..v['conta']) dbExec(connection, 'delete from vips where conta = ? and vip = ?', v['conta'], v['vip']) else dbExec(connection, 'update vips set tempo = ? where conta = ? and vip = ?', (tonumber(v['tempo']) - 10000), v['conta'], v['vip']) end end end end , 10000, 0) function getPlayerAdmin (player) for i,v in ipairs(config.acl) do if isObjectInACLGroup('user.'..getAccountName(getPlayerAccount(player)), aclGetGroup(v)) then return true end end return false end function getVipExists (vip) vips = {'Omega', 'Sigma', 'Epsylon', 'Alpha'} for i,v in ipairs(vips) do if (v == vip) then return true end end return false end addCommandHandler('gerarkey', function(player, _, vip, dias) if getPlayerAdmin(player) then if (vip) and (dias) then if getVipExists(vip) then local seconds = (dias * 86400000) local key = gerarKey() local keys = dbPoll(dbQuery(connection, 'select * from key where key = ?', key), - 1) if (#keys == 0) then dbExec(connection, 'insert into key (key, vip, dias) values(?, ?, ?)', tostring(key), tostring(vip), tonumber(seconds)) triggerClientEvent(player, 'copyKey', player, tostring(key)) messageS(player, 'Você gerou uma key com o vip ' .. vip .. ' por '..dias..' dias.', 'success') messageDiscord(">>> ⇌--------------------⇌\n**Key gerada**\n**Vip:**`".. vip .."`\n**Dias:**`".. dias .."`\n**key:**||".. key .."||\n⇌--------------------⇌ ", ""..url.."") messageS(player, 'A key foi copiada, utilize (ctrl + v) para colar.', 'info') else messageS(player, 'Ocorreu um erro inesperado na hora de criar a key, tente novamente em alguns segundos.', 'success') end else messageS(player, 'Você precisa digitar algum dos vips atuais.', 'error') end end end end ) addCommandHandler('gerarpontos', function(player, _, amount) if getPlayerAdmin(player) then if tonumber(amount) then local key = gerarKey() local keys = dbPoll(dbQuery(connection, 'select * from keyPoints where key = ?', key), - 1) if (#keys == 0) then dbExec(connection, 'insert into keyPoints (key, amount) values(?, ?)', tostring(key), tonumber(amount)) triggerClientEvent(player, 'copyKey', player, tostring(key)) messageS(player, 'Você gerou uma key com ' .. amount .. ' vpoints.', 'success') messageDiscord(">>> ⇌--------------------⇌\n**Moedas Geradas**\n**Moedas:**`"..amount.."` \n**key:**||".. key .."||\n⇌--------------------⇌ ", ""..url.."") messageS(player, 'A key foi copiada, utilize (ctrl + v) para colar.', 'info') else messageS(player, 'Esta key já existe.', 'info') end end end end ) addCommandHandler('usarpontos', function (player, _, key) if key then local keys = dbPoll(dbQuery(connection, 'select * from keyPoints where key = ?', key), - 1) if (#keys ~= 0) then setElementData(player, 'moneycoins', (getElementData(player, 'moneycoins') or 0) + tonumber(keys[1]['amount'])) for i, v in ipairs(getElementsByType('player')) do triggerClientEvent(v, 'Caio.onDrawTextAtivado2', v, keys[1]['amount'], getPlayerName(player)) end messageS(player, 'Você ativou a key e recebeu ' .. keys[1]['amount'] .. ' de vPoints', 'success') dbExec(connection, 'delete from keyPoints where key = ?', key) else messageS(player, 'Esta key não existe ou já foi utilizada.', 'info') end else outputChatBox('Syntax error: /usarpontos [Key]') end end ) addCommandHandler('usarkey', function (player, _, key) if (key) then local keys = dbPoll(dbQuery(connection, 'select * from key where key = ?', key), - 1) if (#keys ~= 0) and (type(keys) == 'table') then local dados = dbPoll(dbQuery(connection, 'select * from vips where conta = ? and vip = ?', getAccountName(getPlayerAccount(player)), keys[1]['vip']), - 1) if (#dados == 0) then dbExec(connection, 'insert into vips (conta, vip, tempo) values(?, ?, ?)', getAccountName(getPlayerAccount(player)), keys[1]['vip'], keys[1]['dias']) aclGroupAddObject(aclGetGroup(keys[1]['vip']), 'user.'..getAccountName(getPlayerAccount(player))) messageS(player, 'Você utilizou a key e recebeu um vip '..keys[1]['vip']..' por '..(keys[1]['dias'] / 86400000)..' dias.', 'success') for i,v in ipairs(getElementsByType('player')) do triggerClientEvent(v, 'Caio.onDrawTextAtivado', v, keys[1]['vip'], getPlayerName(player)) end givePlayerMoney(player, (config[tostring(keys[1]['vip'])] or 0)) dbExec(connection, 'delete from key where key = ?', key) else messageS(player, 'Você já possui esse vip.', 'warning') end else messageS(player, 'Esta key não existe', 'warning') end else messageS(player, 'Você precisa digitar a key', 'warning') end end ) addCommandHandler('gerenciador', function (player) if getPlayerAdmin(player) then triggerClientEvent(player, 'Caio.onOpenGerenciar', player) local vips = dbPoll(dbQuery(connection, 'select * from vips'), - 1) local keys = dbPoll(dbQuery(connection, 'select * from key'), - 1) if (keys ~= 0) then for i,v in ipairs(keys) do triggerClientEvent(player, 'Caio.onInsertTableKey', player, v['key'], v['vip'], math.floor(v['dias'] / 86400000)) end end if (vips ~= 0) then for i,v in ipairs(vips) do triggerClientEvent(player, 'Caio.onInsertTableVip', player, v['conta'], v['vip'], math.floor(v['tempo'] / 86400000)) end end end end ) RegisterEvent('Caio.onRemoveKey', root, function (player, key, index) if (key) and (index) then local keys = dbPoll(dbQuery(connection, 'select * from key where key = ?', key), - 1) if (#keys ~= 0) and (type(keys) == 'table') then dbExec(connection, 'delete from key where key = ?', key) messageS(player, 'Você deletou com sucesso esta key.', 'success') messageDiscord(">>> ⇌--------------------⇌\n**Key Excluida**\n**Key:**`"..key.."`\n⇌--------------------⇌", ""..url.."") triggerClientEvent(player, 'Caio.onOpenGerenciar', player) else messageS(player, 'Ocorreu um erro ao remover esta key.', 'error') end end end ) RegisterEvent('Caio.onRemoveVip', root, function (player, login, vip, index) if (login) and (vip) then local result = dbPoll(dbQuery(connection, 'select * from vips where conta = ? and vip = ?', tostring(login), tostring(vip)), - 1) if (#result ~= 0) then aclGroupRemoveObject(aclGetGroup(tostring(vip)), 'user.'..tostring(login)) dbExec(connection, 'delete from vips where conta = ? and vip = ?', tostring(login), tostring(vip)) messageS(player, 'Você removeu o vip '..vip..' do usuário '..login..'.', 'success') messageDiscord(">>> ⇌--------------------⇌\n**Vip removido**\n**Login:** `"..login.."`\n**Vip:**`"..vip.."`\n⇌--------------------⇌ ", ""..url.."") triggerClientEvent(player, 'Caio.onOpenGerenciar', player) else messageS(player, 'Ocorreu um erro na hora de remover o vip.', 'error') end end end ) function gerarKey() letters = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'R', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'} local sas = '' for i = 1, 10 do sas = sas .. letters[math.random(1, #letters)] end return sas end https://imgur.com/78DOMQj
-
Hello there! Does anybody have any MTA:SA Race converter? That converts old-format race maps to new format ones? I've been searching for it on many racing forums but they won't work or they're corrupted. I can't find it anywhere. Does any of you have it by any chance?
-
hi guys i want call marker from another function like this code local hidemark = createMarker(10,50,5,"cylinder",1,0,255,0) function mark(theplayer) markerveh =createMarker(0,0,5,"cylinder",1,0,255,0) end addEventHandler("onMarkerHit",marker1,mark) function job1(theplayer) setElementVisibleTo(markerveh,root,false)-- for here end addCommandHandler("hidemark",job1)
-
This is a showcase, of a rather funny map on a Racing gamemode. Basically, your objective is to destroy all lamps (indicated on the radar) in order for the final checkpoint to appear. Very funny map, as MTA:SA Racers worst nightmare is... lamps! Shout-out to Lukum for scripting
-
------- HK 417 ------- mermi = 500 id = 31 addEvent("m4al",true) addEventHandler("m4al",root,function() if getTickCount() - (tick[source] or 0) >= SECONDS * 864000 then giveWeapon(source,id,mermi) tick[source] = getTickCount() outputChatBox("[!]#ff3300 HK 417 Markalı Silahını Kuşandın.",source,0,255,0,true) else outputChatBox("[!]#ff3300 [1 Haftalık Stok] 4 Saat Sonra Tekrar Alabilirsin.",source,0,255,0,true) end end ) ------- SNIPER ------- mermi3 = 15 id3 = 34 addEvent("sniperal",true) addEventHandler("sniperal",root,function() if getTickCount() - (tick[source] or 0) >= SECONDS * 864000 then giveWeapon(source,id3,mermi3) tick[source] = getTickCount() outputChatBox("[!]#ff3300 Bora 12 Markalı Uzun Namlu'lu Silahını Kuşandın.",source,0,255,0,true) else outputChatBox("[!]#ff3300 [1 Haftalık Stok] 4 Saat Sonra Tekrar Alabilirsin.",source,0,255,0,true) end end ) Hi, I can only use one. When I try to use the other, the timer activates and prevents me from picking up the other weapon. I will be glad if you help
-
Hello, I want to make a repository for groups but I am not very knowledgeable. My goal thing is a locker or warehouse where they can store weapons. I would be very happy if you help
-
When I randomly tap my voice button or just hold it for sec, I experience bug when event "onClientPlayerVoiceStop" is not being called. Anyone experience it yet? Image with UI representation of bug https://imgur.com/a/LfysaBA thanks for any replay ;)
-
function tpbloods(playerSource) if isObjectInACLGroup("user." ..getAccountName(getPlayerAccount(playerSource)), aclGetGroup("Staff")) then if getElementData(playerSource, "Expediente-STAFF") == "Sim" then if not Flying[playerSource] then Flying[playerSource] = true setElementAlpha(playerSource, 0) triggerClientEvent(playerSource, "onClientFlyToggle", playerSource) end setElementPosition(playerSource, 2219.984, -1143.273, 25.797) setElementRotation(playerSource, 0, 0, 353.328) showInfobox(playerSource, "Você teleportou na base Bloods", "success") else atendimento(playerSource) end end end addCommandHandler("tpbloods", tpbloods) function tpgrove(playerSource) if isObjectInACLGroup("user." ..getAccountName(getPlayerAccount(playerSource)), aclGetGroup("Staff")) then if getElementData(playerSource, "Expediente-STAFF") == "Sim" then if not Flying[playerSource] then Flying[playerSource] = true setElementAlpha(playerSource, 0) triggerClientEvent(playerSource, "onClientFlyToggle", playerSource) end setElementPosition(playerSource, 2463.633, -1659.423, 13.311) setElementRotation(playerSource, 0, 0, 88.373) showInfobox(playerSource, "Você teleportou na base da Grove", "success") else atendimento(playerSource) end end end addCommandHandler("tpgrove", tpgrove) function tpcrips(playerSource) if isObjectInACLGroup("user." ..getAccountName(getPlayerAccount(playerSource)), aclGetGroup("Staff")) then if getElementData(playerSource, "Expediente-STAFF") == "Sim" then if not Flying[playerSource] then Flying[playerSource] = true setElementAlpha(playerSource, 0) triggerClientEvent(playerSource, "onClientFlyToggle", playerSource) end setElementPosition(playerSource, 2183.58, -1761.268, 13.375) setElementRotation(playerSource, 0, 0, 359.602) showInfobox(playerSource, "Você teleportou na base Crips", "success") else atendimento(playerSource) end end end addCommandHandler("tpcrips", tpcrips) function tpsiliciana(playerSource) if isObjectInACLGroup("user." ..getAccountName(getPlayerAccount(playerSource)), aclGetGroup("Staff")) then if getElementData(playerSource, "Expediente-STAFF") == "Sim" then if not Flying[playerSource] then Flying[playerSource] = true setElementAlpha(playerSource, 0) triggerClientEvent(playerSource, "onClientFlyToggle", playerSource) end setElementPosition(playerSource, 2418.157, -2009.204, 13.396) setElementRotation(playerSource, 0, 0, 90.592) showInfobox(playerSource, "Você teleportou na base Siliciana", "success") else atendimento(playerSource) end end end addCommandHandler("tpsiliciana", tpsiliciana) ---------------------------------------------------------------------------------------------------------------------------- function showInfobox(element, message, tipo) exports["[HYPE]NOTIFY"]:addNotification(element, message, tipo) end atendimento = function (element) return triggerClientEvent(element, "HypeNotify", element, "Você não está em modo atendimento use /pro", "error") end Basicamente são vários comandos que executam basicamente a mesma função eu gostaria que fosse menor tipo executar o comando e o nome da base ai ele puxar a posição da base e teleportar pequeno exemplo abaixo bases = {{yakuza, 2418.157, -2009.204, 13.396 }, {bloods, 1234.09, -2029.24, 13.396 }}
-
[DESCRIPTION] With this script you can give your players a few reasons to stay in the game longer. Your players earn coins for the time they stay in the game. They can shop in the menu with the coins they earn. [FEATURES] Easy adjustable config Fully optimized Responsive Design All items can be set in % chance to win New cases can be added from Config Cases are fully customizable from config All players in the game are notified when a player wins a valuable item Players can earn free coins for staying in the game Items won from the case can be sold back There is a "fast open" button for those who want to open Case quickly. Players can earn coins for any interaction in the game (you need to integrate Trigger). Recently won items system (The last 10 items won from the cases on the server are displayed on main menu) Premium Cases, Standard Cases Item type system Gold Coin, Silver Coin System All events are recorded with discord logs OPEN SOURCE https://streamable.com/j9ovcr Please contact via discord for purchase. Discord
-
Hello, I am looking for this script. Can you help me? Please watch the video to understand: corazones = heaarts ! When you press F7 or write /find, corazones will appear to you, and to take it, you must take it with a Deagle weapon, and when you take it, the corazone must disappear, as you saw in the video: 1:04---- 1:12 When you write this /corazones: (the number of hearts) for example 04/32, and if you collect 32/32, you can activate /godmode: godmode is enabled 2:09 ----- 2:16 Also, owner server should allow me settings to change the locations of the corazones if all players have been exposed to the puzzle godmode Please help me if it was one similar to it, there is no problem Thank you