GTAMulti.com - Türkiye'nin Türkçe GTA Sitesi
29 Kasım 2024, 08:28:36

RolePlay Akü Sistemi

Başlatan Pentagon, 28 Mart 2020, 03:33:50

« önceki - sonraki »

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Pentagon

Dostlar selamlar,
Sizlerle aklıma gelen ve gerçeğe dökmüş olduğum araç akü sistemini nasıl yapabileceğinizi vede kendi sunucunuz/oyun modunuza nasıl ekleyebileceğiniz adım adım basitçe anlatacağım.

Benim kullandığım MAX_CARS olarak belirtilen yer sizde MAX_ARACLAR vs olarak her modda değişiklik gösterebilir. Kendi modunuza göre değiştirmeniz gerekmektedir.

İlk olarak araç enumlarınızı tuttuğunu yara aşağıda ki değişkeni ekleyin

PAWN Kodu: Seç
aracAku, aracAkuAriza
Örnek Kullanım:

PAWN Kodu: Seç
enum araclar{
aracID,
        aracModel,
        aracAku,
        aracAkuAriza

};
new Araclar[MAX_CARS][araclar];

Ardından OnGameModeInit 'e
PAWN Kodu: Seç
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.

Ardından modun fonksiyonların ve komutların dışında kalan müsait bir yerine
PAWN Kodu: Seç
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.

Şimdi aracın aküsünün bitmesini sağladık.
Biliyorsunuz ki araçlar yolda giderlerken kendi akülerini sarj ederler. Bizde bunu yapacağız. Ben bunun için kendi modumda araçın yakıtı tükeldikçe aracın aküsü dolmasını ayarladım.


Benim benzin azalma komutumda bir for içerisinde ve her i araç id yi temsil etmekte.
PAWN Kodu: Seç
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;
}
}

Şimdi aracın aküsü eğer motor kapalı farlar açıksa azalmasını ve sonradan motor açıldığında tekrar dolmasını yaptık.
Lakin tamamen akü boş ise ne olacak?
Onun için motor çalıştırma komutuna söyle bir if eklemeniz yeterli..
PAWN Kodu: Seç
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.


Şimdi akü bitikse araçta çalışmayacak. Peki akü arızasını nasıl giderebiliriz? Bunun için ben arizagider diye bir komut yaptım. Komut aslında bakarsanız pek roleplay canlısı değil lakin burada maksat akünün nasıl kod olarak sağlamlaştırılması roleplay'e uygun koşulları eklemek sizin hayal gücünüze kalmış.

PAWN Kodu: Seç
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;
}

Şimdi arizagider komutuda tamam böylece bozulan aküde fulleniyor..
Evet isin aslı aracın akü sistemi tamamiyle bunlardan ibaret. Herhangi bir hatada sizlere yardımcı olmaktan memnuniyet duyarım.
AracID ve i leri lütfen kendi oyun modunuza göre ayarlamayı unutmayın.

Bahsettiğim GetEngineStatus, IsEngineVehicle, GetLightStatus fonksiyonlar aşağıdadır.


Keyifli Forumlar  :kalp:
Son düzenlenme: 29 Mart 2020, 22:53:24 Pentagon

Pentagon

Konu düzenlendi* Sorun yaşarsanız yardımcı olmak isterim.


Snake

Başarılı...


viathegod32

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.

developer & producer

Vesa

Güzel paylaşım teşekkürler.

"Yeni bir Müslüm Gürses şarkısı kadar imkansız bazı şeyler..."
a.k.a Vesa

Tektabanca

Paylaşım için teşekkürler. Yararlı. 


《Hırsız~Polis》《2015&2021》

Gaviria

Eline sağlık paylaşım için teşekkürler :)


Pentagon

Alıntı yapılan: via - 28 Mart 2020, 05:08:50
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!

Alıntı yapılan: Snake - 28 Mart 2020, 03:55:08
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 :)


kelly

Paylaşım için teşekkürler, ellerine sağlık.

I want everything

Pentagon

Alıntı yapılan: kelly - 28 Mart 2020, 19:06:04
Paylaşım için teşekkürler, ellerine sağlık.
Bu güzel yorumunuz için ben teşekkür ederim :)


Submarine

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
Son düzenlenme: 28 Mart 2020, 20:47:11 Submarine

Pentagon

Alıntı yapılan: Submarine - 28 Mart 2020, 20:45:33
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

Tam açıklama yapacaktım ki editi gördüm :) Teşekkürler güzel yorumunuz için.


gercekleracidir

Teşekkürler.

Kendi dünyamın tanrısıyım.

Sawyer

Güzel Sistem Hard Rp sunucular'da kullanılabilir.

Artık bu kardeşiniz RageMP de daha mutlu SA:MP ile ilgilenmiyor.

Pentagon

Alıntı yapılan: Mustafa ÇIKMAZ - 29 Mart 2020, 01:44:38
Teşekkürler.
Alıntı yapılan: Sawyer - 29 Mart 2020, 03:17:54
Güzel Sistem Hard Rp sunucular'da kullanılabilir.

Değerli yorumlarınız için teşekkürler :)