Jump to content

#Dv^

Members
  • Posts

    459
  • Joined

  • Last visited

Everything posted by #Dv^

  1. #Dv^

    Ayuda

    Hola Venad Entonces como hago para que los players no puedan interactuar en el server hasta que se le termine la descarga? No puedan usar ningun comando, ni el Freeroam, solo que esperen la descarga si o si Te lo agradezco
  2. #Dv^

    ID system

    ¿Podrías darme un ejemplo? Gracias
  3. #Dv^

    ID system

    Hola! Perdón por la molestia, tengo este script que lo saqué de acá http://pastebin.com/HZqzVr1R Es un id System Lo que hace es que agrega una columna al scoreboard "ID" y cada jugador que entre se le asigna un numero, es decir si entra el primero tendrá el id "1" y luego si entra otro seguido de ese tendrá el id "2" y así sucesivamente, pero cuando el player que tenía la id "1" sale se le elimina y la obtendrá otro player que ingrese al servidor, así Pero lo que yo quiero es que cada cuenta de player tenga su propia id, estando o no en el servidor, que sea tipo como un contador de players, con sus propias ID´s, al salir y volver al entrar al servidor siempre tener mi propia id de cuenta No se si me explico Este es el script, no es mio solo lo saque de esta pagina http://pastebin.com/HZqzVr1R local availableID = { } -- Create the table that specifies which id's are available. local scoreboard local _dxver local _initp = true local _loaded = false function Init () if ( getResourceFromName ( "scoreboard" ) and getResourceState ( getResourceFromName ( "scoreboard" ) ) == "running" ) then scoreboard = exports.scoreboard _dxver = false elseif ( getResourceFromName ( "dxscoreboard" ) and getResourceState ( getResourceFromName ( "dxscoreboard" ) ) == "running" ) then scoreboard = exports.dxscoreboard _dxver = true else outputDebugString ( "No scoreboard resource has been started", 2 ) _initp = false end if _initp then scoreboard:addScoreboardColumn ( "ID", getRootElement(), 1, 0.05 ) -- Add the ID column sortScoreboard( "ID" ) end if not _loaded then loadID() end end addEventHandler ( "onResourceStart", resourceRoot, Init ) function loadID () _loaded = true local max_players = getMaxPlayers() for i = 1, max_players do table.insert ( availableID, i, true ) -- Populate the table. end for _, player in ipairs ( getElementsByType ( "player" ) ) do assignPlayerID ( player ) -- Assign an id to all players. end end function checkStoppedResource ( resource ) local rname = getResourceName ( resource ) local sres = tostring ( scoreboard ):gsub( "exports.","" ) if ( rname:lower() == sres:lower() ) then outputChatBox ( "falsed" ) _initp = false end end addEventHandler ( "onResourceStop", getRootElement(), checkStoppedResource ) function checkStartedResource ( resource ) if ( getResourceName ( resource ) == "scoreboard" or "dxscoreboard" and source ~= getResourceRootElement() ) then Init() end end addEventHandler ( "onResourceStart", getRootElement(), checkStartedResource )--]] function sortScoreboard( column ) if _dxvera and _initp then scoreboard:scoreboardSetSortBy ( column, true, getRootElement() ) end end function onJoin () -- Player joined --> assign ID. assignPlayerID ( source ) end addEventHandler ( "onPlayerJoin", getRootElement(), onJoin) function assignPlayerID ( player ) local s_id = 1 -- start at one while ( isIDAvailable ( s_id ) == false ) do -- is it available? if not, +1 & repeat. s_id = s_id + 1 end setElementData ( player, "ID", s_id ) -- available -> assign the ID to the player. sortScoreboard( "ID" ) availableID[ s_id ] = false -- set the id as not available. end function isIDAvailable ( id ) -- checks if the id is used or not. return availableID[id] end function onLeave () -- player left, remove ID, set as available. local s_id = getElementData ( source, "ID" ) availableID[ s_id ] = true removeElementData ( source, "ID" ) end addEventHandler ( "onPlayerQuit", getRootElement(), onLeave ) function removeData ( ) -- resource stopped, clear everything. for k, players in ipairs ( getElementsByType ( "player" )) do removeElementData ( players, "ID" ) end availableID = { } end addEventHandler ( "onResourceStop", resourceRoot, removeData ) function getNameMatches ( player_name ) i = 1 local matchingPlayers = { } if ( player_name ) then for k, player in ipairs ( getElementsByType ( "player" ) ) do local player_n = getPlayerName ( player ) local match = string.find ( string.lower( player_n ), string.lower ( player_name ) ) if ( match ) then table.insert ( matchingPlayers, i, player ) i = i + 1 end end if ( #matchingPlayers == 1 ) then return true, matchingPlayers[1] elseif ( #matchingPlayers > 1 ) then return true, matchingPlayers else return false, "None" end else return false, "Please enter a player name" end end function getPlayerFromPartialName ( source, player_name, script ) if ( player_name ) then local sucess, value = getNameMatches ( player_name ) if ( sucess ) then local matches = ( type ( value ) == "table" ) and #value or 1 if ( matches == 1 ) then if ( script ) then return value else local player_nick = getPlayerName ( value ) local player_id = getElementData ( value, "ID" ) outputChatBox ( "(" .. player_id .. ") " .. player_nick, source, 255, 255, 0 ) end else outputChatBox ( "Players matching your search are: ", source, 255, 255, 0 ) for k, player in ipairs ( value ) do local player_nick = getPlayerName ( value[k] ) local player_id = getElementData ( value[k], "ID" ) outputChatBox ( "(" .. player_id .. ") " .. player_nick, source, 255, 255, 0 ) end return true, true end else if ( script ) then return false else outputChatBox ( "Players matching your search are: ", source, 255, 255, 0 ) outputChatBox ( value, source, 255, 0, 0 ) end end end end function getPlayerFromID ( id ) for k, player in ipairs ( getElementsByType ( "player" ) ) do local p_id = getElementData ( player, "ID" ) if ( p_id == tonumber(id) ) then player_n = getPlayerName ( player ) return player, player_n end end return false, "No player has been found with the ID " .. id .. "." end function getPlayer ( source, input ) if ( tonumber ( input ) ) then local player, playername = getPlayerFromID ( tonumber(input) ) if ( player ) then return player else outputChatBox ( playername, source, 255, 0, 0 ) -- in this case, playername carries the error. It's just to minimize the amount of code if an error is ecountered. return false end else local player, multiple = getPlayerFromPartialName ( source, input, true ) if ( player and not multiple ) then return player elseif ( player and multiple ) then return false else outputChatBox ( "Player not found", source, 255, 0, 0 ) return false end end end function processIDCommands ( source, command, input ) if ( tonumber ( input ) ) then local player, playername = getPlayerFromID ( tonumber(input) ) if ( player ) then outputChatBox ( "Player that matches that id: ", source, 255, 255, 0 ) outputChatBox ( "(" .. input .. ") " .. playername, source, 255, 255, 0, true ) else outputChatBox ( playername, source, 255, 0, 0 ) -- in this case, playername carries the error. It's just to minimize the amount of code if an error is ecountered. end else local player = getPlayer ( source, input ) if ( player ) then outputChatBox ( "Player that matches that id: ", source, 255, 255, 0 ) outputChatBox ( "(" .. tostring ( getElementData ( player, "ID" ) ) .. ") " .. getPlayerName ( player ), source, 255, 255, 0, true ) end end end addCommandHandler ( "id", processIDCommands )
  4. #Dv^

    Ayuda

    Hola, yo necesito hacer que cuando los players entren al servidor cuando se les empiece a descargar no se les vea nada, es decir solo el chat pero todo lo demás en negro Una vez que se les termine la descarga que aparezcan mirando desde arriba del monte chiliad y el panel de login, que no puedan interactuar en nada, solo con el panel de login para loguearse y luego que se logueen que puedan jugar Use el "setCameraMatrix" para la vista desde arriba del monte chiliad ¿Qué debo usar para lograr eso? Muchas Gracias
  5. #Dv^

    URGENTE

    Gracias Blue Pie El único error que me daba era lo del outputChatBox ( "No puedes usar el comando todavía. Espera el tiempo.", player, 255, 0, 0 ) pero borrando los "255, 0, 0" se soluciona Muchas gracias a todos por su tiempo!
  6. #Dv^

    URGENTE

    Para todos los jugadores, es decir que si yo pongo /elmasrico debería y deberían esperar "todos" 20 segundos para volver a poner el comando /elmasrico Y que les salga al player que ingreso el comando "debes esperar 20 segundos para este comando"
  7. #Dv^

    URGENTE

    y si quiero que esperen 20 segundos para volver a usar el comando /elmasrico ¿Debería usar "setTimer"? Donde debería ir? Mil gracias
  8. #Dv^

    URGENTE

    Gracias Alex! El tuyo realmente dio por funcionar! Agradezco a todos por igual por las respuestas
  9. #Dv^

    URGENTE

    Gracias por responder! @Blue-Pie no puedo hacer que funcione, cada vez que pongo para que salga el mensaje "el más rico es (x)" me sale error con el "getPlayerName" en la linea 3 Algo así como esto ¿Podría explicarme o ayudarme por que? Se los agredezco addCommandHandler ( "elmasrico", function ( player, commandName ) outputChatBox(getPlayerName(getRikolin()).." es el mas rikolin del server") end ) function getRikolin () for _, player in ipairs ( getElementsByType ( "player" ) ) do if not rikolin then local rikolin = player end if getPlayerMoney ( player ) > getPlayerMoney ( rikolin ) then rikolin = player end end return rikolin end
  10. #Dv^

    URGENTE

    Hola a todos, tengo una duda Como podría hacer para que de todos los jugadores conectados, salga quien es el que tiene más dinero del servidor? Es decir salga en el chat "(x) es la persona mas rica del servidor" o algo asi. Se los agradecería a cualquiera, Gracias!
×
×
  • Create New...