#Dv^
Members-
Posts
459 -
Joined
-
Last visited
Everything posted by #Dv^
-
Puedes utilizar isInsideRadarArea para comprobar que esté en el área, sería algo así Client: local radar = createRadarArea ( 3164, -2022, 140,140 , 255, 0, 0, 150 ) -- Esto es un ejemplo function sendHeadshot ( attacker, weapon, bodypart, loss ) local x,y,z = getElementPosition(source) if isInsideRadarArea ( radar, x, y ) then if attacker == getLocalPlayer() then if bodypart == 9 then triggerServerEvent( "onServerHeadshot", getRootElement(), source, attacker, weapon, loss ) setElementHealth ( source, 0 ) setPedHeadless( source, true ) end end end end addEventHandler ( "onClientPedDamage", getRootElement(), sendHeadshot ) addEventHandler ( "onClientPlayerDamage", getRootElement(), sendHeadshot ) Y del lado del servidor sería de la misma manera; local radar = createRadarArea ( 3164, -2022, 140,140 , 255, 0, 0, 150 ) -- Este es otro ejemplo function MakePlayerHeadshot( attacker, weapon, bodypart, loss ) local x,y,z = getElementPosition(source) if isInsideRadarArea ( radar, x, y ) then if bodypart == 9 then triggerEvent( "onPlayerHeadshot", source, attacker, weapon, loss ) setPedHeadless ( source, true ) killPed( source, attacker, weapon, bodypart ) setTimer( BackUp, 900, 1, source ) end end end function MakeHeadshot( source, attacker, weapon, loss ) triggerEvent( "onPlayerHeadshot", source, attacker, weapon, loss ) killPed( source, attacker, weapon, 9 ) setPedHeadless ( source, true ) setTimer( BackUp, 900, 1, source ) end function BackUp( source ) if getElementType ( source ) == "player" then setPedHeadless ( source, false ) end end addEvent ( "onServerHeadshot", true ) addEventHandler( "onPlayerDamage", getRootElement(), MakePlayerHeadshot ) addEventHandler( "onServerHeadshot", getRootElement(), MakeHeadshot )
-
Ohh listo, no había leído bien lo que posteaste, gracias por las respuestas
-
No quería usar elementData por que según lo que leí por el foro o según lo que yo entendí es que elementData según como se use, puede generar consumo del Cpu, pero si me equivoco expliquenme
-
¿Qué debo hacer para que funcione como espero?
-
Me sale este error, que "isGodModeEnabled" no es global attempt to call global "isGodModeEnabled" (a nil value)
-
Me lo había dicho de esta manera, pero tampoco funcionó --Server local dm = { } addCommandHandler( "dm", function( player ) local mode = dm[ player ] if mode == nil then dm[ player ] = true elseif dm[player] == false then dm[player] = false else if mode == true then dm[ player ] = false end end triggerClientEvent(player,"getTable",root, dm) end ) --Client local godmode = {} addEvent("getTable", true) addEventHandler("getTable",root, function(table) if table then godmode = table end end ) addEventHandler("onClientPlayerDamage", root, function( atac ) if godmode [atac] == true or godmode[ localPlayer ] == true then cancelEvent( ) end end )
-
Yo lo probé y funciona, sino postea la línea que marca el error, y te ayudaré Y no es Gabriel, aunque suena por poco así :b
-
Hola, estoy intentando hacer una especie de godmode por tablas, pero no consigo hacer que no haga daño a otros, otros a mi no pero yo sí a otros, estoy con esto de hace días y no conseguí hacer que funcione como espero local dm = {} addEventHandler("onClientResourceStart", resourceRoot, function() dm[localPlayer] = false end ) addCommandHandler( "dm", function( localPlayer ) local mode = dm[ localPlayer ] if mode == true then dm[ localPlayer ] = false print("DM OFF") else dm[ localPlayer ] = true print("DM ON") end end ) addEventHandler("onClientPlayerDamage", root, function( attacker, weapon, bodypart ) if dm [attacker] == true then cancelEvent() elseif dm [localPlayer] == true then cancelEvent() end end )
-
Muchas gracias, de todas formas no me sirvió, por qué los niveles que tengo no todos son el mismo resultado, primero necesitas 30xp para el primero, luego 54xp para el segundo, luego 68 para el tercero, tendré que hacer cálculos de todas formas Gracias
-
Gracias @Tomas Tengo un problema con esto de dxDrawProgressBar, la barra no se llena correctamente a medida que me acerco al proximo nivel, es decir si mi Exp es 14 y para el proximo tengo que llegar a 25, no concuerda local unlerp = function(from,to,lerp) return (lerp-from)/(to-from) end function dxDrawProgressBar( startX, startY, width, height, progress, color, backColor ) local progress = math.max( 0, (math.min( 100, progress) ) ) local wBar = width*.18 for i = 0, 4 do local startPos = (wBar*i + (width*.025)) + startX dxDrawRectangle( startPos, startY, wBar, height, backColor ) local eInterval = (i*20) local localProgress = math.min( 1, unlerp( eInterval, eInterval + 20, progress ) ) if localProgress > 0 then dxDrawRectangle( startPos, startY, wBar*localProgress, height, color ) end end end local x, y = guiGetScreenSize() ExpSystem = 100 progress = 100 addEvent("gret",true) addEventHandler("gret", root, function(Exp,checkExp) ExpSystem = tostring(Exp) progress = tostring(checkExp) end ) function draw() dxDrawProgressBar( x/2.7, y/1.23, x/4, y/25, (ExpSystem/progress)*100 , tocolor( 0, 255, 255, 255), tocolor( 255, 255, 255, 55) ) end addEventHandler("onClientRender",root, draw) addEventHandler ( "onPlayerWasted", root, function ( _,killer ) local Exp = exports.exp_system: getPlayerEXP(killer) local checkLevel, checkExp = exports.exp_system:getLevelData ( myLevel ) if (killer and killer ~= source) then exports.exp_system:addPlayerEXP ( killer, 1 ) triggerClientEvent(killer, "gret", killer,Exp,checkExp) end end )
-
Hola, quisiera saber como es para que en esta tabla cada player que mate se vaya sumando mis kills en la tabla local killer = {} function Kills(ammo,killer,weapon) if killer then if killer ~= source then if killer[killer] == nil then killer[killer] = tonumber((killer)+1 end end end end addEventHandler("onPlayerWasted",getRootElement(),Kills)
-
¿Podrías postear el error que te sale en /debugscript?
-
wndMain = { 'wnd', text='Freroasjsadnm', x = 10, y = 210, width = 287, controls = { {'lbl', id= "nombre"}, {'br'}, -------------------- --Agregas esta función function RemoveHEXColorCode( s ) return s:gsub( '#%x%x%x%x%x%x', '' ) or s end --Buscas esta función y agrega esa línea function toggleFRWindow() if isWindowOpen(wndMain) then showCursor(false) hideAllWindows() colorPicker.closeSelect() else showCursor(true) showAllWindows() setControlText(wndMain, 'nombre', RemoveHEXColorCode(getPlayerName(localPlayer))) end end
-
if not isElementWithinColShape(source, zones[m]) then ¿En vez de usar for para obtener todos los cubos, que otro se puede usar? Algo como local s1 = createColCuboid( 3255.5, -1910.1,7, 8.4,4.8,3.5 ) local s2 = createColCuboid( 3166.4, -1912.4,7, 4.8,8.4,3.5 ) local s3 = createColCuboid( 3166.1, -2019.3,7,8.3,4.5,3.5 ) local s4 = createColCuboid( 3274.2, -2022.4,7, 4.8,8.4,3.5 ) local zones = { s1 , s2 , s3 , s4 }; if not isElementWithinColShape(source, zones) then
-
Gracias! No me había dado cuenta de esa función, no sabía que estaba Una pregunta, es necesario usar "elementData" para comprobar si el jugador que está dentro del Cubo no haga daño a los de afuera?
-
Hola, estoy tratando de que el player al entrar al Cubo, no pueda recibir daño, pero me sale un error con el "isInsideRadarArea" s1 = createColCuboid( 3265.91528, -1913.1,7, 4.8,8.4,3.5 ) s2 = createColCuboid( 3163.91528, -1912.4,7, 4.8,8.4,3.5 ) s3 = createColCuboid( 3166.5, -2016.9,7,8.3,4.5,3.5 ) s4 = createColCuboid( 3270.5, -2018.4,7, 4.8,8.4,3.5 ) local zones = { s1 , s2 , s3 , s4 }; for m in pairs ( zones ) do addEventHandler("onClientPlayerDamage", getLocalPlayer(), function() local x, y = getElementPosition(localPlayer) if isInsideRadarArea(zones[m],x,y) then cancelEvent() end end ) end Aún así el daño dentro del Cubo sigue estando
-
Yo invito a un player a un duelo con /duelo ID, luego si el acepta con /duelo aceptar van a un int y dimensión, al terminar el duelo después de 3 miinutos salen los resultados en el chat "Resultados [Nick 0 - 0 Nick]" de las kills que hace cada uno en esa int. ya luego que salgan de esa int las kills se reinicien de nuevo
-
Gracias por su ayuda, lo estuve probando, y las kills no me salen cuando alguien muere en cierta int, al terminar el duelo me sale este error y en el chat solo sale en 0 los resultados Bad argument @ "getElementInterior" [Expected element at argument 1, got boolean] function getPlayerFromID ( id ) return call ( getResourceFromName ( "ID" ), "getPlayerFromID", tonumber ( id ) ); end local state = 0 local fightOn = 0 duelTable = { }; goFight = { 2750, -1603, 290, 34, 1542 }; function goToFight ( element ) setElementPosition ( element, goFight[1], goFight[2], goFight[3] ); setElementInterior ( element, goFight[4] ); setElementDimension ( element, goFight[5] ); giveWeapon ( element, 34 ); end function checkDuel ( player, cmd, arg ) if state == 0 then if ( tonumber ( arg ) ) then local p = getPlayerFromID( arg ); if ( isElement ( p ) ) then if ( not duelTable [ p ] ) then duelTable [ p ] = player; outputChatBox ( "Tu invitaste a " .. getPlayerName ( p ) .. " a un duelo!", player, 255, 255, 255, true ); outputChatBox ( "" .. getPlayerName ( player ) .. " te invitó a un duelo!", p, 255, 255, 255, true ); else outputChatBox ( "Este player ya esta en un duelo!", player, 255, 0, 0, true ); end else outputChatBox ( "No se encuentra esta ID!", player, 255, 0, 0, true ); end end else outputChatBox("Ya hay un duelo en marcha o invitación pendiente"); end if ( arg == "aceptar" ) and fightOn == 0 then local p = duelTable [ player ]; local v = getPlayerKills(p) local b = getPlayerKills(player) if ( isElement ( p ) ) then outputChatBox ( "El jugador " .. getPlayerName ( player ) .. " retó a un duelo a " .. getPlayerName ( p ) .. "", root, 255, 255, 255, true ); fightOn = 1 goToFight ( p ); goToFight ( player ); state = 1 setTimer(function() state = 0 fightOn = 0 outputChatBox("[VS] Resultados: "..getPlayerName(player).." ["..tonumber(v).."] vs ["..tonumber(b).."] "..getPlayerName(p).."",root, 255,255,255,true) duelTable [ player ] = nil; killPed(player) killPed(p) end,60000,1) else outputChatBox ( "No tienes ninguna invitación de duelo!", player, 255, 0, 0, true ); end elseif ( arg == "rechazar" ) and fightOn == 0 then local p = duelTable [ player ]; if ( isElement ( p ) ) then duelTable [ player ] = nil; fightOn = 0 state = 0 outputChatBox ( getPlayerName ( player ) .. " rechazó tu invitación.", p, 255, 0, 0, true ); end else return; end end local kills = { } addEventHandler( "onPlayerWasted", getRootElement( ), function( ammo, attacker, weapon, bodypart ) if getElementInterior( source ) == 34 and getElementInterior( attacker ) == 34 then if attacker then if ( attacker ~= source and getElementType ( attacker ) == "player" ) then local gun = getWeaponNameFromID( getPedWeapon( attacker ) ) if gun == 34 then if kills[ attacker ] == nil then kills[ attacker ] = 0 end kills[ attacker ] = tonumber( kills[ attacker ] ) + 1 end end end end end ) function getPlayerKills( player ) if player then if kills[ player ] == nil then return 0 else return kills[ player ] or 0 end end return false end
-
Al escribir /stat me sale este error attempt to concatenate a nil value
-
Gracias @aka Blue ¿Para exportar debo usar esto? meta <export function="getPlayerKills" type="server" /> server exports.xG_Duelos:getPlayerKills(player) ¿Algo así para obtener las kills? function kills (player) local v = exports.[Resource]:getPlayerKills(player) outputChatBox("Tus kills son "..tonumber(v).."") end addCommandHandler("stat", kills)