Jump to content

Dextrok

Miembro
  • Contador contenido

    111
  • Ingreso

  • Última visita

  • Días ganados

    5

Todo lo publicado por Dextrok

  1. Segun lo que has puesto y lo que entiendo este sería tu resultado, pero ni siquiera explicas que es categoria, y que debería de hacer exactamente el programa. items = {--ID_categoria, ID_item, vnum, cantidad, precio, itemCostType, attr1, val1, attr2, val2, attr3, val3, attr4, val4, attr5, val5, attr6, val6, attr7, val7, sock1, sock2, sock3, Descripcion{1, 1, 149, 1, 100, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "Espada Batalla +9"},{1, 2, 19, 1, 200, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "Espada +9"}}local categoria = input(cmdchat("GetISBuyID")) --- esto devuelve 1 valor a la questlocal id = input(cmdchat("GetISBuyID2")) --- esto devuelve 1 valor a la questchat("categoria: "..categoria.." id: "..id)if categoria == items[1][1] and id == items[2][1] then chat("categoria:"..items[1].." y id "..items[2]) mysql_query("UPDATE account.account SET coins = coins-"..items[5].." WHERE id = "..pc.get_account_id().." LIMIT 1;") pc.give_item2(items[3], items[4])end
  2. Si pero como dijiste arriba se va a los 10 minutos el efecto de cada bono.
  3. quest two_uses begin state start begin when 715689.use with pc.getqf("two_uses") < 2 begin affect.add_collect(apply.ATT_BONUS_TO_MONSTER,10,60*10) affect.add_collect(apply.ATT_GRADE_BONUS, 100, 60*10) affect.add_collect(apply.DEF_GRADE_BONUS, 100, 60*10) affect.add_collect(apply.MAX_HP, 1000, 60*10) pc.setqf("two_uses", pc.getqf("two_uses")+1) end endend Aca esta, con eso solo se podrá usar por 10 minutos, les ajuste a todos los bonos un efecto de 10 minutos.
  4. Ah no Yori, el error fue mio lo que pasa que ayer no había probado la app con items que tenían bonos pero podrías agergarle el yang del personaje, en caso de que tuvieras pensado sacar una nueva versión, pero de todas maneras está perfecta.
  5. Yori muy buena iniciativa el unico detalle que le veo a la aplicación es que te da muy pocos datos de los items, si ampliaras eso fuera un exito total la app.
  6. quest reiniciar_habilidades begin state start begin when iditem.use begin pc.set_skill_group(0) end endendquest reiniciar_estado begin state start begin when iditem.use begin pc.clear_skill() end endend
  7. quest myexp begin state start begin when kill with not npc.is_pc() and pc.getqf("block_exp") == 1 begin pc.give_exp(-pc.get_next_exp() + pc.get_exp()) end when iditem.use begin if pc.getqf("block_exp") == 1 then pc.setqf("block_exp", 0) else pc.setqf("block_exp", 1) end end endend
  8. Bueno, luego de investigar un poco estuve buscando la de Mijago y es esta: function select2(tab,...) arg.n = nil if type(tab) ~= "table" and type(tab) == 'number' then table.insert(arg,1,tab) tab = arg elseif type(tab) ~= "table" and type(tab) == 'string' then table.insert(arg,1,tab) table.insert(arg,1,8) tab = arg elseif type(tab) == "table" and type(tab[1]) == 'string' then table.insert(tab,1,8) end local max = tab[1]; table.remove(tab,1) local tablen,outputstr,outputcount,nextc,incit = table.getn(tab),"",0,0,0 table.foreach(tab, function(i,l) outputcount = outputcount + 1 if outputcount == 1 then outputstr=outputstr..'sel = select("'..l..'"' elseif outputcount == max and tablen > outputcount+incit then if tablen ~= outputcount+incit+1 then outputstr=outputstr..',"'..l..'","Nächste Seite") + '..incit..' ' if nextc > 0 then outputstr = outputstr..'end ' end outputstr=outputstr..'; if sel == '..(incit+max+1)..' then ' -- Anfangen der neuen Abfrage nextc, outputcount, incit= nextc+1,0,incit+max else outputstr=outputstr..',"'..l..'"' end else outputstr=outputstr..',"'..l..'"' end end ) outputstr = outputstr..') + '..incit if nextc > 0 then outputstr = outputstr..' end' end outputstr= outputstr.. '; return sel' print(outputstr) local sel = assert(loadstring(outputstr))() tablen,outputstr,outputcount,nextc,incit = nil,nil,nil,nil,nil -- Speicher freimachen return selend
  9. Me disculpan si esta función tiene coincidencia IDENTICA con otras, tal vez estuvo mal de mi parte no haberme informado sobre la existencia de estas en otros lugares, pero la verdad no la había visto antes, por eso me decidí a crearla.
  10. Buenas Metineros, muchas veces nosotros queremos hacer menus bien grandes y nos resulta un problema como este: Por lo que en el código nos vemos limitados a algo como esto: local r = select("valor1", "valor2", "valor3", "valor4", "valor5", "Ay ya no cabe mas") Y la solución que le damos es crear menus anidados: local r = select("valor1", "valor2", "valor3", "valor4", "valor5", "Más")if r == 6 then local otromenu = select("valor6", "valor7", "valor8", "valor9", "valor10", "Más") if otromenu == 6 then local otromenumas = select("valor11", "valor12", "valor13", "valor14", "valor15", "Más") endend Lo cuál resulta muy tedioso y casi nadie lo hace. Yo he creado una función de ayuda tremenda para hacer estas cosas (no se si sea el único que vea esta necesidad) pero bueno. consiste en lo siguiente: local x = select2(5, "valor1", "valor2", "valor3", "valor4", "valor5", "valor6", "valor7","valor8", "valor9", "valor10", "valor11", "valor12", "valor13", "valor14", "valor15", "valor16","valor17", "valor18", "valor19", "valor20", "valor21", "valor22", "valor23", "valor24", "valor25","valor26", "valor27") --etc etc etc El primer valor, SIEMPRE va a ser la limitación de cuantos quieres que te aparezcan cada vez, o sea en este caso los valores se van a mostarar de 5 en 5, no importa la cantidad que les pongas, si cambias el 5 por un 3 se van a mostarr de 3 en 3 y así sucesivamente. Fijense bien. Si seleccionan "valor1" , x = 1 Si seleccionan "valor2", x = 2 Si seleccionan "valor15", x = 15 Lo cuál quedaría algo así, pero ya la verán con más detalle cuando la prueben: Y finalmente con ustedes dejamos la mágica: --Do not change this is magic function select2(limit, ...) if limit < 1 then limit = 1 end local cicle, val = 0, 0 local next, cancel = "Mas", "Cancelar" while true do t = {} for i = 1, limit do if arg[1] ~= nil then table.insert(t, arg[1]) table.remove(arg, 1) end end if arg[1] ~= nil then table.insert(t, next) end table.insert(t, cancel) val = select_table(t) if val == table.getn(t) then break elseif val == table.getn(t) - 1 and arg[1] ~= nil then cicle = cicle + limit else return (cicle+val) end val = 0 endend Esa es la función, la colocan dentro del questlib, y ya en todas sus quest la podrán utilizar, llamandola como en el ejemplo de arriba.
  11. Dextrok

    Quest atraer mobs

    Interesante, Interesante. Esta función es útil para quitar el cabo, y colocar esta quest en un item. La ventaja que veo en esto es que se pueden limitar los mapas en los que quieres que se utilicen los cabos.
  12. quest gm_list begin state start begin when letter begin send_letter("GM Quest") end when button or info begin local GM_LIST = { "GM1", "GM2", "GM3", "GM4" } for i = 1, table.getn(GM_LIST) do if game.get_event_flag(GM_LIST[i]) == 1 then say("GM " .. GM_LIST[i] .. " is Online") else say("GM " .. GM_LIST[i] .. " is Offline") end end end when login with pc.is_gm() begin game.set_event_flag(pc.get_name(), 1) end when logout with pc.is_gm() begin game.set_event_flag(pc.get_name(), 0) end endend
  13. No funciona igual, en ese caso corrds sería igual a {12, 34} y el valor {45, 67}, sería descartado.Si tuvieras 2 variables como local coords1, coords2 = {12, 34}, {45, 67} Ahí, coords1 sería igual a {12, 34} y coords2 sería igual a {45, 67} *Ojo con eso.
  14. quest metinesevent begin state start begin when 20011.chat."Evento de Metines" begin say("Uriel:") say ("") say ("Hola ".. pc.get_name() .."" ) say("Te ves muy Fuerte, pero No es un Alago...") say("El evento de metines es muy dificil y no") say("calquiera los puede derrotar!") if game.get_event_flag("metinesevent_status") == 0 then wait() say(" Estado : Apagado") say("") say("La fecha de inicio aún no se ha definido.") say("Vuelve mas tarde.") elseif game.get_event_flag("metinesevent_status") == 1 then wait() say(" Estado : Encendido") say("") say("La fecha de inicio se ha definifo.") say("¿Quieres Participar?") local s = select("Si", "No", "Cancelar") if s == 1 then say("Uriel:") say("") say("Ok, te teletransportare al Evento de Metines.") wait() ----Cordes del Mapa--- pc.warp(896500, 24600) end end end when 20358.chat."GM: Evento de Metines" with pc.is_gm() begin local stat = game.get_event_flag("metinesevent_status") say("Evento Metines:") say("") if stat == 0 then say("¿Desea iniciar el Evento de Metines?") local s = select("Si", "No") if s == 1 then game.set_event_flag("metinesevent_status", 1) notice_all("Estado del Evento de Metines: Activado!") notice_all("Dirigete donde Uriel para Participar...") end elseif stat == 1 then say("¿Desea apagar el Evento de Metines?") local s = select("Si", "No") if s == 1 then game.set_event_flag("metinesevent_status", 0) notice_all("Estado del Evento de Metines: Apagado!") end end end endend
  15. Pacificador mira en un caso como este: tabla = {"val1", "val2", "val 3"} //estan bien tabla = {{"val1"}, {"val2"}, {"val 3"}} //en cambio de esta manera tambien se puede aunque no es necesario. tabla = {{"val1", "val4"}, {"val2", "val5"}, {"val 3", "val 6"}} //en cambio de esta menera es necesario para una tabla de coordenadas Siempre ten en cuenta cual es el objetivo que quieres lograr porque tabla = {"val1", "val4", "val2", "val5", "val 3", "val 6"} Una tabla de esta manera para coordenadas X, Y realmente no tiene mucho sentido que digamos.
  16. Solo por joder un poco pero esta también podría ser una opción: quest teletransporte_especial_v2 begin state start begin when 20095.chat."Teletransporte Especial" begin say ( "Seon-Hae" ) say ("") say ("Hola ".. pc.get_name() .."" ) say ("A donde deseas ir?") maps = {}; coords = {} maps.types = {"Premium", "Normal", "Citys", "Cancelar"} maps[1] = {"Campo Dankas","Atlanta","Reino Perdido","Ciudad Treen (Comercio)", "Arena de Fuego", "Cancelar"} maps[2] = {"En Construccion", "Cancelar"} maps[3] = {"Jinno","Chunjo","Shinsoo", "Cancelar"} coords[1] = {{1894400, 2483200},{500000, 450000},{0, 332800},{1243200, 1243300},{2733400, 2729100},} coords[2] = {} coords[3] = {{969600 , 278400},{55700 , 157900},{469300 , 964200}} local s = select(maps.types) local s2 = select(maps[s]) (s2 != table.getn(maps[s][s2])) and pc.warp(coords[s][s2][1], coords[s][s2][2]) end endend
  17. No tiene que estar dentro de una tabla Tiico Asi como el primero.
  18. La quest de TiiCo solamente funciona al logearse. No para cada vez que revives.
  19. Yo podría jurar que sí tiene serverside, porque anteriormente estaba utilizando otro archivo GAME, con el mismo cliente y para nada de verse, todo cambió en cuanto cambié de archivo game. Ahora me baje el GAME, y estoy haciendo el mismo procedimiento, al parecer también si es el mismo procedimient, mil GRACIAS PACIFICADOR.
  20. Nitido se quitó Gracias PACIFICADOR!!!, y sabes como podría quitarlo de la parte del server?
  21. Bueno para mí esta porquería es una de las peores que se ha inventado en metin2, y esa es la razón por la cual quiero quitar el nivel al lado del nombre de un personaje, ese verde que te sale al lado. Aquí una imagen:
×
×
  • Crear nuevo...