Buenas, en esta ocasión les vengo aportando unos files que ayude a desarrollar y que al final no se usaron, la base del proyecto era metin2 rage que publicaron hace tiempo aquí en el foro y es una base martysama, los files vienen con sistemas nuevos y alguna que otra corrección, el único bug "importante" que solo es visual es en las estolas.
Para compilar source binario necesitas visual studio 2017
El VDI viene listo para compilar el source game, para compilar utiliza GCC6 y la versión de Mysql 5.6.
DATOS DE MYSQL:
ID: root
Pass: delaro
DATOS DE VDI:
ID: root
Pass: dev
EN EL JUEGO:
ID: delaro
Pass: delaro
Para abrir las opciones de iniciar, detener, compilar quest, etc., en los files ya logueado escribir:
cd /a && sh admin.sh
LINK:
Debes iniciar sesión para ver el contenido del enlace en esta publicación.
Los Files Contienen:
Inventario Especial K
Auto Dopador Sanii
Habilidades de Colores
Tienda Offline Great
Item Shop de Shang
Regalos Diarios
Información de Mazmorras
Buscador de Tiendas Offline
Sistema de Títulos
Ocultar Atuendos
Sistema de Brillos
Sistema AFK
Visor de Cofres
Sistema Biólogo
Y un ETC..
IMAGENES DE PRUEBA:
ESPERO SAQUEN PROVECHO DE LOS FILES, YA QUE ERA UN DESPERDICIO BORRARLOS.
Y POR EL AMOR DE DEUS NO LE DEN CITAR AL TEMA, SOLO DEJEN SU GRACIAS O DEJEN SU PREGUNTA..
Noté que no hay archivos de servidor vacíos y quiero ofrecerle este servidor. Contiene 4 inventarios, cinturones y alquimia, puede comenzar un buen proyecto con este servidor si tiene tiempo para trabajar. Lea .txt
usuario: root
pass:1234
Debes iniciar sesión para ver el contenido del enlace en esta publicación.
edit:
is not my svf,source is Nicu gaming
Hola zoneros, hoy les vengo a traer la quest de las catacumbas del diablo, 100% probada por mi, esta es la quest de BlackYuko. Cuenta con los portales como el oficial, en un máximo de 99% del oficial.
Quest:
--**
--** Script Catacumbas del Diablo.
--** by BlackYuko Skype: manu___88
--**
quest catacombe begin
state start begin
--**
--** Funciones
--**
function GetScriptData(data)
local map_data = {['map_index'] = 15, -- index del mapa de catacumbas
['x'] = 3072, ['y'] = 12032, -- coordenadas X y Y, las del mapa catacumbas
['drop_frequency'] = 1000, -- frecuencia en los mob para que dropeen la llave cristal del alma
['min_lev'] = 100, -- nivel minimo para entrar a catacumbas,
['close_time'] = 60, -- tiempo (minutos) para estar en catacumbas
['testa_ristretta'] = 30320, -- vnum item de entrada que pide
['chiave_anime_cristallo'] = 30311, -- vnum item llave cistal del alma
['totem_smorfia'] = 30312, -- vnum totem
['forziere_azrael'] = 219, -- vnum drop al matar al azrael
['min_drop_lev'] = 100, -- nivel minimo para dropeo de la llave cristal
['max_drop_lev'] = 210} -- nivel maximo para dropeo de la lalve cristal
return rawget(map_data, data)
end
function IsInDungeon(pc_index)
local map_index = catacombe.GetScriptData('map_index')
return (pc.in_dungeon() and pc_index >= map_index*10000 and pc_index < (map_index+1)*10000)
end
function CanDrop(pc_level)
return (pc_level >= catacombe.GetScriptData('min_drop_lev') and pc_level <= catacombe.GetScriptData('max_drop_lev'))
end
--**
--** NPC - Guardian entrada a catacumbas
--**
when 20351.chat."GM: Catacumbas Abrir" with pc.is_gm() begin
say_title("GM: Catacumbas Abrir")
say("¿Quieres abrir las Catacumbas?[ENTER]")
local s = select("Si","No")
if s == 2 then
return
end
say_title("GM: Abrir Catacumbas")
say("Operación Completada.[ENTER]")
game.set_event_flag("catacomb_next_open", 1)
end
when 20351.chat."Entrada a Catacumbas" begin
local mob_race = npc.get_race()
local min_lev = catacombe.GetScriptData('min_lev')
say_title(mob_name(mob_race))
if pc.get_level() < min_lev then
say("Debes tener el mínimo Nivel "..min_lev)
say("Para entrar.[ENTER]")
return
end
if pc.count_item(catacombe.GetScriptData('testa_ristretta')) == 0 then
say("Tienes que tener este Item para")
say("Entrar:[ENTER]")
say_item_vnum(catacombe.GetScriptData('testa_ristretta'))
return
end
if get_time() < game.get_event_flag("catacomb_next_open") then
say("Las Catacumbas están cerradas.[ENTER]")
return
end
say("Hola aventurero. Las catacumbas del diablo")
say("son un lugar muy peligroso.[ENTER]")
local s = select("Entrar","No Entrar")
if s == 2 then
return
end
say_title(mob_name(mob_race))
say("Ok Viajero, ahora será telestrasportado.")
say("Preste mucha atención.[ENTER]")
wait()
pc.warp((catacombe.GetScriptData('x')+80)*100, (catacombe.GetScriptData('y')+60)*100)
end
--**
--** Primer Piso
--**
when login with pc.get_map_index()== catacombe.GetScriptData('map_index') begin
pc.set_warp_location(15, 3152, 12092)
end
when logout with pc.get_map_index()== catacombe.GetScriptData('map_index') begin
pc.delqf("mob_killed")
end
when 2501.kill or 2502.kill or 2503.kill or 2504.kill with pc.get_map_index()== catacombe.GetScriptData('map_index') begin
pc.setqf("mob_killed", pc.getqf("mob_killed")+1)
if math.mod(pc.getqf("mob_killed"), catacombe.GetScriptData('drop_frequency')) == 0 then
game.drop_item_with_ownership(catacombe.GetScriptData('chiave_anime_cristallo'), 1)
end
end
when 30101.take with item.get_vnum() == catacombe.GetScriptData('chiave_anime_cristallo') and pc.get_map_index() == catacombe.GetScriptData('map_index') begin
say_title(mob_name(30101))
if get_time() < game.get_event_flag("catacomb_next_open") then
say("Las Catacumbas están cerradas.[ENTER]")
return
end
if party.is_party() and not party.is_leader() then
say("Sólo arrastra el objeto sobre")
say("El NPC.[ENTER]")
return
end
pc.remove_item(item.get_vnum(), 1)
say("Abrieron el seloo hacia.")
say("El paso a la segunda planta.[ENTER]")
if party.is_party() then
say("Serán llevados, suerte viejeros.[ENTER]")
end
wait()
game.set_event_flag("catacomb_next_open", get_time()+60*catacombe.GetScriptData('close_time'))
pc.setqf("is_master", 1)
timer("enter_floor_2", 2)
end
--**
--** Entrada dungeon y timer
--**
when login with catacombe.IsInDungeon(pc.get_map_index()) begin
pc.set_warp_location(15, 3152, 12092)
if pc.getqf("is_master") == 1 then
timer("start_timer", 2)
end
end
when logout with catacombe.IsInDungeon(pc.get_map_index()) begin
pc.remove_item(catacombe.GetScriptData('totem_smorfia'), pc.count_item(catacombe.GetScriptData('totem_smorfia')))
pc.remove_item(catacombe.GetScriptData('chiave_anime_cristallo'), pc.count_item(catacombe.GetScriptData('chiave_anime_cristallo')))
pc.delqf("is_master")
end
when start_timer.timer begin
d.notice("Les que da "..catacombe.GetScriptData('close_time').." minutos de su tiempo.")
d.notice("para complezar Catacumbas!")
notice_all("Las Catacumbas se cerrarán en "..catacombe.GetScriptData('close_time').." minutos a partir de ahora.")
server_timer("catacomb_open", 60*catacombe.GetScriptData('close_time'), pc.get_map_index())
end
when catacomb_open.server_timer begin
notice_all("Las Catacumbas están abiertas de nuevo.!")
if d.select(get_server_timer_arg()) then
clear_server_timer("catacomb_open", get_server_timer_arg())
d.notice("Tiempo Acabado, serán sacados de Catacumbas.")
d.exit_all()
end
end
--**
--** Segundo piso
--**
when enter_floor_2.timer begin
d.new_jump_all(15, 3617, 12075)
d.regen_file("data/dungeon/catacumbas/dc_regen_ebene2.txt")
d.setf("catacomb_floor", 2)
end
when 30103.take with item.get_vnum() == catacombe.GetScriptData('testa_ristretta') and catacombe.IsInDungeon(pc.get_map_index()) and d.getf("catacomb_floor") == 2 begin
if pc.getqf("is_master") == 1 then
pc.remove_item(item.get_vnum(), 1)
d.notice("Serán llevados a la siguente planta")
timer("enter_floor_3", 3)
else
d.notice("Solo el guerrero fuerte podrá poner el item.")
end
end
--**
--** Tercer piso
--**
when enter_floor_3.timer begin
d.jump_all(3572, 12760)
d.clear_regen()
d.kill_all()
d.regen_file("data/dungeon/catacumbas/dc_regen_ebene3.txt")
d.setf("catacomb_floor", 3)
d.notice("Buscar el metin correcto para avanzar!")
local coord_metin = {{1340,348},{1243,357},{1334,151},{1252,148},{1149,148},{1139,244},{1148,355}}
local right_metin = math.mod(os.time(),table.getn(coord_metin))+1
for i = 1,table.getn(coord_metin) do
if i == right_metin then
local v = d.spawn_mob(8025, coord_metin[i][1], coord_metin[i][2])
d.set_unique("real", v)
--chat(coord_metin[i][1].." "..coord_metin[i][2])
else
d.spawn_mob(8025, coord_metin[i][1], coord_metin[i][2])
end
end
end
when 8025.kill with catacombe.IsInDungeon(pc.get_map_index()) and d.getf("catacomb_floor") == 3 begin
if d.is_unique_dead("real") then
d.notice("El metin destruido es el correcto!")
d.notice("Serán llevados a la siguiente planta.")
timer("enter_floor_4", 3)
else
d.notice("El metin destruido es falso.")
end
end
--**
--** Cuarto Piso
--**
when enter_floor_4.timer begin
d.jump_all(3369, 12354)
d.clear_regen()
d.kill_all()
local map_n = math.mod(os.time(),4)+1
d.regen_file("data/dungeon/catacumbas/piano_4_"..map_n.."_catacombe.txt")
d.setf("catacomb_floor", 4)
d.notice("Encontrar el camino correcto para avanzar!")
end
when 20352.chat."Avanzar a la Sig. Planta" with catacombe.IsInDungeon(pc.get_map_index()) and d.getf("catacomb_floor") == 4 begin
if pc.getqf("is_master") == 1 then
say("Muy bien, has conseguido llegar hasta aquí.")
say("En la siguiente planta te enfrentarás con el")
say("jefe de las catacumbas.[ENTER]")
wait()
setskin(0)
d.notice("Serán llevados a la siguiente planta.")
timer("enter_floor_5", 3)
else
say("Sólo el guerrero del grupo o subida podrá recompensar.[ENTER]")
end
end
--**
--** Quinto Piso
--**
when enter_floor_5.timer begin
d.jump_all(3917, 12431)
d.clear_regen()
d.kill_all()
d.regen_file("data/dungeon/catacumbas/dc_regen_ebene5.txt")
d.setf("catacomb_floor", 5)
d.setf("correct_killed", 0)
d.notice("Encontrar y matar al Tártaro correcto para avanzar!")
local coord_boss = {{848,570},{678,832},{685,632},{1031,637},{1003,856}}
local right_boss = math.mod(os.time(),table.getn(coord_boss))+1
for i = 1,table.getn(coord_boss) do
if i == right_boss then
local v = d.spawn_mob(2591, coord_boss[i][1], coord_boss[i][2])
d.set_unique("real", v)
--chat(coord_boss[i][1].." "..coord_boss[i][2])
else
d.spawn_mob(2591, coord_boss[i][1], coord_boss[i][2])
end
end
end
when 2591.kill with catacombe.IsInDungeon(pc.get_map_index()) and d.getf("catacomb_floor") == 5 begin
if d.is_unique_dead("real") and d.getf("correct_killed") == 0 then
d.setf("correct_killed", 1)
d.notice("El Tártaro correcto fue destruido!")
d.notice("Arrastra el Totém al pilar o NPC!")
game.drop_item_with_ownership(catacombe.GetScriptData('totem_smorfia'), 1)
else
d.notice("El Tártaro es falso, no es el correcto.")
end
end
when 30102.take with item.get_vnum() == catacombe.GetScriptData('totem_smorfia') begin
pc.remove_item(item.get_vnum(), 1)
d.notice("Serán llevados a la siguiente planta!")
timer("enter_floor_6", 3)
end
--**
--** Sexto Piso
--**
when enter_floor_6.timer begin
d.jump_all(4372, 12732)
d.clear_regen()
d.kill_all()
d.regen_file("data/dungeon/catacumbas/dc_regen_ebene6.txt")
d.setf("catacomb_floor", 6)
d.notice("Mata al Caronte para avanzar!")
end
when 2597.kill with catacombe.IsInDungeon(pc.get_map_index()) and d.getf("catacomb_floor") == 6 begin
notice_all(" ".. pc.get_name() .." Ha destruido la Muerte!")
notice_all("Felicitaciones Guerrero.")
d.notice("El Caronte fue destruido!")
d.notice("Serán llevados a la última planta, Suerte!")
timer("enter_floor_7", 3)
end
--**
--** Septimo Piso
--**
when enter_floor_7.timer begin
d.jump_all(3146, 13142)
d.clear_regen()
d.kill_all()
d.regen_file("data/dungeon/catacumbas/dc_regen_ebene7.txt")
d.setf("catacomb_floor", 7)
d.notice("Acaba con Azrael!")
end
when 2598.kill with catacombe.IsInDungeon(pc.get_map_index()) and d.getf("catacomb_floor") == 7 begin
if catacombe.CanDrop(pc.get_level()) then
game.drop_item_with_ownership(catacombe.GetScriptData('forziere_azrael'), 1)
end
notice_all("El Personaje o el Grupo de ".. pc.get_name() .." ha destruido al Azrael!")
d.clear_regen()
d.notice("Han acabado con el Mal del Azrael, FELICITACIONES!")
d.notice("Tienen 20 segundos, y serán sacados de la mazmorra.")
timer("exit_catacomb", 20)
end
when exit_catacomb.timer begin
d.exit_all()
end
end
end
Por general cambian el index del mapa que es 15 (en mi caso), ustedes lo cambian por su número de index, es totalmente editable, cuenta con activación de las catacumbas por un gm.
Poner en quest_functions:
DragonLair.startRaid
GetScriptData(data)
IsInDungeon(pc_index)
CanDrop(pc_level)
catacombe.CanDrop
catacombe.GetScriptData
game.drop_item_with_ownership
os.time
rawget
Introducir en player-->query-->new query: Estos son los portales.
HOLA GENTE ACA LES TRAIGO UN NUEVO POST DE UNAS CITYS 1 QUE ENCONTRE EN UN SERVIDOR PRIVADO Y COMO CERRO ME TOME LA AMABILIDAD DE SACAR LAS CITYS 1 MODIFICADAS QUE HABIA EN DICHO SERVIDOR ESTAS CITYS NO LAS VI EN NINGUN LADO POR ESO HAGO ESTE POST ESPERO QUE LE GUSTE LES DEJO UNA FOTO Y EL LINK DE DESCARGA 😄
Debes iniciar sesión para ver el contenido del enlace en esta publicación.
PD: LAS CITYS LAS VI UNA SOLA VEZ YA QUE CERRO EL SERVIDOR NOSE SI FUNCIONAN BIEN Y SI ALGUIEN SABE EN QUE ARCHIVO .EIX Y EPK ESTA LOS MINIMAPAS QUE ME DIJA ASI SUBO TAMBIEN LOS MINIMAPA 🙂
LINK DE DESCARGA: Debes iniciar sesión para ver el contenido del enlace en esta publicación.!-7cUvVOKfLxMow5y3HayfTT6JUp3iqcqw8PGbewSiFQ
SI SE CAE EL LINK O NO FUNCIONA ME AVISAN Y LO SUBO A MEDIAFIRE 😄
ATT: ADMNAHUI
VIENDO QUE LA GENTE PIDE UN WORLDEDITOR COMPLETO PARA PODER EDITAR SUS MAPAS AL GUSTO , AQUI OS DEJO LOS LINK'S DE LOS QUE USO YO , HABIA OTRO POST DE ESTO PERO SOLO ESTABA EL .EXE ASI QUE ESTE ESTA COMPLETO CON LAS CARPETAS QUE NECESITAIS PARA EMPEZAR A EDITAR!
Debes iniciar sesión para ver el contenido del enlace en esta publicación.
Debes iniciar sesión para ver el contenido del enlace en esta publicación.
Son los mas necesarios, Practicamente mas utilizados
Suerte El Fichero Trae:
Catatumbas 100% Funcional todos los pisos
Sistema de Logros La funcional (la de keko tiraba error)
Pd: Es la misma de keko editada
Quest de recuperacion de vida: Para cuando te telesportas
te regenere la vida y no quedes sin vida
Ox Evento: Evento ox 100% con preguntas ya echas
Quest de pets: Es la nueva la que trae opciones las mascotas
Link: Debes iniciar sesión para ver el contenido del enlace en esta publicación.
Ahora LEAAAN CON ATENCION
debido ah que practicamente el foro se esta volviendo como uj, lamentablemente :/
El Archivo Rar tiene Contrasena, para darselas tienen que darme Gracias!
asi os pasare por mp
Pass: ByPedroFuentes
La Pongo por lo que dijo akroma porque fue el primer comentario y no fue absurdo
Buenas foreros de Zone, me doy el honor de estrenar esta seccion junto a keko, conforme que aqui os traigo mi modo Zombis.
Os estareis preguntando:
-En que consiste esto akroma?
Senzillo amigos, vosotros partireis de la ronda 1, en 1 mapa con mobs, cada 5 rondas os dropeara 1 cofre i os teletransportara a otra zona del mapa, el cofre solo podra abrirse mientras la dungeon este activa, una vez tengais el cofre, y lo abrais os dropeara 1 arma, armadura, o lo que sea al azar para vuestra raza, en el momento en el que murais os llevaria a city i quedaria anulada la subida para ese jugador, recomiendo ir en grupo, para que sea mas ameno.
Si completais las 45 rondas, podreis llevaros las cosas dropeadas del cofre, y los cofres si decidieseis no abrirlos.
Esta testeada i funciona perfectamente.
PD: Podeis hacer 1 ranking mysql para ella si quereis para tener 1 ranking de maximos jugadores de ronda maxima.
Aqui os la dejo.
Link pastebin Debes iniciar sesión para ver el contenido del enlace en esta publicación. Te lo puse yo (rafa23alzira) si te molesta dímelo y lo quito.
En los archivos se deja las líneas que se deben modificar para quitar el Lykan de seleccionar el personaje, ósea, en pocas palabras ningún jugador le saldrá para poder seleccionarlo.
Si de pronto sale error al implementar me avisan. Sin embargo las modificaciones fueron probadas y no dio ningún error en el syser en cuanto a quitar el Lykan.
Debes iniciar sesión para ver el contenido del enlace en esta publicación.
Lo único que ya faltaría seria eliminar el drop del Lykan del servidor. Las líneas de item_proto en cuanto a Lykan no se debe eliminar si se hace no dejara prender el servidor.
Solo es python, no es el sistema que da bonos extras o cosas asi.
Debes iniciar sesión para ver el contenido del enlace en esta publicación.
Al poner [VIP], [MOD],[MISS],[MISTER] sale un logo arriba del nombre del pj.
sin nada mas que explicar aqui la imagen.
Cabe destacar que pueden agregar o cambiar los nombres.
Debes iniciar sesión para ver el contenido del archivo adjunto en esta publicación.
es un rar que tengo hace mucho tiempo y decidi subirlo.
PDT: no me acuerdo en que foro lo descarge fue hace unos par de años
Buenas tardes metineros he visto que muchas personas batallan un poco con el WorldEditor para la edición de sus mapas y decidí pasarles el editor junto con una mini guía de como prepararlo para su uso.
Nota: Cualquier duda preguntar por este medio.
PD: si este pos se considera como repetición favor de proceder con la limpieza.
Debes iniciar sesión para ver el contenido del enlace en esta publicación.
Debes iniciar sesión para ver el contenido del enlace en esta publicación.
Cloud segundario
Debes iniciar sesión para ver el contenido del enlace en esta publicación.
"Comenta" en el tema y Darle "Me Gusta" para mas "Contenidos"
Creditos a #[A]ivory
Traducion Mala Del Google xDDD Entenderlo A Vuestra Manera!
Tutorial ------
( Después de completar todos los campos siguientes Fasam ) 1.Procure Filezilla en / usr / lluvia / canal / share_data / locale / Hong Kong / búsqueda Asegúrese de tenermake.sh Una vez que haya creado la búsqueda 2.El servidor debe estar en la partida'''' punto. [Después de que el archivo / etc / rc.d / netif reinicio o . / start en función de lo que se usa] 3.Agora vano a la siguiente ubicación y abierto: hongkong_list continuación, guárdelo y ciérrelo: / usr / lluvia / canal / share_data / locale / Hong Kong / búsqueda Al final de la lista ( hongkong_list ), agregue la línea siguiente: ss35.quest 4.Agora odio reiniciar 5. Después de dar a / etc / rc.d / netif reinicie poner el siguiente comando cd / usr cd cd lluvia cd canal share_data cd cd locale Hong Kong cd cd búsqueda A continuación, escriba make.sh mierda y esperar: Si los errores positivos mSQL la máquina emitirá Error
Descarga
Debes iniciar sesión para ver el contenido del enlace en esta publicación.
Como Yo Soy Muy Bago No He Probado Nada
Pues hoy vengo con una pequeña guía para implementar nuevas Armaduras a su servidor de metin2.
Si bien esto se maneja en 2 partes, la parte del cliente (Carpeta de metin->Carpeta Pack) y la parte del servidor(Win SCP o Filezilla).
Herramientas a usar; les dejo un link de descarga, en caso de que no lo tengan.
Usaremos un encriptador, para poder encriptar y desencriptar el cliente.
Debes iniciar sesión para ver el contenido del enlace en esta publicación.
un dumpeador el cual no será muy útil para dumpear ciertos archivos.
Debes iniciar sesión para ver el contenido del enlace en esta publicación.
una aplicación para lograr mirar nuestros archivos .TGA que serán nuestros iconos.
Debes iniciar sesión para ver el contenido del enlace en esta publicación.
un editor de texto de su preferencia, por si acaso les dejo el que uso.
Debes iniciar sesión para ver el contenido del enlace en esta publicación.
y por ultimo, la herramienta para ver los Archivos gr2 (GrannyViewer) .
Debes iniciar sesión para ver el contenido del enlace en esta publicación.
Antes que nada sin profundizar en el tema explicare que es un archivo Gr2, que son las texturas y nuestro icono.
Archivo Gr2:
El archivo Gr2 es el modelo de nuestra armadura o arma.
las texturas:
es el archivo que permite que veamos los colores de la armadura tal y como tienen que ser; estas se pueden encontrar en 3 diferentes formatos, los cuales son: .jpg .TGA o .DDS
Icono:
Estos serán la imagen con la que ubicaremos los acc/armas/armaduras dentro del juego, se encuentran en formato TGA y van dentro del cliente.
Las armaduras se implementan por defecto en la ruta d:/ymir work/pc, que corresponde en el cliente al pc.eix y pc.epk, si son de:
Guerrero hombre
Sura hombre
Ninja mujer
Chamán mujer
Las armaduras se implementan por defecto en la ruta d:/ymir work/pc2, que corresponde en el cliente al pc.eix y pc.epk, si son de:
Guerrera mujer
Sura mujer
Ninja hombre
Chamán hombre
Según la raza hay cuatro carpetas estándar:
Bueno ahora si a lo que venimos.
Si descargaste las herramientas que se mencionaron en la guía tendremos que crear unas carpetas en la cual meteremos los archivos descomprimidos.
si ya los tienes omite este paso.
para esto ocuparemos desencriptar la carpeta root, local/local_#(es, en eu...).
Bien como hacemos esto, lo primero es ir a nuestra carpeta del cliente (Donde tengamos el "Metin"), una vez dentro tendremos que ubicar la carpeta pack, en la cual encontraremos estos archivos. si no han cambiado las claves de encriptación estas deberían ser .eix y .epk . una vez que ubiquemos estos archivos los moveremos a una carpeta donde tengan su Encriptador/Desencriptador.
Estos deberán ser 2 y están con el mismo nombre diferentes extensiones.
mover el archivo local, root e icono a su carpeta donde hayan colocado su encriptador.
desencriptar estos archivos, si no saben como funciona el encriptador les dejo una explicación en una imagen a continuación.
Debes iniciar sesión para ver el contenido del enlace en esta publicación.
Esto nos generara 3 carpetas: Root/Local/Icon.
Nos dirigiremos a la carpeta root, ahí encontraremos un archivos .MSM de nombre:
assassin_m
assassin_w
shaman_m
shaman_w
sura_m
sura_w
warrior_m
warrior_w
Abrimos todos los archivos con nuestro editor de texto, acá es donde nosotros declaramos nuestro modelo de armadura, atuendo y peinado, para que lo reconozca el juego al momento de equiparlo.
en estos archivos declaramos tanto peinados como armaduras.
Peinados:
Group HairData00
{
HairIndex 0
Model "hair/hair_1_1.gr2"
SourceSkin "hair/hair_1_1.dds"
TargetSkin "warrior_hair_01.dds"
}
Armaduras:
Group ShapeData00
{
ShapeIndex 0
Model "warrior_novice.gr2"
SourceSkin "warrior_novice_red.dds"
TargetSkin "warrior_novice_red.dds"
}
Antes de pegar, mover o editar algo, hay que revisar lo siguiente, Que el ShapeDataCount este en 999 de esta forma le decimo que solo podrá tener implementada 999 armaduras, si uno supera ese limite sin declarar en el datacount, su modelo no se vera en el juego hasta que lo modifique, el numero de armaduras implementada no debe pasar a nuestro contador.
Group ShapeData
{
PathName "d:/ymir work/pc/warrior/"
ShapeDataCount 999
Una vez que hayamos colocado esto bajaremos casi al final del documento, en donde encontremos el ultimo Group ShapeData este puede variar dependiendo del numero de armaduras implementadas.
Bueno nos situamos debajo del ultimo Group ShapeData y metemos nuestro modelo de esta forma:
Group ShapeData# ----------------># en el signo de gato deberá ir el siguiente digito, es decir si termina en Group ShapeData228 el siguiente siguiente será Group ShapeData229 y así sucesivamente.
Group ShapeData#
}
SpecialPath "d:/ymir work/pc/warrior/" ----> SpecialPath es para indicar que lo implementaremos en un archivo especial.
ShapeIndex 41774 ---------------------------->El shape index será el numero en el cual se guardara la textura. debe ser el mismo del vnum para evitar problemas.
Model "warrior_aoh_blue.gr2"----------------> nuestro modelo de armadura
SourceSkin "warrior_aoh_blue.dds"
TargetSkin "warrior_aoh_blue.dds"
}
Esto lo haremos en cada documento .MSM de la carpeta root lo único que cambiara será la ruta del specialpath y posiblemente el nombre del modelo esto depende.
"d:/ymir work/pc/warrior/" Hombre
"d:/ymir work/pc2/warrior/" Mujer
"d:/ymir work/pc/sura/" Hombre
"d:/ymir work/pc2/sura/" Mujer
"d:/ymir work/pc2/assassin/" Hombre
"d:/ymir work/pc/assassin/" Mujer
"d:/ymir work/pc2/shaman/" Hombre
"d:/ymir work/pc/shaman/" Mujer.
Una vez que hayamos terminado de colocar los modelos en cada .MSM
nos pasamos a la parte del servidor, en donde iremos a la parte en donde tendremos nuestro item proto e item name, en estos documentos pondremos los vnum de las armaduras que se implementaron. para esto tenemos que revisar que los vnum que se hayan a colocar no existan en EL ITEM_PROTO, si ya existen tendremos que buscar otro numero que no exista y cambiarlo tanto en el item_proto como en los archivos .MSM a continuación les dejare las líneas para implementarlos a la item_proto, en este caso se podrá implementar de 2 formas, como atuendo o como armadura
Linea para atuendo:
41774 Atuendo Dragon Azul(M) ITEM_COSTUME COSTUME_BODY 2 ANTI_FEMALE | ANTI_DROP | ANTI_SELL | ANTI_GIVE | ANTI_STACK | ANTI_MYSHOP NONE NONE NONE 0 0 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_MAX_HP 2000 APPLY_ATTBONUS_MONSTER 10 APPLY_NONE 0 5 0 0 41774 0 0 0 0 0.
Linea para armadura:
41774 Armadura Dragon Azul(M) ITEM_ARMOR ARMOR_BODY 2 ANTI_FEMALE | ANTI_DROP | ANTI_SELL | ANTI_GIVE | ANTI_STACK | ANTI_MYSHOP NONE NONE NONE 0 0 0 0 0 LIMIT_NONE 0 LIMIT_NONE 0 APPLY_MAX_HP 2000 APPLY_ATTBONUS_MONSTER 10 APPLY_NONE 0 5 0 0 41774 0 0 0 0 0.
Si implementaron muchas armaduras, solo cambien el vnum.
Nota: OJO Tienen que hacer que el ShapeIndex de su armadura coincida con el Value 3 ya que este es el que nos toma las texturas, como pueden notar en la linea el vnum y el value 3 se repiten.
Ya que terminemos con el item_proto, nos pasamos al item_name, en donde usaremos los vnum que utilizamos para las armaduras y le asignaremos un nombre de esta forma:
#Vnum Nombre
guardamos los documentos y tiramos reboot.
descargaremos los documentos item_proto e item_name del winscp en nuestra pc.
Una vez que tengamos los 2 documentos descargados, moveremos los dos archivos a la carpeta donde pusimos nuestro dumpeado (Dumproto) y ejecutamos ya sea el archivo dumproto o dumproto_pack, los dos funcionan igual, esto nos dará un tercer archivo llamado item_proto.
Bien una vez que tengamos nuestro tercer archivo nos dirigiremos a la carpeta donde tengamos nuestra carpeta local desencriptada la abrimos y seguimos esta dirección \locale\locale\es (En mi caso en su caso puede variar el nombre de la ultima carpeta) Ya dentro de la ultima carpeta pegaremos el archivo item_proto generado por el dumproto directamente, nos pedirá remplazar el anterior y damos en si, si no les aparece es por que están en el lugar equivocado.
En este mismo sitio abriremos el archivo item_list en el cual declararemos nuestros iconos de la siguiente forma:
Vnum ARMOR icon/item/Nombre del icono.TGA
Esto es opcional en caso que no se muestren los iconos : una vez declarado el icono el item_list iremos a la carpeta icono que desencriptamos y nos iremos a la siguiente ubicación. \icon\icon\item y pegaremos nuestros iconos.
ya que hagamos esto creamos 1 carpeta(le colocan el nombre que quieran). dentro de esta carpeta crearemos 2 carpetas una la nombramos icon dentro de esta colocaremos una carpeta llamada item en la cual meteremos los iconos. y en la segunda carpeta la nombramos ymir work en la cual meteremos la carpeta pc y pc2 que contengan nuestros modelos gr2.
para que se efectuen los cambios tanto en el cliente como en el servidor tendremos que encriptar de nuevo la carpeta local, root, icon y la nueva carpeta que crearon, para esto nos generara 8 documentos .eix .epk una vez encriptadas vamos a la carpeta del cliente, nos ubicamos en la carpeta pack y los remplazamos por los que estén ahí.
una vez que metamos los archivos en la carpeta pack buscamos un documento llamado Index en esta misma nos colocamos al final del documento y colocamos el nombre de su documento generado por la carpeta que crearon y le colocan un asterisco abajo.
Entran al cliente y ponen el comando /i vnum de sus armaduras implementaron...
Espero que les sea de ayuda, en caso de que algo no les quede claro pueden mandarme mensaje y los podría ayudar con gusto, que pasen un excelente día!
El pack incluye:
- Cliente
- Source code cliente
- Source code server
- Server files (quests, mapas, cores, etc.)
Son unos server bastante estables y equilibrados, probados con más de 500 usuarios online al mismo tiempo sin problemas de lag o caídas.
Sin bugs.
Actualmente el servidor se encuentra online y podéis probarlo en Debes iniciar sesión para ver el contenido del enlace en esta publicación.
También le podéis echar un ojo a la presentación si queréis ver lo que incluyen: Presentación
Descripción y sistemas:
- Base estable, equilibrada y testeada con cientos de usuarios online.
- Cabos y flechas infinitas
- Instant equip
- Special Storage
- Diálogo destruir objetos
- MP al hacer click en nombre
- Target information
- Shop offline + WON (versión única sin bugs)
- Cambiar CH (versión única sin bugs)
- Pet system
- Inventory slot marking + exchange system
- Rocios en affect bar
- Revivir full hp
- Block/unblock exp
- Estolas
- Biólogo profesional
- Sistema de brillos
- Party buff
- Un jugador por IP en mapas indicados
- Revive event para quests
- Limite de yang 999.999.999.999
- Dungeon info
- Transfiguración
- Dar MDs a todos los player de un imperio en un mapa.
- Dungeons únicas: (Aryas dungeon, Cueva Slime, Bosque Celestial...)
- Dungeons normales: (Nemere, Arrador, Azrael, Torre...)
- Eventos: (Budokan, guerra de reinos, defiende tu metin, sayon, guerra total, evento de caza, trueque sorpresa...)
- Atuendos de armas y armaduras únicos
- Y mucho más... revisa presentación o descarga el servidor.
Server File: Debes iniciar sesión para ver el contenido del enlace en esta publicación. (Elimine base de datos y estan limpios)
WEB programada en Python: Debes iniciar sesión para ver el contenido del enlace en esta publicación.
Puedes revisar el funcionamiento de esta en www.metin2rage.com
Chicos les dejo esta web que me encontré espero que les sirva a mi parecer esta muy linda
Demo Online:Debes iniciar sesión para ver el contenido del enlace en esta publicación.
Descargar: Debes iniciar sesión para ver el contenido del enlace en esta publicación.