GTAMulti.com - Türkiye'nin Türkçe GTA Sitesi
14 Haziran 2026, 00:37:40

Fatura Sistemi

Başlatan #McAllen, 09 Ağustos 2021, 15:00:34

« önceki - sonraki »

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

#McAllen

Öncelikle merhabalar, bu konuyu açma sebebim sizden fazla abartı olmayan bir sistem istiyorum eğerki yapabilecekseniz yapabilir misiniz?

Sisteme geçiyorum; Örnek veriyorum bir oyuncu bir oyuncuya fatura kesmek istiyor yani bunu binevi tamirci gibi sayabilirsiniz tamirci adamın aracını tamir etmiş ve ona fatura kesecek ve oyuncuda bu faturayı belirli bir bölgede belirli bir komutla ödeyecek ama fatura kesmesi için bizim oyuncuya bi komutla yetki vermemiz ve geri almamız gerekiyor yani örnek veriyorum /fkesmeyetkisiver /fkesmeyetkisial gibi gibi.

Yanii bu sistemde toplam 4 tane komut olacak ; /faturakes, /fkesmeyetkisiver, /fkesmeyetkisial, /faturasil [Fatura ID], /faturaode(Belirli bir bölgede/kordinatta)

bunu yapabilir misiniz rica etsem?
Son düzenlenme: 09 Ağustos 2021, 16:50:11 JenniferAR
Developer

jaweed

Kullanmış olduğun modun ayrıntılarını bilmediğim için buradan yardımcı olabileceğimi sanmıyorum.


#McAllen

Alıntı yapılan: jaweed - 09 Ağustos 2021, 15:27:40
Kullanmış olduğun modun ayrıntılarını bilmediğim için buradan yardımcı olabileceğimi sanmıyorum.

Siz yazsanız ben moda göre hepsini düzenlerim.

Developer

Utherz

Öncelikle burası bir sistem isteme bölümü değil, yardım isteme bölümü. İstediğiniz komutu yaptım, aşağıda kodları bulabilirsiniz.


PAWN Kodu: Seç
CMD:fyetkiver(playerid, params[])
{
    new id, yetki;
    if (OyuncuDegisken[playerid][Admin] < 3) return SendClientMessage(playerid, -1, "bu komutu kullanamazsınız.");
    if (sscanf(params, "ui", id, yetki)) return SendClientMessage(playerid, -1, "/fyetkiver <playerid> <yetki (0 alır 1 verir)>");
    if (!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, "hatalı id ya da kişi oyunda değil");
    OyuncuDegisken[id][fYetki] = yetki;
    return 1;
}

Doğrular ve yanlışlar yoktur, sadece yorumlar vardır.

#McAllen

Alıntı yapılan: Utherz - 09 Ağustos 2021, 16:21:07
Öncelikle burası bir sistem isteme bölümü değil, yardım isteme bölümü. İstediğiniz komutu yaptım, aşağıda kodları bulabilirsiniz.


PAWN Kodu: Seç
CMD:fyetkiver(playerid, params[])
{
    new id, yetki;
    if (OyuncuDegisken[playerid][Admin] < 3) return SendClientMessage(playerid, -1, "bu komutu kullanamazsınız.");
    if (sscanf(params, "ui", id, yetki)) return SendClientMessage(playerid, -1, "/fyetkiver <playerid> <yetki (0 alır 1 verir)>");
    if (!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, "hatalı id ya da kişi oyunda değil");
    OyuncuDegisken[id][fYetki] = yetki;
    return 1;
}

Tamam da burada /faturakes diye bi komut yok bir kişi nasıl kişiye fatura kesicek? Bir de buraya açma sebebim öyle bir konu açma yeri olmadığı için veya ben görmedim.

Developer

Utherz

Alıntı yapılan: JenniferAR - 09 Ağustos 2021, 16:29:00
Alıntı yapılan: Utherz - 09 Ağustos 2021, 16:21:07
Öncelikle burası bir sistem isteme bölümü değil, yardım isteme bölümü. İstediğiniz komutu yaptım, aşağıda kodları bulabilirsiniz.


PAWN Kodu: Seç
CMD:fyetkiver(playerid, params[])
{
    new id, yetki;
    if (OyuncuDegisken[playerid][Admin] < 3) return SendClientMessage(playerid, -1, "bu komutu kullanamazsınız.");
    if (sscanf(params, "ui", id, yetki)) return SendClientMessage(playerid, -1, "/fyetkiver <playerid> <yetki (0 alır 1 verir)>");
    if (!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, "hatalı id ya da kişi oyunda değil");
    OyuncuDegisken[id][fYetki] = yetki;
    return 1;
}

Tamam da burada /faturakes diye bi komut yok bir kişi nasıl kişiye fatura kesicek? Bir de buraya açma sebebim öyle bir konu açma yeri olmadığı için veya ben görmedim.

Sadece fatura yetki verme komutunu istemişsiniz gibi gördüm daha doğrusu orayı okudum. Eğer boş zamanım olursa diğer komutları da yapıp atarım.

Doğrular ve yanlışlar yoktur, sadece yorumlar vardır.

#McAllen

Alıntı yapılan: Utherz - 09 Ağustos 2021, 16:33:44
Alıntı yapılan: JenniferAR - 09 Ağustos 2021, 16:29:00
Alıntı yapılan: Utherz - 09 Ağustos 2021, 16:21:07
Öncelikle burası bir sistem isteme bölümü değil, yardım isteme bölümü. İstediğiniz komutu yaptım, aşağıda kodları bulabilirsiniz.


PAWN Kodu: Seç
CMD:fyetkiver(playerid, params[])
{
    new id, yetki;
    if (OyuncuDegisken[playerid][Admin] < 3) return SendClientMessage(playerid, -1, "bu komutu kullanamazsınız.");
    if (sscanf(params, "ui", id, yetki)) return SendClientMessage(playerid, -1, "/fyetkiver <playerid> <yetki (0 alır 1 verir)>");
    if (!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, "hatalı id ya da kişi oyunda değil");
    OyuncuDegisken[id][fYetki] = yetki;
    return 1;
}

Tamam da burada /faturakes diye bi komut yok bir kişi nasıl kişiye fatura kesicek? Bir de buraya açma sebebim öyle bir konu açma yeri olmadığı için veya ben görmedim.

Sadece fatura yetki verme komutunu istemişsiniz gibi gördüm daha doğrusu orayı okudum. Eğer boş zamanım olursa diğer komutları da yapıp atarım.

Pekii

Developer

squarepants

Şu an için biraz meşgulüm ve deneme fırsatım olmadı ancak sen aşağıdaki şekilde deneyebilirsin. YARICAP, X, Y, Z degerlerini fatura odenecek noktanin koordinatlarına göre düzenlemelisin. Herhangi bir sorun olursa buradan veya özelden iletişime geçebilirsin, iyi forumlar :
enum E_FATURA
{
    bool:fYetki,
    fMiktar
}
new pFatura[MAX_PLAYERS][E_FATURA];
CMD:fyetkiver(playerid, params[])
{
    new fid;
    if (sscanf(params, "d", fid)) return SendClientMessage(playerid, -1, "/fyetkiver [playerid]");
    if (!IsPlayerConnected(fid)) return SendClientMessage(playerid, -1, "Oyuncu Aktif Degil (!)");
    if (pFatura[fid][fYetki]) return SendClientMessage(playerid, -1, "Oyuncu Zaten Yetkili (!)");
    pFatura[fid][fYetki] = true;
    return 1;
}
CMD:fyetkial(playerid, params[])
{
    new fid;
    if (sscanf(params, "d", fid)) return SendClientMessage(playerid, -1, "/fyetkial [playerid]");
    if (!IsPlayerConnected(fid)) return SendClientMessage(playerid, -1, "Oyuncu Aktif Degil (!)");
    if (!pFatura[fid][fYetki]) return SendClientMessage(playerid, -1, "Oyuncu Zaten Yetkili Degil(!)");
    pFatura[fid][fYetki] = false;
    return 1;
}
CMD:fkes(playerid, params[])
{
    new fid, fmiktar;
    if (sscanf(params, "dd", fid, fmiktar)) return SendClientMessage(playerid, -1, "/fkes [playerid] [miktar]");
    if (!IsPlayerConnected(fid)) return SendClientMessage(playerid, -1, "Oyuncu Aktif Degil (!)");
    if (!pFatura[playerid][fYetki]) return SendClientMessage(playerid, -1, "Yetkiniz Yok (!)");
    if ( pFatura[fid][fMiktar] > 0) return SendClientMessage(playerid, -1, "Oyuncuya Zaten Fatura Kesilmis (!)");
    pFatura[fid][fMiktar] = fmiktar;
    return 1;
}
CMD:fsil(playerid, params[])
{
    new fid;
    if (sscanf(params, "d", fid)) return SendClientMessage(playerid, -1, "/fsil [playerid]");
    if (!IsPlayerConnected(fid)) return SendClientMessage(playerid, -1, "Oyuncu Aktif Degil (!)");
    if (pFatura[fid][fMiktar] == 0) return SendClientMessage(playerid, -1, "Oyuncunun Faturasi Su Anda Yok (!)");
    pFatura[fid][fMiktar] = 0;
    return 1;
}
CMD:fode(playerid)
{
    if(IsPlayerInRangeOfPoint(playerid, YARICAP, X, Y, Z))
    {
        if(pFatura[playerid][fMiktar] == 0) return SendClientMessage(playerid, -1, "Odenecek Faturaniz Yok (!)");
        if(GetPlayerMoney(playerid) < pFatura[playerid][fMiktar]) return SendClientMessage(playerid, -1, "Paraniz Yetersiz (!)");
        GivePlayerMoney(playerid, (pFatura[playerid][fMiktar] * -1)); pFatura[playerid][fMiktar] = 0;
    }
    else
    {
        return SendClientMessage(playerid, -1, "Fatura Odemek İcin Gerekli Alanda Degilsiniz (!)");
    }
    return 1;
}



Kjen

Alıntı yapılan: ThePosition - 10 Ağustos 2021, 15:40:38
Şu an için biraz meşgulüm ve deneme fırsatım olmadı ancak sen aşağıdaki şekilde deneyebilirsin. YARICAP, X, Y, Z degerlerini fatura odenecek noktanin koordinatlarına göre düzenlemelisin. Herhangi bir sorun olursa buradan veya özelden iletişime geçebilirsin, iyi forumlar :
enum E_FATURA
{
    bool:fYetki,
    fMiktar
}
new pFatura[MAX_PLAYERS][E_FATURA];
CMD:fyetkiver(playerid, params[])
{
    new fid;
    if (sscanf(params, "d", fid)) return SendClientMessage(playerid, -1, "/fyetkiver [playerid]");
    if (!IsPlayerConnected(fid)) return SendClientMessage(playerid, -1, "Oyuncu Aktif Degil (!)");
    if (pFatura[fid][fYetki]) return SendClientMessage(playerid, -1, "Oyuncu Zaten Yetkili (!)");
    pFatura[fid][fYetki] = true;
    return 1;
}
CMD:fyetkial(playerid, params[])
{
    new fid;
    if (sscanf(params, "d", fid)) return SendClientMessage(playerid, -1, "/fyetkial [playerid]");
    if (!IsPlayerConnected(fid)) return SendClientMessage(playerid, -1, "Oyuncu Aktif Degil (!)");
    if (!pFatura[fid][fYetki]) return SendClientMessage(playerid, -1, "Oyuncu Zaten Yetkili Degil(!)");
    pFatura[fid][fYetki] = false;
    return 1;
}
CMD:fkes(playerid, params[])
{
    new fid, fmiktar;
    if (sscanf(params, "dd", fid, fmiktar)) return SendClientMessage(playerid, -1, "/fkes [playerid] [miktar]");
    if (!IsPlayerConnected(fid)) return SendClientMessage(playerid, -1, "Oyuncu Aktif Degil (!)");
    if (!pFatura[playerid][fYetki]) return SendClientMessage(playerid, -1, "Yetkiniz Yok (!)");
    if ( pFatura[fid][fMiktar] > 0) return SendClientMessage(playerid, -1, "Oyuncuya Zaten Fatura Kesilmis (!)");
    pFatura[fid][fMiktar] = fmiktar;
    return 1;
}
CMD:fsil(playerid, params[])
{
    new fid;
    if (sscanf(params, "d", fid)) return SendClientMessage(playerid, -1, "/fsil [playerid]");
    if (!IsPlayerConnected(fid)) return SendClientMessage(playerid, -1, "Oyuncu Aktif Degil (!)");
    if (pFatura[fid][fMiktar] == 0) return SendClientMessage(playerid, -1, "Oyuncunun Faturasi Su Anda Yok (!)");
    pFatura[fid][fMiktar] = 0;
    return 1;
}
CMD:fode(playerid)
{
    if(IsPlayerInRangeOfPoint(playerid, YARICAP, X, Y, Z))
    {
        if(pFatura[playerid][fMiktar] == 0) return SendClientMessage(playerid, -1, "Odenecek Faturaniz Yok (!)");
        if(GetPlayerMoney(playerid) < pFatura[playerid][fMiktar]) return SendClientMessage(playerid, -1, "Paraniz Yetersiz (!)");
        GivePlayerMoney(playerid, (pFatura[playerid][fMiktar] * -1)); pFatura[playerid][fMiktar] = 0;
    }
    else
    {
        return SendClientMessage(playerid, -1, "Fatura Odemek İcin Gerekli Alanda Degilsiniz (!)");
    }
    return 1;
}


Fatura kesilen kişi relog attığında silinecektir.


squarepants

@Kjen her iki durum da söz konusudur, tekrar girişte kimlik numarası değişmediği sürece değer sabit kalır. Aksi halde evet değişecek. Ben bu tip ayrıntıları şahsın kendine bırakıyorum, MySQL ile çalışırken değeri resetlemeden önce verileri yansıtmalıdır, bu nedenle ek bir değişiklik yapma gereği duymadım. Bu arada yorumun için teşekkür ediyorum.

Yine de resetlemek isteyenler aşağıdaki şekilde uygulayabilirler :
public OnPlayerDisconnect(playerid, reason)
{
    pFatura[playerid][fYetki] = false; pFatura[playerid][fMiktar] = 0;
    return 1;
}


#McAllen

https://cdn.discordapp.com/attachments/866331593000878080/874669453823074375/Screenshot_49.png

Hata bu ThePosition'un yazdığı kodu yapıştırdım ek olarak moduma göre düzenledim

Developer

squarepants

@JenniferAR kodlari test ettim ve herhangi bir hata almadim, moduna yanlış ekleme ihtimalin olabilir, tekrar göz atabilir misin?


#McAllen

Tamamdır sorun çözüldü, kod çalışıyor @ThePosition 'a teşekkürler.

Developer