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

[TuT] Kilka nowych funkcji lua


Welnes

Rekomendowane odpowiedzi

Opublikowano

Witajcie,

 

Postanowiłem dziś udostępnić Wam kilka nowych, pisanych przeze mnie funkcji lua (kilka jest jedynie przerobionych przeze mnie, żeby nie było).

 

Funkcje SQL :

 

query_select :

 

 

function query_select(sql)
user = "mt2"
pw = "mt2!@#"
local var = {}
var.pre = ''
var.pre = var.pre..' -u'..user
var.pre = var.pre..' -p'..pw
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 = "mysql -N -L "..var.pre.." < "..var.scriptfile.." > "..var.outputfile
script = io.open(var.scriptfile,"a+")
script:write(sql)
script:close()
os.execute(var.str)
zwroc = io.open(var.outputfile)
quer = zwroc:read()
zwroc:flush()
zwroc:close()
os.remove(var.scriptfile)
os.remove(var.outputfile)
if string.len(quer) <= 0 then
return 0
else
return quer
end
end

 

Zasada działania :

 

Funkcja działa następująco : wykonuje wpisane zapytanie, wynik wpisuje do pliku i odczytuje go z pliku i zwraca go.

Za jej pomocą można wykonać zapytania typu : SELECT.

Zwraca tylko jeden wynik.

Jeśli nie odnalazło żądanego rekordu to zwraca 0.

Zwrócony wynik jest stringiem, by móc porównywać go z intem należy użyć funkcji tonumber().

 

Quest Testowy :

quest test begin
state start begin
when login begin
say("testujemy")
local quer = query_select("SELECT job FROM player.player ;")
say("")
say(quer)
end
end
end

 

 

 

query_array :

 

 

function query_array(sql)
user = "mt2"
pw = "mt2!@#"
local var = {}
var.pre = ''
var.pre = var.pre..' -u'..user
var.pre = var.pre..' -p'..pw
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 = "mysql -N -L "..var.pre.." < "..var.scriptfile.." > "..var.outputfile
script = io.open(var.scriptfile,"a+")
script:write(sql)
script:close()
os.execute(var.str)
local arr = {}
for rekord in io.lines(var.outputfile) do
table.insert(arr, rekord)
end
os.remove(var.scriptfile)
os.remove(var.outputfile)
if table.getn(arr) <= 0 then
return 0
else
return arr
end 
end

 

Zasada działania :

 

Funkcja działa następująco : wykonuje wpisane zapytanie, wynik wpisuje do pliku i odczytuje go z pliku i zwraca go.

Za jej pomocą można wykonać zapytania typu : SELECT.

Zwraca wyniki zapytania w tablicy, numerując ją od 1 do nieskończoności.

Jeśli nie odnalazło żądanych rekordów to zwraca 0.

Zwrócone wyniki są stringami, by móc porównywać je z intami należy użyć funkcji tonumber().

 

Quest testowy :


quest test begin
state start begin
when login begin
say("testujemy")
local quer = query_array("SELECT job FROM player.player ;")
say("")
say(quer[1])
say(quer[2])
end
end
end

 

 

 

query_update :

 

 


function query_update(sql) 
local user = "mt2"
local pw = "mt2!@#"
local var = {}
var.pre = ''
var.pre = var.pre..' -u'..user
var.pre = var.pre..' -p'..pw
   local sql = string.gsub(sql,"'",'"') 
        local x = os.execute("mysql -N -L "..var.pre.."  --execute='"..sql.."'") 
if x == 1 then
return 1
else
return 0
end
end 

 

 

Zasada działania :

 

Funkcja działa następująco : wykonuje wpisane zapytanie.

Za jej pomocą można wykonać zapytania typu : UPDATE, INSERT, DROP, DELETE.

Nie zwraca żadnych wyników, jedynie :

1 - wykonane

0 - nie wykonane

 

Quest testowy :

quest test begin
state start begin
when login begin
say("testujemy")
local quer = query_update("UPDATE player.player SET job = '3' WHERE name = '"..pc.get_name().."' ;")
end
end
end

 

 

Testerem był : z4z0l

Jutro dodam jeszcze kilka funkcji i dokładniej je objaśnię.

 

 

Pozdrawiam

1377371138-U1002370.png

  • 1 miesiąc temu...

Zarchiwizowany

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

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...