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

Wysłany: 2022-12-24, 17:20


jg2aviva1

Rusek :D






Wiek: 25
Na forum: 4134 dni
Posty: 445
Nick w MP: _Wolfenstei[N]^.^

Piwa: 1033

Respekt: 240
Respekt: 240Respekt: 240

Ostrzeżeń: 60%
Witam. Od tygodnia ju? pisz? skrypt na biznesy i mam problem z aktualizacj? danych biznesu, a dok?adnie kasy. Co jaki? czas ma dodawa? do konta biznesu siano, napisa?em takie o to bzdury i niby dzia?a, ale nie do ko?ca. Pieni?dze aktualizuje tylko na koncie biznesu pierwszego (na pr?b? mam ich trzy), a na reszcie ju? nie aktualizuje. Nie wiem totalnie o co chodzi, gdy? w przypadku pierwszego biznesu podany kod dzia?a, przy drugim nie bo nie ma w?a?ciciela a przy trzecim ju? totalnie nic nie robi. Kto? co? tutaj widzi? Stawiam browary :piwo: i repe R*

Przy okazji zak?adania posta. Ma kto? jaki? pomys? jak zrobi? to normalnie, obliczone z zegaru serwera a nie na setTimer? Bo setTimer zdaje egzamin, ale nie w przypadku gdybym restartowa? skrypt albo serwer :mrgreen:



function nabijaj_siano ()
    for kv in ipairs (getElementsByType("pickup"resourceRoot)) do
        if getElementData (v"biznes:nabijacz"then
            if getElementData (v"biznes:owner") == "Brak w?a?ciciela" then return end
            wlasciciel_wyplata getElementData (v"biznes:owner")
            id_wyplata getElementData (v"biznes:id")
            zarobek_wyplata getElementData (v"biznes:zarobek")
            czas_wyplata getElementData (v"biznes:godziny")


            setTimer (function ()
                local sprawdzanie dbQuery (biznesy"SELECT * FROM BIZNESY WHERE wlasciciel='"..wlasciciel_wyplata.."' AND id='"..id_wyplata.."'")
                local wynik_sprawdzania dbPoll (sprawdzanie, -1)
                for keyvav in ipairs (wynik_sprawdzania) do
                    aktualne_siano tonumber(vav["utarg"])
                end
                k*** = aktualne_siano zarobek_wyplata
                outputDebugString (tostring(k***))

                local zapis_kasy dbQuery (biznesy"UPDATE BIZNESY SET utarg=? WHERE wlasciciel=? AND id=?"k***, wlasciciel_wyplataid_wyplata)
                dbFree (zapis_kasy)
                outputDebugString ("* Zapis utargu dla biznesu o ID "..tostring(id_wyplata).." wykonany.")
                endczas_wyplata*50000)
        end
    end
end


Podpis



GTAO Member: 2015-08-23, 14:26

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
borsuk
Wysłany: 2022-12-25, 15:28


Przemcio







Wiek: 32
Na forum: 1926 dni
Posty: 58

Piwa: 79

Respekt: 80

"jg2aviva1" napisał/a:

Przy okazji zak?adania posta. Ma kto? jaki? pomys? jak zrobi? to normalnie, obliczone z zegaru serwera a nie na setTimer? Bo setTimer zdaje egzamin, ale nie w przypadku gdybym restartowa? skrypt albo serwer :mrgreen:


Odpowiem tylko na to, bo pierwszy problem ma zdecydowanie zbyt ma?o informacji, ?eby cokolwiek wywnioskowa?, poza tym nie czaj? czemu do drugiego biznesu ma si? cokolwiek dodawa?, jak sam napisa?e?, ?e nie ma tam w?a?ciciela, wi?c... chyba tak ma by? XD?

To tak, je?li chcesz zrobi? co?, co b?dzie dzia?a?o "na wy??czonym" serwerze, to przy wy??czaniu serwera zapisujesz sobie w bazie timestamp (poprzez getTime po stronie serwera) momentu, w kt?rym wy??czy?e? serwer, potem przy odpalaniu serwera pobierasz ten timestamp z bazy jak i aktualny timestamp (zn?w przez getTime) i liczysz r??nic? mi?dzy nimi. Timestamp jest wyra?any w sekundach, wi?c je?li np. co minut? do biznesu ma si? doda? hajs, to dzielisz r??nic? timestamp?w przez 60, pozbywasz si? ewentualnej reszty z dzielenia (poprzez np. dzielenie modulo i r??nic?, albo formatowanie stringa - to pierwsze b?dzie szybsze) i liczba ca?kowita, kt?ra Ci wyjdzie to ilo?? tego ile razy masz powt?rzy? dodanie hajsu do biznesu, dalej wiadomo - p?tla for i u?ycie metody, kt?r? dodajesz hajsy (czyli chyba tej z posta).

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
borsuk
Wysłany: 2022-12-25, 19:56


xyzzzikk

.gg






Wiek: 18
Na forum: 2774 dni
Posty: 175
Nick w MP: aspyk

Piwa: 6499

Respekt: 30,5

sprawdz ile pickupow to ci daje


local p getElementsByType("pickup"resourceRoot)
print(#p)


jezeli 1 to masz powod dlaczego, jezeli 3 to problem dotyczy czegos innego

i sprobuj tez uzyc getElementsByType bez resourceRoot

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
borsuk
Wysłany: 2022-12-26, 14:37


jg2aviva1

Rusek :D






Wiek: 25
Na forum: 4134 dni
Posty: 445
Nick w MP: _Wolfenstei[N]^.^

Piwa: 1033

Respekt: 240
Respekt: 240Respekt: 240

Ostrzeżeń: 60%
Przemcio, do pierwszego.

Chodzi?o mi o to, ?e aktualnie mam 3 biznesy, jeden jest bez w?a?ciciela, dwa s? moje. Pierwszy si? nie aktualizuje, wi?c dzia?a git bo nikt go nie ma wi?c kasy nie nabija. Drugi jest aktualizowany tak jak powinno by?. Trzeci biznes ma w?a?ciciela, ale mimo tego nic tam si? nie dzieje, kasa si? nie nalicza ani nie ma nawet ?adnej informacji o nim w debugu (bo mam testowo debugStringi ?eby wiedzie? czy liczy czy nie)

Do drugiego, dzi?ki za podsuni?cie pomys?u, potem z tym pokombinuj? tylko b?d? musia? kolejn? kolumn? doda? do bazy, wi?c od nowa b?d? musia? robi? biznesy. Chyba, ?e jest jaki? kod, ?eby doda? kolejn? kolumn?? Bo zawsze jak co? dodawa?em to usuwa?em baz? i dorzuca?em kolumn? do CREATE TABLE IF NOT EXISTS :d


xyzzzikk, wrzuci?em to sobie w kod i wysz?o 6 (dziel na dwa bo ka?dy biznes ma jeszcze pickup panelu). Czyli tak naprawd? ?apie wszystkie pickupy jakie powinno, wi?c problem mam gdzie? w kodzie, kt?ry jest wy?ej. Chyba, ?e wszystko z tym fragmentem jest git to wtedy wrzuc? najwy?ej ca?y kod.

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
borsuk
Wysłany: 2022-12-26, 16:36


Przemcio







Wiek: 32
Na forum: 1926 dni
Posty: 58

Piwa: 79

Respekt: 80

Kt?re to debugStringi? Te co s? w kodzie, kt?ry wklei?e?? Jak tak, to masz ich tam o jakie? du?o za ma?o - jak chcesz do?? do tego co tam si? dzieje, to debuguj ka?dy krok funkcji, czyli p?tle, ify, wszystko, bo tak to mo?na wr??y? ze szklanej kuli dlaczego nie dzia?a, powod?w mo?e by? z 20. Poza tym, u?ywaj callbacka w dbQuery, je?li ca?y ten skrypt jest pisany na oczekuj?cym dbPollu, to b?dzie freezowa? ca?y skrypt serwera co odczyt z bazy, straszna kupa XD Niby masz odno?nik do callbacka, ale i tak robisz dbPoll na timeoucie -1.

A co do dodawania tabeli, to oczywi?cie, ?e si? da:

Kod:

ALTER TABLE baza.tabela ADD COLUMN nazwa dataType domyslnaWartosc AFTER [po jakiej kolumnie ma si? to stworzy?];


Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
borsuk
Tagi: nie :: zapisuje :: wszystkich :: biznesó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 » Nie zapisuje wszystkich biznesów 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