format( gForm, sizeof( gForm ), "Czy na pewno chcesz %s?", iLider[ id ] == 1 ? "usunac gildie" : "odejsc z gildii" )
Na pewno osobno.
Kod wygląda tragicznie.
Nie działa, bo inkrementujesz zmienną HP tylko dla danego id, w tym przypadku lidera, dlatego tylko jemu to działa. Należy zrobić pętlę dla wszystkich graczy na serwerze, sprawdzić czy jego gildia == gildia lidera, po czym inkrementować zmienną HP także im. Dodatkowo trzeba jakoś zająć się graczami, którzy dołączą do gry po zwiększeniu umiejętności.
case 1:
{
if((get_pcvar_num(potrzebneM1)*(HP[id]+1)) > PobierzEXPKlanu( szNazwaKlanuGracza[ id ] )){
Um_HP(id);
menu_destroy(menu);
return PLUGIN_HANDLED;
}
UstawEXPKlanu( szNazwaKlanuGracza[ id ], PobierzEXPKlanu( szNazwaKlanuGracza[ id ] ) - get_pcvar_num(potrzebneM1)*(HP[id]+1))
HP[id]++;
handleHealthAbility(id);
Um_HP(id);
menu_destroy(menu);
return PLUGIN_HANDLED;
}
handleHealthAbility(index)
{
#define ForPlayers(%1) for(new %1 = 1; %1 <= 32; %1++)
ForPlayers(i)
{
if(!is_user_connected(i) || i == index || !equal(szNazwaKlanuGracza[i], szNazwaKlanuGracza[index]))
{
continue;
}
HP[i]++;
}
}
public client_connect( id ){
get_user_name( id, szUserName[ id ], sizeof( szUserName ) )
copy( szNazwaKlanuGracza[ id ], sizeof( szNazwaKlanuGracza[ ] ), "" )
iLider[ id ] = 0
HP[id] = 0
Oslepienie[id] = 0
ExpGXP[id] = 0
WczytajDane( id )
setHealthVariable(id);
}
setHealthVariable(index)
{
#define ForPlayers(%1) for(new %1 = 1; %1 <= 32; %1++)
ForPlayers(i)
{
if(!is_user_connected(i) || i == index || !equal(szNazwaKlanuGracza[i], szNazwaKlanuGracza[index]) || !HP[i])
{
continue;
}
HP[index] = HP[i];
break;
}
}
Nie testowalem, nie kompilowałem.