sol Publicado 7 de Marzo del 2018 Reportar Compartir Publicado 7 de Marzo del 2018 holis, quería saber si alguien sabe como se hace para que un npc aparezca en un determinado lugar cada x tiempo, por ejemplo un vendedor de armaduras que aparezca cada 3 hs. y si es el mismo poseso que con los mob. Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
colcrt Publicado 7 de Marzo del 2018 Reportar Compartir Publicado 7 de Marzo del 2018 pregunto lo mismo X2 Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
Neon Publicado 7 de Marzo del 2018 Reportar Compartir Publicado 7 de Marzo del 2018 pudiera ser con un ciclo for... Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
MariMT2 Publicado 7 de Marzo del 2018 Reportar Compartir Publicado 7 de Marzo del 2018 :V yo quisiera saber también Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
Dilong Publicado 7 de Marzo del 2018 Reportar Compartir Publicado 7 de Marzo del 2018 Se me ocurre ideas, pero tendría que probarlo MariMT2 reacciono a esto 1 Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
MariMT2 Publicado 7 de Marzo del 2018 Reportar Compartir Publicado 7 de Marzo del 2018 hace 11 minutos, Dilong dijo: Se me ocurre ideas, pero tendría que probarlo vamos dilong te mandamos todo el power Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
Jfirewall Publicado 7 de Marzo del 2018 Reportar Compartir Publicado 7 de Marzo del 2018 quest mob begin state start begin function Tiempo() local mTime = 60*60*24*30 --Cada 30 dias return mTime end function Valores() local mValue = { (pc.getqf("uso")), (pc.getqf("tiempo")) } return mValue when x.use begin say_title'hola' say'....' pc.setqf("uso", 1) pc.setqf("tiempo", get_time() + mob.Tiempo()) chat'en 30 dias el mob sera invocado' end when login with mob.Valores()[1] > 0 begin if get_time() > mob.Valores()[2] then pc.invocar_mob(id,x,y) end end end end questlua_pc.cpp #ifdef ENABLE_INVOCAR_MOB int pc_invocar_mob(lua_State* L) { if (!lua_isnumber(L, 1) || !lua_isnumber(L, 2) || !lua_isnumber(L, 3)) { sys_err("argumento invalido"); return 0; } CQuestManager& mob = CQuestManager::instance(); DWORD vid = 0; DWORD dwVnum = (DWORD) lua_tonumber(L, 1); long x = (long) lua_tonumber(L, 2); long y = (long) lua_tonumber(L, 3); float radius = lua_isnumber(L, 4) ? (float) lua_tonumber(L, 4) : 0; DWORD count = (lua_isnumber(L, 5)) ? (DWORD) lua_tonumber(L, 5) : 1; if (count == 0) count = 1; while (count --) { if (radius<1) { LPCHARACTER ch = mob->CaerMob(dwVnum, x, y); if (ch && !vid) vid = ch->GetVID(); } else { float angle = number(0, 999) * M_PI * 2 / 1000; float r = number(0, 999) * radius / 1000; long nx = x + (long)(r * cos(angle)); long ny = y + (long)(r * sin(angle)); LPCHARACTER ch = mob->CaerMob(dwVnum, nx, ny); if (ch && !vid) vid = ch->GetVID(); } } lua_pushnumber(L, vid); return 1; } #endif #ifdef ENABLE_INVOCAR_MOB { "invocar_mob", pc_invocar_mob }, #endif service.h #define ENABLE_INVOCAR_MOB Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
sol Publicado 7 de Marzo del 2018 Author Reportar Compartir Publicado 7 de Marzo del 2018 hace 23 minutos, Jfirewall dijo: quest mob begin state start begin function Tiempo() local mTime = 60*60*24*30 --Cada 30 dias return mTime end function Valores() local mValue = { (pc.getqf("uso")), (pc.getqf("tiempo")) } return mValue when x.use begin say_title'hola' say'....' pc.setqf("uso", 1) pc.setqf("tiempo", get_time() + mob.Tiempo()) chat'en 30 dias el mob sera invocado' end when login with mob.Valores()[1] > 0 begin if get_time() > mob.Valores()[2] then pc.invocar_mob(id,x,y) end end end end questlua_pc.cpp #ifdef ENABLE_INVOCAR_MOB int pc_invocar_mob(lua_State* L) { if (!lua_isnumber(L, 1) || !lua_isnumber(L, 2) || !lua_isnumber(L, 3)) { sys_err("argumento invalido"); return 0; } CQuestManager& mob = CQuestManager::instance(); DWORD vid = 0; DWORD dwVnum = (DWORD) lua_tonumber(L, 1); long x = (long) lua_tonumber(L, 2); long y = (long) lua_tonumber(L, 3); float radius = lua_isnumber(L, 4) ? (float) lua_tonumber(L, 4) : 0; DWORD count = (lua_isnumber(L, 5)) ? (DWORD) lua_tonumber(L, 5) : 1; if (count == 0) count = 1; while (count --) { if (radius<1) { LPCHARACTER ch = mob->CaerMob(dwVnum, x, y); if (ch && !vid) vid = ch->GetVID(); } else { float angle = number(0, 999) * M_PI * 2 / 1000; float r = number(0, 999) * radius / 1000; long nx = x + (long)(r * cos(angle)); long ny = y + (long)(r * sin(angle)); LPCHARACTER ch = mob->CaerMob(dwVnum, nx, ny); if (ch && !vid) vid = ch->GetVID(); } } lua_pushnumber(L, vid); return 1; } #endif #ifdef ENABLE_INVOCAR_MOB { "invocar_mob", pc_invocar_mob }, #endif service.h #define ENABLE_INVOCAR_MOB holis, por lo que veo es por quest y source. ?? otra pregunta también veo que es por 30 días, como seria para cambiar el tiempo. muchas gracias Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
PACI Publicado 7 de Marzo del 2018 Reportar Compartir Publicado 7 de Marzo del 2018 hace 31 minutos, Jfirewall dijo: [...] hace 4 minutos, sol dijo: holis, por lo que veo es por quest y source. ?? otra pregunta también veo que es por 30 días, como seria para cambiar el tiempo. muchas gracias No, con una quest te sirve. SeMa™ reacciono a esto 1 Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
MariMT2 Publicado 7 de Marzo del 2018 Reportar Compartir Publicado 7 de Marzo del 2018 Si alguien la testea y me dice ocmo le fue Gracias! Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
colcrt Publicado 7 de Marzo del 2018 Reportar Compartir Publicado 7 de Marzo del 2018 voy a testear creo q si funciona, seria genial si pudiera ser en un lugar aleatorio del mapa :) Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
Mensajes recomendados