Don Liviu Posted June 5, 2014 Share Posted June 5, 2014 Descriere : Arata un mesaj hud cu urmatoarele informatii despre bomba: Bomb Planted : Yes/No BombSite : A/B/No Status : Dropped/Carried Carrier : Name/ No ( daca bomba a fost plantata arata Planter: Nume ) Distance To Bomb: Distanta/No BombPlanted: daca bomba e plantata,va arata Yes,altfel va arata NO. BombSites: daca bomb nu e plantata va arata No, altfel va arata A/B. Status : va arata Dropped daca bomba pe jos, Carried daca un player o are. Carrier : daca bomba nu e pe jos va arata numele playerului care o are, altfel va arata No. In cazul in care a fost plantata arata numele celui care a plantat-o. Distance To Bomb: daca e plantata va arata distanta, daca nu va arata NO. Sursa : #include < amxmodx > #include < amxmisc >#include < fakemeta >#include < engine >#include < csx >#include < cstrike >#include < dhudmessage >new bool: MapHasBombSites, bool: IsMapSwappednew BombPlanted, g_iBombSites [ 3 ], iValue = 0,iStatus ,szName1[ 33 ], szPlanterName [ 33 ]new g_iTeam , hud_typenew const g_szFileName [ ] = "swapped_maps.ini";new File [ 128 ]new Float: g_fBombSitesOrigins [ 3 ] [ 3 ] , Float: g_fBombOrigins [ 3 ]public plugin_init ( ) { register_plugin ( "Bomb Status" , "0.4" , "HamletEagle" ) register_logevent("Logevent_BombDropped", 3, "2=Dropped_The_Bomb") register_logevent("Logevent_BombCollected", 3, "2=Got_The_Bomb") register_logevent("Logevent_SpawnedWithBomb", 3, "2=Spawned_With_The_Bomb") register_logevent("Logevent_RoundEnd", 2, "1=Round_End") g_iTeam = register_cvar ( "bomb_status_team" , "0" ) /* 0 - everyone can see the hud 1 - only t can see the hud 2 - only ct can see the hud */ hud_type = register_cvar ( "bomb_hud_type" , "0" ) /* 0 - default hud messages 1 - dhud messages */}public plugin_cfg ( ) { new Dir[ 64 ]; get_configsdir ( Dir, sizeof ( Dir ) - 1 ) formatex( File, sizeof ( File ) -1, "%s/%s", Dir, g_szFileName ); if( ! file_exists( File ) ) { write_file( File, ";Here you will write the swapped maps." ) write_file( File, ";A map is swapped when it has inversed bomb site." ) write_file( File, ";If the plugin display incorectly the Bomb Site where the bomb is planted" ) write_file( File, ";add the map name here." ) write_file( File, "de_dust2" ) write_file( File, "de_chateau" ) } LoadFile ( ) CheckAndFindBombSites ( ) }public LoadFile ( ) { new iFile = fopen( File, "rt" ); if( iFile ) { new szData[ 128 ],szLine[ 32 ] new szMapName [ 33] get_mapname ( szMapName, sizeof ( szMapName ) -1 ) while( !feof( iFile ) ) { fgets( iFile, szData, sizeof ( szData ) -1 ) if( !szData[ 0 ] || szData[ 0 ] == ';' || ( szData[ 0 ] == '/' && szData[ 1 ] == '/' ) ) continue parse( szData, szLine, sizeof ( szLine ) -1 ) if( equal( szMapName, szLine ) ) IsMapSwapped = true } } fclose( iFile ); }public CheckAndFindBombSites ( ) { new iEntities [ 3 ] iEntities [ 1 ] = engfunc(EngFunc_FindEntityByString, -1 , "classname", "func_bomb_target") iEntities [ 2 ] = engfunc(EngFunc_FindEntityByString,-1 , "classname", "info_bomb_target") if ( pev_valid ( iEntities [1 ] ) || pev_valid ( iEntities [ 2 ] ) ) MapHasBombSites = true if ( ! MapHasBombSites ) return; if ( IsMapSwapped ) { g_iBombSites [ 2 ] = find_ent_by_class ( -1 , "func_bomb_target" ) g_iBombSites [ 1 ] = find_ent_by_class ( g_iBombSites [ 2 ] , "func_bomb_target" ) } else { g_iBombSites [ 1 ] = find_ent_by_class ( -1 , "func_bomb_target" ) g_iBombSites [ 2 ] = find_ent_by_class ( g_iBombSites [ 1 ] , "func_bomb_target" ) } if ( pev_valid ( g_iBombSites [ 1 ] ) ) get_brush_entity_origin ( g_iBombSites [ 1 ] , g_fBombSitesOrigins [ 1 ] ) if ( pev_valid ( g_iBombSites [ 2 ] ) ) get_brush_entity_origin ( g_iBombSites [ 2 ] , g_fBombSitesOrigins [ 2 ] ) }public bomb_planted ( planter ) { new Bomb = find_ent_by_model ( -1, "grenade", "models/w_c4.mdl" ) if ( pev_valid ( Bomb ) ) pev ( Bomb , pev_origin , g_fBombOrigins ) if ( ! Bomb || ! g_iBombSites [ 1 ] && ! g_iBombSites [ 2 ] ) //if we are here,we should have a valid bomb,but let's check again return ; BombPlanted = 1 new Float:iDist [ 3 ] iDist [ 1 ] = get_distance_f ( g_fBombOrigins , g_fBombSitesOrigins [ 1 ] ) iDist [ 2 ] = get_distance_f ( g_fBombOrigins , g_fBombSitesOrigins [ 2 ] ) if ( iDist [ 1 ] < iDist [ 2 ] ) iValue = 1 else iValue = 2 get_user_name ( planter , szPlanterName, sizeof ( szPlanterName ) -1 ) iStatus = 1}public Logevent_BombDropped ( ) iStatus = 1public Logevent_BombCollected ( ) { iStatus = 0 set_task ( 0.1 ,"GetName" ) //without task, the index will be the world}public Logevent_SpawnedWithBomb ( ) GetName ( )public client_putinserver ( id ) if ( MapHasBombSites ) set_task ( 3.0 , "ShowHud", id ) public ShowHud ( id ) { new CsTeams: Team = cs_get_user_team ( id ) new Float:PlayerOrigins[3] pev(id, pev_origin, PlayerOrigins) new HudMessage [ 128 ] if ( BombPlanted ) formatex ( HudMessage, sizeof ( HudMessage ) -1 , "Bomb Planted :%s^nBombSite: %s^nStatus:Planted^nPlanter:%s^nDistante To Bomb: %i",BombPlanted == 1 ? "Yes" : "No",iValue == 1 ? "A" :"B", szPlanterName, floatround ( get_distance_f (PlayerOrigins, g_fBombOrigins) / 100 ) ) if ( !BombPlanted ) { if ( iStatus == 1 ) formatex ( HudMessage, sizeof ( HudMessage ) -1 , "Bomb Planted :%s^nBombSite: No^nStatus:%s ^nCarrier:No^nDistante To Bomb: No",BombPlanted == 1 ? "Yes" : "No",iStatus == 1 ? "Dropped" : "Carried" ) else formatex ( HudMessage, sizeof ( HudMessage ) -1 , "Bomb Planted :%s^nBombSite: No^nStatus:%s^nCarrier:%s^nDistante To Bomb:No",BombPlanted == 1 ? "Yes" : "No",iStatus == 1 ? "Dropped" : "Carried" ,szName1) } switch ( get_pcvar_num ( g_iTeam ) ) { case 0 : { switch ( get_pcvar_num ( hud_type ) ) { case 0 : { set_hudmessage(0, 255, 85, 0.0, 0.15, 0, 6.0, 12.0) ShowSyncHudMsg(0 , CreateHudSyncObj ( ) , HudMessage) } case 1 : { set_dhudmessage(0, 255, 85, 0.0, 0.15, 0, 6.0, 12.0) show_dhudmessage ( 0 , HudMessage ) } } } case 1 : if ( Team == CS_TEAM_T ) { switch ( get_pcvar_num ( hud_type ) ) { case 0 : { set_hudmessage(id, 255, 85, 0.0, 0.15, 0, 6.0, 12.0) ShowSyncHudMsg(id , CreateHudSyncObj ( ) , HudMessage) } case 1 : { set_dhudmessage(id, 255, 85, 0.0, 0.15, 0, 6.0, 12.0) show_dhudmessage ( id , HudMessage ) } } } case 2 : { if ( Team == CS_TEAM_CT ) { switch ( get_pcvar_num ( hud_type ) ) { case 0 : { set_hudmessage(id, 255, 85, 0.0, 0.15, 0, 6.0, 12.0) ShowSyncHudMsg(id , CreateHudSyncObj ( ) , HudMessage) } case 1 : { set_dhudmessage(id, 255, 85, 0.0, 0.15, 0, 6.0, 12.0) show_dhudmessage ( id , HudMessage ) } } } } } set_task ( 0.1 , "ShowHud" , id ) }public client_disconnect ( id ) remove_task ( id )public bomb_explode ( ) BombPlanted = falsepublic bomb_defused ( ) BombPlanted = falsepublic Logevent_RoundEnd ( ) BombPlanted = false public GetName ( ) { new id1 = 0, EntOwner new iBomb iBomb = find_ent_by_class(-1, "weapon_c4") if ( pev_valid ( iBomb ) && !BombPlanted ) { EntOwner = pev(iBomb, pev_owner) id1 = EntOwner get_user_name ( id1 , szName1, sizeof ( szName1 ) -1 ) } } Nume: Bomb Site Help Versiune: 0.4 Instalare: 1. Fisierul bomb_info.sma il puneti in addons/amxmodx/scripting 2. Fisierul bomb_info.amxx il puneti in addons/amxmodx/plugins 3. Intrati in fisierul addons/amxmodx/configs/plugins.ini si adaugati la urma: bomb_info.amxx 4. In cazul in care BombSite-ul nu este aratat corect ( A in loc de B sau invers ), citeste sectiunea FAQ. 5. In fisierul addons/amxmodx/configs/swapped_maps.ini adaugati hartile care au bomb site-urile inversate. ( Citeste FAQ pentru mai multe detalii ). Cvar-uri (se adauga in fisierul amxmodx\configs\amxx.cfg): bomb_status_team-echipa care sa vada mesajele hud 0 - toti il vad 1 - doar t 2 - doar ct bomb_hud_type-tipul hudului 0 - hud normal 1 - dhud Comenzi administrative (se tasteaza in consola si trebuie sa fiti administrator): Nu contine Comenzi publice (se tasteaza in joc prin apasarea tastei Y): Nu contine Module necesare (se sterge ; din fata modulului de mai jos; acestea le gasiti in fisierul amxmodx\configs\modules.ini): amxmodx amxmisc fakemeta engine csx cstrike 1 Link to comment Share on other sites More sharing options...
Recommended Posts