· 8 years ago · Feb 05, 2018, 08:00 PM
1/*
2
3 GameMode Base GangWar v1.0
4
5 Bom, simplesmente um GameMode Base de GangWar em Mysql.
6 GangWar é um confronto de gangues, nesse GM é em Los Santos.
7
8 Créditos.
9
10 Spike Compiler - Criador do GameMode Base
11
12 IlanZ - Pelo GameMode Base em Registro/Login MySql.
13
14 YourShadow - Pelo processador de comandos Pawn.CMD
15
16 BlueG - Pelo MySql SAMP.
17
18 JFS - Pelo sistema de Rank do seu Gamemode Base GangWar.
19
20 Kalcor - Criador do SAMP.
21
22 Versão MySql Utilizada: R41-4
23
24*/
25#include <a_samp>
26#include <a_mysql>
27#include <Pawn.CMD>
28#include <mSelection>
29
30#define host "localhost"
31#define usuario "root"
32#define database "samp"
33#define senha "" //Não contém SENHA, Pois estou utilizando Wamp
34
35#define Kick(%0) SetTimerEx("Kickar", 200, false, "i", %0)
36#define Ban(%0) SetTimerEx("Banir", 200, false, "i", %0)
37
38#if defined MAX_PLAYERS
39 #undef MAX_PLAYERS
40 #define MAX_PLAYERS (100)
41#endif
42
43#define VERDE 0x21DD00FF
44#define VERMELHO 0xFB0000FF
45#define AMARELO 0xFFFF00FF
46#define AZUL_CLARO 0x00C2ECFF
47#define BRANCO 0xFFFFFFFF
48#define CINZA 0xCECECEFF
49
50#define COR_GROVE 0x00D900C8
51#define COR_BALLAS 0x9900FFC8
52#define COR_VAGOS 0xFFC801C8
53#define COR_AZTECAS 0x2641FEC8
54#define COR_BIKERS 0xA2B5CDFF
55#define COR_LOST 0x008B8BFF
56
57#define DIALOG_REGISTRO 1
58#define DIALOG_LOGIN 2
59#define DIALOG_GANGUES 3
60#define DIALOG_CREDITOS 4
61#define DIALOG_RANK 5
62
63forward Kickar(playerid);
64forward Banir(playerid);
65forward mMensagens();
66
67enum PlayerD
68{
69 ID,
70 Senha,
71 Dinheiro,
72 Nivel,
73 Logado,
74 Gangue,
75 Skin
76}
77new Mensagens[][] =
78{
79 "INFO: Deseja ver os desenvolvedores do servidor? /creditos!",
80 "INFO: Deseja ver o Rank das Gangue's do servidor e ver quem está liderando!? /rank!",
81 "INFO: Sempre ao entrar no servidor, tente otimizar sua conexão, evite prejudicar outros players.",
82 "INFO: Não utilize programas ilegais no servidor, poderá ser banido permanentemente!"
83};
84new RandomColors [] =
85{
86 VERMELHO,
87 AZUL_CLARO,
88 AMARELO,
89 CINZA
90};
91new Player[MAX_PLAYERS][PlayerD];
92new MySQL:Conexao;
93new query[250];
94new Text:TelaLogin[4];
95new ErrouSenha[MAX_PLAYERS];
96new GroveMatou, GroveMorreu, GroveTotal;
97new BallasMatou, BallasMorreu, BallasTotal;
98new VagosMatou, VagosMorreu, VagosTotal;
99new AztecasMatou, AztecasMorreu, AztecasTotal;
100new BikersMatou, BikersMorreu, BikersTotal;
101new LostMatou, LostMorreu, LostTotal;
102new skingrove = mS_INVALID_LISTID, skinballas = mS_INVALID_LISTID, skinvagos = mS_INVALID_LISTID;
103new skinaztecas = mS_INVALID_LISTID, skinbikers = mS_INVALID_LISTID, skinlost = mS_INVALID_LISTID;
104
105main()
106{
107 print("\n----------------------------------");
108 print(" GameMode Base GangWar | Iniciado.");
109 print("----------------------------------\n");
110}
111
112public OnGameModeInit()
113{
114 Conexao = mysql_connect(host, usuario, senha, database);
115 if(mysql_errno() != 0) print("Não foi possÃvel conectar-se na database MySql."), SendRconCommand("exit");
116 else print("Conectado com sucesso na database MySql!");
117 query[0] = EOS;
118 strcat(query, "CREATE TABLE IF NOT EXISTS Contas(ID int AUTO_INCREMENT PRIMARY KEY, Nick varchar(20) NOT NULL,Senha int(20) NOT NULL,Dinheiro int NOT NULL DEFAULT 1000, Nivel int NOT NULL DEFAULT 1, Gangue int NOT NULL DEFAULT 0, Skin int NOT NULL DEFAULT 0)");
119 mysql_query(Conexao, query, false);
120
121 SetGameModeText("GameMode Base GangWar");
122 SendRconCommand("hostname GameMode Base GangWar | v1.0");
123 SendRconCommand("language PT-BR | Brasil");
124 SendRconCommand("mapname Los Santos");
125 SendRconCommand("weburl www.seusite.com.br");
126 DisableInteriorEnterExits();
127 EnableStuntBonusForAll(0);
128 ShowPlayerMarkers(PLAYER_MARKERS_MODE_OFF);
129 ShowNameTags(1);
130 UsePlayerPedAnims();
131 SetNameTagDrawDistance(50.0);
132 SetTimer("mMensagens", 300000, true);
133
134 skingrove = LoadModelSelectionMenu("SkinsGrove.txt"); skinballas = LoadModelSelectionMenu("SkinsBallas.txt");
135 skinvagos = LoadModelSelectionMenu("SkinsVagos.txt"); skinaztecas = LoadModelSelectionMenu("SkinsAztecas.txt");
136 skinbikers = LoadModelSelectionMenu("SkinsBikers.txt"); skinlost = LoadModelSelectionMenu("SkinsLost.txt");
137
138 TelaLogin[0] = TextDrawCreate(641.529418, 1.500000, "usebox");
139 TextDrawLetterSize(TelaLogin[0], 0.000000, 12.905555);
140 TextDrawTextSize(TelaLogin[0], -2.000000, 0.000000);
141 TextDrawAlignment(TelaLogin[0], 1);
142 TextDrawColor(TelaLogin[0], 0);
143 TextDrawUseBox(TelaLogin[0], true);
144 TextDrawBoxColor(TelaLogin[0], 102);
145 TextDrawSetShadow(TelaLogin[0], 0);
146 TextDrawSetOutline(TelaLogin[0], 0);
147 TextDrawFont(TelaLogin[0], 0);
148
149 TelaLogin[1] = TextDrawCreate(641.529418, 339.833312, "usebox");
150 TextDrawLetterSize(TelaLogin[1], 0.000000, 11.803709);
151 TextDrawTextSize(TelaLogin[1], -2.000000, 0.000000);
152 TextDrawAlignment(TelaLogin[1], 1);
153 TextDrawColor(TelaLogin[1], 0);
154 TextDrawUseBox(TelaLogin[1], true);
155 TextDrawBoxColor(TelaLogin[1], 102);
156 TextDrawSetShadow(TelaLogin[1], 0);
157 TextDrawSetOutline(TelaLogin[1], 0);
158 TextDrawFont(TelaLogin[1], 0);
159
160 TelaLogin[2] = TextDrawCreate(164.705871, 34.999992, "~r~GAMEMODE ~w~BASE GANGWAR");
161 TextDrawLetterSize(TelaLogin[2], 0.688117, 2.416666);
162 TextDrawAlignment(TelaLogin[2], 1);
163 TextDrawColor(TelaLogin[2], -1);
164 TextDrawSetShadow(TelaLogin[2], 0);
165 TextDrawSetOutline(TelaLogin[2], 1);
166 TextDrawBackgroundColor(TelaLogin[2], 51);
167 TextDrawFont(TelaLogin[2], 1);
168 TextDrawSetProportional(TelaLogin[2], 1);
169
170 TelaLogin[3] = TextDrawCreate(228.705841, 76.999961, "Guerra de Gangue's em Los Santos!");
171 TextDrawLetterSize(TelaLogin[3], 0.234941, 0.970000);
172 TextDrawAlignment(TelaLogin[3], 1);
173 TextDrawColor(TelaLogin[3], -16776961);
174 TextDrawSetShadow(TelaLogin[3], 0);
175 TextDrawSetOutline(TelaLogin[3], 1);
176 TextDrawBackgroundColor(TelaLogin[3], 51);
177 TextDrawFont(TelaLogin[3], 2);
178 TextDrawSetProportional(TelaLogin[3], 1);
179
180 Create3DTextLabel("Grove Street Families\n{FFFFFF}Digite /equipar para equipar", COR_GROVE, 2506.8540,-1685.8157,13.5592, 20.0, 0, 0);
181 Create3DTextLabel("Front Yard Ballas\n{FFFFFF}Digite /equipar para equipar", COR_BALLAS, 2082.2151,-1578.1998,13.4291, 20.0, 0, 0);
182 Create3DTextLabel("Los Santos Vagos\n{FFFFFF}Digite /equipar para equipar", COR_VAGOS, 2232.4038,-1156.5575,25.8906, 20.0, 0, 0);
183 Create3DTextLabel("Varrio Los Aztecas\n{FFFFFF}Digite /equipar para equipar", COR_AZTECAS, 1871.0402,-2020.4272,13.5469, 20.0, 0, 0);
184 Create3DTextLabel("Los Santos Bikers\n{FFFFFF}Digite /equipar para equipar", COR_BIKERS, 2348.4954,-1372.6798,24.3984, 20.0, 0, 0);
185 Create3DTextLabel("The Lost MC\n{FFFFFF}Digite /equipar para equipar", COR_LOST, 2354.9946,-651.7393,128.0547, 20.0, 0, 0);
186
187 AddStaticPickup(19832, 23, 2506.8540,-1685.8157,13.5592, 0);
188 AddStaticPickup(19832, 23, 2082.2151,-1578.1998,13.4291, 0);
189 AddStaticPickup(19832, 23, 2232.4038,-1156.5575,25.8906, 0);
190 AddStaticPickup(19832, 23, 2348.4954,-1372.6798,24.3984, 0);
191 AddStaticPickup(19832, 23, 2354.9946,-651.7393,128.0547, 0);
192
193 // Carros Grove
194 AddStaticVehicleEx(412,2487.5000000,-1682.7000000,13.3000000,268.0000000,16,16,15); //Voodoo
195 AddStaticVehicleEx(412,2503.5000000,-1679.3000000,13.3000000,306.0000000,16,16,15); //Voodoo
196 AddStaticVehicleEx(536,2508.2000000,-1666.5000000,13.2000000,10.0000000,16,16,15); //Blade
197 AddStaticVehicleEx(567,2472.7000000,-1676.3000000,13.3000000,224.0000000,16,16,15); //Savanna
198 AddStaticVehicleEx(492,2501.2000000,-1657.0000000,13.3000000,62.0000000,16,16,15); //Greenwood
199 AddStaticVehicleEx(566,2486.8999000,-1655.2000000,13.2000000,90.0000000,16,16,15); //Tahoma
200 AddStaticVehicleEx(521,2477.7000000,-1655.0000000,13.0000000,178.0000000,16,16,15); //FCR-900
201 AddStaticVehicleEx(521,2476.6001000,-1655.0000000,13.0000000,178.0000000,16,16,15); //FCR-900
202 AddStaticVehicleEx(521,2478.8999000,-1655.0000000,13.0000000,182.0000000,16,16,15); //FCR-900
203
204 //Carros Ballas
205 AddStaticVehicleEx(412,2098.3999000,-1571.1000000,13.4000000,0.0000000,149,149,15); //Voodoo
206 AddStaticVehicleEx(412,2098.3999000,-1581.3000000,13.4000000,0.0000000,149,149,15); //Voodoo
207 AddStaticVehicleEx(536,2098.2000000,-1562.0000000,13.2000000,0.0000000,149,149,15); //Blade
208 AddStaticVehicleEx(567,2088.6001000,-1562.1000000,13.1000000,0.0000000,149,149,15); //Savanna
209 AddStaticVehicleEx(492,2088.3999000,-1571.2000000,13.1000000,0.0000000,149,149,15); //Greenwood
210 AddStaticVehicleEx(566,2088.5000000,-1580.7000000,13.2000000,0.0000000,149,149,15); //Tahoma
211 AddStaticVehicleEx(521,2094.1001000,-1555.1000000,12.8000000,0.0000000,149,149,15); //FCR-900
212 AddStaticVehicleEx(521,2093.0000000,-1555.1000000,12.8000000,0.0000000,149,149,15); //FCR-900
213 AddStaticVehicleEx(521,2091.8000000,-1555.2000000,12.8000000,0.0000000,149,149,15); //FCR-900
214
215 //Carros Vagos
216 AddStaticVehicleEx(412,2206.6001000,-1153.6000000,25.7000000,270.0000000,6,6,15); //Voodoo
217 AddStaticVehicleEx(412,2206.6001000,-1157.2000000,25.7000000,270.0000000,6,6,15); //Voodoo
218 AddStaticVehicleEx(536,2206.6001000,-1161.0000000,25.6000000,270.0000000,6,6,15); //Blade
219 AddStaticVehicleEx(567,2206.5000000,-1165.1000000,25.7000000,272.0000000,6,6,15); //Savanna
220 AddStaticVehicleEx(492,2206.3000000,-1169.1000000,25.6000000,272.0000000,6,6,15); //Greenwood
221 AddStaticVehicleEx(566,2206.0000000,-1172.9000000,25.6000000,270.0000000,6,6,15); //Tahoma
222 AddStaticVehicleEx(521,2204.5000000,-1177.8000000,25.4000000,0.0000000,6,6,15); //FCR-900
223 AddStaticVehicleEx(521,2205.7000000,-1177.7000000,25.4000000,0.0000000,6,6,15); //FCR-900
224 AddStaticVehicleEx(521,2206.7000000,-1177.7000000,25.4000000,0.0000000,6,6,15); //FCR-900
225
226 //Carros Aztecas
227 AddStaticVehicleEx(412,1876.6000000,-2037.4000000,13.5000000,0.0000000,7,7,15); //Voodoo
228 AddStaticVehicleEx(412,1876.5000000,-2028.5000000,13.5000000,0.0000000,7,7,15); //Voodoo
229 AddStaticVehicleEx(536,1889.3000000,-2038.0000000,13.4000000,0.0000000,7,7,15); //Blade
230 AddStaticVehicleEx(567,1889.7000000,-2029.4000000,13.5000000,0.0000000,7,7,15); //Savanna
231 AddStaticVehicleEx(492,1889.7000000,-2021.0000000,13.4000000,0.0000000,7,7,15); //Greenwood
232 AddStaticVehicleEx(566,1876.4000000,-2020.4000000,13.4000000,0.0000000,7,7,15); //Tahoma
233 AddStaticVehicleEx(521,1871.1000000,-2029.4000000,13.2000000,0.0000000,7,7,15); //FCR-900
234 AddStaticVehicleEx(521,1870.1000000,-2029.5000000,13.2000000,0.0000000,7,7,15); //FCR-900
235 AddStaticVehicleEx(521,1869.1000000,-2029.5000000,13.2000000,0.0000000,7,7,15); //FCR-900
236
237 //Carros Bikers
238 AddStaticVehicleEx(463,2357.3999000,-1359.6000000,23.6000000,270.0000000,0,0,15); //Freeway
239 AddStaticVehicleEx(463,2357.3999000,-1361.0000000,23.6000000,272.0000000,0,0,15); //Freeway
240 AddStaticVehicleEx(463,2357.3999000,-1358.4000000,23.6000000,272.0000000,0,0,15); //Freeway
241 AddStaticVehicleEx(463,2357.3999000,-1357.1000000,23.6000000,272.0000000,0,0,15); //Freeway
242 AddStaticVehicleEx(463,2357.3999000,-1362.2000000,23.6000000,272.0000000,0,0,15); //Freeway
243 AddStaticVehicleEx(463,2357.3999000,-1363.5000000,23.6000000,270.0000000,0,0,15); //Freeway
244 AddStaticVehicleEx(463,2357.3999000,-1364.8000000,23.6000000,268.0000000,0,0,15); //Freeway
245 AddStaticVehicleEx(463,2357.3999000,-1366.2000000,23.6000000,272.0000000,0,0,15); //Freeway
246 AddStaticVehicleEx(463,2357.3999000,-1367.6000000,23.6000000,270.0000000,0,0,15); //Freeway
247
248 //Carros The Lost MC
249 AddStaticVehicleEx(586,2359.2000000,-647.2999900,127.7000000,0.0000000,123,123,15); //Wayfarer
250 AddStaticVehicleEx(586,2360.8999000,-647.2999900,127.8000000,0.0000000,123,123,15); //Wayfarer
251 AddStaticVehicleEx(586,2362.5000000,-647.2000100,127.6000000,0.0000000,123,123,15); //Wayfarer
252 AddStaticVehicleEx(478,2365.2000000,-647.5999800,127.9000000,0.0000000,123,123,15); //Walton
253 AddStaticVehicleEx(478,2368.8000000,-647.5999800,127.7000000,0.0000000,123,123,15); //Walton
254 AddStaticVehicleEx(422,2372.1001000,-647.7000100,127.6000000,0.0000000,123,123,15); //Bobcat
255 AddStaticVehicleEx(422,2375.3000000,-647.7000100,127.5000000,0.0000000,123,123,15); //Bobcat
256 AddStaticVehicleEx(422,2378.6001000,-647.5999800,127.5000000,0.0000000,123,123,15); //Bobcat
257 AddStaticVehicleEx(422,2381.7000000,-647.5000000,127.5000000,0.0000000,123,123,15); //Bobcat
258 return 1;
259}
260public OnGameModeExit()
261{
262 print("\n----------------------------------");
263 print(" GameMode Base GangWar | Desligado.");
264 print("----------------------------------\n");
265 for(new i; i < MAX_PLAYERS; i++){if(Player[i][Logado] == 1){SalvarConta(i);return 1;}}
266 return 1;
267}
268public OnPlayerRequestClass(playerid, classid)
269{
270 new row;
271 LimparChat(playerid,100);
272 TextDrawShowForPlayer(playerid,TelaLogin[0]),TextDrawShowForPlayer(playerid,TelaLogin[1]);
273 TextDrawShowForPlayer(playerid,TelaLogin[2]),TextDrawShowForPlayer(playerid,TelaLogin[3]);
274 InterpolateCameraPos(playerid, 2414.344970, -1666.639404, 54.605773, 1483.025146, -907.421142, 82.550628, 6000);
275 InterpolateCameraLookAt(playerid, 2414.251220, -1671.561523, 53.731388, 1480.151367, -903.330383, 82.464698, 6000);
276 format(query, sizeof(query), "SELECT * FROM Contas WHERE Nick='%s' LIMIT 1", Nome(playerid));
277 mysql_query(Conexao, query, true);
278 cache_get_row_count(row);
279 cache_get_value_name_int(0, "Senha", Player[playerid][Senha]);
280 if(row > 0) ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{FFFFFF}Login no servidor", "Você é registrado, digite sua senha abaixo", "Logar", "Sair");
281 else ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "{FFFFFF}Registro no servidor", "Você não é registrado, digite uma senha abaixo", "Registrar", "Sair");
282 return 1;
283}
284public OnPlayerConnect(playerid)
285{
286 new string[100];
287 format(string,sizeof(string),"%s {FFFFFF}conectou no servidor.",Nome(playerid));
288 SendClientMessageToAll(CINZA,string);
289 LimparChat(playerid,100);
290 return 1;
291}
292public OnPlayerDisconnect(playerid, reason)
293{
294 new string[100];
295 new szDisconnectReason[3][] ={"Conexão/Crash","Vontade Própria","Kickado/Banido"};
296 format(string,sizeof(string),"%s {FFFFFF}desconectou do servidor. (Motivo: %s)",Nome(playerid), szDisconnectReason[reason]);
297 SendClientMessageToAll(CINZA,string);
298 if(Player[playerid][Logado]) SalvarConta(playerid);
299 TextDrawHideForPlayer(playerid,TelaLogin[0]),TextDrawHideForPlayer(playerid,TelaLogin[1]);
300 TextDrawHideForPlayer(playerid,TelaLogin[2]),TextDrawHideForPlayer(playerid,TelaLogin[3]);
301 return 1;
302}
303public OnPlayerSpawn(playerid)
304{
305 ResetPlayerWeapons(playerid);
306 SetPlayerHealth(playerid, 100);
307 SetPlayerTeam(playerid, Player[playerid][Gangue]); //Evita Team Kill
308 TextDrawHideForPlayer(playerid,TelaLogin[0]),TextDrawHideForPlayer(playerid,TelaLogin[1]);
309 TextDrawHideForPlayer(playerid,TelaLogin[2]),TextDrawHideForPlayer(playerid,TelaLogin[3]);
310 if(Player[playerid][Gangue] == 1)
311 {
312 SetPlayerPos(playerid, 2509.9033,-1680.5381,13.5469);
313 SetPlayerInterior(playerid, 0);
314 SetPlayerColor(playerid, COR_GROVE);
315 return 1;
316 }
317 else if(Player[playerid][Gangue] == 2)
318 {
319 SetPlayerPos(playerid, 2085.5129,-1575.9478,13.4100);
320 SetPlayerInterior(playerid, 0);
321 SetPlayerColor(playerid, COR_BALLAS);
322 return 1;
323 }
324 else if(Player[playerid][Gangue] == 3)
325 {
326 SetPlayerPos(playerid, 2226.5706,-1156.5385,25.7949);
327 SetPlayerInterior(playerid, 0);
328 SetPlayerColor(playerid, COR_VAGOS);
329 return 1;
330 }
331 else if(Player[playerid][Gangue] == 4)
332 {
333 SetPlayerPos(playerid, 1876.1732,-2018.1912,13.5391);
334 SetPlayerInterior(playerid, 0);
335 SetPlayerColor(playerid, COR_AZTECAS);
336 return 1;
337 }
338 else if(Player[playerid][Gangue] == 5)
339 {
340 SetPlayerPos(playerid, 2338.5767,-1373.2506,24.0129);
341 SetPlayerInterior(playerid, 0);
342 SetPlayerColor(playerid, COR_BIKERS);
343 return 1;
344 }
345 else if(Player[playerid][Gangue] == 6)
346 {
347 SetPlayerPos(playerid, 2351.7117,-655.1479,128.0547);
348 SetPlayerInterior(playerid, 0);
349 SetPlayerColor(playerid, COR_LOST);
350 return 1;
351 }
352 return 1;
353}
354public OnPlayerDeath(playerid, killerid, reason)
355{
356 new string[256];
357 SendDeathMessage(killerid, playerid, reason);
358 if(playerid != INVALID_PLAYER_ID) SetPlayerScore(playerid, GetPlayerScore(playerid) - 1);
359 if(killerid != INVALID_PLAYER_ID) SetPlayerScore(killerid, GetPlayerScore(killerid) + 1);
360 if(Player[killerid][Gangue] == 1)
361 {
362 GroveMatou++; GroveTotal++;
363 format(string,sizeof(string),"INFO: {FFFFFF}%s Matou %s e conquistou mais 1 ponto para os {00D900}Grove Street Families!",Nome(killerid),Nome(playerid));
364 SendClientMessageToAll(COR_GROVE,string);
365 return 1;
366 }
367 else if(Player[killerid][Gangue] == 2)
368 {
369 BallasMatou++; BallasTotal++;
370 format(string,sizeof(string),"INFO: {FFFFFF}%s Matou %s e conquistou mais 1 ponto para os {9900FF}Front Yard Ballas!",Nome(killerid),Nome(playerid));
371 SendClientMessageToAll(COR_BALLAS,string);
372 return 1;
373 }
374 else if(Player[killerid][Gangue] == 3)
375 {
376 VagosMatou++; VagosTotal++;
377 format(string,sizeof(string),"INFO: {FFFFFF}%s Matou %s e conquistou mais 1 ponto para os {FFC801}Los Santos Vagos!",Nome(killerid),Nome(playerid));
378 SendClientMessageToAll(COR_VAGOS,string);
379 return 1;
380 }
381 else if(Player[killerid][Gangue] == 4)
382 {
383 AztecasMatou++; AztecasTotal++;
384 format(string,sizeof(string),"INFO: {FFFFFF}%s Matou %s e conquistou mais 1 ponto para os {2641FE}Varrio Los Aztecas!",Nome(killerid),Nome(playerid));
385 SendClientMessageToAll(COR_AZTECAS,string);
386 return 1;
387 }
388 else if(Player[killerid][Gangue] == 5)
389 {
390 BikersMatou++; BikersTotal++;
391 format(string,sizeof(string),"INFO: {FFFFFF}%s Matou %s e conquistou mais 1 ponto para os {A2B5CD}Los Santos Bikers!",Nome(killerid),Nome(playerid));
392 SendClientMessageToAll(COR_BIKERS,string);
393 return 1;
394 }
395 else if(Player[killerid][Gangue] == 6)
396 {
397 LostMatou++; LostTotal++;
398 format(string,sizeof(string),"INFO: {FFFFFF}%s Matou %s e conquistou mais 1 ponto para os {A2B5CD}The Lost MC!",Nome(killerid),Nome(playerid));
399 SendClientMessageToAll(COR_LOST,string);
400 return 1;
401 }
402 //
403 if(Player[playerid][Gangue] == 1)
404 {
405 GroveMorreu++; GroveTotal--;
406 return 1;
407 }
408 else if(Player[playerid][Gangue] == 2)
409 {
410 BallasMorreu++; BallasTotal--;
411 return 1;
412 }
413 else if(Player[playerid][Gangue] == 3)
414 {
415 VagosMorreu++; VagosTotal--;
416 return 1;
417 }
418 else if(Player[playerid][Gangue] == 4)
419 {
420 AztecasMorreu++; AztecasTotal--;
421 return 1;
422 }
423 else if(Player[playerid][Gangue] == 5)
424 {
425 BikersMorreu++; BikersTotal--;
426 return 1;
427 }
428 else if(Player[playerid][Gangue] == 6)
429 {
430 LostMorreu++; LostTotal--;
431 return 1;
432 }
433 return 1;
434}
435public OnVehicleSpawn(vehicleid)
436{
437 return 1;
438}
439public OnVehicleDeath(vehicleid, killerid)
440{
441 return 1;
442}
443public OnPlayerText(playerid, text[])
444{
445 if(strlen(text) > 100 || strval(text) > 100) return SendClientMessage(playerid,VERMELHO,"ERRO: {FFFFFF}Texto muito grande, diminua um pouco! (Máximo: 100 letras)");
446 return 1;
447}
448public OnPlayerCommandPerformed(playerid, cmd[], params[], result, flags)
449{
450 if(result == -1) SendClientMessage(playerid,VERMELHO,"ERRO: {FFFFFF}Comando não existe no servidor, utilize /ajuda para ver os comandos!");
451 return 1;
452}
453CMD:limparchat(playerid)
454{
455 LimparChat(playerid, 100);
456 return 1;
457}
458CMD:creditos(playerid)
459{
460 new creditos[800];
461 strcat(creditos, "{FF0000}GameMode Base GangWar {FFFFFF}v1.0\n\n");
462 strcat(creditos, "{FF0000}Criador do GameMode: {FFFFFF}Spike Compiler\n\n");
463 strcat(creditos, "{FF0000}Editor do GameMode: {FFFFFF}Seu_Nick\n\n");
464 strcat(creditos, "{FFFFFF}Créditos a todos os players por jogar conosco!\n");
465 ShowPlayerDialog(playerid,DIALOG_CREDITOS,DIALOG_STYLE_MSGBOX,"{FFFFFF}Créditos do servidor",creditos,"Informado","");
466 return 1;
467}
468CMD:equipar(playerid)
469{
470 if(IsPlayerInRangeOfPoint(playerid, 3.0, 2506.8540,-1685.8157,13.5592))
471 {
472 if(Player[playerid][Gangue] == 1)
473 {
474 Equipamentos(playerid);
475 SendClientMessage(playerid,COR_GROVE,"[Grove Street Families] {FFFFFF}Você pegou seus equipamentos!");
476 return 1;
477 }
478 return 1;
479 }
480 else if(IsPlayerInRangeOfPoint(playerid, 3.0, 2082.2151,-1578.1998,13.4291))
481 {
482 if(Player[playerid][Gangue] == 2)
483 {
484 Equipamentos(playerid);
485 SendClientMessage(playerid,COR_BALLAS,"[Front Yard Ballas] {FFFFFF}Você pegou seus equipamentos!");
486 return 1;
487 }
488 return 1;
489 }
490 else if(IsPlayerInRangeOfPoint(playerid, 3.0, 2232.4038,-1156.5575,25.8906))
491 {
492 if(Player[playerid][Gangue] == 3)
493 {
494 Equipamentos(playerid);
495 SendClientMessage(playerid,COR_VAGOS,"[Los Santos Vagos] {FFFFFF}Você pegou seus equipamentos!");
496 return 1;
497 }
498 return 1;
499 }
500 else if(IsPlayerInRangeOfPoint(playerid, 3.0, 1871.0402,-2020.4272,13.5469))
501 {
502 if(Player[playerid][Gangue] == 4)
503 {
504 Equipamentos(playerid);
505 SendClientMessage(playerid,COR_AZTECAS,"[Varrio Los Aztecas] {FFFFFF}Você pegou seus equipamentos!");
506 return 1;
507 }
508 return 1;
509 }
510 else if(IsPlayerInRangeOfPoint(playerid, 3.0, 2348.4954,-1372.6798,24.3984))
511 {
512 if(Player[playerid][Gangue] == 5)
513 {
514 Equipamentos(playerid);
515 SendClientMessage(playerid,COR_BIKERS,"[Los Santos Bikers] {FFFFFF}Você pegou seus equipamentos!");
516 return 1;
517 }
518 return 1;
519 }
520 else if(IsPlayerInRangeOfPoint(playerid, 3.0, 2354.9946,-651.7393,128.0547))
521 {
522 if(Player[playerid][Gangue] == 6)
523 {
524 Equipamentos(playerid);
525 SendClientMessage(playerid,COR_LOST,"[The Lost MC] {FFFFFF}Você pegou seus equipamentos!");
526 return 1;
527 }
528 return 1;
529 }
530 return 1;
531}
532CMD:kill(playerid)
533{
534 SetPlayerHealth(playerid, 0);
535 SetPlayerScore(playerid, GetPlayerScore(playerid) - 2);
536 SendClientMessage(playerid,VERMELHO,"INFO: {FFFFFF}Você se matou, perdeu 2 Score!");
537 return 1;
538}
539CMD:rank(playerid)
540{
541 new string[900], strgrove[128], strballas[128], strvagos[128], straztecas[128], strbikers[128], strlost[128];
542 format(strgrove,sizeof(strgrove),"{00D900}Grove Street Families: Matou {FFFFFF}%d {00D900}Morreu {FFFFFF}%d | {00D900}TOTAL: {FFFFFF}%d\n\n",GroveMatou,GroveMorreu,GroveTotal);
543 strcat(string, strgrove);
544 format(strballas,sizeof(strballas),"{9900FF}Front Yard Ballas: Matou {FFFFFF}%d {9900FF}Morreu {FFFFFF}%d | {9900FF}TOTAL: {FFFFFF}%d\n\n",BallasMatou,BallasMorreu,BallasTotal);
545 strcat(string, strballas);
546 format(strvagos,sizeof(strvagos),"{FFC801}Los Santos Vagos: Matou {FFFFFF}%d {FFC801}Morreu {FFFFFF}%d | {FFC801}TOTAL: {FFFFFF}%d\n\n",VagosMatou,VagosMorreu,VagosTotal);
547 strcat(string, strvagos);
548 format(straztecas,sizeof(straztecas),"{2641FE}Varrio Los Aztecas: Matou {FFFFFF}%d {2641FE}Morreu {FFFFFF}%d | {2641FE}TOTAL: {FFFFFF}%d\n\n",AztecasMatou,AztecasMorreu,AztecasTotal);
549 strcat(string, straztecas);
550 format(strbikers,sizeof(strbikers),"{A2B5CD}Los Santos Bikers: Matou {FFFFFF}%d {A2B5CD}Morreu {FFFFFF}%d | {A2B5CD}TOTAL: {FFFFFF}%d\n\n",BikersMatou,BikersMorreu,BikersTotal);
551 strcat(string, strbikers);
552 format(strlost,sizeof(strlost),"{008B8B}The Lost MC: Matou {FFFFFF}%d {008B8B}Morreu {FFFFFF}%d | {008B8B}TOTAL: {FFFFFF}%d\n",LostMatou,LostMorreu,LostTotal);
553 strcat(string, strlost);
554 ShowPlayerDialog(playerid,DIALOG_RANK,DIALOG_STYLE_MSGBOX,"{FFFFFF}Rank Gangue's",string,"Informado","");
555 return 1;
556}
557CMD:mudarskin(playerid)
558{
559 if(Player[playerid][Gangue] == 1) return ShowModelSelectionMenu(playerid, skingrove, "Grove Street Families");
560 else if(Player[playerid][Gangue] == 2) return ShowModelSelectionMenu(playerid, skinballas, "Front Yard Ballas");
561 else if(Player[playerid][Gangue] == 3) return ShowModelSelectionMenu(playerid, skinvagos, "Los Santos Vagos");
562 else if(Player[playerid][Gangue] == 4) return ShowModelSelectionMenu(playerid, skinaztecas, "Varrio Los Aztecas");
563 else if(Player[playerid][Gangue] == 5) return ShowModelSelectionMenu(playerid, skinbikers, "Los Santos Bikers");
564 else if(Player[playerid][Gangue] == 6) return ShowModelSelectionMenu(playerid, skinlost, "The Lost MC");
565 return 1;
566}
567public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
568{
569 return 1;
570}
571public OnPlayerExitVehicle(playerid, vehicleid)
572{
573 return 1;
574}
575public OnPlayerStateChange(playerid, newstate, oldstate)
576{
577 return 1;
578}
579public OnPlayerEnterCheckpoint(playerid)
580{
581 return 1;
582}
583public OnPlayerLeaveCheckpoint(playerid)
584{
585 return 1;
586}
587public OnPlayerEnterRaceCheckpoint(playerid)
588{
589 return 1;
590}
591public OnPlayerLeaveRaceCheckpoint(playerid)
592{
593 return 1;
594}
595public OnRconCommand(cmd[])
596{
597 return 1;
598}
599public OnPlayerRequestSpawn(playerid)
600{
601 return 0;
602}
603public OnObjectMoved(objectid)
604{
605 return 1;
606}
607public OnPlayerObjectMoved(playerid, objectid)
608{
609 return 1;
610}
611public OnPlayerPickUpPickup(playerid, pickupid)
612{
613 return 1;
614}
615public OnVehicleMod(playerid, vehicleid, componentid)
616{
617 return 1;
618}
619public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
620{
621 return 1;
622}
623public OnVehicleRespray(playerid, vehicleid, color1, color2)
624{
625 return 1;
626}
627public OnPlayerSelectedMenuRow(playerid, row)
628{
629 return 1;
630}
631public OnPlayerExitedMenu(playerid)
632{
633 return 1;
634}
635public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
636{
637 return 1;
638}
639public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
640{
641 return 1;
642}
643public OnRconLoginAttempt(ip[], password[], success)
644{
645 if(!success)
646 {
647 new pip[16];
648 printf("IP %s Tentou logar RCON com a senha: %s",ip, password);
649 for(new i = GetPlayerPoolSize(); i != -1; --i)
650 {
651 GetPlayerIp(i, pip, sizeof(pip));
652 if(!strcmp(ip, pip, true))
653 {
654 SendClientMessage(i, VERMELHO, "INFO: {FFFFFF}Você foi kickado por errar a senha RCON.");
655 Kick(i);
656 }
657 }
658 }
659 return 1;
660}
661public OnPlayerUpdate(playerid)
662{
663 return 1;
664}
665public OnPlayerStreamIn(playerid, forplayerid)
666{
667 return 1;
668}
669public OnPlayerStreamOut(playerid, forplayerid)
670{
671 return 1;
672}
673public OnVehicleStreamIn(vehicleid, forplayerid)
674{
675 return 1;
676}
677public OnVehicleStreamOut(vehicleid, forplayerid)
678{
679 return 1;
680}
681public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
682{
683 switch(dialogid)
684 {
685 case DIALOG_REGISTRO:
686 {
687 if(!response){Kick(playerid);return 1;}
688 if(strlen(inputtext) < 4 || strlen(inputtext) > 20)
689 {
690 SendClientMessage(playerid, VERMELHO, "ERRO: {FFFFFF}Digite uma senha de 4 a 20 caracteres.");
691 ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "{FFFFFF}Registro no servidor", "Você não é registrado, digite uma senha abaixo", "Registrar", "Sair");
692 return 1;
693 }
694 if(!strval(inputtext))
695 {
696 ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "{FFFFFF}Registro no servidor", "Você não é registrado, digite uma senha abaixo", "Registrar", "Sair");
697 SendClientMessage(playerid,VERMELHO, "ERRO: {FFFFFF}Digite apenas numeros!");
698 return 1;
699 }
700 CriarConta(playerid, inputtext);
701 ShowPlayerDialog(playerid,DIALOG_GANGUES,DIALOG_STYLE_LIST,"{FFFFFF}Gangue's Los Santos","{32CD32}Grove Street Families - GSF\n{9932CC}Front Yard Ballas - FYB\n{FFD700}Los Santos Vagos - LSV\n{4876FF}Varrio Los Aztecas - VLA\n{A2B5CD}Los Santos Bikers - LSB\n{008B8B}The Lost MC - TLM","Selecionar","Cancelar");
702 }
703 case DIALOG_LOGIN:
704 {
705 if(!response){Kick(playerid);return 1;}
706 if(strval(inputtext) == Player[playerid][Senha])
707 {
708 SendClientMessage(playerid,VERDE, "INFO: {FFFFFF}Login efetuado com sucesso, bem vindo novamente ao servidor!");
709 SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 26, 36, 28, 150, 0, 0 );
710 SpawnPlayer(playerid);
711 CarregarConta(playerid);
712 if(Player[playerid][Gangue] == 1)
713 {
714 SetPlayerPos(playerid, 2509.9033,-1680.5381,13.5469);
715 SetPlayerInterior(playerid, 0);
716 SetPlayerColor(playerid, COR_GROVE);
717 return 1;
718 }
719 else if(Player[playerid][Gangue] == 2)
720 {
721 SetPlayerPos(playerid, 2085.5129,-1575.9478,13.4100);
722 SetPlayerInterior(playerid, 0);
723 SetPlayerColor(playerid, COR_BALLAS);
724 return 1;
725 }
726 else if(Player[playerid][Gangue] == 3)
727 {
728 SetPlayerPos(playerid, 2226.5706,-1156.5385,25.7949);
729 SetPlayerInterior(playerid, 0);
730 SetPlayerColor(playerid, COR_VAGOS);
731 return 1;
732 }
733 else if(Player[playerid][Gangue] == 4)
734 {
735 SetPlayerPos(playerid, 1876.1732,-2018.1912,13.5391);
736 SetPlayerInterior(playerid, 0);
737 SetPlayerColor(playerid, COR_AZTECAS);
738 return 1;
739 }
740 else if(Player[playerid][Gangue] == 5)
741 {
742 SetPlayerPos(playerid, 2338.5767,-1373.2506,24.0129);
743 SetPlayerInterior(playerid, 0);
744 SetPlayerColor(playerid, COR_BIKERS);
745 return 1;
746 }
747 else if(Player[playerid][Gangue] == 6)
748 {
749 SetPlayerPos(playerid, 2351.7117,-655.1479,128.0547);
750 SetPlayerInterior(playerid, 0);
751 SetPlayerColor(playerid, COR_LOST);
752 return 1;
753 }
754 }
755 else
756 {
757 new string[90];
758 if(ErrouSenha[playerid] == 3)
759 {
760 SendClientMessage(playerid,VERMELHO,"ERRO: {FFFFFF}Você errou sua senha 3 vezes, foi kickado.");
761 ErrouSenha[playerid] = 0;
762 Kick(playerid);
763 return 1;
764 }
765 ErrouSenha[playerid]++;
766 format(string,sizeof(string),"ERRO: {FFFFFF}Senha Incorreta! (%d/3)",ErrouSenha);
767 SendClientMessage(playerid,VERMELHO,string);
768 ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{FFFFFF}Login no servidor", "Você é registrado, digite sua senha abaixo", "Logar", "Sair");
769 return 1;
770 }
771 }
772 }
773 if(dialogid == DIALOG_GANGUES)
774 {
775 if(response)
776 {
777 switch(listitem)
778 {
779 case 0:
780 {
781 Player[playerid][Gangue] = 1;
782 SetPlayerColor(playerid, COR_GROVE);
783 SetSpawnInfo(playerid, 0, 107 ,2514.4358,-1672.1802,13.5754,87.6967,0,0,0,0,0,0);
784 SpawnPlayer(playerid);
785 SendClientMessage(playerid,COR_GROVE,"INFO: Você agora é um membro da Gangue Grove Street Families!");
786 return 1;
787 }
788 case 1:
789 {
790 Player[playerid][Gangue] = 2;
791 SetPlayerColor(playerid, COR_BALLAS);
792 SetSpawnInfo(playerid,0, 104 ,2154.4451,-1684.4480,15.0859,271.5865,0,0,0,0,0,0);
793 SpawnPlayer(playerid);
794 SendClientMessage(playerid,COR_BALLAS,"INFO: Você agora é um membro da Gangue Front Yard Ballas!");
795 return 1;
796 }
797 case 2:
798 {
799 Player[playerid][Gangue] = 3;
800 SetPlayerColor(playerid, COR_VAGOS);
801 SetSpawnInfo(playerid, 0, 110 ,2226.7393,-1158.1874,25.7842,345.1212,0,0,0,0,0,0);
802 SpawnPlayer(playerid);
803 SendClientMessage(playerid,COR_VAGOS,"INFO: Você agora é um membro da Gangue Los Santos Vagos!");
804 return 1;
805 }
806 case 3:
807 {
808 Player[playerid][Gangue] = 4;
809 SetPlayerColor(playerid, COR_AZTECAS);
810 SetSpawnInfo(playerid, 0, 116 ,1875.6589,-2018.2567,13.5391,164.4207,0,0,0,0,0,0);
811 SpawnPlayer(playerid);
812 SendClientMessage(playerid,COR_AZTECAS,"INFO: Você agora é um membro da Gangue Varrio Los Aztecas!");
813 return 1;
814 }
815 case 4:
816 {
817 Player[playerid][Gangue] = 5;
818 SetPlayerColor(playerid, COR_BIKERS);
819 SetSpawnInfo(playerid, 0, 100 ,2305.2695,-1632.2406,14.4774,171.5569,0,0,0,0,0,0);
820 SpawnPlayer(playerid);
821 SendClientMessage(playerid,COR_BIKERS,"INFO: Você agora é um membro da Gangue Los Santos Biker's!");
822 return 1;
823 }
824 case 5:
825 {
826 Player[playerid][Gangue] = 6;
827 SetPlayerColor(playerid, COR_LOST);
828 SetSpawnInfo(playerid, 0, 158 ,1108.7306,-309.7142,73.9922,114.7386,0,0,0,0,0,0);
829 SpawnPlayer(playerid);
830 SendClientMessage(playerid,COR_LOST,"INFO: Você agora é um membro da Gangue The Lost MC!");
831 return 1;
832 }
833 }
834 }
835 }
836 return 1;
837}
838public OnPlayerClickPlayer(playerid, clickedplayerid, source)
839{
840 return 1;
841}
842public Kickar(playerid)
843{
844 #undef Kick
845 Kick(playerid);
846 #define Kick(%0) SetTimerEx("Kickar", 150, false, "i", %0)
847 return 1;
848}
849public Banir(playerid)
850{
851 #undef Ban
852 Kick(playerid);
853 #define Ban(%0) SetTimerEx("Banir", 150, false, "i", %0)
854 return 1;
855}
856public mMensagens()
857{
858 new random2 = random(sizeof(RandomColors));
859 new randMSG = random(sizeof(Mensagens));
860 SendClientMessageToAll(RandomColors[random2], Mensagens[randMSG]);
861 return 1;
862}
863public OnPlayerModelSelection(playerid, response, listid, modelid)
864{
865 if(listid == skingrove, skinballas, skinvagos, skinaztecas, skinbikers, skinlost)
866 {
867 if(response)
868 {
869 if(GetPlayerMoney(playerid) < 100) return SendClientMessage(playerid,VERMELHO,"ERRO: {FFFFFF}Você não tem dinheiro suficiente!");
870 SendClientMessage(playerid, VERDE, "INFO: {FFFFFF}Skin alterada, foi cobrado R$100!");
871 GivePlayerMoney(playerid, -100);
872 SetPlayerSkin(playerid, modelid);
873 }
874 else SendClientMessage(playerid, VERMELHO, "INFO: {FFFFFF}Você cancelou a troca de SKIN.");
875 return 1;
876 }
877 return 1;
878}
879stock Nome(playerid)
880{
881 new pNome[MAX_PLAYER_NAME];
882 GetPlayerName(playerid, pNome, 24);
883 return pNome;
884}
885stock LimparChat(playerid, linhas){
886 for(new b = 0; b <= linhas; b++) SendClientMessage(playerid,CINZA, " ");
887}
888CriarConta(playerid, senhaz[])
889{
890 query[0] = EOS;
891 format(query, sizeof(query), "INSERT INTO Contas(Nick, Senha) VALUES ('%s', '%s')", Nome(playerid), senhaz);
892 mysql_query(Conexao, query, true);
893 CarregarConta(playerid);
894 return 1;
895}
896SalvarConta(playerid)
897{
898 if(Player[playerid][Logado] == 0) return 0;
899 format(query, sizeof(query), "SELECT * FROM Contas WHERE Nick='%s'", Nome(playerid));
900 mysql_query(Conexao,query,true);
901 format(query, sizeof(query), "UPDATE Contas SET Nick='%s', Nivel=%d, Dinheiro=%d, Gangue=%d, Skin=%d WHERE ID=%d", Nome(playerid), GetPlayerScore(playerid), GetPlayerMoney(playerid), Player[playerid][Gangue], GetPlayerSkin(playerid), Player[playerid][ID]);
902 mysql_query(Conexao, query, false);
903 return 1;
904}
905CarregarConta(playerid)
906{
907 format(query, sizeof(query), "SELECT * FROM Contas WHERE Nick='%s'", Nome(playerid));
908 mysql_query(Conexao,query,true);
909
910 cache_get_value_name_int(0, "ID", Player[playerid][ID]);
911 cache_get_value_name_int(0, "Dinheiro", Player[playerid][Dinheiro]);
912 cache_get_value_name_int(0, "Nivel", Player[playerid][Nivel]);
913 cache_get_value_name_int(0, "Gangue", Player[playerid][Gangue]);
914 cache_get_value_name_int(0, "Skin", Player[playerid][Skin]);
915
916 SetPlayerScore(playerid, Player[playerid][Nivel]);
917 GivePlayerMoney(playerid, Player[playerid][Dinheiro]);
918 SetPlayerSkin(playerid, Player[playerid][Skin]);
919 Player[playerid][Logado] = 1;
920 return 1;
921}
922stock Equipamentos(playerid)
923{
924 ResetPlayerWeapons(playerid);
925 GivePlayerWeapon(playerid, 24, 500);
926 GivePlayerWeapon(playerid, 28, 500);
927 GivePlayerWeapon(playerid, 30, 500);
928 SetPlayerHealth(playerid, 100);
929 SetPlayerArmour(playerid, 100);
930 return 1;
931}