· 7 years ago · Feb 23, 2019, 05:08 AM
1/*
2 FilterScript:
3 - Dinamicno kreiranje trafika ( MySQL )
4 Author:
5 - Xalazy(Mungoslav)
6 Credits:
7 - #XScript2k19
8*/
9//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-//
10#include < a_samp >
11#include < a_mysql >
12#include < Pawn.CMD >
13#include < foreach >
14//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-//
15#define MYSQL_HOST "127.0.0.1"
16#define MYSQL_USER "root"
17#define MYSQL_PASSWORD ""
18#define MYSQL_DATABASE "trafike_db"
19//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-//
20#define MAX_TRAFIKA 150
21#define SCM SendClientMessage
22enum tINFO {
23
24 Float:PosX,
25 Float:PosY,
26 Float:PosZ,
27 Float:RotX,
28 Float:RotY,
29 Float:RotZ,
30 trafikaID,
31 tID
32}
33//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-//
34new MySQL:x_sql;
35new TrafikaInfo[ MAX_TRAFIKA ][ tINFO ], edit_Trafika[ MAX_PLAYERS ],
36Iterator:iteratortrafike<MAX_TRAFIKA>;
37//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-//
38public OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ) {
39
40 if(response == EDIT_RESPONSE_FINAL) {
41 if(edit_Trafika[ playerid ] != -1) {
42 new i = edit_Trafika[ playerid ], query[ 250 ];
43 TrafikaInfo[ i ][ PosX ] = fX;
44 TrafikaInfo[ i ][ PosY ] = fY;
45 TrafikaInfo[ i ][ PosZ ] = fZ;
46 TrafikaInfo[ i ][ RotX ] = fRotX;
47 TrafikaInfo[ i ][ RotY ] = fRotY;
48 TrafikaInfo[ i ][ RotZ ] = fRotZ;
49 DestroyObject(TrafikaInfo[ i ][ trafikaID ]);
50 TrafikaInfo[ i ][ trafikaID ] = CreateObject(1571, fX, fY, fZ, fRotX, fRotY, fRotZ);
51 mysql_format(x_sql, query, sizeof query, "INSERT INTO `trafikice` (`PosX`, `PosY`, `PosZ`, `RotX`, `RotY`, `RotZ`) VALUES ('%f', '%f', '%f', '%f', '%f', '%f')", TrafikaInfo[ i ][ PosX ], TrafikaInfo[ i ][ PosY ], TrafikaInfo[ i ][ PosZ ], TrafikaInfo[ i ][ RotX ], TrafikaInfo[ i ][ RotY ], TrafikaInfo[ i ][ RotZ ]);
52 mysql_tquery(x_sql, query);
53 edit_Trafika[ playerid ] = -1;
54 }
55 }
56 return true;
57}
58//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-//
59public OnGameModeInit() {
60
61 new MySQLOpt: option_id = mysql_init_options();
62 x_sql = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD, MYSQL_DATABASE, option_id);
63 if (x_sql == MYSQL_INVALID_HANDLE || mysql_errno(x_sql) != 0){
64 print("< MySQL >: Konekcija je neuspesna !");
65 SendRconCommand("exit");
66 return true;
67 }
68 print("< MySQL >: Konekcija je uspesna !");
69 kreirajtablu();
70 mysql_tquery(x_sql, "SELECT * FROM `trafikice`", "UcitajTrafike", "");
71 return true;
72}
73//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-//
74forward UcitajTrafike();
75public UcitajTrafike() {
76 new rows = cache_num_rows();
77 if(rows) {
78 for(new i; i < rows; i++) {
79 new id = Iter_Free(iteratortrafike);
80 cache_get_value_name_float(i, "PosX", TrafikaInfo[ id ][ PosX ]);
81 cache_get_value_name_float(i, "PosY", TrafikaInfo[ id ][ PosY ]);
82 cache_get_value_name_float(i, "PosZ", TrafikaInfo[ id ][ PosZ ]);
83 cache_get_value_name_float(i, "RotX", TrafikaInfo[ id ][ RotX ]);
84 cache_get_value_name_float(i, "RotY", TrafikaInfo[ id ][ RotY ]);
85 cache_get_value_name_float(i, "RotZ", TrafikaInfo[ id ][ RotZ ]);
86 TrafikaInfo[ i ][ trafikaID ] = CreateObject(1439, TrafikaInfo[ i ][ PosX ], TrafikaInfo[ i ][ PosY ], TrafikaInfo[ i ][ PosZ ], TrafikaInfo[ i ][ RotX ], TrafikaInfo[ i ][ RotY ], TrafikaInfo[ i ][ RotZ ]);
87 Iter_Add(iteratortrafike, id);
88 }
89 }
90 return true;
91}
92//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-//
93kreirajtablu() {
94 mysql_tquery(x_sql, "CREATE TABLE IF NOT EXISTS `trafikice` (`id` int(11) NOT NULL AUTO_INCREMENT,`PosX` float NOT NULL,`PosY` float NOT NULL,`PosZ` float NOT NULL,`RotX` float NOT NULL, `RotY` float NOT NULL, `RotZ` float NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `id` (`id`))");
95 return true;
96}
97//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-//
98CMD:kreirajtrafiku(playerid, params[]) {
99
100 new Float:X, Float:Y, Float:Z, i = Iter_Free(iteratortrafike);
101 if(!IsPlayerAdmin(playerid)) return SCM(playerid, -1, "Niste administrator.");
102 GetPlayerPos(playerid, X,Y,Z);
103 TrafikaInfo[ i ][ trafikaID ] = CreateObject(1571, X, Y, Z, 0.0, 0.0, 0.0);
104 EditObject(playerid, TrafikaInfo[ i ][ trafikaID ]);
105 edit_Trafika[ playerid ] = i;
106 TrafikaInfo[ i ][ tID ] = i;
107 SCM(playerid, -1, "< Trafika >: Zapoceli ste kreiranje trafike.");
108 return true;
109}
110//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-//
111/*
112 ______________________________________________________________________________
113| |
114| K R A J |
115| |
116 ------------------------------------------------------------------------------
117*/