#Dv^
Members-
Posts
459 -
Joined
-
Last visited
Everything posted by #Dv^
-
¿Y con el color? local group = exports.gang_system:getPlayerGang(source) local red, green, blue = unpack(exports.gang_system:getGangData(group, "color") ) or "" local message = RGBToHex(red, green, blue) .. gangTag outputChatBox(message, getRootElement(), 255, 255, 255, true) function RGBToHex(red, green, blue, alpha) return string.format("#%.2X%.2X%.2X", red,green,blue) end
-
Gracias y perdón @.:CiBeR:. Cuando obtiene el tag de la gang si es que estas en una sale el tag, pero si no estas en una gang me sale este error attempt to concatenate global 'gangTag' (a boolean value) Solo cambié agregué esto en el script local group = exports.gang_system:getPlayerGang(source) local tag = exports.gang_system:getGangData(group, "tag") Y el error me tira por esta parte Línea 88 y 90 if ( tag == "None" ) then gangTag = "" else gangTag = tag end local message = gangTag .. v[2] .. RGBToHex(r, g, b) .. name .. ":#FFFFFF " .. text
-
Lo intenté así pero me sale estos números local message = v[2] .. RGBToHex(r, g, b) .. name .. ""..tagColor[1]..tagColor[2]..tagColor[3]..""..gangTag..":#FFFFFF " .. text "[Admin] Nick 22700 TAG : Hola"
-
Gracias, la ayuda de ambos me sirvió ¿Sería lo mismo si cambio esto local tag = exports.gang_system:getPlayerGang(source) por esto? local group = exports.gang_system:getPlayerGang(source) local tag = exports.gang_system:getGangData(group, "tag") local tagColor = exports.gang_system:getGangData(group, "color") Lo intenté pero solo me sale este error ERROR: Chat/server.lua: 90 : attempt to concatenate local "tagColor" (a table value)
-
Hola, tengo este script de la comunidad Mi pregunta es, ¿Cómo puedo hacer qué en el chat salga el tag del gang_system pero que no salga cuando no esté en ninguna gang? Lo intenté así, es decir sale el tag pero también sale el tag "None" cuando no está en ninguna gang, ¿Cómo puedo arreglar eso? settings = { ['enableTeamChat'] = true, ['adminTag'] = { ['enabled'] = true, ['ACL'] = { -- A bit more advanced. { 'Admin', '' }, { 'Moderator', ' ' }, { 'Everyone', '' }, } }, ['swearFilter'] = { ['enabled'] = true, ['swearCost'] = 0, ['swears'] = { -- Allows you to set the blocked swear words, syntax is ['WORD'] = 'REPLACEMENT' ['fghg'] = '*****', ['gffgh'] = '*****' } }, ['antiSpamFilter'] = { ['enabled'] = true, ['execeptionGroups'] = 'Admin', -- Groups which can spam, eg. 'Admin,SuperModerator,Moderator' ['chatTimeOut'] = 1.5 -- Set in seconds. }, ['freezeChat'] = { ['enabled'] = true, ['command'] = 'fchat', -- Command to use when activating frozen chat. ['allowedGroups'] = 'Admin', -- Groups which have access to this command. ['resetTime'] = 5 -- Time in minutes before it automatically resets. }, ['clearChat'] = { ['enabled'] = true, ['command'] = 'cchat', ['allowedGroups'] = 'Admin' } } -- Required variables spam = { } stopChat = false function chatbox(message, msgtype) if stopChat then cancelEvent() outputChatBox('', source, 255, 255, 255, true) return end local account = getAccountName(getPlayerAccount(source)) local name = getPlayerName(source) local serial = getPlayerSerial(source) local r, g, b = getPlayerNametagColor(source) local text = message:gsub("%a", string.upper, 0) local check = 0 local spamCheck = false local tag = exports.gang_system:getPlayerGang(source) if settings['swearFilter']['enabled'] then for i, v in pairs(settings['swearFilter']['swears']) do while text:lower():find(i:lower(),1,true) do local start, end_ = text:lower():find(i:lower(),1,true) local found = text:sub(start,end_) text = text:gsub(found,v) if settings['swearFilter']['swearCost'] ~= 0 then takePlayerMoney(source, settings['swearFilter']['swearCost']) end end end end if msgtype == 0 then cancelEvent() if not settings['adminTag']['enabled'] and not spam[serial] then message = RGBToHex(r, g, b) .. name .. ":#FFFFFF " .. text if 600 <= #message then outputChatBox('#FF0000Error: El mensaje que escribiste es muy largo!', source, 255, 255, 255, true) else outputChatBox(message, getRootElement(), 255, 255, 255, true) aclgroup = split(settings['antiSpamFilter']['execeptionGroups'], ', ') or settings['antiSpamFilter']['execeptionGroups'] for i, v in ipairs(aclgroup) do if isObjectInACLGroup("user." .. getAccountName(getPlayerAccount(source)), aclGetGroup(v)) then spamCheck = true end end if not spamCheck then if settings['antiSpamFilter']['enabled'] then spam[serial] = true setTimer(function() spam[serial] = false end, settings['antiSpamFilter']['chatTimeOut']*1000, 1) end end outputServerLog('CHAT: ' .. name .. ': ' .. text) end return end for _,v in ipairs(settings['adminTag']['ACL']) do if isObjectInACLGroup('user.' .. account, aclGetGroup(v[1])) and check == 0 and not spam[serial] then local message = v[2] .. RGBToHex(r, g, b) .. name .. ""..tag..":#FFFFFF " .. text if 600 <= #message then outputChatBox('#FF0000Error: El mensaje que escribiste es muy largo!', source, 255, 255, 255, true) check = 1 else check = 1 outputChatBox(message, getRootElement(), 255, 255, 255, true) if settings['antiSpamFilter']['enabled'] then aclgroup = split(settings['antiSpamFilter']['execeptionGroups'], ', ') or settings['antiSpamFilter']['execeptionGroups'] for i, v in ipairs(aclgroup) do if isObjectInACLGroup("user." .. getAccountName(getPlayerAccount(source)), aclGetGroup(v)) then spamCheck = true end end if not spamCheck then spam[serial] = true check = 1 setTimer(function() spam[serial] = false end, settings['antiSpamFilter']['chatTimeOut']*1000, 1) end end outputServerLog('CHAT: '.. v[2] .. name .. ': ' .. text) end elseif spam[serial] and check == 0 then outputChatBox('#FF0000Error: Por favor espere '..settings['antiSpamFilter']['chatTimeOut']..' segundos para escribir otro mensaje!', source, 255, 255, 255, true) check = 1 end end elseif msgtype == 1 and not settings['enableTeamChat'] then cancelEvent() end end addEventHandler("onPlayerChat", getRootElement(), chatbox) addEventHandler("onPlayerQuit", getRootElement(), function() local serial = getPlayerName(source) spam[serial] = false end ) -- Freeze chat addCommandHandler(settings['freezeChat']['command'], function(player) if not settings['freezeChat']['enabled'] then return end aclgroup = split(settings['freezeChat']['allowedGroups'], ', ') or settings['freezeChat']['allowedGroups'] for i, v in ipairs(aclgroup) do if isObjectInACLGroup("user." .. getAccountName(getPlayerAccount(player)), aclGetGroup(v)) then check = true end end if not check then return end if not stopChat then outputChatBox('', getRootElement(), 255, 255, 255, true) stopChat = true frozenTimer = setTimer(function() stopChat = false end, (settings['freezeChat']['resetTime'] * 60000), 1) else outputChatBox('', getRootElement(), 255, 255, 255, true) stopChat = false end end ) -- Clear chat addCommandHandler(settings['clearChat']['command'], function(player) if not settings['clearChat']['enabled'] then return end aclgroup = split(settings['clearChat']['allowedGroups'], ',') or settings['clearChat']['allowedGroups'] for i, v in ipairs(aclgroup) do if isObjectInACLGroup("user." .. getAccountName(getPlayerAccount(player)), aclGetGroup(v)) then check = true end end if not check then return end for i = 2, getElementData(player, 'chatLines') do outputChatBox(' ') end outputChatBox('', getRootElement(), 255, 255, 255, true) end ) function RGBToHex(red, green, blue, alpha) return string.format("#%.2X%.2X%.2X", red,green,blue) end
-
Hola, ¿Se puede hacer que un player al escribir /ir vaya a cierta posición pero por orden? Es decir que el primero en escribir /ir vaya la posición 1 y el segundo en escribir /ir vaya a la posición 2 y así, pero mediante una tabla local posiciones = { { 48, 2564, 208 }, { 61, 2471, 211 }, { 138, 2496, 202}, { 104, 2549, 204 }, { 81, 2502, 208 }, { 105, 2531, 208 }, } local players = { } function consoleSetPlayerPosition ( thePlayer ) local azar = math.random ( #posiciones ) setElementPosition ( thePlayer, unpack ( posiciones [ azar ] ) ) table.insert(players,thePlayer) outputChatBox(""..getPlayerName(thePlayer).." #FFFFFFse ha unido a la partida",root, 255,255,255,true) end addCommandHandler ( "ir", consoleSetPlayerPosition ) Lo hice al azar pero quiero hacer que sea por orden,¿Qué debo usar?
-
Hola, tengo esta duda ¿Cómo puedo luego de que un player se inserte en la tabla después salga de esa tabla pero con un comando? Algo así lo hice, al escribir /insertar es insertado en la tabla, al escribir /descartar debería salir de la tabla pero creo que la tabla en sí es eliminada(?, osea cuando ingreso en /insertar y luego le doy a /descartar, luego al volver a entrar en /insertar lo del setTimer ya no me funciona, pero si funciona cuando ingreso en /insertar por primera vez, sin salir(/descartar) ¿Alguna ayuda? Gracias local players = {} addCommandHandler("insertar", function(thePlayer) table.insert(players,thePlayer) setTimer( function() if(#players > 1) then outputChatBox("Correcto") else outputChatBox("El número de jugadores debe ser mayor a 1") setElementHealth(players[1] , 0) players = {} end end,2000,1) end) addCommandHandler("descartar", function(thePlayer) if( players [thePlayer] ) then table.remove(jugadoresBerlin) killPlayer(thePlayer) end end ) Si no se entiende lo que dije lo siento, volveré a explicarselo si es necesario
-
Perfect!, Gracias @Arsilex por tu tiempo
-
Funciona, pero cuando se ingresa de nuevo a /drop después de que haya muerto por que no había nadie en drop no muere, aún así queda en /drop sin morir, diciendo "El acceso al \"Drop\" ha sido cerrado durante 2 minutos."
-
Genial, funciona bien Agradezco tu ayuda Arsilex, tengo otra duda, una vez que haya entrado al drop, y si nadie se unió una vez que hayan pasado 10 segundos este se muera por que nadie se unió a /drop, pero que el comando /drop se pueda de nuevo sin esperar los 2 minutos, excepto si alguien ya se ha unido¿Qué tengo que usar para eso?
-
Hola, ¿Qué se debe usar para lograr esto?, Por ejemplo, cuando un player escriba /drop vaya al drop y otros player también ingresen /drop para ir pero que solo puedan estar 2 minutos en un drop, y que ese comando tenga un tiempo, es decir que tenga 10 segundos una ves que se haya puesto, una vez que pasen esos diez segundos ya nadie podrá unirse hasta que pasen esos 2 minutos para que todos los que esten en el drop mueran y el comando /drop se pueda volver a usar ¿Alguna ayuda? Gracias
-
Oh gracias, seguí tu consejo y me ayudó, ahora pasa que cuando le doy por ejemplo al comando /startmusic url varias veces seguida el evento onClientRender se crea varias veces de nuevo sin eliminarse y volver a recrearse, y si se crea varias veces empieza a dar lag Este es el evento addEventHandler("onClientRender", root, function ( ) -- Get 2048 / 2 samples and return BANDS bars ( still needs scaling up ) local fftData = getSoundFFTData(stream, 2048, BANDS) -- get our screen size local w, h = guiGetScreenSize() -- if fftData is false it hasn't loaded if ( fftData == false ) then dxDrawText("Stream not loaded yet.", w-300, h-150) return end -- Draw a nice now playing thingy if ( getSoundMetaTags(stream).stream_name ~= nil ) then local len = string.len(getSoundMetaTags(stream).stream_name) dxDrawText("Now Playing: " .. getSoundMetaTags(stream).stream_name, w-(270+(len*2.8)), h-150) else dxDrawText("Now Playing: -", w-(270), h-150) end -- Calculate our bars by the fft data calc ( fftData, stream ) end) ¿Para eliminarlo como hago para que se recree de nuevo?
-
Disculpen de nuevo, cuando pongo el comando del visualiser "start musica url" se ve pero a los demás no se les muestra ¿Cómo hago para todas vean?
-
Disculpa, ya pude resolverlo de todas formas Gracias por su ayuda
-
Ohh gracias, ni en cuenta de eso, ¿Y para que salga en el cine como en el video? Gracias por tu respuesta
-
Hola! He visto este video https://www.youtube.com/watch?v=3sMlgF9LKPs Y quería saber que se necesita para hacer un script así
-
Hola! Hay alguna forma de convertir un número por ejemplo $500000, pero en vez que salga así que salga $500.000, con ese puntito, yo uso "getPlayerMoney", que con eso obtengo el dinero que tiene, ¿Qué se puede usar para que salga así?
-
Hola, tengo un problema ¿Hay forma de arreglar el daño de los jugadores?Es decir, cuando disparas a un player corriendo debes apuntar 10 cm atrás por donde pasó para que el daño surga efecto Lo mismo pasa cuando le disparas en la cabeza a un player para que muera de un tiro (Headshot), debes apuntar 10cm atras de él por donde pasó, si le das a la cabeza mientras corre el Headshot no surge efecto ¿Alguna idea de cómo arreglar esto? Gracias.