Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Query - aktualny stan danej tabeli, działania na niej oraz aktualizacja


Rekomendowane odpowiedzi

Opublikowano

Elo

 

Dam wam wycinek z questa który miał zwracać aktualny stan SM, odejmowac od niego daną ilosc sm, oraz aktualizować to w bazie.

Niestety po kliknięciu na "Tak" rozmowa z npc się kończy i nic dalej się nie dzieje, okienko znika.

Teleport na razie sobie darowałem, gdyż chciałem zobaczyć czy poprawnie wypisuje wszystkie dane.

Niestety jest j/w napisałem, nie mam już pomysłów. Ktoś wie czemu to nie śmiga ?

 

Wycinek:

say(" Chcesz sie przeniesc " )
if select("Tak","Nie") == 2 then
    return
else
    local id = pc.get_account_id()
    local odjete = stan-100 -- liczba SM odjętych jest stała
    local stan = query("SELECT cash FROM account.account WHERE id = '"..id.."';")  -- ma zwracać stan tabelki "cash" poprzez id konta
        if stan >= 100 then
            query("UPDATE account.account SET cash = '"..odjete.."' WHERE id = '"..stan.."';") -- ma aktualizować tabelke cash poprzez zapytanie stan czyli id konta
            syschat(" Z twojego konta pobrano opłatę w wysokości 100SM ")
            syschat(" Na twoim koncie pozostało: "..stan.." SM ")
            -- d.join(71)
            -- pc.setqf("wejscie", 1)
            say(" Stan twoich SM wynosi: "..stan.." SM! ")
            say(" Twój id konta to:"..id.." ")
        else
            syschat(" Masz zbyt mało smoczych monet ")
            syschat(" Brakuje Ci jeszcze: "..100-stan.." SM ! ")
        end
 
http://wklej.to/xIejb
 

Oto moja funkcja query z questlib, nie wiem moze tutaj cos jest nie tak. Pliczki Terenzo z game 34k, passy do mysql standardowe: root/metineth

function query(sql)
    local var = {}
    var.scriptfile = 'sc_'..pc.get_name()..number(1,999)..number(2,999)..number(3,999)
    var.outputfile = 'op_'..pc.get_name()..number(1,999)..number(2,999)..number(3,999)
    sql = string.gsub(sql,'"',"'")
    var.str = "/usr/local/bin/mysql -N -L -umt2 -pmt2!@# < "..var.scriptfile.." > "..var.outputfile
    script = io.open(var.scriptfile,"a+")
    script:write(sql)
    script:close()
    os.execute(var.str)
    back = io.open(var.outputfile)
    quer = back:read()
    back:flush()
    back:close()
    os.remove(var.scriptfile)
    os.remove(var.outputfile)
    return quer
end
http://wklej.to/vyDrc

PS. Quest nie jest winny, gdyż dopiero po dodaniu tych zapytań przestał działać.

Opublikowano

zrób query w ten sposób :

local id1 = query("SELECT account_id FROM player.player WHERE name = '"..pc.get_name().."';")

local stan = query("SELECT cash FROM account.account WHERE id = '"..id1.."';")

query("UPDATE account.account SET cash=cash-100 WHERE id='"..id1.."';")

 

i napisz czy zadziałało :)

Opublikowano

@DelightS

 

Tylko że za każdym razem ma odejmować od aktualnego stanu 100 monet.

 

W twoich zapytaniach tego nie ma.

 

Jak już to :

query("UPDATE account.account SET cash=cash-100 WHERE id='"..id1.."';")

Czyż nie ?

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...