𝗔𝗿𝗲𝘀 Publicado 9 de Octubre del 2022 Reportar Compartir Publicado 9 de Octubre del 2022 Buenas noches zoneros y zoneras: 1-.Coward en los NPC -.Hace unos días estuve investigando de como hacer que un npc salga a correr como los tanakas "Osea que la opcion COWARD en el navicat tambien sea funcional para npc". -.Despues de estar mirando por un rato el codigo encontre la solucion y hoy os la vengo a compartir con ustedes en caso de que quieran usarla. Bueno para ello debemos de abrir nuestro archivo "Char_state.cpp" de nuestro source game y hacer lo siguiente: 1-.Buscamos en el archivo la siguiente linea void CHARACTER::__StateIdle_NPC() 2-.Dentro de ella buscamos lo siguiente: else if (IsGuardNPC()) 3-.Despues agregamos la siguiente linea encima- #ifdef ENABLE_COWARD_NPC if (IsCoward()) { if (!IsDead()) CowardEscape(); return; } #endif [Informacion]Pero antes de nada debeis de asegurar que las definiciones del sistema de mascotas o monturas que tengais instalado [Informacion]Queden por encima de la nueva linea que agregais ya que si queda por debajo cuando invoqueis la montura o el pet con el sello saldra corriendo. Ejemplo: #ifdef ENABLE_MOUNT_COSTUME_SYSTEM if (IsMount()) return; #endif // 펫 시스템의 Idle 처리는 기존 거의 모든 종류의 캐릭터들이 공유해서 사용하는 상태머신이 아닌 CPetActor::Update에서 처리함. #ifdef __NEWPET_SYSTEM__ if (IsPet() || IsNewPet()) #else if (IsPet()) #endif return; #ifdef ENABLE_COWARD_NPC if (IsCoward()) { if (!IsDead()) CowardEscape(); return; } #endif else if (IsGuardNPC()) [Informacion]Si os dais cuenta las que son del sistema de pets y monturas van antes que la que hemos agregado. Una vez realizado guardan el archivo y abren el "CommonDefine.h" y agregan el siguiente define #define ENABLE_COWARD_NPC 6-. Cuando realize todos los cambios solamente basta conque en la tabla del mob_proto en la parte donde dice ai_flag, pongan la opcion de COWARD. Una vez realizado todo lo anterior guardan los cambios y compilan. Si lo hicieron tal cual les puse no deberian de tener problema a la hora de compilar. 2-. 1 de daño a un mob en especifico Bueno ahora os voy a explicar como hacer que solamente le peguen 1 de daño a un mob que ustedes asignen "Incluso haciendo habilidades" Para ello abrimos nuestro archivo "char_battle.cpp" del src game y hacemos lo siguiente 1-.Abren su archivo char_battle.cpp y buscan lo siguiente bool CHARACTER::Damage 2-. Dentro de esta clase buscan la siguientes lineas float damMul = this->GetDamMul(); float tempDam = dam; dam = tempDam * damMul + 0.5f; 3-Debajo agregan lo siguiente #ifdef DAMAGE_CODE if (GetRaceNum() == 8510) { dam = 1; damageFlag == DAMAGE_NORMAL; } #endif 4-. Donde dice 8510 agregan el vnum del mob que quieren que le saquen 1 de daño, y donde dice dam = 1; pueden editar si quieren que saque 1 o 10 o el numero que le asignen 5-. Guardan el archivo y agregan el define al archivo "CommonDefine.h" #define DAMAGE_CODE Espero que este aporte les sirva de algo. TrafalgarLaw y josepiti1 reacciono a esto 2 Citar Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
Mensajes recomendados
Unirse a la conversación
Puedes publicar ahora y registrarte más tarde. Si tienes una cuenta, regístrate para publicar con su cuenta.