GTAMulti - GTA Türkiye

San Andreas Multiplayer => PAWN Kodlama => Mod Galerisi => Konuyu başlatan: Pentagon - 28 Mart 2020, 03:33:50

Başlık: RolePlay Akü Sistemi
Gönderen: Pentagon - 28 Mart 2020, 03:33:50
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:
Başlık: Ynt: RolePlay Akü Sistemi
Gönderen: Pentagon - 28 Mart 2020, 03:53:36
Konu düzenlendi* Sorun yaşarsanız yardımcı olmak isterim.
Başlık: Ynt: RolePlay Akü Sistemi
Gönderen: Snake - 28 Mart 2020, 03:55:08
Başarılı...
Başlık: Ynt: RolePlay Akü Sistemi
Gönderen: viathegod32 - 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.
Başlık: Ynt: RolePlay Akü Sistemi
Gönderen: Vesa - 28 Mart 2020, 15:01:56
Güzel paylaşım teşekkürler.
Başlık: Ynt: RolePlay Akü Sistemi
Gönderen: Tektabanca - 28 Mart 2020, 15:26:44
Paylaşım için teşekkürler. Yararlı. 
Başlık: Ynt: RolePlay Akü Sistemi
Gönderen: Gaviria - 28 Mart 2020, 15:48:03
Eline sağlık paylaşım için teşekkürler :)
Başlık: Ynt: RolePlay Akü Sistemi
Gönderen: Pentagon - 28 Mart 2020, 18:52:44
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 :)
Başlık: Ynt: RolePlay Akü Sistemi
Gönderen: kelly - 28 Mart 2020, 19:06:04
Paylaşım için teşekkürler, ellerine sağlık.
Başlık: Ynt: RolePlay Akü Sistemi
Gönderen: Pentagon - 28 Mart 2020, 19:17:59
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 :)
Başlık: Ynt: RolePlay Akü Sistemi
Gönderen: 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
Başlık: Ynt: RolePlay Akü Sistemi
Gönderen: Pentagon - 28 Mart 2020, 22:17:59
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.
Başlık: Ynt: RolePlay Akü Sistemi
Gönderen: gercekleracidir - 29 Mart 2020, 01:44:38
Teşekkürler.
Başlık: Ynt: RolePlay Akü Sistemi
Gönderen: Sawyer - 29 Mart 2020, 03:17:54
Güzel Sistem Hard Rp sunucular'da kullanılabilir.
Başlık: Ynt: RolePlay Akü Sistemi
Gönderen: Pentagon - 29 Mart 2020, 03:58:05
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 :)
Başlık: Ynt: RolePlay Akü Sistemi
Gönderen: Specter - 29 Mart 2020, 16:14:09
Gayet realistik teşekkürler.
Başlık: Ynt: RolePlay Akü Sistemi
Gönderen: Pentagon - 29 Mart 2020, 16:20:43
Alıntı yapılan: Specter - 29 Mart 2020, 16:14:09
Gayet realistik teşekkürler.
Çok teşekkürler değerli yorumunuz için :)
Başlık: Ynt: RolePlay Akü Sistemi
Gönderen: squarepants - 29 Mart 2020, 22:33:35
MAX_CARS , aracAkuAriza gibi değişkenler tanımlı değil gibi görünüyor.
Ayrıca :

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.
Başlık: Ynt: RolePlay Akü Sistemi
Gönderen: Pentagon - 29 Mart 2020, 22:52:11
Alıntı yapılan: ThePosition - 29 Mart 2020, 22:33:35
MAX_CARS , aracAkuAriza gibi değişkenler tanımlı değil gibi görünüyor.
Ayrıca :

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.

Aydınlattığın için teşekkürler. Evet enum'u eklemeyi unutmusum hemen düzenliyorum.
Başlık: Ynt: RolePlay Akü Sistemi
Gönderen: squarepants - 29 Mart 2020, 23:02:08
@Pentagon bu arada MAX_CARS yerine MAX_VEHICLES olarak düzenlenirse tüm modlar için uyumlu olacağını düşünüyorum ^^
Başlık: Ynt: RolePlay Akü Sistemi
Gönderen: Pentagon - 30 Mart 2020, 00:18:12
Alıntı yapılan: ThePosition - 29 Mart 2020, 23:02:08
@Pentagon bu arada MAX_CARS yerine MAX_VEHICLES olarak düzenlenirse tüm modlar için uyumlu olacağını düşünüyorum ^^

Çoğu modda değişik onunla ilgili bir not düştüm kendi sunucunuza göre ayarlamanız gerekli diye not ekledim. Benim kendi modumda MAX_CARS olarak geçiyor. o yüzden not alarak ekleme sağladım. Ama tavsiyen için teşekkürler yinede ^^
Başlık: Ynt: RolePlay Akü Sistemi
Gönderen: Hypnotic - 30 Mart 2020, 00:36:41
Çok iyi..
Başlık: Ynt: RolePlay Akü Sistemi
Gönderen: Pentagon - 30 Mart 2020, 00:53:15
Alıntı yapılan: Hypnotic - 30 Mart 2020, 00:36:41
Çok iyi..

Güzel yorumunuz için teşekkür ederim :)
Başlık: Ynt: RolePlay Akü Sistemi
Gönderen: Rosnex - 02 Nisan 2020, 18:56:35
Başarılı, eline sağlık.
Başlık: Ynt: RolePlay Akü Sistemi
Gönderen: Pentagon - 03 Nisan 2020, 01:26:37
Alıntı yapılan: #Norpes - 02 Nisan 2020, 18:56:35
Başarılı, eline sağlık.
Değerli yorumunuz için teşekkür ederim :)
Başlık: Ynt: RolePlay Akü Sistemi
Gönderen: LudieElysian - 08 Nisan 2020, 00:57:56
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ş. :)
Başlık: Ynt: RolePlay Akü Sistemi
Gönderen: Vanity - 08 Nisan 2020, 01:33:03
O kadar da gerekli bir sistem sayılmaz fakat emek var sonuçta. Paylaşım için teşekkürler.
Başlık: Ynt: RolePlay Akü Sistemi
Gönderen: Pentagon - 11 Nisan 2020, 11:30:26
Alıntı yapılan: Fearless - 08 Nisan 2020, 00:57:56
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ş. :)

Teşekkür ederim :)

Alıntı yapılan: Vanity - 08 Nisan 2020, 01:33:03
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 :)

Değerli yorumlarınız için teşekkürler :)
Başlık: Ynt: RolePlay Akü Sistemi
Gönderen: viathegod32 - 19 Nisan 2020, 03:35:33
Alıntı yapılan: Pentagon - 28 Mart 2020, 18:52:44
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!

gettime gibi fonksiyonlarla daha basit şekilde yapabilirsin kontrolleri, fazla fazla timer kullanmamış olursun.
Başlık: Ynt: RolePlay Akü Sistemi
Gönderen: Pentagon - 19 Nisan 2020, 04:37:11
Alıntı yapılan: via - 19 Nisan 2020, 03:35:33
Alıntı yapılan: Pentagon - 28 Mart 2020, 18:52:44
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!

gettime gibi fonksiyonlarla daha basit şekilde yapabilirsin kontrolleri, fazla fazla timer kullanmamış olursun.

Evet böylece timerlar ile fazla yormam modu lakin bu sistemin yanında bir ton daha sistem var ve hepsini tek timer içinde topladım o yüzden burayada bende ki algoritma ile aynı algoritmada paylaşmak istedim. Tavsiyen için teşekkürler :)
Başlık: Ynt: RolePlay Akü Sistemi
Gönderen: spiNNN - 25 Nisan 2020, 14:05:36
Herşey güzel ama akü farlar açıkken falanda bitse iyi olun. Ama gayet başarılı eline sağlık.