-
Posts
321 -
Joined
-
Last visited
Everything posted by Flipi
-
si pero no pasa nada , asi seria no?: local BannedIDs = { 432, 532 } local rootElem = getRootElement() local thisRoot = getResourceRootElement(getThisResource()) local player = getLocalPlayer() local vehicle local size = 1.2 local modo = 0.01 local score = 0 local screenScore = 0 local tick local idleTime local multTime local driftTime local Yellow = tocolor(255,232,25) local Red = tocolor(234,0,3) local TempCol = Yellow local mult = 1 local tablamult = {350,1400,4200,11200} local anterior = 0 local mejor = 0 local total = 0 local global_mejor = 0 local global_nombre = "N/A" local screenWidth, screenHeight = guiGetScreenSize() local x1,y1,x2,y2 = screenWidth*0.2,screenHeight*0.1,screenWidth*0.8,screenHeight*0.8 addEventHandler("onClientResourceStart", thisRoot, function() addEventHandler("onClientRender", rootElem, showText) outputChatBox("Waiting for server drift data...") triggerServerEvent("driftClienteListo", rootElem, player) end ) addEventHandler("onClientResourceStop", thisRoot, function() removeEventHandler("onClientRender", rootElem, showText) end ) function isValidVehicle() local temp = getPedOccupiedVehicle(player) if not temp or getVehicleOccupant(temp,0) ~= player or getVehicleType(temp) ~= "Automobile" then return false end local vehID = getElementModel(temp) for k,v in ipairs(BannedIDs) do if vehID == v then return false end end return temp end function showText() dxDrawText(string.format("Best Drift: %s - %d",global_nombre,global_mejor),44,screenHeight-43,screenWidth,screenHeight,Yellow,1,"pricedown") vehicle = isValidVehicle() if not vehicle then return end if size > 1.3 then modo = -0.01 elseif size < 1.2 then modo = 0.01 end size = size + modo tick = getTickCount() local angulo,velocidad = angle() local tempBool = tick - (idleTime or 0) < 750 if not tempBool and score ~= 0 then anterior = score setElementData(player, "Last Drift", anterior) total = total+anterior setElementData(player, "Total Drift", total) if score > mejor then mejor = score setElementData(player, "Best Drift", mejor) checkPuntaje(mejor) end triggerEvent("onVehicleDriftEnd", rootElem, tick-driftTime-750) score = 0 end if angulo ~= 0 then if score == 0 then triggerEvent("onVehicleDriftStart", rootElem) driftTime = tick end if tempBool then score = score + math.floor(angulo*velocidad)*mult else score = math.floor(angulo*velocidad)*mult end if TempCol == Red then TempCol = Yellow end screenScore = score idleTime = tick end local temp2 = string.format("Factor: X%d\n%s",mult,mult~=5 and string.format("Gain X%d with %d",mult+1,tablamult[mult]) or "MAX") dxDrawText(temp2, 20,155,screenWidth,screenHeight, Yellow, 1.2, "sans","left","top", false,true,false) if velocidad <= 0.3 and mult ~= 1 then dxDrawText("\n\nToo Slow!", 20,155,screenWidth,screenHeight, Yellow, 1.2, "sans","left","top", false,true,false) end if tick - (idleTime or 0) < 3000 then local temp = "DRIFT" if score >= 100000 then temp = "DRIFT\n\nDrift King!" elseif score >= 50000 then temp = "DRIFT\n\nInsane Drift!" elseif score >= 20000 then temp = "DRIFT\n\nOutrageous!" elseif score >= 15000 then temp = "DRIFT\n\nColossal!" elseif score >= 7000 then temp = "DRIFT\n\nSuberb!" elseif score >= 3000 then temp = "DRIFT\n\nGreat Drift!" elseif score >= 1000 then temp = "DRIFT\n\nGood Drift!" end dxDrawText(temp, x1,y1,x2,y2, TempCol, 2.2, "sans","center","top", false,true,false) dxDrawText(string.format("\n%d",screenScore), x1,y1-10,x2,y2, TempCol, size, "pricedown","center","top", false,true,false) end end function angle() local vx,vy,vz = getElementVelocity(vehicle) local modV = math.sqrt(vx*vx + vy*vy) if not isVehicleOnGround(vehicle) then return 0,modV end local rx,ry,rz = getElementRotation(vehicle) local sn,cs = -math.sin(math.rad(rz)), math.cos(math.rad(rz)) local deltaT = tick - (multTime or 0) if mult~= 1 and modV <= 0.3 and deltaT > 750 then mult = mult-1 multTime = tick elseif deltaT > 1500 then local temp = 1 if score >= 11200 then temp = 5 elseif score >= 4200 then temp = 4 elseif score >= 1400 then temp = 3 elseif score >= 350 then temp = 2 end if temp>mult then mult = temp multTime = tick end end if modV <= 0.2 then return 0,modV end --speed over 40 km/h local cosX = (sn*vx + cs*vy)/modV if cosX > 0.966 or cosX < 0 then return 0,modV end --angle between 15 and 90 degrees return math.deg(math.acos(cosX))*0.5, modV end addEvent("driftCarCrashed", true) addEventHandler("driftCarCrashed", rootElem, function() if score ~= 0 then score = 0 mult = 1 TempCol = Red triggerEvent("onVehicleDriftEnd", rootElem, 0) end end ) addEvent("driftActualizarRecord", true) addEventHandler("driftActualizarRecord", rootElem, function(score, name) global_mejor = score global_nombre = name end ) function resetScore() anterior,mejor,total = 0,0,0 setElementData(player, "Last Drift", anterior) setElementData(player, "Total Drift", total) setElementData(player, "Best Drift", mejor) end addEvent("driftResetAllScores", true) addEventHandler("driftResetAllScores", rootElem, resetScore) addCommandHandler("resetdrift", resetScore) function checkPuntaje(BestDrift) triggerServerEvent("driftNuevoRecord", rootElem, BestDrift, string.gsub(getPlayerName(player), "#%x%x%x%x%x%x", "")) end function opcion2() local cantidad = getElementData(localPlayer, "Last Drift") givePlayerMoney( tonumber(cantidad)) end
-
Lo hice pero no me funciona ..
-
pero como una function? (lo hice asi, pero no funciono) function() local cantidad = getElementData(source, "score") givePlayerMoney(source, tonumber(cantidad)) end -- o Sino function() local cantidad = getElementData(source, "Last Drift") givePlayerMoney(source, tonumber(cantidad)) end
-
pero en que parte se colocaría eso?
-
Gracias !, una consulta, como puedo hacer para que el numero de drift que realizo el jugador sea también lo que gane como dinero. Ejemplo: si pepe hace "265" de drift, tambien gane "256" de dinero.
-
Hola, tengo un problema con este resource: https://community.multitheftauto.com/in ... ils&id=556 el problema es que no funciona el best drift que aparece en la parte de abajo del radar en la imagen Screen: https://community.multitheftauto.com/im ... t/1339.png en que parte se debe modificar?
-
hola, como puedo hacer para que poniendo un comando "/pregunta [como te llamas?]" en el outputChatBox aparesca -Pregunta: como te llamas? -Viejo del saco dice: nose Ise esto, se que falta completarlo pero nose como: local msgs = { 'nose', 'mañana' } local msgss = { 'viejo pascuero', 'viejo del saco' } addCommandHandler ( "pregunta", function ( player ) local textt = msgss [ math.random ( 1, #msgss )] local text = msgs [ math.random ( 1, #msgs )] outputChatBox ( ..textt.. "dice:" ..text.., root, 255, 255, 255, true ) end )
-
gracias !, una pregunta, esta bien asi este script? (nose como probarlo, ya que es con el evento quit). g_Root = getRootElement() local msgs = { ' Fue la baño!', ' Lo reto su mamá!', ' No pagó el internet!', ' Se le fundio el pc!', ' Se canso de ser malo!' } addEventHandler ( "onClientPlayerQuit", g_Root, function(reason) local text = msgs [ math.random ( 1, #msgs ) ] outputChatBox ('* #FFFFFF'..getPlayerName ( source ).. text .."["..reason.."]", root, 255, 255, 255, true ) end )
-
dice lo mismo: lua: 5: Bad argument @ 'getBodyPartName' lua: 5 : attempt to concatenate a boolean value
-
me arroja un error, lua: 5: Bad argument @ 'getBodyPartName' lua: 5 : attempt to concatenate a boolean value
-
gracias, puedo hacerte una pregunta, esto está bien?, es algo parecido, pero cuando el jugador se va del server.. local msgs = { ' fue la baño!', ' lo reto su mamá!', ' no pagó el internet!', ' se le fundio el pc!' } addEventHandler ( "onClientPlayerQuit", g_Root, function(reason) local text = msgs [ math.random ( 1, #msgs ) ] outputChatBox ('* #FFFFFF'..getPlayerName ( source ).. text "#0080FF[#FFFFFF"..reason.."#0080FF]", root, 255, 255, 255, true ) end )
-
Gracias, y como puedo agregarle la razón de la muerte (suicide, kill...)?
-
Hola, me gustaria saber como hacer para agregar diversos tipos de mensajes al morir, que no solo diga "murio", sino que otros mensajes mas con math.random, pero no logro hacerlo. function playerDied(totalAmmo, killer, killerWeapon, bodypart) outputChatBox('* #FFFFFF'..getPlayerName(source)..' #0080FFMurio!',getRootElement(),255,255,255,true) end addEventHandler("onPlayerWasted",getRootElement(),playerDied) Intente hacer esto pero no logro armarlo: local msgs = { 'noob', 'murio', 'diee!' } setTimer(function playerDied(totalAmmo, killer, killerWeapon, bodypart) local text = msgs[math.random(1, #msgs)] outputChatBox (getPlayerName(source).. text, root, 255, 255, 255, true) else outputChatBox(text, root, 255, 255, 255, true) end addEventHandler("onPlayerWasted",getRootElement(),playerDied) end, 25000, 0)
-
hola, quisiera saber como hacer un blip custom. hice esto pero no me funciona, falta algo, es server-side o client: addEventHandler ( "onClientResourceStart", getResourceRootElement(getThisResource()), function() local blip = guiCreateLabel(0, 0, 35, 20, "Base", false) guiSetFont(blip,"default-small") exports.customblips:guiConvertToCustomBlip ( blip, -301, 1510, 75 ) exports.customblips:createCustomBlip ( -301, 1555, 30, 17, "bs.png" ) end )
-
Hola, quiero editar este script para que en la parte de seleccionar jugadores se elimine el codigo de color. el screen1 aparece la tabla con los jugadores (con los codigos de color), screen2 al seleccionar el jugador se debe apretar el boton mirar jugador y screen3 muestra la funcion que cumple al apretar mirar jugador. La cosa es que yo pude sacar los codigos de color con esta funcion local getplayer = getPlayerName(playeritem):gsub ( "#%x%x%x%x%x%x", "" ) , pero el problema era que el boton mirar jugador no realizaba su funcion (osea la screen3) Screen1: http://imageshack.us/a/img580/5308/vxlw.png Screen2: http://imageshack.us/a/img571/1152/jwpw.png Screen3: http://imageshack.us/a/img43/92/jwsz.png modelX, modelY, modelZ = 219.9765, 1822.8145, 6.533 -- minimap location showLegend = createColSphere ( modelX, modelY, modelZ, 13 ) --colshape for activating nametags function makeMapMarker (player) local r, g, b = getPlayerNametagColor ( player ) local themarker = createMarker ( modelX, modelY, modelZ, "cylinder", .05, r, g, b, 255 ) setElementData ( player, "Radar_marker", themarker, false ) end function ResourceStart(startedresource) if startedresource == getThisResource() then Radar_items = getElementsByType( "player" ) for k,v in ipairs(Radar_items) do makeMapMarker (v) end setTimer(Radar_check, 250, 0) end end addEventHandler( "onClientResourceStart", getRootElement(), ResourceStart ) function PlayerJoin ( ) makeMapMarker (source) end addEventHandler( "onClientPlayerJoin", getRootElement(), PlayerJoin) function PlayerQuit ( ) destroyElement( getElementData ( source, "Radar_marker" ) ) end addEventHandler( "onClientPlayerQuit", getRootElement(), PlayerQuit) function Radar_check() Radar_items = getElementsByType( "player" ) for k,v in ipairs(Radar_items) do if isElement(v) then x,y,z = getElementPosition ( v ) x = x / 1642.935378 y = y / 1642.935378 z = z / 1642.935378 local themarker = getElementData ( v, "Radar_marker" ) setElementPosition ( themarker, modelX-y, modelY+x, modelZ+z ) --Whack math is because west is north on 3d model end end end function ColShapeHit ( theElement, matchingDimension ) if theElement == getLocalPlayer() then if not mapNamesHandler then mapNamesHandler = addEventHandler ( "onClientRender", root, ClientRender ) end end end addEventHandler("onClientColShapeHit",showLegend,ColShapeHit) function ColShapeLeave ( theElement, matchingDimension ) if theElement == getLocalPlayer() then if mapNamesHandler then removeEventHandler ( "onClientRender", root, ClientRender ) mapNamesHandler = nil end end end addEventHandler("onClientColShapeLeave", showLegend, ColShapeLeave ) function ClientRender () if trackmode == 1 then local Radar_items = getElementsByType( "player" ) for k,v in pairs(Radar_items) do local r, g, b, a = getMarkerColor ( getElementData ( v, "Radar_marker" ) ) local x, y, z = getElementPosition ( getElementData ( v, "Radar_marker" ) ) local zOffset = (k/20)+.3 local screenX, screenY = getScreenFromWorldPosition ( x, y, z + zOffset ) local screenXX, screenYY = getScreenFromWorldPosition ( x, y, z ) --For the marker if screenX ~= false and screenXX ~= false then local name = getPlayerName ( v ) dxDrawText ( name, screenX, screenY, screenX, screenY, tocolor(r, g, b), 1, "default", "left", "top", false, false, false, true) dxDrawLine ( screenX, screenY+13, screenXX, screenYY, tocolor(r,g,b), 1 ) end end elseif trackmode == 2 then local randomalpha = math.random( 70, 200 ) setElementAlpha(holoped, randomalpha) local r, g, b, a = getMarkerColor ( getElementData ( trackedplayer, "Radar_marker" ) ) local x, y, z = getElementPosition ( getElementData ( trackedplayer, "Radar_marker" ) ) local zOffset = .3 local screenX, screenY = getScreenFromWorldPosition ( modelX, modelY, modelZ+.4 ) local screenXX, screenYY = getScreenFromWorldPosition ( x, y, z ) --For the marker if screenX ~= false and screenXX ~= false then local screenXXX, screenYYY = getScreenFromWorldPosition ( modelX, modelY, modelZ+1.5 ) if screenXXX ~= false then local name = getPlayerName (trackedplayer) dxDrawText ( name, screenXXX+40, screenYYY-15, screenX, screenY, tocolor(r, g, b), 1, "default", "left", "top", false, false, false, true) local hp = getElementHealth ( trackedplayer) roundedhp = math.round(hp) if trackedarmor ~= nil then dxDrawText ( "Vida: "..roundedhp, screenXXX+40, screenYYY, screenX, screenY, tocolor(r, g, b) ) dxDrawText ( "Armadura: "..trackedarmor, screenXXX+40, screenYYY+15, screenX, screenY, tocolor(r, g, b) ) dxDrawText ( "Ubicacion: "..trackedlocation..", "..trackedcity, screenXXX+40, screenYYY+30, screenX, screenY, tocolor(r, g, b) ) dxDrawText ( "Arma: "..trackedweapon, screenXXX+40, screenYYY+45, screenX, screenY, tocolor(r, g, b) ) dxDrawText ( "Vehiculo: "..trackedvehicle, screenXXX+40, screenYYY+60, screenX, screenY, tocolor(r, g, b) ) else dxDrawText ( "Escaneando...", screenXXX+40, screenYYY, screenX, screenY, tocolor(r, g, b) ) end end dxDrawLine ( screenX, screenY, screenXX, screenYY, tocolor(r,g,b), 1 ) end end end trackedvehicle = nil trackerMarker = createMarker (modelX-7.5596, modelY+.022, modelZ-1.019, "cylinder", 1.5, 255, 255, 0, 40 ) tracker_Window = {} tracker_Button = {} tracker_Grid = {} tracker_Window[1] = guiCreateWindow(123,142,223,228,"Contro de Seguimiento",false) guiWindowSetSizable(tracker_Window[1],false) tracker_Player = guiCreateButton(0.0942,0.8114,0.3901,0.136,"Mirar Jugador",true,tracker_Window[1]) tracker_All = guiCreateButton(0.5022,0.8158,0.3901,0.1316,"Mirar Todos",true,tracker_Window[1]) tracker_Grid = guiCreateGridList(0.0852,0.136,0.8072,0.6491,true,tracker_Window[1]) guiGridListSetSelectionMode(tracker_Grid,2) column = guiGridListAddColumn( tracker_Grid, "Nombre del jugador", 0.85 ) guiSetVisible ( tracker_Window[1], false ) trackmode = 1 trackedplayer = nil trackedarmor = nil trackedlocation = nil trackedcity = nil trackedweapon = nil trackedvehicle = nil function showPlayerButton() guiSetVisible ( tracker_Player, true ) end addEventHandler ( "onClientGUIClick", tracker_Grid, showPlayerButton) holoped = createPed ( 0, modelX, modelY, modelZ+1.4 ) setElementAlpha(holoped, 0) setPedFrozen(holoped, true) setElementCollisionsEnabled(holoped, false) setPedVoice(holoped, "PED_TYPE_DISABLED") function showTrackerGui ( hitPlayer, matchingDimension ) if (hitPlayer == getLocalPlayer()) and (isPedOnGround ( getLocalPlayer())) then guiGridListClear(tracker_Grid) guiSetVisible ( tracker_Window[1], true ) guiBringToFront ( tracker_Window[1] ) guiSetVisible ( tracker_Player, false ) showCursor ( true ) for id, playeritem in ipairs(getElementsByType("player")) do local row = guiGridListAddRow ( tracker_Grid ) local getplayer = getPlayerName(playeritem):gsub ( "#%x%x%x%x%x%x", "" ) guiGridListSetItemText ( tracker_Grid, row, column, getplayer, false, false ) end end end addEventHandler ( "onClientMarkerHit", trackerMarker, showTrackerGui ) function trackerMarkerLeave ( hitPlayer, matchingDimension ) if (hitPlayer == getLocalPlayer()) then guiSetVisible ( tracker_Window[1], false ) showCursor ( false ) end end addEventHandler ( "onClientMarkerLeave", trackerMarker, trackerMarkerLeave ) function trackplayer() local itemrow,itemcolumn = guiGridListGetSelectedItem(tracker_Grid ) if itemrow ~= -1 then local playerName = guiGridListGetItemText (tracker_Grid, guiGridListGetSelectedItem(tracker_Grid ), 1 ) trackedplayer = getPlayerFromName(playerName) if trackedplayer ~= false then setElementModel(holoped,getElementModel(trackedplayer)) trackmode = 2 triggerServerEvent ("onTrackModeChange", getLocalPlayer(), trackmode, trackedplayer ) end else trackmode = 1 triggerServerEvent ("onTrackModeChange", getLocalPlayer(), trackmode ) end guiSetVisible ( tracker_Window[1], false ) showCursor ( false ) end addEventHandler ( "onClientGUIClick", tracker_Player, trackplayer) function trackall() guiSetVisible ( tracker_Window[1], false ) showCursor ( false ) trackmode = 1 triggerServerEvent ("onTrackModeChange", getLocalPlayer(), trackmode ) setElementAlpha(holoped, 0) end addEventHandler ( "onClientGUIClick", tracker_All, trackall) addEvent( "onTrackerUpdated", true ) function syncTrackMode ( newtrackmode, newtrackedplayer ) if newtrackmode == 1 then trackmode = 1 setElementAlpha(holoped, 0) trackedarmor = nil elseif newtrackmode == 2 then trackmode = 2 trackedplayer = newtrackedplayer setElementModel(holoped,getElementModel(trackedplayer)) trackedarmor = nil end end addEventHandler( "onTrackerUpdated", getRootElement(), syncTrackMode ) function didTrackedplayerQuit() if source == trackedplayer then trackmode = 1 setElementAlpha(holoped, 0) trackedarmor = nil end end addEventHandler( "onClientPlayerQuit", getRootElement(), didTrackedplayerQuit ) function math.round(number, decimals, method) decimals = decimals or 0 local factor = 10 ^ decimals if (method == "ceil" or method == "floor") then return math[method](number * factor) / factor else return tonumber(("%."..decimals.."f"):format(number)) end end addEvent( "onTrackerInfoUpdate", true ) function syncTrackMode(vehicle, location, city, weapon, armor) if vehicle then trackedvehicle = vehicle end if location then trackedlocation = location end if city then trackedcity = city end if weapon then trackedweapon = weapon end if armor then trackedarmor = armor end end addEventHandler( "onTrackerInfoUpdate", getRootElement(), syncTrackMode )
-
No se preocupen chicos ya lo arregle gracias por todo !