Quero ajuda para ajustar sistema de party/grupo dessa versão, veio um painel que a principio funciona, mas depois começa a bugar, desaparecem membros, as vezes mostra que personagem está sem grupo porém ele ganha xp de um outro personagem upando como se fosse só bug visual. Quero remover o painel e usar sistema de grupo da 7.59 como do the new world mais ou menos assim:
#pragma region Grupo com Senha
if (strcmp(m->MobName, "Grupo") == 0 || strcmp(m->MobName, "grupo") == 0)
{
char Chave[4096] = { 0, };
memset(Chave, 0x0, 4096);
int valorGerado = rand() % (9999 - 1000 + 3333) + 1110;
std::string s = std::to_string(valorGerado);
sprintf_s(Chave, 4096, "%s", s.c_str());
memset(&pUser[conn].Ingame.PartyPassword, 0, sizeof(pUser[conn].Ingame.PartyPassword));
strncpy(pUser[conn].Ingame.PartyPassword, Chave, 6);
SendEtc(conn);
pUser[conn].Ingame.GrupoAceitarSolicitação = TRUE;
SendClientMessage(conn, strFmt("!Sua senha :%s", pUser[conn].Ingame.PartyPassword));
SendClientMessage(conn, strFmt("!Novo membro deve usar /entrar %s %s", pMob[conn].MOB.MobName, pUser[conn].Ingame.PartyPassword));
pUser[conn].Ingame.GrupoAceitarSolicitação = TRUE;
return;
}
if (strcmp(m->MobName, "entrar") == 0)
{
char TargetName[16];
memset(TargetName, 0, sizeof(TargetName));
char Password[7];
memset(Password, 0, sizeof(Password));
if (sizeof(m->String) > 100 || sizeof(m->String) <= 0)
return;
if (strnlen(m->MobName, 16) <= 0 || strnlen(m->String, 100) > 23)
return;
if (sscanf_s(m->String, "%15s %6s", TargetName, _countof(TargetName), Password, _countof(Password)))
{
if (sizeof(m->MobName) <= 0 || sizeof(m->MobName) > 16) {
SendClientMessage(conn, "Nome inválido.");
return;
}
if (sizeof(Password) <= 0 || sizeof(Password) > 7) {
SendClientMessage(conn, "Senha inválida.");
return;
}
//debug
/*SendClientMessage(conn, strFmt("size password %d", sizeof(Password)));
SendClientMessage(conn, strFmt("password %s", Password));*/
auto idx = GetUserByName(TargetName);
int leaderID = pMob[idx].Leader;
if (pUser[idx].Mode != 22)
{
SendClientMessage(conn, "Este personagem não está conectado.");
return;
}
if (pMob[idx].Leader != 0)
{
SendClientMessage(conn, "Este personagem não é lider de grupo.");
return;
}
if (conn == idx)
{
SendClientMessage(conn, "Não é possivel.");
return;
}
if (pMob[conn].Leader != 0)
{
SendClientMessage(conn, "Você já faz parte de um grupo.");
return;
}
for (int i = 0; i < MAX_PARTY; i++)
{
if (pMob[conn].PartyList != 0)
{
SendClientMessage(conn, "Você é lider de um grupo.");
return;
}
}
if (strcmp(pUser[idx].Ingame.PartyPassword, "") == 0)
{
SendClientMessage(conn, "Proibido a entrada em grupos sem senha");
return;
}
if (strcmp(pUser[idx].Ingame.PartyPassword, Password) != 0)
{
SendClientMessage(conn, "Senha incorreta.");
return;
}
SendReqParty(conn, idx, 0);
return;
}
return;
}
link imagem: [Hidden Content]
Whatsapp 41 991956264