Merhaba,araç zırh sistemi yaptım /araczirhlat yapıyorum birşeye yaramıyor 2-3 kere /araczirhlat yazıyorum o zaman araç zaten zırhlı diyor 1 kere çarptığında araca birşey olmuyor ama 1'den sonra araç hep hasar görüyor
onplayerupdate
new vehicleid = GetPlayerVehicleID(playerid);
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER && AracZirh[vehicleid] > 1)
{
new Float:hasar;
GetVehicleHealth(vehicleid, hasar);
if(hasar < 1000)
{
AracZirh[vehicleid] -= MAX_ARAC_ZIRH-floatround(hasar);
RepairVehicle(vehicleid);
SetVehicleHealth(vehicleid, 5000);
}
}
komut
CMD:araczirhlat(playerid, params[])
{
if(!IsPlayerInAnyVehicle(playerid)) return SendErrorMessage(playerid, "Aracınızda değilsiniz.");
new vehicleid = GetPlayerVehicleID(playerid);
if(AracZirh[vehicleid] < MAX_ARAC_ZIRH)
{
if(GetPlayerMoney(playerid) < 40000) return SendErrorMessage(playerid, "Aracını Zırhlatmak için 40000 $ gereklidir.");
GiveMoney(playerid,-40000);
AracZirh[vehicleid] = MAX_ARAC_ZIRH;
SendClientMessage(playerid, -1, "Araç Zırhlandı.");
} else { SendClientMessage(playerid, -1, "Araç zaten zırhlı!"); }
return 1;
}
Araç çarptığında aracın sağlığını 5000 yapıyorsunuz, ama orada eğer aracın sağlığı 1000'den küçükse şartı var. Aracın sağlığı 1000'den küçük olmadığı için kodlar çalışmaz. Böyle değiştirin;
new vehicleid = GetPlayerVehicleID(playerid);
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER && AracZirh[vehicleid] > 1)
{
new Float:hasar;
GetVehicleHealth(vehicleid, hasar);
if(hasar < 1000)
{
AracZirh[vehicleid] -= 1000-floatround(hasar);
RepairVehicle(vehicleid);
SetVehicleHealth(vehicleid, 1000);
}
}