Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ANTI_TEAMKILL_TEAMS_TABLE = ANTI_TEAMKILL_TEAMS_TABLE || { };
- //
- // Added so that DarkRP has time to create the teams before we access the values.
- // Other hooks that may work: InitPostEntity, Initialize ( may run too early )
- //
- hook.Add( "CreateTeams", "ParseTableAtRightTime", function( )
- ANTI_TEAMKILL_TEAMS_TABLE = {
- // Please note, your team system may require an ID to compare instead of a string name
- // as depicted below; If you use string identifiers, or string identifiers are returned
- // when you print( Entity( 1 ):Team( ) ), you'd put those identifiers below. IF they are
- // referenced as numerical ids, you may need to parse the identifiers by wrapping them in
- // square-brackets ( [ ] ).
- //
- // PARSED AS NUMERICAL KEY EXAMPLE ( Rest of the script will work as is ):
- TEAM_CINFANTRY1 = 1;
- TEAM_CINFANTRY2 = 1;
- TEAM_CINFANTRY3 = 1;
- TEAM_CINFANTRY4 = 1;
- TEAM_CINFANTRY5 = 1;
- TEAM_CINFANTRY6 = 1;
- TEAM_CINFANTRY7 = 1;
- TEAM_CINFANTRY8 = 1;
- TEAM_CINFANTRY9 = 1;
- TEAM_CINFANTRY10 = 1;
- TEAM_CRECON1 = 1;
- TEAM_CRECON2 = 1;
- TEAM_CRECON3 = 1;
- TEAM_CRECON4 = 1;
- TEAM_CRECON5 = 1;
- TEAM_CRECON6 = 1;
- TEAM_CRECON7 = 1;
- TEAM_CRECON8 = 1;
- TEAM_CRECON9 = 1;
- TEAM_CRECON10 = 1;
- TEAM_CBALLISTIC1 = 1;
- TEAM_CBALLISTIC2 = 1;
- TEAM_CBALLISTIC3 = 1;
- TEAM_CBALLISTIC4 = 1;
- TEAM_CBALLISTIC5 = 1;
- TEAM_CBALLISTIC6 = 1;
- TEAM_CBALLISTIC7 = 1;
- TEAM_CBALLISTIC8 = 1;
- TEAM_CBALLISTIC9 = 1;
- TEAM_CBALLISTIC10 = 1;
- TEAM_CSUPPORT1 = 1;
- TEAM_CSUPPORT2 = 1;
- TEAM_CSUPPORT3 = 1;
- TEAM_CSUPPORT4 = 1;
- TEAM_CSUPPORT5 = 1;
- TEAM_CSUPPORT6 = 1;
- TEAM_CSUPPORT7 = 1;
- TEAM_CSUPPORT8 = 1;
- TEAM_CSUPPORT9 = 1;
- TEAM_CSUPPORT10 = 1;
- TEAM_CMARKSMAN1 = 1;
- TEAM_CMARKSMAN2 = 1;
- TEAM_CMARKSMAN3 = 1;
- TEAM_CMARKSMAN4 = 1;
- TEAM_CMARKSMAN5 = 1;
- TEAM_CMARKSMAN6 = 1;
- TEAM_CMARKSMAN7 = 1;
- TEAM_CMARKSMAN8 = 1;
- TEAM_CMARKSMAN9 = 1;
- TEAM_CMARKSMAN10 = 1;
- TEAM_CSPECIAL1 = 1;
- TEAM_CSPECIAL2 = 1;
- TEAM_CSPECIAL3 = 1;
- TEAM_CSPECIAL4 = 1;
- TEAM_CSPECIAL5 = 1;
- TEAM_CSPECIAL6 = 1;
- TEAM_CSPECIAL7 = 1;
- TEAM_CSPECIAL8 = 1;
- TEAM_CSPECIAL9 = 1;
- TEAM_CSPECIAL10 = 1;
- TEAM_RINFANTRY1 = 2;
- TEAM_RINFANTRY2 = 2;
- TEAM_RINFANTRY3 = 2;
- TEAM_RINFANTRY4 = 2;
- TEAM_RINFANTRY5 = 2;
- TEAM_RINFANTRY6 = 2;
- TEAM_RINFANTRY7 = 2;
- TEAM_RINFANTRY8 = 2;
- TEAM_RINFANTRY9 = 2;
- TEAM_RINFANTRY10 = 2;
- TEAM_RRECON1 = 2;
- TEAM_RRECON2 = 2;
- TEAM_RRECON3 = 2;
- TEAM_RRECON4 = 2;
- TEAM_RRECON5 = 2;
- TEAM_RRECON6 = 2;
- TEAM_RRECON7 = 2;
- TEAM_RRECON8 = 2;
- TEAM_RRECON9 = 2;
- TEAM_RRECON10 = 2;
- TEAM_RBALLISTIC1 = 2;
- TEAM_RBALLISTIC2 = 2;
- TEAM_RBALLISTIC3 = 2;
- TEAM_RBALLISTIC4 = 2;
- TEAM_RBALLISTIC5 = 2;
- TEAM_RBALLISTIC6 = 2;
- TEAM_RBALLISTIC7 = 2;
- TEAM_RBALLISTIC8 = 2;
- TEAM_RBALLISTIC9 = 2;
- TEAM_RBALLISTIC10 = 2;
- TEAM_RSUPPORT1 = 2;
- TEAM_RSUPPORT2 = 2;
- TEAM_RSUPPORT3 = 2;
- TEAM_RSUPPORT4 = 2;
- TEAM_RSUPPORT5 = 2;
- TEAM_RSUPPORT6 = 2;
- TEAM_RSUPPORT7 = 2;
- TEAM_RSUPPORT8 = 2;
- TEAM_RSUPPORT9 = 2;
- TEAM_RSUPPORT10 = 2;
- TEAM_RMARKSMAN1 = 2;
- TEAM_RMARKSMAN2 = 2;
- TEAM_RMARKSMAN3 = 2;
- TEAM_RMARKSMAN4 = 2;
- TEAM_RMARKSMAN5 = 2;
- TEAM_RMARKSMAN6 = 2;
- TEAM_RMARKSMAN7 = 2;
- TEAM_RMARKSMAN8 = 2;
- TEAM_RMARKSMAN9 = 2;
- TEAM_RMARKSMAN10 = 2;
- TEAM_RSPECIAL1 = 2;
- TEAM_RSPECIAL2 = 2;
- TEAM_RSPECIAL3 = 2;
- TEAM_RSPECIAL4 = 2;
- TEAM_RSPECIAL5 = 2;
- TEAM_RSPECIAL6 = 2;
- TEAM_RSPECIAL7 = 2;
- TEAM_RSPECIAL8 = 2;
- TEAM_RSPECIAL9 = 2;
- TEAM_RSPECIAL10 = 2;
- end );
- //
- // When making hooks, it is best to remain non-intrusive. Other hooks may be running to determine damage in addition to this one.
- // To remain non-intrusive we create the scenario which matches the logic we're using; nothing else should be touched.
- //
- //
- // Perform the action that prevents team-damage between like-teams
- //
- hook.Add("PlayerShouldTakeDamage", "PlayerShouldTakeDamage:AvoidTeamDamage", function( _victim, _attacker )
- // Make sure both victim and attacker are valid entities and that they're both player entities -- The victim can be assumed a player because of the hook. We're just calling it to remain uniform.
- if ( IsValid( _victim ) && IsValid( _attacker ) && _victim:IsPlayer( ) && _attacker:IsPlayer( ) ) then
- // If both victim and attacker team data matches, don't allow damage. This is the ONLY test we need to perform.
- if ( ANTI_TEAMKILL_TEAMS_TABLE[ _victim:Team( ) ] == ANTI_TEAMKILL_TEAMS_TABLE[ _attacker:Team( ) ] ) then
- return false;
- end
- end
- end );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement