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


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.

×
×
  • Dodaj nową pozycję...