· 6 years ago · Jun 21, 2019, 10:40 AM
1/*
2 @ Filterscript: Dinamicno kreiranje dilera
3 @ Author: y_dev :)
4 - Ukoliko nadjete neki bug, posaljite mi PM na balkan sampu..
5
6 © (2019)
7*/
8/* -- Includes -- */
9#include <a_samp>
10#include <a_mysql>
11#include <Pawn.CMD>
12#include <foreach>
13/* -- Other.. -- */
14#define MYSQL_HOST "127.0.0.1"
15#define MYSQL_USER "root"
16#define MYSQL_PASSWORD ""
17#define MYSQL_DATABASE "ydealers_db"
18/**/
19const MAX_DILERA = 50;
20/**/
21enum {
22 dialog_DILER
23}
24
25enum D_ENUM
26{
27 Float:dX,
28 Float:dY,
29 Float:dZ,
30 Float:dA,
31 dID
32}
33/**/
34static MySQL:y_sql,
35DI[MAX_DILERA][D_ENUM], Text3D:DilerLabel[MAX_DILERA],
36Iterator:i_Dileri<MAX_DILERA>, d_Actor[MAX_DILERA];
37/**/
38forward UcitajDilere();
39public UcitajDilere() {
40 new rows = cache_num_rows();
41 if(rows) {
42
43 for(new i; i < rows; i++) {
44
45 new id = Iter_Free(i_Dileri);
46
47 cache_get_value_name_float(i, "X", DI[id][dX]);
48 cache_get_value_name_float(i, "Y", DI[id][dY]);
49 cache_get_value_name_float(i, "Z", DI[id][dZ]);
50 cache_get_value_name_float(i, "A", DI[id][dA]);
51
52 d_Actor[i] = CreateActor(29, DI[i][dX], DI[i][dY], DI[i][dZ], DI[i][dA]);
53 DilerLabel[i] = Create3DTextLabel("{0070D0}<Diler>\n\n{FFFFFF}/diler", 0xFFFFFFFF, DI[i][dX], DI[i][dY], DI[i][dZ], 10.0, 0, 0);
54
55 Iter_Add(i_Dileri, id);
56 }
57 }
58 return 1;
59}
60/**/
61public OnPlayerConnect(playerid)
62{
63 SendClientMessage(playerid, 0x0070D0FF, "* Ovaj server poseduje filterskriptu 'Dinamicno kreiranje dilera mysql'");
64 SendClientMessage(playerid, 0x0070D0FF, "* Filterskriptu napravio: y_Dev");
65 return 1;
66}
67/**/
68main() {}
69
70public OnGameModeInit()
71{
72 new MySQLOpt: option_id = mysql_init_options();
73 y_sql = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD, MYSQL_DATABASE, option_id);
74 if (y_sql == MYSQL_INVALID_HANDLE || mysql_errno(y_sql) != 0)
75 {
76 print("<MySQL>: Konekcija na databazu nije uspela.");
77 SendRconCommand("exit");
78 return 1;
79 }
80
81 print("<MySQL>: Konekcija na databazu je uspesna.");
82 kreirajtablu();
83 //mysql_tquery(y_sql, "CREATE TABLE IF NOT EXISTS `dealers` (`X` float NOT NULL,`Y` float NOT NULL,`Z` float NOT NULL,`A` float NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `id` (`id`))");
84 mysql_tquery(y_sql, "SELECT * FROM `dealers`", "UcitajDilere", "");
85 return 1;
86}
87/**/
88kreirajtablu() {
89 mysql_tquery(y_sql, "CREATE TABLE IF NOT EXISTS `dileri` (`id` int(11) NOT NULL AUTO_INCREMENT,`dX` float NOT NULL,`dY` float NOT NULL,`dZ` float NOT NULL,`dA` float NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `id` (`id`))");
90 return 1;
91}
92
93/**/
94CMD:kreirajdilera(playerid, const params[])
95{
96 if(!IsPlayerAdmin(playerid))
97 return SendClientMessage(playerid, 0xFF0000FF, "<Greska>: {FFFFFF}Morate biti rcon admin !");
98
99 new Float:x, Float:y, Float:z, Float:a;
100 GetPlayerPos(playerid, x, y, z), GetPlayerFacingAngle(playerid, a);
101
102 new i = Iter_Free(i_Dileri), query[128];
103
104 d_Actor[i] = CreateActor(29, x, y, z, a);
105 DilerLabel[i] = Create3DTextLabel("{0070D0}<Diler>\n\n{FFFFFF}/diler", 0xFFFFFFFF, x, y, z, 10.0, 0, 0);
106
107 DI[i][dX] = x, DI[i][dY] = y, DI[i][dZ] = z, DI[i][dA] = a;
108
109 SendClientMessage(playerid, 0x0070D0FF, "<Dileri>: {FFFFFF}Napravio si dilera !");
110
111 mysql_format(y_sql, query, sizeof query, "INSERT INTO `dileri` (`dX`, `dY`, `dZ`, `dA`) VALUES ('%f', '%f', '%f', '%f')", DI[i][dX], DI[i][dY], DI[i][dZ], DI[i][dA]);
112 mysql_tquery(y_sql, query);
113
114 return 1;
115}
116
117CMD:diler(playerid, const params[])
118{
119 for(new i = 0; i < MAX_DILERA; i++)
120 {
121 if(IsPlayerInRangeOfPoint(playerid, 2.0, DI[i][dX], DI[i][dY], DI[i][dZ]))
122 {
123 ShowPlayerDialog(playerid, dialog_DILER, DIALOG_STYLE_TABLIST_HEADERS, "{0070D0}Diler - {FFFFFF}Dilujte",
124 "{FFFFFF}Predmet\t{FFFFFF}Kolicina\t{FFFFFF}Novac\n\
125 Droga\t10g\t20.000$\n\
126 Desert Eagle\t40 ammo\t4.000$",
127 "Potvrdi",
128 "Odustani"); //mozete dodavati jos stvari sa kojim bi dilovali igraci, ja sam dodao samo dve cisto da ima nesto..
129 }
130 else
131 return SendClientMessage(playerid, 0xFF0000FF, "Nisi blizu dilera !");
132 }
133 return 1;
134}
135/**/
136public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
137{
138 if(dialogid == dialog_DILER)
139 {
140 if(!response)
141 return 1;
142
143 switch(listitem)
144 {
145 case 0:
146 {
147 SendClientMessage(playerid, -1, "* Dobio si od dilera 10g droge za 20.000$ !"); //edit
148 //PI[playerid][pDroga] += 10, SavePlayer(playerid); //prilagodite vasoj skripti
149 GivePlayerMoney(playerid, -20000); //edit
150 }
151 case 1:
152 {
153 SendClientMessage(playerid, -1, "* Dobio si od deagle 40 metkova za 4.000$ !"); //edit
154 GivePlayerWeapon(playerid, 24, 40); //edit
155 GivePlayerMoney(playerid, -4000); //edit
156 }
157 }
158 }
159 return 1;
160}
161/* -- End FS -- */