переменная загружается из мускула (ячейка dicemal, дробная) затем при смерти производятся штуки вот такие
register_cvar("amx_kill_cost", "0.90") //цена убийства
register_cvar("amx_death_cost", "1.00") // цена смерти
register_event("DeathMsg", "onDeath", "a") //регистрация эвента смерти
new Float:UserPoints[33] //переменная дробная берется из mysql...
SQL_ReadResult(query, 0, UserPoints[id])
server_print("[AMXX] %f", UserPoints[id])
public onDeath(id)
{
new Float:kill_cost = get_cvar_float("amx_kill_cost") //задается цена
server_print("[AMXX] %f", kill_cost) //для отладки
new Float:death_cost = get_cvar_float("amx_death_cost")
server_print("[AMXX] %f", death_cost)
new iKiller = read_data(1) //вроде как чтение ID убийцы
new iVictim = read_data(2) //вроде как чтение ID жертвы
new Float:plusPoints = UserPoints[iKiller] + kill_cost //прибавка очков убийце
new Float:minusPoints = UserPoints[iVictim] - death_cost //забирание очков у жертвы
UserPoints[iKiller] = plusPoints //Заполнение изначальной переменной убийцы
UserPoints[iVictim] = minusPoints //Заполнение изначальной переменной жертвы
server_print("[AMXX] killer %f", UserPoints[iKiller]) //Для отладки
server_print("[AMXX] dead %f", UserPoints[iVictim])
}
вроде как все работает (тестил сам с 2ух компов)
но есть изъяны...
вопервых переменная из базы загружается не точно как она там есть, а с припиской вабще левых чисел
например в базе значение 321,35, а в SQL_ReadResult(query, 0, UserPoints[id]) server_print("[AMXX] %f", UserPoints[id]) выводит 321,350006
когда заполняются переменные new Float:kill_cost и new Float:death_cost, на моем примере это 0.9 и 1.0
1.0 все нормально, а вот с 0.9 странно если набрать в консоли amx_kill_cost выводится 0.9, а в функции (первые 2 строки в public onDeath(id)) почемуто пишет 0.899999и тд
или мб поможет ограничение чисел с права от запятой?? только незнаю как 
Добавлено (2009-05-12, 1:44 Pm)
---------------------------------------------
ап 