Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2019-10-13, 19:25


Pr0One







Wiek: 24
Na forum: 3139 dni
Posty: 18
Nick w MP: Pr0One



Respekt: 60

Chcia?bym zrobi? system przelew?w na moim serwerze tylko gdy s? 2 przelewy w bazie danych oczekuj?ce na realizacje przez gracza do ktorego zosta? wys?any to sie buguje i pisze ze nia ma oczekujacych przelewow. A gdy jest 1 przelew to wszystko dziala bardzo dobrze. Dlatego szukam pomocy z tym b??dem i prosi?bym do?wiadczonych o pomoc. Tutaj jest kod:
ServerSide
function getKwotaFromBank(plr)
    local result=exports["gl-db"]:dbGet("SELECT * FROM gl_przelewy WHERE do=?"plr)
    if result and #result > 0 then
        return result[1].ile
    end
    return 0
end

function getKtoWyslalPrzelew(plr)
    local result=exports["gl-db"]:dbGet("SELECT * FROM gl_przelewy WHERE kto=?"plr)
    if result and #result > 0 then
        return result[1].kto
    end
    return 0
end

function getNickKtoWyslalPrzelew(plr)
    local uid getKtoWyslalPrzelew(plr)
    local result=exports["gl-db"]:dbGet("SELECT * FROM gl_users WHERE id=?"uid)
    if result and #result > 0 then
        return result[1].login
    end
    return 0
end

function onBankTransfer(plrcmd)
    local uid getElementData(plr"player:sid")
    local bank getElementData(plr"player:bank")
    local sender exports["gl-db"]:dbGet("SELECT * FROM gl_przelewy WHERE do=?"uid)
    if #sender == uid then
        local kwota getKwotaFromBank(uid)
        local odkogo getNickKtoWyslalPrzelew(uid)
        outputChatBox("#008000[PRZELEWY] #ffffffOtrzyma?e?(a?) przelew o warto?ci: "..kwota.." #7FFF00PLN".." #ffffffod #FFFF00"..odkogo.."#ffffff!"plr,  2251990true)
        exports["gl-db"]:dbSet("UPDATE gl_users SET bank_money=bank_money+? WHERE id=?"kwotauid)
        exports["gl-db"]:dbSet("DELETE FROM gl_przelewy WHERE do=?"uid)
        setElementData(plr"player:bank",bank+kwota)
    else
        outputChatBox("#008000[PRZELEWY] #ffffffNie posiadasz oczekuj?cych przelew?w!"plr2251990true)
    return end
end


Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-10-13, 22:36


Wilq







Wiek: 24
Na forum: 4428 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Zastanawiaj?ce jest to, ?e w bazie MySQL szukasz rekordu po zmiennej gracza (gracz, element z MTA jako element w bazie danych). Mo?e zmie? to na jaki? numer identyfikacyjny gracza (uid).

Domy?lam si? te?, ?e te przelewy p??niej si??nadpisuj?, kiedy dodasz 2 i pobiera Ci wszystkie przelewy oczekuj?ce. Wtedy te? musisz wykorzysta? odpowiedni JEDEN przelew. Sortujesz wtedy po kwocie lub odbiorcy przelewu.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-10-13, 23:48


Pr0One







Wiek: 24
Na forum: 3139 dni
Posty: 18
Nick w MP: Pr0One



Respekt: 60

Tylko, ?e wlasnie nie wiem jak zrobic tak, aby te przelewy wszystkie sie wykonaly po koleji. Szukalem pomocy u roznych ludzi, ale nie zabardzo potrafi? pom?c.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-10-14, 01:52


.RiV







Wiek: 25
Na forum: 3588 dni
Posty: 554
Nick w MP: Split

Piwa: 2596

Respekt: 597,8
Respekt: 597,8


Więcej informacji znajdziesz w Wikipedii MTA:

getPlayerName


Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-10-14, 14:12


Pr0One







Wiek: 24
Na forum: 3139 dni
Posty: 18
Nick w MP: Pr0One



Respekt: 60

Chcia?bym, ?eby odbiera?o tylko ostani przelew. Nie wszystkie na raz.
Edit: Juz zrobilem. (po dacie szuka tera)
I potrzebuje ifa, ze jak nie ma zadnego przelewu to pisze nie masz oczekujacych przelew?w. Prosze o pomoc. :)

function onBankTransfer(plrcmd)
    local uid getElementData(plr"player:sid")
    local bank getElementData(plr"player:bank")
    local sender exports["gl-db"]:dbGet("SELECT * FROM gl_przelewy WHERE do=?"uid)
    local ostatni exports["gl-db"]:dbGet("SELECT do, kiedy FROM gl_przelewy WHERE do=? AND kiedy IN (SELECT max(kiedy) FROM gl_przelewy)"uid)
    if ostatni and sender then
        local kwota getKwotaFromBank(uid)
        local odkogo getNickKtoWyslalPrzelew(uid)
        outputChatBox("#008000[PRZELEWY] #ffffffOtrzyma?e?(a?) przelew o warto?ci: "..kwota.." #7FFF00PLN".." #ffffffod #FFFF00"..odkogo.."#ffffff!"plr,  2251990true)
        exports["gl-db"]:dbSet("UPDATE gl_users SET bank_money=bank_money+? WHERE id=?"kwotauid)
        exports["gl-db"]:dbSet("DELETE FROM gl_przelewy WHERE do=? AND ile=?"uidkwota)
        setElementData(plr"player:bank",bank+kwota)
    else
        outputChatBox("#008000[PRZELEWY] #ffffffNie posiadasz oczekuj?cych przelew?w!"plr2251990true)
    return end
end


Postaw piwo autorowi tego posta
 

 
Tagi: system :: przelewów
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA Odpowiedz do tematu

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku