Jump to content

raynner

Members
  • Posts

    223
  • Joined

  • Last visited

Everything posted by raynner

  1. ok ! I will test as soon as possible, thank you men
  2. Hey guys, I have the S@moke box shader, I need to apply the shader to the texture, not the screen I know I need to add the raplace part to the code but I don't know how to remove the screensource part correctly from the encoder. Can someone help me ? original code i change texture screenSource to tex to use dxSetShaderValue(mytexture) I don't know how to modify texturesample and remove self PixelShaderFunction texture screenSource; float2 screenSize = float2(0.0f, 0.0f); float pencilStrength = 1.0f; float saturation = 1.0f; float contrast = 1.0f; float brightness = 1.0f; sampler TextureSampler = sampler_state { Texture = <screenSource>; AddressU = Mirror; AddressV = Mirror; }; static const float2 blurring[16] = { float2(-0.326212f, -0.40581f), float2(-0.840144f, -0.07358f), float2(-0.695914f, 0.457137f), float2(-0.203345f, 0.620716f), float2(0.96234f, -0.194983f), float2(0.473434f, -0.480026f), float2(0.519456f, 0.767022f), float2(0.185461f, -0.893124f), float2(0.507431f, 0.064425f), float2(0.89642f, 0.412458f), float2(-0.32194f, -0.932615f), float2(-0.65432f, -0.87421f), float2(-0.456899f, -0.633247f), float2(-0.123456f, -0.865433f), float2(-0.664332f, -0.25680f), float2(-0.791559f, -0.59771f) }; float4 PixelShaderFunction(float2 texCoords : TEXCOORD0) : COLOR0 { float4 baseColor = tex2D(TextureSampler, texCoords); for(int i = 0; i < 16; i++) { float2 newCoords = texCoords.xy + (blurring[i] / screenSize * pencilStrength); baseColor += tex2D(TextureSampler, newCoords); } baseColor /= 17.0f; if (baseColor.r <= 0.1f) { baseColor.a = 0.0f; } if (baseColor.g <= 0.1f) { baseColor.a = 0.0f; } if (baseColor.b <= 0.1f) { baseColor.a = 0.0f; } float4 mainColor = tex2D(TextureSampler, texCoords); float4 outlineColor = saturate(mainColor / baseColor); float value = (outlineColor.r + outlineColor.g + outlineColor.b) / 3.0f; outlineColor.r = value; outlineColor.g = value; outlineColor.b = value; outlineColor.rgb = 1 - outlineColor.rgb; outlineColor.a *= outlineColor.r; float4 finalColor = baseColor - (outlineColor * 2.0f); float3 luminanceWeights = float3(0.299f, 0.587f, 0.114f); float luminance = dot(finalColor, luminanceWeights); finalColor.rgb = lerp(luminance, finalColor.rgb, saturation); finalColor.a = finalColor.a; finalColor.rgb = ((finalColor.rgb - 0.5f) * max(contrast, 0.0f)) + 0.5f; finalColor.rgb *= brightness; return finalColor; } technique Cartoon_01 { pass Pass1 { PixelShader = compile ps_2_0 PixelShaderFunction(); } } // Fallback technique Fallback { pass P0 { // Just draw normally } }
  3. the hero´s dff looks promising, i teste and like resunts thank you men
  4. hello; i´m convert character parts from gta, to work in gta sa i use 3ds max for process, the problem is weld, i apply weld in model and export model, in model import weld is losted !!! note: i used all versions 3ds max, from 2010 to 2021; afeter weld later weld later weld and import model welded
  5. You need to create multiple lines connected to each other to form a curve!! how are they made as a pixel in an image
  6. obviamente vc ja deve ter resolvido mais pra deixar claro se o script esta subscrevendo o seu toggle ou ele ta em um timer ou em um evento provavel de render vc pode obter todos os eventos sendo excetuados e suas funções .... eu n tenho certeza por que eu usei isso para crair um painel de log para beta teste mais provavelmente vc pode desvincular através de outro script e tem como fazer isso com timer tb vc obtem os timers em execução se n me engano timers são um elemento do mta ou seja vc pode obter todos com getElementsByType em fim use sua mente a criação de script é bem simples quando vc conhece bem as ferramentas(funções/comandos) da wiki e um problema n passa de uma pequena pedra no seu caminho
  7. eu não acho que esteja bugado e eu n posso testart agr mais vc pode contornar isso usando onClientKey ou um evento semelhante mais estou quase certo que é esse para quando uma variavel for true ele ser cancelado assim cancelando qualquer ação que esse botão faria existe uma função que vc pode pegar os botões configurados para os controles fire n me recordo o nome agora vc pode usala para que o sistema n seja burlado por jogadores trocando o botão e é isso basicamente obvio que tudo tem que ser feito do lado do client pois o evento é dele mais nada muito trabalhoso, mais eu aconselho vc realizar alguns testes ou aguardar outra pessoa responder sobre o "bug" no toggleControl que eu n creio haver bug algum
  8. walking animations use last frame true and -1 in time dont work my exemple is unic mode to walk in animation .. I'm working on changing walking style animations this way it works, besides having a limit I have to study which styles use the altered animations
  9. Hi I would like to understand the problem we have the original animation "misc", "plyr_shkhead" if i use setPedAnimation(localPlayer, "misc", "plyr_shkhead", 200, true, true, false, true) I can walk doing the animation however if I use the same animation with a new ifp using engineLoadIFP even though it's the original game block that I extracted I can't walk using engineLoadIFP("misc.ifp", "custom") setPedAnimation(localPlayer, "custom", "plyr_shkhead", 200, true, true, false, true) both are the same original animations but one is originally original, while the other is accessible via loadifp my doubt is this is a limitation of the mta or am i doing something wrong? even because I've seen other servers use custom animations that is allowed to walk (I say this because I've already looked at all the game's animations and none is identical to what I saw on the server)
  10. oh ok is local mx, my = screenx/2, screeny/2 bx = bx + mx by = my - by bx = bx - (blipsize/2) by = by - (blipsize/2) if use other screen dimension to create imagem, you will need a number that divides the dimension of the world from 6000x6000 to the resolution you want for example screenx, screeny = 768, 768 -- 6000 / 7.81 = 768 Divided = 768/2 bx, by = -27, 165 -- is world position bx = math.floor (bx / 7.81) -- convert position world 6000x6000 to 768x768 by = math.floor (by / 7.81) bx = bx + Divided by = Divided - by bx = bx - (32/2) by = by - (32/2)
  11. i´m create minimap using mask shader the wiki to add blips i´m use dxTarget i´m create dx image in dxTarget and set Target in shader, i´m necessary convert the blip world position to compatible image position -- -- c_hud_mask.lua -- ---------------------------------------------------------------- -- onClientResourceStart ---------------------------------------------------------------- addEventHandler( "onClientResourceStart", resourceRoot, function() -- Create things screenx, screeny = 6000, 6000 -- the image dimension hudMaskShader = dxCreateShader("hud_mask.fx") radarTexture = dxCreateTexture("images/radar.jpg") maskTexture1 = dxCreateTexture("images/circle_mask.png") renderMap = dxCreateRenderTarget(screenx, screeny) -- Check everything is ok bAllValid = hudMaskShader and radarTexture and maskTexture1 if not bAllValid then outputChatBox( "Could not create some things. Please use debugscript 3" ) else dxSetShaderValue( hudMaskShader, "sPicTexture", radarTexture ) dxSetShaderValue( hudMaskShader, "sMaskTexture", maskTexture1 ) end end ) ----------------------------------------------------------------------------------- -- onClientRender ----------------------------------------------------------------------------------- addEventHandler( "onClientRender", root, function() if not bAllValid then return end -- -- Transform world x,y into -0.5 to 0.5 -- local x,y = getElementPosition(localPlayer) x = ( x ) / 6000 y = ( y ) / -6000 dxSetShaderValue( hudMaskShader, "gUVPosition", x,y ) -- -- test blip -- local bx, by = 1081, 270 -- bx math ??? -- by math ??? -- -- Zoom -- local zoom = 8 zoom = zoom + math.sin( getTickCount() / 500 ) * 3 -- Zoom animation for DEMO dxSetShaderValue( hudMaskShader, "gUVScale", 1/zoom, 1/zoom ) -- -- Rotate to camera direction - OPTIONAL -- local _,_,camrot = getElementRotation( getCamera() ) dxSetShaderValue( hudMaskShader, "gUVRotAngle", math.rad(-camrot) ) -- -- Draw -- dxSetShaderValue( hudMaskShader2, "sPicTexture", renderMap ) dxSetRenderTarget(renderMap) dxDrawImage( 0, 0, screenx, screeny, "images/radar.jpg", 0,0,0, tocolor(255,255,255,200) ) dxDrawImage( bx, by, 16, 16, blipicon, 0,0,0, tocolor(255,255,255,255) ) dxSetRenderTarget() -- set render target in shader dxSetShaderValue( hudMaskShader, "sPicTexture", renderMap ) dxDrawImage( 100, 200, 400, 400, hudMaskShader, 0,0,0, tocolor(255,255,255,100) ) end )
  12. this is of no use to me if it were I wouldn't be here as far as i know i have 2 ways to do this using dximages and fixing them at the shooting sites or some way of adding a texture on top of the other via a shader without replacing, but rather adding some new texture without modifying the txd
  13. Hello I am wanting to create a shader so that when the player is shot he creates marks of shots on the player's body but I don't know what the name of texture should be used in engineApplyShaderToWorldTexture (myShader, "I don't know the name")
  14. Hello friends, i know the basics about shader so i need your help! I would like to replace textures and define the color for them in addition to just sub-replacing it saves me the trouble of having repeated textures of different colors just add a single white! but I don't know how to write this in the .fx file, I know that I should create variables like float red; and use dxSetShaderValue (theShader, 'red', 1.0) but I don't know how to do it in the file.fx my fx texture tex; technique TexReplace { pass P0 { Texture[0] = tex; } } my lua myShader = dxCreateShader('shader.fx', 0, 0, false, 'object') terrain = dxCreateTexture("Cut_1.png") dxSetShaderValue(myShader, "tex", terrain) object = createObject(3355, 0, 0, 3) teste = engineApplyShaderToWorldTexture(myShader, 'Cut_Color', ped) outputChatBox(tostring(teste)) everything works perfectly but i would like to add white .png and set the color via shader it's possible ? I saw some similar things on the forum but none of them worked with replace so I don't know how to do it !!!
  15. rs eu odeio usar essa função ela é muito complexa em minha mente eu também tenho problemas em fazer esses cálculos felizmente outro membro já te ajudou eu me dou bem com todos os outros elementos dx menos ImageSection rs
  16. se bem me lembro dxDrawImageSection faz oque você quer
  17. você pode usar onClientVehicleCollision (client side) e enviar isto para o server side e definir uma tabela com o valor do carro e verificar quando um player entra no veículo e para o motorista se é que você entende a ideia caso você seja um scripter mediano você certamente intendera, nós poderíamos lhe fornecer um codigo pronto e funcional mais qual seria seu aprendizado nisso !
  18. Ctrl+c e Ctrl+v algo comum na comunidade Br é que nós odiamos
  19. não sei se este funciona corretamente mas você pode editá-lo caso não esteja e corrigir seus erros https://community.multitheftauto.com/index.php?p=resources&s=details&id=3016
  20. very nice! thank, i really am not able to do this calculation!?
  21. eu tenho bastante experiencia nisto, bom devo a sumir que você esta usando um modelo da net ! então certamente não deve ter erros na colisão do mesmo mais por segurança eu lhe aconselho criar um novo col use 3ds max para isso eu faço meus modelos de interiores de garagem e casas nele faço o modelo pelo sketchup e importo no 3ds e de lá adiciono iluminação e até a colisão agora vamos lá mostre-nos o seu codigo para averiguar pois provavelmente a fonte do seu problema é nele
  22. this seems to work but is not correct! it does not return the correct coordinates I will leave this feature on my drive so that anyone can test it I thought first to leave it in the community more like this incomplete would not be fair radar Drive
  23. Hello first sorry for the english I have a script that I'm editing it creates a radar: minimap and a bigmap (f11) (note: it does not replace the original it creates a new one and hides the original) I added gta v gps to it and everything works correctly but to create the route I type a command / gps and it renders me an image where I click and the script gets the coordinate and creates a route! what I want is to get the coordinate by clicking on the bigmap! I tried however the most I got was to create a function that returns the value x, y, z of the world that is being rendered in the center of the map and if I move the cursor I only have changes in the floot the function that I created --[[ mapX = CursorX mapY = CursorY PosX = playerX PosY = playerY x = bigmap render x y = bigmap render y w = bigmap render w h = bigmap render h range = zoom --]] function getWorldFromMapPosition(mapX, mapY, posx, posy, x, y, w, h, range) local worldX = posx + ((mapX - (x + w / 2)) / range) / 3000 / (range/180); local worldY = posy - ((mapY - (y + h / 2)) / range) / 3000 / (range/180); return worldX, worldY end my main code I don't see the need to show others more if you need to let me know I'm testing this on line 256 Map = {} Map.__index = Map Map.instances = {} Map.damageEfect = {} local sx,sy = guiGetScreenSize() px,py = 1366,768 x,y = (sx/px), (sy/py) font = dxCreateFont("images/myriadproregular.ttf",20,true) local max,min = math.min,math.max function cstrain( value, v1, v2 ) return max(min(value,v1),v2) end function math.map(value, low1, high1, low2, high2) return low2 + (value - low1) * (high2 - low2) / (high1 - low1) end function Map.new(X,Y,W,H) local self = setmetatable({}, Map) self.x = X self.y = Y self.w = W self.h = H local pos = {getElementPosition(localPlayer)} self.posX = pos[1] self.posY = pos[2] self.posZ = pos[3] self.size = 90 self.color = {255,255,255,255} self.blipSize = x*18 self.drawRange = 220 self.map = dxCreateTexture("images/gtasa.png","dxt5") self.map2 = dxCreateTexture("images/gtasa2.png","dxt5") self.renderTarget = dxCreateRenderTarget(W, H, true) self.blips = {} for k=0, 63 do self.blips[k] = dxCreateTexture("images/icons/"..k..".png","dxt3") end if(#Map.instances == 0) then addEventHandler("onClientRender", getRootElement(), Map.render) end table.insert(Map.instances, self) return self end function Map.render() for k,v in pairs(Map.instances) do if v.visible then if not v.style then v:draw() elseif v.style == 1 then v:draw2() end end end end function Map:setVisible(bool) self.visible = bool if bool == true then self:setPosition(getElementPosition(localPlayer)) end return true end function Map:isVisible() return self.visible end function Map:setPosition(x,y,z) self.posX = x self.posY = y self.posZ = z return true end function Map:getPosition() return self.posX, self.posY, self.posZ end function Map:setColor(r,g,b,a) self.color = {r,g,b,a} return true end function Map:getColor() return self.color end function Map:setSize(value) self.size = value return true end function dxDrawEmptyRec(absX,absY,sizeX,sizeY,color,ancho) dxDrawRectangle ( absX,absY,sizeX,ancho,color ) dxDrawRectangle ( absX,absY+ancho,ancho,sizeY-ancho,color ) dxDrawRectangle ( absX+ancho,absY+sizeY-ancho,sizeX-ancho,ancho,color ) dxDrawRectangle ( absX+sizeX-ancho,absY+ancho,ancho,sizeY-ancho*2,color ) end function Map:draw() dxSetRenderTarget(self.renderTarget, true) local player = getLocalPlayer() local centerX = (self.x) + (self.w/2) local centerY = (self.y) + (self.h/2) local pr = getPedRotation(player) local mapSize = 3000 / (self.drawRange/180) local zoomwert = self.drawRange if getKeyState("=") then if self.drawRange > 120 then self.drawRange = self.drawRange - 8 end elseif getKeyState("-") then if self.drawRange < 660 then self.drawRange = self.drawRange + 8 end elseif getKeyState("arrow_l") then self.posX = self.posX - (self.drawRange/100*10) elseif getKeyState("arrow_r") then self.posX = self.posX + (self.drawRange/100*10) elseif getKeyState("arrow_u") then self.posY = self.posY + (self.drawRange/100*10) elseif getKeyState("arrow_d") then self.posY = self.posY - (self.drawRange/100*10) end local mapPosX, mapPosY = -(math.map(self.posX+3000,0,6000,0,mapSize)-self.w/2), -(math.map(-self.posY + 3000, 0, 6000, 0, mapSize)-self.h/2) --[[ local screenW, screenH = guiGetScreenSize() local mptx,mpty,mptz = getWorldFromScreenPosition ( centerX, centerY, self.drawRange ) dxDrawText(tostring(umgerechnetx1), screenW * 0.3713, screenH * 0.6276, screenW * 0.6272, screenH * 0.9154, tocolor(255, 255, 255, 255), 1.00, "default", "left", "top", false, false, false, false, false) --]] ----------------------------------------------------------------------------------------------------- -- draw map dxDrawRectangle(0,0,self.w,self.h,tocolor(0,120,210)) dxDrawImage(mapPosX, mapPosY, mapSize, mapSize, self.map, 0,0,0, tocolor(255,255,255)) ----------------------------------------------------------------------------------------------------- -- draw radar areas for i, area in ipairs (getElementsByType("radararea")) do local ex, ey = getElementPosition(area) local w, h = getRadarAreaSize(area) local areaX = (3000+ex) / 6000 * mapSize local areaY = (3000-ey) / 6000 * mapSize local scaledW = w / 6000*mapSize local scaledH = -(h / 6000*mapSize) areaX = areaX + mapPosX areaY = areaY + mapPosY local rr, gg, bb, alpha = 255,255,255,255 rr, gg, bb, alpha = getRadarAreaColor(area) if (isRadarAreaFlashing(area)) then alpha = alpha*math.abs(getTickCount()%1000-500)/500 end dxSetBlendMode("modulate_add") dxDrawRectangle(areaX, areaY, scaledW, scaledH,tocolor(rr,gg,bb,alpha)) dxSetBlendMode("blend") end --local minStreamPosX,maxStreamPosX,minStreamPosY,maxStreamPosY=playerX-300*px*zoomwert,playerX+300*px*zoomwert,playerY-300*py*zoomwert,playerY+300*py*zoomwert if (#wegTable > 0) then for i,wayPoint in ipairs(wegTable) do --if mapPosX<wegTable[i].posX and mapPosX >wegTable[i].posX and mapPosY<wegTable[i].posY and mapPosY>wegTable[i].posY then local ex,ey = wegTable[i].posX,wegTable[i].posY local blipX = (3000+ex) / 6000 * mapSize local blipY = (3000-ey) / 6000 * mapSize blipX = blipX + mapPosX blipY = blipY + mapPosY if wegTable[i+1] then local ex2,ey2 = wegTable[i+1].posX,wegTable[i+1].posY local blipX2 = (3000+ex2) / 6000 * mapSize local blipY2 = (3000-ey2) / 6000 * mapSize blipX2 = blipX2 + mapPosX blipY2 = blipY2 + mapPosY local umgerechnetx1, umgerechnety1 = blipX,blipY local umgerechnetx2, umgerechnety2 = blipX2,blipY2 dxDrawLine(umgerechnetx1,umgerechnety1,umgerechnetx2,umgerechnety2,gpsColorRed, zoomwert / 10 / 20) else local ex2,ey2 = lastMarkerPositionX,lastMarkerPositionY local blipX2 = (3000+ex2) / 6000 * mapSize local blipY2 = (3000-ey2) / 6000 * mapSize blipX2 = blipX2 + mapPosX blipY2 = blipY2 + mapPosY local umgerechnetx1, umgerechnety1 = blipX,blipY local umgerechnetx2, umgerechnety2 = blipX2,blipY2 dxDrawLine(umgerechnetx1,umgerechnety1,umgerechnetx2,umgerechnety2,gpsColorRed, zoomwert / 10 / 20) end --end end end --[[function getWorldFromMapPosition(mapX, mapY) self.posX, self.posY, self.posZ = getElementPosition(player) local mapX, mapY = getCursorPosition() local worldX = ((mapX - (self.posX + self.w / 2)) / self.drawRange) / 3000 / (self.drawRange/180); local worldY = ((mapY - (self.posY + self.h / 2)) / self.drawRange) / 3000 / (self.drawRange/180); outputChatBox(tostring(worldX).." | "..tostring(worldY)) --return worldX, worldY; --end--]] ----------------------------------------------------------------------------------------------------- -- draw arrow local local b = self.blipSize local ex,ey = getElementPosition(player) local blipX = (3000+ex) / 6000 * mapSize local blipY = (3000-ey) / 6000 * mapSize blipX = blipX + mapPosX blipY = blipY + mapPosY dxDrawImage(blipX-x*23/2, blipY-y*25/2,x*23,y*25, self.blips[2], (-pr)%360,0,0,tocolor(255,255,255,255)) dxSetRenderTarget() ----------------------------------------------------------------------------------------------------- -- draw render target dxDrawEmptyRec(self.x-x*5, self.y-y*5, self.w+x*10, self.h+y*10,tocolor(0,0,0,150),5) dxDrawImage(self.x, self.y, self.w, self.h, self.renderTarget,0,0,0,tocolor(unpack(self.color))) ----------------------------------------------------------------------------------------------------- -- draw blips for i, b in ipairs (getElementsByType('blip')) do if getElementDimension(b) == getElementDimension(player) and getElementInterior(b) == getElementInterior(player) then local elementAttached = getElementAttachedTo ( b ) if elementAttached ~= player then local ex, ey, ez = getElementPosition(b) local blipX = (3000+ex) / 6000 * mapSize local blipY = (3000-ey) / 6000 * mapSize blipX = blipX + mapPosX + self.x blipY = blipY + mapPosY + self.y --[[if isCursorShowing(localPlayer) then local mapX, mapY = getCursorPosition() local tx,ty = getWorldFromMapPosition(mapX, mapY, self.posX, self.posY, self.x, self.y, self.w, self.h, self.drawRange) outputChatBox(tostring(tx).." | "..tostring(ty)) end--]] if blipX < self.x then blipX = self.x end if blipX > self.x + self.w then blipX = self.x + self.w end if blipY < self.y then blipY = self.y end if blipY > self.y + self.h then blipY = self.y + self.h end local blipIcon = getBlipIcon(b) local rr,gg,bb,aa = 255,255,255,255 local blipSize = self.blipSize if (elementAttached) and (getElementType(elementAttached) == "vehicle") then blipSize = blipSize / 2 aa = 200 end local blipIcon = getBlipIcon(b) if blipIcon == 0 then rr, gg, bb, aa = getBlipColor(b) end local img = self.blips[blipIcon] if (elementAttached) and (getElementType(elementAttached) == "player") then img = self.blips[0] blipSize = blipSize / 1.6 end dxDrawImage(blipX-blipSize/2, blipY-blipSize/2, blipSize, blipSize, img,0,0,0,tocolor(rr,gg,bb,aa)) end end end end wegTable={} function Map:draw2() dxSetRenderTarget(self.renderTarget, true) local player = getLocalPlayer() local centerX = (self.x) + (self.w/2) local centerY = (self.y) + (self.h/2) local pr = getPedRotation(player) local mapSize = 3000 / (self.drawRange/180) local zoomwert = self.drawRange local _, _, camRotZ = getElementRotation(getCamera()) if getKeyState("=") then if self.drawRange > 120 then self.drawRange = self.drawRange - 8 end elseif getKeyState("-") then if self.drawRange < 260 then self.drawRange = self.drawRange + 8 end end self.posX, self.posY, self.posZ = getElementPosition(player) local playerX, playerY, playerZ = getElementPosition(player) local mapPosX, mapPosY = -(math.map(self.posX+3000,0,6000,0,mapSize)-self.w/2), -(math.map(-self.posY + 3000, 0, 6000, 0, mapSize)-self.h/2) ----------------------------------------------------------------------------------------------------- -- draw map local cx,cy,_,tx,ty = getCameraMatrix() local north = findRotation(cx,cy,tx,ty) dxDrawRectangle(0,0,self.w,self.h,tocolor(0,120,210)) dxDrawImage(mapPosX, mapPosY, mapSize, mapSize, self.map2, north, -mapSize/2 - mapPosX + self.w/2, -mapSize/2 - mapPosY + self.h/2, tocolor(255,255,255)) ----------------------------------------------------------------------------------------------------- -- draw wanted level effect if getPlayerWantedLevel(player) > 0 then if not old then old = getTickCount() wR,wG,wB = 0,0,255 end current = getTickCount () if current-old > 1500 then old = getTickCount() if wR == 255 then wR,wG,wB = 0,100,255 else wR,wG,wB = 255,0,0 end end dxDrawRectangle(0, 0, self.w, self.h,tocolor(wR,wG,wB,100)) end ----------------------------------------------------------------------------------------------------- -- draw radar areas for i, area in ipairs (getElementsByType("radararea")) do local ex, ey = getElementPosition(area) local w, h = getRadarAreaSize(area) local areaX = (3000+ex) / 6000 * mapSize local areaY = (3000-ey) / 6000 * mapSize local scaledW = w / 6000*mapSize local scaledH = -(h / 6000*mapSize) areaX = areaX + mapPosX areaY = areaY + mapPosY local rr, gg, bb, alpha = 255,255,255,255 rr, gg, bb, alpha = getRadarAreaColor(area) if (isRadarAreaFlashing(area)) then alpha = alpha*math.abs(getTickCount()%1000-500)/500 end dxSetBlendMode("modulate_add") dxDrawImage(areaX, areaY, scaledW, scaledH,self.blips[1], north, -scaledW/2 - areaX + self.w/2, -scaledH/2 - areaY + self.h/2,tocolor(rr,gg,bb,alpha)) dxSetBlendMode("blend") end ----------------------------------------------------------------------------------------------------- -- draw blips for i, b in ipairs (getElementsByType('blip')) do if getElementDimension(b) == getElementDimension(player) and getElementInterior(b) == getElementInterior(player) then local elementAttached = getElementAttachedTo ( b ) if elementAttached ~= player then local ex, ey, ez = getElementPosition(b) local bf = getBlipVisibleDistance(b) local blipIcon = getBlipIcon(b) local rr,gg,bb,aa = 255,255,255,255 local blipSize = self.blipSize local blipX, blipY = getRadarFromWorldPosition(ex,ey,-x*40, -y*40, self.w+x*80, self.h+y*80,mapSize) local Px, Py, Pz = getElementPosition(player) if getDistanceBetweenPoints2D(Px, Py, ex, ey) < 380 then --outputChatBox(getDistanceBetweenPoints2D(Px, Py, ex, ey)..' : '..bf) blipX, blipY = cstrain(blipX, 1, 258), cstrain(blipY, 1, 150) end if getDistanceBetweenPoints2D(Px, Py, ex, ey) < bf then if (elementAttached) and (getElementType(elementAttached) == "vehicle") then blipSize = blipSize / 2 aa = 200 end local blipIcon = getBlipIcon(b) if blipIcon == 0 then rr, gg, bb, aa = getBlipColor(b) end local img = self.blips[blipIcon] if (elementAttached) and (getElementType(elementAttached) == "player") then img = self.blips[0] blipSize = blipSize / 1.6 end dxDrawImage(blipX-blipSize/2, blipY-blipSize/2, blipSize, blipSize,img, 0,0,0,tocolor(rr,gg,bb,aa)) end if (elementAttached) and (getElementType(elementAttached) == "player") and getPedOccupiedVehicle(elementAttached) and getVehicleType(getPedOccupiedVehicle(elementAttached)) == "Helicopter" then dxDrawImage(blipX-x*50/2, blipY-y*50/2, x*50, y*50, "images/H.png",north-getPedRotation(elementAttached)) dxDrawImage(blipX-x*50/2, blipY-y*50/2, x*50, y*50, "images/HR.png",getTickCount()%360) end end end end --local minStreamPosX,maxStreamPosX,minStreamPosY,maxStreamPosY=playerX-300*px*zoomwert,playerX+300*px*zoomwert,playerY-300*py*zoomwert,playerY+300*py*zoomwert if (#wegTable > 0) then for i,wayPoint in ipairs(wegTable) do --if mapPosX<wegTable[i].posX and mapPosX >wegTable[i].posX and mapPosY<wegTable[i].posY and mapPosY>wegTable[i].posY then local screenW, screenH = guiGetScreenSize() if wegTable[i+1] then local umgerechnetx1, umgerechnety1 = getRadarFromWorldPosition(wegTable[i].posX,wegTable[i].posY,-x*40, -y*40, self.w+x*80, self.h+y*80,mapSize) local umgerechnetx2, umgerechnety2 = getRadarFromWorldPosition(wegTable[i+1].posX,wegTable[i+1].posY,-x*40, -y*40, self.w+x*80, self.h+y*80,mapSize) dxDrawLine(umgerechnetx1,umgerechnety1,umgerechnetx2,umgerechnety2,gpsColorRed, zoomwert / 6 / 10) else local umgerechnetx1, umgerechnety1 = getRadarFromWorldPosition(wegTable[i].posX,wegTable[i].posY,-x*40, -y*40, self.w+x*80, self.h+y*80,mapSize) local umgerechnetx2, umgerechnety2 = getRadarFromWorldPosition(lastMarkerPositionX,lastMarkerPositionY,-x*40, -y*40, self.w+x*80, self.h+y*80,mapSize) dxDrawLine(umgerechnetx1,umgerechnety1,umgerechnetx2,umgerechnety2,gpsColorRed, zoomwert / 6 / 10) end --end end end ----------------------------------------------------------------------------------------------------- -- draw arrow local local b = self.blipSize local ex,ey = getElementPosition(player) local blipX = (3000+ex) / 6000 * mapSize local blipY = (3000-ey) / 6000 * mapSize blipX = blipX + mapPosX blipY = blipY + mapPosY if getPedOccupiedVehicle(player) and getVehicleType(getPedOccupiedVehicle(player)) == "Helicopter" then dxDrawImage(blipX-x*50/2, blipY-y*50/2, x*50, y*50, "images/H.png",north-pr) dxDrawImage(blipX-x*50/2, blipY-y*50/2, x*50, y*50, "images/HR.png",getTickCount()%360) else dxDrawImage(blipX-x*23/2, blipY-y*25/2,x*23,y*25, self.blips[2], north-pr,0,0,tocolor(255,255,255,255)) end dxSetRenderTarget() ----------------------------------------------------------------------------------------------------- -- draw render target if getElementInterior(player) == 0 then dxDrawRectangle(self.x-x*5, self.y-y*5, self.w+x*10, self.h+y*10, tocolor(0, 0, 0, 150), false) dxDrawImage(self.x, self.y, self.w, self.h, self.renderTarget,0,0,0,tocolor(unpack(self.color))) else dxDrawImage(self.x, self.y, self.w, self.h, "images/lostc.png") end ----------------------------------------------------------------------------------------------------- -- draw damage effect for k, v in ipairs(Map.damageEfect) do v[3] = v[3] - (getTickCount() - v[1]) / 800 if v[3] <= 0 then table.remove(Map.damageEfect, k) else dxDrawImage(self.x, self.y, self.w, self.h, "images/mapred.png", 0, 0, 0, tocolor(255, 255, 255, v[3])) end end --dxDrawImage(self.x-x*5, self.y-y*22, self.w+x*10, self.h+y*28, "images/mapbg.png",0,0,0,tocolor(unpack(self.color))) --local zinColor = getKeyState("=") and tocolor(255,255,255,self.color[4]) or tocolor(172,211,115,self.color[4]) --dxDrawImage(self.x+x*263, self.y-y*19,x*17,y*17, "images/zin.png",0,0,0,zinColor) --local zoutColor = getKeyState("-") and tocolor(255,255,255,self.color[4]) or tocolor(172,211,115,self.color[4]) --dxDrawImage(self.x+x*285, self.y-y*19,x*17,y*17, "images/zout.png",0,0,0,zoutColor) --dxDrawText(zoneText,self.x+x*32,self.y-y*22, x*100, y*100, tocolor(unpack(self.color)), x*0.6, font,"left","top",false,false,false,true) --dxDrawRectangle(self.x-x*5, self.y-y*5, self.w+x*10, self.h+y*10, tocolor(0, 0, 0, 150), false) local zoneText = getElementInterior(player) == 0 and "#FFFFFF"..getZoneName(playerX,playerY,playerZ) or "#FFFFFF" dxDrawRectangle(self.x, self.y+self.h-y*20, self.w, self.h/8, tocolor(0, 0, 0, 80), false) dxDrawText(" "..zoneText,self.x, self.y+self.h-y*21, x*100, y*100, tocolor(255, 255, 255, 255), x*0.6, font,"left","top",false,false,false,true) end function findRotation(x1, y1, x2, y2) local t = -math.deg(math.atan2(x2-x1,y2-y1)) if t < 0 then t = t + 360 end return t end function getPointAway(x, y, angle, dist) local a = -math.rad(angle) dist = dist / 57.295779513082 return x + (dist * math.deg(math.sin(a))), y + (dist * math.deg(math.cos(a))) end function getRadarFromWorldPosition(bx, by, x, y, w, h, scaledMapSize) local RadarX, RadarY = x + w/2, y + h/2 local RadarD = getDistanceBetweenPoints2D(RadarX, RadarY, x, y) local px, py = getElementPosition(localPlayer) local _, _, crz = getElementRotation(getCamera()) local dist = getDistanceBetweenPoints2D(px, py, bx, by) if dist > RadarD * 6000/scaledMapSize then dist = RadarD * 6000/scaledMapSize end local rot = 180 - findRotation(px, py, bx, by) + crz local ax, ay = getPointAway(RadarX, RadarY, rot, dist * scaledMapSize/6000) return ax, ay end function onClientPlayerDamage(attacker, weapon, _, bodypart) local part = attacker and getElementType(attacker) == "player" and getPedWeaponSlot(attacker) and getPedWeaponSlot(attacker) or false if attacker and attacker ~= source and not (part == 8 or (part == 7 and weapon ~= 38)) then Map.damageEfect[#Map.damageEfect + 1] = {getTickCount(), 0, math.min(25.5 * bodypart, 255)} else Map.damageEfect[#Map.damageEfect + 1] = {getTickCount(), 0, math.min(20 * bodypart, 255)} end if #Map.damageEfect > 18 then repeat table.remove(Map.damageEfect, 1) until #Map.damageEfect < 18 end end addEventHandler("onClientPlayerDamage", localPlayer,onClientPlayerDamage) function getWorldFromMapPosition(mapX, mapY, posx, posy, x, y, w, h, range) local worldX = posx + ((mapX*10 - (x + w / 2)) / range) / 3000 / (range/180); local worldY = posy - ((mapY*10 - (y + h / 2)) / range) / 3000 / (range/180); return worldX, worldY end
  24. Algum moderador move para lixeira vou perguntar lá no gringo pq esse problema é meio avançado acredito que o pessoal aqui não vai conseguir me ajudar agradeço ai a todos
  25. Bom isto n funciona pois meu mapa F11 não é modificado e sim um script que cria um novo F11 e ele oculta o original não substitui a imagem original !
×
×
  • Create New...