· 7 years ago · Feb 05, 2019, 07:44 AM
1
2public ConnectReset(Client)
3{
4 Point[Client] = 0;
5 Class[Client] = 0;
6
7 SkinName[Client] = DEFAULT_NAME;
8 SkinCode[Client] = CODE_NONE;
9 SkinArms[Client] = CODE_NONE;
10 SkinEnable[Client] = 0;
11 LightEnt[Client] = INVALID_ENT_REFERENCE;
12
13 ShoesName[Client] = DEFAULT_NAME;
14 ShoesCode[Client] = 0;
15 ShoesColors[Client] = COLORS_NONE;
16 Vibration01[Client] = 0;
17 ShoesEnable[Client] = 0;
18
19 LaserName[Client] = DEFAULT_NAME;
20 LaserCode[Client] = 0;
21 LaserColors[Client] = COLORS_NONE;
22 Vibration02[Client] = 0;
23 LaserEnable[Client] = 0;
24
25 KnifeName[Client] = DEFAULT_NAME;
26 KnifeCode01[Client] = 0;
27 KnifeCode02[Client] = 0;
28 KnifeEnable[Client] = 0;
29
30 PetName[Client] = DEFAULT_NAME;
31 PetCode[Client] = CODE_NONE;
32 PetAni[Client] = CODE_NONE;
33 PetEnt[Client] = INVALID_ENT_REFERENCE;
34 PetEnable[Client] = 0;
35
36 TagName[Client] = DEFAULT_NAME;
37 TagEnable[Client] = 0;
38 TeamChat[Client] = false;
39}
40
41public Item_Reset(Client)
42{
43 for(new i = 1; i < MAX_ITEMS; i++)
44 Item[Client][i] = 0;
45 SQL_SaveItemData(Client);
46}
47
48public SQL_Connection(Handle:owner, Handle:handle, const String:error[], any:data)
49{
50 if(handle == INVALID_HANDLE)
51 {
52 PrintToServer("[GuppyShop] Error : %s", error);
53 }
54 else
55 {
56 DB = handle;
57 SQL_TQuery(DB, SQL_CheckError, "SET NAMES UTF8;", 0, DBPrio_High);
58 SQL_TQuery(DB, SQL_CheckTable, "SHOW TABLES LIKE 'Item';", 0, DBPrio_High);
59 SQL_TQuery(DB, SQL_CheckTable, "SHOW TABLES LIKE 'User';", 0, DBPrio_High);
60 }
61}
62
63public SQL_CheckTable(Handle:owner, Handle:handle, const String:error[], any:data)
64{
65 if(handle == INVALID_HANDLE)
66 {
67 PrintToServer("[GuppyShop] Error : %s", error);
68 }
69
70 if(SQL_GetRowCount(handle) == 0)
71 {
72 SQL_TQuery(DB, SQL_CheckError, "CREATE TABLE IF NOT EXISTS Item(SteamID VARCHAR(128) NOT NULL, Name VARCHAR(128) NOT NULL, PRIMARY KEY (SteamID)) ENGINE=MyISAM DEFAULT CHARSET=UTF8;", 0, DBPrio_High);
73 SQL_TQuery(DB, SQL_CheckError, "CREATE TABLE IF NOT EXISTS User(SteamID VARCHAR(128) NOT NULL, Name VARCHAR(128) NOT NULL, Point INT, Class INT, SkinName VARCHAR(128) NOT NULL, ShoesName VARCHAR(128) NOT NULL, LaserName VARCHAR(128) NOT NULL, KnifeName VARCHAR(128) NOT NULL, PetName VARCHAR(128) NOT NULL, TagName VARCHAR(128) NOT NULL, SkinEnable INT, ShoesEnable INT, LaserEnable INT, KnifeEnable INT, PetEnable INT, TagEnable INT, Vibration01 INT, Vibration02 INT, PRIMARY KEY (SteamID)) ENGINE=MyISAM DEFAULT CHARSET=UTF8;", 0, DBPrio_High);
74
75 new String:Query[512];
76 for(new i = 1; i < MAX_ITEMS; i++)
77 {
78 Format(Query, sizeof(Query), "ALTER TABLE Item ADD Item_%d INT(4) NOT NULL DEFAULT '0'", i);
79 SQL_TQuery(DB, SQL_CheckError, Query, 0, DBPrio_High);
80 }
81 }
82 else
83 {
84 SQL_TQuery(DB, SQL_CheckItems, "SELECT * FROM Item", 0, DBPrio_High);
85 }
86}
87
88public SQL_CheckItems(Handle:owner, Handle:handle, const String:error[], any:data)
89{
90 if(handle != INVALID_HANDLE)
91 {
92 new FieldCount = SQL_GetFieldCount(handle)-2;
93 new String:Query[512];
94
95 if(MAX_ITEMS > FieldCount)
96 {
97 for(new i = FieldCount+1; i < MAX_ITEMS; i++)
98 {
99 Format(Query, sizeof(Query), "ALTER TABLE Item ADD Item_%d INT(4) NOT NULL DEFAULT '0'", i);
100 SQL_TQuery(DB, SQL_CheckError, Query, 0, DBPrio_High);
101 }
102 }
103 }
104}
105
106public SQL_CheckError(Handle:owner, Handle:handle, const String:error[], any:data)
107{
108 if(handle == INVALID_HANDLE)
109 {
110 PrintToServer("[GuppyShop] Error : %s", error);
111 }
112}
113
114SQL_LoadUserData(Handle:handle, Client, const String:SteamID[])
115{
116 if(handle != INVALID_HANDLE && !IsFakeClient(Client))
117 {
118 new String:Query[128];
119 Format(Query, sizeof(Query), "SELECT * FROM User WHERE SteamID = '%s';", SteamID);
120 SQL_TQuery(DB, SQL_LoadData, Query, Client, DBPrio_High);
121 }
122}
123
124public SQL_LoadData(Handle:owner, Handle:handle, const String:error[], any:Client)
125{
126 if(handle != INVALID_HANDLE)
127 {
128 if(SQL_GetRowCount(handle) == 0)
129 {
130 new String:SteamID[128], String:Query[1024];
131 GetClientAuthId(Client, AuthId_Steam2, SteamID, sizeof(SteamID));
132
133 Format(Query, sizeof(Query), "INSERT INTO User(SteamID, Name, Point, Class, SkinName, ShoesName, LaserName, KnifeName, PetName, TagName, SkinEnable, ShoesEnable, LaserEnable, KnifeEnable, PetEnable, TagEnable, Vibration01, Vibration02) VALUES('%s', '%N', %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, %d, %d, %d, %d, %d, %d);", SteamID, Client, Point[Client], Class[Client], SkinName[Client], ShoesName[Client], LaserName[Client], KnifeName[Client], PetName[Client], TagName[Client], SkinEnable[Client], ShoesEnable[Client], LaserEnable[Client], KnifeEnable[Client], PetEnable[Client], TagEnable[Client], Vibration01[Client], Vibration02[Client]);
134 SQL_TQuery(DB, SQL_CheckError, Query, Client);
135 }
136 else
137 {
138 while(SQL_FetchRow(handle))
139 {
140 SQL_UserData(handle, Client);
141 }
142 }
143 }
144}
145
146SQL_LoadItemData(Handle:handle, Client, const String:SteamID[])
147{
148 if(handle != INVALID_HANDLE && !IsFakeClient(Client))
149 {
150 new String:Query[128];
151 Format(Query, sizeof(Query), "SELECT * FROM Item WHERE SteamID = '%s';", SteamID);
152 SQL_TQuery(DB, SQL_LoadItem, Query, Client, DBPrio_High);
153 }
154}
155
156public SQL_LoadItem(Handle:owner, Handle:handle, const String:error[], any:Client)
157{
158 if(handle != INVALID_HANDLE)
159 {
160 if(SQL_GetRowCount(handle) == 0)
161 {
162 new String:SteamID[128], String:Query[1024];
163 GetClientAuthId(Client, AuthId_Steam2, SteamID, sizeof(SteamID));
164
165 Format(Query, sizeof(Query), "INSERT INTO Item(SteamID, Name) VALUES('%s', '%N');", SteamID, Client);
166 SQL_TQuery(DB, SQL_CheckError, Query, Client);
167 }
168 else
169 {
170 while(SQL_FetchRow(handle))
171 {
172 SQL_UserItem(handle, Client);
173 }
174 }
175 }
176}
177
178
179public SQL_UserData(Handle:handle, any:Client)
180{
181 if(handle != INVALID_HANDLE)
182 {
183 new String:SteamID[128], String:CheckID[128], Field;
184 GetClientAuthId(Client, AuthId_Steam2, SteamID, sizeof(SteamID));
185 SQL_FieldNameToNum(handle, "SteamID", Field);
186 SQL_FetchString(handle, Field, CheckID, sizeof(CheckID));
187
188 if(!StrEqual(SteamID, CheckID))
189 {
190 return;
191 }
192
193 SQL_FieldNameToNum(handle, "Point", Field);
194 Point[Client] = SQL_FetchInt(handle, Field);
195 SQL_FieldNameToNum(handle, "Class", Field);
196 Class[Client] = SQL_FetchInt(handle, Field);
197 SQL_FieldNameToNum(handle, "SkinName", Field);
198 SQL_FetchString(handle, Field, SkinName[Client], sizeof(SkinName[]));
199 SQL_FieldNameToNum(handle, "ShoesName", Field);
200 SQL_FetchString(handle, Field, ShoesName[Client], sizeof(ShoesName[]));
201 SQL_FieldNameToNum(handle, "LaserName", Field);
202 SQL_FetchString(handle, Field, LaserName[Client], sizeof(LaserName[]));
203 SQL_FieldNameToNum(handle, "KnifeName", Field);
204 SQL_FetchString(handle, Field, KnifeName[Client], sizeof(KnifeName[]));
205 SQL_FieldNameToNum(handle, "PetName", Field);
206 SQL_FetchString(handle, Field, PetName[Client], sizeof(PetName[]));
207 SQL_FieldNameToNum(handle, "TagName", Field);
208 SQL_FetchString(handle, Field, TagName[Client], sizeof(TagName[]));
209 SQL_FieldNameToNum(handle, "SkinEnable", Field);
210 SkinEnable[Client] = SQL_FetchInt(handle, Field);
211 SQL_FieldNameToNum(handle, "ShoesEnable", Field);
212 ShoesEnable[Client] = SQL_FetchInt(handle, Field);
213 SQL_FieldNameToNum(handle, "LaserEnable", Field);
214 LaserEnable[Client] = SQL_FetchInt(handle, Field);
215 SQL_FieldNameToNum(handle, "KnifeEnable", Field);
216 KnifeEnable[Client] = SQL_FetchInt(handle, Field);
217 SQL_FieldNameToNum(handle, "PetEnable", Field);
218 PetEnable[Client] = SQL_FetchInt(handle, Field);
219 SQL_FieldNameToNum(handle, "TagEnable", Field);
220 TagEnable[Client] = SQL_FetchInt(handle, Field);
221 SQL_FieldNameToNum(handle, "Vibration01", Field);
222 Vibration01[Client] = SQL_FetchInt(handle, Field);
223 SQL_FieldNameToNum(handle, "Vibration02", Field);
224 Vibration02[Client] = SQL_FetchInt(handle, Field);
225 }
226}
227
228public SQL_UserItem(Handle:handle, any:Client)
229{
230 if(handle != INVALID_HANDLE)
231 {
232 new String:SteamID[128], String:CheckID[128], Field;
233 GetClientAuthId(Client, AuthId_Steam2, SteamID, sizeof(SteamID));
234 SQL_FieldNameToNum(handle, "SteamID", Field);
235 SQL_FetchString(handle, Field, CheckID, sizeof(CheckID));
236
237 if(!StrEqual(SteamID, CheckID))
238 {
239 return;
240 }
241
242 for(new i = 1; i < MAX_ITEMS; i++)
243 {
244 new String:ItemID[256];
245 Format(ItemID, sizeof(ItemID), "Item_%d", i);
246 SQL_FieldNameToNum(handle, ItemID, Field);
247 Item[Client][i] = SQL_FetchInt(handle, Field);
248 }
249 }
250}
251
252SQL_SaveUserData(Client, Type)
253{
254 if(DB != INVALID_HANDLE && !IsFakeClient(Client))
255 {
256 new String:SteamID[128], String:Query[512];
257 GetClientAuthId(Client, AuthId_Steam2, SteamID, sizeof(SteamID));
258
259 //1 = í¬ì¸íЏ, 2 = 등급, 3 = ì•„ì´í…œ ì •ë³´
260 if(Type == 1) Format(Query, sizeof(Query), "UPDATE User SET Name = '%N', Point = %d WHERE SteamID = '%s';", Client, Point[Client], SteamID);
261 if(Type == 2) Format(Query, sizeof(Query), "UPDATE User SET Name = '%N', Class = %d WHERE SteamID = '%s';", Client, Class[Client], SteamID);
262 if(Type == 3) Format(Query, sizeof(Query), "UPDATE User SET Name = '%N', SkinName = '%s', ShoesName = '%s', LaserName = '%s', KnifeName = '%s', PetName = '%s', TagName = '%s', SkinEnable = %d, ShoesEnable = %d, LaserEnable = %d, KnifeEnable = %d, PetEnable = %d, TagEnable = %d, Vibration01 = %d, Vibration02 = %d WHERE SteamID = '%s';", Client, SkinName[Client], ShoesName[Client], LaserName[Client], KnifeName[Client], PetName[Client], TagName[Client], SkinEnable[Client], ShoesEnable[Client], LaserEnable[Client], KnifeEnable[Client], PetEnable[Client], TagEnable[Client], Vibration01[Client], Vibration02[Client], SteamID);
263
264 SQL_TQuery(DB, SQL_CheckError, Query, Client, DBPrio_High);
265 }
266}
267
268SQL_SaveItemData(Client)
269{
270 if(DB != INVALID_HANDLE && !IsFakeClient(Client))
271 {
272 new String:SteamID[128], String:Query[512];
273 GetClientAuthId(Client, AuthId_Steam2, SteamID, sizeof(SteamID));
274
275 for(new i = 1; i < MAX_ITEMS; i++)
276 {
277 Format(Query, sizeof(Query), "UPDATE Item SET Name = '%N', Item_%d = %d WHERE SteamID = '%s';", Client, i, Item[Client][i], SteamID);
278 SQL_TQuery(DB, SQL_CheckError, Query, Client, DBPrio_High);
279 }
280 }
281}