give_money, powinieneś wywoływać w check.inl w funkcji check_badges, pod innymi warunkami na odznaki.
I jedna sprawa, w
bf2 nie zaczynasz od case 1 tylko 0, ponieważ np. jeżeli level 0 (case 0) to robisz w nim warunek, jeżeli warunek się spełni to zwiększasz poziom odznaki. Przykład:
currentbadge=g_PlayerBadges[id][BADGE_KNIFE];
wroundstats[0]=0;
wroundstats[2]=0;
get_user_wrstats(id,CSW_KNIFE,wroundstats,wroundbodyhits);
kills=knifekills[id];
switch (currentbadge)
{
case LEVEL_NONE:
{
if (wroundstats[0]>1)
{
g_PlayerBadges[id][BADGE_KNIFE]=LEVEL_BASIC; //Basic Knife Badge
client_print(id,print_chat,"[BF2] Zdobyles odznake: %s",gBadgeName[BADGE_KNIFE][LEVEL_BASIC]);
badgegained=true;
}
}
case LEVEL_BASIC:
{
if (kills>49)
{
g_PlayerBadges[id][BADGE_KNIFE]=LEVEL_VETERAN; //Veteran Knife Badge
client_print(id,print_chat,"[BF2] Zdobyles odznake: %s",gBadgeName[BADGE_KNIFE][LEVEL_VETERAN]);
badgegained=true;
}
}
case LEVEL_VETERAN:
{
if ((wroundstats[0]>2) && (wroundstats[2]>0) && (kills>99))
{
g_PlayerBadges[id][BADGE_KNIFE]=LEVEL_EXPERT; //Expert Knife Badge
client_print(id,print_chat,"[BF2] Zdobyles odznake: %s",gBadgeName[BADGE_KNIFE][LEVEL_EXPERT]);
badgegained=true;
}
}
}