Jump to content

caanmasu

Miembro
  • Contador contenido

    357
  • Ingreso

  • Última visita

  • Días ganados

    38

Todo lo publicado por caanmasu

  1. 1. Es "send_letter" 2. Puedes usar los caracteres especiales siempre y cuando no estén al inicio o al final de la línea 3. Esto se te va a bugear porque tienes un [ al inicio de la línea
  2. Hello amigo No te cae el objeto porque tienes que tener al menos uno en el inventario, así está en tu evento. if pc.count_item(50011) >= 0 then local porc = math.random(1,16) if porc <= 2 then game.drop_item_with_ownership("50011", 1) syschat("Você Dropou o Bau Arca de Luar, Pegue seu Premio!") end end Fíjate que está diciendo que si el personaje ya tiene el objeto, que le dropee. Pero si no tiene el objeto nunca le va a caer. Yo quitaría esa condición
  3. Hola! En el when de los kills debes agregar debajo: if game.get_event_flag("mondlicht_event") == 0 then return end Quedaría así: when 8001.kill or 8002.kill or 8003.kill or 8004.kill or 8005.kill or 8006.kill or 8007.kill or 8008.kill or 8009.kill or 8010.kill or 8011.kill or 8012.kill or 8013.kill or 8014.kill or 8017.kill or 8018.kill or 8019.kill or 8024.kill or 8025.kill or 8026.kill or 8027.kill or 8054.kill or 8055.kill or 8056.kill begin if game.get_event_flag("mondlicht_event") == 0 then return end if pc.count_item(50011) >= 0 then local porc = math.random(1,16) if porc <= 2 then game.drop_item_with_ownership("50011", 1) syschat("Você Dropou o Bau Arca de Luar, Pegue seu Premio!") end end end Pero igual te recomiendo la quest del evento Luz de luna de Marty Sama. Yo ahorita no lo puedo buscar Ando inactivo en el foro, estoy de pasadaaaa Espero que te sirva
  4. Gracias por sus comentarios! cracks! Parece que les gustó mucho, me han escrito varias personas. De navidad voy a adjuntar un programa que facilitará muchísimo las cosas. Todavía no les diré qué es, esperemos el 24!
  5. Intenta lo que te dice Zauron, clic en Propiedades al archivo qc, le pones en Permisos el 777. E intenta ejecutarlo de nuevo. Si no funciona, escríbeme al Discord
  6. Para que el sistema agarre un objeto al azar dinámicamente debes hacer esto: local items = {19, 29, 39, 49, 59} --lista de vnum de ítems pc.give_item2(items[number(1, table.getn(items))]) Si te enredaste, míralo de esta forma, que es lo mismo: local items = {19, 29, 39, 49, 59} --lista de vnum de ítems local cant_items = table.getn(items) --table.getn arroja la cantidad de elementos que hay en la tabla enviada local item_elegido = number(1, cant_items) --en este caso number elige un número al azar entre 1 y la cantidad de elementos... pc.give_item2(items[item_elegido]) number es lo mismo que math.random
  7. Holaa! Quiero hacer dos aportes más 1. Hay un programa para editar el mob_drop_item.txt 2. Hay un comando para recargar el mob_drop_item.txt sin tener que hacer reboot. Solo haces /rel m. Pero tienes que implementarlo por C++. https://infomanii.ro/threads/reload-mob_drop_item-txt.731/ Saludos!
  8. Hay que revisar primero si en sus files tiene esa función. Igual montarla no es problema
  9. Mira este post Y luego, para añadir quests haces esto: Vas al PuTTY, te conectas, normal Digitas: ln -s tu_ruta_hasta_quest / donde tu_ruta_hasta_quest va /usr/game.../quest. Al final va un espacio y un "/", tenlo en cuenta (este paso solo se hace una vez) Ahora debes ir al directorio donde está el compilador (archivo qc, o sea, quest compiler), así: cd /quest Ahora se compila el archivo. El "./" significa que se va a ejecutar un archivo. Y el qc es el compilador. En dirección_de_la_quest pones la ruta, digamos, give_basic_weapon.quest ./qc dirección_de_la_quest Si el archivo se encuentra en una carpeta llamada por ejemplo, basic; pones ./qc basic/give_basic_weapon.quest Luego en el juego haces el comando: /rel q Esto es para cargar las quest. Solo es válido para el mapa actual. En el caso de que metas una quest con un when letter tienes que necesariamente reiniciar el servidor para que funcione el pergamino de misión. Y de paso al reiniciar pues ya funcionarán las quests en todos los mapas. Para borrar una quest, debes borrarla de donde se almacena. Las quests se almacenan en quest/object. Es complicado borrar una a una desde el object, así que hice esta guía de apoyo con un archivo: Si quieres compilar todas las quest que tienes en una lista, debes agregarlas en quest/locale_list, generalmente se llama así. Si quieres cargar de nuevo TODAS las quest, debes conocer cómo se hacen en tus files ya que varía mucho en cada file.
  10. repeat pc.give_exp2(pc.get_next_exp()) until pc.level >= 81 pero con el efecto de subir nivel se te va a desconectar el pj
  11. quest drop_piedras_4 begin state start begin function esMetin() return { [8001] = 0, --este estructura la puse así para que cada vez que mate no tenga que hacer un ciclo [8002] = 0 } end when kill with drop_piedras_4.esMetin()[npc.get_race()] != nil begin --en la tabla que puse arriba asigné números 0 (o podía poner cualquier cosa que no sea nil) para que logre detectar el vnum. Ya que toda tabla tiene sus index por defecto en nil. Al irme directamente a la posición con npc.get_race() no tendría que recorrer la tabla. if prob(0.75) then --acá está mi función "prob", esto significa 0.75% local rango_piedras = {28430, 28443} local piedra_azar = number(0, rango_piedras[2] - rango_piedras[1])+rango_piedras[1] --acá elijo un número al azar entre 0 y la diferencia en el rango, o sea, 13. Luego le sumo el vnum base y ya obtengo la piedra. game.drop_item_with_ownership(piedra_azar) end end end end --Mi función del questlib.lua function prob(probabilidad) -- formato de probabilidad: 100, 80, 55, 32.5, 1, 0.3, 0.07 local base = 1 if probabilidad >= 1 then return math.random(1, base*100) <= probabilidad else for i = 1, string.len(probabilidad)-1 do base = base*10 end return math.random(1, base) <= probabilidad*(base/10) end end Lo hice de esta manera, comentado obviamente para transmitir el conocimiento. Ojo, no la probé xD Vamos crackkksss! Esta función será útil algún día xD
  12. caanmasu

    borrar

    ¿Qué pasó amigos? bueno, aquí va una pista: para poder dar los objetos a todos los pjs del mapa primero hay que tener "guardados los pjs" en una tabla ya que de alguna parte los tengo que sacar xD Y por mi parte no usaré db para esto. Así que aquí les va el VID. El VID (Virtual ID) es "identificador virtual". Todo "character" (entiéndase como personaje, NPC, mob) tiene un VID mientras esté "activo" o "online". Todo NPC o mob tiene un VID, y si no hay, entonces es 0. Todo personaje tiene un VID, y si está desconectado pues es 0. La función que retornan los VID son npc.get_vid() o find_pc_by_num(String nombre). Esa fue una gran pista, así que si alguien se anima a seguir pues adelanteee!
  13. Hola Yo quizá te puedo ayudar, sé algo de quest Si quieres escríbeme a mi Discord Camilo#0869
  14. caanmasu

    borrar

    ufff pues bueno, muchas cosas pc.give_item2() es una función. Esta función da los ítems, efectivamente pero recibe como parámetros el ítem y la cantidad. pc.give_item2(item_vnum, item_count) Al ser "pc" significa "personal character" o sea, tú mismo, tu pj. O sea que si yo pongo pc.give_item2(27001, 10) le estaré dando al propio pj 10 potas rojas pequeñas. Por lo tanto, sí sería pc.give_item2(vnum, count) pero solo lo darías a tu propio pj. El "with" que pusiste solo se admite en los bloques "when". El "with" se usa para separar los disparadores de las condiciones. Es decir, si yo pongo when login or levelup or kill with pc.get_map_index() == 21 and pc.is_gm() begin Lo que va antes del with son los disparadores, que son "eventos" que se activan cuando suceda algo, por eso se llama "when" (cuando tal cosa suceda). El "with" equivale a un "and" pero le cambiaron el significado para poder identificar los disparadores de las condiciones que le siguen. Disparadores: login, levelup, kill......... cuando el pj se loguee, cuando suba de lvl o cuando mate algo Condiciones: pc.get_map_index() == 21, pc.is_gm()........ si el pj está en el mapa de index 21, si el pj es GM. Ahora sí continuando con el código, sería pc.give_item2(vnum, count) Ahora cómo hacemos para darle a todos los pjs del mapa los ítems?
  15. caanmasu

    borrar

    quest regalar_items begin state start begin when 20095.chat."GM: Regalar ítems" with pc.is_gm() begin say_title(mob_name(npc.get_race())) say() say("¿Quieres regalar ítems a todos los") say("personajes que se encuentren en") say("tu mapa?") say("Digita el vnum") local vnum = math.ceil(tonumber(input())) if vnum == 0 or vnum == nil then return end say_title(mob_name(npc.get_race())) say() say("Digita la cantidad") local count = math.ceil(tonumber(input())) if count == 0 or count == nil then return end -- ya tenemos el ítem y la cantidad, ahora a darles a todos los pjs del mapa este objeto... end end end Este es el "esqueleto" La parte de local vnum = math.ceil(tonumber(input())) es una validación, o sea, evitar que metan ciertos datos que no son, como los decimales. El math.ceil() convierte el número en entero. Ahora para darle los ítems a todos los personajes? ese es el reto, let's go!
  16. caanmasu

    ¡Evento de pesca!

    --------------------------------------------------- UPDATE! He puesto multilanguage la quest. En el momento está en español e inglés pero está en variables de translate, así que se puede usar en cualquier servidor internacional, solo se agregan las variables de los otros idiomas. Esta quest es para que se pueda pescar todo lo que quieras en el mar sin tener que modificar ningún archivo en la base! Otra actualización que hice fue que, mientras el evento esté activo y yo como GM agregue o elimine un pez (objeto) va a avisar a todos en un anuncio. ¿La quieres? ------------------------------------------------------- ¡Hola a todos! He sacado de mi baúl de quests un evento de pesca El evento consiste en pescar objetos que el GM agregue a la lista de peces. Saludos a mi amigo @Anthony's que aparece en el vídeo. Vídeo: Instrucciones: El GM activa el evento y asigna la duración. Hay un menú donde aparecen todos los objetos posibles para pescar, y al seleccionar alguno, se puede elegir como modelo para agregar el objeto que se quiera. Una vez agregado, queda en la lista de Objetos especiales que se puede ver en el Pescador y en el NPC donde se activa el evento. Los objetos agregados se pueden eliminar desde la lista de Objetos especiales. Se puede terminar el evento forzadamente. FAQ: ¿Si agrego un objeto, se pueden seguir pescando los peces normales? Sí ¿Qué sucede cuando agrego un pez? ¿en dónde queda? Queda arriba del pez modelo, o sea, del pez elegido. Si elegiste Pez pequeño como modelo, en el fishing.txt va a quedar tu nuevo objeto arriba de esa línea. ¿Si se termina el evento, no saldrán los objetos especiales? Por supuesto que no. Y tampoco se eliminarán los objetos especiales sino que seguirán guardados en la lista. ¿Por qué al pescar objetos con socket aparece una rozadura en un socket? Ya no recomiendo esto, por favor no poner objetos equipables para pescar ¿Si elimino un pez de los normales, lo puedo volver a agregar después? No. Hay que hacer una copia de fishing.txt ¿Por qué vi un tiempo de 30 segundos cuando se iba a activar el evento? Porque era para hacer pruebas, eso ya no estará. ¿Por qué hay que tomar como modelo otro objeto? Porque los parámetros de los peces son muy complejos, y para más facilidad solo se copia y se pega la línea. ¿Cuánto cuesta? Escríbeme para hacer un trato. El servicio cuenta desde la instalación hasta las actualizaciones que haga del evento. Esto fue todo amigos Discord: Camilo#0869
  17. caanmasu

    borrar

    ¡UP! ¿Alguien? ¿Quién dijo yo? ¿Quieren que la resuelva y explique todo todo o quieren participar aportar? Elijan, de las dos maneras se aprende muy bien ¿Para qué podría servir esta quest? Es muy similar a la del evento OX de dar un ítem de bienvenida, solo que esa función va por src. Acabo de dar una pista. Muy bien, esto puede servir para eso, dar un objeto por participación en un evento, por ejemplo un evento de jefes. Un GM pone que les de perlas rojas por decir, a todos los jugadores que estén participando. Esto lo hago sin pedir nada a cambio, aprovechen puesss! Fuegoooooooo! jejeje
×
×
  • Crear nuevo...