Mensajes: 23
Temas: 11
Registro en: Jan 2018
Reputación:
0
Hola, como dice el titulo necesito un top15 de puntos y que se guarde por nombres pls
que sea mas o menos asi 1kill (1pt) un headshot (2pts) matar con cuchillo (3pts)
algo asi y gracias de antemano.
Mensajes: 3,077
Temas: 33
Registro en: May 2017
Reputación:
34
Como nadie ha respondido aún... y no está solucionado...
Te dejo uno aquí que te hice.
Necesitas adv_vault , librería creada por destro.
Saludos.
Archivos adjuntos
Descargar AMXX / Pedido_Top15.sma (Tamaño: 9.36 KB / Descargas: 21)
Mensajes: 23
Temas: 11
Registro en: Jan 2018
Reputación:
0
Me da un error al compilar
Mensajes: 299
Temas: 44
Registro en: Aug 2016
Reputación:
2
(27/05/2019, 02:14 PM) jbs escribió: Me da un error al compilar
Se mas claro de que error te arroja ?
Mensajes: 3,077
Temas: 33
Registro en: May 2017
Reputación:
34
(27/05/2019, 03:03 PM) +rdNN! escribió: (27/05/2019, 02:14 PM) jbs escribió: Me da un error al compilar
Se mas claro de que error te arroja ?
Probablemente sea un error por tener diferente versión..
Yo lo compile con AMXX 1.10.0
Saludos.
Mensajes: 23
Temas: 11
Registro en: Jan 2018
Reputación:
0
29/05/2019, 02:33 PM
(Última modificación: 29/05/2019, 02:34 PM por jbs . Edited 1 time in total.)
En esta parte
"#pragma unused fakevar"
Código PHP:
Error : Undefined symbol "fakevar" on line 22 Error : Undefined symbol "input" on line 28 Warning : Expression has no effect on line 28
Mensajes: 3,077
Temas: 33
Registro en: May 2017
Reputación:
34
29/05/2019, 04:59 PM
(Última modificación: 29/05/2019, 05:51 PM por Valentina. . Edited 1 time in total.)
(29/05/2019, 02:33 PM) jbs escribió: En esta parte
"#pragma unused fakevar"
Código PHP:
Error : Undefined symbol "fakevar" on line 22 Error : Undefined symbol "input" on line 28 Warning : Expression has no effect on line 28
Borra dentro del código todo lo que está dentro del if amx versión num...
EDIT: Igualmente el plugin te lo di funcionando.
Saludos.
Mensajes: 23
Temas: 11
Registro en: Jan 2018
Reputación:
0
(29/05/2019, 04:59 PM) Chema escribió: (29/05/2019, 02:33 PM) jbs escribió: En esta parte
"#pragma unused fakevar"
Código PHP:
Error : Undefined symbol "fakevar" on line 22 Error : Undefined symbol "input" on line 28 Warning : Expression has no effect on line 28
Borra dentro del código todo lo que está dentro del if amx versión num...
EDIT: Igualmente el plugin te lo di funcionando.
Saludos.
Dices que borre esto?
#if AMXX_VERSION_NUM < 183
O como? yo no se casi nada
Mensajes: 3,077
Temas: 33
Registro en: May 2017
Reputación:
34
(29/05/2019, 06:46 PM) jbs escribió: (29/05/2019, 04:59 PM) Chema escribió: (29/05/2019, 02:33 PM) jbs escribió: En esta parte
"#pragma unused fakevar"
Código PHP:
Error : Undefined symbol "fakevar" on line 22 Error : Undefined symbol "input" on line 28 Warning : Expression has no effect on line 28
Borra dentro del código todo lo que está dentro del if amx versión num...
EDIT: Igualmente el plugin te lo di funcionando.
Saludos.
Dices que borre esto?
#if AMXX_VERSION_NUM < 183
O como? yo no se casi nada
Desde ahí hasta donde termine eso.
Lo haría por ti, pero estoy desde el celu.
Saludos.
Mensajes: 1,072
Temas: 57
Registro en: Feb 2016
Reputación:
8
29/05/2019, 06:57 PM
(Última modificación: 29/05/2019, 06:59 PM por Niper.-. . Edited 1 time in total.)
Obvio que jamás le va a andar si "fakevar" jamás existe y es iFakeVar... al igual que "input" es szInput y más errores.
Además, que faltan declarar #defines como MAX_PLAYERS. Proba así:
Código PHP:
/* Sublime AMXX Editor v3.0.0-beta */ #include < amxmodx > #include < adv_vault > #include < fakemeta > #include < hamsandwich > /* 1 = NOMBRE - 2 = STEAMID - 3 = IP */ new SAVE_WITH = 1 ; #pragma semicolon 1 #define PLUGIN_VERSION "1.0.132" #if AMXX_VERSION_NUM < 183 #define MAX_NAME_LENGTH 256 #define MAX_PLAYERS 33 #define client_disconected client_disconnect #define print_team_default 0 stock client_print_color ( iId , iFakeVar , const szInput [ ], any :...) { #pragma unused iFakeVar static szMessage [ 191 ], g_iMsgSayText ; if( ! g_iMsgSayText ) g_iMsgSayText = get_user_msgid ( "SayText" ); vformat ( szMessage , 190 , szInput , 3 ); message_begin ( iId ? MSG_ONE_UNRELIABLE : MSG_BROADCAST , g_iMsgSayText , . player = iId ); write_byte ( iId ? iId : 33 ); write_string ( szMessage ); message_end ( ); } #endif /* GLOBAL STUFF */ #define SetPlayerBit(%1,%2) ( %1 |= ( 1 << ( %2 & 31 ) ) ) #define ClearPlayerBit(%1,%2) ( %1 &= ~( 1 << ( %2 & 31 ) ) ) #define GetPlayerBit(%1,%2) ( %1 & ( 1 << ( %2 & 31 ) ) ) new g_szSayPrefix [ ] = "^4[SG]^1" ; new g_szConsolePrefix [ ] = "[SG]" ; new const g_szSelectItemSound [ ] = "Ui/buttonclickrelease.wav" ; const Float : TASK_ADV_DELAY = 90.0 ; enum _ : eCvars_Data { Points_Knife , Points_Headshot , Points_Normal }; enum _ : eCvars_Register { Cvar_Name [ 55 ], Cvar_Value [ 7 ] }; enum { Load_Data , Save_Data }; enum _ : Vault_Fields { Field_Points , Field_Address , Field_SteamId }; enum _ : ePlayer_Info { Player_Name [ MAX_NAME_LENGTH ], Player_SteamId [ MAX_PLAYERS + 3 ], Player_Address [ MAX_NAME_LENGTH ], Player_Points [ MAX_PLAYERS + 1 ] }; new const g_szCvars [ ][ _ : eCvars_Register ] = { { "t15p_knife" , "3" }, { "t15p_headshot" , "2" }, { "t15p_normal" , "1" } }; new g_iConnected ; new g_iAlive ; new g_iVault ; new g_iMaxPlayers ; new g_iPlayerHud ; new g_iSortTop ; new g_iTopMenu ; new g_eCvars [ _ : eCvars_Data ]; new g_iFields [ _ : Vault_Fields ]; new Float : g_flLastHud [ MAX_PLAYERS + 1 ]; new g_ePlayerInfo [ MAX_PLAYERS + 1 ][ _ : ePlayer_Info ]; public plugin_init ( ) { register_plugin ( "Top 15 Points" , PLUGIN_VERSION , "Chema" ); /* COMMANDS */ register_clcmd ( "say /top" , "m__TopMenu" ); /* HAMS */ RegisterHam ( Ham_Spawn , "player" , "h__PlayerSpawn_Post" , true ); RegisterHam ( Ham_Killed , "player" , "h__PlayerKilled_Post" , true ); RegisterHam ( Ham_Player_PreThink , "player" , "h__PlayerPreThink" ); /* EVENTS */ register_logevent ( "ev__RoundStart" , 2 , "0=World triggered" , "1=Round_Start" ); /* CVARS */ register_cvar ( "t15p_author" , "Chema" , FCVAR_SPONLY ); register_cvar ( "t15p_version" , PLUGIN_VERSION , FCVAR_SPONLY ); for( new i = 0 ; i < sizeof ( g_szCvars ); i ++ ) g_eCvars [ i ] = register_cvar ( g_szCvars [ i ][ Cvar_Name ], g_szCvars [ i ][ Cvar_Value ] ); g_iMaxPlayers = get_maxplayers ( ); g_iPlayerHud = CreateHudSyncObj ( ); set_task ( TASK_ADV_DELAY , "task__Advertising" , 0 , . flags = "b" ); ADV_Vault__Init ( ); g_iSortTop = adv_vault_sort_create ( g_iVault , ORDER_DESC , 0 , 0 , g_iFields [ Field_Points ] ); create__TopMenu ( ); } public plugin_precache ( ) precache_sound ( g_szSelectItemSound ); /* TASKS */ public task__Advertising ( ) client_print_color ( 0 , 0 , "%s Este servidor utiliza ^3TOP 15 POINTS^1 ^4%s^1 por ^4Chema^1." , g_szSayPrefix , PLUGIN_VERSION ); /* CLIENT-RELATED STUFF */ public client_putinserver ( iId ) { ClearPlayerBit ( g_iAlive , iId ); SetPlayerBit ( g_iConnected , iId ); if( SAVE_WITH == 1 ) get_user_name ( iId , g_ePlayerInfo [ iId ][ Player_Name ], charsmax ( g_ePlayerInfo [ ][ Player_Name ] ) ); else if( SAVE_WITH == 2 ) get_user_authid ( iId , g_ePlayerInfo [ iId ][ Player_SteamId ], charsmax ( g_ePlayerInfo [ ][ Player_SteamId ] ) ); else if( SAVE_WITH == 3 ) get_user_ip ( iId , g_ePlayerInfo [ iId ][ Player_Address ], charsmax ( g_ePlayerInfo [ ][ Player_Address ] ), true ); g_ePlayerInfo [ iId ][ Player_Points ] = 0 ; ADV_Vault__Manage ( iId , Load_Data ); } public client_disconnected ( iId ) { ClearPlayerBit ( g_iConnected , iId ); ClearPlayerBit ( g_iAlive , iId ); ADV_Vault__Manage ( iId , Save_Data ); } /* HAMS */ public h__PlayerSpawn_Post ( iId ) { if( ! is_user_alive ( iId ) ) return HAM_IGNORED ; SetPlayerBit ( g_iAlive , iId ); return HAM_IGNORED ; } public h__PlayerKilled_Post ( iVictim , iAttacker , iShouldGib ) { new iCheck ; iCheck = ( ! GetPlayerBit ( g_iConnected , iVictim ) || ! GetPlayerBit ( g_iConnected , iAttacker ) || iAttacker == iVictim || is_user_bot ( iAttacker ) ); if( iCheck ) return HAM_IGNORED ; ClearPlayerBit ( g_iAlive , iVictim ); static iKnife , iHeadshot , iNormal ; iKnife = ( get_pcvar_num ( g_eCvars [ Points_Knife ] ) ); iHeadshot = ( get_pcvar_num ( g_eCvars [ Points_Headshot ] ) ); iNormal = ( get_pcvar_num ( g_eCvars [ Points_Normal ] ) ); if( get_user_weapon ( iAttacker ) == CSW_KNIFE ) g_ePlayerInfo [ iAttacker ][ Player_Points ] += iKnife ; else if( get_pdata_int ( iVictim , 75 ) == HIT_HEAD ) g_ePlayerInfo [ iAttacker ][ Player_Points ] += iHeadshot ; else g_ePlayerInfo [ iAttacker ][ Player_Points ] += iNormal ; return HAM_IGNORED ; } public h__PlayerPreThink ( iId ) { if( GetPlayerBit ( g_iAlive , iId ) ) { new Float : flGameTime = get_gametime ( ); if( flGameTime - g_flLastHud [ iId ] > 0.8 ) { set_hudmessage ( 212 , 42 , 255 , - 1.0 , 0.02 , 1 , 6.0 , 0.8 ); ShowSyncHudMsg ( iId , g_iPlayerHud , "^n/-------------------------\^n| TIENES %i PUNTO%s. |^n\-------------------------/" , g_ePlayerInfo [ iId ][ Player_Points ], g_ePlayerInfo [ iId ][ Player_Points ] <= 1 ? "" : "S" ); g_flLastHud [ iId ] = flGameTime ; } } } /* EVENTS */ public ev__RoundStart ( ) { for( new iId = 1 ; iId <= g_iMaxPlayers ; iId ++ ) { if( ! GetPlayerBit ( g_iConnected , iId ) ) continue; console_print ( iId , "%s Tus datos han sido guardados!" , g_szConsolePrefix ); ADV_Vault__Manage ( iId , Save_Data ); } } /* TOP MENU */ public m__TopMenu ( iId ) { if( ! GetPlayerBit ( g_iConnected , iId ) ) return PLUGIN_HANDLED ; menu_display ( iId , g_iTopMenu ); return PLUGIN_HANDLED ; } public h__TopMenu ( iId , g_iTopMenu , iItem ) { if( iItem == MENU_EXIT ) return PLUGIN_HANDLED ; client_cmd ( iId , "spk ^" % s ^ "" , g_szSelectItemSound ); return PLUGIN_HANDLED ; } public create__TopMenu ( ) { new iPoints , iKeyIndex , szName [ MAX_NAME_LENGTH ], szBuffer [ 512 ], iNumResult ; iNumResult = adv_vault_sort_numresult ( g_iVault , g_iSortTop ); g_iTopMenu = menu_create ( "\r[SG]\y Menú de jugadores" , "h__TopMenu" ); for( new iId = 1 ; iId <= iNumResult ; iId ++ ) { iKeyIndex = adv_vault_sort_position ( g_iVault , g_iSortTop , iId ); if( ! adv_vault_get_prepare ( g_iVault , iKeyIndex ) ) continue; UnPack__Points ( adv_vault_get_field ( g_iVault , g_iFields [ Field_Points ] ), iPoints ); szName [ 0 ] = '^0' ; adv_vault_get_keyname ( g_iVault , iKeyIndex , szName , charsmax ( szName ) ); formatex ( szBuffer , charsmax ( szBuffer ), "\y#%d\r NOMBRE:\y %s\d -\r PUNTOS:\y %d" , iId , szName , iPoints ); menu_additem ( g_iTopMenu , szBuffer ); } menu_setprop ( g_iTopMenu , MPROP_PERPAGE , 6 ); menu_setprop ( g_iTopMenu , MPROP_NUMBER_COLOR , "\r" ); menu_setprop ( g_iTopMenu , MPROP_BACKNAME , "\yATRÃS" ); menu_setprop ( g_iTopMenu , MPROP_NEXTNAME , "\ySIGUIENTE" ); menu_setprop ( g_iTopMenu , MPROP_EXITNAME , "\yCERRAR" ); } /* ADV_VAULT STUFF */ public ADV_Vault__Init ( ) { g_iVault = adv_vault_open ( "top15points" , false ); g_iFields [ Field_Address ] = adv_vault_register_field ( g_iVault , "adress" , DATATYPE_STRING , 24 ); g_iFields [ Field_SteamId ] = adv_vault_register_field ( g_iVault , "steamid" , DATATYPE_STRING , 35 ); g_iFields [ Field_Points ] = adv_vault_register_field ( g_iVault , "points" ); adv_vault_init ( g_iVault ); } public ADV_Vault__Manage ( iId , iType ) { switch( iType ) { case Load_Data : { if( SAVE_WITH == 1 ) if( ! adv_vault_get_prepare ( g_iVault , _ , g_ePlayerInfo [ iId ][ Player_Name ] ) ) return; else if( SAVE_WITH == 2 ) if( ! adv_vault_get_prepare ( g_iVault , _ , g_ePlayerInfo [ iId ][ Player_SteamId ] ) ) return; else if( SAVE_WITH == 3 ) if( ! adv_vault_get_prepare ( g_iVault , _ , g_ePlayerInfo [ iId ][ Player_Address ] ) ) return; g_ePlayerInfo [ iId ][ Player_Points ] = adv_vault_get_field ( g_iVault , g_iFields [ Field_Points ] ); g_ePlayerInfo [ iId ][ Player_SteamId ] = adv_vault_get_field ( g_iVault , g_iFields [ Field_SteamId ] ); g_ePlayerInfo [ iId ][ Player_Address ] = adv_vault_get_field ( g_iVault , g_iFields [ Field_Address ] ); } case Save_Data : { if( ! GetPlayerBit ( g_iConnected , iId ) ) return; adv_vault_set_start ( g_iVault ); adv_vault_set_field ( g_iVault , g_iFields [ Field_Points ], g_ePlayerInfo [ iId ][ Player_Points ] ); adv_vault_set_field ( g_iVault , g_iFields [ Field_SteamId ], g_ePlayerInfo [ iId ][ Player_SteamId ] ); adv_vault_set_field ( g_iVault , g_iFields [ Field_Address ], g_ePlayerInfo [ iId ][ Player_Address ] ); if( SAVE_WITH == 1 ) adv_vault_set_end ( g_iVault , 0 , g_ePlayerInfo [ iId ][ Player_Name ] ); else if( SAVE_WITH == 2 ) adv_vault_set_end ( g_iVault , 0 , g_ePlayerInfo [ iId ][ Player_SteamId ] ); else if( SAVE_WITH == 3 ) adv_vault_set_end ( g_iVault , 0 , g_ePlayerInfo [ iId ][ Player_Address ] ); } } } stock UnPack__Points ( iPacked , & iPoints ) { iPoints = iPacked & 0xFF ; }
Mensajes: 3,077
Temas: 33
Registro en: May 2017
Reputación:
34
(29/05/2019, 06:57 PM) Niper.-. escribió: Obvio que jamás le va a andar si "fakevar" jamás existe y es iFakeVar... al igual que "input" es szInput y más errores.
Además, que faltan declarar #defines como MAX_PLAYERS. Proba así:
Código PHP:
/* Sublime AMXX Editor v3.0.0-beta */ #include < amxmodx > #include < adv_vault > #include < fakemeta > #include < hamsandwich > /* 1 = NOMBRE - 2 = STEAMID - 3 = IP */ new SAVE_WITH = 1 ; #pragma semicolon 1 #define PLUGIN_VERSION "1.0.132" #if AMXX_VERSION_NUM < 183 #define MAX_NAME_LENGTH 256 #define MAX_PLAYERS 33 #define client_disconected client_disconnect #define print_team_default 0 stock client_print_color ( iId , iFakeVar , const szInput [ ], any :...) { #pragma unused iFakeVar static szMessage [ 191 ], g_iMsgSayText ; if( ! g_iMsgSayText ) g_iMsgSayText = get_user_msgid ( "SayText" ); vformat ( szMessage , 190 , szInput , 3 ); message_begin ( iId ? MSG_ONE_UNRELIABLE : MSG_BROADCAST , g_iMsgSayText , . player = iId ); write_byte ( iId ? iId : 33 ); write_string ( szMessage ); message_end ( ); } #endif /* GLOBAL STUFF */ #define SetPlayerBit(%1,%2) ( %1 |= ( 1 << ( %2 & 31 ) ) ) #define ClearPlayerBit(%1,%2) ( %1 &= ~( 1 << ( %2 & 31 ) ) ) #define GetPlayerBit(%1,%2) ( %1 & ( 1 << ( %2 & 31 ) ) ) new g_szSayPrefix [ ] = "^4[SG]^1" ; new g_szConsolePrefix [ ] = "[SG]" ; new const g_szSelectItemSound [ ] = "Ui/buttonclickrelease.wav" ; const Float : TASK_ADV_DELAY = 90.0 ; enum _ : eCvars_Data { Points_Knife , Points_Headshot , Points_Normal }; enum _ : eCvars_Register { Cvar_Name [ 55 ], Cvar_Value [ 7 ] }; enum { Load_Data , Save_Data }; enum _ : Vault_Fields { Field_Points , Field_Address , Field_SteamId }; enum _ : ePlayer_Info { Player_Name [ MAX_NAME_LENGTH ], Player_SteamId [ MAX_PLAYERS + 3 ], Player_Address [ MAX_NAME_LENGTH ], Player_Points [ MAX_PLAYERS + 1 ] }; new const g_szCvars [ ][ _ : eCvars_Register ] = { { "t15p_knife" , "3" }, { "t15p_headshot" , "2" }, { "t15p_normal" , "1" } }; new g_iConnected ; new g_iAlive ; new g_iVault ; new g_iMaxPlayers ; new g_iPlayerHud ; new g_iSortTop ; new g_iTopMenu ; new g_eCvars [ _ : eCvars_Data ]; new g_iFields [ _ : Vault_Fields ]; new Float : g_flLastHud [ MAX_PLAYERS + 1 ]; new g_ePlayerInfo [ MAX_PLAYERS + 1 ][ _ : ePlayer_Info ]; public plugin_init ( ) { register_plugin ( "Top 15 Points" , PLUGIN_VERSION , "Chema" ); /* COMMANDS */ register_clcmd ( "say /top" , "m__TopMenu" ); /* HAMS */ RegisterHam ( Ham_Spawn , "player" , "h__PlayerSpawn_Post" , true ); RegisterHam ( Ham_Killed , "player" , "h__PlayerKilled_Post" , true ); RegisterHam ( Ham_Player_PreThink , "player" , "h__PlayerPreThink" ); /* EVENTS */ register_logevent ( "ev__RoundStart" , 2 , "0=World triggered" , "1=Round_Start" ); /* CVARS */ register_cvar ( "t15p_author" , "Chema" , FCVAR_SPONLY ); register_cvar ( "t15p_version" , PLUGIN_VERSION , FCVAR_SPONLY ); for( new i = 0 ; i < sizeof ( g_szCvars ); i ++ ) g_eCvars [ i ] = register_cvar ( g_szCvars [ i ][ Cvar_Name ], g_szCvars [ i ][ Cvar_Value ] ); g_iMaxPlayers = get_maxplayers ( ); g_iPlayerHud = CreateHudSyncObj ( ); set_task ( TASK_ADV_DELAY , "task__Advertising" , 0 , . flags = "b" ); ADV_Vault__Init ( ); g_iSortTop = adv_vault_sort_create ( g_iVault , ORDER_DESC , 0 , 0 , g_iFields [ Field_Points ] ); create__TopMenu ( ); } public plugin_precache ( ) precache_sound ( g_szSelectItemSound ); /* TASKS */ public task__Advertising ( ) client_print_color ( 0 , 0 , "%s Este servidor utiliza ^3TOP 15 POINTS^1 ^4%s^1 por ^4Chema^1." , g_szSayPrefix , PLUGIN_VERSION ); /* CLIENT-RELATED STUFF */ public client_putinserver ( iId ) { ClearPlayerBit ( g_iAlive , iId ); SetPlayerBit ( g_iConnected , iId ); if( SAVE_WITH == 1 ) get_user_name ( iId , g_ePlayerInfo [ iId ][ Player_Name ], charsmax ( g_ePlayerInfo [ ][ Player_Name ] ) ); else if( SAVE_WITH == 2 ) get_user_authid ( iId , g_ePlayerInfo [ iId ][ Player_SteamId ], charsmax ( g_ePlayerInfo [ ][ Player_SteamId ] ) ); else if( SAVE_WITH == 3 ) get_user_ip ( iId , g_ePlayerInfo [ iId ][ Player_Address ], charsmax ( g_ePlayerInfo [ ][ Player_Address ] ), true ); g_ePlayerInfo [ iId ][ Player_Points ] = 0 ; ADV_Vault__Manage ( iId , Load_Data ); } public client_disconnected ( iId ) { ClearPlayerBit ( g_iConnected , iId ); ClearPlayerBit ( g_iAlive , iId ); ADV_Vault__Manage ( iId , Save_Data ); } /* HAMS */ public h__PlayerSpawn_Post ( iId ) { if( ! is_user_alive ( iId ) ) return HAM_IGNORED ; SetPlayerBit ( g_iAlive , iId ); return HAM_IGNORED ; } public h__PlayerKilled_Post ( iVictim , iAttacker , iShouldGib ) { new iCheck ; iCheck = ( ! GetPlayerBit ( g_iConnected , iVictim ) || ! GetPlayerBit ( g_iConnected , iAttacker ) || iAttacker == iVictim || is_user_bot ( iAttacker ) ); if( iCheck ) return HAM_IGNORED ; ClearPlayerBit ( g_iAlive , iVictim ); static iKnife , iHeadshot , iNormal ; iKnife = ( get_pcvar_num ( g_eCvars [ Points_Knife ] ) ); iHeadshot = ( get_pcvar_num ( g_eCvars [ Points_Headshot ] ) ); iNormal = ( get_pcvar_num ( g_eCvars [ Points_Normal ] ) ); if( get_user_weapon ( iAttacker ) == CSW_KNIFE ) g_ePlayerInfo [ iAttacker ][ Player_Points ] += iKnife ; else if( get_pdata_int ( iVictim , 75 ) == HIT_HEAD ) g_ePlayerInfo [ iAttacker ][ Player_Points ] += iHeadshot ; else g_ePlayerInfo [ iAttacker ][ Player_Points ] += iNormal ; return HAM_IGNORED ; } public h__PlayerPreThink ( iId ) { if( GetPlayerBit ( g_iAlive , iId ) ) { new Float : flGameTime = get_gametime ( ); if( flGameTime - g_flLastHud [ iId ] > 0.8 ) { set_hudmessage ( 212 , 42 , 255 , - 1.0 , 0.02 , 1 , 6.0 , 0.8 ); ShowSyncHudMsg ( iId , g_iPlayerHud , "^n/-------------------------\^n| TIENES %i PUNTO%s. |^n\-------------------------/" , g_ePlayerInfo [ iId ][ Player_Points ], g_ePlayerInfo [ iId ][ Player_Points ] <= 1 ? "" : "S" ); g_flLastHud [ iId ] = flGameTime ; } } } /* EVENTS */ public ev__RoundStart ( ) { for( new iId = 1 ; iId <= g_iMaxPlayers ; iId ++ ) { if( ! GetPlayerBit ( g_iConnected , iId ) ) continue; console_print ( iId , "%s Tus datos han sido guardados!" , g_szConsolePrefix ); ADV_Vault__Manage ( iId , Save_Data ); } } /* TOP MENU */ public m__TopMenu ( iId ) { if( ! GetPlayerBit ( g_iConnected , iId ) ) return PLUGIN_HANDLED ; menu_display ( iId , g_iTopMenu ); return PLUGIN_HANDLED ; } public h__TopMenu ( iId , g_iTopMenu , iItem ) { if( iItem == MENU_EXIT ) return PLUGIN_HANDLED ; client_cmd ( iId , "spk ^" % s ^ "" , g_szSelectItemSound ); return PLUGIN_HANDLED ; } public create__TopMenu ( ) { new iPoints , iKeyIndex , szName [ MAX_NAME_LENGTH ], szBuffer [ 512 ], iNumResult ; iNumResult = adv_vault_sort_numresult ( g_iVault , g_iSortTop ); g_iTopMenu = menu_create ( "\r[SG]\y Menú de jugadores" , "h__TopMenu" ); for( new iId = 1 ; iId <= iNumResult ; iId ++ ) { iKeyIndex = adv_vault_sort_position ( g_iVault , g_iSortTop , iId ); if( ! adv_vault_get_prepare ( g_iVault , iKeyIndex ) ) continue; UnPack__Points ( adv_vault_get_field ( g_iVault , g_iFields [ Field_Points ] ), iPoints ); szName [ 0 ] = '^0' ; adv_vault_get_keyname ( g_iVault , iKeyIndex , szName , charsmax ( szName ) ); formatex ( szBuffer , charsmax ( szBuffer ), "\y#%d\r NOMBRE:\y %s\d -\r PUNTOS:\y %d" , iId , szName , iPoints ); menu_additem ( g_iTopMenu , szBuffer ); } menu_setprop ( g_iTopMenu , MPROP_PERPAGE , 6 ); menu_setprop ( g_iTopMenu , MPROP_NUMBER_COLOR , "\r" ); menu_setprop ( g_iTopMenu , MPROP_BACKNAME , "\yATRÃS" ); menu_setprop ( g_iTopMenu , MPROP_NEXTNAME , "\ySIGUIENTE" ); menu_setprop ( g_iTopMenu , MPROP_EXITNAME , "\yCERRAR" ); } /* ADV_VAULT STUFF */ public ADV_Vault__Init ( ) { g_iVault = adv_vault_open ( "top15points" , false ); g_iFields [ Field_Address ] = adv_vault_register_field ( g_iVault , "adress" , DATATYPE_STRING , 24 ); g_iFields [ Field_SteamId ] = adv_vault_register_field ( g_iVault , "steamid" , DATATYPE_STRING , 35 ); g_iFields [ Field_Points ] = adv_vault_register_field ( g_iVault , "points" ); adv_vault_init ( g_iVault ); } public ADV_Vault__Manage ( iId , iType ) { switch( iType ) { case Load_Data : { if( SAVE_WITH == 1 ) if( ! adv_vault_get_prepare ( g_iVault , _ , g_ePlayerInfo [ iId ][ Player_Name ] ) ) return; else if( SAVE_WITH == 2 ) if( ! adv_vault_get_prepare ( g_iVault , _ , g_ePlayerInfo [ iId ][ Player_SteamId ] ) ) return; else if( SAVE_WITH == 3 ) if( ! adv_vault_get_prepare ( g_iVault , _ , g_ePlayerInfo [ iId ][ Player_Address ] ) ) return; g_ePlayerInfo [ iId ][ Player_Points ] = adv_vault_get_field ( g_iVault , g_iFields [ Field_Points ] ); g_ePlayerInfo [ iId ][ Player_SteamId ] = adv_vault_get_field ( g_iVault , g_iFields [ Field_SteamId ] ); g_ePlayerInfo [ iId ][ Player_Address ] = adv_vault_get_field ( g_iVault , g_iFields [ Field_Address ] ); } case Save_Data : { if( ! GetPlayerBit ( g_iConnected , iId ) ) return; adv_vault_set_start ( g_iVault ); adv_vault_set_field ( g_iVault , g_iFields [ Field_Points ], g_ePlayerInfo [ iId ][ Player_Points ] ); adv_vault_set_field ( g_iVault , g_iFields [ Field_SteamId ], g_ePlayerInfo [ iId ][ Player_SteamId ] ); adv_vault_set_field ( g_iVault , g_iFields [ Field_Address ], g_ePlayerInfo [ iId ][ Player_Address ] ); if( SAVE_WITH == 1 ) adv_vault_set_end ( g_iVault , 0 , g_ePlayerInfo [ iId ][ Player_Name ] ); else if( SAVE_WITH == 2 ) adv_vault_set_end ( g_iVault , 0 , g_ePlayerInfo [ iId ][ Player_SteamId ] ); else if( SAVE_WITH == 3 ) adv_vault_set_end ( g_iVault , 0 , g_ePlayerInfo [ iId ][ Player_Address ] ); } } } stock UnPack__Points ( iPacked , & iPoints ) { iPoints = iPacked & 0xFF ; }
MAX_NAME_LENGTH y MAX_PLAYERS valen 32.
https://www.amxmodx.org/api/amxconst
Saludos.
Mensajes: 23
Temas: 11
Registro en: Jan 2018
Reputación:
0
Ahora si me compila y me sale el top y todo pero cuando juego no me da los puntos cuando mato a alguien...