Jump to content
Sign in to follow this  
Murcielago_ESP

Team Killer Lock System

Recommended Posts

LtIpm9S9X9U

ABRKy3Q_O0A



Download: http://www.armaholic.com/page.php?id=18606

The TKL system is a tiny solution that fix a big problem... team killers or people destroying vital gaming elements. TKL system is easy to use and in addition is an autonomous system, so it does not need a admin or votes.

TKL system punishes team killers by freezing their avatar (10sec, 90sec, 5min...) letting they know that they did something wrong but when they reach the maximum number of friendly kills their games will be locked automatically until the server restart or mission is changed.

Every 5min the list with all the game ID from team killers will be copied so everyone can has access to this information. This games ID can be introduced into the TKL system to ban automatically those users.

Now you do not need to waste your time to have any type of server protected from team killers.

How to use it?

The attached file is an Arma 2 mission folder (Takistan).

1. Add the "Init.sqf" file and the "TeamKillerLock" folder to your mission folder.

2. Add inside the "Initialization" box to every unit you want to protect this:

This addEventHandler ["Killed",{Null = _This Spawn TKL_Killed;}];

The idea behind the TKL system is an extra marker per player, I guess the Arma engine can handle that ;)

Any comments are welcome.

Murcielago - mgllgm@hotmail.com Edited by Murcielago_ESP

Share this post


Link to post
Share on other sites

LtIpm9S9X9U



Download: http://www.armaholic.com/page.php?id=18606

This new version includes 3 new features:
. Ability to forgive team killer.
. Hit and run detector.
. Reduction of team kill count with the time.

Ability to forgive team killer:
Now when you are killed by a team mate you will be capable to forgive him... or not! The TKL system will punish team killer by default so you do not need to spend your time but if you one you can forgive him.

Hit and run detector:
Now the TKL will detect hit and run actions. Like the rest of the TKL system it works without creating extra communication or adding issues (The punishment will applied only on the driver not the owner of the vehicle)

Reduction of team kill count with the time:
This new version allows to decrease the team killer count with the time. The time to remove one team kill from the team kill count can be easily changed (By default is 10min)

In addition some other improvements have been introduced.

Murcielago

Share this post


Link to post
Share on other sites

Download: http://www.armaholic.com/page.php?id=18606

This new version includes 3 new features:

. Ability to forgive team killer.

. Hit and run detector.

. Reduction of team kill count with the time.

Ability to forgive team killer:

Now when you are killed by a team mate you will be capable to forgive him... or not! The TKL system will punish team killer by default so you do not need to spend your time but if you one you can forgive him.

Hit and run detector:

Now the TKL will detect hit and run actions. Like the rest of the TKL system it works without creating extra communication or adding issues (The punishment will applied only on the driver not the owner of the vehicle)

Reduction of team kill count with the time:

This new version allows to decrease the team killer count with the time. The time to remove one team kill from the team kill count can be easily changed (By default is 10min)

In addition some other improvements have been introduced.

Murcielago

I'm surprised no one's replied yet mate. Been using these scripts in crCTI, very cool mate, and thanks for the update, already implemented and when my mate pulls his thumb out I will give it a good test in a bit. He's always shooting the wrong people so I'll use him as the guinea pig!

Cheers Murcielago ;)

Edited by Foxhound
nearly here for 10 years and still quoting videos?

Share this post


Link to post
Share on other sites

I'm surprised too... I just create an easy complete automatic team killer lock system with a marker... Achieving it made feel crazy but is better when your work and dedication is recognized. Talking about been recognized... I just received an e-mail from a guy who have been playing my Silent Rescue mission for about 4 weeks with his team... Finally they won and they saw the cool ending! That is really amazing!

Thanks Team Eugene!

Murcielago.

Share this post


Link to post
Share on other sites

Can't get this working with Domination, please help...

init.sqf :

#define THIS_FILE "init.sqf"

diag_log format ["############################# %1 #############################", missionName];

diag_log [diag_frameno, diag_ticktime, time, "Executing Dom init.sqf"];

#include "x_setup.sqf"

#include "defines.sqf"

if (isServer) then

{

#include "server\init.sqf"

};

if (!isDedicated) then

{

#include "client\init.sqf"

};

[] spawn {execVM "HUD_Scripts\Aircraft_Markers.sqf";};

[] spawn {execVM "HUD_Scripts\Vehicle_Markers.sqf";};

//////////////////////////////////////////////////////////////////

// Function file for Armed Assault

// Created by: Giallustio

//////////////////////////////////////////////////////////////////

#include "=BTC=Armament_System\=BTC=_functions.sqf"

// just a check to prevent init.sqf running more than once

// shouldn't happen, but we want to be sure :)

if (!isNil QGVAR(init_started)) exitWith {

diag_log [diag_frameno, diag_ticktime, time, "Dom init.sqf executed more than once"];

};

GVAR(init_started) = true;

if (!isDedicated && isMultiplayer) then {

enableRadio false;

0 fadeSound 0;

titleText ["", "BLACK FADED"];

};

if (!isDedicated) then {

GVAR(client_init_trig) = createTrigger ["EmptyDetector", [0,0,0]];

GVAR(client_init_trig) setTriggerArea [0,0,0,false];

GVAR(client_init_trig) setTriggerActivation ["NONE", "PRESENT", false];

GVAR(client_init_trig) setTriggerTimeout [1, 1, 1, false];

GVAR(client_init_trig) setTriggerStatements ["X_INIT && !isNil 'd_init_processed'", "diag_log [diag_frameno, diag_tickTime, time, 'Executing Dom local player JIP trigger'];call compile preprocessFileLineNumbers 'x_client\x_jip.sqf'", ""];

onPreloadFinished {GVAR(preloaddone) = true; onPreloadFinished {}};

};

enableSaving [false,false];

enableTeamSwitch false;

#ifdef __ACE__

if (isServer) then {

ace_sys_aitalk_enabled = true;

publicVariable "ace_sys_aitalk_enabled";

ace_sys_aitalk_radio_enabled = true;

publicVariable "ace_sys_aitalk_radio_enabled";

ace_sys_tracking_markers_enabled = false;

publicVariable "ace_sys_tracking_markers_enabled";

ace_sys_repair_default_tyres = true;

publicVariable "ace_sys_repair_default_tyres";

};

#endif

if (isServer) then {

GVAR(domdatabase) = ("Arma2Net.Unmanaged" callExtension "DomDatabase ['Init','DomDatabase','Dom.db']") == "[]";

publicVariable QGVAR(domdatabase);

__TRACE_1("","d_domdatabase")

if (GVAR(domdatabase)) then {

GVAR(server_name) = "Arma2Net.Unmanaged" callExtension "DomDatabase ['Servername']";

__TRACE_1("","d_server_name")

publicVariable QGVAR(server_name);

};

};

if (!isDedicated) then {

execVM "tasks.sqf";

};

// process d_init in one frame

GVAR(init_obj) = "HeliHEmpty" createVehicleLocal [0, 0, 0];

GVAR(init_obj) addEventHandler ["killed", {__ccppfln(d_init.sqf);deleteVehicle GVAR(init_obj)}];

GVAR(init_obj) setDamage 1;

diag_log [diag_frameno, diag_ticktime, time, "Dom init.sqf processed"];

// Start the Drop Cargo Script

execVM "BTK\Cargo Drop\Start.sqf";

BAKE_TKP_LOGGING_ENABLED = true;

execVM "teamkillPunishment\init.sqf";

// If your mission uses the event handler killed please add your code at the end of this file: "TeamKillerLock\TKL_Killed.sqf"

TKL_Killed = Compile preprocessFile "TeamKillerLock\TKL_Killed.sqf";

// null = [MaximumNumberOfTeamKills,TeamKillRemoverTime] ExecVM "TeamKillerLock\TKL_Manager.sqf";

// MaximumNumberOfTeamKills

// Maximum number of team kills (Default is 4)

// Once a player record reach this value the game will be locked.

// TeamKillRemoverTime

// Time after which one team kill will be removed from the team kill record (Default is 480s -> 8min)

null = [10,600] ExecVM "TeamKillerLock\TKL_Manager.sqf";

Share this post


Link to post
Share on other sites

well Tk isnt a big issue, it happens, part of a FPS. But in CTI/warfare it is much more a problem/ fun killer. Lack of remarks shows its a non issue for most COOP players. Neat tool though.

Share this post


Link to post
Share on other sites

Hi dirtyh,

What? You have problems to use TKL system? It is pretty simple to use ;)

1st STEP: init.sqg -> init.sqf

Add the content inside the init.sqf file to your mission init.sqf file (Looks like you did that part right) If your mission does not use the init.sqf file just copy it.

2nd STEP: killed event handler.

2.1. Your mission does not use event handler killed: Add this "This addEventHandler ["Killed",{Null = _This Spawn TKL_Killed;}];" inside the "Initialization" box for every unit you want to protect.

2.2. Your mission already uses the event handler killed:

Inside the unit creation script or in the editor "Initialization" box you will see something like this code "This addEventHandler ["Killed",{OriginalMissionCode;}];" Just add " Null = _This Spawn TKL_Killed;" so the result will be like this "This addEventHandler ["Killed",{OriginalMissionCode; Null = _This Spawn TKL_Killed;}];" There is an alternative option that is merge both codes but you need to have enough skills to do it.

If that does not fix your issue please contact me and I will help you.

Would you please describe your problem?

Share this post


Link to post
Share on other sites

You lost me on step three mate... :confused:

Share this post


Link to post
Share on other sites

Dear dirtyh,

I took a quick look to the mission. I found some problems.

1st. You need to reduce the name of the mission folder name as Arma editor can not handle the size of it. Once you save the mission a new folder is created containing only the mission.sqm file. -> No good for busyness!

2nd. Add the TKL init.sqf data at the beginning of the init.sqf mission file.

Now if you add the TeamKillerLock folder it works. The code is there but due to the mission structure the TKL yellow sentences are not shown. I'm not familiarized with the mission but you only need to find a way to show the TKL chat. For example just find the where the player takes control over the avatar and run from there the TKL system: null = [4,600] ExecVM "TeamKillerLock\TKL_Manager.sqf"; (Remember to remove this line from the init file)

3nd. Problem is why you want a team killer in a mission running a revive script. With revive there is no point on using the killed event handler. Use the hit version not the killed version:

this addEventHandler ["hit",{Null = _This Spawn TKL_Killed;}]; You can now raise the the team kill limit and may be change the punishment times... can be a great idea.

If you to integrate properly the TKL system with revive you will need to change something inside TKL_VoteAction.sqf file:

_Killer = _This Select 0;

_Punishment = _This Select 1;

_LinkedToPlayer = _This Select 2;

Punish_YES = False;

_n = 15;

If (_LinkedToPlayer) Then

{

WaitUntil {Alive(Player) Or UNIT_IS_REVIVED}; // UNIT_IS_REVIVED = Variable used to indicate that unit have been revived

...

I hope this is useful!

Any doubts -> keep posting ;)

(By the way... There are some errors on that mission. Do you use the parameter -showscripterrors?)

Murcielago

Share this post


Link to post
Share on other sites

Still cannot get it to work...

Share this post


Link to post
Share on other sites

Hi dirtyh,

Send me an e-mail -> mgllgm@hotmail.com and I send you the mission running with the TKL code.

---------- Post added at 13:37 ---------- Previous post was at 13:34 ----------

dirtyh, did you reduce the size of the folder name?

Share this post


Link to post
Share on other sites

Yes, I did mate.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×