-->
WTFCS Community | Gaming community @ since 2011
/
WTFCS - GAMING
/
Lumea jocurilor
/
SA:MP
/
Ajutor scripting
/
Tutoriale
/
[TUTORIAL] Sistem de job pe MySQL
[TUTORIAL] Sistem de job pe MySQL
Author : mihay111,
Category : Tutoriale,
0 Replyes,
706 Views
1 Guest(s)
04-10-2020, 03:05 PM
Tutorial by Amaroq
Tutorialul se va imparti in 2 parti:
Unde aveti in gamemode enumeratiile (enum) adaugati:
La enum pInfo unde aveti pLevel, pAdmin, etc, adaugati:
Acum ce mai trebuie facut e sa incarcam job-urile. Pentru a lucra mai usor vom defini (daca nu avem deja definit)
Acum, se explica:
Aici creem functia care va incarca job-urile.
jobss este o variabila care indica toate job-urile din baza de date, iar cache_num_rows(); numara job-urile.
Folosim aceasta bucla pentru a cauta job-urile. Aici intra in actiune jobss, care are valoarea x (x fiind toate job-urile din baza de date) si i = 0, job-ul incarcat. Bucla cauta toate job-urile ca sa explic mai simplu.
f = i - 1; indica index-ul de unde sa incarce job-urile, iar celelalte linii incarca efectiv job-urile.
Atentie! Cand incarcati string-uri (nume de exemplu) dupa destinatie adaugati al treilea argument numarul de caractere. Ca sa explic, daca aveti jName[32], 32 este numarul de caractere maxim al numelui.
Iar pentru a termina in gamemode adaugati la public OnGameModeInit()
g_handle este "manerul", handle in engleza, aici nu pot explica prea bine ca nici eu nu stiu asta, dar tot ce stiu este ca este un lucru care ajuta la conexiune.
Dupa asta completati randurile cum dupa urmatoarea poza.
La final acolo unde este PRIMARY urmati urmatoarele poze. La ID la length puneti 11, am uitat eu sa pun.
Iar apoi
Iar acum tot ce mai ramane de facut este sa compilati gamemode-ul, sa apasati pe Save in josul paginii in tabel si apoi sa adaugati job-uri.
Adaugarea job-urilor este foarte simpla,
Iar apoi de la insert este simpla treaba, doar aveti grija sa lasati la ID gol, in rest X, Y, Z sunt coordonatele, level - nivelul minim, legal - daca este legal sau ilegal ( 0 - legal, 1 - ilegal) si pickup - id pickup-ului (acel i care se invarte este 1239).
Quote:Atentie: Nu voi arata cum se fac job-urile, doar cum se salveaza si cum poate ajuta.
Tutorialul se va imparti in 2 parti:
- In gamemode
- In baza de date
Unde aveti in gamemode enumeratiile (enum) adaugati:
Code:
enum jInfo {
jID,
jName[32],
Float:jPosX,
Float:jPosY,
Float:jPosZ,
jLevel,
jLegal,
Text3D:jLabel,
jPickup
};
new JobInfo[MAX_JOBS][jInfo]; // MAX_JOBS definiti voi ori puneti in loc de MAX_JOBS un numar (exemplu 7) sau la definitii(#define) adaugati #define MAX_JOBS (7)
La enum pInfo unde aveti pLevel, pAdmin, etc, adaugati:
Code:
pJob,
Acum ce mai trebuie facut e sa incarcam job-urile. Pentru a lucra mai usor vom defini (daca nu avem deja definit)
Code:
#define script%0(%1) forward%0(%1); public%0(%1)
Code:
script LoadJobs() {
jobss = cahce_num_rows(); // adaugati new jobss = 0; unde aveti new-urile daca nu aveti deja
for(new i = 0; i <= jobss; i++) {
f = i - 1;
cache_get_value_name_int(f, "ID", JobInfo[i][jID]);
cache_get_value_name(f, "Name", JobInfo[i][jName], 32);
cache_get_value_name_float(f, "X", JobInfo[i][jPosX]);
cache_get_value_name_float(f, "Y", JobInfo[i][jPosY]);
cache_get_value_name_float(f, "Z", JobInfo[i][jPosZ]);
cache_get_value_name_int(f, "Level", JobInfo[i][jLevel]);
cache_get_value_name_int(f, "Legal", JobInfo[i][jLegal]);
cache_get_value_name_int(f, "Pickup", JobInfo[i][jPickup]);
JobInfo[i][jLabel] = Create3DTextLabel("%s job\nType [/getjob] to employ", 0xFFFFFF, JobInfo[i][jPosX], JobInfo[i][jPosY], JobInfo[i][jPosZ],300.0, 0, 0);
}
return 1;
}
Acum, se explica:
Code:
script LoadJobs() {
return 1;
}
Code:
jobss = cache_num_rows()
Code:
for(new i = 0; i <= jobss; i++) {
}
Code:
f = i - 1;
cache_get_value_name_int(f, "ID", JobInfo[i][jID]);
cache_get_value_name(f, "Name", JobInfo[i][jName], 32);
cache_get_value_name_float(f, "X", JobInfo[i][jPosX]);
cache_get_value_name_float(f, "Y", JobInfo[i][jPosY]);
cache_get_value_name_float(f, "Z", JobInfo[i][jPosZ]);
cache_get_value_name_int(f, "Level", JobInfo[i][jLevel]);
cache_get_value_name_int(f, "Legal", JobInfo[i][jLegal]);
cache_get_value_name_int(f, "Pickup", JobInfo[i][jPickup]);
f = i - 1; indica index-ul de unde sa incarce job-urile, iar celelalte linii incarca efectiv job-urile.
Atentie! Cand incarcati string-uri (nume de exemplu) dupa destinatie adaugati al treilea argument numarul de caractere. Ca sa explic, daca aveti jName[32], 32 este numarul de caractere maxim al numelui.
Iar pentru a termina in gamemode adaugati la public OnGameModeInit()
Code:
new query[128]; // daca nu aveti deja
mysql_format(g_handle, query, sizeof(query), "SELECT * FROM `jobs`");
mysql_tquery(g_handle, query, "", "");
g_handle este "manerul", handle in engleza, aici nu pot explica prea bine ca nici eu nu stiu asta, dar tot ce stiu este ca este un lucru care ajuta la conexiune.
- In baza de date:
Dupa asta completati randurile cum dupa urmatoarea poza.
La final acolo unde este PRIMARY urmati urmatoarele poze. La ID la length puneti 11, am uitat eu sa pun.
Iar apoi
Iar acum tot ce mai ramane de facut este sa compilati gamemode-ul, sa apasati pe Save in josul paginii in tabel si apoi sa adaugati job-uri.
Adaugarea job-urilor este foarte simpla,
Iar apoi de la insert este simpla treaba, doar aveti grija sa lasati la ID gol, in rest X, Y, Z sunt coordonatele, level - nivelul minim, legal - daca este legal sau ilegal ( 0 - legal, 1 - ilegal) si pickup - id pickup-ului (acel i care se invarte este 1239).