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

[Quest]Doładowanie SM po użyciu itemu


Steico

Rekomendowane odpowiedzi

Opublikowano

 

do questlib

function query(query,user,pw)
local var = {}
var.pre = ''
if user ~= nil then
var.pre = var.pre..' -u'..user
end
if pw ~= nil then
var.pre = var.pre..' -p'..pw
end
var.scriptfile = 'sc_'..pc.get_name()
var.outputfile = 'op_'..pc.get_name()
query= string.gsub(query,'"',"'")
var.str = "mysql -N -L "..var.pre.." < "..var.scriptfile.." > "..var.outputfile
script = io.open(var.scriptfile,"a+")
script:write(query)
script:close()
os.execute(var.str)
zwroc = io.open(var.outputfile)
pc.setqf("quer", zwroc:read())
zwroc:flush()
zwroc:close()
os.remove(var.scriptfile)
os.remove(var.outputfile)
return pc.getqf("quer")
end

 

Do quest_functions

query

 

 

czesc ! to moj pierwszy quest z wykorzystaniem lua sql ..

ma on za zadanie dodać +1000 Smoczych monet po użyciu Itemu ..

Jeżeli są jakieś błędy proszę o negowanie i poprawienie : D

 

quest test begin
state start begin
when 11.use begin
local c = query("SELECT coins FROM account.account", "mt2", "mt2!@#")
say("Gratujację ! ")
say("Zdobyłeś Smoczy Owoc ! ")
say("Dostaniesz teraz +50 Smoczych Monet! ")
say("Liczba Monet Przed doładowaniem "..c.."")
local b = query("UPDATE coins+120 FROM account.account", "mt2", "mt2!@#")
end
end
end

konto usuniete

Opublikowano

ja w quescie widze 50 monet wpisane a w dialogu piszesz o 1000 monetach

 

coins+120

 

a nie 50 :D. a w tekscie pisze 50 ;p. a zrobione jest + 120 ;o.

Opublikowano

1. Brak średników na końcu query

2. źle skonstruowane query dla UPDATE. PRawidłowe:

UPDATE account.account SET coins=coins+x WHERE id=""..pc.get_account_id().."";

 

//edit: 3. brak usuwania itemu po użyciu. Dodaj item.remove() lub pc.removeitem(11, 1)

57199140501148694665.png

Opublikowano

monety=monety+120 - bardziej po polsku. Ten item dodałby 120 monet do KAŻDEGO konta w tabelce account :> Pierwsze zapytanie nawet nie wiem czy zadziała. Tak czy inaczej powinno być tak:

UPDATE account.account SET cash = cash + ".. ilocc .." WHERE id = ".. pc.get_account_id() ..";

A jeszcze przed tym zdefiniowanie lokalnej wartości, czyli (przed zapytaniami sql):

local ilocc = 1000
Opublikowano

local sm = query("SELECT coins FROM account.account WHERE login='"..pc.get_account.."';")

local new math.floor(sm+123)

query("UPDATE account.account SET coins='"..new.."';")

Z głowy pisane, o wiele lepsze.

1351279892-U721655.jpg
Opublikowano

quest test begin
state start begin
when 11.use begin
local c = query("SELECT cash FROM account.account WHERE id = '"..pc_get_account_id.."';")
say("Gratujację ! ")
say("Zdobyłeś Smoczy Owoc ! ")
say("Dostaniesz teraz +50 Smoczych Monet! ")
say("Liczba Monet Przed doładowaniem "..c.."")
query("update account.account set cash=cash + 1000 where id='"..pc_get_account_id.."';")
local c1 = query("SELECT cash FROM account.account WHERE id = '"..pc_get_account_id.."';")
say("Liczba Monet po Doładowaniu "..c1.." !! ")
end
end
end

 

Ten query ma wykonane w 100% dobrze

Pliki GladoR s1/ Divine / GladoR'a s2 medium/hard

Możemy się jakos dogadać w sprawie plików PW

 

New Project Start Workout

Opublikowano

quest test begin

state start begin

when 11.use begin

local c = query("SELECT coins FROM account.account", "mt2", "mt2!@#")

say("Gratujację ! ")

say("Zdobyłeś Smoczy Owoc ! ")

say("Dostaniesz teraz +50 Smoczych Monet! ")

say("Liczba Monet Przed doładowaniem "..c.."")

local b = query("UPDATE coins+120 FROM account.account", "mt2", "mt2!@#")

end

end

end

 

Zabieram sie do testowania na VPS :0 Jak bedzie 100 % dzialac dam lajka i edita

68888487823051815750.png

Opublikowano

ale Wy mącicie... na chuj podawać passy do usera, skoro zostało już ustawione w funkcji ? :O

local b = query("UPDATE coins+120 FROM account.account", "mt2", "mt2!@#")

Najs bug, każdemu daje po 120 SM :)

I zwalone zapytanie...

 

local acc = pc.get_account()

local sm = query("SELECT coins FROM account.account WHERE login="'..acc.."';")

local cena = math.floor(sm+120)

query(""UPDATE account.account SET coins='"..cena.."' WHERE login='"..acc.."';")

 

Z głowy, ja bym tak zrobił.

1351279892-U721655.jpg
Opublikowano

ale Wy mącicie... na chuj podawać passy do usera, skoro zostało już ustawione w funkcji ? :O

 

"UPDATE coins+120 FROM account.account", "mt2", "mt2!@#"

Najs bug, każdemu daje po 120 SM :)

funkcja, którą podał wymaga podania po query loginu i hasła do mysql.

 

a to nie bug bo i tak nie zadziała bo złe query jest.

Opublikowano

funkcja, którą podał wymaga podania po query loginu i hasła do mysql.

 

a to nie bug bo i tak nie zadziała bo złe query jest.

Od kiedy ?

function query(sql)
user = "mt2"
pw = "mt2!@#"
local var = {}
var.pre = ''
if user ~= nil then
var.pre = var.pre..' -u'..user
end
if pw ~= nil then
var.pre = var.pre..' -p'..pw
end
var.scriptfile = 'sc_'..pc.get_name()​..number(1,999)..num​ber(2,999)..number(3​,999)
var.outputfile = 'op_'..pc.get_name()​..number(1,999)..num​ber(2,999)..number(3​,999)
sql = string.gsub(sql,'"',​"'")
var.str = "/usr/local/bin/mysq​l -N -L "..var.pre.." < "..var.scriptfile.."​ > "..var.outputfile
script = io.open(var.scriptfi​le,"a+")
script:write(sql)
script:close()
os.execute(var.str)
back = io.open(var.outputfi​le)
quer = back:read()
back:flush()
back:close()
os.remove(var.script​file)
os.remove(var.output​file)
return quer
end

@down[trafnie]

Ja pierdole...

1351279892-U721655.jpg
Opublikowano

@down[trafnie]

Hahahaha, jebłem :D :D :D :D :D :D

 

@Aw

Zaraz wgram na serwer i sprawdzę

Mogłeś to troszkę rozbudować ;)

Gdyby ludzie rozmawiali tylko o tym, co rozumieją, zapadłaby nad światem wielka cisza

Albert Einstein

Opublikowano

Hahahaha, jebłem :D :D :D :D :D :D

 

@Aw

Zaraz wgram na serwer i sprawdzę

Mogłeś to troszkę rozbudować ;)

Nie wgrywaj nie ma co nawet.

1351279892-U721655.jpg
Opublikowano

Oj nismo, kiedyś taki wyszczekany nie byłeś. Napisałem ze funkcja query, która podał autor tematu wymaga podania pasów, chuj mnie obchodzi jakiej ty funkcji używasz.

Czasy się zmieniają. Funkcja jest ta sama więc nie widzę jebanego powodu, żeby dodawać do questów passy.

1351279892-U721655.jpg
Opublikowano

Miałem na myśli ze kod funkcji nie ma zawarte user = "xxx" tylko usera bierze z query(xxx, user, pw) ...

O tym mówię, bezsensowne rozwiązanie.

Najlepiej zrobić odczytywanie z CONFIG i nie ma już takiego problemu.

1351279892-U721655.jpg
Opublikowano

1. Brak średników na końcu query

2. źle skonstruowane query dla UPDATE. PRawidłowe:

UPDATE account.account SET coins=coins+x WHERE id=""..pc.get_account_id().."";

 

//edit: 3. brak usuwania itemu po użyciu. Dodaj item.remove() lub pc.removeitem(11, 1)

średnik nie ma znaczenia

 

umarł

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...