Steico Opublikowano 25 Września 2012 Udostępnij Opublikowano 25 Września 2012 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 Odnośnik do komentarza
kingplaya007 Opublikowano 25 Września 2012 Udostępnij Opublikowano 25 Września 2012 ja w quescie widze 50 monet wpisane a w dialogu piszesz o 1000 monetach Odnośnik do komentarza
`SkaCzuS. Opublikowano 25 Września 2012 Udostępnij Opublikowano 25 Września 2012 ja w quescie widze 50 monet wpisane a w dialogu piszesz o 1000 monetach coins+120 a nie 50 . a w tekscie pisze 50 ;p. a zrobione jest + 120 ;o. Odnośnik do komentarza
JachuPL Opublikowano 25 Września 2012 Udostępnij Opublikowano 25 Września 2012 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) Odnośnik do komentarza
Even^^ Opublikowano 25 Września 2012 Udostępnij Opublikowano 25 Września 2012 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 Odnośnik do komentarza
.nismo Opublikowano 25 Września 2012 Udostępnij Opublikowano 25 Września 2012 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. Odnośnik do komentarza
DarkSince Opublikowano 26 Września 2012 Udostępnij Opublikowano 26 Września 2012 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 Odnośnik do komentarza
DarkNightxx Opublikowano 26 Września 2012 Udostępnij Opublikowano 26 Września 2012 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 Odnośnik do komentarza
.nismo Opublikowano 26 Września 2012 Udostępnij Opublikowano 26 Września 2012 ale Wy mącicie... na chuj podawać passy do usera, skoro zostało już ustawione w funkcji ? 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ł. Odnośnik do komentarza
Evelen Opublikowano 26 Września 2012 Udostępnij Opublikowano 26 Września 2012 ale Wy mącicie... na chuj podawać passy do usera, skoro zostało już ustawione w funkcji ? "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. Dołącz do nas na Facebooku! Odnośnik do komentarza
.nismo Opublikowano 26 Września 2012 Udostępnij Opublikowano 26 Września 2012 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)..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 "..var.pre.." < "..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 @down[trafnie] Ja pierdole... Odnośnik do komentarza
Evelen Opublikowano 26 Września 2012 Udostępnij Opublikowano 26 Września 2012 Funkcja KTÓRĄ PODAŁ.... Dołącz do nas na Facebooku! Odnośnik do komentarza
lopes564 Opublikowano 26 Września 2012 Udostępnij Opublikowano 26 Września 2012 @down[trafnie] Hahahaha, jebłem :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 Odnośnik do komentarza
.nismo Opublikowano 26 Września 2012 Udostępnij Opublikowano 26 Września 2012 Hahahaha, jebłem :D :D :D @Aw Zaraz wgram na serwer i sprawdzę Mogłeś to troszkę rozbudować Nie wgrywaj nie ma co nawet. Odnośnik do komentarza
Evelen Opublikowano 26 Września 2012 Udostępnij Opublikowano 26 Września 2012 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. Dołącz do nas na Facebooku! Odnośnik do komentarza
.nismo Opublikowano 26 Września 2012 Udostępnij Opublikowano 26 Września 2012 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. Odnośnik do komentarza
Evelen Opublikowano 26 Września 2012 Udostępnij Opublikowano 26 Września 2012 Zauważ ze jego funkcja query z spoileru nie ma zdefiniowanego usera i hasła i trzeba je podać. Ofc można sobie dopisać w funkcji, ale u niego tego nie ma. Dołącz do nas na Facebooku! Odnośnik do komentarza
.nismo Opublikowano 26 Września 2012 Udostępnij Opublikowano 26 Września 2012 to tak teraz trochę śmiesznie, bo nawet zapytanie SELECT from ... potrzebuje definicji usera. Odnośnik do komentarza
Evelen Opublikowano 26 Września 2012 Udostępnij Opublikowano 26 Września 2012 Miałem na myśli ze kod funkcji nie ma zawarte user = "xxx" tylko usera bierze z query(xxx, user, pw) ... Dołącz do nas na Facebooku! Odnośnik do komentarza
.nismo Opublikowano 26 Września 2012 Udostępnij Opublikowano 26 Września 2012 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. Odnośnik do komentarza
z4z0l Opublikowano 26 Września 2012 Udostępnij Opublikowano 26 Września 2012 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ł Odnośnik do komentarza
Djmatejo1 Opublikowano 26 Września 2012 Udostępnij Opublikowano 26 Września 2012 xxx Odnośnik do komentarza
Rekomendowane odpowiedzi
Zarchiwizowany
Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.