· 7 years ago · Aug 23, 2018, 11:34 PM
1#include < amxmodx >
2#include < amxmisc >
3#include < fun >
4#include < engine >
5#include < cstrike >
6#include < fakemeta >
7#include < hamsandwich >
8#include < mysqlt >
9#include < LG_Lasers >
10#include < unixtime >
11
12#pragma compress 1
13
14const m_pPlayer = 41;
15const m_fPainShock = 108;
16const m_iHideHUD = 361;
17
18const OFFSET_PDATA = 2;
19const OFFSET_LINUX_WEAPONS = 4;
20const OFFSET_WEAPON_OWNER = 41;
21
22new const g_sPlugin [ ] [ ] = {
23
24 "HNS + NIVELES",
25
26 "v2018.8.20",
27
28 "Chema",
29
30 "!t[ BREAKING GAMING ]!y"
31}
32
33new const g_sGamename [ ] = "HideNSeek + Level";
34
35new g_iMaxPlayers;
36new g_iMsgSayText;
37new g_iMsgScreenFade;
38new g_iMsgSendAudio;
39new g_iMsgStatusText;
40new g_iMsgStatusValue;
41
42new g_iNubSlash;
43new g_iTimer;
44new g_iTimerEntity;
45new g_iSendAudioMessage;
46new g_maxplayers;
47
48new bool:g_NoLinter;
49new bool:g_NoGraff;
50
51new Float:g_flRoundStartTime;
52new Trie:g_tRoundStartSounds;
53
54new bool:g_bStart;
55new bool:g_bNewGrens;
56new bool:g_bAlive [ 33 ];
57new bool:g_bSolid [ 33 ];
58new bool:g_bSawPlayer [ 33 ];
59new CsTeams:g_iTeam [ 33 ];
60new g_iSpawnCount [ 33 ];
61new bool:g_bRestore[ 33 ];
62new Float:g_flLastAimDetail[ 33 ];
63
64/* Linterna & Graffitis */
65const GRAFFITI = 201;
66const LINTERNA = 100;
67
68#define IsPlayer(%1) ( 1 <= %1 <= g_iMaxPlayers )
69
70/* *** BLANK TERRORIST KNIFE MODEL *** */
71
72new const g_sKnifeModel_v[ ] = "models/v_knife.mdl";
73new const g_sKnifeModel_w[ ] = "models/w_knife.mdl";
74new const g_sBlank [ ] = "";
75
76/* *** HUDS *** */
77
78#define ID_HUDPLAYER ( taskid - TASK_PLAYERHUD )
79
80const PEV_SPEC_TARGET = pev_iuser2;
81
82enum ( += 1000 ) {
83
84 TASK_PLAYERHUD = 44667
85}
86
87enum hudStruct {
88
89 PLAYER_HUD,
90 CARNAGE_HUD
91}
92
93new g_huds [ hudStruct ];
94
95/* *** SISTEMA DE NIVELES *** */
96
97#define next(%1) (%1 * 15)
98
99const MAX_LEVEL = 150;
100
101new g_level [ 33 ];
102new g_frags [ 33 ];
103
104new g_reset [ 33 ];
105new g_puntos [ 33 ];
106new g_oros [ 33 ];
107new g_vencimiento[33];
108
109new g_frags_carnage [ 33 ];
110new g_premium [ 33 ];
111
112new Trie:g_tPremium;
113
114new g_lasers [ 33 ];
115
116new g_suministros[ 33 ];
117
118/* *** PRECACHE *** */
119
120enum sprStruct {
121
122 SMOKE,
123 LEVEL,
124 SUMINISTRO
125}
126
127new g_iSprs [ sprStruct ];
128
129new const g_sLevel [ ] = "LG/levelup.wav";
130
131new const g_sSuministroPickup[ ] = "LG/PickupSuministro.wav";
132new const g_sSuministroDrop[ ] = "LG/DropSuministro.wav";
133
134new const g_sSuministro[ ] = "models/LG/suministro.mdl";
135
136new const g_sClassname[ ] = "Suministro";
137
138new const g_sKnifeModel [ ] = "models/LG/v_gold_knife.mdl";
139
140/* *** SISTEMA DE CUENTAS *** */
141
142#define MYSQL
143
144#if defined MYSQL
145
146new const g_sDatos [ ] [ ] = {
147
148 "breakingaming.com", //Web
149 "aizonenf_servers", //User
150 "TAQ7C6Ohu", //Pass
151 "aizonenf_servers", //Db
152 "hns_table" //tabla
153}
154#else
155
156#define SQLITE_DATEBASE "cuentas"
157
158#endif
159
160new Handle:g_hTuple;
161new Handle:g_hConnection;
162
163new g_id [ 33 ];
164new g_status [ 33 ];
165new g_usuario [ 33 ][ 34 ];
166new g_password [ 33 ][ 34 ];
167new g_sName [ 33 ][ 33 ];
168new g_hotmail[33][32];
169
170new const g_sEmails[][] = {
171
172 "@live.com",
173
174 "@gmail.com",
175
176 "@hotmail.com",
177
178 "@live.com.ar",
179
180 "@gmail.com.ar",
181
182 "@hotmail.es",
183
184 "@hotmail.com.ar",
185
186 "@yahoo.com.ar"
187};
188
189enum {
190 OFFLINE,
191 LOGUEADO
192};
193
194enum
195{
196 REGISTRAR_USUARIO,
197 REGISTRAR_PASSWORD,
198 LOGUEAR_USUARIO,
199 LOGUEAR_PASSWORD,
200 CARGAR_DATOS,
201 GUARDAR_DATOS
202};
203
204new const szTablePremiums[] = "hns_premiums";
205
206/* consulta MYSQL:
207CREATE TABLE IF NOT EXISTS hns_table
208(
209 id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
210 Usuario varchar(34) NOT NULL UNIQUE KEY,
211 Password varchar(34) NOT NULL,
212 Pj varchar(32) NOT NULL UNIQUE KEY,
213 level int(10) NOT NULL DEFAULT '1',
214 frags int(10) NOT NULL DEFAULT '0',
215 reset int(10) NOT NULL DEFAULT '0',
216 puntos int(10) NOT NULL DEFAULT '0',
217 oros int(10) NOT NULL DEFAULT '0',
218 frags_carnage int(10) NOT NULL DEFAULT '0',
219 suministros int(10) NOT NULL DEFAULT '0',
220 Hotmail varchar(32) NOT NULL,
221)
222*/
223
224
225
226/* *** TOP15 *** */
227
228new iTopLevelClear = 0;
229
230/* *** CARNAGE *** */
231
232#define RoundCarnage 5
233
234new g_Carnage;
235new g_RondasCarnage;
236new g_EleccionCarnage;
237
238/* *** BLOCKS *** */
239
240new const ComandosABloquear [ ] [ ] = {
241 "kill", "jointeam", "joinclass",
242 "buy", "buyammo1", "buyammo2", "buyequip",
243 "cl_autobuy", "cl_setautobuy", "cl_setrebuy", "cl_rebuy"
244};
245
246
247new g_szPlayerHid[33][32];
248
249new g_iTienda[33][32];
250
251enum _:Tienda{
252 TIENDA_ITEM[33],
253 TIENDA_COSTO
254};
255
256enum _:TiendaCT{
257 DEAGLE_CT,
258 CHALECO_CT,
259 VIDA_CT,
260 NOCLIP_CT,
261 GODMODE_CT
262};
263
264
265enum _:TiendaTT{
266 DEAGLE_TT,
267 CHALECO_TT,
268 VIDA_TT,
269 FROST_TT,
270 CAMUFLAJE_TT,
271 VELOCIDAD_TT
272};
273
274enum _:TiendaGEN{
275 GRAVEDAD_GEN
276}
277
278new const szComprasCT[][Tienda] = {
279 { "Deagle \y(1Bala)", 20 },
280 { "Chaleco", 20 },
281 { "Vida \d(+50)", 20 },
282 { "Noclip \d(5Segundos)", 20 },
283 { "God Mode \d(15Segundos)", 20 }
284};
285
286new const szComprasTT[][Tienda] = {
287 { "Deagle \y(1Bala)", 20 },
288 { "Chaleco", 20 },
289 { "Vida \d(+50)", 20 },
290 { "Frost Grenade", 20 },
291 { "Camuflaje \y(10Segundos)", 20 },
292 { "Velocidad \y(25Segundos)", 20 }
293};
294
295new const szComprasGEN[][Tienda] = {
296 { "Gravedad \y(15Segundos)", 20 }
297};
298
299
300new const szComprasORO[][Tienda] = {
301 { "Admin x1 dia", 16000 }
302}
303
304
305new g_szMap[ 32 ];
306
307enum _:Logros{
308 NOMBRE_LOGROS = 0,
309 MISION_LOGROS
310}
311
312enum _:LogrosGEN{
313 LOGROS_CT = 0,
314 LOGROS_TT,
315 LOGROS_GENERALES
316};
317
318new const szLogrosCT[Logros][] ={
319 //Name
320 {
321 "Test Logro 1"
322 },
323 //Desc
324 {
325 "Test XD"
326 }
327};
328new g_logros[33][LogrosGEN][33];
329
330enum
331{
332 KEY_1 = (1<<0),
333 KEY_2 = (1<<1),
334 KEY_3 = (1<<2),
335 KEY_4 = (1<<3),
336 KEY_5 = (1<<4),
337 KEY_6 = (1<<5),
338 KEY_7 = (1<<6),
339 KEY_8 = (1<<7),
340 KEY_9 = (1<<8),
341 KEY_0 = (1<<9),
342};
343
344enum
345{
346 E_HUD_COLOR = 0,
347
348 MAX_COLORS
349};
350
351new g_menu_data[33][16];
352
353enum _:DATA_COLORES
354{
355 COLOR_NAME[12],
356 COLOR_RGB[3]
357};
358
359new const g_szColores[][DATA_COLORES] =
360{
361 { "Blanco", { 255, 255, 255 } },
362 { "Rojo", { 255, 0, 0 } },
363 { "Verde", { 0, 255, 0 } },
364 { "Azul", { 0, 0, 255 } },
365 { "Amarillo", { 255, 255, 0 } },
366 { "Violeta", { 255, 0, 255 } },
367 { "Celeste", { 0, 255, 255 } }
368};
369
370#define COLOR_SEELCTED g_menu_data[id][13]
371#define TYPE_COLOR_SELECTED g_menu_data[id][14]
372
373new const szTimeHappyHour[] = {
374 //desde las 10 hasta las 12.
375 22,
376 23,
377 00
378};
379
380
381new bool:g_iHappyHour;
382
383new g_iColor[33][MAX_COLORS][3];
384
385new g_iHUDEffect[33];
386new Float:g_iHUDPosition[33][2];
387
388new g_iHud[ 33 ];
389
390public plugin_natives ( ) {
391
392 register_native ( "set_exp_laser", "set_exp_laser", 1 );
393 register_native ( "lasers_ammo", "lasers_ammo", 1 );
394
395}
396
397/* *** NATIVES *** */
398public set_exp_laser ( id ) {
399
400 g_frags [ id ] += 1 * g_premium [ id ];
401 check_level ( id );
402}
403
404public lasers_ammo ( id ) return g_lasers [ id ];
405
406public plugin_init ( ) {
407
408 register_plugin ( g_sPlugin [ 0 ], g_sPlugin [ 1 ], g_sPlugin [ 2 ] );
409
410 g_tPremium = TrieCreate();
411
412
413 register_cvar( "HidenSeek", "1" );
414
415 register_clcmd( "CREAR_USUARIO", "reg_usuario" );
416 register_clcmd( "CREAR_PASSWORD", "reg_password" );
417 register_clcmd( "LOGUEAR_USUARIO", "log_usuario" );
418 register_clcmd( "LOGUEAR_PASSWORD", "log_password" );
419 register_clcmd("INGRESAR_HOTMAIL", "INGRESAR_HOTMAIL");
420
421
422
423 register_clcmd( "chooseteam", "clcmd_changeteam" );
424 register_clcmd( "jointeam", "clcmd_changeteam" );
425
426 //register_clcmd( "menuselect", "menu_select" );
427
428 register_clcmd ( "say /set", "cmdSet" );
429 register_clcmd ( "say /info", "cmdInfo" );
430
431 register_clcmd ( "say rev", "cmdRev" );
432
433 register_clcmd ( "carnage", "m_Carnage" );
434
435 register_clcmd("test", "test");
436 register_clcmd("say /vencimiento", "cmdVencimiento");
437
438 register_clcmd("say /top", "Show_Rank_Level");
439
440 //register_clcmd ( "chooseteam", "CmdJoinTeam" );
441 //register_clcmd ( "jointeam", "CmdJoinTeam" );
442
443 register_clcmd("chooseteam", "MenuPrincipal");
444
445 register_clcmd ( "say", "clcmd_say" );
446 register_clcmd ( "say_team", "clcmd_team_say" );
447
448 g_iMsgScreenFade = get_user_msgid ( "ScreenFade" );
449 g_iMsgSendAudio = get_user_msgid ( "SendAudio" );
450 g_iMsgSayText = get_user_msgid ( "SayText" );
451 g_iMaxPlayers = get_maxplayers ( );
452 g_iMsgStatusText = get_user_msgid( "StatusText" );
453 g_iMsgStatusValue = get_user_msgid( "StatusValue" );
454
455
456 g_iTimerEntity = create_entity ( "info_target" );
457 set_pev ( g_iTimerEntity, pev_classname, "hns_timer" );
458
459 register_logevent ( "EventRoundStart", 2, "0=World triggered", "1=Round_Start" );
460 register_logevent ( "RoundEnd", 2, "1=Round_End" );
461
462 register_event ( "HLTV", "EventNewRound", "a", "1=0", "2=0" );
463 register_event ( "DeathMsg", "EventDeathMsg", "a" );
464 register_event ( "TextMsg", "EventRestart", "a", "2&#Game_C", "2&#Game_w" );
465 register_event ( "SendAudio", "EventWin_TS", "a", "2=%!MRAD_terwin" );
466 register_event ( "SendAudio", "EventWin_CT", "a", "2=%!MRAD_ctwin" );
467 register_event ( "TeamInfo", "EventTeamInfo", "a" );
468 register_event ( "CurWeapon", "eventCurWeapon", "b", "1=1" );
469
470 register_message( get_user_msgid( "ShowMenu" ), "message_ShowMenu" );
471 register_message( get_user_msgid( "VGUIMenu" ), "message_VGUIMenu" );
472
473 register_message ( get_user_msgid ( "StatusIcon" ), "MsgStatusIcon" );
474 register_message ( get_user_msgid ( "TextMsg" ), "MsgTextMsg" );
475 register_message ( g_iMsgScreenFade, "MsgScreenFade" );
476
477 register_forward ( FM_AddToFullPack, "FwdAddToFullPack", 1 );
478 register_forward ( FM_PlayerPreThink, "FwdPlayerPreThink" );
479 register_forward ( FM_PlayerPostThink, "FwdPlayerPostThink" );
480 register_forward ( FM_GetGameDescription, "FwdGameDesc" );
481 register_forward ( FM_EmitSound, "FwdEmitSound" );
482 register_forward ( FM_ClientKill, "FwdClientKill" );
483
484
485 register_forward ( FM_ClientUserInfoChanged, "FW_ClientUserInfoChanged" );
486
487 register_srvcmd("sxe_event", "sxe_events");
488
489 register_think ( "hns_timer", "FwdThinkTimer" );
490
491 register_touch ( g_sClassname, "player", "TouchEntidad" );
492
493 RegisterHam ( Ham_Weapon_PrimaryAttack, "weapon_knife", "FwdHamKnifePrimaryAttack" );
494 RegisterHam ( Ham_Weapon_SecondaryAttack, "weapon_knife", "FwdHamKnifeSecondaryAttack" );
495
496 RegisterHam ( Ham_Spawn, "grenade", "FwdHamSpawn_Grenade", 1 );
497 RegisterHam ( Ham_Spawn, "weaponbox", "FwdHamSpawn_Weaponbox", 1 );
498 RegisterHam ( Ham_Spawn, "player", "FwdHamSpawn_Player", 1 );
499 RegisterHam ( Ham_Killed, "player", "FwdHamKilled_Player", 1 );
500 RegisterHam ( Ham_TakeDamage, "player", "FwdHamTakeDamage", 1 );
501
502 RegisterHam ( Ham_Item_Deploy, "weapon_knife", "fw_Item_Deploy_Post", 1 );
503
504 set_msg_block ( get_user_msgid ( "WeapPickup" ), BLOCK_SET );
505 set_msg_block ( get_user_msgid ( "AmmoPickup" ), BLOCK_SET );
506 set_msg_block ( get_user_msgid ( "HostagePos" ), BLOCK_SET );
507
508 /* Bloqueos */
509 register_impulse ( GRAFFITI, "BloquearGraffiti" );
510 register_impulse ( LINTERNA, "BloquearLinterna" );
511
512 new const g_sStartRadios [ ] [ ] = { "%!MRAD_GO", "%!MRAD_LOCKNLOAD", "%!MRAD_LETSGO", "%!MRAD_MOVEOUT" };
513
514 g_tRoundStartSounds = TrieCreate ( );
515
516 for ( new i; i < sizeof g_sStartRadios; i++ )
517 TrieSetCell ( g_tRoundStartSounds, g_sStartRadios [ i ], 1 );
518
519 // Remove unneeded entities
520 new const g_sRemoveEntities[ ][ ] = {
521
522 "func_hostage_rescue", "info_hostage_rescue", "game_player_equip",
523 "func_bomb_target", "info_bomb_target", "hostage_entity",
524 "info_vip_start", "func_vip_safetyzone", "func_escapezone",
525 "info_map_parameters", "player_weaponstrip", "func_buyzone", "armoury_entity"
526 };
527
528 for ( new block = 1; block < sizeof ( ComandosABloquear ); block++ )
529 register_clcmd ( ComandosABloquear [ block ], "RegisterCommandBlock" );
530
531
532 for( new i; i < sizeof g_sRemoveEntities; i++ )
533 remove_entity_name( g_sRemoveEntities[ i ] );
534
535 // Create fake hostage
536 new iHostage = create_entity ( "hostage_entity" );
537 engfunc ( EngFunc_SetOrigin, iHostage, { 0.0, 0.0, -55000.0 } );
538 engfunc ( EngFunc_SetSize, iHostage, { -1.0, -1.0, -1.0 }, { 1.0, 1.0, 1.0 } );
539 dllfunc ( DLLFunc_Spawn, iHostage );
540
541 new Entity = -1;
542
543 while ( ( Entity = find_ent_by_class ( Entity, "func_breakable" ) ) ) {
544
545 remove_entity ( Entity );
546 }
547
548 set_cvar_num ( "hns_carnage", 0 );
549
550 g_Carnage = 0;
551
552 g_huds [ PLAYER_HUD ] = CreateHudSyncObj ( );
553
554 g_maxplayers = get_maxplayers ( );
555
556 get_mapname( g_szMap, charsmax( g_szMap ) );
557
558
559 MySQLx_Init( );
560 LoadPremiums(0);
561
562 server_cmd( "sv_restart 1" );
563}
564
565public plugin_cfg(){
566 set_cvar_num("sv_airaccelerate", 100);
567 set_cvar_num("mp_freezetime", 0);
568}
569
570public cmdVencimiento(id){
571 if(is_user_premium(id)){
572 if(g_vencimiento[0])
573 GreenPrint(id, "%s Tu premium vence el %s", g_sPlugin[3], g_vencimiento[id]);
574 else
575 GreenPrint(id, "%s TU PREMIUM NO VENCE NUNCA", g_sPlugin[3]);
576 }
577 else{
578 GreenPrint(id, "%s No sos PREMIUM", g_sPlugin[3]);
579 }
580 return PLUGIN_HANDLED;
581
582}
583
584public test(id){
585 fw_recv_hid(id, g_szPlayerHid[id]);
586
587 if(strlen(g_szPlayerHid[id]) > 15){
588 console_print(id, "HWID XD: %s", g_szPlayerHid[id]);
589 }
590
591 console_print(id, "HappyHour: %s", g_iHappyHour ? "ON" : "OFF");
592
593 //read_argv(1, g_premium[id], sizeof(g_premium[]));
594 //read_argv(2, g_vencimiento[id], sizeof(g_vencimiento[]));
595
596 //AddPremium(id, "heNK'", g_premium[id], g_vencimiento[id]);
597 read_argv(1, g_sName[id], sizeof(g_sName[]));
598 read_argv(2, g_premium[id], sizeof(g_premium[]));
599 read_argv(3, g_vencimiento[id], sizeof(g_vencimiento[]));
600
601 AddPremium(id, g_sName[id], g_premium[id], g_vencimiento[id]);
602
603 //AddPremium(id, "heNK'", "2", "31/12/2018");
604}
605
606public LoadPremiums(id){
607
608 new iData[1];
609 iData[0] = id;
610
611 //new szVencimiento[33];
612 //get_time("%d/%m/%Y", szVencimiento, sizeof(szVencimiento));
613
614 new szQuery[256];
615
616
617 formatex(szQuery, sizeof(szQuery), "SELECT vencimiento FROM %s WHERE nombre=^"%s^"", szTablePremiums, g_sName[id]);
618 mysql_query(g_hConnection, "HandlerPremiums", szQuery, iData, sizeof(iData));
619
620
621 //formatex(szQuery, sizeof(szQuery), "SELECT vencimiento FROM %s WHERE nombre=^"%s^"", szTablePremiums, g_sName[id]);
622
623
624 /*
625 if(equal(szVencimiento, g_vencimiento[id])){
626
627 if(equal(szName, g_sName[id])){
628 formatex(szQuery, sizeof(szQuery), "DELETE FROM %s WHERE nombre=^"%s^"", szTablePremiums, g_sName[id]);
629 //formatex(szQuery, sizeof(szQuery), "SELECT * FROM %s WHERE Nombre=^"%s^" AND vencimiento='%d'", szTablePremiums);
630 mysql_query(g_hConnection, "HandlerPremiums", szQuery, iData, sizeof(iData));
631 server_print("[AMXX] EL PREMIUM %s fue desactivado por vencido!", g_sName[id]);
632 }
633 }
634 */
635
636 //MySQLT("INSERT INTO premiums (nombre, multiplicador, vencimiento) VALUES ('%s', '%s', '%s'", g_sName[id], g_sMultiplicador[id], g_sVencimiento[id]);
637}
638
639
640public HandlerPremiums(failstate, error[ ], errnum, data[ ], datasize, Float:time){
641 static id;
642 id = data[0];
643 if(failstate >= TQUERY_SUCCESS){
644 new szQuery[256];
645
646
647 if(mysql_num_results()){
648 while(mysql_more_results()){
649 mysql_read_result(0, g_sName[id], sizeof(g_sName[]));
650 mysql_read_result(1, g_premium[id], sizeof(g_premium[]));
651 mysql_read_result(2, g_vencimiento[id], sizeof(g_vencimiento[]));
652
653 new szAnio[12], szMes[12], szDia[12];
654
655
656 new iAnio = str_to_num(szAnio);
657 new iMes = str_to_num(szMes);
658 new iDia = str_to_num(szDia);
659 new timer_unix = ( get_systime() >= TimeToUnix(iAnio, iMes, iDia, 0, 0, 0, UT_TIMEZONE_SERVER));
660
661 if(timer_unix){
662 formatex(szQuery, sizeof(szQuery), "DELETE FROM %s nombre=^"%s^"", szTablePremiums, g_sName[id]);
663
664 }
665
666
667 TrieSetCell(g_tPremium, g_sName[id], g_premium[id]);
668
669 mysql_next_row();
670 }
671 }
672 else{
673 //formatex(szQuery, sizeof(szQuery), "INSERT INTO %s (nombre, multiplicador) VALUES (^"%s^", '%d')", szTablePremiums, g_sName[id], g_premium[id]);
674 formatex(szQuery, sizeof(szQuery), "INSERT INTO %s (nombre, multiplicador, vencimiento) VALUES (^"%s^", '%s', '%s')", szTablePremiums, g_sName[id], g_premium[id], g_vencimiento[id]);
675
676 mysql_query(g_hConnection, "HandlerPremiums", szQuery);
677 }
678
679 }
680}
681
682stock AddPremium(id, nombre[], multiplicador[], vencimiento[]){
683
684 new szAnio[12], szMes[12], szDia[12];
685
686
687 new iAnio = str_to_num(szAnio);
688 new iMes = str_to_num(szMes);
689 new iDia = str_to_num(szDia);
690
691
692 new iData[1];
693 iData[0] = id;
694
695
696 //IF.
697 new timer_unix = ( get_systime() >= TimeToUnix(iAnio, iMes, iDia, 0, 0, 0, UT_TIMEZONE_SERVER));
698
699
700 console_print(id, "Nombre: %s | %s", nombre, g_sName[id]);
701 console_print(id, "Multiplicador: x%s | x%d | x%s", multiplicador, g_premium[id], g_premium[id]);
702 console_print(id, "Vencimiento: %s | %s | %s", vencimiento, timer_unix, g_vencimiento[id]);
703
704 replace_all(vencimiento, sizeof(vencimiento[]), "/", " ");
705
706 new szQuery[256];
707 formatex(szQuery, sizeof(szQuery), "SELECT * FROM %s WHERE vencimiento >= '%s'", szTablePremiums, vencimiento);
708 mysql_query(g_hConnection, "HandlerPremiums", szQuery, iData, sizeof(iData));
709
710 //g_premium[id] |= multiplicador[id];
711
712}
713
714public is_user_premium(id){
715 return g_premium[id];
716}
717
718
719public RegisterCommandBlock ( iIndex ) {
720
721 console_print ( iIndex, "No puedes hacer esto..." );
722
723 return PLUGIN_HANDLED;
724
725}
726
727public MenuPrincipal(id){
728
729 if(g_status[id] == LOGUEADO){
730
731 new szTitle[256];
732 format(szTitle, sizeof(szTitle), "\r[BREAKING GAMING] \wMenu Principal^n\yNivel: \d#%d \y(%d)^n", g_level[id], g_frags[id]);
733
734 new menu = menu_create(szTitle, "HandlerMenuPrincipal");
735
736 menu_additem(menu, "Tienda", "1");
737 menu_additem(menu, "Habilidades", "2");
738 menu_additem(menu, "Misiones", "3");
739 menu_additem(menu, "Extras", "4");
740 menu_addblank(menu, 0);
741 menu_additem(menu, "Logros", "5");
742 menu_additem(menu, "Premiums Online", "6");
743 menu_additem(menu, "Top 10", "7");
744
745
746
747 menu_setprop(menu, MPROP_NUMBER_COLOR, "\y");
748 menu_setprop(menu, MPROP_EXITNAME, "Salir");
749
750 menu_display(id, menu, 0);
751 }
752
753 return PLUGIN_HANDLED;
754
755}
756
757public HandlerMenuPrincipal(id, menu, item){
758 if(item == MENU_EXIT){
759 menu_destroy(menu);
760 return PLUGIN_HANDLED;
761 }
762
763 switch(item){
764 //Tienda
765 case 0:{
766 TiendaPrincipal(id);
767
768 }
769 //Habilidades
770 case 1:{
771 HabilidadesPrincipal(id);
772 }
773 //Misiones
774 case 2:{
775 MisionesPrincipal(id);
776
777 }
778 //Extras
779 case 3:{
780 ExtrasPrincipal(id);
781
782 }
783 //Logros
784 case 4:{
785 LogrosPrincipal(id);
786 }
787 //Premiums
788 case 5:{
789
790 }
791 //Top 10
792 case 6:{
793 Show_Rank_Level(id);
794 }
795 }
796
797 return PLUGIN_HANDLED;
798}
799
800public TiendaPrincipal(id){
801
802 new menu = menu_create("\r[BREAKING GAMING] \wTienda Principal", "HandlerMenuTiendaPrincipal");
803
804
805
806 menu_additem(menu, "Compras \r[MONEY]", "1");
807 menu_additem(menu, "Compras \y[ORO]", "2");
808
809 menu_setprop(menu, MPROP_NUMBER_COLOR, "\y");
810 menu_setprop(menu, MPROP_EXITNAME, "Salir");
811
812 menu_display(id, menu, 0);
813
814}
815
816public HandlerMenuTiendaPrincipal(id, menu, item){
817 if(item == MENU_EXIT){
818 menu_destroy(menu);
819 return PLUGIN_HANDLED;
820 }
821
822 switch(item){
823 case 0:{
824 TiendaPrincipalMoney(id);
825 }
826 case 1:{
827 TiendaPrincipalOro(id);
828 }
829 }
830
831 return PLUGIN_HANDLED;
832}
833
834public TiendaPrincipalMoney(id){
835 new menu = menu_create("\r[BREAKING GAMING] \wTienda Principal \d[MONEY]", "HandlerMenuTiendaPrincipalMoney");
836
837
838
839 menu_additem(menu, "Compras \r[TT]", "1");
840 menu_additem(menu, "Compras \y[CT]", "2");
841 menu_additem(menu, "Compras \d[GENERALES]", "3");
842
843
844 menu_setprop(menu, MPROP_NUMBER_COLOR, "\y");
845 menu_setprop(menu, MPROP_EXITNAME, "Salir");
846
847 menu_display(id, menu, 0);
848}
849
850public HandlerMenuTiendaPrincipalMoney(id, menu, item){
851 if(item == MENU_EXIT){
852 menu_destroy(menu);
853 return PLUGIN_HANDLED;
854 }
855
856 switch(item){
857 //Tienda TT
858 case 0:{
859 TiendaTTMenu(id);
860 }
861 //Tienda CT
862 case 1:{
863 TiendaCTMenu(id);
864 }
865 //Tienda GEN
866 case 2:{
867 TiendaGENMenu(id);
868 }
869
870 }
871
872 return PLUGIN_HANDLED;
873
874}
875
876public TiendaPrincipalOro(id){
877
878 new menu = menu_create("\r[BREAKING GAMING] \wTienda de Compras \d[ORO]", "HandlerTiendaPrincipalOro");
879
880
881 if(g_status[id] == LOGUEADO){
882 new szTitle[256], szNum[3];
883
884 for(new i = 0; i < sizeof(szComprasORO); i++){
885 if(g_iTienda[id][i])
886 formatex(szTitle, sizeof(szTitle), "\d%s \wOros: \d%d", szComprasORO[i][TIENDA_ITEM], szComprasORO[i][TIENDA_COSTO]);
887 else{
888 if(g_oros[id] >= szComprasORO[i][TIENDA_COSTO])
889 format(szTitle, sizeof(szTitle), "\y%s \wOros: \d%d", szComprasORO[i][TIENDA_ITEM], szComprasORO[i][TIENDA_COSTO]);
890 else
891 format(szTitle, sizeof(szTitle), "\d%s \wOros: \d%d", szComprasORO[i][TIENDA_ITEM], szComprasORO[i][TIENDA_COSTO]);
892 }
893 num_to_str(i, szNum, 2);
894 menu_additem(menu, szTitle, szNum);
895 }
896
897 menu_setprop(menu, MPROP_EXITNAME, "Salir");
898 menu_setprop(menu, MPROP_NEXTNAME, "Siguiente");
899 menu_setprop(menu, MPROP_BACKNAME, "Atras");
900 menu_setprop(menu, MPROP_NUMBER_COLOR, "\y");
901 menu_display(id, menu);
902 }
903}
904
905public HandlerTiendaPrincipalOro(id, menu, item){
906 if(item == MENU_EXIT){
907 menu_destroy(menu);
908 return PLUGIN_HANDLED;
909 }
910
911 switch(item){
912
913 }
914
915 return PLUGIN_HANDLED;
916}
917
918public TiendaTTMenu(id){
919 if(g_status[id] == LOGUEADO && is_user_connected(id) && !g_Carnage){
920 if(cs_get_user_team(id) == CS_TEAM_T){
921 new iMoney = cs_get_user_money(id);
922 new menu = menu_create("\r[BREAKING GAMING] \wTienda \r[TT]", "HandlerMenuTiendaTT");
923
924 new szTitle[256], szNum[3];
925
926 for(new i = 0; i < sizeof(szComprasTT); i++){
927 if(g_iTienda[id][i])
928 formatex(szTitle, sizeof(szTitle), "\d%s \wMoney: \d%d", szComprasTT[i][TIENDA_ITEM], szComprasTT[i][TIENDA_COSTO]);
929 else{
930 if(iMoney >= szComprasTT[i][TIENDA_COSTO])
931 format(szTitle, sizeof(szTitle), "\y%s \wMoney: \d%d", szComprasTT[i][TIENDA_ITEM], szComprasTT[i][TIENDA_COSTO]);
932 else
933 format(szTitle, sizeof(szTitle), "\d%s \wMoney: \d%d", szComprasTT[i][TIENDA_ITEM], szComprasTT[i][TIENDA_COSTO]);
934 }
935 num_to_str(i, szNum, 2);
936 menu_additem(menu, szTitle, szNum);
937 }
938
939 menu_setprop(menu, MPROP_EXITNAME, "Salir");
940 menu_setprop(menu, MPROP_NEXTNAME, "Siguiente");
941 menu_setprop(menu, MPROP_BACKNAME, "Atras");
942 menu_setprop(menu, MPROP_NUMBER_COLOR, "\y");
943 menu_display(id, menu);
944 }
945 else{
946 GreenPrint(id, "%s No sos !tTT", g_sPlugin[3]);
947 }
948 }
949
950 return PLUGIN_CONTINUE;
951
952}
953
954public HandlerMenuTiendaTT(id, menu, item){
955 if(item == MENU_EXIT){
956 menu_destroy(menu);
957 return;
958 }
959 static iHealth, iArmor;
960 iHealth = get_user_health(id);
961 iArmor = get_user_armor(id);
962
963 new iMoney = cs_get_user_money(id);
964
965 if(iMoney >= szComprasTT[item][TIENDA_COSTO])
966 iMoney -= szComprasTT[item][TIENDA_COSTO];
967 else{
968 GreenPrint(id, "%s Te falta !g%d !yde money para comprar !g%s", g_sPlugin[3], szComprasTT[item][TIENDA_COSTO] - iMoney, szComprasTT[item][TIENDA_ITEM]);
969
970 TiendaTTMenu(id);
971 return;
972 }
973
974 switch(item){
975 case DEAGLE_TT:{
976 if(g_iTienda[id][0]){
977 GreenPrint(id, "%s Ya compraste este Item", g_sDatos[3]);
978 iMoney += szComprasTT[item][TIENDA_COSTO];
979 return;
980 }
981
982 g_iTienda[id][0] = true;
983 give_item(id, "weapon_deagle");
984 GreenPrint(id, "%s Compraste una Deagle!", g_sDatos[3]);
985 }
986 case CHALECO_TT:{
987 if(g_iTienda[id][1]){
988 GreenPrint(id, "%s Ya compraste este Item", g_sDatos[3]);
989 iMoney += szComprasTT[item][TIENDA_COSTO];
990 return;
991 }
992
993 g_iTienda[id][1] = true;
994 set_user_armor(id, iArmor + 100);
995 GreenPrint(id, "%s Compraste +100 de chaleco", g_sDatos[3]);
996 }
997 case VIDA_TT:{
998 if(g_iTienda[id][2]){
999 GreenPrint(id, "%s Ya compraste este Item", g_sDatos[3]);
1000 iMoney += szComprasTT[item][TIENDA_COSTO];
1001 return;
1002 }
1003
1004 g_iTienda[id][2] = true;
1005 set_user_health(id, iHealth + 50);
1006 GreenPrint(id, "%s Compraste +50 de vida", g_sDatos[3]);
1007 }
1008 case FROST_TT:{
1009 if(g_iTienda[id][3]){
1010 GreenPrint(id, "%s Ya compraste este Item", g_sDatos[3]);
1011 iMoney += szComprasTT[item][TIENDA_COSTO];
1012 return;
1013 }
1014
1015 g_iTienda[id][3] = true;
1016 give_item(id, "weapon_smokegrenade");
1017 GreenPrint(id, "%s Compraste una FROST Grenade", g_sDatos[3]);
1018 }
1019 case CAMUFLAJE_TT:{
1020 if(g_iTienda[id][4]){
1021 GreenPrint(id, "%s Ya compraste este Item", g_sDatos[3]);
1022 iMoney += szComprasTT[item][TIENDA_COSTO];
1023 return;
1024 }
1025
1026 g_iTienda[id][4] = true;
1027 cs_set_user_model(id, "gsg9");
1028 set_task(10.0, "RemoverCamuflaje", id);
1029 GreenPrint(id, "%s Compraste Camuflaje por 10 segundos", g_sDatos[3]);
1030
1031 }
1032 case VELOCIDAD_TT:{
1033 if(g_iTienda[id][5]){
1034 GreenPrint(id, "%s Ya compraste este Item", g_sDatos[3]);
1035 iMoney += szComprasTT[item][TIENDA_COSTO];
1036 return;
1037 }
1038
1039 g_iTienda[id][5] = true;
1040 set_user_maxspeed(id, 350.0);
1041 set_task(25.0, "RemoverVelocidad", id);
1042 GreenPrint(id, "%s Compraste velocidad por 25 segundos", g_sDatos[3]);
1043
1044 }
1045
1046 }
1047 return;
1048
1049}
1050
1051public TiendaCTMenu(id){
1052 if(g_status[id] == LOGUEADO && is_user_connected(id)){
1053 if(cs_get_user_team(id) == CS_TEAM_CT){
1054 new menu = menu_create("\r[BREAKING GAMING] \wTienda \y[CT]", "HandlerMenuTiendaCT");
1055 new iMoney = cs_get_user_money(id);
1056 new szTitle[256], szNum[3];
1057
1058 for(new i = 0; i < sizeof(szComprasCT); i++){
1059 if(g_iTienda[id][i])
1060 formatex(szTitle, sizeof(szTitle), "\d%s \wMoney: \d%d", szComprasCT[i][TIENDA_ITEM], szComprasCT[i][TIENDA_COSTO]);
1061 else{
1062 if(iMoney >= szComprasCT[i][TIENDA_COSTO])
1063 format(szTitle, sizeof(szTitle), "\y%s \wMoney: \d%d", szComprasCT[i][TIENDA_ITEM], szComprasCT[i][TIENDA_COSTO]);
1064 else
1065 format(szTitle, sizeof(szTitle), "\d%s \wMoney: \d%d", szComprasCT[i][TIENDA_ITEM], szComprasCT[i][TIENDA_COSTO]);
1066 }
1067 num_to_str(i, szNum, 2);
1068 menu_additem(menu, szTitle, szNum);
1069 }
1070
1071 menu_setprop(menu, MPROP_EXITNAME, "Salir");
1072 menu_setprop(menu, MPROP_NEXTNAME, "Siguiente");
1073 menu_setprop(menu, MPROP_BACKNAME, "Atras");
1074 menu_setprop(menu, MPROP_NUMBER_COLOR, "\y");
1075 menu_display(id, menu);
1076 }
1077 else{
1078 GreenPrint(id, "%s No sos !tCT", g_sPlugin[3]);
1079 }
1080 }
1081
1082 return PLUGIN_CONTINUE;
1083}
1084
1085public HandlerMenuTiendaCT(id, menu, item){
1086 if(item == MENU_EXIT){
1087 menu_destroy(menu);
1088 return;
1089 }
1090
1091 static iHealth, iArmor;
1092 iHealth = get_user_health(id);
1093 iArmor = get_user_armor(id);
1094
1095 new iMoney = cs_get_user_money(id);
1096
1097 if(iMoney >= szComprasCT[item][TIENDA_COSTO])
1098 iMoney -= szComprasCT[item][TIENDA_COSTO];
1099 else{
1100 GreenPrint(id, "%s Te falta !g%d !yde money para comprar !g%s", g_sPlugin[3], szComprasCT[item][TIENDA_COSTO] - iMoney, szComprasCT[item][TIENDA_ITEM]);
1101
1102 TiendaCTMenu(id);
1103 return;
1104 }
1105
1106 switch(item){
1107 case DEAGLE_CT:{
1108 if(g_iTienda[id][0]){
1109 GreenPrint(id, "%s Ya compraste este Item", g_sPlugin[3]);
1110 iMoney += szComprasCT[item][TIENDA_COSTO];
1111 return;
1112 }
1113
1114 g_iTienda[id][0] = true;
1115 give_item(id, "weapon_deagle");
1116 GreenPrint(id, "%s Compraste una Deagle!", g_sPlugin[3]);
1117 }
1118 case CHALECO_CT:{
1119
1120 if(g_iTienda[id][1]){
1121
1122 GreenPrint(id, "%s Ya compraste este Item", g_sPlugin[3]);
1123 iMoney += szComprasCT[item][TIENDA_COSTO];
1124 return;
1125 }
1126
1127 g_iTienda[id][1] = true;
1128 set_user_armor(id, iArmor + 100);
1129 GreenPrint(id, "%s Compraste chaleco +100", g_sPlugin[3]);
1130 }
1131 case VIDA_CT:{
1132 if(g_iTienda[id][2]){
1133 GreenPrint(id, "%s Ya compraste este Item", g_sPlugin[3]);
1134 iMoney += szComprasCT[item][TIENDA_COSTO];
1135 return;
1136 }
1137
1138 g_iTienda[id][2] = true;
1139 set_user_health(id, iHealth + 50);
1140 GreenPrint(id, "%s Compraste vida +50", g_sPlugin[3]);
1141 }
1142 case NOCLIP_CT:{
1143 if(g_iTienda[id][3]){
1144 GreenPrint(id, "%s Ya compraste este Item", g_sPlugin[3]);
1145 iMoney += szComprasCT[item][TIENDA_COSTO];
1146 return;
1147 }
1148
1149 g_iTienda[id][3] = true;
1150 set_user_noclip(id, 1);
1151 set_task(5.0, "RemoverNoclip", id);
1152 GreenPrint(id, "%s Compraste noclip por 5 segundos", g_sPlugin[3]);
1153 }
1154 case GODMODE_CT:{
1155 if(g_iTienda[id][4]){
1156 GreenPrint(id, "%s Ya compraste este Item", g_sPlugin[3]);
1157 iMoney += szComprasCT[item][TIENDA_COSTO];
1158 return;
1159 }
1160
1161 g_iTienda[id][4] = true;
1162 set_user_godmode(id, 1);
1163 set_task(5.0, "RemoverGodmode", id);
1164 GreenPrint(id, "%s Compraste Godmode por 5 segundos", g_sPlugin[3]);
1165 }
1166 }
1167 return;
1168
1169}
1170
1171
1172public TiendaGENMenu(id){
1173 if(g_status[id] == LOGUEADO && is_user_connected(id) && !g_Carnage){
1174
1175 new menu = menu_create("\r[BREAKING GAMING] \wTienda \d[GENERAL]", "HandlerMenuTiendaGEN");
1176
1177 new szTitle[256], szNum[3];
1178
1179 for(new i = 0; i < sizeof(szComprasGEN); i++){
1180 new iMoney = cs_get_user_money(id);
1181 if(g_iTienda[id][i])
1182 formatex(szTitle, sizeof(szTitle), "\d%s \wMoney: \d%d", szComprasGEN[i][TIENDA_ITEM], szComprasGEN[i][TIENDA_COSTO]);
1183 else{
1184 if(iMoney >= szComprasGEN[i][TIENDA_COSTO])
1185 format(szTitle, sizeof(szTitle), "\y%s \wMoney: \d%d", szComprasGEN[i][TIENDA_ITEM], szComprasGEN[i][TIENDA_COSTO]);
1186 else
1187 format(szTitle, sizeof(szTitle), "\d%s \wMoney: \d%d", szComprasGEN[i][TIENDA_ITEM], szComprasGEN[i][TIENDA_COSTO]);
1188 }
1189 num_to_str(i, szNum, 2);
1190 menu_additem(menu, szTitle, szNum);
1191 }
1192
1193 menu_setprop(menu, MPROP_EXITNAME, "Salir");
1194 menu_setprop(menu, MPROP_NEXTNAME, "Siguiente");
1195 menu_setprop(menu, MPROP_BACKNAME, "Atras");
1196 menu_setprop(menu, MPROP_NUMBER_COLOR, "\y");
1197 menu_display(id, menu);
1198 }
1199 return PLUGIN_CONTINUE;
1200}
1201
1202public HandlerMenuTiendaGEN(id, menu, item){
1203 if(item == MENU_EXIT){
1204 menu_destroy(menu);
1205 return;
1206 }
1207
1208 new iMoney = cs_get_user_money(id);
1209
1210 switch(item){
1211 case GRAVEDAD_GEN:{
1212 if(g_iTienda[id][0]){
1213 GreenPrint(id, "%s Ya compraste este Item", g_sDatos[3]);
1214 iMoney += szComprasCT[item][TIENDA_COSTO];
1215 return;
1216 }
1217
1218 g_iTienda[id][0] = true;
1219 //set_user_gravity(id, -1.0);
1220
1221 }
1222 }
1223
1224 return;
1225}
1226
1227
1228public HabilidadesPrincipal(id){
1229 new menu = menu_create("\r[BREAKING GAMING] \wHabilidades Principal", "HandlerMenuHabilidadesPrincipal");
1230
1231 menu_additem(menu, "Habilidades \r[TT]", "1");
1232 menu_additem(menu, "Habilidades \y[CT]", "2");
1233 menu_additem(menu, "Habilidades \d[GENERALES]", "3");
1234
1235 menu_setprop(menu, MPROP_NUMBER_COLOR, "\y");
1236 menu_setprop(menu, MPROP_EXITNAME, "Salir");
1237
1238 menu_display(id, menu, 0);
1239}
1240
1241public HandlerMenuHabilidadesPrincipal(id, menu, item){
1242 if(item == MENU_EXIT){
1243 menu_destroy(menu);
1244 return PLUGIN_HANDLED;
1245 }
1246
1247 switch(item){
1248 //Habilidades TT
1249 case 0:{
1250
1251 }
1252 //Habilidades CT
1253 case 1:{
1254
1255 }
1256 //Habilidades GEN
1257 case 2:{
1258
1259 }
1260 }
1261
1262 return PLUGIN_HANDLED;
1263}
1264
1265public MisionesPrincipal(id){
1266 new menu = menu_create("\r[BREAKING GAMING] \wMisiones Principal", "HandlerMenuMisionesPrincipal");
1267
1268 menu_additem(menu, "Misiones \r[TT]", "1");
1269 menu_additem(menu, "Misiones \y[CT]", "2");
1270 menu_additem(menu, "Misiones \d[GENERALES]", "3");
1271
1272 menu_setprop(menu, MPROP_NUMBER_COLOR, "\y");
1273 menu_setprop(menu, MPROP_EXITNAME, "Salir");
1274
1275 menu_display(id, menu, 0);
1276
1277}
1278
1279public HandlerMenuMisionesPrincipal(id, menu, item){
1280 if(item == MENU_EXIT){
1281 menu_destroy(menu);
1282 return PLUGIN_HANDLED;
1283 }
1284
1285 switch(item){
1286 //Misiones TT
1287 case 0:{
1288
1289 }
1290 //Misiones CT
1291 case 1:{
1292
1293 }
1294 //Misiones GEN
1295 case 2:{
1296
1297 }
1298 }
1299
1300 return PLUGIN_HANDLED;
1301}
1302
1303public ExtrasPrincipal(id){
1304 new menu = menu_create("\r[BREAKING GAMING] \wExtras Menu", "HandlerMenuExtras");
1305
1306 menu_additem(menu, "Perfil", "1");
1307
1308 menu_additem(menu, "Interfaz", "1");
1309
1310 menu_additem(menu, "Lista de niveles", "4");
1311
1312 menu_setprop(menu, MPROP_NUMBER_COLOR, "\y");
1313 menu_setprop(menu, MPROP_EXITNAME, "Salir");
1314 menu_display(id, menu, 0);
1315}
1316
1317public HandlerMenuExtras(id, menu, item){
1318 if(item == MENU_EXIT){
1319 menu_destroy(menu);
1320 return PLUGIN_HANDLED;
1321 }
1322
1323 switch(item){
1324 case 0:{
1325 MiCuenta(id);
1326 }
1327 case 1: show_menu_interfaz( id );
1328 case 2:{
1329 NivelesTotalesMenu(id);
1330 }
1331 }
1332
1333 return PLUGIN_HANDLED;
1334
1335}
1336
1337public show_menu_interfaz( id ) {
1338
1339 new sText [ 128 ];
1340
1341 formatex ( sText, charsmax ( sText ), "\r[BG]\y INTERFAZ" );
1342
1343 new menu = menu_create( sText, "hand_menu_interfaz" );
1344
1345 new sText2 [ 128 ];
1346 formatex ( sText2, charsmax ( sText2 ), "\w Elegir posición del HUD GENERAL" );
1347 menu_additem( menu, sText2, "1" );
1348
1349 formatex ( sText2, charsmax ( sText2 ), "\w Elegir color:\y< \d%s \y>^n", g_szColores[COLOR_SEELCTED][COLOR_NAME] );
1350 menu_additem( menu, sText2, "2" );
1351
1352 formatex ( sText2, charsmax ( sText2 ), "\w Parpadeo de HUD GENERAL \y< \d%s \y>^n", g_iHUDEffect[id] ? "Activado" : "Desactivado");
1353 menu_additem( menu, sText2, "3" );
1354
1355 formatex ( sText2, charsmax ( sText2 ), "\w HUD \y< \d%s \y>^n", g_iHud[ id ] ? "Activado" : "Desactivado");
1356 menu_additem( menu, sText2, "4" );
1357
1358 menu_setprop(menu, MPROP_NUMBER_COLOR, "\y");
1359 menu_setprop(menu, MPROP_EXITNAME, "Salir");
1360
1361 menu_display ( id, menu );
1362}
1363
1364public hand_menu_interfaz( id, menu, item ) {
1365
1366 switch( item ) {
1367
1368 case 0: show_menu_posicion( id );
1369 case 1: {
1370
1371 COLOR_SEELCTED++;
1372
1373 if( COLOR_SEELCTED >= sizeof( g_szColores ) )
1374 COLOR_SEELCTED = 0;
1375
1376 g_iColor[ id ][ TYPE_COLOR_SELECTED ][ 0 ] = g_szColores[ COLOR_SEELCTED ][ COLOR_RGB ][ 0 ];
1377 g_iColor[ id ][ TYPE_COLOR_SELECTED ][ 1 ] = g_szColores[ COLOR_SEELCTED ][ COLOR_RGB ][ 1 ];
1378 g_iColor[ id ][ TYPE_COLOR_SELECTED ][ 2 ] = g_szColores[ COLOR_SEELCTED ][ COLOR_RGB ][ 2 ];
1379 show_menu_interfaz( id );
1380 }
1381 case 2: {
1382
1383 g_iHUDEffect[ id ] = !( g_iHUDEffect[ id ] );
1384 show_menu_interfaz( id );
1385 }
1386 case 3: {
1387
1388 g_iHud[ id ] = !( g_iHud[ id ] );
1389 show_menu_interfaz( id );
1390 }
1391 }
1392
1393 return PLUGIN_HANDLED;
1394}
1395
1396show_menu_posicion(id)
1397{
1398 new sText [ 128 ];
1399
1400 formatex ( sText, charsmax ( sText ), "\r[BG]\y Posición de HUD GENERAL" );
1401
1402 new menu = menu_create( sText, "hand_menu_posicion" );
1403
1404 new sText2 [ 128 ];
1405 formatex ( sText2, charsmax ( sText2 ), "\wMover hacia arriba" );
1406 menu_additem( menu, sText2, "1" );
1407
1408 formatex ( sText2, charsmax ( sText2 ), "\wMover hacia abajo" );
1409 menu_additem( menu, sText2, "2" );
1410
1411 formatex ( sText2, charsmax ( sText2 ), "\wMover hacia la izquierda" );
1412 menu_additem( menu, sText2, "3" );
1413
1414 formatex ( sText2, charsmax ( sText2 ), "\wMover hacia la derecha" );
1415 menu_additem( menu, sText2, "4" );
1416
1417 formatex ( sText2, charsmax ( sText2 ), "\wAlinear a la izquierda" );
1418 menu_additem( menu, sText2, "5" );
1419
1420 formatex ( sText2, charsmax ( sText2 ), "\wAlinear al centro" );
1421 menu_additem( menu, sText2, "6" );
1422
1423 formatex ( sText2, charsmax ( sText2 ), "\wAlinear a la derecha" );
1424 menu_additem( menu, sText2, "7" );
1425
1426 formatex ( sText2, charsmax ( sText2 ), "\wTodo por defecto" );
1427 menu_additem( menu, sText2, "8" );
1428
1429 menu_setprop(menu, MPROP_NUMBER_COLOR, "\y");
1430 menu_setprop(menu, MPROP_EXITNAME, "Salir");
1431
1432 menu_display ( id, menu );
1433}
1434
1435public hand_menu_posicion(id, menu, item )
1436{
1437 switch (item)
1438 {
1439 case 0: g_iHUDPosition[id][1] -= 0.01;
1440 case 1: g_iHUDPosition[id][1] += 0.01;
1441 case 2: g_iHUDPosition[id][0] -= 0.01;
1442 case 3: g_iHUDPosition[id][0] += 0.01;
1443 case 4: g_iHUDPosition[id][0] = 0.0;
1444 case 5: g_iHUDPosition[id][0] = -1.0;
1445 case 6: g_iHUDPosition[id][0] = 1.5;
1446 case 7:
1447 {
1448 g_iHUDPosition[id][0] = 0.02;
1449 g_iHUDPosition[id][1] = 0.1;
1450 }
1451 case MENU_EXIT:
1452 {
1453 show_menu_interfaz( id );
1454 return PLUGIN_HANDLED;
1455 }
1456 }
1457
1458 show_menu_posicion(id);
1459 return PLUGIN_HANDLED;
1460}
1461
1462
1463public NivelesTotalesMenu(id){
1464
1465 new menu = menu_create("\r[BREAKING GAMING] \wLista de Niveles", "HandlerMenuNivelesTotales");
1466 new szTitle[256];
1467 for(new i = 0; i < MAX_LEVEL; i++){
1468 format(szTitle, sizeof(szTitle), "Nivel \d[#%d]", i+1);
1469 menu_additem(menu, szTitle);
1470 }
1471 menu_setprop(menu, MPROP_BACKNAME, "Atras");
1472 menu_setprop(menu, MPROP_EXITNAME, "Salir");
1473 menu_setprop(menu, MPROP_NEXTNAME, "Siguiente");
1474 menu_setprop(menu, MPROP_NUMBER_COLOR, "\y");
1475 menu_display(id, menu);
1476}
1477
1478public HandlerMenuNivelesTotales(id, menu, item){
1479 menu_destroy(menu);
1480}
1481
1482public MiCuenta(id){
1483 new menu = menu_create("\r[BREAKING GAMING] \wMi Cuenta \d[DATOS]", "HandlerMenuCuenta");
1484
1485 new szTitle[256];
1486 new iMoney = cs_get_user_money(id);
1487
1488 //format(szTitle, sizeof(szTitle), "Cambiar Contrasenia");
1489
1490 format(szTitle, sizeof(szTitle), "Usuario: \y[%s] \d| \wID: \y[%d]", g_usuario[id], g_id[ id ] );
1491 menu_additem(menu, szTitle, "1");
1492
1493 format(szTitle, sizeof(szTitle), "Contrasenia: \y[%s]", g_password[id]);
1494 menu_additem(menu, szTitle, "2");
1495
1496 format(szTitle, sizeof(szTitle), "Nivel: \y[%d]", g_level[id]);
1497 menu_additem(menu, szTitle, "3");
1498
1499 format(szTitle, sizeof(szTitle), "Frags: \y[%d] \d| \wFrags Carnage: \y[%d]", g_frags[id], g_frags_carnage[ id ] );
1500 menu_additem(menu, szTitle, "4");
1501
1502 format(szTitle, sizeof(szTitle), "Puntos: \y[%d]", g_puntos[id]);
1503 menu_additem(menu, szTitle, "5");
1504
1505 format(szTitle, sizeof(szTitle), "Oros: \y[%d]", g_oros[id]);
1506 menu_additem(menu, szTitle, "6");
1507
1508
1509 format(szTitle, sizeof(szTitle), "Suministros: \y[%d]", g_suministros[ id ] );
1510 menu_additem(menu, szTitle, "7");
1511
1512 format(szTitle, sizeof(szTitle), "Money: \y[%d]", iMoney);
1513 menu_additem(menu, szTitle, "8");
1514
1515 format(szTitle, sizeof(szTitle), "Email: \y[%s]", g_hotmail[id]);
1516 menu_additem(menu, szTitle, "9");
1517
1518 menu_setprop(menu, MPROP_NUMBER_COLOR, "\y");
1519 menu_setprop(menu, MPROP_EXITNAME, "Salir");
1520
1521 menu_display(id, menu, 0);
1522}
1523
1524public HandlerMenuCuenta(id, menu, item){
1525 menu_destroy(menu);
1526}
1527
1528public LogrosPrincipal(id){
1529 new menu = menu_create("\r[BREAKING GAMING] \wLogros Principal", "HandlerMenuLogrosPrincipal");
1530
1531 menu_additem(menu, "Logros \r[TT]", "1");
1532 menu_additem(menu, "Logros \y[CT]", "2");
1533 menu_additem(menu, "Logros \d[GENERALES]", "3");
1534
1535 menu_setprop(menu, MPROP_NUMBER_COLOR, "\y");
1536 menu_setprop(menu, MPROP_EXITNAME, "Salir");
1537
1538 menu_display(id, menu, 0);
1539}
1540
1541public HandlerMenuLogrosPrincipal(id, menu, item){
1542 if(item == MENU_EXIT){
1543 menu_destroy(menu);
1544 return PLUGIN_HANDLED;
1545 }
1546
1547 switch(item){
1548 //Logros TT
1549 case 0:{
1550
1551 }
1552 //Logros CT
1553 case 1:{
1554 //LogrosCT(id);
1555 }
1556 //Logros GEN
1557 case 2:{
1558
1559 }
1560 }
1561
1562 return PLUGIN_HANDLED;
1563}
1564/*
1565public LogrosCT(id){
1566 new menu = menu_create("\r[BREAKING GAMING] \wLogros \y[CT]", "HandlerLogrosCT");
1567
1568 new szTitle[256];
1569
1570 for(new i = 0; i < sizeof(szLogrosCT); i++){
1571 formatex(szTitle, sizeof(szTitle), "%s %s", szLogrosCT[NOMBRE_LOGROS][i], g_logros[id][i], "\y(COMPLETO)" : "\d(INCOMPLETO)");
1572 }
1573}
1574*/
1575public cmdSet ( id ) {
1576
1577 g_level [ id ]++;
1578 g_frags [ id ]++;
1579 g_reset [ id ]++;
1580 g_puntos [ id ]+= 600;
1581 g_oros [ id ]+= 600;
1582
1583 return PLUGIN_HANDLED;
1584}
1585
1586public cmdInfo ( id ) {
1587
1588 GreenPrint ( id, "%s LEVEL !g%i!y | FRAGS !g%i!y | RESET !g%i!y | PUNTOS !g%i!y | OROS !g%i!y FRAGS-CARNAGE !g%i!y.", g_sPlugin [ 3 ], g_level [ id ], g_frags [ id ], g_reset [ id ], g_puntos [ id ], g_oros [ id ], g_frags_carnage [ id ] );
1589
1590 return PLUGIN_HANDLED;
1591}
1592
1593public cmdRev ( id ) {
1594
1595 for ( new i = 1; i <= g_maxplayers; i++ ) {
1596
1597 if ( is_user_connected ( i ) ) {
1598
1599 if ( cs_get_user_team ( i ) == CS_TEAM_CT ) {
1600
1601 ExecuteHamB ( Ham_CS_RoundRespawn, i );
1602 }
1603 }
1604 }
1605}
1606
1607public plugin_precache( ) {
1608
1609 g_iSprs [ LEVEL ] = precache_model ( "sprites/laserbeam.spr" );
1610
1611 g_iSprs [ SMOKE ] = precache_model( "sprites/smoke.spr" );
1612
1613 g_iSprs [ SUMINISTRO ] = precache_model ( "sprites/LG/suministro.spr" );
1614
1615 precache_model( g_sSuministro );
1616
1617 precache_model ( g_sKnifeModel );
1618
1619 precache_sound( g_sSuministroPickup );
1620 precache_sound( g_sSuministroDrop );
1621
1622 precache_sound ( g_sLevel );
1623}
1624
1625/* *** CUENTAS *** */
1626
1627public message_VGUIMenu ( iMsgid, iDest, id ) {
1628
1629
1630 if( g_status [ id ] == LOGUEADO || get_msg_arg_int ( 1 ) != 2 )
1631 return PLUGIN_CONTINUE;
1632
1633
1634 show_login_menu ( id );
1635 return PLUGIN_HANDLED;
1636}
1637
1638public message_ShowMenu ( iMsgid, iDest, id ) {
1639
1640 if( g_status [ id ] == LOGUEADO )
1641 return PLUGIN_CONTINUE;
1642
1643 static sMenuCode [ 33 ];
1644 get_msg_arg_string ( 4, sMenuCode, charsmax ( sMenuCode ) );
1645
1646 if ( containi ( sMenuCode, "Team_Select" ) != -1 ) {
1647 show_login_menu ( id );
1648 return PLUGIN_HANDLED;
1649 }
1650
1651
1652
1653 return PLUGIN_CONTINUE;
1654}
1655
1656
1657
1658
1659public clcmd_changeteam ( id ) {
1660
1661 if( g_status [ id ] != LOGUEADO ) {
1662 show_login_menu ( id );
1663
1664 return PLUGIN_HANDLED;
1665 }
1666
1667 return PLUGIN_CONTINUE;
1668}
1669
1670public show_login_menu( id ) {
1671
1672 if ( is_user_bot ( id ) )
1673 return PLUGIN_HANDLED;
1674
1675
1676 new szTitle[256];
1677
1678 format(szTitle, sizeof(szTitle), "\r[BREAKING GAMING] \wBienvenido \y%s \d[HNS + NIVELES]^nQue deseas hacer?^n", g_sName[id]);
1679
1680 new menu = menu_create( szTitle, "login_menu" );
1681
1682 //menu_additem(menu, Estados_Cuentas[id][g_status[id]] == OFFLINE ? "Crear Cuenta" : "\dCrear Cuenta", "1");
1683 //menu_additem(menu, Estados_Cuentas[id][g_status[id]] == LOGUEADO ? "Ingresar" : "\dIngresar", "2");
1684 menu_additem( menu, "Crear cuenta", "1" );
1685 menu_additem( menu, "Ingresar", "2" );
1686
1687 menu_setprop( menu, MPROP_EXIT, MEXIT_NEVER );
1688
1689 menu_display( id, menu );
1690
1691 return PLUGIN_HANDLED;
1692}
1693
1694public login_menu( id, menu, item ) {
1695
1696 switch( item ) {
1697 case 0: CrearCuentaMenu(id);
1698 case 1: EntrarCuentaMenu(id);
1699 /*
1700 case 0: client_cmd( id, "messagemode CREAR_USUARIO" );
1701 case 1: client_cmd( id, "messagemode LOGUEAR_USUARIO" );
1702 */
1703
1704 }
1705
1706 return PLUGIN_HANDLED;
1707}
1708
1709public CrearCuentaMenu(id){
1710 new szTitle[256];
1711
1712 new iHostname[64];
1713 get_cvar_string("hostname", iHostname, 63);
1714 replace_all(iHostname, sizeof(iHostname), "^"", "");
1715 replace_all(iHostname, sizeof(iHostname), "[by www.4evergaming.com.ar]", "");
1716 replace_all(iHostname, sizeof(iHostname), "[by www.solugames.com]", "");
1717
1718 format(szTitle, sizeof(szTitle), "\r[BREAKING GAMING] \wRegistrar cuenta^nBienvenido \y%s \wa \r%s", g_sName[id], iHostname);
1719
1720 new menu = menu_create(szTitle, "HandlerCrearCuentaMenu");
1721
1722 format(szTitle, sizeof(szTitle), "Username: \y%s^n", !g_usuario[0] ? "\dIngresa tu username!" : g_usuario[id]);
1723 menu_additem(menu, szTitle, "1");
1724
1725 new password_protected[33];
1726 arrayset(password_protected, 0, 32);
1727 new len = strlen(g_password[id]);
1728 for(new i = 0; i < len; i++)
1729 password_protected[i] = '*';
1730
1731 format(szTitle, sizeof(szTitle), "Password: \y%s^n", !password_protected[0] ? "\dIngresa tu password! \y(ATENCION, SE PROTEGERA!)" : password_protected);
1732 menu_additem(menu, szTitle, "2");
1733
1734 format(szTitle, sizeof(szTitle), "Hotmail: \y%s^n", !g_hotmail[0] ? "\dIngresa tu hotmail" : g_hotmail[id]);
1735 menu_additem(menu, szTitle, "3");
1736
1737 format(szTitle, sizeof(szTitle), "Registrar cuenta!^n");
1738 menu_additem(menu, szTitle, "4");
1739
1740 menu_setprop(menu, MPROP_EXITNAME, "Salir");
1741 menu_setprop(menu, MPROP_NEXTNAME, "Siguiente");
1742 menu_setprop(menu, MPROP_BACKNAME, "Atras");
1743 menu_setprop(menu, MPROP_NUMBER_COLOR, "\y");
1744 menu_display(id, menu, 0);
1745
1746 return PLUGIN_CONTINUE;
1747
1748}
1749
1750public HandlerCrearCuentaMenu(id, menu, item){
1751 if(item == MENU_EXIT){
1752 menu_destroy(menu);
1753 return PLUGIN_HANDLED;
1754 }
1755
1756 if(g_status[id] == LOGUEADO)
1757 return PLUGIN_HANDLED;
1758
1759
1760 switch(item){
1761 case 0: client_cmd(id, "messagemode CREAR_USUARIO"), CrearCuentaMenu(id);
1762 case 1: client_cmd(id, "messagemode CREAR_PASSWORD"), CrearCuentaMenu(id);
1763 case 2: client_cmd(id, "messagemode INGRESAR_HOTMAIL"), CrearCuentaMenu(id);
1764 case 3: RegisterEnd(id), menu_destroy(menu);
1765
1766 }
1767
1768 return PLUGIN_HANDLED;
1769}
1770
1771public EntrarCuentaMenu(id){
1772 new szTitle[256];
1773
1774 new iHostname[64];
1775 get_cvar_string("hostname", iHostname, 63);
1776 replace_all(iHostname, sizeof(iHostname), "^"", "");
1777 replace_all(iHostname, sizeof(iHostname), "[by www.4evergaming.com.ar]", "");
1778 replace_all(iHostname, sizeof(iHostname), "[by www.solugames.com]", "");
1779
1780 format(szTitle, sizeof(szTitle), "\r[BREAKING GAMING] \wIngresar a tu cuenta^nBienvenido \y%s \wa \r%s", g_sName[id], iHostname);
1781
1782 new menu = menu_create(szTitle, "HandlerEntrarCuentaMenu");
1783
1784 format(szTitle, sizeof(szTitle), "Username: \y%s^n", !g_usuario[0] ? "\dIngresa tu username!" : g_usuario[id]);
1785 menu_additem(menu, szTitle, "1");
1786
1787 new password_protected[33];
1788 arrayset(password_protected, 0, 32);
1789 new len = strlen(g_password[id]);
1790 for(new i = 0; i < len; i++)
1791 password_protected[i] = '*';
1792
1793 format(szTitle, sizeof(szTitle), "Password: \y%s^n", !password_protected[0] ? "\dIngresa tu password! \y(ATENCION, ESTARA PROTEGIDA!)" : password_protected);
1794 menu_additem(menu, szTitle, "2");
1795
1796
1797 format(szTitle, sizeof(szTitle), "Entrar a la cuenta!^n");
1798 menu_additem(menu, szTitle, "3");
1799
1800 menu_setprop(menu, MPROP_EXITNAME, "Salir");
1801 menu_setprop(menu, MPROP_NEXTNAME, "Siguiente");
1802 menu_setprop(menu, MPROP_BACKNAME, "Atras");
1803 menu_setprop(menu, MPROP_NUMBER_COLOR, "\y");
1804 menu_display(id, menu, 0);
1805
1806 return PLUGIN_CONTINUE;
1807
1808}
1809
1810
1811public HandlerEntrarCuentaMenu(id, menu, item){
1812 if(item == MENU_EXIT){
1813 menu_destroy(menu);
1814 return PLUGIN_HANDLED;
1815 }
1816
1817 switch(item){
1818 case 0: client_cmd(id, "messagemode LOGUEAR_USUARIO"), EntrarCuentaMenu(id);
1819 case 1: client_cmd(id, "messagemode LOGUEAR_PASSWORD"), EntrarCuentaMenu(id);
1820 case 2: EntrarEnd(id);
1821
1822 }
1823
1824 return PLUGIN_HANDLED;
1825}
1826
1827public INGRESAR_HOTMAIL(id){
1828 read_args(g_hotmail[id], sizeof(g_hotmail[]));
1829 remove_quotes(g_hotmail[id]);
1830 trim(g_hotmail[id]);
1831
1832 new iArroba = contain ( g_hotmail[ id ], "@");
1833 new bool:bValid = false
1834
1835 if(iArroba > 0 && strlen(g_hotmail[id] ) > 7 ) {
1836
1837 for ( new i = 0; i < sizeof ( g_sEmails ); i++) {
1838
1839 if (equali(g_hotmail[id][iArroba], g_sEmails[i])) {
1840
1841 //client_cmd(id, "spk buttons/button3.wav");
1842
1843 CrearCuentaMenu(id);
1844
1845 bValid = true;
1846 break;
1847 }
1848 }
1849 }
1850
1851 if ( !bValid ) {
1852
1853 show_login_menu ( id );
1854 GreenPrint ( id, "%s Dirección de correo electrónico inválido... Inténtalo nuevamente", g_sPlugin[3] );
1855
1856 client_cmd(id, "spk buttons/button2.wav");
1857 }
1858
1859 return PLUGIN_HANDLED;
1860
1861}
1862
1863public reg_usuario( id ) {
1864 read_args( g_usuario[ id ], charsmax( g_usuario[ ] ) );
1865 remove_quotes( g_usuario[ id ] );
1866 trim( g_usuario[ id ] );
1867
1868 //md5( g_usuario[ id ], g_usuario[ id ] );
1869
1870 new szQuery[ 128 ], iData[ 2 ];
1871
1872 iData[ 0 ] = id;
1873 iData[ 1 ] = REGISTRAR_USUARIO;
1874
1875 formatex( szQuery, charsmax( szQuery ), "SELECT * FROM %s WHERE Usuario=^"%s^"", g_sDatos [ 4 ], g_usuario[ id ] );
1876 mysql_query( g_hConnection, "DataHandler", szQuery, iData, 2);
1877
1878 return PLUGIN_HANDLED;
1879}
1880
1881public reg_password( id ) {
1882 read_args( g_password[ id ], charsmax( g_password[ ] ) );
1883 remove_quotes( g_password[ id ] );
1884 trim( g_password[ id ] );
1885 //md5( g_password[ id ], g_password[ id ] );
1886
1887 CrearCuentaMenu(id);
1888
1889 return PLUGIN_HANDLED;
1890}
1891
1892
1893public RegisterEnd(id){
1894 new szQuery[ 256 ], iData[ 2 ];
1895
1896 iData[ 0 ] = id;
1897 iData[ 1 ] = REGISTRAR_PASSWORD;
1898
1899 get_user_name( id, g_sName [ id ], charsmax( g_sName [ ] ) );
1900
1901 formatex( szQuery, charsmax( szQuery ), "INSERT INTO %s (Usuario, Password, Pj, Hotmail) VALUES (^"%s^", ^"%s^", ^"%s^", ^"%s^")",
1902 g_sDatos [ 4 ], g_usuario[ id ], g_password[ id ], g_sName [ id ], g_hotmail[id] );
1903 mysql_query(g_hConnection, "DataHandler", szQuery, iData, 2);
1904}
1905
1906public log_usuario( id ) {
1907 read_args( g_usuario[ id ], charsmax( g_usuario[ ] ) );
1908 remove_quotes( g_usuario[ id ] );
1909 trim( g_usuario[ id ] );
1910 //md5( g_usuario[ id ], g_usuario[ id ] );
1911
1912 new szQuery[ 128 ], iData[ 2 ];
1913
1914 iData[ 0 ] = id;
1915 iData[ 1 ] = LOGUEAR_USUARIO;
1916
1917 formatex( szQuery, charsmax( szQuery ), "SELECT * FROM %s WHERE Usuario=^"%s^"", g_sDatos [ 4 ], g_usuario[ id ] );
1918 mysql_query( g_hConnection, "DataHandler", szQuery, iData, 2 );
1919
1920 return PLUGIN_HANDLED;
1921}
1922
1923public log_password( id ) {
1924 read_args( g_password[ id ], charsmax( g_password[ ] ) );
1925 remove_quotes( g_password[ id ] );
1926 trim( g_password[ id ] );
1927 //md5( g_password[ id ], g_password[ id ] );
1928
1929 EntrarCuentaMenu(id);
1930
1931 return PLUGIN_HANDLED;
1932}
1933
1934public EntrarEnd(id){
1935 new szQuery[ 128 ], iData[ 2 ];
1936
1937 iData[ 0 ] = id;
1938 iData[ 1 ] = LOGUEAR_PASSWORD;
1939
1940 formatex( szQuery, charsmax( szQuery ), "SELECT * FROM %s WHERE Usuario=^"%s^" AND Password=^"%s^"", g_sDatos [ 4 ], g_usuario[ id ], g_password[ id ] );
1941 mysql_query( g_hConnection, "DataHandler", szQuery, iData, 2 );
1942}
1943
1944public guardar_datos( id ) {
1945 new szQuery[ 128 ], iData[ 2 ];
1946 iData[ 0 ] = id;
1947 iData[ 1 ] = GUARDAR_DATOS;
1948
1949 formatex( szQuery, charsmax( szQuery ), "UPDATE %s SET level='%d', frags='%d', reset='%d', puntos='%d', oros='%d', frags_carnage='%d', suministros='%d' WHERE id='%d'", g_sDatos [ 4 ], g_level [ id ], g_frags [ id ], g_reset [ id ], g_puntos [ id ], g_oros [ id ], g_frags_carnage [ id ], g_suministros[ id ], g_id[ id ] );
1950 mysql_query( g_hConnection, "DataHandler", szQuery, iData, 2 );
1951}
1952
1953public DataHandler( failstate, error[ ], error2, data[ ], datasize, Float:time ) {
1954 static id;
1955 id = data[ 0 ];
1956
1957 if( !is_user_connected( id ) )
1958 return;
1959
1960 switch( failstate ) {
1961 case TQUERY_CONNECT_FAILED: {
1962 log_to_file( "SQL_LOG_TQ.txt", "Error en la conexion al MySQL [%i]: %s", error2, error );
1963 return;
1964 }
1965 case TQUERY_QUERY_FAILED:
1966 log_to_file( "SQL_LOG_TQ.txt", "Error en la consulta al MySQL [%i]: %s", error2, error );
1967 }
1968
1969 switch( data[ 1 ] ) {
1970 case REGISTRAR_USUARIO: {
1971 if( !mysql_num_results( ) ){
1972 CrearCuentaMenu(id);
1973 //client_cmd( id, "messagemode CREAR_PASSWORD" );
1974 }
1975 else {
1976 GreenPrint( id, "%s El usuario ya existe.", g_sPlugin [ 3 ] );
1977 client_cmd( id, "spk buttons/button10.wav" );
1978
1979 show_login_menu( id );
1980 }
1981 }
1982
1983 case REGISTRAR_PASSWORD: {
1984 if( failstate < TQUERY_SUCCESS ) {
1985 if( containi( error, "Usuario" ) != -1 )
1986 GreenPrint( id, "%s El usuario ya existe.", g_sPlugin [ 3 ] );
1987
1988 else if( containi( error, "Pj" ) != -1 )
1989 GreenPrint( id, "%s El nombre de personaje esta en uso.", g_sPlugin [ 3 ] );
1990 else
1991 GreenPrint( id, "%s Error al crear la cuenta. Intente nuevamente.", g_sPlugin [ 3 ] );
1992
1993 client_cmd( id, "spk buttons/button10.wav" );
1994
1995 show_login_menu( id );
1996 }
1997 else {
1998 GreenPrint( id, "%s Tu cuenta ha sido creada correctamente.", g_sPlugin [ 3 ] );
1999
2000 new szQuery[ 128 ], iData[ 2 ];
2001
2002 iData[ 0 ] = id;
2003 iData[ 1 ] = CARGAR_DATOS;
2004
2005 formatex( szQuery, charsmax( szQuery ), "SELECT id, level, frags, reset, puntos, oros, frags_carnage, suministros FROM %s WHERE Usuario=^"%s^"", g_sDatos [ 4 ], g_usuario[ id ] );
2006 mysql_query( g_hConnection, "DataHandler", szQuery, iData, 2 );
2007 }
2008
2009 }
2010 case LOGUEAR_USUARIO: {
2011 if( mysql_num_results( ) ){
2012 EntrarCuentaMenu(id);
2013 //client_cmd( id, "messagemode LOGUEAR_PASSWORD" );
2014 }
2015 else {
2016 GreenPrint( id, "%s El usuario no existe.", g_sPlugin [ 3 ] );
2017 client_cmd( id, "spk buttons/button10.wav" );
2018
2019 show_login_menu( id );
2020 }
2021 }
2022 case LOGUEAR_PASSWORD: {
2023 if( mysql_num_results( ) ) {
2024 g_id[ id ] = mysql_read_result( 0 );
2025 mysql_read_result( 3, g_sName [ id ], charsmax( g_sName [ ] ) );
2026 mysql_read_result(11, g_hotmail[id], sizeof(g_hotmail[]));
2027 // Cargamos datos
2028 g_level [ id ] = mysql_read_result( 4 );
2029 g_frags [ id ] = mysql_read_result( 5 );
2030 g_reset [ id ] = mysql_read_result( 6 );
2031 g_puntos [ id ] = mysql_read_result( 7 );
2032 g_oros [ id ] = mysql_read_result( 8 );
2033 g_frags_carnage [ id ] = mysql_read_result( 9 );
2034 g_suministros [ id ] = mysql_read_result( 10 );
2035
2036
2037 func_login_success( id );
2038 }
2039 else {
2040 GreenPrint( id, "%s Contrasenia incorrecta.", g_sPlugin [ 3 ] );
2041 client_cmd( id, "spk buttons/button10.wav" );
2042
2043 show_login_menu( id );
2044 }
2045 }
2046 case CARGAR_DATOS: {
2047 if( mysql_num_results( ) ) {
2048 g_id[ id ] = mysql_read_result( 0 );
2049
2050 g_level [ id ] = mysql_read_result( 1 );
2051 g_frags [ id ] = mysql_read_result( 2 );
2052 g_reset [ id ] = mysql_read_result( 3 );
2053 g_puntos [ id ] = mysql_read_result( 4 );
2054 g_oros [ id ] = mysql_read_result( 5 );
2055 g_frags_carnage [ id ] = mysql_read_result( 6 );
2056 g_suministros [ id ] = mysql_read_result( 7 );
2057
2058 func_login_success( id );
2059 }
2060 else {
2061 GreenPrint( id, "%s Error al cargar los datos, intente nuevamente.", g_sPlugin [ 3 ] );
2062 show_login_menu( id );
2063 }
2064 }
2065 case GUARDAR_DATOS: {
2066 if( failstate < TQUERY_SUCCESS )
2067 console_print( id, "%s Error en el guardado de datos.", g_sPlugin [ 3 ] );
2068
2069 else
2070 console_print( id, "%s Datos guardados.", g_sPlugin [ 3] );
2071 }
2072 }
2073}
2074
2075public func_login_success ( id ) {
2076 new msgShowMenu, msgVGUIMenu;
2077
2078 engclient_cmd ( id, "jointeam", "5" );
2079 engclient_cmd ( id, "joinclass", "5" );
2080 //Bloqueamos los MSGHooks.
2081
2082
2083 msgShowMenu = get_user_msgid("ShowMenu");
2084 msgVGUIMenu = get_user_msgid("VGUIMenu");
2085
2086 get_msg_block(msgVGUIMenu);
2087 get_msg_block(msgShowMenu);
2088
2089
2090 set_msg_block(msgShowMenu, BLOCK_ONCE);
2091 set_msg_block(msgVGUIMenu, BLOCK_ONCE);
2092
2093 set_msg_block(msgShowMenu, msgShowMenu);
2094 set_msg_block(msgVGUIMenu, msgVGUIMenu);
2095
2096 g_status [ id ] = LOGUEADO;
2097
2098 set_user_info( id, "name", g_sName [ id ] );
2099}
2100
2101/* Block flashlight */
2102
2103public BloquearLinterna ( id, impulse) {
2104
2105 if ( g_NoLinter )
2106 return PLUGIN_CONTINUE
2107
2108 GreenPrint( id, "%s La !gLINTERNA!y se encuentra desactivada", g_sPlugin [ 3 ] );
2109
2110 return PLUGIN_HANDLED
2111}
2112
2113/* Remover Graffitis */
2114
2115public BloquearGraffiti( id ) {
2116
2117 if( g_NoGraff )
2118 return PLUGIN_CONTINUE
2119
2120 GreenPrint ( id, "%s Los !gGRAFITIS!y se encuentran desactivados.", g_sPlugin [ 3 ] );
2121
2122 return PLUGIN_HANDLED
2123}
2124
2125public event_round_start ( ) {
2126
2127 for ( new i = 1; i <= g_maxplayers; i++ ) {
2128
2129 if ( g_status [ i ] == LOGUEADO && is_user_connected ( i ) )
2130 guardar_datos ( i );
2131 }
2132}
2133
2134public client_infochanged ( id ) {
2135
2136 if( g_status[ id ] == OFFLINE )
2137 return PLUGIN_CONTINUE;
2138
2139 static name [ 33 ];
2140 get_user_info ( id, "name", name, charsmax ( name ) );
2141
2142 if ( !equal ( g_sName [ id ], name ) ) {
2143
2144 set_user_info ( id, "name", g_sName [ id ] );
2145
2146 return PLUGIN_HANDLED;
2147 }
2148
2149 return PLUGIN_CONTINUE;
2150}
2151
2152
2153public FW_ClientUserInfoChanged ( id, szBuffer ) {
2154
2155 if ( is_user_connected ( id ) ) {
2156
2157 if( g_status [ id ] == LOGUEADO ) {
2158
2159 new szNewName [ 33 ];
2160
2161 engfunc ( EngFunc_InfoKeyValue, szBuffer, "name", szNewName, sizeof ( szNewName ) );
2162
2163 if ( !equal ( g_sName [ id ], szNewName ) ){
2164
2165 engfunc ( EngFunc_SetClientKeyValue, id, szBuffer, "name", g_sName [ id ] );
2166 client_cmd2 ( id, "name ^"%s^"", g_sName [ id ] );
2167 GreenPrint ( id, "%s Salà del servidor para cambiar de nombre.", g_sPlugin[3] );
2168 }
2169 }
2170
2171 }
2172
2173 return FMRES_IGNORED;
2174}
2175
2176public EventWin_TS ( ) {
2177
2178 if( g_bStart ) {
2179
2180 for( new id = 1; id <= g_iMaxPlayers; id++ ) {
2181
2182 if( g_bAlive[ id ] && g_iTeam[ id ] == CS_TEAM_T ) {
2183
2184
2185 GreenPrint( id, "%s ¡ Has recibido !g1!y frag por sobrevivir la ronda!", g_sPlugin [ 3 ] );
2186
2187 set_user_frags( id, get_user_frags( id ) + 1 );
2188
2189 g_frags [ id ]++;
2190 }
2191 }
2192
2193 g_iNubSlash++;
2194 }
2195}
2196
2197public EventWin_CT( ) {
2198
2199 if( g_bStart ) {
2200
2201 set_task ( 0.1, "Task_TeamSwap" );
2202
2203 set_hudmessage ( 0, 100, 255, -1.0, -1.0, 0, 0.0, 2.0, 0.2, 0.2, 1 );
2204 show_hudmessage ( 0, "¡ Cambiando equipos !" );
2205
2206 g_iNubSlash = 0;
2207 }
2208}
2209
2210public EventNewRound ( ) {
2211
2212 g_bNewGrens = false;
2213
2214 if ( CheckPlayers ( 0 ) )
2215 g_bStart = true;
2216
2217
2218
2219
2220
2221 new iFecha[22];
2222 get_time("%H", iFecha, sizeof(iFecha));//Obtenemos Horario..
2223
2224 new iHours = str_to_num(iFecha);
2225
2226 for(new i = 0; i <= sizeof(szTimeHappyHour); i++){
2227 if(iHours == szTimeHappyHour[i]){
2228 g_iHappyHour = true;
2229 break;
2230 }
2231 }
2232
2233 if(g_iHappyHour)
2234 GreenPrint(0, "%s Comenzo el Happy Hour tus frags en !gCARNAGE !yo !gNORMAL !yse multiplican !gx2", g_sPlugin[3]);
2235
2236
2237
2238 /*
2239 new szQuery[256];
2240 for(new id = 1; id <= g_iMaxPlayers; id++){
2241 if(is_user_connected(id)){
2242 new iData[1];
2243 iData[0] = id;
2244 formatex(szQuery, sizeof(szQuery), "UPDATE %s SET nombre=^"%s^", multiplicador='%d'", szTablePremiums, g_sName[id], g_premium[id]);
2245 LoadPremiums();
2246 mysql_query(g_hConnection, "HandlerPremiums", szQuery, iData, sizeof(iData));
2247 }
2248 }
2249 */
2250}
2251
2252
2253public EventRestart ( ) {
2254
2255 g_iNubSlash = 0;
2256 g_iTimer = 0;
2257
2258 set_cvar_num ( "amx_ltm", 1 )
2259}
2260
2261public EventRoundStart ( ) {
2262
2263 for ( new i = 1; i <= g_maxplayers; i++ ) {
2264
2265 if( g_status [ i ] == LOGUEADO && is_user_connected ( i ) )
2266 guardar_datos ( i );
2267 }
2268
2269 set_task ( 3.0, "BreakStuff" );
2270
2271 if ( g_bStart ) {
2272
2273 if ( g_iNubSlash == 3 )
2274 GreenPrint ( 0, "%s Los Anti-Terroristas ahora pueden usar el !gSLASH!y después de perder !t3!y rondas seguidas.", g_sPlugin [ 3 ] );
2275
2276
2277 g_iTimer = 10;
2278 set_pev ( g_iTimerEntity, pev_nextthink, get_gametime( ) );
2279
2280 g_flRoundStartTime = get_gametime ( );
2281
2282 if ( !g_iSendAudioMessage )
2283 g_iSendAudioMessage = register_message ( g_iMsgSendAudio, "MsgSendAudio" );
2284 }
2285
2286 g_RondasCarnage++
2287 g_Carnage = 0
2288
2289 if(g_RondasCarnage == RoundCarnage)
2290 {
2291 g_RondasCarnage = 0
2292 g_Carnage = 1
2293 g_EleccionCarnage = random_num(0, 8)
2294
2295 g_iTimer = 0;
2296
2297 g_bStart = false;
2298 set_cvar_num ( "amx_ltm", 0 )
2299 }
2300
2301 if(g_Carnage)
2302 GreenPrint(0, "%s Estas jugando la ronda carnage de !g%s!y.", g_sPlugin [ 3 ], !g_EleccionCarnage ? "MIX" : g_EleccionCarnage == 1 ? "AWP" : g_EleccionCarnage == 2 ? "ESCOPETA" : g_EleccionCarnage == 3 ? "DEAGLE OH" : g_EleccionCarnage == 4 ? "SCOUT" : g_EleccionCarnage == 5 ? "CUCHILLO" : g_EleccionCarnage == 6 ? "EXPLOSIVO" : g_EleccionCarnage == 7 ? "MP5 NAVY" : g_EleccionCarnage == 8 ? "MALA LECHE" : "" )
2303 else
2304 GreenPrint(0, "%s Falta%s !g%d!y ronda%s para el modo carnage.", g_sPlugin [ 3 ], RoundCarnage - g_RondasCarnage > 1 ? "n" : "", RoundCarnage - g_RondasCarnage, RoundCarnage - g_RondasCarnage > 1 ? "s" : "")
2305
2306 return PLUGIN_CONTINUE;
2307}
2308
2309public RoundEnd ( ) {
2310
2311 if(g_RondasCarnage + 1 == RoundCarnage) g_iTimer = 10;
2312
2313 if(g_Carnage)
2314 {
2315 set_cvar_num("hns_carnage", 0);
2316 set_cvar_num("amx_ltm", 1)
2317 g_iTimer = 10;
2318 }
2319}
2320public EventTeamInfo ( ) {
2321
2322 new szTeamInfo [ 2 ], id = read_data ( 1 );
2323 read_data ( 2, szTeamInfo, 1 );
2324
2325 switch ( szTeamInfo [ 0 ] ) {
2326
2327 case 'T': g_iTeam [ id ] = CS_TEAM_T;
2328 case 'C': g_iTeam [ id ] = CS_TEAM_CT;
2329 case 'S': g_iTeam [ id ] = CS_TEAM_SPECTATOR;
2330 default : g_iTeam [ id ] = CS_TEAM_UNASSIGNED;
2331 }
2332}
2333
2334public eventCurWeapon ( id ) {
2335
2336 if ( g_Carnage )
2337 return PLUGIN_HANDLED;
2338
2339 if ( cs_get_user_team ( id ) == CS_TEAM_T ) {
2340
2341 new sModel [ 32 ];
2342
2343 pev ( id, pev_viewmodel2, sModel, 31 );
2344
2345 if ( equali( sModel, g_sKnifeModel_v, 0 ) ) {
2346
2347 set_pev ( id, pev_viewmodel2, g_sBlank );
2348 }
2349
2350 pev ( id, pev_weaponmodel2, sModel, 31 );
2351
2352 if ( equali ( sModel, g_sKnifeModel_w, 0 ) ) {
2353
2354 set_pev ( id, pev_weaponmodel2, g_sBlank );
2355 }
2356 }
2357
2358 return PLUGIN_CONTINUE;
2359}
2360
2361public EventDeathMsg( ) {
2362
2363 new attacker = read_data ( 1 );
2364 new victim = read_data ( 2 );
2365
2366 if ( g_iTimer && g_iTeam [ victim ] == CS_TEAM_CT ) {
2367
2368 MakeScreenFade ( victim );
2369 set_pev ( victim, pev_flags, pev( victim, pev_flags ) & ~FL_FROZEN );
2370 }
2371
2372 if ( !is_user_connected ( attacker ) || !is_user_connected ( victim ) || attacker == victim )
2373 return;
2374
2375 if( g_Carnage ) {
2376
2377 if(g_iHappyHour){
2378 g_frags_carnage[attacker] += 2 * g_premium[attacker];
2379 GreenPrint(attacker, "%s HORA HappyHour! - Ganaste %s frags carnage! !g%d/10!y.", g_sPlugin[3], is_user_admin ( attacker ) ? "2" : "1", g_frags_carnage [ attacker ]);
2380 }
2381 else{
2382 g_frags_carnage [ attacker ] += 1 * g_premium [ attacker ];
2383 GreenPrint ( attacker, "%s Ganaste %s frags carnage! !g%d/10!y.", g_sPlugin [ 3 ], is_user_admin ( attacker ) ? "2" : "1", g_frags_carnage [ attacker ] )
2384 }
2385 check_points ( attacker );
2386
2387 if ( random ( 100 ) < 30 ) {
2388
2389 emit_sound( victim, CHAN_AUTO, g_sSuministroDrop, 1.0, ATTN_NORM, 0, PITCH_NORM )
2390 CrearEntidad( victim );
2391 }
2392 } else {
2393
2394 if(g_iHappyHour){
2395 g_frags[attacker] += 2 * g_premium[attacker];
2396 }
2397 else{
2398 g_frags [ attacker ] += 1 * g_premium [ attacker ];
2399 }
2400
2401 if ( random ( 100 ) < 30 ) {
2402
2403 emit_sound( victim, CHAN_AUTO, g_sSuministroDrop, 1.0, ATTN_NORM, 0, PITCH_NORM )
2404 CrearEntidad( victim );
2405 }
2406
2407 check_level ( attacker );
2408 }
2409}
2410
2411public check_points ( id )
2412{
2413 static Puntos
2414 Puntos = g_puntos [ id ];
2415
2416 while( g_frags_carnage [ id ] >= 10 ) {
2417
2418 g_frags_carnage [ id ] = 0;
2419 g_puntos [ id ] += 1 * g_premium [ id ];
2420 }
2421
2422 if(Puntos < g_puntos[ id ] )
2423 {
2424 GreenPrint ( id, "%s Ganaste !g%d!y puntos", g_sPlugin [ 3 ], g_premium [ id ] );
2425 return PLUGIN_HANDLED
2426 }
2427 return PLUGIN_HANDLED
2428}
2429
2430public MsgTextMsg ( msgid, dest, id ) {
2431
2432 static const TerroristMsg [ ] = "#Terrorists_Win";
2433 static const HostageMsg [ ] = "#Hostages_Not_Rescued";
2434 static const CTMsg [ ] = "#CTs_Win";
2435
2436 new szMsg [ 33 ];
2437 get_msg_arg_string ( 2, szMsg, 32 );
2438
2439 if ( equal ( szMsg, TerroristMsg ) || equal ( szMsg, HostageMsg ) )
2440 set_msg_arg_string ( 2, "¡ Ganaron los Terroristas !" );
2441 else if ( equal ( szMsg, CTMsg ) )
2442 set_msg_arg_string ( 2, "¡ Ganaron los Anti-Terroristas !" );
2443}
2444
2445public MsgStatusIcon ( msgid, msgdest, id ) {
2446
2447 static szMsg [ 8 ];
2448 get_msg_arg_string ( 2, szMsg, 7 );
2449
2450 if ( equal ( szMsg, "buyzone" ) && get_msg_arg_int ( 1 ) ) {
2451
2452 set_pdata_int ( id, 235, get_pdata_int ( id, 235 ) & ~( 1 << 0 ) );
2453 return PLUGIN_HANDLED;
2454 }
2455
2456 return PLUGIN_CONTINUE;
2457}
2458
2459public MsgScreenFade ( msgid, msgdest, id ) {
2460
2461 if ( get_msg_arg_int ( 4 ) == 255 && get_msg_arg_int ( 5 ) == 255 && get_msg_arg_int ( 6 ) == 255 ){
2462
2463 if ( ( g_iTeam [ id ] == CS_TEAM_CT && g_iTimer ) || g_iTeam [ id ] == CS_TEAM_T )
2464 return PLUGIN_HANDLED;
2465
2466
2467
2468 //FlashBang Colores
2469 set_msg_arg_int(4, ARG_BYTE, random_num(0, 255))
2470 set_msg_arg_int(5, ARG_BYTE, random_num(0, 255))
2471 set_msg_arg_int(6, ARG_BYTE, random_num(0, 255))
2472 }
2473
2474 return PLUGIN_CONTINUE;
2475}
2476
2477public MsgSendAudio ( iMsgId, iMsgDest, iMsgEnt ) {
2478
2479 if ( get_gametime ( ) > g_flRoundStartTime ) {
2480
2481 unregister_message ( g_iMsgSendAudio, g_iSendAudioMessage );
2482 g_iSendAudioMessage = 0;
2483 return PLUGIN_CONTINUE;
2484 }
2485
2486 if ( iMsgEnt ) {
2487
2488 new szAudioString [ 17 ];
2489 get_msg_arg_string ( 2, szAudioString, 16 );
2490
2491 if ( TrieKeyExists ( g_tRoundStartSounds, szAudioString ) )
2492 return PLUGIN_HANDLED;
2493 }
2494
2495 return PLUGIN_CONTINUE;
2496}
2497
2498public FwdHamTakeDamage( id, iInflictor, iAttacker ) {
2499
2500 /*if ( IsPlayer ( iAttacker ) ) {
2501
2502 set_pdata_float ( id, m_fPainShock, 1.0 );
2503 }*/
2504}
2505
2506public FwdHamKnifeSecondaryAttack ( iKnife ) {
2507
2508 if ( !g_bStart)
2509 return HAM_IGNORED;
2510
2511 if ( g_Carnage )
2512 return HAM_IGNORED;
2513
2514 if ( g_iTeam [ get_pdata_cbase ( iKnife, m_pPlayer, 4 ) ] == CS_TEAM_T )
2515 return HAM_SUPERCEDE;
2516
2517 return HAM_IGNORED;
2518}
2519
2520public FwdHamKnifePrimaryAttack ( iKnife ) {
2521
2522 if ( !g_bStart )
2523 return HAM_IGNORED;
2524
2525 if ( g_Carnage )
2526 return HAM_IGNORED;
2527
2528 if ( g_iTeam [ get_pdata_cbase ( iKnife, m_pPlayer, 4 ) ] == CS_TEAM_T )
2529 return HAM_SUPERCEDE;
2530
2531 if ( g_iNubSlash >= 3 )
2532 return HAM_IGNORED;
2533
2534 ExecuteHam ( Ham_Weapon_SecondaryAttack, iKnife );
2535
2536 return HAM_SUPERCEDE;
2537}
2538
2539public FwdAddToFullPack ( es, e, ent, host, hostflags, player, pSet ) {
2540
2541 if ( player )
2542 if ( g_iTeam [ host ] == g_iTeam [ ent ] )
2543 if ( g_bSolid [ host ] && g_bSolid [ ent ] )
2544 set_es ( es, ES_Solid, SOLID_NOT );
2545}
2546
2547public FwdClientKill ( id ) {
2548
2549 if ( !g_bStart )
2550 return FMRES_IGNORED;
2551
2552 console_print ( id, "No puedes suicidarte jugando HideNSeek!" );
2553 GreenPrint ( id, "%s No puedes suicidarte jugando!g HideNSeek!y!", g_sPlugin [ 3 ] );
2554
2555 return FMRES_SUPERCEDE;
2556}
2557
2558public FwdGameDesc ( ) {
2559
2560 forward_return ( FMV_STRING, g_sGamename );
2561
2562 return FMRES_SUPERCEDE;
2563}
2564
2565public FwdEmitSound ( id, iChannel, const szSound [ ] ) {
2566
2567 if ( IsPlayer ( id ) ) {
2568
2569 if ( g_iTeam [ id ] != CS_TEAM_T )
2570 return FMRES_IGNORED;
2571
2572 static const KnifeDeploy [ ] = "weapons/knife_deploy1.wav";
2573 static const GunPickup [ ] = "items/gunpickup2.wav";
2574
2575 if ( g_bNewGrens && equal ( szSound, GunPickup ) )
2576 return FMRES_SUPERCEDE;
2577
2578 else if ( equal ( szSound, KnifeDeploy ) )
2579 return FMRES_SUPERCEDE;
2580 }
2581
2582 return FMRES_IGNORED;
2583}
2584
2585public FwdHamSpawn_Player ( id ) {
2586
2587 g_bAlive[ id ] = bool:is_user_alive ( id );
2588
2589 if ( g_bAlive [ id ] ) {
2590
2591 g_iTeam [ id ] = cs_get_user_team( id );
2592
2593 if( g_iSpawnCount[ id ] < 2 ) {
2594
2595 g_iSpawnCount[ id ]++;
2596
2597 GreenPrint ( id, "%s Este servidor utiliza !gHideNSeek + Niveles!y por !tChema!y.", g_sPlugin [ 3 ] );
2598 }
2599
2600 set_user_health ( id, 100 + g_level [ id ] );
2601
2602 set_task ( 0.1, "Task_GiveWeapons", id );
2603
2604 if ( g_iTimer < 1) {
2605
2606 Task_GiveGrenades ( id );
2607 }
2608
2609 set_task ( 1.0, "ChequearCarnage", id );
2610 }
2611}
2612public ChequearCarnage( id )
2613{
2614 if( !is_user_alive( id ) )
2615 return;
2616
2617 if(!g_Carnage)
2618 return;
2619
2620 set_hudmessage ( 0, 255, 0, -1.0, 0.12, 0, 6.0, 1.0);
2621 set_user_health ( id, 100 + g_level [ id ] );
2622 strip_user_weapons ( id );
2623 set_user_godmode ( id, 0);
2624
2625 give_item ( id, "weapon_knife" );
2626
2627 switch(g_EleccionCarnage)
2628 {
2629 case 0:
2630 {
2631 new CsTeams:Team
2632 Team = cs_get_user_team( id )
2633
2634 if(Team == CS_TEAM_T)
2635 {
2636 give_item( id, "weapon_ak47");
2637 cs_set_user_bpammo( id, CSW_AK47, 999)
2638 }
2639 else if(Team == CS_TEAM_CT)
2640 {
2641 give_item( id, "weapon_m4a1");
2642 cs_set_user_bpammo( id, CSW_M4A1, 999)
2643 }
2644
2645 give_item( id, "weapon_knife")
2646 ShowSyncHudMsg(0, CARNAGE_HUD, "MODO CARNAGE^n [ MIX ]")
2647 set_user_hitzones( id, 0, 255)
2648 }
2649 case 1:
2650 {
2651 give_item( id, "weapon_awp");
2652 cs_set_user_bpammo( id, CSW_AWP, 999)
2653 give_item( id, "weapon_knife")
2654 ShowSyncHudMsg(0, CARNAGE_HUD, "MODO CARNAGE^n [ AWP ]")
2655 set_user_hitzones( id, 0, 255)
2656 }
2657 case 2:
2658 {
2659 give_item( id, "weapon_m3");
2660 cs_set_user_bpammo( id, CSW_M3, 999)
2661 give_item( id, "weapon_knife")
2662 ShowSyncHudMsg(0, CARNAGE_HUD, "MODO CARNAGE^n [ ESCOPETA ]")
2663 set_user_hitzones( id, 0, 255)
2664 }
2665 case 3:
2666 {
2667 give_item( id, "weapon_deagle");
2668 cs_set_user_bpammo( id, CSW_DEAGLE, 999)
2669 ShowSyncHudMsg(0, CARNAGE_HUD, "MODO CARNAGE^n [ DEAGLE ONLY HEAD ]")
2670 set_user_hitzones( id, 0, 2)
2671 //client_cmd(0, "spk %s", szDeagle)
2672 }
2673 case 4:
2674 {
2675 give_item( id, "weapon_scout" );
2676 cs_set_user_bpammo( id, CSW_SCOUT, 999)
2677 ShowSyncHudMsg(0, CARNAGE_HUD, "MODO CARNAGE^n [ SCOUT ]")
2678 set_user_hitzones( id, 0, 255)
2679 }
2680 case 5:
2681 {
2682 give_item( id, "weapon_knife")
2683 ShowSyncHudMsg(0, CARNAGE_HUD, "MODO CARNAGE^n [ CUCHILLO ]")
2684 set_user_hitzones( id, 0, 255)
2685 }
2686 case 6:
2687 {
2688 give_item( id, "weapon_hegrenade" );
2689 cs_set_user_bpammo( id, CSW_HEGRENADE, 999 );
2690 ShowSyncHudMsg(0, CARNAGE_HUD, "MODO CARNAGE^n [ EXPLOSIVO ]")
2691 set_user_hitzones( id, 0, 255)
2692 }
2693 case 7:
2694 {
2695 give_item( id, "weapon_mp5navy");
2696 cs_set_user_bpammo( id, CSW_MP5NAVY, 999)
2697 ShowSyncHudMsg(0, CARNAGE_HUD, "MODO CARNAGE^n [ MP5 NAVY ]")
2698 set_user_hitzones( id, 0, 255)
2699 }
2700 case 8: {
2701
2702 new iId = random_tt ( );
2703
2704 new name[33]
2705 get_user_name(iId, name, 32);
2706
2707 if ( is_user_alive ( iId ) && cs_get_user_team ( iId ) == CS_TEAM_T ) {
2708
2709 GreenPrint ( iId, "%s Te ha tocado ser el mala leche. !g35 HP!y.", g_sPlugin [ 3 ] );
2710 GreenPrint ( 0, "%s Al jugador !g%s!y le ha tocado ser el !tMALA LECHE!y.", g_sPlugin [ 3 ], name );
2711 set_user_health ( iId, 35 )
2712 }
2713 }
2714
2715 }
2716}
2717
2718stock random_tt()
2719{
2720 new Players[32], Total;
2721 get_players(Players, Total, "a", "TERRORIST");
2722
2723 if(!Total) return 0;
2724
2725 return Players[random(Total)];
2726}
2727
2728stock random_ct()
2729{
2730 new Players[32], Total;
2731 get_players(Players, Total, "a", "TERRORIST");
2732
2733 if(!Total) return 0;
2734
2735 return Players[random(Total)];
2736}
2737
2738public FwdPlayerPreThink( id ) {
2739 if( g_bAlive[ id ] ) {
2740 static Float:flGametime; flGametime = get_gametime( );
2741
2742 if( g_flLastAimDetail[ id ] < flGametime ) {
2743 static iTgt, iBody;
2744 get_user_aiming( id, iTgt, iBody, 3500 );
2745
2746 if( is_user_alive( iTgt ) ) {
2747 static szMessage[ 256 ];
2748
2749 if( g_iTeam[ iTgt ] == g_iTeam[ id ] )
2750 formatex( szMessage, 255, "Compañero: %%p2 - Vida: %i%s", get_user_health( iTgt ), "%%" );
2751 else
2752 formatex( szMessage, 255, "Enemigo: %%p2" );
2753
2754 message_begin( MSG_ONE_UNRELIABLE, g_iMsgStatusValue, _, id );
2755 write_byte( 2 );
2756 write_short( iTgt );
2757 message_end( );
2758
2759 message_begin( MSG_ONE_UNRELIABLE, g_iMsgStatusText, _, id );
2760 write_byte( 0 );
2761 write_string( szMessage );
2762 message_end( );
2763
2764 g_bSawPlayer[ id ] = true;
2765 } else {
2766 if( g_bSawPlayer[ id ] ) {
2767 g_bSawPlayer[ id ] = false;
2768
2769 message_begin( MSG_ONE_UNRELIABLE, g_iMsgStatusText, _, id );
2770 write_byte( 0 );
2771 write_string( " " );
2772 message_end( );
2773 }
2774 }
2775
2776 g_flLastAimDetail[ id ] = flGametime + 0.2;
2777 }
2778 }
2779
2780 static i, iLastThink;
2781
2782 if( iLastThink > id ) {
2783 for( i = 1; i <= g_iMaxPlayers; i++ ) {
2784 if( !g_bAlive[ i ] ) {
2785 g_bSolid[ i ] = false;
2786
2787 continue;
2788 }
2789
2790 g_bSolid[ i ] = pev( i, pev_solid ) == SOLID_SLIDEBOX ? true : false;
2791 }
2792 }
2793
2794 iLastThink = id;
2795
2796 if( !g_bSolid[ id ] )
2797 return;
2798
2799 for( i = 1; i <= g_iMaxPlayers; i++ ) {
2800 if( !g_bSolid[ i ] || id == i )
2801 continue;
2802
2803 if( g_iTeam[ id ] == g_iTeam[ i ] ) {
2804 set_pev( i, pev_solid, SOLID_NOT );
2805 g_bRestore[ i ] = true;
2806 }
2807 }
2808}
2809
2810public FwdPlayerPostThink ( id ) {
2811
2812 static i, Float:flGravity;
2813
2814 for( i = 1; i <= g_iMaxPlayers; i++ ) {
2815 if( g_bRestore[ i ] ) {
2816 pev( i, pev_gravity, flGravity );
2817 set_pev( i, pev_solid, SOLID_SLIDEBOX );
2818 g_bRestore[ i ] = false;
2819
2820 if( flGravity != 1.0 )
2821 set_pev( i, pev_gravity, flGravity );
2822 }
2823 }
2824}
2825
2826public FwdHamKilled_Player ( id, iAttacker, iShouldGib ) {
2827
2828 g_bAlive [ id ] = bool:is_user_alive ( id );
2829 g_iTeam [ id ] = cs_get_user_team ( id );
2830 g_bRestore [ id ] = false;
2831
2832 set_pev ( id, pev_solid, SOLID_NOT );
2833}
2834
2835public check_level ( id ) {
2836
2837 if ( !is_user_connected ( id ) )
2838 return PLUGIN_HANDLED;
2839
2840 static iLevel;
2841
2842 iLevel = g_level [ id ];
2843
2844 while ( g_frags [ id ] >= next ( g_level [ id ] ) && g_level [ id ] < MAX_LEVEL ) {
2845
2846 g_frags [ id ] = 0;
2847 g_level [ id ]++;
2848 }
2849
2850 if ( iLevel < g_level [ id ] ) {
2851
2852 GreenPrint ( 0, "%s El jugador !g%s!y subió al nivel !g%d!y.", g_sPlugin [ 3], g_sName [ id ], g_level [ id ] );
2853 emit_sound ( id, CHAN_AUTO, g_sLevel, 1.0, ATTN_NORM, 0, PITCH_NORM );
2854 effect_level ( id );
2855 return PLUGIN_HANDLED;
2856 }
2857
2858 return PLUGIN_HANDLED;
2859}
2860
2861public fw_Item_Deploy_Post ( __weaponEnt ) {
2862
2863 if ( !pev_valid ( __weaponEnt ) )
2864 return;
2865
2866 static id;
2867 id = fm_get_weapon_ent_owner ( __weaponEnt );
2868
2869 if ( !pev_valid ( id ) )
2870 return;
2871
2872 if ( !is_user_admin ( id ) )
2873 return;
2874
2875 if ( cs_get_user_team ( id ) != CS_TEAM_CT )
2876 return;
2877
2878 set_pev ( id, pev_viewmodel2, g_sKnifeModel );
2879}
2880
2881public FwdHamSpawn_Grenade ( iEntity ) {
2882
2883 set_task ( 0.01, "SetTrail", iEntity );
2884}
2885
2886public SetTrail ( iEntity ) {
2887
2888 if ( !pev_valid ( iEntity ) )
2889 return PLUGIN_CONTINUE;
2890
2891 new szModel [ 32 ], iColor [ 3 ];
2892
2893 pev ( iEntity, pev_model, szModel, charsmax ( szModel ) );
2894
2895 switch ( szModel [ 9 ] ) {
2896
2897 case 'h': iColor [ 0 ] = 255;
2898 case 'f': iColor [ 2 ] = 255;
2899 case 's': iColor [ 1 ] = 255;
2900 }
2901
2902 message_begin ( MSG_BROADCAST, SVC_TEMPENTITY );
2903 write_byte ( TE_BEAMFOLLOW );
2904 write_short ( iEntity );
2905 write_short ( g_iSprs [ SMOKE ] );
2906 write_byte ( 10 );
2907 write_byte ( 10 );
2908 write_byte ( iColor [ 0 ] );
2909 write_byte ( iColor [ 1 ] );
2910 write_byte ( iColor [ 2 ] );
2911 write_byte ( 100 );
2912 message_end ( );
2913
2914 return PLUGIN_CONTINUE;
2915}
2916
2917public FwdHamSpawn_Weaponbox ( iEntity ) {
2918
2919 set_pev ( iEntity, pev_flags, FL_KILLME );
2920 dllfunc ( DLLFunc_Think, iEntity );
2921
2922 return HAM_IGNORED;
2923}
2924
2925public Task_TeamSwap ( ) {
2926
2927 new iPlayers [ 32 ], iNum, id;
2928 get_players ( iPlayers, iNum );
2929
2930 for ( new i = 0; i < iNum; i++ ) {
2931
2932 id = iPlayers [ i ];
2933
2934 g_iTeam [ id ] = cs_get_user_team ( id );
2935
2936 switch( g_iTeam [ id ] ) {
2937
2938 case CS_TEAM_T: cs_set_user_team ( id, CS_TEAM_CT );
2939 case CS_TEAM_CT: cs_set_user_team ( id, CS_TEAM_T );
2940 }
2941 }
2942}
2943
2944public Task_GiveWeapons ( id ) {
2945
2946 if ( !g_bAlive [ id ] )
2947 return;
2948
2949 strip_user_weapons ( id );
2950 give_item ( id, "weapon_knife" );
2951
2952 g_iTeam [ id ] = cs_get_user_team ( id );
2953
2954 switch( g_iTeam [ id ] ) {
2955
2956 case CS_TEAM_T: {
2957
2958 set_user_footsteps ( id, 1 );
2959 cs_set_user_armor ( id, 100, CS_ARMOR_KEVLAR );
2960
2961 if ( g_iTimer < 1 )
2962 Task_GiveGrenades ( id );
2963 }
2964 case CS_TEAM_CT: {
2965
2966 set_user_footsteps ( id, 0 );
2967
2968 if ( g_bStart && g_iTimer > 0 ) {
2969
2970 engfunc ( EngFunc_SetClientMaxspeed, id, 0.0000001 );
2971 set_pev ( id, pev_maxspeed, 0.0000001 );
2972 }
2973 }
2974 }
2975}
2976
2977public Task_GiveGrenades( id ) {
2978
2979 if ( !g_bAlive [ id ] )
2980 return;
2981
2982 if ( g_iTimer < 1 ) {
2983 if(g_Carnage){
2984 GreenPrint(id, "%s Ronda !gCARNAGE !yno tenés granadas", g_sPlugin[3]);
2985 return;
2986 }
2987
2988 give_item ( id, "weapon_smokegrenade" );
2989 give_item ( id, "weapon_flashbang" );
2990 cs_set_user_bpammo ( id, CSW_FLASHBANG, 2 );
2991 }
2992}
2993
2994
2995 //RECV HARDWARE ID
2996
2997public sxe_events( )
2998{
2999 static iEvent, iId, iArg[ 6 ];
3000
3001 read_argv( 1, iArg, charsmax( iArg ) );
3002 iEvent = str_to_num( iArg );
3003
3004 read_argv( 2, iArg, charsmax( iArg ) );
3005 iId = str_to_num( iArg );
3006
3007 for( new i = 1; i <= g_iMaxPlayers; i++ )
3008 {
3009 if( is_user_connected( i ) && get_user_userid( i ) == iId )
3010 {
3011 iId = i;
3012 break;
3013 }
3014 }
3015
3016 if( !iId ) return;
3017
3018 if( iEvent == 4 )
3019 {
3020 read_argv( 5, g_szPlayerHid[iId], charsmax( g_szPlayerHid[] ) );
3021
3022 fw_recv_hid( iId, g_szPlayerHid[iId] );
3023 server_print("HWID: %s", g_szPlayerHid[iId]);
3024
3025 }
3026
3027
3028}
3029
3030public fw_recv_hid(id, const hid[]){
3031 if(is_user_connected(id)){
3032 if(strlen(hid) > 15){
3033 static target_hwid[33];
3034 format(target_hwid, sizeof(target_hwid), "%s", hid);
3035 }
3036 }
3037}
3038
3039
3040public client_putinserver ( id ) {
3041
3042 show_login_menu ( id );
3043
3044 g_iSpawnCount[ id ] = 0;
3045 g_bSawPlayer[ id ] = false;
3046
3047 get_user_name ( id, g_sName [ id ], charsmax ( g_sName [ ] ) );
3048
3049 g_level [ id ] = 1;
3050 g_frags [ id ] = 0;
3051 g_reset [ id ] = 0;
3052 g_puntos [ id ] = 0;
3053 g_oros [ id ] = 0;
3054
3055 g_iColor[id][E_HUD_COLOR] = { 255, 255, 255 };
3056 g_iHUDEffect[id] = 0;
3057 g_iHUDPosition[id][0] = 0.02;
3058 g_iHUDPosition[id][1] = 0.1;
3059
3060 g_iHud[ id ] = true;
3061
3062
3063
3064 new iSteamID [ 33 ];
3065 get_user_authid ( id, iSteamID, sizeof ( iSteamID ) );
3066
3067 if(strlen(g_sName[id]) <= 3){
3068 server_cmd("kick #%d ^"Tu nombre tiene 3 caracteres o menos.^"", get_user_userid(id));
3069 }
3070
3071 /*
3072 fw_recv_hid(id, g_szPlayerHid[id]);
3073
3074 if(strlen(g_szPlayerHid[id])){
3075 console_print(id, "HWID XD: %s", g_szPlayerHid[id]);
3076 }else{
3077 server_cmd("kick #%d ^"No tienes el sXe-Injected, porfavor descargatelo! foro.breakingaming.com^"", get_user_userid(id));
3078 }
3079 */
3080
3081
3082 new bool:bChema = false;
3083
3084 if(TrieKeyExists(g_tPremium, g_sName[id])){
3085 new test_rom;
3086 TrieGetCell(g_tPremium, g_sName[id], g_premium[id]);
3087
3088 g_premium[id] |= test_rom;
3089 }
3090 else
3091 g_premium[id] = 1;
3092
3093 /*
3094 if ( equal ( iSteamID, "STEAM_0:1:187014561" ) ) {
3095
3096 bChema = true;
3097 }
3098
3099 if ( bChema ) {
3100
3101 g_premium [ id ] = 6;
3102 }
3103 else {
3104
3105 g_premium [ id ] = ( is_user_admin ( id ) ? 2 : 1 );
3106 }
3107 */
3108
3109 g_lasers [ id ] = ( is_user_admin ( id ) ? 4 : 3 );
3110
3111 set_task ( 1.0, "show_hud", id + TASK_PLAYERHUD, _, _, "b" );
3112}
3113
3114public client_disconnect ( id ) {
3115
3116 if ( g_status [ id ] == LOGUEADO ) {
3117
3118 guardar_datos( id );
3119
3120 g_status [ id ] = OFFLINE;
3121 }
3122
3123 g_bAlive [ id ] = false;
3124
3125 remove_task ( id + TASK_PLAYERHUD )
3126}
3127
3128public CmdJoinTeam ( id ) {
3129
3130 if ( 0 < get_user_team ( id ) < 3 )
3131 return PLUGIN_HANDLED;
3132
3133 return PLUGIN_CONTINUE;
3134}
3135
3136public FwdThinkTimer ( ent ) {
3137
3138 if ( !CheckPlayers ( 1 ) )
3139 g_iTimer = 0;
3140
3141 if ( g_iTimer ) {
3142
3143 for ( new id = 1; id <= g_iMaxPlayers; id++ ) {
3144
3145 if ( g_bAlive [ id ] && g_iTeam [ id ] == CS_TEAM_CT ) {
3146
3147 engfunc ( EngFunc_SetClientMaxspeed, id, 0.0000001 );
3148 set_pev ( id, pev_maxspeed, 0.0000001 );
3149
3150 MakeScreenFade( id, 1 );
3151 }
3152 }
3153
3154 set_hudmessage ( 0, 100, 255, -1.0, -1.0, 0, 0.0, 1.1, 0.0, 0.0, 1 );
3155 show_hudmessage ( 0, "[%i]^nwww.littlegamers.net", g_iTimer );
3156
3157 new szSeconds [ 10 ];
3158 num_to_word ( g_iTimer, szSeconds, 9 );
3159
3160 client_cmd ( 0, "spk fvox/%s.wav", szSeconds );
3161
3162 set_pev ( ent, pev_nextthink, get_gametime ( ) + 1.0 );
3163
3164 g_iTimer--;
3165 }
3166 else {
3167
3168 for ( new id = 1; id <= g_iMaxPlayers; id++ ) {
3169
3170 if ( !g_bAlive [ id ] )
3171 continue;
3172
3173 switch ( g_iTeam [ id ] ) {
3174
3175 case CS_TEAM_T: {
3176
3177 Task_GiveGrenades( id );
3178 }
3179
3180 case CS_TEAM_CT: {
3181
3182 engfunc( EngFunc_SetClientMaxspeed, id, 250.0 );
3183 set_pev( id, pev_maxspeed, 250.0 );
3184
3185 MakeScreenFade( id );
3186 }
3187 }
3188 }
3189
3190 set_hudmessage ( 0, 100, 255, -1.0, -1.0, 0, 0.0, 2.0, 0.0, 0.4, 1 );
3191 show_hudmessage ( 0, "Salieron los CT's." );
3192 }
3193}
3194
3195public show_hud ( taskid ) {
3196
3197 static id;
3198
3199 id = ID_HUDPLAYER
3200
3201 if ( !is_user_alive ( id ) ) {
3202
3203 id = pev ( id, PEV_SPEC_TARGET );
3204
3205 if ( !is_user_alive ( id ) )
3206 return;
3207 }
3208
3209 if ( id != ID_HUDPLAYER ) {
3210
3211 set_hudmessage(g_iColor[ID_HUDPLAYER][E_HUD_COLOR][0], g_iColor[ID_HUDPLAYER][E_HUD_COLOR][1], g_iColor[ID_HUDPLAYER][E_HUD_COLOR][2], 0.03, 0.15, 0, 0.0, 2.0, 0.0, 0.4, 1);
3212 if(g_Carnage)
3213 ShowSyncHudMsg ( ID_HUDPLAYER, g_huds [ PLAYER_HUD ], "Jugador: [ %s ]^n^n^nNivel: [ %d/%d ]^nReset: [ %d ]^nFrags: [ %d ]^nRestante: [ %d ]^n^nPuntos: [ %d ]^nOros: [ %d ]^nVida: [ %d ]^nCarnage [ ON ]^n", g_sName [ id ], g_level [ id ], MAX_LEVEL, g_reset [ id ], g_frags [ id ], next ( g_level [ id ] ) - g_frags [ id ], g_puntos [ id ], g_oros [ id ], get_user_health ( id ));
3214 else
3215 ShowSyncHudMsg ( ID_HUDPLAYER, g_huds [ PLAYER_HUD ], "Jugador: [ %s ]^n^n^nNivel: [ %d/%d ]^nReset: [ %d ]^nFrags: [ %d ]^nRestante: [ %d ]^n^nPuntos: [ %d ]^nOros: [ %d ]^nVida: [ %d ]^nCarnage [ OFF ]^n", g_sName [ id ], g_level [ id ], MAX_LEVEL, g_reset [ id ], g_frags [ id ], next ( g_level [ id ] ) - g_frags [ id ], g_puntos [ id ], g_oros [ id ], get_user_health ( id ));
3216
3217 }
3218 else if(g_iHud[id]){
3219
3220 set_hudmessage( g_iColor[id][E_HUD_COLOR][0], g_iColor[id][E_HUD_COLOR][1], g_iColor[id][E_HUD_COLOR][2], g_iHUDPosition[id][0], g_iHUDPosition[id][1], g_iHUDEffect[id], 6.0, 1.1, 0.0, 0.0, -1 );
3221 if(g_Carnage)
3222 ShowSyncHudMsg ( id, g_huds [ PLAYER_HUD ], "Nivel: [ %d/%d ]^nReset: [ %d ]^nFrags: [ %d ]^nRestante: [ %d ]^n^nPuntos: [ %d ]^nOros: [ %d ]^nVida: [ %d ]^nCarnage [ ON ]^n", g_level [ id ], MAX_LEVEL, g_reset [ id ], g_frags [ id ], next ( g_level [ id ] ) - g_frags [ id ], g_puntos [ id ], g_oros [ id ], get_user_health ( id ) );
3223 else
3224 ShowSyncHudMsg ( id, g_huds [ PLAYER_HUD ], "Nivel: [ %d/%d ]^nReset: [ %d ]^nFrags: [ %d ]^nRestante: [ %d ]^n^nPuntos: [ %d ]^nOros: [ %d ]^nVida: [ %d ]^nCarnage [ OFF ]^n", g_level [ id ], MAX_LEVEL, g_reset [ id ], g_frags [ id ], next ( g_level [ id ] ) - g_frags [ id ], g_puntos [ id ], g_oros [ id ], get_user_health ( id ) );
3225 }
3226}
3227
3228public clcmd_say ( id ) {
3229
3230 static said [ 191 ];
3231
3232 read_args ( said, charsmax ( said ) );
3233 remove_quotes ( said );
3234
3235 replace_all ( said, charsmax ( said ), "%", " " );
3236
3237 if ( !ValidMessage ( said, 1 ) )
3238 return PLUGIN_CONTINUE;
3239
3240 new CsTeams:iTeam;
3241
3242 iTeam = cs_get_user_team ( id );
3243
3244 switch ( iTeam ) {
3245
3246 case CS_TEAM_UNASSIGNED: return PLUGIN_HANDLED;
3247 case CS_TEAM_SPECTATOR: return PLUGIN_HANDLED;
3248 }
3249
3250 static color [ 11 ], prefix [ 91 ];
3251
3252 get_user_team ( id, color, charsmax ( color ) );
3253
3254 formatex ( prefix, charsmax ( prefix ), "%s%s^3(%d)^x04[%d]^x03 %s", is_user_alive ( id ) ? "^x01" : "^x01*MUERTO* ", is_user_premium(id) ? "^x04[PREMIUM]^x01" : "", g_premium[id], g_level [ id ], g_sName [ id ] );
3255
3256
3257 if ( is_user_admin ( id ) )
3258 format ( said, charsmax ( said ), "^x04%s", said );
3259
3260 format ( said, charsmax ( said ), "%s^x01: %s", prefix, said );
3261
3262 static i, team [ 11 ];
3263
3264 for ( i = 1; i <= g_maxplayers; i++ ) {
3265
3266 if ( !is_user_connected ( i ) )
3267 continue;
3268
3269
3270 if ( is_user_admin ( i ) || is_user_alive ( id ) && is_user_alive ( i ) || !is_user_alive ( id ) && !is_user_alive ( i ) ) {
3271
3272 get_user_team ( i, team, charsmax ( team ) );
3273
3274 changeTeamInfo ( i, color );
3275
3276 writeMessage ( i, said );
3277
3278 changeTeamInfo ( i, team );
3279 }
3280 }
3281
3282 return PLUGIN_HANDLED_MAIN;
3283}
3284
3285
3286public clcmd_team_say ( id ) {
3287
3288 static said [ 191 ];
3289
3290 read_args ( said, charsmax ( said ) );
3291 remove_quotes ( said );
3292 replace_all ( said, charsmax ( said ), "%", " ");
3293
3294
3295 if ( !ValidMessage ( said, 1 ) )
3296 return PLUGIN_CONTINUE;
3297
3298
3299 static playerTeam, playerTeamName [ 19 ];
3300 playerTeam = get_user_team ( id );
3301
3302 switch ( playerTeam ) {
3303
3304 case 1: copy ( playerTeamName, 8, "(Hiders)" ) // T
3305 case 2: copy ( playerTeamName, 9, "(Seekers)" ) // CT
3306 default: copy ( playerTeamName, 12, "(Espectador)" ) // distinto de 1 y 2
3307 }
3308
3309 static color [ 11 ], prefix [ 111 ];
3310
3311 get_user_team ( id, color, charsmax ( color ) );
3312
3313
3314 formatex ( prefix, charsmax ( prefix ), "%s%s^x03 %s", is_user_alive ( id ) ? "^x01" : "^x01*MUERTO* ", playerTeamName, g_sName [ id ] );
3315
3316
3317 if ( is_user_admin ( id ) )
3318 format ( said, charsmax ( said ), "^x04%s", said );
3319
3320 format ( said, charsmax ( said ), "%s^x01: %s", prefix, said );
3321
3322 static i, team[ 11 ];
3323
3324 for ( i = 1; i <= g_maxplayers; i++) {
3325
3326
3327 if ( !is_user_connected ( i ) )
3328 continue;
3329
3330
3331 if ( get_user_team ( i ) == playerTeam ) {
3332
3333
3334 if ( is_user_alive ( id ) && is_user_alive ( i ) || !is_user_alive ( id ) && !is_user_alive ( i ) ) {
3335
3336
3337 get_user_team ( i, team, charsmax ( team ) );
3338
3339 changeTeamInfo ( i, color );
3340
3341 writeMessage ( i, said );
3342
3343 changeTeamInfo ( i, team );
3344 }
3345 }
3346 }
3347
3348 return PLUGIN_HANDLED_MAIN;
3349}
3350
3351public changeTeamInfo ( iPlayer, sTeam [ ] ) {
3352
3353 message_begin ( MSG_ONE, get_user_msgid ( "TeamInfo" ), _, iPlayer );
3354 write_byte ( iPlayer );
3355 write_string ( sTeam );
3356 message_end ( );
3357}
3358
3359
3360public writeMessage ( iPlayer, sMessage [ ] ) {
3361
3362 message_begin ( MSG_ONE, get_user_msgid ( "SayText" ), { 0, 0, 0 }, iPlayer );
3363 write_byte ( iPlayer );
3364 write_string ( sMessage );
3365 message_end ( );
3366}
3367
3368/* *** MENUS *** */
3369public m_Carnage( id )
3370{
3371 if(!(get_user_flags(id) & ADMIN_IMMUNITY)){
3372 return PLUGIN_HANDLED;
3373 }
3374
3375 if(g_Carnage)
3376 {
3377 GreenPrint( id, "%s Ya estás en modo carnage.", g_sPlugin [ 3 ] )
3378 return PLUGIN_HANDLED
3379 }
3380
3381 new gMenu;
3382 gMenu = menu_create("\r[BREAKING GAMING]\y Elige el modo carnage", "h_Carnage")
3383
3384 menu_additem(gMenu, "\y-\w MIX")
3385 menu_additem(gMenu, "\y-\w AWP")
3386 menu_additem(gMenu, "\y-\w ESCOPETA")
3387 menu_additem(gMenu, "\y-\w DEAGLE ONLY HEAD")
3388 menu_additem(gMenu, "\y-\w SCOUT")
3389 menu_additem(gMenu, "\y-\w CUCHILLO")
3390 menu_additem(gMenu, "\y-\w EXPLOSIVO")
3391 menu_additem(gMenu, "\y-\w MP5 Navy")
3392 menu_additem(gMenu, "\y-\w MALA LECHE")
3393
3394 menu_setprop(gMenu, MPROP_NUMBER_COLOR, "\y")
3395
3396 menu_setprop(gMenu, MPROP_BACKNAME, "Atras")
3397 menu_setprop(gMenu, MPROP_NEXTNAME, "Siguiente")
3398 menu_setprop(gMenu, MPROP_EXITNAME, "Salir")
3399 menu_display( id, gMenu)
3400 return PLUGIN_HANDLED
3401}
3402
3403public h_Carnage( id, gMenu, item)
3404{
3405 if(item == MENU_EXIT || g_Carnage)
3406 {
3407 menu_destroy(gMenu)
3408
3409 return PLUGIN_HANDLED
3410 }
3411
3412 get_user_name( id, g_sName [ id ], charsmax(g_sName[ ] ) )
3413
3414 g_Carnage = 1
3415 g_RondasCarnage = 0
3416
3417 g_iTimer = 0;
3418
3419 g_bStart = false;
3420 set_cvar_num("hns_carnage", 1);
3421 set_cvar_num("amx_ltm",0)
3422
3423 for(new id2 = 1; id2 <= g_maxplayers; id2++)
3424 {
3425 if ( !is_user_alive ( id2 ) )
3426 continue
3427
3428 set_hudmessage ( 0, 50, 250, -1.0, 0.12, 0, 6.0, 12.0)
3429 set_user_health ( id2, 100 + g_level [ id2 ] )
3430 strip_user_weapons( id2)
3431 set_user_godmode( id2, 0)
3432
3433 give_item( id2, "weapon_knife" );
3434
3435 switch(item)
3436 {
3437
3438 case 0:
3439 {
3440 new CsTeams:Team
3441 Team = cs_get_user_team( id2)
3442
3443 if(Team == CS_TEAM_T)
3444 {
3445 give_item( id2, "weapon_ak47");
3446 cs_set_user_bpammo( id2, CSW_AK47, 500)
3447 }
3448 else if(Team == CS_TEAM_CT)
3449 {
3450 give_item( id2, "weapon_m4a1");
3451 cs_set_user_bpammo( id2, CSW_M4A1, 500)
3452 }
3453
3454 give_item( id2, "weapon_knife")
3455 show_hudmessage( id2, "MODO CARNAGE^n [ MIX ]")
3456 set_user_hitzones( id2, 0, 255)
3457 }
3458 case 1:
3459 {
3460 give_item( id2, "weapon_awp");
3461 cs_set_user_bpammo( id2, CSW_AWP, 500)
3462 give_item( id2, "weapon_knife")
3463 show_hudmessage( id2, "MODO CARNAGE^n [ AWP ]")
3464 set_user_hitzones( id2, 0, 255)
3465 }
3466 case 2:
3467 {
3468 give_item( id2, "weapon_m3");
3469 cs_set_user_bpammo( id2, CSW_M3, 500)
3470 give_item( id2, "weapon_knife")
3471 show_hudmessage( id2, "MODO CARNAGE^n [ ESCOPETA ]")
3472 set_user_hitzones( id2, 0, 255)
3473 }
3474 case 3:
3475 {
3476 give_item( id2, "weapon_deagle");
3477 cs_set_user_bpammo( id2, CSW_DEAGLE, 500)
3478 show_hudmessage( id2, "MODO CARNAGE^n [ DEAGLE ONLY HEAD ]")
3479 set_user_hitzones( id2, 0, 2)
3480 //client_cmd(0, "spk %s", szDeagle)
3481 }
3482 case 4:
3483 {
3484 give_item( id2, "weapon_scout");
3485 cs_set_user_bpammo( id2, CSW_SCOUT, 500)
3486 show_hudmessage( id2, "MODO CARNAGE^n [ SCOUT ]")
3487 set_user_hitzones( id2, 0, 255)
3488 }
3489 case 5:
3490 {
3491 give_item( id2, "weapon_knife")
3492 show_hudmessage( id2, "MODO CARNAGE^n [ CUCHILLO ]")
3493 set_user_hitzones( id2, 0, 255)
3494 }
3495 case 6:
3496 {
3497 give_item( id2, "weapon_hegrenade" );
3498 cs_set_user_bpammo( id2, CSW_HEGRENADE, 500 );
3499 show_hudmessage( id2, "MODO CARNAGE^n [ EXPLOSIVO ]")
3500 set_user_hitzones( id2, 0, 255)
3501 }
3502 case 7:
3503 {
3504 give_item( id2, "weapon_mp5navy");
3505 cs_set_user_bpammo( id2, CSW_MP5NAVY, 500)
3506 show_hudmessage( id2, "MODO CARNAGE^n [ MP5 NAVY ]")
3507 set_user_hitzones( id2, 0, 255)
3508 }
3509 case 8: {
3510
3511 show_hudmessage ( id2, "MODO CARNAGE^n [ MALA LECHE ]")
3512
3513 new iId = random_tt ( );
3514
3515 new name[33]
3516 get_user_name(iId, name, 32);
3517
3518 if ( is_user_alive ( iId ) && cs_get_user_team ( iId ) == CS_TEAM_T ) {
3519
3520 GreenPrint ( iId, "%s Te ha tocado ser el mala leche. !g35 HP!y.", g_sPlugin [ 3 ] );
3521 GreenPrint ( 0, "%s Al jugador !g%s!y le ha tocado ser el !tMALA LECHE!y.", g_sPlugin [ 3 ], name );
3522 set_user_health ( iId, 35 )
3523 }
3524 }
3525 }
3526 }
3527
3528 GreenPrint ( 0, "%s ADMIN !g%s!y lanzó el modo carnage !g%s!y.", g_sPlugin [ 3 ], g_sName [ id ], !item ? "MIX" : item == 1 ? "AWP" : item == 2 ? "ESCOPETA" : item == 3 ? "DEAGLE ONLY HEAD" : item == 4 ? "SCOUT" : item == 5 ? "CUCHILLO" : item == 6 ? "EXPLOSIVO" : item == 7 ? "MP5 NAVY" : item == 8 ? "MALA LECHE" : "");
3529 log_to_file ( "CARNAGE_MODES.txt", "ADMIN: %s - CARNAGE: %s - MAPA: %s", g_sName [ id ], !item ? "MIX" : item == 1 ? "AWP" : item == 2 ? "ESCOPETA" : item == 3 ? "DEAGLE ONLY HEAD" : item == 4 ? "SCOUT" : item == 5 ? "CUCHILLO" : item == 6 ? "EXPLOSIVO" : item == 7 ? "MP5 NAVY" : item == 8 ? "MALA LECHE" : "", g_szMap );
3530
3531 g_EleccionCarnage = item;
3532
3533 return PLUGIN_HANDLED
3534}
3535public Touching( id )
3536{
3537 new iOrigin[ 3 ]; get_user_origin( id, iOrigin, 0 );
3538
3539 message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
3540 write_byte( TE_SPRITETRAIL );
3541 write_coord( iOrigin[ 0 ] );
3542 write_coord( iOrigin[ 1 ] );
3543 write_coord( iOrigin[ 2 ] );
3544 write_coord( iOrigin[ 0 ] );
3545 write_coord( iOrigin[ 1 ] );
3546 write_coord( iOrigin[ 2 ] );
3547 write_short( g_iSprs [ SUMINISTRO ] )
3548 write_byte( 5 )
3549 write_byte( 1 )
3550 write_byte( 3 )
3551 write_byte( 34 )
3552 write_byte( 43 )
3553 message_end( )
3554
3555 ScreenFade( id );
3556 remove_task( id );
3557
3558 emit_sound( id, CHAN_AUTO, g_sSuministroPickup, 1.0, ATTN_NORM, 0, PITCH_NORM );
3559 GreenPrint ( 0, "%s El jugador !g%s!y ganó !g1 ORO!y en un suministro", g_sPlugin [ 3 ], g_sName [ id ] );
3560 g_suministros[ id ]++;
3561 g_oros [ id ]++;
3562}
3563
3564public ColorEntidad( iOrigin[ 3 ], id )
3565{
3566 message_begin( MSG_ONE_UNRELIABLE, SVC_TEMPENTITY, _, id );
3567 write_byte( TE_DLIGHT );
3568 write_coord( iOrigin[ 0 ] );
3569 write_coord( iOrigin[ 1 ] );
3570 write_coord( iOrigin[ 2 ] );
3571 write_byte( 10 );
3572 write_byte( 0 );
3573 write_byte( 0 );
3574 write_byte( 255 );
3575 write_byte( 10 );
3576 write_byte( 0 );
3577 message_end( );
3578}
3579
3580public TouchEntidad( Supplybox, id )
3581{
3582 if ( !is_valid_ent( Supplybox ) || !is_user_alive( id ) ) return PLUGIN_HANDLED;
3583
3584 remove_entity( Supplybox );
3585
3586 Touching( id );
3587
3588 return PLUGIN_HANDLED;
3589}
3590
3591public CrearEntidad( id )
3592{
3593 new Entity, iOrigin[ 3 ], Float: fOrigin[ 3 ];
3594
3595 new Float: gMins[ 3 ] = { -5.0, -5.0, 0.0 };
3596 new Float: gMaxs[ 3 ] = { 5.0, 5.0, 10.0 };
3597
3598 Entity = create_entity( "info_target" );
3599 get_user_origin( id, iOrigin, 0 );
3600 IVecFVec( iOrigin, fOrigin );
3601
3602 entity_set_string( Entity, EV_SZ_classname, g_sClassname );
3603 entity_set_int( Entity, EV_INT_solid, SOLID_BBOX);
3604 entity_set_int( Entity, EV_INT_movetype, MOVETYPE_FLY );
3605 entity_set_size( Entity, gMins, gMaxs );
3606 entity_set_model( Entity, g_sSuministro );
3607 entity_set_vector( Entity, EV_VEC_origin, fOrigin );
3608
3609 set_task( 1.0, "ColorEntidad", id, iOrigin, 3, "b" );
3610}
3611
3612
3613public Show_Rank_Level(id)
3614{
3615 if (!is_user_connected(id))
3616 return PLUGIN_HANDLED;
3617
3618 if (iTopLevelClear)
3619 return PLUGIN_HANDLED;
3620
3621 Load_Level_Rank(id);
3622 return PLUGIN_HANDLED;
3623}
3624
3625
3626public Load_Level_Rank(id){
3627
3628 new szQuery[256];
3629 formatex(szQuery, sizeof(szQuery), "SELECT * FROM bg_hns ORDER BY reset DESC, level DESC, frags DESC, puntos DESC, oros DESC LIMIT 10;");
3630
3631 new iData[1];
3632 iData[0] = id;
3633
3634 mysql_query(g_hConnection, "HandlerLevelRank", szQuery, iData, sizeof(iData));
3635}
3636
3637public HandlerLevelRank( failstate, error[ ], error2, data[ ], datasize, Float:time ) {
3638 static id;
3639 id = data[ 0 ];
3640
3641
3642 if(failstate >= TQUERY_SUCCESS){
3643 //if(data[1]){
3644 {
3645 if(mysql_num_results()){
3646
3647 iTopLevelClear = 0
3648
3649 new iPosition = 0, szName[32], szLevel, szFrags, szOros, szReset, szPuntos, len = 0, szBuffer[1024];
3650
3651 len = format(szBuffer[len], charsmax(szBuffer) - len, "<STYLE>body{background:#232323;color:#cfcbc2;font-family:sans-serif}table{width:100%%;line-height:160%%;font-size:12px}.q{border:1px solid #4a4945}.b{background:#2a2a2a}</STYLE><table cellpadding=2 cellspacing=0 border=0>")
3652 len += format(szBuffer[len], charsmax(szBuffer) - len, "<tr align=center bgcolor=#52697B><th width=5%%> # <th width=22%% align=left> NOMBRE <th width=10%%> NIVEL <th width=13%%> FRAGS <th width=13%%> RESET <th width=13%%> PUNTOS <th width=13%%> OROS")
3653
3654 while(mysql_more_results()) {
3655
3656 ++iPosition;
3657
3658 mysql_read_result(3, szName, charsmax(szName));
3659
3660
3661 szLevel = mysql_read_result (4 );
3662 szFrags = mysql_read_result ( 5 );
3663 szReset = mysql_read_result ( 6 );
3664 szPuntos = mysql_read_result (7 );
3665 szOros = mysql_read_result ( 8 );
3666
3667
3668
3669 len += format(szBuffer[len], charsmax(szBuffer) - len, "<tr align=center%s><td> %d <td align=left> %s <td> %d <td> %d <td> %d <td> %d <td> %d ", ((iPosition%2)==0) ? "" : " bgcolor=#2f3030", iPosition, szName, szLevel, szFrags, szReset, szPuntos, szOros );
3670
3671 mysql_next_row();
3672 }
3673 show_motd(id, szBuffer, "Top 10 Niveles");
3674 }
3675 else{
3676 iTopLevelClear = 1;
3677 }
3678 }
3679 }
3680}
3681
3682
3683#if defined MYSQL
3684public MySQLx_Init( )
3685{
3686 /*g_hTuple = mysql_makehost( g_sDatos [ 0 ], g_sDatos [ 1 ], g_sDatos [ 2 ], g_sDatos [ 3 ] );
3687
3688 if( !g_hTuple )
3689 {
3690 log_to_file( "SQL_ERROR.txt", "No se pudo hostear con la base de datos. g_hTuple" );
3691 return pause( "a" );
3692 }
3693
3694 new sErrors[512];
3695 new iErrorNum;
3696
3697 g_hConnection = mysql_connect(g_hTuple, iErrorNum, sErrors, 511);
3698
3699 if( !g_hConnection )
3700 {
3701 log_to_file( "SQL_ERROR.txt", "No se pudo conectar con la base de datos. g_hConnection" );
3702 return pause( "a" );
3703 }
3704
3705 mysql_performance(15, 15, 1);
3706
3707 return PLUGIN_CONTINUE;*/
3708
3709 g_hTuple = mysql_makehost( g_sDatos [ 0 ], g_sDatos [ 1 ], g_sDatos [ 2 ], g_sDatos [ 3 ] )
3710
3711 new errnum, error[33];
3712
3713 if(errnum){
3714 log_to_file("MySQLt_HNS_Init.log", "ERROR1: [%d][%s]", errnum, error);
3715 return pause("a");
3716 }
3717
3718 g_hConnection = mysql_connect(g_hTuple, errnum, error, 32);
3719
3720
3721 return PLUGIN_CONTINUE;
3722}
3723#else
3724
3725public MySQLx_Init( )
3726{
3727 new get_type[ 12 ];
3728 SQL_SetAffinity( "sqlite" );
3729 SQL_GetAffinity( get_type, sizeof get_type );
3730
3731 if( !equali( get_type, "sqlite" ) )
3732 {
3733 log_to_file( "SQLITE_ERROR.txt", "Error de conexion" );
3734 return pause( "a" );
3735 }
3736
3737 new sErrors[512];
3738 new iErrorNum;
3739
3740 g_hTuple = SQL_MakeDbTuple( "", "", "", SQLITE_DATEBASE );
3741 g_hConnection = SQL_Connect(g_hTuple, iErrorNum, sErrors, 511);
3742
3743 return PLUGIN_CONTINUE
3744}
3745#endif
3746
3747/*#if defined MYSQL
3748public MySQLx_Init ( ) {
3749
3750 g_hTuple = SQL_MakeDbTuple( g_sDatos [ 0 ], g_sDatos [ 1 ], g_sDatos [ 2 ], g_sDatos [ 3 ] );
3751
3752 if ( !g_hTuple ) {
3753
3754 log_to_file ( "SQL_ERROR.txt", "No se pudo conectar con la base de datos." );
3755 return pause ( "a" );
3756 }
3757
3758 return PLUGIN_CONTINUE;
3759}
3760#else
3761
3762public MySQLx_Init ( ) {
3763
3764 new get_type [ 12 ];
3765
3766 SQL_SetAffinity ( "sqlite" );
3767
3768 SQL_GetAffinity ( get_type, sizeof get_type );
3769
3770 if ( !equali ( get_type, "sqlite" ) ) {
3771
3772 log_to_file ( "SQLITE_ERROR.txt", "Error de conexion" );
3773 return pause ( "a" );
3774 }
3775
3776 g_hTuple = SQL_MakeDbTuple ( "", "", "", SQLITE_DATEBASE );
3777
3778 return PLUGIN_CONTINUE
3779}
3780#endif*/
3781
3782public plugin_end ( ){
3783 mysql_free ( g_hTuple );
3784}
3785
3786stock ValidMessage ( sText [ ], maxcount ) {
3787
3788 static len, i, count;
3789
3790 len = strlen ( sText );
3791 count = 0;
3792
3793 if ( !len )
3794 return false;
3795
3796 for ( i = 0; i < len; i++ ) {
3797
3798 if ( sText [ i ] != ' ') {
3799
3800 count++;
3801
3802 if ( count >= maxcount )
3803 return true;
3804 }
3805 }
3806
3807 return false;
3808}
3809
3810MakeScreenFade ( id, fade = 0 ) {
3811
3812 message_begin ( MSG_ONE, g_iMsgScreenFade, _, id );
3813 write_short ( 8192 * fade );
3814 write_short ( 8192 * fade );
3815 write_short ( 0x0000 );
3816 write_byte ( 0 );
3817 write_byte ( 0 );
3818 write_byte ( 0 );
3819 write_byte ( 150 );
3820 message_end ( );
3821}
3822
3823public RemoverGodmode ( iIndex ) {
3824 set_user_godmode ( iIndex, 0 );
3825 GreenPrint ( iIndex, "%s El Modo Dios se te termino", g_sDatos[3] );
3826
3827}
3828
3829public RemoverNoclip ( iIndex ) {
3830 set_user_noclip ( iIndex, 0 );
3831 GreenPrint ( iIndex, "%s El Noclip se te termino", g_sDatos[3] );
3832
3833}
3834
3835public RemoverCamuflaje(id){
3836 cs_reset_user_model(id);
3837 GreenPrint(id, "%s El camuflaje se te termino", g_sDatos[3]);
3838}
3839
3840public RemoverVelocidad(id){
3841 set_user_maxspeed(id, 250.0);
3842 GreenPrint(id, "%s La velocidad se te termino", g_sDatos[3]);
3843}
3844
3845
3846ScreenFade ( id ) {
3847
3848 message_begin ( MSG_ONE, get_user_msgid ( "ScreenFade" ), { 0, 0, 0 }, id );
3849 write_short ( 1 << 12 );
3850 write_short ( 1 << 12 );
3851 write_short ( 1 << 12 );
3852 write_byte ( 0 );
3853 write_byte ( random_num ( 1, 255 ) );
3854 write_byte ( random_num ( 1, 255 ) );
3855 write_byte ( random_num ( 1, 255 ) );
3856 message_end ( );
3857}
3858
3859bool:CheckPlayers ( iStatus ) {
3860
3861 new iPlayers [ 32 ], iNum, id, iTerrs, iCTs;
3862
3863 if ( iStatus )
3864 get_players ( iPlayers, iNum, "a" );
3865 else
3866 get_players ( iPlayers, iNum );
3867
3868 for ( new i = 0; i < iNum; i++ ) {
3869
3870 id = iPlayers [ i ];
3871
3872 g_iTeam [ id ] = cs_get_user_team ( id );
3873
3874 switch ( g_iTeam [ id ] ) {
3875
3876 case CS_TEAM_T: iTerrs++;
3877 case CS_TEAM_CT: iCTs++;
3878 }
3879
3880 if( iTerrs && iCTs )
3881 return true;
3882 }
3883
3884 return false;
3885}
3886
3887public effect_level ( id ) {
3888
3889 if ( !is_user_alive ( id ) )
3890 return PLUGIN_HANDLED;
3891
3892 new iOrigin [ 3 ], Float: OriginF [ 3 ];
3893 pev ( id, pev_origin, OriginF );
3894
3895 iOrigin [ 0 ] = floatround ( OriginF [ 0 ] );
3896 iOrigin [ 1 ] = floatround ( OriginF [ 1 ] );
3897 iOrigin [ 2 ] = floatround ( OriginF [ 2 ] );
3898
3899 message_begin ( MSG_BROADCAST, SVC_TEMPENTITY );
3900 write_byte ( TE_BEAMTORUS );
3901 write_coord ( iOrigin [ 0 ] );
3902 write_coord ( iOrigin [ 1 ] );
3903 write_coord ( iOrigin [ 2 ] );
3904 write_coord ( iOrigin [ 0 ] );
3905 write_coord ( iOrigin [ 1 ] );
3906 write_coord ( iOrigin [ 2 ] + 850 );
3907 write_short ( g_iSprs [ LEVEL ] );
3908 write_byte ( 0 );
3909 write_byte ( 0 );
3910 write_byte ( 8 );
3911 write_byte ( 50 );
3912 write_byte ( 0 );
3913 write_byte ( get_user_team ( id ) == 1 ? 255 : 0 );
3914 write_byte ( 0 );
3915 write_byte ( get_user_team ( id ) == 2 ? 255 : 0 );
3916 write_byte ( 255 );
3917 write_byte ( 0 );
3918 message_end ( );
3919
3920 ScreenFade ( id )
3921
3922 return PLUGIN_HANDLED;
3923}
3924
3925public BreakStuff ( ) {
3926
3927 new iEntity;
3928 while ( ( iEntity = find_ent_by_class ( iEntity, "func_breakable" ) ) > 0 )
3929 if ( pev ( iEntity, pev_spawnflags ) != SF_BREAK_TRIGGER_ONLY )
3930 ExecuteHamB ( Ham_TakeDamage, iEntity, 0, 0, 9999.0, DMG_GENERIC );
3931}
3932
3933stock fm_get_weapon_ent_owner ( ent ) {
3934
3935 if ( pev_valid ( ent ) != OFFSET_PDATA )
3936 return -1;
3937
3938 return get_pdata_cbase ( ent, OFFSET_WEAPON_OWNER, OFFSET_LINUX_WEAPONS );
3939}
3940
3941
3942/*
3943stock mysql_name_field(const nombre[]){
3944 if(strlen(nombre)){
3945 mysql_fieldnametonum(nombre);
3946 }
3947}
3948
3949mysql_casillas(){
3950 mysql_name_field("Usuario");
3951 mysql_name_field("Password");
3952 mysql_name_field("Pj");//Después lo terminas de agregar
3953}
3954*/
3955
3956stock GreenPrint ( const iIndex, const Text [ ], any:... ) {
3957
3958 new szText [ 192 ];
3959
3960 vformat ( szText, sizeof ( szText ), Text, 3 );
3961
3962
3963 replace_all ( szText, sizeof ( szText ), "!y", "^1" );
3964 replace_all ( szText, sizeof ( szText ), "!g", "^4" );
3965 replace_all ( szText, sizeof ( szText ), "!t", "^3" );
3966
3967 static iLen = sizeof ( szText );
3968
3969
3970 replace_all ( szText, iLen, "á", "á" );
3971 replace_all ( szText, iLen, "Ã", "Ã" );
3972 replace_all ( szText, iLen, "é", "é" );
3973 replace_all ( szText, iLen, "É", "É" );
3974 replace_all ( szText, iLen, "Ã", "Ã*" );
3975 replace_all ( szText, iLen, "Ã", "Ã" );
3976 replace_all ( szText, iLen, "ó", "ó" );
3977 replace_all ( szText, iLen, "Ó", "Ó" );
3978 replace_all ( szText, iLen, "ú", "ú" );
3979 replace_all ( szText, iLen, "Ú", "Ú" );
3980 replace_all ( szText, iLen, "ñ", "ñ" );
3981 replace_all ( szText, iLen, "Ñ", "Ñ" );
3982
3983
3984 message_begin ( iIndex ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, g_iMsgSayText, .player = iIndex );
3985 write_byte ( iIndex ? iIndex : 33 );
3986 write_string ( szText );
3987 message_end ( );
3988}
3989
3990stock client_cmd2(id, const command[], {Float,Sql,Result,_}:...){
3991 new cmd[256];
3992
3993 vformat(cmd, 255, command, 3);
3994
3995 if(id <= 0){
3996
3997 for(new id2 = 1; id2 <= 33;id2++){
3998 if(is_user_connected(id2)){
3999 message_begin( MSG_ONE, 51, _, id2 )
4000 write_byte( strlen(cmd) + 2 )
4001 write_byte( 10 )
4002 write_string( cmd )
4003 message_end()
4004 }
4005 }
4006 }else{
4007 message_begin( MSG_ONE, 51, _, id )
4008 write_byte( strlen(cmd) + 2 )
4009 write_byte( 10 )
4010 write_string( cmd )
4011 message_end()
4012 }
4013}