-
Posts
2,106 -
Joined
-
Last visited
-
Days Won
6
Everything posted by aka Blue
-
Lenguajes querría decir
-
Estoy algo perdido, lol. Quiero hacer también que si entra sin tener alguna ruta hecha, que se le asigne de nuevo las rutas default, y si se ha quedado en una, que se le ponga la próxima, no se si me entendéis. Me estoy liando mucho con este sistema Esto seria clientSide. Si, se que está mal. local n = 1 -- Contador de rutas local tR = #rutas -- Obtenemos el total de rutas local x, y, z = rutas[n][1], rutas[n][2], rutas[n][3] function nuevaRuta ( player ) if player then if not n == tR then marker = createMarker ( x, y, z, "checkpoint", 10, 255, 255, 255, 255 ) else outputChatBox ( "Has acabado la ruta loco" ) end end return false end
-
Prefiero usar tablas. Es que verás, quiero hacer que al subirse a un determinado vehiculo, saque las posiciones de la tabla y empiece a crear los markers y los blips en el mapa. Así cuando pise un marker, se marque el otro y así sucesivamente. Necesitaría si es posible aunque sea un pequeño ejemplo de código. Estoy algo perdido ahora jaja.
-
Si, pero el tema es que quiero comprobar si es la ultima que pisa el camión y entonces realizar una función. Ese es el problema que tengo de momento
-
Buenas a todos, estoy creando un job desde 0 con diferentes mejoras y demás. He creado ya todo lo básico de introducirse en el job, dimitir, blablá. Mi idea de dicho job es que se vayan marcando markers con un blip en el mapa, siguiendo el orden de una tabla y que lo vea solo el cliente (facil). Mi duda viene ahí cuando quiero hacer que cuando pises un marker automáticamente te señale otro hasta que termine la tabla de markers. ¿Cómo lo podría hacer si es posible? Gracias a todos los que quieran ayudar de antemano. Tabla de rutas: rutas = { --posx, posy, posz, ultima? { 10192, 123123, 4354, ultima = false }, { 10192, 123123, 4354, ultima = false }, { 10192, 123123, 4354, ultima = false }, { 10192, 123123, 4354, ultima = false }, { 10192, 123123, 4354, ultima = false }, { 10192, 123123, 4354, ultima = false }, { 10192, 123123, 4354, ultima = true } }
-
Si. Tipo idsystem o como quieras. Es que el scoreboard tiene su propio id system con su propio elementData que es ID, el que te pasó Ciber usa id, en minúsculas.
-
Lo que te ha escrito @.:CiBeR:. hace lo siguiente: /crearids Es el comando que les asigna una ID a las cuentas ya creadas en el servidor. Utilizalo solo una vez para asignarle las ids a las cuentas y luego puedes quitarlo. Y después ya te hizo el evento, que es, cuando el jugador se loguea, ya le asigna una ID.
-
No sabía que existía getAccounts Si no te quedo claro, es hacer un bucle con lo que retorna la función y el primero 'argumento', que es la key, ordenada numéricamente, la guardas como una 'ID'. for k, v in ipairs (getAccounts()) do local id = k outputChatBox ( "Jugador con ID: "..id ) end Esa función lo que haría es crear tantos textos en el chat como jugadores haya registrados en el servidor y saca sus id's utilizando el método que te dijo @Gaberiel
-
¿Su propia ID? Almacenalo en XML o SQL, personalmente recomiendo SQL.
-
Es que depende del lado en el que lo estás haciendo. Si te da ese error en el código que te pasé, supongo que es porque el script está en la parte cliente. PD: De nada, no tengo nada que hacer mientras se me descarga el CS .
-
Lo he hecho con setTimer pero bueno, usa lo que quieras function obtenerJugadorMasRico ( ) local jugadorMasRico = {} for _, jugador in pairs ( getElementsByType( "player" ) ) do local dinero = getPlayerMoney ( jugador ) if dinero > ( jugadorMasRico.dinero or 0 ) then jugadorMasRico.jugador, jugadorMasRico.dinero = jugador, dinero end end return jugadorMasRico.jugador or false end addCommandHandler ( "elmasrico", function ( player, commandName ) local jugadorMasRico = obtenerJugadorMasRico ( ) if isTimer ( timerComando ) then outputChatBox ( "No puedes usar el comando todavía. Espera el tiempo.", player, 255, 0, 0 ) else if jugadorMasRico then outputChatBox ( getPlayerName( jugadorMasRico ) .. " es el más rico del servidor" ) timerComando = setTimer ( function ( ) outputChatBox ( "Ya se puede usar el comando /elmasrico de nuevo." ) end, 60000, 1 ) else outputChatBox ( "Todos son pobres" ) timerComando = setTimer ( function ( ) outputChatBox ( "Ya se puede usar el comando /elmasrico de nuevo." ) end, 60000, 1 ) end end end )
-
¿Quieres hacer que al comprobarlo un jugador le ponga el timer a él o a todo el servidor? Me explico, si yo uso el comando /vermasrico por ejemplo, que el timer sea solo para mi o para todos los jugadores. Edito: Editando el código de @AlexTMJugador, he hecho que el jugador que al jugador que use el comando, le ponga un temporizador de 1 minuto para volver a usarlo. Lo he hecho algo a ciegas así que si te da algún error postea. local timerComando = { } function obtenerJugadorMasRico ( ) local jugadorMasRico = {} for _, jugador in pairs ( getElementsByType( "player" ) ) do local dinero = getPlayerMoney ( jugador ) if dinero > ( jugadorMasRico.dinero or 0 ) then jugadorMasRico.jugador, jugadorMasRico.dinero = jugador, dinero end end return jugadorMasRico.jugador or false end addCommandHandler ( "elmasrico", function ( player, commandName ) local jugadorMasRico = obtenerJugadorMasRico ( ) if timerComando [ player ] == nil or timerComando [ player ] == false then if jugadorMasRico then outputChatBox ( getPlayerName( jugadorMasRico ) .. " es el más rico del servidor" ) timerComando [ player ] = setTimer ( function ( player ) timerComando [ player ] = false end, 60000, 1, player ) else outputChatBox ( "Todos son pobres" ) timerComando [ player ] = setTimer ( function ( player ) timerComando [ player ] = false end, 60000, 1, player ) end else outputChatBox ( "No puedes usar el comando todavía. Espera el tiempo.", player, 255, 0, 0 ) end end )
-
Bueno, yo no aporté ningún código, solo te digo una pequeña idea de como hacerlo PD: Me di cuenta que puse player en los argumentos y player en el bucle .
-
Haz un bucle con todos los jugadores, luego ya usa tu lógica para sacar el más rico de todos. No es tan complicado addCommandHandler ( "elmasrico", function ( player, commandName ) for _, jugador in ipairs ( getElementsByType ( "player" ) ) do local dinero = getPlayerMoney ( player ) -- blablabla end end )
-
En el output no tendría que ser index? -- Creamos un ciclo que cuente de cinco en cinco hasta legar a 25. for index = 0, 25, 5 do --Ahora lo mostramos en el chat: outputChatBox(key, 255, 255, 255, false) -- Se mostrará así: 0, 5, 10, 15, 20, 25. end
-
Entonces nada. Lo hice para pillar a los trolls jaja.
-
Estaba algo aburrido scripteando e hice un pequeño sistema para mi servidor. Lo que hace este mini-sistema es comprobar el ultimo golpe realizado a un vehiculo. Así también almacena el arma con el que se han realizado los daños. Bueno, si más, abajo dejo los códigos por separado. Cliente addEventHandler ( "onClientVehicleDamage", root, function (attacker, weapon, _, _, _, _, _) if attacker and weapon then triggerServerEvent ( "onDañarVehiculo", root, source, attacker, weapon ) end end ) Servidor local ultimoGolpeAlVehiculo = { } -- Tabla para almacenar el golpe -- Recogemos los datos obtenidos del cliente y los almacenamos en una tabla. addEventHandler ( "onDañarVehiculo", root, function ( vehiculo, responsable, arma ) local nombreArma = getWeaponNameFromID ( arma ) if nombreArma then ultimoGolpeAlVehiculo [ vehiculo ] = { nombre = getPlayerName ( responsable ):gsub ( "_"," " ), arma = nombreArma } end end ) -- Comando para comprobar addCommandHandler ( "ultimogolpe", function ( player, commandName ) local vehicle = getPedOccupiedVehicle ( player ) if vehicle then local data = ultimoGolpeAlVehiculo [ vehicle ] if data == nil then outputChatBox ( "No se han realizado golpes al vehiculo.", player, 0, 255, 0 ) else local nombre = data.nombre local arma = data.arma outputChatBox ( "El jugador "..nombre.." realizó un daño usando un/a "..arma, player, 255, 145, 0 ) end else outputChatBox ( "Debes estar en un vehiculo para comprobar su último golpe.", player, 255, 0, 0 ) end end )
-
Me he pegado una rallada, lo siento
-
setPlayerHudComponentVisible
-
Es porque no pilla los settings, ¿quizás? local _settings = get(""); local settings = {}; for k, v in pairs(_settings) do k = split(k, ".")[2]; settings[k] = v; end
-
Si, si, no lo digo de malas, simplemente lo vi por ahí jaja.
-
Bueno, he empezado nuevamente la serie de tutoriales en la que estaré subiendo cosas que voy haciendo y demás. Normalmente me gusta recordar funciones y realizar scripts simples para que luego no se me olvide el uso de las mismas y pues he pensado, ¿y por qué no grabarlo así otros también pueden aprender su uso básico y realizar un script? Y pues nada, aquí está la serie. Postdata: Gracias a los que me corrigieron el error en el anterior post. @Solidsnake, @Starkz, @Tomas, @Gaberiel, @.:CiBeR:.
-
Se te copiaron en el apartado inglés jaja, teneis las mismas ideas.
-
Muy buena esa, me viene genial para lo de while y demás, gracias