*Descriere:
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:
Dupa finalul functiei, adauga:
Deschide game/src/questlua.cpp si cauta:
Adauga sub:
Deschide game/src/questlua.h si cauta zona cu declaratiile:
Adauga:
Deschide fisierul quest_functions din folderul quest, de exemplu:
Adauga:
Exemplu de folosire in quest:
Atentie:
Important pentru securitate:
Exemplu periculos:
Daca un jucator introduce caractere SQL speciale, poate provoca SQL Injection.
Recomandat:
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:
Cod: Selectaţi tot
ScriptToString
Conținut: Ascuns
Reacționează
la acest mesaj și conținutul se va afișa automat.
la acest mesaj și conținutul se va afișa automat.Deschide game/src/questlua.cpp si cauta:
Cod: Selectaţi tot
RegisterHorseFunctionTable();
Conținut: Ascuns
Reacționează
la acest mesaj și conținutul se va afișa automat.
la acest mesaj și conținutul se va afișa automat.Deschide game/src/questlua.h si cauta zona cu declaratiile:
Cod: Selectaţi tot
extern void Register
Conținut: Ascuns
Reacționează
la acest mesaj și conținutul se va afișa automat.
la acest mesaj și conținutul se va afișa automat.Deschide fisierul quest_functions din folderul quest, de exemplu:
Cod: Selectaţi tot
share/locale/english/quest/quest_functions
Conținut: Ascuns
Reacționează
la acest mesaj și conținutul se va afișa automat.
la acest mesaj și conținutul se va afișa automat.Exemplu de folosire in quest:
Conținut: Ascuns
Reacționează
la acest mesaj și conținutul se va afișa automat.
la acest mesaj și conținutul se va afișa automat.Atentie:
Cod: Selectaţi tot
- 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
Cod: Selectaţi tot
Nu folosi input() direct in db.query fara filtrare stricta.
Cod: Selectaţi tot
local text = input()
db.query("UPDATE tabel SET ceva = '"..text.."'")
Recomandat:
Cod: Selectaţi tot
- 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



