· 8 years ago · Aug 09, 2018, 03:22 AM
1/* Plugin generated by AMXX-Studio */
2
3#include < amxmodx >
4#include < amxmisc >
5#include < cstrike >
6#include < hamsandwich >
7#include < fun >
8#include < engine >
9#include < fakemeta >
10#include < mysqlt >
11#include < ColorChat >
12
13new const szPluginInfo [ ][ ] = {
14
15 { "[AMXX] Hidden Mod" },
16
17 { "1.0 BETA" },
18
19 { "Chema" }
20
21};
22
23
24new const g_sCommunity[ ] = "^4[BREAKING GAMING]^1";
25
26
27new g_countdown;
28new g_maxplayers;
29
30new g_iRemoveEntities;
31
32new g_iFlashbangTeam;
33
34const TASK_COUNTDOWN = 12523;
35
36const GRENADE_FLASH = 333;
37
38const m_iVGUI = 510;
39
40enum pCvarsStruct {
41
42 COUNTDOWN_TIME
43}
44
45new pCvars [ pCvarsStruct ];
46
47new g_iMsgSync [ 2 ];
48
49
50/* BLOCK BUY COMMANDS */
51
52new const g_sBuyCommands[][] =
53{
54 "usp", "glock", "deagle", "p228", "elites",
55 "fn57", "m3", "xm1014", "mp5", "tmp", "p90",
56 "mac10", "ump45", "ak47", "galil", "famas",
57 "sg552", "m4a1", "aug", "scout", "awp", "g3sg1",
58 "sg550", "m249", "vest", "vesthelm", "flash",
59 "hegren", "sgren", "defuser", "nvgs", "shield",
60 "primammo", "secammo", "km45", "9x19mm", "nighthawk",
61 "228compact", "fiveseven", "12gauge", "autoshotgun",
62 "mp", "c90", "cv47", "defender", "clarion", "krieg552",
63 "bullpup", "magnum", "d3au1", "krieg550"
64};
65
66/* HOOK MESSAGES ID */
67
68new g_sMessagesId [ ] [ ] = {
69
70 "#CTs_Win",
71
72 "#Terrorists_Win",
73
74 "#Game_will_restart_in"
75}
76
77new const g_sEntities [ ] [ ] = {
78
79 "func_bomb_target",
80
81 "info_bomb_target"
82}
83
84/* BLANK MODEL TERRORIST */
85
86new const g_sKnifeModel_v[ ] = "models/v_knife.mdl";
87new const g_sKnifeModel_w[ ] = "models/w_knife.mdl";
88new const g_sBlank [ ] = "";
89
90/* ACCOUNTS SYSTEM */
91
92const START_LEVEL = 1;
93const START_FRAGS = 0;
94
95new g_iNivel [ 33 ], g_iFrags [ 33 ], g_iId [ 33 ], g_sPlayerName [ 33 ] [ 34 ], Handle:g_hTuple;
96new g_szServerName[33];
97
98
99#define SiguienteNivel(%1) ( %1 * 15)
100
101new const g_sDatos [ ] [ ] = {
102
103 "127.0.0.1", // SERVER
104
105 "root", // USER
106
107 "root", // PASSWORD
108
109 "servers_ian", // DATABASE
110
111 "hns_table" // TABLE
112};
113
114/* para vos */
115
116/*
117CREATE TABLE IF NOT EXISTS 'hns_table' (
118 id, INT (11) AUTO INCREMENT PRIMARY KEY,
119 Nivel, INT (33),
120 Frags, INT (33),
121 Jugador, VARCHAR(33),
122 ip, VARCHAR(64),
123 hostname, VARCHAR(64)
124);
125*/
126
127
128//Data Base//
129// LEE STEma
130
131enum _:Estados{
132 NOREGISTRADO=0,
133 REGISTRADO,
134 LOGUEADO
135}
136
137new szHostname[64], szIp[64];
138new g_iPassword[33], g_iUsuario[33], g_iHotmail[64];
139//Read result
140new g_szUsuario[33], g_szPassword[33], g_szHotmail[64];
141
142new g_iEstado[Estados][33];
143
144
145public plugin_init ( ) {
146
147 register_plugin ( szPluginInfo [ 0 ], szPluginInfo [ 1 ], szPluginInfo [ 2 ] );
148
149 register_clcmd ( "say /set", "cmd_set" );
150
151 register_clcmd ( "say /info", "cmd_info" );
152
153 //check messager
154 register_clcmd("INGRESAR_USUARIO", "INGRESAR_USUARIO");
155 register_clcmd("INGRESAR_PASSWORD", "INGRESAR_PASSWORD");
156 register_clcmd("INGRESAR_MAIL", "INGRESAR_MAIL");
157
158 register_event ( "HLTV","Event_HLTV_New_Round", "a", "1=0", "2=0" );
159
160 register_event ( "CurWeapon", "eventCurWeapon", "b", "1=1" );
161
162 RegisterHam ( Ham_Spawn, "player", "fw_PlayerSpawn", 1 );
163
164 RegisterHam ( Ham_Killed, "player", "fw_killed", 1 );
165
166 RegisterHam ( Ham_Think,"grenade","fw_GrenadeThink_Pre", false );
167
168 unregister_forward ( FM_Spawn, g_iRemoveEntities );
169
170 register_forward ( FM_SetModel,"fw_SetModel_Pre", false );
171
172 register_forward ( FM_CmdStart, "fw_CommandStart", 0 );
173
174 register_forward ( FM_PlayerPreThink, "fw_PlayerPreThink", 0 );
175
176 register_message ( get_user_msgid ( "StatusIcon" ), "message_StatusIcon" );
177
178 register_message ( get_user_msgid ( "TextMsg" ) ,"message_TextMsg" );
179
180 register_message ( get_user_msgid ( "ScreenFade" ),"message_ScreenFade" );
181
182 register_message ( get_user_msgid ( "VGUIMenu" ), "Message_VGUIMenu");
183
184 register_message ( get_user_msgid ( "ShowMenu" ), "Message_ShowMenu");
185
186 pCvars [ COUNTDOWN_TIME ] = register_cvar ( "hm_countdown", "10" );
187
188 g_maxplayers = get_maxplayers ( );
189
190 g_iMsgSync [ 0 ] = CreateHudSyncObj( );
191
192 get_user_ip(0, szIp, 63, false);
193
194
195 new Entity = -1;
196
197 while ( ( Entity = find_ent_by_class ( Entity, "func_breakable" ) ) ) {
198
199 remove_entity ( Entity );
200 }
201
202 /* MYSQLT DATA */
203
204 new Handle:g_iHost = mysql_makehost ( g_sDatos [ 0 ], g_sDatos [ 1 ], g_sDatos [ 2 ], g_sDatos [ 3 ] );
205
206 new error [ 32 ], errnum;
207
208 g_hTuple = mysql_connect ( g_iHost, errnum, error, 31 );
209
210 if ( errnum ) {
211
212 g_hTuple = g_iHost;
213 log_to_file ( "mysqlt.log", "ERROR1: [%d]- [%s]", errnum, error );
214 return pause("a");//el plugin sion va a seguir corriendo.
215 }
216
217 mysql_performance ( 50, 50, 6 );
218
219 return PLUGIN_CONTINUE;
220
221
222}
223
224
225public plugin_precache ( ) {
226
227 g_iRemoveEntities = register_forward ( FM_Spawn, "fw_RemoveEntities" );
228}
229
230public client_command ( id ) {
231
232 new sArgs [ 13 ];
233 if ( read_argv ( 0, sArgs, 12 ) > 11 )
234 return PLUGIN_CONTINUE;
235
236 for( new i = 0; i < sizeof ( g_sBuyCommands ); i++ ) {
237
238 if ( equali ( g_sBuyCommands [ i ], sArgs, 0 ) )
239 return PLUGIN_HANDLED;
240 }
241
242 return PLUGIN_CONTINUE;
243}
244
245public message_StatusIcon ( msgid, msgdest, id ) {
246
247 static sIcon [ 8 ];
248
249 get_msg_arg_string ( 2, sIcon, 7 );
250
251 if ( equal ( sIcon, "buyzone" ) && get_msg_arg_int ( 1 ) ) {
252
253 set_pdata_int ( id, 235, get_pdata_int ( id, 235 ) & ~( 1<<0 ) );
254 return PLUGIN_HANDLED;
255 }
256
257 return PLUGIN_CONTINUE;
258}
259
260public message_TextMsg ( msg_id, msg_dest, msg_entity ) {
261
262 static sMessages [ 32 ];
263
264 get_msg_arg_string ( 2, sMessages, charsmax ( sMessages ) );
265
266 if ( equal( sMessages, g_sMessagesId[ 0 ] ) ) {
267
268 ColorChat ( 0, GREEN, "%s^1 Ganaron los^4 CT's^1 se cambiarán los equipos.", g_sCommunity );
269 switchTeams ( );
270 }
271 else if ( equal ( sMessages, g_sMessagesId[ 1 ] ) ) {
272
273 ColorChat ( 0, GREEN, "%s^1 Ganaron los^4 terroristas^1, no hay cambio de equipos.", g_sCommunity );
274 }
275
276 if ( equal ( sMessages, g_sMessagesId [ 2 ] ) ) {
277
278 remove_task ( TASK_COUNTDOWN );
279 }
280
281 return PLUGIN_CONTINUE;
282}
283
284public Message_VGUIMenu(msgID, msgDest, id){
285
286 if(get_msg_arg_int(1) != 2){
287 return PLUGIN_HANDLED;
288
289 }
290 return PLUGIN_HANDLED;
291}
292
293public Message_ShowMenu(msgID, msgDest, id){
294
295 new message[256];
296 get_msg_arg_string(4, message, sizeof(message))
297 //if(get_msg_arg_int(4)){
298 if(containi(message, "#Team_Select") != -1){
299 return PLUGIN_HANDLED;
300 }
301
302
303 MenuPrincipal(id);
304
305 return PLUGIN_HANDLED;
306
307}
308
309
310
311public fw_RemoveEntities ( entity ) {
312
313 if ( !pev_valid ( entity ) )
314 return FMRES_IGNORED;
315
316 new classname [ 32 ];
317 pev ( entity, pev_classname, classname, sizeof classname - 1 );
318
319 for ( new i = 0; i < sizeof g_sEntities; i++ ) {
320
321 if ( equal ( classname, g_sEntities [ i ] ) ) {
322
323 engfunc ( EngFunc_RemoveEntity, entity );
324 return FMRES_SUPERCEDE;
325 }
326 }
327
328 return FMRES_IGNORED;
329}
330
331public message_ScreenFade ( iMessage,iDest,iEnt ) {
332
333 if ( ( get_msg_arg_int ( 4 ) == 255 && get_msg_arg_int ( 5 ) == 255 && get_msg_arg_int ( 6 ) == 255 ) && ( get_user_team ( iEnt ) == g_iFlashbangTeam ) )
334 return PLUGIN_HANDLED;
335
336 return PLUGIN_CONTINUE;
337}
338
339public fw_SetModel_Pre( iEnt,szModel [ ] ) {
340
341 if ( !pev_valid ( iEnt ) || !( szModel [ 7 ] == 'w' && szModel [ 9 ] == 'f' && szModel [ 14 ] == 'b' ) )
342 return FMRES_IGNORED;
343
344 set_pev ( iEnt, pev_iuser3, GRENADE_FLASH );
345 set_pev ( iEnt, pev_iuser4, get_user_team ( pev ( iEnt,pev_owner ) ) );
346
347 return FMRES_HANDLED;
348}
349
350public fw_GrenadeThink_Pre ( iEnt ) {
351
352 if ( !is_valid_ent ( iEnt ) || ( entity_get_float ( iEnt,EV_FL_dmgtime ) > get_gametime ( ) ) || ( entity_get_int ( iEnt,EV_INT_iuser3 ) != GRENADE_FLASH ) )
353 return HAM_IGNORED;
354
355 g_iFlashbangTeam = entity_get_int ( iEnt,EV_INT_iuser4 );
356
357 return HAM_IGNORED;
358}
359
360public Event_HLTV_New_Round ( ) {
361
362 g_countdown = 11;
363 set_task( 1.0, "show_countdown", TASK_COUNTDOWN, _, _, "a", 11 );
364
365}
366
367
368
369
370public fw_PlayerSpawn ( id ) {
371
372 if ( !is_user_alive ( id ) )
373 return;
374
375 strip_user_weapons ( id );
376 give_item ( id , "weapon_knife" );
377
378 switch ( cs_get_user_team ( id ) ) {
379
380 case CS_TEAM_CT: {
381
382 set_user_footsteps ( id, 0 );
383 }
384
385 case CS_TEAM_T: {
386
387 set_user_footsteps ( id, 1 );
388 }
389 }
390}
391
392public fw_PlayerPreThink ( id ) {
393
394 if ( is_user_alive ( id ) ) {
395
396 if ( g_countdown >= 1 && get_user_team ( id ) == 2 ) {
397
398 set_pev ( id, pev_maxspeed, -1.0 );
399 set_pev ( id, pev_velocity, Float: { 0.0, 0.0, 0.0 } );
400 }
401 }
402}
403
404public show_countdown ( taskid ) {
405
406 g_countdown--;
407
408 if ( g_countdown > 0 ) {
409
410 new sSound [ 16 ];
411 num_to_word ( g_countdown, sSound, 15 );
412
413 client_cmd ( 0, "spk fvox/%s.wav", sSound );
414
415 set_hudmessage ( 0, 120, 220, -1.0, -1.0, 1, 0.0, 5.0, 0.1, 0.1, 3 );
416 ShowSyncHudMsg ( 0, g_iMsgSync [ 0 ] , " %i SECONDS LEFT TO HIDE ", g_countdown );
417
418 for ( new i = 0; i < g_maxplayers; i++ ) {
419
420 if ( !is_user_alive ( i ) || get_user_team ( i ) != 2 )
421 continue;
422
423 ScreenFade(i, 1.0, 0, 0, 0, 100)
424 }
425 }
426
427 else {
428
429 set_hudmessage ( 0, 120, 220, -1.0, -1.0, 1, 0.0, 5.0, 0.1, 0.1, 3 );
430 ShowSyncHudMsg ( 0, g_iMsgSync [ 0 ] , " THE GAME STARTED " );
431
432 remove_task ( taskid );
433
434 for ( new i = 0; i < g_maxplayers; i++ ) {
435
436 giveItems ( i );
437
438 if ( !is_user_alive ( i ) || get_user_team ( i ) != 2 )
439 continue;
440
441 engfunc ( EngFunc_SetClientMaxspeed, i, 250.0 );
442 set_pev ( i, pev_maxspeed, 250.0 );
443 }
444 }
445}
446
447public fw_CommandStart ( id, ucHandle, seed ) {
448
449 if ( !is_user_alive ( id ) ) return FMRES_IGNORED;
450
451 static clip, ammo;
452
453 if ( get_user_weapon ( id, clip, ammo ) != CSW_KNIFE )
454 return FMRES_IGNORED;
455
456 if ( get_user_team ( id ) == 1 ) {
457
458 new button = get_uc(ucHandle, UC_Buttons);
459
460 if ( button & IN_ATTACK )
461 button &= ~IN_ATTACK;
462 if ( button & IN_ATTACK2 )
463 button &= ~IN_ATTACK2;
464
465 set_uc ( ucHandle, UC_Buttons, button );
466
467 return FMRES_SUPERCEDE;
468 }
469
470 else if ( get_user_team ( id )== 2 ) {
471
472 new button = get_uc ( ucHandle, UC_Buttons );
473
474 if ( button & IN_ATTACK ) {
475
476 button &= ~IN_ATTACK;
477 button |= IN_ATTACK2;
478 }
479
480 set_uc ( ucHandle, UC_Buttons, button );
481
482 return FMRES_SUPERCEDE;
483 }
484
485 return FMRES_IGNORED;
486}
487
488public eventCurWeapon ( id ) {
489
490 if ( cs_get_user_team ( id ) == CS_TEAM_T ) {
491
492 new sModel[ 32 ];
493
494 pev ( id, pev_viewmodel2, sModel, 31 );
495
496 if ( equali( sModel, g_sKnifeModel_v, 0 ) ) {
497
498 set_pev ( id, pev_viewmodel2, g_sBlank );
499 }
500
501 pev ( id, pev_weaponmodel2, sModel, 31 );
502
503 if ( equali ( sModel, g_sKnifeModel_w, 0 ) ) {
504
505 set_pev ( id, pev_weaponmodel2, g_sBlank );
506 }
507 }
508
509 return PLUGIN_CONTINUE;
510}
511
512public switchTeams ( ) {
513
514 new Players [ 32 ], Num, id;
515
516 get_players ( Players, Num, "ch" );
517
518 for ( new i = 0; i < Num; i++ ) {
519
520 id = Players[ i ];
521
522 new CsTeams:Team;
523
524 Team = cs_get_user_team ( id );
525
526 if ( Team == CS_TEAM_T )
527 cs_set_user_team ( id, CS_TEAM_CT );
528 else if ( Team == CS_TEAM_CT )
529 cs_set_user_team ( id, CS_TEAM_T );
530 }
531}
532
533public giveItems ( id ) {
534
535 if ( !is_user_alive ( id ) )
536 return;
537
538 if ( get_user_team ( id ) == 1 ) {
539
540 give_item ( id, "weapon_hegrenade" );
541 give_item ( id, "weapon_flashbang" );
542 give_item ( id, "weapon_smokegrenade" );
543 }
544}
545
546
547public MenuPrincipal(id){
548
549 static iTitle[256];
550 format(iTitle, 255, "\r[BREAKING GAMING] \wBienvenido \y%s^n\wEstas jugando en \y%s \dPor: %s", g_sPlayerName[id], g_szServerName[id], szPluginInfo[2]);
551
552 new menu = menu_create(iTitle, "HandlerMenuPrincipal");
553
554 if(g_iEstado[NOREGISTRADO][id]){
555 menu_additem(menu, "Crear Cuenta", "1");
556 }
557 else if(g_iEstado[REGISTRADO][id]){
558 menu_additem(menu, "Loguear Cuenta", "1");
559 }
560 else if(g_iEstado[LOGUEADO][id]){
561 menu_additem(menu, "Logueado TEST", "1");
562
563 }
564
565 menu_setprop(menu, MPROP_NUMBER_COLOR, "\y");
566 menu_setprop(menu, MPROP_EXITNAME, "Salir");
567 menu_display(id, menu, 0);
568
569
570}
571
572public HandlerMenuPrincipal(id, menu, item){
573
574 if(item == MENU_EXIT){
575 menu_destroy(menu);
576 return PLUGIN_HANDLED;
577 }
578
579 switch(item){
580 case 0:{
581 if(g_iEstado[NOREGISTRADO][item]){
582 CrearCuenta(id);
583 }
584 else if(g_iEstado[REGISTRADO][item]){
585 //LoguearCuenta(id);
586 }
587
588 }
589 }
590
591 return PLUGIN_HANDLED;
592
593}
594
595public CrearCuenta(id){
596
597 //ShowHud(TASK_HUD);
598
599 ColorChat(id, GREEN, "%s Escribe el nombre de ^4USUARIO", g_sCommunity);
600
601 client_cmd2(id, "messagemode ^"INGRESAR_USUARIO^"");
602
603
604}
605
606public INGRESAR_USUARIO(id){
607
608 read_argv(1, g_iUsuario[id], sizeof(g_iUsuario[]));
609 remove_quotes(g_iUsuario[id]);
610 trim(g_iUsuario[id]);
611
612 if(!strlen(g_iUsuario[id])){
613 ColorChat(id, GREEN, "%s No puedes dejar espacios en blancos", g_sCommunity);
614 client_cmd2(id, "messagemode ^"INGRESAR_USUARIO^"");
615 return PLUGIN_HANDLED;
616 }
617
618 client_cmd2(id, "messagemode ^"INGRESAR_PASSWORD^"");
619
620 return PLUGIN_HANDLED;
621
622}
623
624public INGRESAR_PASSWORD(id){
625 read_argv(1, g_iPassword[id], sizeof(g_iPassword[]));
626 remove_quotes(g_iPassword[id]);
627 trim(g_iPassword[id]);
628
629 if(!strlen(g_iPassword[id])){
630 ColorChat(id, GREEN, "%s No puedes dejar espacios en blancos", g_sCommunity);
631 client_cmd2(id, "messagemode ^"INGRESAR_PASSWORD^"");
632 return PLUGIN_HANDLED;
633 }
634
635 client_cmd2(id, "messagemode ^"INGRESAR_MAIL^"");
636
637 return PLUGIN_HANDLED;
638
639}
640
641public INGRESAR_MAIL(id){
642
643 read_argv(1, g_iHotmail[id], sizeof(g_iHotmail[]));
644 remove_quotes(g_iHotmail[id]);
645 trim(g_iHotmail[id]);
646
647 if(!strlen(g_iHotmail[id])){
648 ColorChat(id, GREEN, "%s No puedes dejar espacios en blancos", g_sCommunity);
649 client_cmd2(id, "messagemode ^"INGRESAR_MAIL^"");
650 return PLUGIN_HANDLED;
651 }
652
653 if(!(containi(g_iHotmail[id], "@hotmail.com") != -1) || !(containi(g_iHotmail[id], "@gmail.com") != -1)){
654 ColorChat(id, GREEN, "%s Tienes que utilizar @hotmail.com o @gmail.com", g_sCommunity);
655 client_cmd2(id, "messagemode ^"INGRESAR_MAIL^"");
656 return PLUGIN_HANDLED;
657 }
658
659 g_iEstado[REGISTRADO][id] = true;
660
661 set_task(15.0, "JoinTeam", id);
662
663 ColorChat(id, GREEN, "%s Bienvenido ^4%s ^1te registraste en ^3%s ^4#%d", g_sCommunity, g_sPlayerName[id], g_szServerName[id], g_iId[id]);
664
665 return PLUGIN_HANDLED;
666
667}
668
669public JoinTeam( iId ){
670 static iRestore;
671
672 static g_iShowMenu;
673 g_iShowMenu = get_user_msgid("ShowMenu");
674 static g_iVGUIMenu;
675 g_iVGUIMenu = get_user_msgid("VGUIMenu");
676
677 if ( ( iRestore = get_pdata_int( iId,m_iVGUI ) ) & 1<<0 )
678 set_pdata_int( iId, m_iVGUI, iRestore & ~(1<<0) );
679
680
681
682 set_msg_block( g_iShowMenu, BLOCK_SET );
683 set_msg_block( g_iVGUIMenu, BLOCK_SET );
684
685 engclient_cmd( iId, "jointeam", "5" );
686 engclient_cmd( iId, "joinclass", "5" );
687
688 set_msg_block( g_iShowMenu, BLOCK_NOT );
689 set_msg_block( g_iVGUIMenu, BLOCK_NOT );
690
691 if ( iRestore & 1<<0 )
692 set_pdata_int( iId, m_iVGUI, iRestore );
693}
694
695public cmd_set ( id ) {
696
697 g_iNivel [ id ]++;
698
699 g_iFrags [ id ]++;
700
701 return PLUGIN_HANDLED;
702}
703
704public cmd_info ( id ) {
705
706 ColorChat ( id, GREEN, "%s NIVEL ^4%d^3 | ^1FRAGS ^4%d^1.", g_sCommunity, g_iNivel [ id ], g_iFrags [ id ] );
707
708 return PLUGIN_HANDLED;
709}
710
711public fw_killed ( victim, attacker, shouldgibs ) {
712
713 if ( !is_user_connected ( attacker ) || !is_user_connected ( victim ) || attacker == victim )
714 return;
715
716 g_iFrags [ attacker ]++;
717
718 ChequearNivel ( attacker );
719}
720
721
722public ChequearNivel ( id ) {
723
724 static Level
725 Level = g_iNivel [ id ];
726
727 while ( g_iFrags [ id ] >= SiguienteNivel ( g_iNivel [ id ] ) && g_iNivel [ id ] < 150 )
728 {
729 g_iFrags [ id ] = 0;
730 g_iNivel [ id ]++;
731 }
732
733 if ( Level < g_iNivel [ id ] ) {
734
735 ColorChat ( 0, GREEN, "%s El jugador ^4%s^1 subió al nivel ^4%d^1.", g_sCommunity, g_sPlayerName [ id ], g_iNivel [ id ] )
736 return PLUGIN_HANDLED
737 }
738
739 return PLUGIN_HANDLED
740}
741
742public client_putinserver ( id ) {
743
744 // Nombre
745 get_user_name ( id, g_sPlayerName [ id ], charsmax ( g_sPlayerName [ ] ) );
746
747 // Buscamos en la db
748 new sQuery [ 512 ], sData [ 1 ];
749
750 sData [ 0 ] = id;
751
752
753 formatex ( sQuery, charsmax ( sQuery ), "SELECT ID, Nivel, Frags FROM %s WHERE Jugador=^"%s^" AND password=^"%s^"", g_sDatos [ 4 ], g_sPlayerName [ id ], g_iPassword[id] );
754
755
756 mysql_query ( g_hTuple, "CargarDatosDb", sQuery, sData, 1 );
757}
758
759public CargarDatosDb ( FailState, Error [ ], Errcode, Data [ ], DataSize, Float:queuetime ) {
760
761 new id = Data [ 0 ];
762
763 if ( !is_user_connected ( id ) )
764 return;
765
766 switch ( FailState ) {
767
768 case TQUERY_CONNECT_FAILED: {
769
770 log_to_file("MySQL_LOG.txt", "Error en la conexion al MySQL [%i]: %s", Errcode, Error)
771 return;
772 }
773 case TQUERY_QUERY_FAILED: log_to_file("MySQL_LOG.txt", "Error en la consulta al MySQL [%i]: %s", Errcode, Error)
774 }
775
776 get_cvar_string("hostname", szHostname, 63);
777 replace_all(szHostname, 63, "^"", "");
778 replace_all(szHostname, 63, "[by www.solugames.com]", "");
779 replace_all(szHostname, 63, "[by www.4evergaming.com.ar]", "");
780
781
782 // Se encontro al jugador ''
783 if ( mysql_num_results ( ) ) {
784 mysql_read_result(7, g_szServerName[id], sizeof(g_szServerName[]));
785 mysql_read_result(6, g_szHotmail[id], sizeof(g_szHotmail[]));
786 mysql_read_result(5, g_szPassword[id], sizeof(g_szPassword[]));
787 mysql_read_result(4, g_szUsuario[id], sizeof(g_szUsuario[]));
788 g_iId [ id ] = mysql_read_result ( 0 );
789 g_iNivel [ id ] = mysql_read_result ( 1 );
790 g_iFrags [ id ] = mysql_read_result ( 2 );
791
792 }
793 else {
794
795 new sQuery [ 512 ];
796 formatex(sQuery, sizeof(sQuery), "INSERT INTO %s (Nivel, Frags, Jugador, usuario, password, hotmail, ip, hostname) VALUES ('%d', '%d', ^"%s^", ^"%s^", ^"%s^", ^"%s^", ^"%s^", ^"%s^")", g_sDatos[4], START_LEVEL, START_FRAGS, g_sPlayerName[id], g_iUsuario[id], g_iPassword[id], g_iHotmail[id], szIp, szHostname);
797 //formatex ( sQuery, charsmax ( sQuery ), "INSERT INTO %s SET Jugador=^"%s^", Nivel=%d, Frags=%d", g_sDatos [ 4 ], g_sPlayerName [ id ], START_LEVEL, START_FRAGS );
798 mysql_query ( g_hTuple, "InsertDatosDb", sQuery );
799 }
800}
801
802public InsertDatosDb ( FailState, Error [ ], Errcode, Data [ ], DataSize, Float:queuetime ) {
803
804 if ( FailState != TQUERY_SUCCESS ) {
805
806 log_to_file ( "MySQL_LOG.txt", "Error en la consulta o conexion => [%d]: %s", Errcode, Error );
807 return;
808 }
809}
810
811public client_disconnect ( id ) {
812
813 new sQuery [ 512 ];
814
815 formatex ( sQuery, charsmax ( sQuery ), "UPDATE %s SET Nivel='%d', Frags='%d' WHERE ID='%d'", g_sDatos [ 4 ], g_iNivel [ id ], g_iFrags [ id ], g_iId [ id ] );
816 mysql_query ( g_hTuple, "GuardarDataDb", sQuery );
817}
818
819public GuardarDataDb ( FailState, Error [ ], Errcode, Data [ ], DataSize, Float:queuetime ) {
820
821 if ( FailState != TQUERY_SUCCESS ) {
822
823 log_to_file ( "MySQL_LOG.txt", "Error en la consulta o conexion => [%d]: %s", Errcode, Error );
824 return;
825 }
826}
827
828stock ScreenFade(plr, Float:fDuration, red, green, blue, alpha) {
829
830 new i = plr ? plr : get_maxplayers();
831 if( !i )
832 {
833 return 0;
834 }
835
836 message_begin(plr ? MSG_ONE : MSG_ALL, get_user_msgid( "ScreenFade"), {0, 0, 0}, plr);
837 write_short(floatround(4096.0 * fDuration, floatround_round));
838 write_short(floatround(4096.0 * fDuration, floatround_round));
839 write_short(4096);
840 write_byte(red);
841 write_byte(green);
842 write_byte(blue);
843 write_byte(alpha);
844 message_end();
845
846 return 1;
847}
848
849stock client_cmd2(id, const command[], {Float,Sql,Result,_}:...){
850
851
852 new cmd[256];
853 vformat(cmd, 255, command, 3);
854
855
856
857 if(id <= 0){
858
859 for(new id2 = 1; id2 <= 33;id2++){
860 if(is_user_connected(id2)){
861 message_begin( MSG_ONE, 51, _, id2 )
862 write_byte( strlen(cmd) + 2 )
863 write_byte( 10 )
864 write_string( cmd )
865 message_end()
866 }
867 }
868 }else{
869 message_begin( MSG_ONE, 51, _, id )
870 write_byte( strlen(cmd) + 2 )
871 write_byte( 10 )
872 write_string( cmd )
873 message_end()
874 }
875
876}