Witam, napotkałem na dwa małe problemy z tymi klanami mianowicie po usunięciu klanu przez właściciela, gdy admin zmienia mape to klan się przywraca
I druga sprawa w informacji o klanie widnieje informacja o ilosci osob w klanie oraz ich nicki, ale gdy ktos go opusci i tak jego nazwa tam widnieje oraz ilosc sie nie zmniejsza ![]()
Kod od usuwania
Spoiler
public DeleteGroup(id)
{
if(g_iPlayerGroup[id] == -1)
{
ColorChat(id, TEAM_COLOR, "^x04Nie jestes w klanie!");
return PLUGIN_CONTINUE;
}
if(!g_iIsGroupOwner[id])
{
ColorChat(id, TEAM_COLOR, "^x04Tylko wlasciciel moze usunac klan!");
return PLUGIN_CONTINUE;
}
if(cod_get_user_coins(id) < 2000)
{
ColorChat(id, TEAM_COLOR, "^x04Masz za malo orderow!");
return PLUGIN_CONTINUE;
}
new iGroup = g_iPlayerGroup[id];
new iPlayer, szGroupMemberName[64], szVaultKey[128], szVaultData[14], szPlayerGroup[5], iDistrPos;
for(new iMember = 1; iMember < ArrayGetCell(g_iGroupMembersCount, iGroup); iMember++)
{
ArrayGetString(g_szGroupMembers[iMember], iGroup, szGroupMemberName, 63);
iPlayer = get_user_index(szGroupMemberName);
if(iPlayer)
{
g_iPlayerGroup[iPlayer] = -1;
UpdateInfo(iPlayer);
ColorChat(iPlayer, TEAM_COLOR, "^x04Klan do ktorego nalezales zostal zniszczony!");
}
formatex(szVaultKey, 127, "%s-PlayerData", szGroupMemberName);
nvault_remove(g_iVault2, szVaultKey);
}
for(new iGroups = iGroup+1; iGroups < g_iGroupsCount; iGroups++)
{
for(new iMember = 1; iMember < ArrayGetCell(g_iGroupMembersCount, iGroups); iMember++)
{
ArrayGetString(g_szGroupMembers[iMember], iGroups, szGroupMemberName, 63);
iPlayer = get_user_index(szGroupMemberName);
if(iPlayer)
g_iPlayerGroup[iPlayer]--;
else
{
formatex(szVaultKey, 127, "%s-PlayerData", szGroupMemberName);
nvault_get(g_iVault2, szVaultKey, szVaultData, 13);
iDistrPos = contain(szVaultData, "#");
copy(szVaultData[iDistrPos], 13 - iDistrPos, "");
copy(szPlayerGroup, 4, szVaultData);
formatex(szVaultData, 13, "%d#0", str_to_num(szPlayerGroup)-1);
nvault_set(g_iVault2, szVaultKey, szVaultData);
}
}
ArrayGetString(g_szGroupOwner, iGroups, szGroupMemberName, 63);
iPlayer = get_user_index(szGroupMemberName);
if(iPlayer)
{
g_iPlayerGroup[iPlayer]--;
}
else
{
formatex(szVaultKey, 127, "%s-PlayerData", szGroupMemberName);
nvault_get(g_iVault2, szVaultKey, szVaultData, 13);
iDistrPos = contain(szVaultData, "#");
copy(szVaultData[iDistrPos], 13-iDistrPos, "");
copy(szPlayerGroup, 4, szVaultData);
formatex(szVaultData, 13, "%d#1", str_to_num(szPlayerGroup)-1);
nvault_set(g_iVault2, szVaultKey, szVaultData);
}
}
g_iPlayerGroup[id] = -1;
g_iIsGroupOwner[id] = 0;
formatex(szVaultKey, 127, "%s-PlayerData", g_szPlayerName[id]);
nvault_remove(g_iVault2, szVaultKey);
ArrayDeleteItem(g_szGroupOwner, iGroup);
ArrayDeleteItem(g_szGroupName, iGroup);
for(new i = 0; i < 4; i++)
ArrayDeleteItem(g_iGroupAdditionalPoints[i], iGroup);
for(new i = 1; i < MAX_MEMBERS; i++)
ArrayDeleteItem(g_szGroupMembers[i], iGroup);
ArrayDeleteItem(g_iGroupMembersCount, iGroup);
ArrayDeleteItem(g_iGroupExperience, iGroup);
ArrayDeleteItem(g_iGroupLevel, iGroup);
g_iGroupsCount--;
UpdateInfo(id);
cod_set_user_coins(id, cod_get_user_coins(id) - 2000);
ColorChat(id, TEAM_COLOR, "^x04Klan zostal usuniety!");
return PLUGIN_CONTINUE;
}
kod od informacji
Spoiler
public GroupInfo(id)
{
if(g_iPlayerGroup[id] == -1)
{
ColorChat(id, TEAM_COLOR, "^x04Nie jestes w klanie!");
return PLUGIN_CONTINUE;
}
new iGroup = g_iPlayerGroup[id];
new szGroupName[20], szGroupMemberName[64], iMembersCount, szInfo[512], iLen;
ArrayGetString(g_szGroupName, iGroup, szGroupName, 19);
ArrayGetString(g_szGroupOwner, iGroup, szGroupMemberName, 63);
iMembersCount = ArrayGetCell(g_iGroupMembersCount, iGroup);
iLen = formatex(szInfo, 511, "Klan: \y%s^n", szGroupName);
iLen += formatex(szInfo[iLen], 511-iLen, "\wWlasciciel: \y%s^n", szGroupMemberName);
iLen += formatex(szInfo[iLen], 511-iLen, "\wPoziom: \y%d^n\wDoswiadczenie: \y%d^n", ArrayGetCell(g_iGroupLevel, iGroup), ArrayGetCell(g_iGroupExperience, iGroup));
if(iMembersCount > 1)
{
iLen += formatex(szInfo[iLen], 511-iLen, "\d================^n");
iLen += formatex(szInfo[iLen], 511-iLen, "\wRazem jest Was \y%d:^n", iMembersCount);
for(new iMember = 1; iMember < iMembersCount; iMember++)
{
ArrayGetString(g_szGroupMembers[iMember], iGroup, szGroupMemberName, 63);
iLen += formatex(szInfo[iLen], 511-iLen, "\wGracz: \y%s^n", szGroupMemberName);
}
}
show_menu(id, 1023, szInfo);
return PLUGIN_CONTINUE;
}Użytkownik chrisN edytował ten post 08.05.2018 16:45


Dodatki SourceMod












