Jump to content

Dextrok

Miembro
  • Contador contenido

    111
  • Ingreso

  • Última visita

  • Días ganados

    5

Mensajes publicados 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. 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.

  3. 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
  4. Buenas Metineros, muchas veces nosotros queremos hacer menus bien grandes y nos resulta un problema como este:

    Imagen enviada

     

    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:

     

    Imagen enviada

     

     

     

    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.
     

  5. 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
  6. 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
  7. 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.

  8. 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
×
×
  • Crear nuevo...