Neler yeni

Foruma hoş geldin, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Türkiye'nin İlk ve tek FiveM forum adresi

Forum adresimize hoş geldin FiveMTürk olarak amacımız siz değerli kullanıcılarımıza en aktif fikir ve paylaşım platformu sunmak bir yana en güvenilir şekilde alışveriş yapabileceğiniz bir platform sunmaktır.
DF DF
DF DF
DF DF

Rehber GCPHONE IBAN ENTEGRE

Wermacht

Üye
FT Kullanıcı
Katılım
3 yıl 9 ay 21 gün
Mesajlar
638
Selam dostlar, bir ara internette araştırıp bulamamıştım sonra ben yapayım dedim ve biraz uğraştıktan sonra bu sonuç çıktı. Bu kodları satanlar varmış. Olayı kökünden çözelim o zaman :D

Öncelikle gcphone > server > bank.lua'yı açıp birkaç editleme ve ekleme çıkarma yapacağız.

gcPhone:transfer eventini şu şekilde değiştiriyoruz;
Kod:
RegisterServerEvent("gcPhone:transfer")
AddEventHandler("gcPhone:transfer", function(a, amount)
    _source = source
    local r5k.senderIBAN = r5k.GetIBAN(_source)
   
    a = tostring(a)

    duzenlenmisAmount = comma_value(amount)

    local gerceklesti = r5k.BankParaGonder(_source, a, tonumber(amount))
    if gerceklesti then
        local forTargetKimden = r5k.GetNameFromIBAN(r5k.senderIBAN)
        local forSenderKimden = r5k.GetNameFromIBAN(a)
        Citizen.Wait(500)
        local r5k.Saat = r5k.SaatKac()
    end
end)

Müşterimin isteği üzerine tamamen BETTERBANK'a uyarlamıştım, o yüzden 16. satır'a şu kodları ekleyebilirsiniz, bu kodlar betterbank'a son işlem eklemeye yarar.
Kod:
TriggerEvent('BetterBank:SonIslemEkle', a, 'gelenTransfer', tostring(duzenlenmisAmount), r5k.Saat, forTargetKimden, tonumber(amount))
TriggerEvent('BetterBank:SonIslemEkle', r5k.senderIBAN, 'gidenTransfer', tostring(duzenlenmisAmount), r5k.Saat, forSenderKimden, tonumber(amount))
Ardından aşağıda boş olan yerlere şu kodları ekliyoruz;

Kod:
function r5k.GetIdentifierFromIBAN(IBAN)
    local result = MySQL.Sync.fetchAll('SELECT identifier FROM users WHERE IBAN = @IBAN', {
        ['@IBAN'] = IBAN,
    })
    Citizen.Wait(100)
    return result[1].identifier
end

function r5k.BankParaGonder(source, IBAN, miktar)

    local _source = source
    local xPlayer = ESX.GetPlayerFromId(_source)
    local sourceBalance = xPlayer.getAccount('bank').money
    local TIBAN = IBAN

    local targetIdentifier = r5k.GetIdentifierFromIBAN(IBAN)
    local targetID = ESX.GetPlayerFromIdentifier(targetIdentifier)

    if miktar < sourceBalance then
        if targetID == nil then
            local result = MySQL.Sync.fetchAll('SELECT accounts FROM users WHERE IBAN = @TIBAN', {
                ['@TIBAN'] = TIBAN,
            })

            local sqlAccountTable = json.decode(result[1].accounts)
            if (sqlAccountTable["bank"] ~= nil) then
                xPlayer.removeAccountMoney('bank', tonumber(miktar))
                sqlAccountTable["bank"] = sqlAccountTable["bank"] + miktar
                sqlAccountTable = json.encode(sqlAccountTable)
                MySQL.Async.insert("UPDATE users SET accounts = @yeniPara WHERE IBAN = @TIBAN", {
                    ['@TIBAN'] = TIBAN,
                    ['@yeniPara'] = sqlAccountTable
                })
                return true
            end
        else
            xPlayer.removeAccountMoney('bank', tonumber(miktar))
            targetID.addAccountMoney('bank', tonumber(miktar))
            return true
        end
    else
        return false
    end
end

function r5k.GetIBAN(source, id)
    local xPlayer = getPlayerID(source)
    print(xPlayer)

    local result = MySQL.Sync.fetchAll('SELECT IBAN FROM users WHERE identifier = @identifier', {
        ['@identifier'] = xPlayer
    })

    print(result[1].IBAN)

    local x = result[1].IBAN
    Citizen.Wait(100)
    return x
end

function myfirstname(a, b, c)
    MySQL.Async.fetchAll("SELECT firstname, phone_number FROM users WHERE users.firstname = @firstname AND users.phone_number = @phone_number", {["@phone_number"] = a, ["@firstname"] = b}, function(d)
        c(d[1])
    end)
end

function r5k.GetNameFromIBAN(IBAN)
    local result = MySQL.Sync.fetchAll('SELECT firstname, lastname FROM users WHERE IBAN = @IBAN', {
        ['@IBAN'] = IBAN
    })
    local nameAndIBAN = result[1].firstname .." " ..result[1].lastname .." - " ..IBAN
    return nameAndIBAN
end

function r5k.SaatKac()
    local date_table = os.date("*t")
    local hour, minute = date_table.hour, date_table.min
    return (os.date("%d-%m-%Y ") ..hour ..":" ..minute)
end

function comma_value(n)
    local left,num,right = string.match(n,'^([^%d]*%d)(%d*)(.-)$')
    return "$" ..(left..(num:reverse():gsub('(%d%d%d)','%1.'):reverse())..right) ..",00"
end

Çalışmaz ise IBAN yazanları iban yapabilirsiniz. Umarım bu paylaşımdan sonra parayla satılmaya çalışmaz. İstek ve sorunlarınız için; wermacht#2747
 
Son düzenleme:
Selam dostlar, bir ara internette araştırıp bulamamıştım sonra ben yapayım dedim ve biraz uğraştıktan sonra bu sonuç çıktı. Bu kodları satanlar varmış. Olayı kökünden çözelim o zaman :D

Öncelikle gcphone > server > bank.lua'yı açıp birkaç editleme ve ekleme çıkarma yapacağız.

gcPhone:transfer eventini şu şekilde değiştiriyoruz;
Kod:
RegisterServerEvent("gcPhone:transfer")
AddEventHandler("gcPhone:transfer", function(a, amount)
    _source = source
    local r5k.senderIBAN = r5k.GetIBAN(_source)
   
    a = tostring(a)

    duzenlenmisAmount = comma_value(amount)

    local gerceklesti = r5k.BankParaGonder(_source, a, tonumber(amount))
    if gerceklesti then
        local forTargetKimden = r5k.GetNameFromIBAN(r5k.senderIBAN)
        local forSenderKimden = r5k.GetNameFromIBAN(a)
        Citizen.Wait(500)
        local r5k.Saat = r5k.SaatKac()
    end
end)

Müşterimin isteği üzerine tamamen BETTERBANK'a uyarlamıştım, o yüzden 16. satır'a şu kodları ekleyebilirsiniz, bu kodlar betterbank'a son işlem eklemeye yarar.
Kod:
TriggerEvent('BetterBank:SonIslemEkle', a, 'gelenTransfer', tostring(duzenlenmisAmount), r5k.Saat, forTargetKimden, tonumber(amount))
TriggerEvent('BetterBank:SonIslemEkle', r5k.senderIBAN, 'gidenTransfer', tostring(duzenlenmisAmount), r5k.Saat, forSenderKimden, tonumber(amount))
Ardından aşağıda boş olan yerlere şu kodları ekliyoruz;

Kod:
[/CENTER]
function r5k.GetIdentifierFromIBAN(IBAN)
    local result = MySQL.Sync.fetchAll('SELECT identifier FROM users WHERE IBAN = @IBAN', {
        ['@IBAN'] = IBAN,
    })
    Citizen.Wait(100)
    return result[1].identifier
end

function r5k.BankParaGonder(source, IBAN, miktar)

    local _source = source
    local xPlayer = ESX.GetPlayerFromId(_source)
    local sourceBalance = xPlayer.getAccount('bank').money
    local TIBAN = IBAN

    local targetIdentifier = r5k.GetIdentifierFromIBAN(IBAN)
    local targetID = ESX.GetPlayerFromIdentifier(targetIdentifier)

    if miktar < sourceBalance then
        if targetID == nil then
            local result = MySQL.Sync.fetchAll('SELECT accounts FROM users WHERE IBAN = @TIBAN', {
                ['@TIBAN'] = TIBAN,
            })

            local sqlAccountTable = json.decode(result[1].accounts)
            if (sqlAccountTable["bank"] ~= nil) then
                xPlayer.removeAccountMoney('bank', tonumber(miktar))
                sqlAccountTable["bank"] = sqlAccountTable["bank"] + miktar
                sqlAccountTable = json.encode(sqlAccountTable)
                MySQL.Async.insert("UPDATE users SET accounts = @yeniPara WHERE IBAN = @TIBAN", {
                    ['@TIBAN'] = TIBAN,
                    ['@yeniPara'] = sqlAccountTable
                })
                return true
            end
        else
            xPlayer.removeAccountMoney('bank', tonumber(miktar))
            targetID.addAccountMoney('bank', tonumber(miktar))
            return true
        end
    else
        return false
    end
end

function r5k.GetIBAN(source, id)
    local xPlayer = getPlayerID(source)
    print(xPlayer)

    local result = MySQL.Sync.fetchAll('SELECT IBAN FROM users WHERE identifier = @identifier', {
        ['@identifier'] = xPlayer
    })

    print(result[1].IBAN)

    local x = result[1].IBAN
    Citizen.Wait(100)
    return x
end

function myfirstname(a, b, c)
    MySQL.Async.fetchAll("SELECT firstname, phone_number FROM users WHERE users.firstname = @firstname AND users.phone_number = @phone_number", {["@phone_number"] = a, ["@firstname"] = b}, function(d)
        c(d[1])
    end)
end

function r5k.GetNameFromIBAN(IBAN)
    local result = MySQL.Sync.fetchAll('SELECT firstname, lastname FROM users WHERE IBAN = @IBAN', {
        ['@IBAN'] = IBAN
    })
    local nameAndIBAN = result[1].firstname .." " ..result[1].lastname .." - " ..IBAN
    return nameAndIBAN
end

function r5k.SaatKac()
    local date_table = os.date("*t")
    local hour, minute = date_table.hour, date_table.min
    return (os.date("%d-%m-%Y ") ..hour ..":" ..minute)
end

function comma_value(n)
    local left,num,right = string.match(n,'^([^%d]*%d)(%d*)(.-)$')
    return "$" ..(left..(num:reverse():gsub('(%d%d%d)','%1.'):reverse())..right) ..",00"
end
[CENTER]

Çalışmaz ise IBAN yazanları iban yapabilirsiniz. Umarım bu paylaşımdan sonra parayla satılmaya çalışmaz. İstek ve sorunlarınız için; wermacht#2747
Yararlı paylaşım emeğine sağlık. İyi forumlar.
 
unexpected symbol near '.' hatası veriyor çözümü nedir?
 
+rep, keşke faturalar ve telefondaki geçmişi işlemlerini gösterseydin.
 

Forumdan daha fazla yararlanmak için giriş yapın yada üye olun!

Forumdan daha fazla yararlanmak için giriş yapın veya kayıt olun!

Kayıt ol

Forumda bir hesap oluşturmak tamamen ücretsizdir.

Şimdi kayıt ol
Giriş yap

Eğer bir hesabınız var ise lütfen giriş yapın

Giriş yap

Bu konuyu görüntüleyen kullanıcılar

Tema düzenleyici

Tema özelletirmeleri

Granit arka planlar

Lütfen Javascript'i etkinleştirin!Javascript'i etkinleştirin!