#Dv^
Members-
Posts
459 -
Joined
-
Last visited
Everything posted by #Dv^
-
Hola! ¿Qué necesito para contar las kills de un player pero solo aquellas que haga con M4? Algo como así addEventHandler("onPlayerWasted",getRootElement(), function ( ammo, attacker, weapon, bodypart ) if getElementInterio(attacker) == 1 then if attacker then if ( attacker ~= source and getElementType ( attacker ) == "player" ) then local playergun = getWeaponNameFromID ( attacker ) if ( playergun == 31 ) then end end end end end ) Es decir quiero que las kills se cuenten en un interior, para eso se que se usa getElementInterior, pero luego de que los players salgan de ese interior las kills se vuelvas a reiniciar ¿Qué tengo que usar? Gracias
-
Muchas gracias @Tomas Y una pregunta más para cerrar el tema, ¿Qué significa esto? ERROR: ZombieScore/zombiekill_server.lua:17: attempt to perform arithmetic on a nil value exports.scoreboard:addScoreboardColumn('Zombie kills') addEvent("onZombieWasted",true) addEventHandler("onZombieWasted",root, function (killer) givePlayerMoney(killer,0) addPlayerZombieKills(killer) end) function addPlayerZombieKills(killer) local account = getPlayerAccount(killer) if isGuestAccount(account) then return end local zombieKills = getAccountData(account,"Zombie kills") if not zombieKills then setAccountData(account,"Zombie kills",0) end setAccountData(account,"Zombie kills",tonumber(zombieKills)+1) end addEventHandler("onPlayerLogin",root, function () local account = getPlayerAccount(source) if isGuestAccount(account) then return end local zombieKills = getAccountData(account,"Zombie kills") if zombieKills then setElementData(source,"Zombie kills",tostring(zombieKills)) else setElementData(source,"Zombie kills",0) end end) Creo que ese problema sale cuando uno no está logueado, e incluso forcé para que sea obligatorio loguearse, pero aún así ese problema sale cuando uno se crea una cuenta, entonces mata su primer zombie y sale el error, después de eso ya no vuelve a salir más, solo cuando la cuenta es nueva
-
Hola Tengo un pequeño problema con este script de la comunidad, y es que cuando alguien ingresa al servidor y muere me sale esto ERROR: saveWeapon/server.lua:17: bad argument #1 to "pairs" (table expected, got nil) No tengo idea de cual sea ese problema, ¿Podrían indicarme que debo hacer? Gracias local tempData = { } addEventHandler ( "onPlayerWasted", getRootElement(), function ( ) tempData [ source ] = { weapons = getWeaponsTable ( source ), skin = getElementModel ( source ) } end ) addEventHandler ( "onPlayerSpawn", getRootElement(), function ( ) if ( tempData [ source ] ) then setElementModel ( source, tempData [ source ].skin ) for weapon, ammo in pairs ( tempData [ source ].weapons ) do giveWeapon ( source, weapon, ammo, true ) end end end ) function getWeaponsTable ( thePlayer ) local weapons = { } local hasAnyWeapon = false for slot = 0, 12 do local weapon = getPedWeapon ( thePlayer, slot ) if ( weapon > 0 ) then local ammo = getPedTotalAmmo ( thePlayer, slot ) if ( ammo > 0 ) then weapons [ weapon ] = ammo hasAnyWeapon = true end end end if ( hasAnyWeapon ) then return weapons end end
-
Gracias por tu ayuda, ya pude hacer que funcione
-
Hola! Disculpen, tengo este script de la comunidad function announceCommands(nick,ip,username,serial,version) bindKey(getPlayerFromName(nick),"","down","lock","") end addEventHandler("onPlayerConnect",getRootElement(),announceCommands) function lockCommand(thePlayer,command) local playerVehicle = getPedOccupiedVehicle(thePlayer) if playerVehicle then local vehicleType = getVehicleType(playerVehicle) if isVehicleLockable(playerVehicle) == true then local lockedState = isVehicleLocked(playerVehicle) setVehicleLocked(playerVehicle,not lockedState) if lockedState == true then showTextDisplay(thePlayer,"Tu carro está desbloqueado.") elseif lockedState == false then showTextDisplay(thePlayer,"Tu carro está bloqueado.") end else showTextDisplay(thePlayer,"Este vehículo ("..getVehicleName(playerVehicle)..") no se puede bloquear.") end else showTextDisplay(thePlayer,"No estás en un vehículo!") end end addCommandHandler("lock",lockCommand,false,false) function showTextDisplay(player,...) outputChatBox(table.concat(arg," "),player,0,255,0,true) end function isVehicleLockable (vehicle) local notLockableVehicles = {501} -- Table for not lockable vehicles, 100% from me :D -- Maybe I missed some vehicles, feel free to edit it. local itsLockable = true -- At start, the vehicle is lockable. local myVehicle = getElementModel(vehicle) -- Get the model ID of the vehicle to work with it. for k, notLockableVehicle in pairs(notLockableVehicles) do -- Do for every notlockable vehicles if myVehicle == notLockableVehicle then -- If the vehicle inputted is a not lockable vehicle itsLockable = false -- Then its not lockable return false -- So return false, it isn't lockable end end if itsLockable == true then -- If we didn't set it to false before, then its lockable, return true -- So return true. end -- By Stryp end Mi pregunta es si puedo desbloquear el vehículo estando fuera de él, por que este me pide que este dentro de un auto para bloquearlo o desbloquearlo, y si lo bloqueo después no puedo ingresar al mismo por que me pide desbloquearlo pero estando en un auto, ¿Podrían indicarme que debo usar? Agradezco su respuesta
-
O usas onClientMarkerHit o si estás usando un trigger marker = createMarker ( x,y,z, "cylinder", 1.5, 255, 255, 0, 170 ) addEventHandler("onPlayerMarkerHit", marker, function (player) triggerClientEvent(player,"markerHit", player) end ) No estoy seguro, pero creo que así es Espero haberte ayudado
-
Prueba esto local Fs = {} local flyerPlayersTimer = {} commando = { } tiempo = 3000 function AnimationNula(P,T) setTimer(setPedAnimation,T,1,P,nil) end function CreateObjectNinja(Ob,x,y,z,T) object = createObject(Ob,x,y,z) setElementCollisionsEnabled(object,false) setTimer(destroyElement,T,1,object) return object end function Fs.Katon (playerSource,k,ks) if (commando[playerSource]) then return outputChatBox ( "Espera 3 segundos para usar el comando.", playerSource, 225, 0, 0 ,true) end setPedAnimation(playerSource,"BAR","dnk_stndM_loop") local x,y,z = getElementPosition(playerSource) local r = getPedRotation(playerSource) triggerClientEvent("CreateNinjaSound",root,playerSource,"Katon.mp3") AnimationNula(playerSource,2500) local ob = CreateObjectNinja(2024,x+math.sin(math.rad(-r))*(0.15),y+math.cos(math.rad(-r))*(0.15),z+0.35,1500) setElementRotation(ob,0,0,r) local EsferaColisao = createColSphere ( x+math.sin(math.rad(-r))*3.5, y+math.cos(math.rad(-r))*3.5, z+0.3, 3.5 ) setTimer(destroyElement,1500,1,EsferaColisao) local players = getElementsWithinColShape (EsferaColisao,"player") local peds = getElementsWithinColShape (EsferaColisao,"ped") commando[playerSource] = true setTimer( function() commando[playerSource] = false end, tiempo, 1) if(#players>0) then for k,v in ipairs(players)do setPedOnFire(v,true) end end if(#peds>0) then for a,b in ipairs(peds)do setPedOnFire(b,true) end end end addCommandHandler ("plos", Fs.Katon)
-
En tu script de Level, edita la línea donde exporta el Scoreboard, o posteala aquí sólo donde hace el export
-
Gracias @Tomas y @aka Blue, me sirvió bastante la explicación, agradezco su ayuda y perdón por el doble post Una pregunta más, ¿Se puede hacer que un render los demás lo vean a excepción de mi?, es decir si yo me logueo el render solo les aparecerá a los demás sobre mi cuenta, excepto yo, yo no podré ver el render donde sale mi cuenta,¿Qué función debo usar para eso? Gracias
-
Perdón por el doble post, se mandó dos veces, uno con el ejemplo y otro sin el ejemplo :v
-
Hola, tengo una duda, ¿Cómo hago para obtener el nombre de la cuenta de un player y mandarla a client mediante por un trigger? ¿Sería algo así? server function check( player ) local acc = getAccountName (player) triggerClientEvent (player,"onCheck",player,acc) end client local x, y = guiGetScreenSize() function check (acc) dxDrawText ("Cuenta: "..tostring(acc).."", x/1, y/1.6, x, y, tocolor (255, 0, 0), 0.5, "bankgothic", "center") end addEvent("onCheck",true) addEventHandler("onCheck",root,check) addEventHandler("onClientRender", root, check) En el render solo me sale "nil"
-
Hola, tengo una duda, ¿Cómo hago para obtener el nombre de la cuenta de un player y mandarla a client mediante por un trigger?
-
Muchas gracias @aka Blue, yo lo había hecho de la misma manera que tu ejemplo, solo que lo implementé en una GUI, pensé que por una variable sería más óptimo que por elementData, por eso preguntaba. Gracias por tu ayuda y la de los demás, ya aclaré mi duda.
-
¿Cómo compruebo con una variable si soy el atacante?, es decir algo como así check = false addCommandHandler("check", function () if (check == false) then check = true outputChatBox("ON") else check = false outputChatBox("OFF") end end ) function checkDamage() if (check == true) cancelEvent() end end addEventHandler("onPlayerDamage", root, checkDamage) No sé si hice bien el script, pero lo quiero hacer es que si yo activo el comando /check no me puedan hacer daño, y que yo tampoco pueda hacer daño a los demás, ¿Cómo puedo comprobar eso? PD: No sé si me expliqué bien pero si no se entiende lo resumiré más
-
Gracias por su ayuda, me resultó fácil Una pregunta, ¿El elementData causa lag?, otra alternativa a esa?
-
Parte de la función completa sería así function test (targetPlayer) if getElementData (targetPlayer, "test ") == true then cancelEvent() elseif getElementData(localPlayer,"test ") == true then cancelEvent() end end addEventHandler("onClientPlayerDamage",root, test ) Solo posteé esa línea por que en esa me daba error cuando explique lo que hacía cuando pasaba
-
Hola, tengo este problema con mi script, me sale "Bad argument @ "getElementData" [Expected element at argument 1, got boolean]" parte del script sería este : function test (targetPlayer) if getElementData (targetPlayer, "test") == true then cancelEvent() end end addEventHandler("onClientPlayerDamage", root, test) Ese error solo me sale cuando el daño que recibí no es de un jugador, sino por ejemplo cuando caigo desde lo alto y golpeo contra el suelo ¿Cómo resuelvo ese error? Gracias
-
Hola, estaba haciendo este script pero usando dx, ¿Cómo puedo hacer que desde el lugar donde esté se mueva para la derecha y luego desaparezca? local x,y = guiGetScreenSize() function Prueba() local name = getPlayerName(getLocalPlayer()) dxDrawRectangle ( x/900, y/2.25, x/4, y/35, tocolor ( 0, 0, 0, 150 ) ) dxDrawText ( name.." #FFFFFFse conectó al servidor", x/900, y/1.123, x/5, y/35, tocolor ( 255, 255, 255, 255 ), 1, "default-bold","center","center",false,false,false,true ) setTimer(Timer, 2000, 1) end function Join() addEventHandler("onClientRender", root, Prueba) end addEventHandler("onClientPlayerJoin", root, Join) function Timer () removeEventHandler("onClientRender", root, Prueba) end Agradezco su ayuda
-
Podrías usar el mismo recurso de los zombies y cambiar la línea del meta esta parte <setting name="*StreamMethod" value="[1]" /> El 1 lo cambias al 2, esto haría que los "zombies" aparezcan en ciertos puntos de Spawn, podrías usar el MapEditor para tú agregues los puntos de Spawn donde quisieras, en este caso tú quieres agregarlos en el bosque
-
Puedes usar createRadarArea para crear la zona "Bosque" y usar el evento onColShapeHit para cuando entre al área diga "Has entrado al bosque" y para cuando salga el evento onColShapeLeave para cuando salga del área diga "Has salido de bosque" Un ejemplo local zona = createRadarArea ( -2183.5678710938, 705.67950439453, 40, -40, 0, 255, 0, 175 ) function hill_Enter ( thePlayer, matchingDimension ) if getElementType ( thePlayer ) == "player" then local nameOfThePlayer = getPlayerName ( thePlayer ) outputChatBox ( nameOfThePlayer.." entró a la zona", getRootElement(), 255, 255, 109 ) end end addEventHandler ( "onColShapeHit",zona, hill_Enter ) function hill_Exit ( thePlayer, matchingDimension ) if getElementType ( thePlayer ) == "player" then if isPlayerDead ( thePlayer ) ~= true then local nameOfThePlayer = getPlayerName ( thePlayer ) outputChatBox ( nameOfThePlayer.."salíó de la zona!", getRootElement(), 255, 255, 109 ) end end end addEventHandler ( "onColShapeLeave", zona, hill_Exit ) Este ejemplo lo podes encontrar en la Wiki
-
local hillRadar = createRadarArea ( 2520.1318359375, -953.83752441406, 200, 200, 181, 0, 0, 255 ) function Nemesisbymanawydan ( ) baz = createObject ( 360, 622.4934082031, -847.33459472656, 75.0484313964, 0, 0, 0 ) nemesi = exports [ "slothBot" ]:spawnBot ( 2622.4934082031, -847.33459472656, 75.048431396484, 90, math.random ( 300, 303 ), 0, 0, Nemesis, 38, "hunting", true ) setElementModel ( nemesi, 14 ) outputChatBox ("El boss apareció",getRootElement(), 255, 255, 255, true ) attachElements ( baz, nemesi, 0.2, 0.1, 0.5, 0, 90, 0 ) x,y,z = getElementPosition ( nemesi ) miBlip = createBlip ( x, y, z, 0, 2, 255, 0, 0, miJugador ) end addEventHandler("onResourceStart", resourceRoot, Nemesisbymanawydan) addEvent("onBotWasted", true) addEventHandler("onBotWasted", getRootElement) function money (theKiller) if (source == nemesi) then givePlayerMoney(theKiller,(3000)) outputChatBox ( "BOSS:".. getPlayerName ( theKiller ) .. " #FFFFFFmató al boss!",getRootElement(), 255, 255, 255, true ) outputChatBox ("BOSS: #FFFFFF: Me las pagarás ".. getPlayerName ( theKiller ) .. "",getRootElement(), 255, 255, 255, true ) setTimer(Nemesisbymanawydan, 240000, 1) destroyElement(miBlip) end end addEvent("onBotWasted", true) addEventHandler("onBotWasted", getRootElement(), money) Prueba con este, esto va del lado del servidor
-
Prueba con esto, esto hará que todos los vehículos hagan respawn local rElement = getRootElement() function respawnVehicles(player, seconds) local vehicles = getElementsByType ( "vehicle" ) outputChatBox("** Los vehículos hicieron respawn**", rElement, 220, 220, 0, false) for k, vehicle in ipairs ( vehicles ) do if isEmpty( vehicle ) then respawnVehicle ( vehicle ) end end end setTimer(respawnVehicles, 180000,0) function isEmpty( vehicle ) local passengers = getVehicleMaxPassengers( vehicle ) if type( passengers ) == 'number' then for seat = 0, passengers do if getVehicleOccupant( vehicle, seat ) then return false end end end return true end Lo testeé recién, funciona
-
Esto va del lado del servidor, no del cliente. Postea tu meta.xml