Kenshi Torres Publicado 13 de Julio del 2021 Reportar Compartir Publicado 13 de Julio del 2021 Server/game/src/skill.h se abre y se busca; Quote SKILL_FLAG_FIRE = (1 << 26), agrega abajo Quote SKILL_FLAG_PARTY = (1 << 27), char_skill.cpp se abre y busca; Quote SKILL_RESIST_PENETRATE agrega este codigo debajo de: SKILL_RESIST_PENETRATE }; struct FPartyPIDCollector { std::vector <DWORD> vecPIDs; FPartyPIDCollector() { } void operator () (LPCHARACTER ch) { vecPIDs.push_back(ch->GetPlayerID()); } }; Buscar en el mismo archivo; if (IS_SET(pkSk->dwFlag, SKILL_FLAG_SELFONLY)) pkVictim = this; El siguiente codigo se agrega a continuación: if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY) && !GetParty() && !pkVictim) pkVictim = this; Buscar en el mismo archivo; if (IS_SET(pkSk->dwFlag, SKILL_FLAG_SELFONLY)) pkVictim = this; agrega a continuación: if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY) && !GetParty() && !pkVictim) pkVictim = this; Buscar en el mismo archivo; if (IS_SET(pkSk->dwFlag, SKILL_FLAG_SELFONLY)) ComputeSkill(dwVnum, this); else if (!IS_SET(pkSk->dwFlag, SKILL_FLAG_ATTACK)) ComputeSkill(dwVnum, pkVictim); else if (dwVnum == SKILL_BYEURAK) ComputeSkill(dwVnum, pkVictim); else if (dwVnum == SKILL_MUYEONG || pkSk->IsChargeSkill()) ComputeSkill(dwVnum, pkVictim); m_dwLastSkillTime = get_dword_time(); return true; } remplaza por los siguientes códigos: if (IS_SET(pkSk->dwFlag, SKILL_FLAG_SELFONLY)) ComputeSkill(dwVnum, this); else if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY) && !GetParty() && !pkVictim) ComputeSkill(dwVnum, this); else if (IS_SET(pkSk->dwFlag, SKILL_FLAG_PARTY) && GetParty()) { FPartyPIDCollector f; GetParty()->ForEachOnMapMember(f, GetMapIndex()); for (std::vector <DWORD>::iterator it = f.vecPIDs.begin(); it != f.vecPIDs.end(); it++) { LPCHARACTER ch = CHARACTER_MANAGER::instance().FindByPID(*it); ComputeSkill(dwVnum, ch); } } else if (!IS_SET(pkSk->dwFlag, SKILL_FLAG_ATTACK)) ComputeSkill(dwVnum, pkVictim); else if (dwVnum == SKILL_BYEURAK) ComputeSkill(dwVnum, pkVictim); else if (dwVnum == SKILL_MUYEONG || pkSk->IsChargeSkill()) ComputeSkill(dwVnum, pkVictim); m_dwLastSkillTime = get_dword_time(); return true; } guild.cpp se abre y se busca; if ((pkSk->dwFlag & SKILL_FLAG_SELFONLY)) { // 이미 걸려 있으므로 사용하지 않음. if (ch->FindAffect(pkSk->dwVnum)) return; victim = ch; } El siguiente codigo se agrega a continuación: if ((pkSk->dwFlag & SKILL_FLAG_PARTY)) { if (ch->FindAffect(pkSk->dwVnum)) return; victim = ch; } abre en Navicat; Navicat => Player => skill_proto =haga clic con el botón derecho en > y diga " Table design". Llegamos al "setFlag" st y añadimos el valor "PARTY" al final. Después de agregar este valor, presionamos el botón "OK" y lo grabamos. Luego ingresamos skil_proto con el clic izquierdo y agregamos los valores de los ids " dwVnum" a continuación en la columna "setFlag". Agregamos el valor "PARTY" a los valores 94, 95, 96, 109, 110 y 111 dwVnum No leas o eres Puto reacciono a esto 1 Citar Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
SuperGamix Publicado 13 de Julio del 2021 Reportar Compartir Publicado 13 de Julio del 2021 tu lo probaste? Edito: No lo he probado, pero ponerle return 0 a esas funciones no significa simplemente borrar todo y ponerle pass o continue? XD Citar Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
Enju Publicado 14 de Julio del 2021 Reportar Compartir Publicado 14 de Julio del 2021 hace 3 horas, SuperGamix dijo: tu lo probaste? Edito: No lo he probado, pero ponerle return 0 a esas funciones no significa simplemente borrar todo y ponerle pass o continue? XD Es un meme de otro foro. Citar Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
SuperGamix Publicado 14 de Julio del 2021 Reportar Compartir Publicado 14 de Julio del 2021 hace 5 minutos, Enju dijo: Es un meme de otro foro. Seh, esa es la otra razón por la cual le pregunté si lo probó xd Citar Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
【ℛ-𝓝】ℛ𝔂𝓼𝒆 Publicado 14 de Julio del 2021 Reportar Compartir Publicado 14 de Julio del 2021 hace 7 horas, Kenshi Torres dijo: Las pérdidas de memoria son muy importantes cuando hablamos de reutilizar la memoria, evita que el juego siga asignando nueva RAM una y otra vez. Con estas simples correcciones, se solucionarán las pérdidas de memoria en Metin2. 1. Servidor Abra el archivo game / main.cpp Busque esta función: int main(int argc, char **argv) { Después de esto, agregue el siguiente código: return 0; Ahora abra el archivo db / Main.cpp. Buscar esta función int main(int argc, char **argv) { Después de esto, agregue el siguiente código: return 0; 2. Cliente Abra el archivo UserInterface / UserInterface.cpp Busque esta función int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { Después de esto, agregue el siguiente código: return 0; Espero que funcione ahora, disfrute de solo 200 MB para un cliente completo. Buena suerte. Citar Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
PACI Publicado 14 de Julio del 2021 Reportar Compartir Publicado 14 de Julio del 2021 No sé si reir por crear el tema en la sección de Programación, ó llorar por haberlo copiado y pegado en el traductor del google, que de por si ya dice que no te has enterado de lo que va. Muevo el hilo a off-topic. Citar Enlace para comentar Compartir en otros sitios Mas opciones de compartir...
Kenshi Torres Publicado 14 de Julio del 2021 Author Reportar Compartir Publicado 14 de Julio del 2021 hace 7 horas, PACI dijo: No sé si reir por crear el tema en la sección de Programación, ó llorar por haberlo copiado y pegado en el traductor del google, que de por si ya dice que no te has enterado de lo que va. Muevo el hilo a off-topic. Ps pense que servia entonces lo editare 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.