a moze verciu
bo on w tym siedzi
Darka nie zajmujcie bo on musi zrobic luk 
nie testowalem ale wina lezec moze tutaj 
public SubtractStats(id,amount)
{
player_strength[id]-=amount
player_dextery[id]-=amount
player_agility[id]-=amount
player_intelligence[id]-=amount
}
zamien to na
public SubtractStats(id,amount)
{
if (player_strength[id]-amount>=0) player_strength[id]-=amount
else player_strength[id]=0
if (player_dextery[id]-amount>=0) player_dextery[id]-=amount
else player_dextery[id]=0
if (player_agility[id]-amount>=0) player_agility[id]-=amount
else player_agility[id]=0
if (player_intelligence[id]-amount>=0) player_intelligence[id]-=amount
else player_intelligence[id]=0
}
No tak ale z tym kodem mamy taka sytuacje ze:
Masz 10 lvl czyli teoretycznie mozna dodac 10x2-2=18. A jest tak ze masz np. 5 int i 5 zrecznosci i mozesz dodac jeszcze 18 pkt czyli defacto wiecej niz przewiduje lvl.
Dlatego trza na koniec dac zapewne funkcje na wyliczanie ile pkt powinien miec gracz na danym lvlu czyli np.
public SubtractStats(id,amount)
{
if (player_strength[id]-amount>=0) player_strength[id]-=amount
else player_strength[id]=0
if (player_dextery[id]-amount>=0) player_dextery[id]-=amount
else player_dextery[id]=0
if (player_agility[id]-amount>=0) player_agility[id]-=amount
else player_agility[id]=0
if (player_intelligence[id]-amount>=0) player_intelligence[id]-=amount
else player_intelligence[id]=0
player_point[id]=(player_lvl[id]-1)*2-player_intelligence[id]-player_strength[id]-player_dextery[id]-player_agility[id]
if(player_point[id]<0) player_point[id]=0
}
Chyba najlepszym rozwiazaniem byloby zrobic aby ringi nie wplywaly ujemnie na staty,