Witam
otóż mam nie lada problem
mam klany do cod moda
wczoraj dopisałem funkcję która dodaje "sloty" do klanu
i tam jest że jeśli liczba graczy większa bądź równa liczbie slotów to zaproszenie nie działa
i cóż to wszystko świetnie się sprawuje
co dalej dodałem więc jeśli właściciel klanu zaprosi kogoś i on akceptuje to zmienna gracze rośnie o 1
klanGracze++
to też ładnie działa
problem pojawił się gdy chcę zrobić coś takiego klanGracze-- gdy ktoś opuści klan
public ShowKickMenu( id )
{
new iPlayers[ 32 ], iNum;
get_players( iPlayers, iNum );
new hMenu = menu_create( "Usun gracza z klanu:", "KickMenu_Handler" );
new szName[ 32 ], szData[ 6 ];
for( new i = 0, iPlayer; i < iNum; i++ )
{
iPlayer = iPlayers[ i ];
if( g_iklan[ iPlayer ] != g_iklan[ id ] || id == iPlayer )
continue;
get_user_name( iPlayer, szName, charsmax( szName ) );
num_to_str( iPlayer, szData, charsmax( szData ) );
menu_additem( hMenu, szName, szData );
}
menu_display( id, hMenu, 0 );
}
public KickMenu_Handler( id, hMenu, iItem )
{
if( iItem == MENU_EXIT )
{
ShowLeaderMenu( id );
return PLUGIN_HANDLED;
}
new iAccess, hCallback, szData[ 6 ], szName[ 32 ];
menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, szName, charsmax( szName ), hCallback );
new iPlayer = str_to_num( szData );
if( !is_user_connected( iPlayer ) )
{
ColorChat( id, NORMAL, "%s Ten gracz nie jest juz polaczony.", g_szPrefix );
ShowTransferMenu( id );
return PLUGIN_HANDLED;
}
set_user_klan( iPlayer, -1 );
Cmd_klan( id );
new iPlayers[ 32 ], iNum, iTemp;
get_players( iPlayers, iNum );
for( new i = 0; i < iNum; i++ )
{
iTemp = iPlayers[ i ];
if( iTemp == iPlayer || g_iklan[ iTemp ] != g_iklan[ id ] )
continue;
ColorChat( iTemp, NORMAL, "%s ^03%s^01 zostal usuniety z klanu.", g_szPrefix, szName );
}
ColorChat( iPlayer, NORMAL, "%s zostales wyrzucony z klanu.", g_szPrefix, szName );
return PLUGIN_CONTINUE;
}
jest to całe menu wyrzucenia gracz z teamu
take coś staram się tam gdzieś dodać
new aData[ klanInfo ];
ArraySetArray( g_aklans, g_iklan[ id ], aData );
aData[ klanGracze ]--
ArraySetArray( g_aklans, g_iklan[ id ], aData );
Saveklans();
i wtedy zmienna klanGracza nie ważne ile miała wcześniej zmienai się na 0 lub -1
co do funkcji która działa i dodaje to jest to
public InviteConfirmMenu_Handler( id, hMenu, iItem )
{
if( iItem == MENU_EXIT )
return PLUGIN_HANDLED;
new szData[ 6 ], iAccess, hCallback;
menu_item_getinfo( hMenu, iItem, iAccess, szData, 5, _, _, hCallback );
new iklan = str_to_num( szData );
if( iklan == -1 )
return PLUGIN_HANDLED;
if( isLeader( id, g_iklan[ id ] ) )
{
ColorChat( id, NORMAL, "%s Nie mozesz opuscic klanu kiedy jestes leaderem.", g_szPrefix );
return PLUGIN_HANDLED;
}
set_user_klan( id, iklan );
new aData[ klanInfo ];
ArrayGetArray( g_aklans, iklan, aData );
ColorChat( id, NORMAL, "%s Dolaczyles do klanu ^03%s^01.", g_szPrefix, aData[ klanName ] );
ArraySetArray( g_aklans, g_iklan[ id ], aData );
aData[ klanGracze ]++
ArraySetArray( g_aklans, g_iklan[ id ], aData );
Saveklans();
return PLUGIN_CONTINUE;
}
ta funkcaj podczas zaproszenia normalnie działa
może nei tam gdzie trzeba to umieszczam
lub coś źle robię
proszę o pomoc bo zaczynam się załamywać ;x


Dodatki SourceMod












