?
Šitas include suteikia galimybę labai paprastai kurti bei saugoti mašinų informaciją mysql duomenų bazėje, nerašant jokių sql užklausų ir nesivarginant su informacijos saugojimu!
Funkcijos:
// Gauti mašinos unikalų id (mašinos ID duomenų bazėje). Šitas ID kiekvienai mašinai yra unikalus ir niekados nepasikartoja.
stock GetVehicleUID(vehicleid);
// Sukurti mašiną. Tuo pačiu mašina įsirašo ir į duomenų bazę.
stock AddVehicle(model, Float:x, Float:y, Float:z, Float:a, color1 = -1, color2 = -1);
// Pakrauti mašiną pagal sqlid, arba iš aktyvaus cache. applydata nurodo ar nustatyti mašinai pakrautą informaciją (poziciją, spalvą ir pan)
stock LoadVehicle(sqlid = -1, row = 0, applydata = true);
// Išsaugoti mašiną. update_pos nurodo ar išsaugoti dabartinę mašinos poziciją. remove nurodo ar pašalinti mašiną iš žaidimo (pvz atsijungus žaidėjui, kad jo mašinos nebebūtų žemėlapyje)
stock SaveVehicle(vehicleid, update_pos = true, remove = false);
// Ištrina mašiną visiškai, ir iš duomenų bazės, ir panaikina iš žemėlapio
stock DeleteVehicle(vehicleid);
Callback'ai:
// išsikviečia kai yra sukuriama nauja mašina
forward OnVehicleInsert(vehicleid);
// Šitame callback'e galima nurodyti kokią mašinos informaciją nori kad sistema autoamtiškai saugotų ir krautų
forward OnCreateVehicleORM(ORM:ormid, vehicleid);
Pavizdys:
#include <a_samp>
#include <a_mysql>
#include <vehicles>
// tavo mašinų informacijos enumas
enum vehicle_e_DATA {
savininkas[MAX_PLAYER_NAME],
Float:degalai,
Float:rida,
kaina
};
new vehicleDB[MAX_VEHICLES][vehicle_e_DATA];
/* ... gm kodas ... */
public OnVehicleInsert(vehicleid) {
print("Mašina (id: %i, sql id: %i) sėkmingai įrašyta į duomenų bazę!",
vehicleid, GetVehicleUID(vehicleid));
}
public OnCreateVehicleORM(ORM:ormid, vehicleid) {
// dabar mašinos informacija automatiškai pasikraus panaudojus LoadVehicle funkciją, bei automatiškai išsisaugos panaudojus SaveVehicle funkciją.
orm_addvar_string(ormid, vehicleDB[vehicleid][savininkas], "savininkas");
orm_addvar_float(ormid, vehicleDB[vehicleid][degalai], "degalai");
orm_addvar_float(ormid, vehicleDB[vehicleid][rida], "rida");
orm_addvar_int(ormid, vehicleDB[vehicleid][kaina], "kaina");
}
Šiam include reikalingas šis mysql pluginas: MySQL Plugin (Now on github!)
SQL failas vehicles
lentelei sukurti: Pastebin
vehicles.inc: Pastebin
Include automatiškai išsaugo ir pakrauna šią informaciją:
- Mašinos modelį
- Mašinos poziciją (ir pasisukimo kampą)
- Mašinos spalvą
- Mašinos būklę (health)
Norint saugoti papildomą informaciją, remtis pavyzdžiu :)
Jeigu yra klausimų arba pasiūlymų, rašykit ;)
Norėdamas rašyti pranešimą privalai prisijungti arba užsiregistruoti!
0
------------------ prieš 9 metus
Labai praverčiantis dalykas, o šeip turiu vieną pasiūlyma, tik nežinau ar išeis jį padaryt (senei skriptinau). Įdėja tokia: Manau būtu šaunu, kad galima būtu saugoti mašinų attachment'us
0
Karolis prieš 9 metus
Puikus darbas :+1: Vienintelis pastebėjimas: buvo galima naudoti YSI y_hooks.
0