PDA

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



#NickName
07.01.2017, 23:10
Сделал систему такси, и хочу сделать чтобы снимало каждый км.
Но по проверке пройти в таймере не хочет
в секундный таймер

new Float:b = GetPlayerDistanceFromPoint(playerid, Milage_x[playerid], Milage_y[playerid], Milage_z[playerid]);
b = floatdiv(b, 1000);
CarMilage[v] += b;
GetVehiclePos(v, Milage_x[playerid], Milage_y[playerid], Milage_z[playerid]);
printf("%f", CarMilage[v]);


В пасадку пассажи
if(newstate == PLAYER_STATE_PASSENGER) // TAXI & BUSSES
{
new vehicleid = GetPlayerVehicleID(playerid);
foreach(Player,i)
{
if(IsPlayerConnected(i))
{
if(IsPlayerInVehicle(i, vehicleid) && GetPlayerState(i) == 2 && TransportDuty[i] > 0)
{
if(Player[playerid][pCash] < TransportValue[i])
{
SendMes(playerid,0x6ab1ffaa,"Вам нужно %d вирт, чтобы сесть в машину.", TransportValue[i]);
RemoveFromVehicle(playerid);
return true;
}
if(TransportDuty[i] == 1)
{
if(Player[playerid][pLevel] > 0 && Player[playerid][pCash] < TransportValue[i])
{
SendMes(playerid,COLOR_GREEN,"Вам нужно %d вирт, чтобы сесть в такси.", TransportValue[i]);
RemoveFromVehicle(playerid);
return true;
}
SendMes(playerid,0x6ab1ffaa,"Вы заплатили таксисту %d вирт.", TransportValue[i]);
SendMes(i,0x6ab1ffaa,"Пасcажир %s сел в ваше такси.", Player[playerid][pNames]);
Player[playerid][pCash] -= TransportValue[i];
Player[i][pCash] += TransportValue[i];
SetTimerEx("@Taxi_update", 1000, false, "i", TransportDriver[playerid]);
return true;
}
}
}
}
}

Сам паблик
@Taxi_update(playerid);
@Taxi_update(playerid)
{
new vehicleid = GetPlayerVehicleID(playerid);
printf("Паблик сработал");
if(CarMilage[vehicleid] > 1.0)
{
printf("КМ работает");
if(TransportCost[playerid] > 0 && TransportDriver[playerid] < 999)
{
if(IsPlayerConnected(TransportDriver[playerid]))
{
TransportTime[TransportDriver[playerid]] = 0;
TransportCost[TransportDriver[playerid]] = 0;
if(Player[playerid][pCash] < TransportCost[playerid])
{
GameTextForPlayer(TransportDriver[playerid], "~r~ Fail", 5000, 1);
GameTextForPlayer(playerid, "~r~ Fail", 5000, 1);
SendClientMessage(TransportDriver[playerid], COLOR_GRAD1, "У пассажира не достаточно денег, чтобы заплатить!");
SendClientMessage(playerid, COLOR_GRAD1, "У вас не достаточно денег, чтобы заплатить!");
TransportCost[playerid] = 0;
TransportTime[playerid] = 0;
TransportDriver[playerid] = 999;
return 1;
}
TransportMoney[TransportDriver[playerid]] += TransportCost[playerid];
GiveMoney(playerid, -TransportMoney[playerid]);
TransportCost[playerid] = 0;
TransportTime[playerid] = 0;
TransportDriver[playerid] = 999;
new str_milage[12];
format(str_milage, sizeof(str_milage),"KM: %d", floatround(CarMilage[vehicleid]));
printf("%f",CarMilage[vehicleid]);
PlayerTextDrawSetString(TransportDriver[playerid], Taxi5[TransportDriver[playerid]], str_milage);
new str_money[12];
format(str_money, sizeof(str_money),"MONEY: %d", TransportCost[playerid]);
PlayerTextDrawSetString(TransportDriver[playerid], Taxi6[TransportDriver[playerid]], str_money);
CarMilage[vehicleid] = 0.0;

new string[15];
format(string, sizeof(string), "~r~-%d",TransportCost[playerid]);
GameTextForPlayer(playerid, string, 5000, 1);
SetTimerEx("@Taxi_update", 1000, false, "i", TransportDriver[playerid]);
}
}
}
return 1;
}
Логирование просходит printf("Паблик сработал");, но эту проверку пройти не может
if(CarMilage[vehicleid] > 1.0)

#NickName
08.01.2017, 00:44
23 просмотра, и не одного ответа

DeimoS
08.01.2017, 01:20
Сделай так

printf("Паблик сработал [%f]", CarMilage[vehicleid]);
И покажи результат