Dragonslayer Posted March 17, 2015 Report Share Posted March 17, 2015 Buenas, pues mi problema es que los server_loop_timer no me funcionan o no se hacerlos aquí un ejemplo y no me funcionan ninguno. quest eventosgmautos begin state start begin when login with pc.is_gm() begin set_state(information) end end state information begin when letter begin send_letter("EVENTOS - GM") end when button or info begin say_title("EVENTOS - GM") say_reward("Que quieres hacer?") local eventos = select ("Cajas Luz Luna","Auto Rates(8 horas)","Eventos(8 horas)","Salir") if eventos == 1 then local cajasluna = select ("Activarlo", "Desactivarlo", "Salir") if cajasluna == 1 then game.set_event_flag("Luzluna_drop", 1) notice_all("El evento de Tesoros Luz de Luna a comenzado") notice_all("Puedes conseguir cajas matando cualquier tipo de mounstros") end if cajasluna == 2 then game.set_event_flag("Luzluna_drop", 0) notice_all("El evento de Tesoros Luz de Luna a terminado") notice_all("esperamos que les haya gustado") end if cajasluna == 3 then end end if eventos == 2 then local rates = select("Activar Rates","Desactivar Rates","Salir") if rates == 1 then say_title("Guardián:") say("¿Quieres activar los rates?") local rates1 = select("Si", "No") if rates1 == 1 then say("Los Rates han sido activados.") server_loop_timer("autorates", 8*60*60) __give_empire_priv(0, 1, 125, 1*60*60) __give_empire_priv(0, 2, 125, 1*60*60) __give_empire_priv(0, 4, 75, 1*60*60) notice_all("Bonus activados: 75% exp,125%drop,125%yang, para todos los reinos") end if rates1 == 2 then end end if rates == 2 then say_title("Guardián:") say("Los Rates han sido desactivados.") clear_server_timer("autorates") end if rates == 3 then end end if eventos == 3 then local eventos1 = select ("Activar","Desactivar","Salir") if eventos1 == 1 then game.set_event_flag("eventos8", 1) notice_all("El evento de jefes,dorado y dorado2 a comenzado.") notice_all("Puedes entrar a traves del teletransportador magico") server_loop_timer("autoeventos", 8*60*60) server_timer("dautoeventos", 60*60*1) end if eventos1 == 2 then say_title("Eventos:") say("Los eventos han sido desactivados.") clear_server_timer("autoeventos") game.set_event_flag("eventos8", 0) if (pc.get_map_index() == 250 or pc.get_map_index() == 252 or pc.get_map_index() == 254) and pc.get_empire() == 1 then pc.warp(469300,964200) end if (pc.get_map_index() == 250 or pc.get_map_index() == 252 or pc.get_map_index() == 254) and pc.get_empire() == 2 then pc.warp(55700,157900) end if (pc.get_map_index() == 250 or pc.get_map_index() == 252 or pc.get_map_index() == 254) and pc.get_empire() == 3 then pc.warp(969600,278400) end end if eventos1 == 3 then end end if eventos == 4 then end end when autorates.server_timer begin __give_empire_priv(0, 1, 125, 1*60*60) __give_empire_priv(0, 2, 125, 1*60*60) __give_empire_priv(0, 4, 75, 1*60*60) notice_all("Bonus activados: 75% exp,125%drop,125%yang, para todos los reinos.") notice_all("El siguiente comenzara en 8 horas.") end when autoeventos.server_timer begin game.set_event_flag("eventos8", 1) server_timer("dautoeventos", 60*60*1) notice_all("El evento de jefes,dorado y dorado2 ha comenzado") notice_all("Puedes entrar a traves del teletransportador magico") end when dautoeventos.server_timer begin game.set_event_flag("eventos8", 0) notice_all("El evento de jefes,dorado y dorado2 ha terminado los siguientes comenzaran en 7 horas.") if (pc.get_map_index() == 250 or pc.get_map_index() == 252 or pc.get_map_index() == 254) and pc.get_empire() == 1 then pc.warp(469300,964200) end if (pc.get_map_index() == 250 or pc.get_map_index() == 252 or pc.get_map_index() == 254) and pc.get_empire() == 2 then pc.warp(55700,157900) end if (pc.get_map_index() == 250 or pc.get_map_index() == 252 or pc.get_map_index() == 254) and pc.get_empire() == 3 then pc.warp(969600,278400) end end end end Link to comment Share on other sites More sharing options...
Dragonslayer Posted March 18, 2015 Author Report Share Posted March 18, 2015 up Link to comment Share on other sites More sharing options...
Edward™ Posted March 18, 2015 Report Share Posted March 18, 2015 Yo lo pongo así: timer("test", tiempo) when test.loop_timer begin xxx end Link to comment Share on other sites More sharing options...
Dragonslayer Posted March 18, 2015 Author Report Share Posted March 18, 2015 Nada no funciona Link to comment Share on other sites More sharing options...
Shang Posted March 18, 2015 Report Share Posted March 18, 2015 Yo lo pongo así: timer("test", tiempo) when test.loop_timer begin xxx end Si lo pones así, el timer se lo hará al personaje en cuestión y no en el servidor que es lo que el quiere. Link to comment Share on other sites More sharing options...
PACI Posted March 18, 2015 Report Share Posted March 18, 2015 No puedes usar server_timer(s) y utilizar funciones que afecten un solo jugador. Link to comment Share on other sites More sharing options...
Dragonslayer Posted March 18, 2015 Author Report Share Posted March 18, 2015 No puedes usar server_timer(s) y utilizar funciones que afecten un solo jugador. Por ejemplo, el de los rates, afecta a un jugador por el comando notice_all, debería usar command(n)? O es porque el bonus de exp afecta a la gente?, si ese es el caso puedo utilizar un game.set_event_flag? Link to comment Share on other sites More sharing options...
Edward™ Posted March 18, 2015 Report Share Posted March 18, 2015 Por ejemplo, el de los rates, afecta a un jugador por el comando notice_all, debería usar command(n)? O es porque el bonus de exp afecta a la gente?, si ese es el caso puedo utilizar un game.set_event_flag? notice_all no afecta a un solo jugador. Link to comment Share on other sites More sharing options...
PACI Posted March 18, 2015 Report Share Posted March 18, 2015 Por ejemplo, el de los rates, afecta a un jugador por el comando notice_all, debería usar command(n)? O es porque el bonus de exp afecta a la gente?, si ese es el caso puedo utilizar un game.set_event_flag? El command afecta un solo jugador, tanto que el command es como si escribieses el codigo en el chat del pj. Link to comment Share on other sites More sharing options...
Dragonslayer Posted March 18, 2015 Author Report Share Posted March 18, 2015 El command afecta un solo jugador, tanto que el command es como si escribieses el codigo en el chat del pj. Entonces cual es el problema, que se ejecuta por mision? porque he probado solo con notice all Link to comment Share on other sites More sharing options...
PACI Posted March 18, 2015 Report Share Posted March 18, 2015 Deberías fijarte bien en el código que tienes escrito donde los timers. Y mi consejo es que cuando vayas a probar timers, que uses poco tiempo (como 10 segundos), porque es posible que el tiempo en el cual el timer se ejecuta no haya terminado. Por cierto, si tu servidor se cae a la hora de ejecutar un server_timer, es porque algo esta mal en las funciones que le has puesto. Dragonslayer 1 Link to comment Share on other sites More sharing options...
Dragonslayer Posted March 18, 2015 Author Report Share Posted March 18, 2015 Deberías fijarte bien en el código que tienes escrito donde los timers. Y mi consejo es que cuando vayas a probar timers, que uses poco tiempo (como 10 segundos), porque es posible que el tiempo en el cual el timer se ejecuta no haya terminado. Por cierto, si tu servidor se cae a la hora de ejecutar un server_timer, es porque algo esta mal en las funciones que le has puesto. Bueno gracias, por lo menos me has aclarado esa duda, y si hago las pruebas con timers de 60 segundos. Gracias Edit: Resuelto el problema era que lo tenía con pergamino, por npc funciona. Link to comment Share on other sites More sharing options...
Recommended Posts