Acest tutorial iti arata cum sa adaugi o functie nativa db.query pentru quest-uri Metin2, direct din C++/Lua.
Aceasta inlocuieste metoda veche mysql_query care folosea os.execute, metoda ce putea provoca lag pe game core.
Noua functie foloseste direct DBManager::DirectQuery, fiind mai rapida si potrivita pentru UPDATE, INSERT, DELETE sau REPLACE.
*Link download / Code:
Deschide game/src/questlua.cpp si cauta functia:
Code:
ScriptToString
Deschide game/src/questlua.cpp si cauta:
Code:
RegisterHorseFunctionTable();
Deschide game/src/questlua.h si cauta zona cu declaratiile:
Code:
extern void Register
Deschide fisierul quest_functions din folderul quest, de exemplu:
Code:
share/locale/english/quest/quest_functions
Exemplu de folosire in quest:
Atentie:
Code:
- aceasta functie este recomandata pentru UPDATE, INSERT, DELETE si REPLACE
- nu este facuta pentru SELECT
- nu returneaza randuri SQL in Lua
- pMsg este sters direct dupa executie
Code:
Nu folosi input() direct in db.query fara filtrare stricta.
Code:
local text = input()
db.query("UPDATE tabel SET ceva = '"..text.."'")
Recomandat:
Code:
- foloseste valori sigure precum pc.get_player_id()
- foloseste pc.get_name() doar daca stii ca numele sunt filtrate corect
- nu permite query-uri construite direct din input liber
- limiteaza caracterele acceptate daca trebuie neaparat sa folosesti text introdus de jucator


la acest mesaj și conținutul se va afișa automat.


