Jump to content

Zart

Miembro
  • Contador contenido

    45
  • Ingreso

  • Última visita

  • Días ganados

    4

Todo lo publicado por Zart

  1. quest some_basic_teleport begin state start begin when 20094.chat."Teleport" begin local coords = { [1] = {969600,278400}, -- Jinno Map 1 [2] = {55700,157900}, -- Chunjo Map 1 [3] = {469300,964200}, -- Shinsoo Map 1 [4] = {1049600,1510400}, -- BayBlackSand [5] = {1177600,1664000}, -- DawnMistWood [6] = {1024000,1664000} -- CapeDragonHead } local maps = select("Jinno", "Chunjo", "Shinsoo", "BayBlackSand", "DawnMistWood", "CapeDragonHead", "Ninguna") if maps == 7 then return end pc.warp(coords[maps][1],coords[maps][2]) end end end -- //Jayden
  2. Porque la Itemshop está programada en Mysql Standard, versión la cual ya está obsoleta y fue reemplazada por Mysqli, o bien cambias la versión PHP de tu hosting o cambias la itemshop (o le cambias las funciones por las nuevas si tienes el conocimiento para ello).
  3. Es una de muchas posibilidades y métodos.
  4. Cualquier file, y sí, es necesario reiniciar.
  5. Lo mas simple sería: Ingresa a tus Files, ve a la carpeta auth y crea un archivo llamado BANIP (sin extensión), dentro escribe linea por linea las IP's que quieras banear, por lo general puedes ingresarlas en forma de rango para bloquear el acceso de las IP's parecidas a la inicial. Sin embargo con un VPN/Proxy fácilmente podrás pasar dicho sistema de baneo, banear por IP es una tarea un poco complicada por este simple hecho, independientemente de cualquier tipo de método que utilices.
  6. It is difficult to say what you can do to improve it, because it is already well done in my opinion. One thing: the "Play" button is a bit difficult to read, it's blurry
  7. Zart

    [Aporte] Boss Kill Coins

    I like your style as practice and formal development, but I did it this way just because I was getting bored, so to be honest, I did not follow any syntax or structure in this case, so yes, you are absolutely right. Most people use the column "coins" instead of "cash" with the function or without it, I could do it the way you say, but by generally I did not. So, at this point, thanks for answering this thread, it's good to know that other developers read new (or not too new) content from others!
  8. Una persona del foro hizo una pregunta sobre la posibilidad de una quest, me aburría en el proceso, así que se la hice, la dejo aquí por si a alguien le es de utilidad, sin embargo no es nada nuevo, pueden modificar para que cumpla otras funciones si lo desean. -- //Jayden// quest give_coins_by_boss begin state start begin -- Quest functions function set_unique_boss() local boss = { -- Si eliges la versión de boss por coins unico, coloca aqui en el mismo formato los boss que quieras: [ID_MOB] = CANTIDAD_DE_COINS, [101] = 100, [102] = 200, [103] = 300, [104] = 400 } return boss[npc.get_race()] end function check_race_exist(x) local race = {101,102,103,104} -- Si eliges la versión de boss global, coloca aqui en el mismo formato los boss que quieras: {ID_MOB, ID_MOB, ID_MOB} for index, value in ipairs(race) do if value == x then return true end end return false end function settings() return { ["coins"] = 100, -- Introduce aquí la cantidad de Coins en caso de ser la versión global que quieras que de a todos los boss dentro de la lista. ["player"] = pc.get_account_id() } end function set_config(val) if val == 1 then return true else return false end end -- ./Quest functions -- Quest body when kill with not npc.is_pc() begin local settings,boss_setting = give_coins_by_boss.settings(), give_coins_by_boss.set_unique_boss() if give_coins_by_boss.set_config(1) then -- Cambia este valor por 0 para activar el modo unico, dejalo en 1 para activar el modo global. if give_coins_by_boss.check_race_exist(npc.get_race()) then mysql_query(string.format("UPDATE account.account SET coins=coins+%d WHERE id = %d",settings.coins,settings.player)) end else mysql_query(string.format("UPDATE account.account SET coins=coins+%d WHERE id = %d",boss_setting,settings.player)) end end end end -- //Jayden// Tiene dos formas de entregar los coins: Global y Único (No se me ocurrió otro nombre.) En el modo Global, todos los Jefes/Mobs/etc que ingreses en la lista, darán la misma cantidad de coins. En el modo Único, puedes establecer cuantos coins dará cada Jefe/Mob/etc. Como se configura? MODO ÚNICO Si eliges el modo Único para que tu elijas la cantidad de Coins que quieres que otorgue cada Boss, tienes que agregarlos a este Array, en este formato [ID_DEL_BOSS] = CANTIDAD_DE_COINS, (El ultimo nunca debe llevar una coma "," al final). Esto lo miras en la quest: local boss = { ID -> [101] = 100, <-- Cantidad de coins [102] = 200, [103] = 300, [104] = 400 <--- El último no lleva coma "," } MODO GLOBAL Si eliges el modo Global para que todos los boss den la misma cantidad de Coins, tienes que añadirlos a este otro Array simple, en este formato: {ID_DEL_BOSS, ID_DEL_BOSS, ID_DEL_BOSS} (El último de aquí tampoco lleva coma "," al final). Esto también lo miras en la quest: local race = {101,102,103,104} <------ El ultimo no lleva coma Para establecer la cantidad de coins global de este, lo cambias aquí: { ["coins"] = 100, <--------------------------- ["player"] = pc.get_account_id() } ¿COMO PUEDO SELECCIONAR LA VERSION ÚNICA O GLOBAL? Con cambiar un numero lo harás: if give_coins_by_boss.set_config(1) then -- Cambia este valor por 0 para activar el modo Único, déjalo en 1 para activar el modo Global. FIN DEL TUTORIAL Saludos, felices fiestas, feliz cumpleaños, feliz día de algo.
  9. Estaba aburrido así que te hice esta quest. -- //Jayden// quest give_coins_by_boss begin state start begin -- Quest functions function set_unique_boss() local boss = { -- Si eliges la versión de boss por coins unico, coloca aqui en el mismo formato los boss que quieras: [ID_MOB] = CANTIDAD_DE_COINS, [101] = 100, [102] = 200, [103] = 300, [104] = 400 } return boss[npc.get_race()] end function check_race_exist(x) local race = {101,102,103,104} -- Si eliges la versión de boss global, coloca aqui en el mismo formato los boss que quieras: {ID_MOB, ID_MOB, ID_MOB} for index, value in ipairs(race) do if value == x then return true end end return false end function settings() return { ["coins"] = 100, -- Introduce aquí la cantidad de Coins en caso de ser la versión global que quieras que de a todos los boss dentro de la lista. ["player"] = pc.get_account_id() } end function set_config(val) if val == 1 then return true else return false end end -- ./Quest functions -- Quest body when kill with not npc.is_pc() begin local settings,boss_setting = give_coins_by_boss.settings(), give_coins_by_boss.set_unique_boss() if give_coins_by_boss.set_config(1) then -- Cambia este valor por 0 para activar el modo unico, dejalo en 1 para activar el modo global. if give_coins_by_boss.check_race_exist(npc.get_race()) then mysql_query(string.format("UPDATE account.account SET coins=coins+%d WHERE id = %d",settings.coins,settings.player)) end else mysql_query(string.format("UPDATE account.account SET coins=coins+%d WHERE id = %d",boss_setting,settings.player)) end end end end -- //Jayden// Pues te explico. Tiene dos formas de entregar los coins: Global y Único (No se me ocurrió otro nombre.) En el modo Global, todos los Jefes/Mobs/etc que ingreses en la lista, darán la misma cantidad de coins. En el modo Único, puedes establecer cuantos coins dará cada Jefe/Mob/etc. Como se configura? Simple: MODO ÚNICO Si eliges el modo Único para que tu elijas la cantidad de Coins que quieres que otorgue cada Boss, tienes que agregarlos a este Array, en este formato [ID_DEL_BOSS] = CANTIDAD_DE_COINS, (El ultimo nunca debe llevar una coma "," al final). Esto lo miras en la quest: local boss = { ID -> [101] = 100, <-- Cantidad de coins [102] = 200, [103] = 300, [104] = 400 <--- El último no lleva coma "," } MODO GLOBAL Si eliges el modo Global para que todos los boss den la misma cantidad de Coins, tienes que añadirlos a este otro Array simple, en este formato: {ID_DEL_BOSS, ID_DEL_BOSS, ID_DEL_BOSS} (El último de aquí tampoco lleva coma "," al final). Esto también lo miras en la quest: local race = {101,102,103,104} <------ El ultimo no lleva coma Para establecer la cantidad de coins global de este, lo cambias aquí: { ["coins"] = 100, <--------------------------- ["player"] = pc.get_account_id() } ¿COMO PUEDO SELECCIONAR LA VERSION ÚNICA O GLOBAL? Con cambiar un numero lo harás: if give_coins_by_boss.set_config(1) then -- Cambia este valor por 0 para activar el modo Único, déjalo en 1 para activar el modo Global. FIN DEL TUTORIAL Saludos, aburrimiento, ojalá te sirva de alguna manera, háblame al privado si tienes alguna duda, y como conclusión: Sí, se puede hacer una quest que otorgue coins, de muchas formas, esta es una de ellas, y al igual que esto existen muchas otras cosas que se pueden hacer.
  10. Principalmente, usas algún file público? Lo trabajas con SQL o TXT?
  11. Me agrada en su totalidad la idea y proyecto que presentas, suerte con él y veamos como resulta la primera versión final.
  12. quest medalla begin state continuar begin when 35000.chat."Los Trozos de Piedra Preciosa" begin say_title("Lider de Entrenamiento") say("Saludos "..pc.get_name()..".") say("Te tengo una oferta muy buena:") say("Si me traes por lo menos 2 Trozo de Piedra Preciosa,") say("te dare un Anillo de Medialuna.") wait() if pc.count_item(30210) >= 1 and pc.count_item(30211) >= 1 then say_title("Lider de Entrenamiento") say("Hoooo, mis preciosas Piedras") say("Dejame ver. Brillan tan bien como lo recordaba...") say("Desde luego, estos son las piedras adecuadas!") say("Gracias!!!!") say("") say_title("Recompensa:") say_reward("Anillo de Medialuna : x1 Unidad.") pc.remove_item("30210", 1) pc.remove_item("30211", 1) pc.give_item2("71135", 1) else say_title("Lider de Entrenamiento") say("Veo que aun no tienes lo que necesito,") say("vuelve cuando lo tengas y te dare") say("la recompensa.") end end end end
  13. No mi estimado, en el panel administrativo de la Itemshop, es donde debes configurar estos valores antes mencionados (los socket). Como alternativa, también tienes la opción propiamente dicha por Dilong.
  14. Lo que necesitas en cuestión es una re-estructuración del código del sistema, llevo bastante tiempo de haber leído ese código completo y no es simple si no posees los conocimientos necesarios para ello (claro está, como todo), aunque no es cosa de otro mundo, lograrlo es más que posible, pero amenos que sepas hacerlo, necesitarás alguien que lo haga.
  15. Las Itemshop por medio web, envían una consulta de inserción de datos a la base de datos del juego usando tu ID de cuenta o personaje según sea el caso como referencia, en dichas consultas el Item es creado dentro del juego tal cual como se especifica en esta, existen 2 tipos de Items con tiempo: Los pre-establecidos mediante Source y los que poseen el atributo límite "REAL_TIME" otorgado en el Item_Proto. Los pre-establecidos por Sources, automáticamente obtienen el tiempo de uso correctamente inclusive siendo colocados en una Itemshop web, sin embargo los que son por el atributo "REAL_TIME" no son así, y su tiempo empezará a moverse y al no especificarle su tiempo, retornará un valor 0 haciendo que el Item en cuestión haya excedido su tiempo límite, por tanto, desaparece. Es necesario que en dicha Itemshop, al momento de agregar o editar el Item que vayas a colocar, justo en los Input o campos de texto siguientes: "Socket0, Socket1". Añadas el tiempo que deseas que tengan los Items o, el tiempo que deberían de tener, los tiempos se colocan en segundos, hazlo así y resolverás el problema.
×
×
  • Crear nuevo...