aracAku, aracAkuArizaenum araclar{
aracID,
aracModel,
aracAku,
aracAkuAriza
};
new Araclar[MAX_CARS][araclar];
SetTimer("VehicleCheck", 120000, true);Burada belirtmiş olduğumuz 120000 değeri bu fonksiyonun kaç milisaniyede bir çalışacağını ayarlıyor. Ben bunu 2 dakika olarak ayarladım. forward VehicleCheck();
public VehicleCheck()
{
for (new i = 1; i != MAX_VEHICLES; i ++)
{
if(GetEngineStatus(i) != 1 && IsEngineVehicle(i)){
if(GetLightStatus(i) == 1){
if(Araclar[i][aracAku] > 0){
Araclar[i][aracAku]--;
}else{
Araclar[i][aracAkuAriza] = 1;
}
}
}
if(Araclar[i][aracAku] > 5){
Araclar[i][aracAkuAriza] = 0;
}
}
return 1;
}Kodunu yapıştırın. Burada sizin modunuzda bulunmayan GetEngineStatus, IsEngineVehicle, GetLightStatus adında 3 farklı fonksiyon var. Bunları sizlere konunu en sonunda olarak atacağım.if(Araclar[i][aracAku] > 1 && Araclar[i][aracAku] < 100){
Araclar[i][aracAku] = Araclar[i][aracAku] + 10;
if(Araclar[i][aracAku] > 100){
Araclar[i][aracAku] = 100;
}
}if(Araclar[i][aracAkuAriza] == 1)
return SendClientMessage(playerid, "Aracın aküsü bittiği için çalıştırılamıyor.");Burada ki "i" yine araç id yi temsil etmekte.CMD:arizagider(playerid, params[]){,
if(!IsPlayerInAnyVehicle(playerid))
return SendClientMessage(playerid, "Bu komutu kullanabilmek için araçta olman gerekiyor.");
new aracid = GetPlayerVehicleID(playerid);
if(Araclar[aracid][aracAkuAriza] != 1)
return SendClientMessage(playerid, "Aracın aküsü sağlam görünüyor.");
Araclar[aracid][aracAkuAriza] = 0;
Araclar[aracid][aracAku] = 100;
GivePlayerMoney(playerid, -500);
SendClientMessage(playerid, "Aracın aküsünü 500$'a tamir ettin.");
return 1;
}Arıza giderme komutuna bir para kontrolü ekleyip en azından paranın eksilere düşmesinin önlemini alsan ve timer'ı başka şekillerde kullansan biraz daha iyi olabilirdi, yine de teşekkürler eline sağlık.Timer'ın başka bir biçimde kullanımını bilmiyorum maalesef.. Para kontrolü konusunda haklısınız!
Başarılı...Alıntı yapılan: Vestro - 28 Mart 2020, 15:01:56
Güzel paylaşım teşekkürler.Alıntı yapılan: Tektabanca - 28 Mart 2020, 15:26:44
Paylaşım için teşekkürler. Yararlı.Alıntı yapılan: Gaviria - 28 Mart 2020, 15:48:03
Eline sağlık paylaşım için teşekkürler :)Değerli yorumlarınız için teşekkürler :)
Paylaşım için teşekkürler, ellerine sağlık.Bu güzel yorumunuz için ben teşekkür ederim :)
Sistem yararlı ancak gerçekçilik olması için motor kapalı ve farlar açıkken akünün bitmesini sağla çünkü gerçek hayatta arabalarda şarj dinamosu var kontağı çevirip arabayı çalıştırdığımız zaman akü şarj oluyor zaten.Bu sadece bi fikir yapmak zorunda değilsin.
Edit : gerçi yazmışsın zaten görmemişim
Teşekkürler.Alıntı yapılan: Sawyer - 29 Mart 2020, 03:17:54
Güzel Sistem Hard Rp sunucular'da kullanılabilir.
Gayet realistik teşekkürler.Çok teşekkürler değerli yorumunuz için :)
if(Araclar[i][aracAku] > 1 && Araclar[i][aracAku] < 100){
Araclar[i][aracAku] = Araclar[i][aracAku] + 10;
if(Araclar[i][aracAku] > 100){
Araclar[i][aracAku] = 100;
}
}burada ikinci sorgu birinciden önce gelmezse ilk sorgu için hiçbir işlevi gerçekleştiremez. Bunu önleyebilmek için aşağıdaki gibi yaparsan daha sağlıklı olacaktır.if(Araclar[i][aracAku] > 100){
Araclar[i][aracAku] = 100;
}
if(Araclar[i][aracAku] > 1 && Araclar[i][aracAku] < 100){
Araclar[i][aracAku] = Araclar[i][aracAku] + 10;
}Bu arada paylaşım için teşekkürler.
MAX_CARS , aracAkuAriza gibi değişkenler tanımlı değil gibi görünüyor.
Ayrıca :Kod Seçif(Araclar[i][aracAku] > 1 && Araclar[i][aracAku] < 100){burada ikinci sorgu birinciden önce gelmezse ilk sorgu için hiçbir işlevi gerçekleştiremez. Bunu önleyebilmek için aşağıdaki gibi yaparsan daha sağlıklı olacaktır.
Araclar[i][aracAku] = Araclar[i][aracAku] + 10;
if(Araclar[i][aracAku] > 100){
Araclar[i][aracAku] = 100;
}
}Kod Seçif(Araclar[i][aracAku] > 100){Bu arada paylaşım için teşekkürler.
Araclar[i][aracAku] = 100;
}
if(Araclar[i][aracAku] > 1 && Araclar[i][aracAku] < 100){
Araclar[i][aracAku] = Araclar[i][aracAku] + 10;
}
@Pentagon bu arada MAX_CARS yerine MAX_VEHICLES olarak düzenlenirse tüm modlar için uyumlu olacağını düşünüyorum ^^
Başarılı, eline sağlık.Değerli yorumunuz için teşekkür ederim :)
Roleplay serverleri için hatta hard roleplay olan sunucular için çok yararlı bir sistem olmuş, başarıların devamını dilerim güzel olmuş. :)
O kadar da gerekli bir sistem sayılmaz fakat emek var sonuçta. Paylaşım için teşekkürler.İsteyen kullansın diye bıraktım böyle :)
Alıntı yapılan: via - 28 Mart 2020, 05:08:50Arıza giderme komutuna bir para kontrolü ekleyip en azından paranın eksilere düşmesinin önlemini alsan ve timer'ı başka şekillerde kullansan biraz daha iyi olabilirdi, yine de teşekkürler eline sağlık.Timer'ın başka bir biçimde kullanımını bilmiyorum maalesef.. Para kontrolü konusunda haklısınız!
Alıntı yapılan: Pentagon - 28 Mart 2020, 18:52:44Alıntı yapılan: via - 28 Mart 2020, 05:08:50Arıza giderme komutuna bir para kontrolü ekleyip en azından paranın eksilere düşmesinin önlemini alsan ve timer'ı başka şekillerde kullansan biraz daha iyi olabilirdi, yine de teşekkürler eline sağlık.Timer'ın başka bir biçimde kullanımını bilmiyorum maalesef.. Para kontrolü konusunda haklısınız!
gettime gibi fonksiyonlarla daha basit şekilde yapabilirsin kontrolleri, fazla fazla timer kullanmamış olursun.