PDA

Просмотр полной версии : [Вопрос] Не проходит проверка после считывания sscanf



execution
29.10.2019, 11:39
Когда считываю с базы координаты, то почему-то не срабатывают проверки. Если же самому приравнять к 0.0 - всё отлично.



enum PlayerInformation
{
Float:pPosition[4]
}

new
Player[MAX_PLAYERS][PlayerInformation];

new
string[100];
cache_get_field_content(0, "pPosition", string);
sscanf(stringer, "p<,>a<f>[4]", Player[playerid][pPosition]);


Ставил такие проверки:



if (floatcmp(Player[playerid][pPosition][0], 0.0) == 0)
if (Player[playerid][pPosition][0] == 0.0)
if (_:Player[playerid][pPosition][0] == _:0.0)


Так-же смотрел, что находиться в pPositioin: 0.000000

DeimoS
29.10.2019, 14:30
Так покажи конкретный код и содержимое/структуру таблицы.

По тому, что ты дал, можно дать несколько комментариев:
1) Хранить подобным образом данные в БД - говнокод.
2) Использовать глобальные массивы для хранения и форматирования текста - говнокод, который приводит к опечаткам и проблемам.

new string[100];
cache_get_field_content(0, "pPosition", string);
sscanf(stringer, "p<,>a<f>[4]", Player[playerid][pPosition]);
Без конкретного кода можно посоветовать лишь переписать всё в нормальный вид и не страдать фигнёй.