Jump to content

Buscar en la comunidad

Mostrando resultados para las etiquetas 'c++'.

  • Buscar por etiquetas

    Escribe las etiquetas separadas por comas.
  • Buscar por autor

Tipo de contenido


Foros

  • Metin2 Zone
    • Comunidad
    • Presentaciones y despedidas
  • Servidores Privados
    • Presentaciones de Servidores
    • Presentación de Proyectos
  • General
    • Discusiones generales
    • Socios y Colaboraciones
    • Servicios y compraventa
    • Ayudas y preguntas
    • Opiniones y consejos
    • Offtopic
  • Técnica
    • Programación
    • Edición de servidores Metin2
    • Desarrollo Web
    • Seguridad
    • Sistemas Operativos
    • Informática
  • Arte
    • Diseño y sección gráfica
    • Galería de imágenes y vídeos
    • Modelado 3D
    • Mapping
  • Descargas
    • Servidores y Clientes
    • Modelos 3D
    • Imágenes Metin2
    • Mapas
    • Traducciones
  • Archivo
    • Servidores Offline
    • Temas Links Caidos

Encontrar resultados en...

Encontrar resultados que...


Fecha creación

  • Inicio

    Fin


Última actualización

  • Inicio

    Fin


Filtrar por número de...

Ingreso

  • Inicio

    Fin


Grupo


Email


Sitio web


Jabber


Skype


Discord


Localización


Intereses

Encontrado 19 resultados

  1. Buenas a Todos/as En este sección se estará actualizando con proyectos nuevos y sistemas en venta. ***Extra Equipment Page [C++/Python]*** 15/05/2022 ***BlackJack [C++/Python]*** 12/04/2022 ***Flower Event [C++/Python]*** 23/02/2022 ***Fast Equip [C++/Python]*** 10/11/2021 ***SwitchBot [C++/Python]*** 27/03/2021 ***Elemental Spell [C++/Python]*** 26/08/2020 ***Stone (Add - Change - Transfer) [C++/Python]*** 05/06/2020 ***Bonus 6&7 [C++/Python]*** 30/04/2020 ***Multi Refine [C++/Python]*** 16/01/2020 ***Cube Renewal [C++/Python]*** 27/09/2019 ***Search Drop Item[C++/Python]*** 25/08/2019 ***Change Bonus Alchemy [C++/Python]*** 20/04/2019 ***Hide Costume Final Version [C++/Python]*** 25/10/2018 ***Emotions V0.1 [C++/Python]*** 04/10/2018 ***MailBox v0.1 [C++/Lua/Python]*** 21/05/2018 ***Use System v0.1 [C++/Lua/Python]*** 07/12/2017 ***Gaya System v0.1 [C++/Lua/Python]*** 06/07/2017 ***GiftsCode V0.1 [C++/Python]*** 11/04/2017 ***Change Bonus V0.1 [C++/Python]*** 16/02/2017 ***Search Chest [C++/Python]*** 31/01/2017 ***Search Shop [C++/Python]*** 23/11/2016 ***Tienda Decoracion [C++/Python]*** 28/10/2016 ***Interfaz Illumina [Python]*** 01/03/2016 PD: *La instalacion de cualquier sistema mencionado aqui es totalmente gratis. *El arreglo de cualquier bug o problema que tenga dicho sistema .Se fixea sin ningun costo. *Se realizan trabajos a pedidos ya sea en c++/python/lua. Precio por skype: felipe.ardila8
  2. Buenas, como sabréis llevo un tiempo sin actividad, dado por varios motivos familiares, personales, etc, y bueno me he animado después de un tiempo a volver a Metin, se que la guía esta existe por todas partes, pero está mal, o faltan cosas, o explicado a medias etc, yo lo tengo adaptado con 4 Piedras, pero he hecho la guía para que podáis usar 6 piedras, con esta guía orientativa podéis usar 6 piedras, 4, 12 o las que queráis, e imagino que sirve para poner solo 1 o 2 piedras si lo hacemos a la inversa, en fin, empecemos. 1.Vamos a nuestro source y nos dirigimos a editar el archivo "item_length.h", una vez abierto buscamos: 1.1 Ahora remplazamos por la cantidad de piedras que queráis (guía para 6 piedras) 2.Ahora Editamos el archivo "Constants.cpp", y buscamos lo siguiente: 2.1 Ahora lo remplazamos por lo siguiente: 2.2 Ahora buscamos: 2.3 Y remplazamos por: #Nota: Si no tienes wolfman solo borra la línea o coméntala con // 3.Ahora nos vamos al source DB, mas concretamente al archivo "Cache.cpp" y buscamos: #Nota: Puede ser un poco diferente al vuestro, si no encontráis nada buscar "socket0, socket1" o "socket0 , socket1" 3.1 Remplazamos por: #Nota2: Si no queremos remplazar nada porque tenemos otro sistema, simplemente podéis añadir a continuación de "socket2" los demás, es decir socket2, socket3, socket4, socket5"); (tranquil@s no esta mal ni falta un socket6) 4.Ahora vamos al archivo "ClientManagerPlayer.cpp" y buscamos: 4.1 A continuación de este, añadiremos lo siguiente: 4.2 Ahora buscamos x2: #Nota: esto se realiza 2 veces, si no encontramos nada, probar a buscar "Select id" y lo veréis enseguida. 4.3 Ahora remplazamos por: #Nota2: Como antes, si tenéis algún sistema y no queréis remplazar solo añadir "socket3,socket4,socket5" después del "socket2," 4.4 Buscamos el siguiente y repetimos el proceso. 5.Ahora nos vamos al Source Cliente ->GameLib->ItemData.h y buscamos: 5.1 Remplazamos por: 6.Ahora vamos a UserInterface->PythonPlayerModule.cpp y buscamos la función: 6.1 Remplazamos por: 7.Ahora abrimos el archivo "PythonChatModule.cpp" y buscamos: 7.1 Remplazamos la función por: 8.Compilamos binario/source game & db 9.Ahora tenemos que editar nuestro dump_proto, asi que lo abrimos y editamos el archivo "dump_proto.cpp" y buscamos: 9.1 Remplazamos por : 10.Nos vamos a nuestro cliente, descompilamos el root y editamos el archivo "uiToolTip.py" y buscamos: 10.1 Remplazamos la función por: #Nota: en caso que no podamos modificarlo por otro sistema o el motivo que sea, debemos editar esta 2 partes: por: #Update 1.1 11.Vamos a nuestro Source DB y abrimos el archivo ClientManager.cpp y buscamos: en esta función un poco más abajo añadimos lo siguiente (junto a las demás): 11.2.Ahora buscamos otra vez: Y un poco más abajo añadimos junto a las demás lo siguiente: 11.3.Un poco más abajo veremos lo siguiente: Pues lo remplazamos por lo siguiente (si no quieres remplazar solo añade %ld, %ld, %ld, %ld): 11.4.Y un poco más abajo veremos: Para terminar añadimos: 12.Vamos a nuestro source Binario y abrimos el archivo GameType.h y buscamos: Remplazamos por: 13.Una vez hayamos remplazado el nuevo Game, DB, .exe, compilado el root y compilado dump_proto, dumpeamos los locales, es decir, ponemos nuestros item_proto.txt e item_names.txt en el nuevo dump_proto y generamos los archivos para el locale, compilamos locale, hacemos reboot y a jugar. Imagen propia: Varios puntos a destacar: 1.Tienes que adaptarlo a tu Offline Shop ya que tendrás los sockets básicos Socket0 1 y 2, tendrás que añadir más en función de los que tengas. 2.No se cuantas piedras son el máximo que puedes añadir, 6 es seguro, pero 7,8,9,10 o + quizás te ocasionen bugs. 3.Si tienes otros sistemas que utilizen casillas con sockets, como Offline Shop, almacén especial, etc tendrás que adaptarlo o tendrás problemas, 4.A disfrutar y un saludo.
  3. Buenas gente ya hace un tiempo no comparto nada, mientras trabajaba una base totalmente limpia me puse a la tarea de buscar el give basic weapon por source pero lamentablemente no lo encontré en ni un lado así que me di a la tarea de extraerlo de mi servidor e implementarlo a la base nueva, a mi me funciono sin ningún tipo de problema así que sera lo mismo para ustedes si siguen correctamente los pasos. DE QUE VA EL GIVE BASIC WEAPON POR SOURSE? DE AL INICIAR UN PJ NUEVO SE TE DA TU ARMA, ARMADURA Y ACCESORIOS YA PUESTOS Y CON BONUS YA AÑADIDOS, ADEMAS ES PARA TODAS LAS RAZAS INCLUYENDO AL LICANO. ESTE ES EL CÓDIGO SOURCE PARA EL SERVIDOR, PUEDEN MODIFICAR LOS BONUS QUE APARECERAN EN CADA ACCESORIO A SU GUSTO, AHORA SOLO SIGAN LAS INSTRUCCIONES. //service.h añadir #define ENABLE_GIVE_BASIC_WEAPON //char.cpp buscar void CHARACTER::SetEmpire(BYTE bEmpire) y pegar antes: #ifdef ENABLE_GIVE_BASIC_WEAPON void CHARACTER::addbonus(LPCHARACTER ch) { BYTE job = ch->GetJob(); LPITEM item; switch (job) { case JOB_WARRIOR: case JOB_ASSASSIN: case JOB_SURA: case JOB_SHAMAN: case JOB_WOLFMAN: { // -- bonus de casco item = ch->GetWear(WEAR_HEAD); if (item != NULL) { item->ClearAttribute(); item->SetForceAttribute( 0, APPLY_ATTBONUS_UNDEAD, 20); item->SetForceAttribute( 1, APPLY_ATTBONUS_ANIMAL, 20); item->SetForceAttribute( 2, APPLY_ATTBONUS_ORC, 20); item->SetForceAttribute( 3, APPLY_ATTBONUS_MILGYO, 20); item->SetForceAttribute( 4, APPLY_ATTBONUS_DEVIL, 20); } // -- bonus de arma item = ch->GetWear(WEAR_WEAPON); if (item != NULL) { item->ClearAttribute(); item->SetForceAttribute( 0, APPLY_STR, 12); item->SetForceAttribute( 1, APPLY_CRITICAL_PCT, 10); item->SetForceAttribute( 2, APPLY_ATTBONUS_UNDEAD, 20); item->SetForceAttribute( 3, APPLY_ATTBONUS_ANIMAL, 20); item->SetForceAttribute( 4, APPLY_ATTBONUS_ORC, 20); } // -- bonus de escudo item = ch->GetWear(WEAR_SHIELD); if (item != NULL) { item->ClearAttribute(); item->SetForceAttribute( 0, APPLY_STR, 12); item->SetForceAttribute( 1, APPLY_IMMUNE_STUN, 1); item->SetForceAttribute( 2, APPLY_BLOCK, 15); item->SetForceAttribute( 3, APPLY_GOLD_DOUBLE_BONUS, 20); item->SetForceAttribute( 4, APPLY_EXP_DOUBLE_BONUS, 20); } // -- bonus de armadura item = ch->GetWear(WEAR_BODY); if (item != NULL) { item->ClearAttribute(); item->SetForceAttribute( 0, APPLY_MAX_HP, 2000); item->SetForceAttribute( 1, APPLY_RESIST_BOW, 15); item->SetForceAttribute( 2, APPLY_RESIST_FIRE, 15); item->SetForceAttribute( 3, APPLY_RESIST_MAGIC, 15); item->SetForceAttribute( 4, APPLY_ATT_GRADE_BONUS, 50); } // -- bonus de zapato item = ch->GetWear(WEAR_FOOTS); if (item != NULL) { item->ClearAttribute(); item->SetForceAttribute( 0, APPLY_MAX_HP, 2000); item->SetForceAttribute( 1, APPLY_CRITICAL_PCT, 10); item->SetForceAttribute( 2, APPLY_GOLD_DOUBLE_BONUS, 20); item->SetForceAttribute( 3, APPLY_EXP_DOUBLE_BONUS, 20); item->SetForceAttribute( 4, APPLY_RESIST_BOW, 15); } // -- bonus de brazalete item = ch->GetWear(WEAR_WRIST); if (item != NULL) { item->ClearAttribute(); item->SetForceAttribute( 0, APPLY_MAX_HP, 2000); item->SetForceAttribute( 1, APPLY_PENETRATE_PCT, 10); item->SetForceAttribute( 2, APPLY_ITEM_DROP_BONUS, 20); item->SetForceAttribute( 3, APPLY_ATTBONUS_ORC, 20); item->SetForceAttribute( 4, APPLY_RESIST_MAGIC, 15); } // -- bonus de collar item = ch->GetWear(WEAR_NECK); if (item != NULL) { item->ClearAttribute(); item->SetForceAttribute( 0, APPLY_MAX_HP, 2000); item->SetForceAttribute( 1, APPLY_CRITICAL_PCT, 10); item->SetForceAttribute( 2, APPLY_GOLD_DOUBLE_BONUS, 20); item->SetForceAttribute( 3, APPLY_EXP_DOUBLE_BONUS, 20); item->SetForceAttribute( 4, APPLY_RESIST_BOW, 15); } // -- bonus de pendiente item = ch->GetWear(WEAR_EAR); if (item != NULL) { item->ClearAttribute(); item->SetForceAttribute( 0, APPLY_ATTBONUS_UNDEAD, 20); item->SetForceAttribute( 1, APPLY_ATTBONUS_ORC, 20); item->SetForceAttribute( 2, APPLY_ATTBONUS_ANIMAL, 20); item->SetForceAttribute( 3, APPLY_RESIST_BOW, 15); item->SetForceAttribute( 4, APPLY_ITEM_DROP_BONUS, 20); } } break; } ch->ComputePoints(); ch->PointChange(POINT_HP, ch->GetMaxHP() - ch->GetHP()); ch->PointChange(POINT_SP, ch->GetMaxSP() - ch->GetSP()); ch->Save(); } void CHARACTER::additems(LPCHARACTER ch) { BYTE job = ch->GetJob(); LPITEM item; for (int i = 0; i < 6; i++) { item = ch->GetWear(i); if (item != NULL) ch->UnequipItem(item); } item = ch->GetWear(WEAR_SHIELD); if (item != NULL) ch->UnequipItem(item); switch (job) { //sura case JOB_SURA: { item = ITEM_MANAGER::instance().CreateItem(19 ); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); item = ITEM_MANAGER::instance().CreateItem(11609 ); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); item = ITEM_MANAGER::instance().CreateItem(12489 ); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); item = ITEM_MANAGER::instance().CreateItem(13009); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); item = ITEM_MANAGER::instance().CreateItem(14009 ); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); item = ITEM_MANAGER::instance().CreateItem(15009 ); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); item = ITEM_MANAGER::instance().CreateItem(16009 ); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); item = ITEM_MANAGER::instance().CreateItem(17009 ); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); } break; //guerrero case JOB_WARRIOR: { item = ITEM_MANAGER::instance().CreateItem(19 ); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); item = ITEM_MANAGER::instance().CreateItem(11209 ); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); item = ITEM_MANAGER::instance().CreateItem(12209 ); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); item = ITEM_MANAGER::instance().CreateItem(13009 ); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); item = ITEM_MANAGER::instance().CreateItem(14009 ); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); item = ITEM_MANAGER::instance().CreateItem(15009 ); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); item = ITEM_MANAGER::instance().CreateItem(16009 ); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); item = ITEM_MANAGER::instance().CreateItem(17009 ); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); } break; //chaman case JOB_SHAMAN: { item = ITEM_MANAGER::instance().CreateItem(7009 ); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); item = ITEM_MANAGER::instance().CreateItem(11809 ); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); item = ITEM_MANAGER::instance().CreateItem(12629 ); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); item = ITEM_MANAGER::instance().CreateItem(13009 ); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); item = ITEM_MANAGER::instance().CreateItem(14009 ); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); item = ITEM_MANAGER::instance().CreateItem(15009 ); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); item = ITEM_MANAGER::instance().CreateItem(16009 ); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); item = ITEM_MANAGER::instance().CreateItem(17009 ); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); } break; //ninja case JOB_ASSASSIN: { item = ITEM_MANAGER::instance().CreateItem(19 ); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); item = ITEM_MANAGER::instance().CreateItem(11409 ); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); item = ITEM_MANAGER::instance().CreateItem(12349 ); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); item = ITEM_MANAGER::instance().CreateItem(13009 ); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); item = ITEM_MANAGER::instance().CreateItem(14009 ); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); item = ITEM_MANAGER::instance().CreateItem(15009 ); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); item = ITEM_MANAGER::instance().CreateItem(16009 ); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); item = ITEM_MANAGER::instance().CreateItem(17009 ); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); } break; //licano case JOB_WOLFMAN: { item = ITEM_MANAGER::instance().CreateItem(6009); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); item = ITEM_MANAGER::instance().CreateItem(21009); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); item = ITEM_MANAGER::instance().CreateItem(21509 ); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); item = ITEM_MANAGER::instance().CreateItem(13009 ); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); item = ITEM_MANAGER::instance().CreateItem(14009 ); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); item = ITEM_MANAGER::instance().CreateItem(15009 ); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); item = ITEM_MANAGER::instance().CreateItem(16009 ); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); item = ITEM_MANAGER::instance().CreateItem(17009 ); if (!item || !item->EquipTo(ch, item->FindEquipCell(ch))) M2_DESTROY_ITEM(item); } break; } } #endif //char.h buscar BYTE GetGMLevel() const; y pegar antes de esa linea entre void SetLevel(BYTE level); #ifdef ENABLE_GIVE_BASIC_WEAPON void addbonus(LPCHARACTER ch); void additems(LPCHARACTER ch); #endif //questlua_pc.cpp buscar esta casi al inicio y pegar despues de: namespace quest { // // "pc" Lua functions // #ifdef ENABLE_GIVE_BASIC_WEAPON int pc_addbonus(lua_State* L) { LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); if(ch) ch->addbonus(ch); return 0; } int pc_additems(lua_State* L) { LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); if(ch) ch->additems(ch); return 0; } #endif // y buscar { NULL, NULL } y pegar antes #ifdef ENABLE_GIVE_BASIC_WEAPON {"addbonus", pc_addbonus }, {"additems", pc_additems }, #endif ESTE ES LA QUEST NECESARIA PARA QUE FUNCIONE CORRECTAMENTE, NO CREO NECESARIO ENSEÑARLES A METER UNA QUEST SI ES ASÍ OLVIDA LO DE METER EL SOURCE XD quest give_basic_weapon begin state start begin when login with pc.getqf("login_weapon") == 0 begin function character() local character = {'Warrior ','Ninja ','Sura ','Shaman ','Lycan '} return character[pc.get_job()+1] end function empire_list() local empire_list = {'Shinsoo','Chunjo','Jinno'} return empire_list[pc.get_empire()] end function gender() local gender = {'male','female'} return gender[pc.get_sex()+1] end pc.change_gold(500000) --Yang que regalas al inicio say("") say("") say("") say("") say_item_vnum(50187) --Con esto solo te dice la quest que recibiste cofre de aprendiz pc.give_item2("50187",1) --Cofre de Aprendiz Lv1 pc . additems( ) pc . addbonus( ) horse.advance() horse.advance() horse.advance() horse.advance() horse.advance() horse.advance() horse.advance() horse.advance() horse.advance() horse.advance() horse.advance() horse.advance() horse.advance() horse.advance() horse.advance() horse.advance() horse.advance() horse.advance() horse.advance() horse.advance() horse.advance() horse.advance() horse.advance() horse.advance() horse.advance() horse.advance() horse.advance() horse.advance() horse.advance() horse.summon() horse.ride() notice_all(pc.get_name().." es un nuevo jugador en KraizySama!") set_state(__COMPLETE__) end end state __COMPLETE__ begin end end Agregar las funciones nuevas en quest_funtions en tu carpeta quest de tus files. character empire_list gender pc.addbonus pc.additems BUENO LO DE EL BAÚL DE APRENDIZ (50187) USTEDES AGREGUEN LAS COSAS QUE QUIERAN A SU GUSTO MODIFICANDO O AÑADIENDO EN SPECIAL_ITEM_GROUP.TXT EN SU SHARE/LOCALE/GERMANY O LO QUE TENGAN DE SU SERVIDOR. PRUEBAS DE QUE VA CORRECTAMENTE, DE IGUAL MANERA SIEMPRE HAGAN BACKUP CUANDO SE TRATA DE MODIFICAR SOURCE :v BUENO ESO ES TODO ESPERO LES SIRVA, SI LO COMPARTEN EN OTROS FOROS MÍNIMO DEJEN EL CREDITO EL ALEJANDO2020 COF* COF* XD OK ES TODO, INTENTARE AYUDAR SI OBTIENEN PROBLEMAS, PERO NO TENDRÍAN NINGUNO YO MISMO SEGUÍ MI PROPIA GUÍA Y ME FUE PERFECTO AL PRIMER INTENTO YA QUE NO ES NADA COMPLICADO. FELIZ NAVIDAD ATRASADA Y FELIZ AÑO NUEVO PRROS! FELIZ NAVIDAD 2021 :v y Tema Actualizado.
  4. Buenas, les traigo una guia de como agregar para que un personaje ignore las auras con menos poder en su source. PD: La guia la tenia descargada en alemán asi que no se de quien era pero la traducí a Español para que entiendan un poco mejor [DAME CLICK] Para descargar la guia.
  5. Cada grado tiene un grado IMPLEMENTOR = GA HIGH_WIZARD = SGM GOD = GM LOW_WIZARD = MOD Tendrá que modificar la parte del servidor de origen (tutorial en el archivo rar) Tendrá que modificar la parte fuente del cliente (tutorial en el archivo rar) Tendrás que modificar la parte root Será necesario modificar la parte locale Toda la información está en los archivos rar, Fuente turkmmo el autor es Suky DESCARGA :3
  6. Buenas zoneros, pues estaba buscando el sistema de inventarios de expansión y no estaba en el foro. Me he animado a compartirlo aquí también con vosotros. Vídeo del sistema: Link de descarga: Fuente metin2dev.org Espero que os sirva. ¡Saludos!
  7. Hola comunidad voy a empezar un nuevo proyecto con estos files, son files turcos que traen implementados 5ta Raza mi proyecto es hacer correr estos files para que tengamos contenido nuevo y en que trabajar de repente son viejos desde 2018 muy poco en salir, pero acá no lo e visto quiero trabajar con la 5ta raza mujer y estos files ya traen algo adelantado trae una elfa mujer y el lycan hombre tengo un pequeño bug y quiero compartirlos con ustedes para ver como los solucionamos y hagamos ciertas pruebas, tengo conocimiento en programación, pero soy nuevo en esto de desarrollo de metin2 y quiero aprender de los que saben de verdad. Aquí les dejo los files https://programas-juegos-max.blogspot.com/2020/05/files-metin2-elf-y-lycan-para-probar.html No lo e podido probar porque me sale error después de seleccionar el personaje, al cargar me dice en el syserr y si em pueden ayudar y vallamos colocando las soluciones aca se los agradecería mucho y el resto de la comunidad syserr0526 01:31:15331 :: CEffectManager::RegisterEffect - LoadScript(d:/ymir work/effect/monster2/healer/healer_effect.mse) Error0526 01:31:15331 :: CInstanceBase::RegisterEffect(eEftType=291, c_szEftAttachBone=, c_szEftName=d:/ymir work/effect/monster2/healer/healer_effect.mse, isCache=1) - Error Por el error debe ser un pack que esta mal editado o no existe sino me equivoco. para usarlos deben descargar 3 paquetes en el link de arriba los descargan, uno es el mysql y el game, el otro es el source mainline, y el binary que es el cliente, hay que compilar el mainline, ya que estos files traen protección de ip, hay que editar el char.ccp buscamos esta linea if (GetQuestFlag("online.durum") == 0) { quest::CQuestManager::instance().SetEventFlag("online",quest::CQuestManager::instance().GetEventFlag("online")+1); SetQuestFlag("online.durum",1); // lisanslama sistemi std::string lisans = "1"; // aqui editamos nuestra ip despues compilamos lisans += "9"; lisans += "2"; lisans += "."; lisans += "1"; lisans += "6"; lisans += "8"; lisans += "."; lisans += "1"; lisans += "."; lisans += "1"; lisans += "0"; lisans += "4"; std::string gelenip = ipnehaci; Para el navicat hay una cuenta que es server no tiene contraseña pero alguna razón el que las creo no le dio permisos para editar crear eliminar, eso lo solucionamos en la base de datos mysql en el navicat, entramos con ese usuario server sin contraseña, buscamos la base de datos mysql seleccionamos la tabla user, luego donde dice usuario server hay le damos todos los permisos o se crean un usuario nuevo con todos los permisos y a root le cambian la clave como deseen trabajarlo y reiniciamos, ya podemos crear los usuarios para entrar al cliente. bueno asi fue que los instale y y lo hice correr ahora estoy parado aca en el error que les dije si lo soluciono lo comparto aqui, si alguien mas lo soluciona que lo comprata aqui se lo agradecería mucho, ya que me interesa trabajar es con el código fuente y entre menos bug mejor, así podemos reusar el código fuente. para iniciarlo como todos los metines turco en usr/game/ && sh baslat.sh
  8. Hola ! Buenas hoy traigo un sistema de critico ! Abra su "game/exchange.cpp" en el archivo fuente y la búsqueda: m_pGrid = M2_NEW CGrid(4,3); Remplazar con: m_pGrid = M2_NEW CGrid(6,4); Abra "game/exchange.h" y busque: EXCHANGE_ITEM_MAX_NUM = 12 Remplazar con: EXCHANGE_ITEM_MAX_NUM = 24 Ahora puede compilar su archivo de juego. ClientSide Abra "UserInterface/PythonExchange.h" de sus archivos de origen binario y busque: EXCHANGE_ITEM_MAX_NUM = 12 Remplazar con: EXCHANGE_ITEM_MAX_NUM = 24 Ahora puede compilar su binario de cliente. Extraiga "pack/uiscript" de su Cliente y abra "exchangedialog.py", reemplace todo el contenido por: https://pastebin.com/jXZZDYsR Ahora puede comprimir su UiScript . Creditos a :SamuR
  9. Buenas, les traigo una guia de como agregar 8 bonus en sus serverfiles/cliente PD: La guia la tenia descargada en alemán asi que no se de quien era pero la traducí a Español para que entiendan un poco mejor [DAME CLICK] Para descargar la guia.
  10. https://mega.nz/#!lmygvs5r!i33nnrp36lnmrnhbmzqvs0pevpyfnxpbzpb1g62tm7y
  11. Buenas noches. Tengo un problema al compilar arroja el siguiente error: ClientManager.h:336: error: expected ',' or '...' before '*' token ClientManager.h:336: error: ISO C++ forbids declaration of 'TPacketGDCombatZoneResetRanking' with no type ClientManager.h:337: error: expected ',' or '...' before '*' token ClientManager.h:337: error: ISO C++ forbids declaration of 'TPacketGDCombatZoneSkillsCache' with no type Las declaraciones son las siguientes en ClientManager.cpp #if defined(WJ_COMBAT_ZONE) void CClientManager::CombatZoneResetRanking(const TPacketGDCombatZoneResetRanking* p) { CDBManager::instance().DirectQuery("UPDATE player.player SET combat_zone_rank = 0 WHERE combat_zone_rank > 0"); std::auto_ptr<SQLMsg> pMsg(CDBManager::instance().DirectQuery("SELECT * FROM player.combat_zone_ranking_weekly ORDER BY memberPoints DESC LIMIT 3")); if (pMsg->Get()->uiNumRows == 3) { MYSQL_ROW row; int memberRank = 1; char szQuery[512 + 1]; while ((row = mysql_fetch_row(pMsg->Get()->pSQLResult))) { sprintf(szQuery, "UPDATE player.player SET combat_zone_rank = '%d' WHERE name = '%s'", memberRank, row[0]); CDBManager::instance().DirectQuery(szQuery); memberRank++; } } else { sys_err("The giving ranking medals not was possible because not was exist 3 players on ranking weekly."); } CDBManager::instance().DirectQuery("TRUNCATE TABLE player.combat_zone_ranking_weekly"); } void CClientManager::UpdateSkillsCache(const TPacketGDCombatZoneSkillsCache* p) { char szQuery[2048 + 1]; sprintf(szQuery, "INSERT INTO player.combat_zone_skills_cache (pid, skillLevel1, skillLevel2, skillLevel3, skillLevel4, skillLevel5, skillLevel6) " "VALUES('%d', '%d', '%d', '%d', '%d', '%d', '%d') " "ON DUPLICATE KEY UPDATE skillLevel1 = '%d', skillLevel2 = '%d', skillLevel3 = '%d', skillLevel4 = '%d', skillLevel5 = '%d', skillLevel6 = '%d'", p->dwPID, p->dwSkillLevel1, p->dwSkillLevel2, p->dwSkillLevel3, p->dwSkillLevel4, p->dwSkillLevel5, p->dwSkillLevel6, p->dwSkillLevel1, p->dwSkillLevel2, p->dwSkillLevel3, p->dwSkillLevel4, p->dwSkillLevel5, p->dwSkillLevel6); CDBManager::instance().DirectQuery(szQuery); } #endif Las declaraciones son las siguientes en ClientManager.h #if defined(WJ_COMBAT_ZONE) void CombatZoneResetRanking(const TPacketGDCombatZoneResetRanking* p); void UpdateSkillsCache(const TPacketGDCombatZoneSkillsCache* p); #endif Alguno sabe de que forma va estas dos funciones? Saludos.
  12. Hola muy buenas noches, espero que todos se encuentren muy bien amigos. quiero saber en que parte puedo cambiar el % de que salga media y habilidad mas rapido :/ por favor me podrian decir donde se cambia es en soucer o binario? ¡Muchas gracias!
  13. [Cliente/Root] [binario/EterPythonLib] Imagen: Saludos!
  14. Hola, buenas tardes a todos. primero que nada, quiero aclarar que este curso es para todo aquel que tenga interés de aprender a programar, o bien, mínimo que quiera tener conocimientos básicos de programación para incorporación de sistemas, crear sus propias funciones, crear quest (aun que ya haya guías de esto), y, pues bueno, quiero aclarar que esta tendrá un "mini taller", donde pediré practicas, no con el fin de probar que saben, si no que se comprueben a ustedes mismos que saben, mínimo la idea es que lo comprendan, me he dado cuenta que últimamente la gente esta comprando muchos sistemas por "falta de conocimiento", y lo enfatizo así por que esto ya es un negocio, pero bueno. recuerden que aquí solo daré bases para que ustedes puedan hacer sus propias cosas. El curso lo haré a diario, sinceramente no sé cuantos capítulos tendrá de cada uno... y pues bueno, mañana subiré el primer capitulo de c++, pasado de python, después de lua, y por ultimo de php. Tomar en cuenta lo siguiente (No dire de donde sacarlo, eso os corresponde a vosotros mismos): En caso de c++ tener un entorno de desarrollo (visual studio o dev c++, borland, entre otros). En caso de python tener la IDE de python, o cualquier interprete donde podamos correr nuestros progrmas. En caso de lua tener su correspondiente IDE (personalmente pueden probar con metin, eso da igual.). En caso de php tener WAMP, XAMPP o cualquier motor con apache o tambien con hosting, hay muchas partes donde se puede trabajar para ver los resultados. Insisto, no lo daré orientado especialmente a metin2, pero les aseguro que comprenderan muchas cosas, como por ejemplo, los [TAB] de python porque a muchos les tira problemas al momento de instalar algo. Bueno, nos vemos, buena suerte. PD:Si alguien quiere cooperar con las guias, adelante. ++PLUS++ Enseñaré a hacer consultas a base de datos, SQL, MYSQL, MARIA, entre otros, sí es que todo sale bien y se ve interes, así como el manejo de archivos txt, por ejemplo, para darle lectura desde lua para sistemas y crear sistemas como OFLINE mensaje, etc, aunque hay muchisimas ideas. Bueno, hasta luego.
  15. Hola amigos aquí les dejo una forma o maneras sencillas de compilar en varios lenguajes, espero a alguien le sirva. https://youtu.be/FdcAxYat_ZE
  16. este codigo lo cree ya hace unos meses atras por distraerme y su funcion es voltear totalmente un texto 100% al revez ejemplo: dracula => alucard #include<cstdio>main(){int i,co;char asd[1000000],a;i=0;printf("escribe aqui: n");while(asd[i]!='n'){ i++; scanf("%c",&asd[i]);}co=i;co--;printf("la palabra al revez es: n");while(co>0){i--; printf("%c",asd[i]); co--;}return 0;}
  17. Bueno esta guía ya es un poco mas complicada. Por defecto el rango maximo que se puede tener es 20k, y con el limitador del dato son 32,767 Lo que es aumentar el rank máximo es muy fácil. Ya en otra guía pondré como añadir mas rangos. Buscamos en char_battle.cpp, 200000 equivale a (20000) en el juego. Sin cambiar el tipo de dato lo máximo como he dicho antes es 32,767. m_iRealAlignment = MINMAX(-200000, m_iRealAlignment + iAmount, 200000); Buscamos ahora en char_item.cpp. if (GetAlignment() == 200000) Aquí pones el numero que has puesto antes, esto es para el item que te da el rank mas rápido. Bueno debajo de Getalignment también te aparecerán mas "200000" los cambias igual. Hasta aquí sería tocando todo sin cambiar el tipo de datos y sin necesidad de tocar el binario. Quitando el limitador, por ejemplo vamos a usar un int. Lo máximo sería 2.147.483.647 si no me equivoco. Seguimos en la parte del server. Buscamos todos los salignment en packet.h y los cambiamos por int. short sAlignment; Ahora la parte del binario buscamos todos los: sAlignment y también m_sAlignment y los cambiamos por int. Los archivos en los que estan son: NetworkActorManager.h,InstanceBase.h,Packet.h,InstanceBase.cpp. Y ya esta con eso podríamos aumentarlo hasta 2.147.483.647 si quieres mas puedes usar otro tipo de dato. En la db también tenemos que editar la tabla player, y cambiar el aliegnment por int. Si se me pasa algo o me equivoco que alguien me corrija.
  18. Sesiones 1-3 > https://mega.co.nz/#!DdsUiILA!RG4BOBvldGPO6tbLsOAVkUYhekEsIoEesOF1g8oWhHo
×
×
  • Crear nuevo...