Welcome Soldier.



[APORTE] Tribal Mod 1.6

Sky^^ Sin conexión
User
#1
AUTOR: Sky^^/Skylar
VERSIÓN: 1.6

DESCRIPCIÓN: Al comenzar la ronda se lanza un conteo de 10 segundos, estando el conteo se elige 1 usuario al azar de cada equipo y es seleccionado como el Tribal CT/TT.
El equipo tiene que proteger a su tribal, si el tribal de uno de los dos equipos muere, muere todo su equipo. 
El buy se desactiva luego de terminar el conteo de 10 segundos.

CVARS: 
  • amx_mod_enable( default 1 ) = activar/desactivar el modo. 0 desactivar - 1 activar.
  • amx_minimum_players( default 4 ) = players que se requieren para iniciar el modo.
  • amx_time_count( default 10 ) = tiempo que dura el conteo.
  • amx_health_tribals( default 200 ) = vida de los tribales.
  • amx_armor_tribals( default 150 ) = armadura de los tribales.
CÓDIGO: 
Código PHP:
/* =================================================

    - CHANGELOG:
        - 1.0: Creación del mod.
        - 1.1: Se corrigieron bugs.
        - 1.2: Se corrigieron bugs.
               Se agregó cvar para la vida de los tribales.
               Se mejoraron algunas funciones.
        - 1.3: Se cambió el método para bloquear el c4.
               Se bloqueó el comando 'kill'.
               Se corrigieron bugs.
        - 1.4: Se agregaron bitsums.
               Se agregaron cvars para:
                  - Activar/Desactivar el mod.
              - Mínimo de players que se necesita para que funcione el mod.
              - Cambiar el tiempo de conteo.
               Se corrigieron bugs.
        - 1.5: Se corrigieron bugs.
               Se mejorarn algunas funciones.
               Se agregó:
              - Si uno de los tribales se desconecta se elige uno nuevo.
              - Si uno de los tribales se suicida, mata al team entero.
               Se modificaron los hud's.
        - 1.6: Se mejoraron algunos códigos.

================================================= */

#include <amxmodx>
#include <cstrike>
#include <engine>
#include <fakemeta>
#include <fun>
#include <hamsandwich>

new const szPlugin[ ][ ] = { "Tribal Mod""1.6""Sky^^" };
new const 
szPrefix[ ] = "^3[ - ]^1";

/* ================================================= */

new g_randomUsers33 ][ ];
new 
g_userSelected;
new 
g_hudCountg_timeCount;
new 
g_hudTeamg_hudSelected;
new 
g_maxPlayers;
new 
cvar_modEnabledcvar_minPlayerscvar_timeCount;
new 
cvar_healthUserscvar_armorUsers;
new 
g_fwSpawn;
new 
g_userConnectedg_userAlive;

#define TASK_COUNT 8965
#define TEAM_CT "CT"
#define TEAM_TT "TERRORIST"
#define BitTrue(%1,%2) ( %1 |= ( 1 << ( %2 & 31 ) ) ) 
#define IsBit(%1,%2) ( %1 & ( 1 << ( %2 & 31 ) ) ) 
#define BitFalse(%1,%2) ( %1 &= ~ ( 1 << ( %2 & 31 ) ) ) 

new const REMOVE_OBJETIVES_ENTS[ ][ ] = { "func_bomb_target""info_bomb_target""info_vip_start"
        
"func_vip_safetyzone""func_escapezone""hostage_entity",
        
"monster_scientist""func_hostage_rescue""info_hostage_rescue"
        
"env_fog""env_rain""env_snow""item_longjump""func_vehicle""weapon_c4"
};

/* ================================================= */

public plugin_init( ) {
    
register_pluginszPlugin], szPlugin], szPlugin] );
    
    
cvar_modEnabled register_cvar"amx_mod_enable""1" );
    
cvar_minPlayers register_cvar"amx_minimum_players""4" );
    
cvar_timeCount register_cvar"amx_time_count""10" );
    
    
cvar_healthUsers register_cvar"amx_health_tribals""200" );
    
cvar_armorUsers register_cvar"amx_armor_tribals""150" );
    
    
register_event"HLTV""event__RoundStart""a""1=0""2=0"  );
    
register_logevent"event__RoundEnd"2"1=Round_End" );
    
register_event"SendAudio""event__WinTerrorist""a""2&%!MRAD_terwin" );
    
register_event"SendAudio""event__WinPolice""a""2&%!MRAD_ctwin" );
    
    
RegisterHamHam_Spawn"player""fw__PlayerSpawn" );
    
RegisterHamHam_Killed"player""fw__PlayerKilled")
    
unregister_forwardFM_Spawng_fwSpawn );
    
register_messageget_user_msgid"StatusIcon" ), "message__StatusIcon" );
    
    
g_hudCount CreateHudSyncObj( );
    
g_hudTeam CreateHudSyncObj( );
    
g_hudSelected CreateHudSyncObj( );
    
g_maxPlayers get_maxplayers( );
    
    
set_task1.0"plugin_cfg" );
}

public 
plugin_precache( ) g_fwSpawn register_forwardFM_Spawn"fw__Spawn" );

public 
plugin_cfg( ) {
    
set_cvar_num"mp_autoteambalance");
    
set_cvar_num"mp_roundtime");
}

public 
client_putinserverid BitTrueg_userConnectedid );

public 
client_disconnectid ) {
    
BitFalseg_userConnectedid );
    
BitFalseg_userAliveid );
    
    if( 
g_randomUsersid ][ ] && get__TribalsCT( ) >= ) {
        
g_randomUsersid ][ ] = false;
        
select__newUsers);
    }
    else if( 
g_randomUsersid ][ ] && get__TribalsT( ) >= ) {
        
g_randomUsersid ][ ] = false;
        
select__newUsers);
    }
}

/* ================================================= */

public event__RoundStart( ) {
    if( !
get_pcvar_numcvar_modEnabled ) ) return PLUGIN_HANDLED;
    
    if( 
get_playersnum( ) < get_pcvar_numcvar_minPlayers ) ) {
        
cc0"%s Se necesitan mínimo^4 %d players^1 para iniciar el modo."szPrefixget_pcvar_numcvar_minPlayers ) );
        return 
PLUGIN_HANDLED;
    }
    
    for( new 
1<= g_maxPlayersi++ ) {
        if( !
IsBitg_userConnected) ) continue;
        
        
set_user_rendering);
        
        
g_randomUsers][ ] = false;
        
g_randomUsers][ ] = false;
    }
    
    
g_userSelected false;
    
remove_taskTASK_COUNT );
    
g_timeCount get_pcvar_numcvar_timeCount );
    
set_task1.0"start__Count"TASK_COUNT__"b" );
    
set_cvar_num"mp_freezetime"12 );
    
    return 
PLUGIN_HANDLED;
}

public 
event__RoundEnd( ) {
    if( !
get_pcvar_numcvar_modEnabled ) ) return;
    
    for( new 
1<= g_maxPlayersi++ ) {
        if( !
IsBitg_userConnected) ) continue;
        
        
set_user_rendering);
    }
}

public 
event__WinTerrorist( ) {
    if( !
get_pcvar_numcvar_modEnabled ) ) return;
    
    
set_hudmessage25500, -1.00.2820.022.50.010.110 );
    
ShowSyncHudMsg0g_hudTeam"¡ GANARON LOS TERRORISTAS DEBIDO A QUE MURIÓ EL TRIBAL POLICÍA !" );
}
public 
event__WinPolice( ) {
    if( !
get_pcvar_numcvar_modEnabled ) ) return;
    
    
set_hudmessage00255, -1.00.2820.022.50.010.110 );
    
ShowSyncHudMsg0g_hudTeam"¡ GANARON LOS POLICÍAS DEBIDO A QUE MURIÓ EL TRIBAL TERRORISTA !" );
}

public 
fw__PlayerSpawnid ) {
    if( !
get_pcvar_numcvar_modEnabled ) ) return;
    
    if( 
IsBitg_userConnectedid ) && is_user_aliveid ) )
        
BitTrueg_userAliveid );
}

public 
fw__PlayerKilledvictimattackershouldgib ) {
    if( !
get_pcvar_numcvar_modEnabled ) ) return;
    
    static 
diedAlonediedAlone = ( victim == attacker || !IsBitg_userConnectedattacker ) ) ? 0
    
    
if( diedAlone ) {
        if( 
g_randomUsersvictim ][ ] ) KillTeamTEAM_CT );
        else if( 
g_randomUsersvictim ][ ] ) KillTeamTEAM_TT );
    }
        
    if( 
g_randomUsersvictim ][ ] ) KillTeamTEAM_CT );
    else if( 
g_randomUsersvictim ][ ] ) KillTeamTEAM_TT );
}

public 
client_killid ) return PLUGIN_HANDLED

public 
fw__Spawnentity ) {
    if( !
pev_validentity ) ) return FMRES_IGNORED;
 
    
    
new classname32 ];
    
peventitypev_classnameclassnamesizeof classname );
 
   
    
for( new 0sizeof REMOVE_OBJETIVES_ENTS; ++) {
        if ( 
equalclassnameREMOVE_OBJETIVES_ENTS] ) ) {
            
engfuncEngFunc_RemoveEntityentity );
            return 
FMRES_SUPERCEDE;
        }
    }
 
   
    
return FMRES_IGNORED;
}

public 
message__StatusIconmsg_idmsg_destid ) {
    if( !
g_timeCount && get_pcvar_numcvar_modEnabled ) == ) {
        static 
szIcon];
        
get_msg_arg_string2szIconcharsmaxszIcon ) );
        
        if( 
equalszIcon"buyzone" ) && get_msg_arg_int) ) {
            
set_pdata_intid235get_pdata_intid235 ) & ~(1<<0) );
            return 
PLUGIN_HANDLED;
        }
    }
    
    return 
PLUGIN_CONTINUE;
}

/* ================================================= */

public start__Count( ) {
    
set_hudmessagerandom_num0255 ), random_num0255 ), random_num0255 ), -1.00.2820.022.00.010.110 );
    
ShowSyncHudMsg0g_hudCount"TIEMPO DE PREPARACIÓN: %i^nLUEGO DEL CONTEO SE DESACTIVARÁ EL BUY^n¡ SUERTE A AMBOS EQUIPOS !"g_timeCount );
    
    
g_timeCount--;
    if( !
g_userSelected set_task0.3"start__Mod" );
    
    if( !
g_timeCount )
        
remove_taskTASK_COUNT );
}

public 
start__Mod( ) {
    
g_userSelected true;
    
    new 
szNameOne32 ], szNameTwo32 ];
    new 
szUsersOneszUsersTwo;
    
    
szUsersOne choose__Users"ae"TEAM_CT );
    
szUsersTwo choose__Users"ae"TEAM_TT );
    
    
get_user_nameszUsersOneszNameOnecharsmaxszNameOne ) );
    
get_user_nameszUsersTwoszNameTwocharsmaxszNameTwo ) );
    
    
g_randomUsersszUsersOne ][ ] = true;
    
g_randomUsersszUsersTwo ][ ] = true;
    
    
set_user_healthszUsersOneget_pcvar_numcvar_healthUsers ) );
    
set_user_armorszUsersOneget_pcvar_numcvar_armorUsers ) );
    
set_renderingszUsersOnekRenderFxGlowShell00255kRenderNormal50 );
    
set_user_healthszUsersTwoget_pcvar_numcvar_healthUsers ) );
    
set_user_armorszUsersTwoget_pcvar_numcvar_armorUsers ) );
    
set_renderingszUsersTwokRenderFxGlowShell25500kRenderNormal50 );
    
    
set_hudmessage432550, -1.0, -1.020.022.00.010.110 );
    
ShowSyncHudMsg0g_hudSelected"TRIBAL TERRORISTA: %s | TRIBAL POLICÍA: %s^n¡ PROTEJAN A SUS TRIBALES O MORIRÁN !"szNameTwoszNameOne );
}

public 
select__newUserstype ) {
    if( 
type == ) {
        new 
szUsersNew choose__Users"ae"TEAM_CT );
        new 
szNameNew32 ]; get_user_nameszUsersNewszNameNewcharsmaxszNameNew ) );
        
        
g_randomUsersszUsersNew ][ ] = true;
        
        
set_user_healthszUsersNewget_pcvar_numcvar_healthUsers ) );
        
set_user_armorszUsersNewget_pcvar_numcvar_armorUsers ) );
        
set_renderingszUsersNewkRenderFxGlowShell00255kRenderNormal50 );
        
        
cc0"%s El Tribal Policia se desconectó,^4 %s^1 es el nuevo Tribal Policía."szPrefixszNameNew );
    }
    if( 
type == ) {
        new 
szUsersNewT choose__Users"ae"TEAM_TT );
        new 
szNameNewT32 ]; get_user_nameszUsersNewTszNameNewTcharsmaxszNameNewT ) );
        
        
g_randomUsersszUsersNewT ][ ] = true;
        
        
set_user_healthszUsersNewTget_pcvar_numcvar_healthUsers ) );
        
set_user_armorszUsersNewTget_pcvar_numcvar_armorUsers ) );
        
set_renderingszUsersNewTkRenderFxGlowShell25500kRenderNormal50 );
        
        
cc0"%s El Tribal Terrorista se desconectó,^4 %s^1 es el nuevo Tribal Terrorista."szPrefixszNameNewT );
    }
}

/* ================================================= */

stock ccid, const input[ ], any:... ) {
    static 
szMsg191 ], msgSayText;
    
    if( !
msgSayText msgSayText get_user_msgid"SayText" );
    
    
vformatszMsg190input);
    
    
replace_allszMsg190"!g""^4" );
    
replace_allszMsg190"!y""^1" );
    
replace_allszMsg190"!team""^3" );
    
    
message_beginid MSG_ONE_UNRELIABLE MSG_BROADCASTmsgSayText, .player id );
    
write_byteid id 33 );
    
write_stringszMsg );
    
message_end( );
}

stock choose__Users( const Flags[ ]="", const Team[ ]="" ) {
    static 
szPlayers32 ], szNum;
    
get_playersszPlayersszNumFlagsTeam );
    
    return 
szPlayersrandomszNum ) ]
}

KillTeam( const Team[ ] )
{
    new 
Players32 ], Pnumi;
    
get_playersPlayersPnum"ae"Team );
    
    for( 
0;Pnum;i++ ) user_silentkillPlayers] );
}

get__TribalsT( ) {
    new 
itt;
 
   
    
for( 1<= g_maxPlayers; ++) {
        if( 
cs_get_user_team) == CS_TEAM_T )
            ++
tt;
    }
    
    return 
tt;


get__TribalsCT( ) {
    new 
ict;
    
    for( 
1<= g_maxPlayers; ++) {
        if( 
cs_get_user_team) == CS_TEAM_CT )
            ++
ct;
    }
    
    return 
ct;


Bug o duda, lo comentan.
Saludos.
[Imagen: 76561198095047868.png]

Perfil de amxmodx-es: Skylar
Responder



Mensajes en este tema
Tribal Mod 1.6 - por Sky^^ - 04-25-2018, 10:12 PM
RE: Tribal Mod 1.6 - por GabsHp - 04-25-2018, 10:15 PM
RE: Tribal Mod 1.6 - por Sky^^ - 04-25-2018, 10:22 PM
RE: Tribal Mod 1.6 - por [C.S.I]TeMate - 05-15-2018, 04:35 AM



Usuarios navegando en este tema:
1 invitado(s)



Sobre M X E M E X I C O

Comunidad MxE © 2020 - La mejorar comunidad de Counter Strike 1.6 .