Pegasus Posted October 9, 2022 Report Share Posted October 9, 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 and josepiti1 2 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.