Raised This Month: $ Target: $400
 0% 

Help changing TK Plugin, Ban by IP instead AuthId


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Flashhh!
Senior Member
Join Date: Nov 2005
Old 02-26-2006 , 20:07   Help changing TK Plugin, Ban by IP instead AuthId
Reply With Quote #1

Hello I need to modify a TK Plugin to work on Lan. Because on Lan we have STEAM_ID_LAN instead a "real" number of Steam Id.

The plugin is :
http://www.dodplugins.net/download.php?id=544

I think I shuould modify this part:
Code:
else if (tkcount[teamkiller[id]] > zTKs){
		new tkername[32]
		get_user_name(teamkiller[id],tkername,31)
		new zTKMode = get_cvar_num("dod_tkrevenge_ban")
		if(zTKMode == 0 && is_user_connected(teamkiller[id])){
			client_print(0,print_chat,"[DoD TK Revenge] %s has been kicked for Excessive TeamKilling!",tkername)
			new tker_userid = get_user_userid(teamkiller[id])
			server_cmd("kick #%d Excessive TeamKilling",tker_userid)
		}
		else if(zTKMode == 1 && is_user_connected(teamkiller[id])){
			new Float:tker_bantime = get_cvar_float("dod_tkrevenge_bantime")
			new tker_bantimeint = get_cvar_num("dod_tkrevenge_bantime")
			if(get_cvar_num("dod_tkrevenge_useamxbans") == 1){
				new tker_authid[32]
				get_user_authid(teamkiller[id],tker_authid,31)
				new banreason[128]
				get_cvar_string("dod_tkrevenge_amxbansreason",banreason,127)
				server_cmd("amx_ban %d %s %s",tker_bantimeint,tker_authid,banreason)
			}
			else if(get_cvar_num("dod_tkrevenge_useamxbans") == 0){
				new tker_userid = get_user_userid(teamkiller[id])
				server_cmd("banid %f #%d kick;writeid",tker_bantime,tker_userid)
			}
If I dont use amxbans I think that the only part of this code that should I change is:
Code:
else if(get_cvar_num("dod_tkrevenge_useamxbans") == 0){
				new tker_userid = get_user_userid(teamkiller[id])
				server_cmd("banid %f #%d kick;writeid",tker_bantime,tker_userid)
So the question is how to modify the plugin that ban by IP or By Nick of the player beacuse not work on LAN (all users have STEAM_ID_LAN)??


I found this part of a modify plmenu.sma that ban by IP, may be help...:
Code:
/* ---------- check for Steam ID added by MistaGee -------------------- 
      		IF AUTHID == 4294967295 OR STEAM_ID_LAN OR HLTV, BAN PER IP TO NOT BAN EVERYONE */
      if ( (equal("4294967295",authid2)) || (equal("HLTV",authid2)) || (equali("STEAM_ID_LAN",authid2))) { /* lan or HLTV!*/  /* END OF MODIFICATIONS BY MISTAGEE */
        new ipa[32]
        get_user_ip(player,ipa,31,1)
        server_cmd("addip %d %s;writeip",g_menuSettings[id],ipa)
      }
      else
        server_cmd("banid %d #%d kick;writeid",g_menuSettings[id],userid2)

      server_exec()
Flashhh! is offline
mysticssjgoku4
Veteran Member
Join Date: Jan 2005
Location: Chicago Heights, IL
Old 02-26-2006 , 20:16   Re: Help changing TK Plugin, Ban by IP instead AuthId
Reply With Quote #2

Code:
else if (tkcount[teamkiller[id]] > zTKs){         new uip[32]         get_user_ip(teamkiller[id],uip,31,1)                 new tkername[32]         get_user_name(teamkiller[id],tkername,31)         new zTKMode = get_cvar_num("dod_tkrevenge_ban")         if(zTKMode == 0 && is_user_connected(teamkiller[id])){             client_print(0,print_chat,"[DoD TK Revenge] %s has been kicked for Excessive TeamKilling!",tkername)             server_cmd("kick #%i Excessive TeamKilling",teamkiller[id])         }         else if(zTKMode == 1 && is_user_connected(teamkiller[id])){             new Float:tker_bantime = get_cvar_float("dod_tkrevenge_bantime")             new tker_bantimeint = get_cvar_num("dod_tkrevenge_bantime")             if(get_cvar_num("dod_tkrevenge_useamxbans") == 1){                 new banreason[128]                 get_cvar_string("dod_tkrevenge_amxbansreason",banreason,127)                 server_cmd("amx_ban %d %s %s",tker_bantimeint,uip,banreason)             }             else if(get_cvar_num("dod_tkrevenge_useamxbans") == 0){                 server_cmd("banip %f %s kick;writeid",tker_bantime,uip)             }

Try that.... Can't guarantee it'll work though.
__________________

mysticssjgoku4 is offline
Send a message via AIM to mysticssjgoku4 Send a message via MSN to mysticssjgoku4
Flashhh!
Senior Member
Join Date: Nov 2005
Old 02-27-2006 , 01:27  
Reply With Quote #3

I tried but I cant compile it : WARNING 217: loose indentation

Which is teh problem?
Flashhh! is offline
v3x
Veteran Member
Join Date: Oct 2004
Location: US
Old 02-27-2006 , 01:30  
Reply With Quote #4

It's compiled 100% but your indenting is teh suck.
__________________
What am I doing these days? Well, I run my own Rust server. It's heavily modded. If you'd like to join, the ip is 167.114.101.67:28116

I also created a website called Rust Tools. It will calculate and tell you the raw amounts of resources needed to craft items.
v3x is offline
Flashhh!
Senior Member
Join Date: Nov 2005
Old 02-28-2006 , 01:04  
Reply With Quote #5

After a good identing, I tried the code that mysticssjgoku4 (thanks mysticssjgoku4) wrote for me but dont work , the plugin still not ban by IP. Any Ideas? Sorry Im a newie and I cant make it work...

The big problem is that DoD (Day of Defeat) dont have any TK plugin that work on LAN. I found ATAC TK plugin that have LAN option but dont work for DoD . So please DoD community need help with a TK plugin that work on LAN! and kick/ban players by IP. I will post the original plugin that works with authid and I think only a little part must be modify, please HELP ME!


This is the complete original code:

[code]//
// AMX Mod X Script
//
// Developed by The AMX Mod X DoD Community
// http://www.dodplugins.net
//
// Authors: [FV] FeuerSturm & |BW|.Zor
//
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//
//
//
// INSTALLATION (STANDARD VERSION):
// ================================
//
// you have to create a folder called "tks" in your
// /addons/amxmodx/configs/ folder.
// if you don't do this, the TK save feature will not
// work.
//
//
//
// INSTALLATION (MYSQL VERSION):
// =============================
//
// the plugin will create a table called "tks" in your
// database, you don't have to do anything manually.
//
//
//
// USAGE (cvars for amxx.cfg):
// ===========================
//
// dod_tkrevenge_enabled <1/0> = enable/disable DoD TK Revenge
// by default
//
// dod_tkrevenge_obeyimmunity <1/0> = enable/disable Admins with flag
// "a" (Immunity) being excluded
// from any revenge for TA/TKs.
//
// dod_tkrevenge_options <1/2/3/4> = sets the menu options for the
// DoD TK Revenge Menu:
// 1 = Forgive!, 1hp (& Glow!), Slay!
// 2 = Forgive!, Slay!
// 3 = Forgive!, Slap 50percent!, Slay!
// 4 = Forgive!, DON'T Forgive!
//
// dod_tkrevenge_enableglow <1/0> = enable/disable glowing players
// (menu & bot actions)
//
// dod_tkrevenge_forgiveslap <1/0> = enable/disable slapping the TKer
// without damage if "Forgive!" was
// chosen by the victim
//
// dod_tkrevenge_respawnslay <1/0> = enable/disable slaying TeamKillers
// after respawning who have already
// been dead when "Slay" was chosen
//
// dod_tkrevenge_killfx <1/0> = enable/disable special effects
// for killing the TeamKiller
// (fire explosion with sound)
//
// dod_tkrevenge_playersaytks <1/0> = allow/disallow players to check their
// current TK-Count by saying "/tks"
//
// dod_tkrevenge_displaytacount <1/0> = enable/disable displaying a hudmessage
// to players with info about their TA count
// when it's increased.
//
// dod_tkrevenge_displaytkcount <1/0> = enable/disable displaying a hudmessage
// to players with info about their TK count
// when it's increased or decreased.
//
// dod_tkrevenge_tasequaltk <amount> = number of TeamAttacks that equal
// an unforgiven TeamKill
// (set to 0 to disable!)
//
// dod_tkrevenge_tareset <1/0> = enable/disable resetting every player's
// current TA-count on round start
//
// dod_tkrevenge_novictimdeath <1/0> = enable/disable feature that prevents
// victim's deaths to be increased by TKs
//
// dod_tkrevenge_spawnprotect <1/0> = enable/disable automatic slaying of
// team killers in defined spawn time
//
// dod_tkrevenge_spawntahandle <1/2/0> = sets handling for Spawn-TAs
// 1 = Mirror Damage
// 2 = Kill TeamAttacker immediately
// 0 = disabled
// (spawnprotect feature needs to be enabled!)
//
// dod_tkrevenge_addmirrordmg <amount> = sets amount of HP a SpawnAttacker loses
// additionally to the damage mirrored back
// at him from attacking a teammate
// (only applies if "spawntahandle" is "1"!)
//
// dod_tkrevenge_spawndistance <amount> = distance to spawnpoint within what
// TKs are considered Spawn-TKs
// (default: 800)
//
// dod_tkrevenge_spawntkcount <amount> = number of warnings to add to the
// spawn killers tk-count.
//
// dod_tkrevenge_warnings <amount> = number of unforgiven TKs until
// player is kicked/banned
// (1hp/Slap are not counted as unforgiven)
//
// dod_tkrevenge_ban <1/0> = set to 1 to ban the teamkiller after
// your amount of warnings.
// set to 0 to just kick him
//
// dod_tkrevenge_bantime <time> = time in minutes to ban a teamkiller
// from the server (if you enabled ban)
//
// dod_tkrevenge_useamxbans <1/0> = enable/disable using AMXBans to ban
// players for excessive TeamKilling
//
// dod_tkrevenge_amxbansreason <reason> = sets reason which is displayed in AMXBans
// Webinterface (use quotes!)
// (default: "Excessive TeamKilling")
//
// dod_tkrevenge_meleeslay <1/0> = immediatly kill player on melee
// TA/TK (see description for more info!)
//
// dod_tkrevenge_meleetkcount <amount> = number of warnings to add to the
// back stabbers tk-count.
//
// dod_tkrevenge_nadetkcount <1/0> = enable/disable increasing the tk-count
// on unforgiven grenade tks
//
// dod_tkrevenge_karmareducetk <amount> = Karma points needed to reduce player's
// TK-count by 1 while a TK zeroes the
// karma counter again!
// (set to 0 to disable)
//
// dod_tkrevenge_killkarma <amount> = amount of karma points a player gains
// for killing an enemy
//
// dod_tkrevenge_scorekarma <amount> = amount of karma points a player gains
// for capping a flag
//
// dod_tkrevenge_botaction <1/2/3/4/5/0> = sets action for TKs on Bots
// 1 = Forgive!
// 2 = 1hp (& Glow!)
// 3 = Slay!
// 4 = Slap 50percent!
// 5 = DON'T Forgive!
// 0 = disabled
//
// dod_tkrevenge_savetks <1/0> = enable/disable saving each player's
// TK-count and reload it on reconnect
//
//
//
// DESCRIPTION:
// ============
//
// - This plugin is a simple but effective TK Revenge provider,
// a menu pops up for the victim of a teamkiller and he can choose
// to "Forgive!", "Glow & 1hp!" or "Slap with 50percent!" or "Slay!"
// the teamkiller.
// You can set what option will appear in the TK Revenge menu.
// * Forgive! just slaps the TKer without damage
// * 1hp (& Glow)! sets him to 1hp (and makes him glow in his team's color)
// until he respawns. (Glow can be enabled/disabled)
// * Slap with 50percent! will slap him with 50% damage of his current
// health
// * Slay! will added 1 to his tk count and kills him if he's alive
// and his tk count is checked against the number of warnings you
// set up and a yellow hudmessage saying
// "TeamKill Warning X/X: Watch your fire!"
// is shown. once the tk count equals the warnings the hudmessage
// is shown in red. on the next unforgiven tk the teamkiller will
// either be kicked or banned for X minutes. (depends on your setup)
// * DON'T Forgive! does the same as "Slay!" but without killing the
// attacker.
// - TeamKills don't have to be counted as deaths for Victims.
// - Melee TAs/TKs can be handled different, it's possible
// to directly slay on a melee TA/TK without giving the victim
// the ability to forgive or glow. if the attacker is slayed for
// a melee attack, his tk count is not increased, but if he
// is slayed for a melee tk, it will be increased by the set amount.
// Knife, Spade, K43 Butt, Garand Butt & Bayonet are considered
// melee weapons.
// - A specified amount of TAs can count as an unforgiven TK.
// - Spawn TeamKills can be handled different as well. If a TK
// occurs in your defined distance after respawn, the team killer can be
// slayed and his tk-count will be increased by the set amount.
// - Grenade TeamKills can be handled on a special way as well, you
// can set up either to increase the tk-count or not if "Slay!"
// was chosen by the victim of a friendly grenade.
// - The TK-Count of players can be decreased
// by 1 if they gain a set amount of karma without doing any Tks.
// (Karma can consist of FlagCaps and EnemyKills)
// - TeamKillers can be slayed after respawning if they are already dead
// - You can set your bots (if you are using Sturmbot/Shrikebot for example)
// to react on TKs with forgiving, 1hp (& glowing) or Slapping and slaying the
// teamkiller.
// That way you can be sure that your bots aren't the easy shooting targets
// for teamkillers.
// - Every player's tk-count can be saved and reloaded if he reconnects.
// This feature is independent from time and map, his info is saved for good
// until you either delete it, or the TKer starts to play serious and gets his
// tk-count decreased. this prevents hardcore teamkillers from simply
// reconnecting to the server to get their tk-count zeroed.
// Note: if you use this feature, be sure to use banning of teamkillers,
// otherwise it wouldn't make any sense to use this feature.
// - AMXBans can be used to ban teamkillers.
// - Admins with access level ADMIN_IMMUNITY can be excluded from any punishments
// for a tk, the plugin just just ignores their teamkills.
//
//
//
// AMX Mod X, DoDx, DoDFun & Fun modules needed!
//
//
// To do:
//
// - nothing so far! :D
//
//
// CHANGELOG:
// ==========
//
// - 27.11.2004 Version 0.5beta
// Initial Release
//
// - 30.11.2004 Version 0.6beta
// added feature:
// - melee TAs/TKs can be handled
// different now, it's possible
// to directly slay on a melee
// TA/TK without giving the victim
// the ability to forgive or glow.
// if the attacker is slayed for
// a melee attack, his tk count
// is not increased, but if he
// is slayed for a melee tk,
// it will be increased.
// bug fixes:
// - fixed oversight that tk count
// wasn't increased on "Slay!" when
// teamkiller was already dead.
// generic changes:
// - sound "it's time to choose" is played
// to the victim when the menu comes up.
// (a different sound for axis and allies)
// - renamed "Glow!" to "1hp & Glow!"
// according to what it actually does.
//
// - 22.12.2004 Version 0.7beta
// added feature:
// - grenade TKs can be handled on a special
// way now, it's possible to enable/disable
// increasing the killer's TK-count after
// an unforgiven grenade tk.
//
// - 31.12.2004 Version 0.8beta
// added features:
// - by killing X enemies without any TKs
// between, the TK-Count of a player
// can be reduced by one.
// - added tk-revenge for bots that are tked,
// you can set the bots to forgive,
// 1hp & glow or slay the teamkiller.
// (or disable any bot action)
//
// - 08.01.2005 Version 0.9beta
// added feature:
// - every player's tk-count can be saved and
// reloaded if he reconnects.
// This feature is independent from time and
// map, his info is saved for good until you
// either delete it, or the TKer starts to play
// serious and gets his tk-count decreased.
// this prevents hardcore teamkillers from
// simply reconnecting to the server to get their
// tk-count zeroed.
// Note: the tk-count will be reset after the
// player reached the tk-limit and got
// kicked and/or banned.
// BIG thanks to Zor for adding this whole feature
// and finally making this plugin competitive to
// the DoDx TK Manager.
// bugfixes:
// - fixed oversight that the tk-count was increased
// by 2 for killing a bot with a melee weapon and
// the botaction set to "Slay!".
// - fixed minor bug in a info message when a player
// gets banned for excessive tking.
//
// - 18.01.2005 Version 0.9beta2 (a.k.a. almost final)
// added feature:
// - the name of the player that teamkilled the
// victim is displayed in the DoD TK Revenge
// Menu right after the options. So people know
// who they are actually about to punish or forgive.
//
// - 22.01.2005 Version 0.95beta
// added features:
// - automatic Spawn-TK treatment
// * a tk within a set time after respawn will
// result in slaying the TKer and increasing
// his TK-count by your set amount.
// - TK Revenge Menu layout can be changed by CVar
// * "1hp & Glow!" can be replaced with "Slap with 50percent!"
// or removed at all so that it's only "Forgive!" and "Slay!".
// * the glowing option can be disabled.
// - TK-Count for Melee-Slays can be increased by
// custom amount of warnings
// - Admin Immunity can be turned on/off
//
// - 23.01.2005 Version 0.95beta2
// added feature:
// - AMXBans can be used to ban players from the server.
// (dod_tkrevenge_useamxbans 1)
//
// - 28.01.2005 Version 0.99beta
// cosmetic patches:
// - i changed the code a bit, so AMXBans recognizes the ban
// lenght correctly, before it showed a permanent ban as
// time 0.00000000 in the web-banlist, now it says "Permanent".
// same for ban lengths like "7 days" etc. which was displayed
// as 10080.0000000 before.
// - i replaced the message that is displayed to all players when
// someone gets banned to reflect the correct length instead
// of showing a big amount of minutes.
// so my advice for the ban lenght you choose:
// use only full hours, full days, full weeks or full months,
// then it will be displayed correctly.
// 1 day = 1440 minutes
// 1 week = 10080 minutes
// 1 month = 40320 minutes
// multiply those values with the amount of hours/days/weeks
// or months you want people to be banned and use that value
// as banlength!
// Example: 4 days = 5760 minutes as banlenght
//
// - 01.02.2005 Version 0.99beta2
// added features:
// - new menu layout "4" which will be "Forgive!" and
// "DON'T Forgive!" (basically does the same as "Slay!" just
// without killing the attacker)
// - new botaction "5" which will be "DON'T Forgive!"
// - new cvar to set to not increase victim's death on TKs
// general:
// - DoDFun module is required now!
//
// - 04.02.2005 Version 0.99beta3 "feature lock"
// added feature:
// - you can choose whether to slap the teamkiller without
// damage when "Forgive!" was chosen, or not.
//
// - 09.04.2005 Version 0.99beta4
// tweaked feature:
// - you can enable mirror damage within your set spawntime,
// so that people that just try to bring your health a bit
// down without killing you will only be hurting themselves.
// you can enable/disable that with the new cvar
// "dod_tkrevenge_spawntahandle"
//
// - 07.05.2005 Version 0.999beta
// mysql tweaks by Zor(only MySQL-Version!):
// - Worked on the sql connection area and now only have one
// connect instead of a bunch.
// general tweaks:
// - optimized the code a bit
//
// - 18.05.2005 Version 0.9pre-final
// bugfixes:
// - disabled revenge menu for spawn tks
// - mirrordamage works correctly now
// - fixed some problems with bot actions
// - fixed multiple messages for melee spawn tks
// general changes:
// - code optimizations
// additions:
// - added cvar to allow players to check their
// tk-counts by saying "/tks".
// (new cvar: dod_tkrevenge_playersaytks <1/0>)
// - added cvar to specify the banreason which is
// displayed in the AMXBans Webinterface
// (only works if AMXBans is used!)
// (new cvar: dod_tkrevenge_amxbansreason <"Your reason here!">)
//
// - 18.05.2005 Version 0.9pre-final2
// bugfixes:
// - fixed TK Revenge Menu comming up after Grenade TKs
// when Grenade TK-Count is disabled on MenuLayout 4
// (Forgive!/DON'T Forgive!)
// - TK Revenge Menu now stays open until the victim
// chose an option.
//
// - 15.07.2005 Version 0.9pre-final3
// tweaks:
// - removed "spawntime" check to indentify SpawnTKs
// and replaced it with a distance check between the victim's
// spawnpoint and the postion of being TKed/TAed.
// (new cvar: "dod_tkrevenge_spawndistance")
//
// - 29.07.2005 Version 0.9pre-final4
// nice little update:
// - added special effects for killing the TeamKiller,
// if enabled, the player dies in fire explosion with sound.
// (new cvar: dod_tkrevenge_killfx <1/0>)
// NOTE: only players in a small radius around the killed
// player hear the sound, so don't worry about being
// "sound-spammed" all the time
//
// - 12.08.2005 Version 0.9pre-final5
// major tweaks:
// - changed cvar "dod_tkrevenge_killsreducetk" to
// "dod_tkrevenge_karmareducetks" and added two new cvars:
// "dod_tkrevenge_killkarma" and
// "dod_tkrevenge_scorekarma" so that flagcaps can be
// taken into account for reducing someone's tkcount
// as well as killing enemies.
// the "karmareducetks" cvar specifies the needed amount
// of karma to reduce the player's tkcount by 1 while
// "killkarma" specifies how many karma points are added
// per enemykill and "scorekarma" specifies how many
// karma points are added for capping a flag.
// - added cvar "dod_tkrevenge_tasequaltk" which specifies
// the amount of TeamAttacks that equal 1 unforgiven TK and
// added cvar "dod_tkrevenge_tareset" which allows you to
// either reset each players TA-count on every roundstart
// or keep it until it equals a TK and automatically is reset
//
// - 21.08.2005 Version 0.9pre-final6
// bug fixes:
// - fixed bug of TK-victims of admins not getting the death
// removed if "dod_tkrevenge_obeyimmunity" was enabled
// additions:
// - added cvars "dod_tkrevenge_displaytacount" and
// "dod_tkrevenge_displaytkcount" which lets you specify
// if the hudmessages should be shown or not when a player's
// TA/TK count is increased (or decreased by Karma Points).
//
// - 27.11.2005 Version 0.9pre-final7
// bug fixes:
// - raised stability of the plugin
// - fixed spawnprotection not working correctly
// - fixed new players being punished for TKs they
// didn't commit. this happened because of not
// clearing victim's "TeamKiller Cache" once
// a TeamKiller disconnected before he could
// receive his punishment
// generic changes:
// - removed cvar "dod_tkrevenge_mirrordmg"
// additions:
// - added 2 modes for handling Spawn-TAs:
// SpawnMirrorDamage & InstantAttackerDeath
// (new cvar "dod_tkrevenge_spawntahandle")
// - added feature to slay TeamKillers after
// respawning if they were already dead when
// the victim chose "Slay!" from the menu
// (new cvar "dod_tkrevenge_respawnslay")
// - added cvar "dod_tkrevenge_addmirrordmg"
// to specify how many HP a SpawnAttacker loses
// additionally to the damage mirrored back at him.
// (only applies if "dod_tkrevenge_spawntahandle"
// is set to "1"!)
//

#include <amxmodx>
#include <amxmisc>
#include <dodx>
#include <dodfun>
#include <fun>

new tkcount[33], teamkiller[33], tkillglow[33], meleetk[33], nadetk[33], karma[33], spawned[33]
new spawnorigin[33][3], killorigin[33][3], tkerorigin[33][3], killerburn, tacount[33], respawnslay[33]

public plugin_init(){
register_plugin("DoD TK Revenge","0.9pre-final7","AMXX DoD Team")
register_statsfwd(XMF_SCORE)
register_statsfwd(XMF_DAMAGE)
register_statsfwd(XMF_DEATH)
register_clcmd("say /tks","say_tks",0,"- display current TK Count")
register_cvar("dod_tkrevenge_enabled","1")
register_cvar("dod_tkrevenge_obeyimmunity","1 ")
register_cvar("dod_tkrevenge_warnings","5")
register_cvar("dod_tkrevenge_playersaytks","1 ")
register_cvar("dod_tkrevenge_displaytacount", "1")
register_cvar("dod_tkrevenge_displaytkcount", "1")
register_cvar("dod_tkrevenge_tasequaltk","10" )
register_cvar("dod_tkrevenge_tareset","1")
register_cvar("dod_tkrevenge_ban","1")
register_cvar("dod_tkrevenge_bantime","1440")
register_cvar("dod_tkrevenge_useamxbans","0")
register_cvar("dod_tkrevenge_amxbansreason"," Excessive TeamKilling")
register_cvar("dod_tkrevenge_options","1")
register_cvar("dod_tkrevenge_novictimdeath"," 1")
register_cvar("dod_tkrevenge_enableglow","1")
register_cvar("dod_tkrevenge_forgiveslap","1" )
register_cvar("dod_tkrevenge_respawnslay","1" )
register_cvar("dod_tkrevenge_killfx","1")
register_cvar("dod_tkrevenge_spawnprotect","1 ")
register_cvar("dod_tkrevenge_spawntahandle"," 2")
register_cvar("dod_tkrevenge_addmirrordmg","5 ")
register_cvar("dod_tkrevenge_spawndistance"," 800")
register_cvar("dod_tkrevenge_spawntkcount","3 ")
register_cvar("dod_tkrevenge_meleeslay","1")
register_cvar("dod_tkrevenge_meleetkcount","2 ")
register_cvar("dod_tkrevenge_nadetkcount","0" )
register_cvar("dod_tkrevenge_karmareducetk"," 25")
register_cvar("dod_tkrevenge_scorekarma","2")
register_cvar("dod_tkrevenge_killkarma","1")
register_cvar("dod_tkrevenge_botaction","0")
register_cvar("dod_tkrevenge_savetks","1")
register_menucmd(register_menuid("DoD TK Revenge"),(1<<0)|(1<<1)|(1<<2),"tkrevenge_opt ions")
register_event("ResetHUD","player_respawn","b e")
register_event("RoundState","reset_teamattack s","a","1=3","1=4")
set_cvar_num("mp_tkpenalty",-1)
}

public plugin_modules(){
require_module("dodx")
require_module("dodfun")
require_module("fun")
}

public plugin_precache(){
killerburn = precache_model("sprites/explode1.spr")
}

public client_authorized(id){
tkcount[id] = 0
tkillglow[id] = 0
teamkiller[id] = 0
meleetk[id] = 0
nadetk[id] = 0
karma[id] = 0
spawned[id] = 0
tacount[id] = 0
}

public client_putinserver(id){
if(get_cvar_num("dod_tkrevenge_savetks") == 1){
new steamid[32]
get_user_authid(id, steamid, 31)
new tkfile[64]
get_configsdir(tkfile,63)
add(tkfile, 63, "/tks/%s.txt")
format(tkfile, 63, tkfile, steamid)
replace(tkfile, 63, ":", "_")
replace(tkfile, 63, ":", "_")
if(file_exists(tkfile)){
new text[32]
new a = 0
if(read_file(tkfile, 0, text, 31, a)){
tkcount[id] = str_to_num(text)
}
}
}
return PLUGIN_CONTINUE
}

public client_disconnect(id){
if(get_cvar_num("dod_tkrevenge_savetks") == 1){
new steamid[32]
get_user_authid(id, steamid, 31)
new tkfile[64]
get_configsdir(tkfile,63)
add(tkfile, 63, "/tks/%s.txt")
format(tkfile, 63, tkfile, steamid)
replace(tkfile, 63, ":", "_")
replace(tkfile, 63, ":", "_")
if(tkcount[id] == 0 || tkcount[id] > get_cvar_num("dod_tkrevenge_warnings")){
if(file_exists(tkfile)){
delete_file(tkfile)
}
}
else if(tkcount[id] > 0 && tkcount[id] <= get_cvar_num("dod_tkrevenge_warnings")){
new tks[32]
num_to_str(tkcount[id], tks, 31)
write_file(tkfile, tks, 0)
}
}
new plist[32],pnum
get_players(plist,pnum)
for(new i=0; i<pnum; i++){
if(is_user_connected(plist[i]) == 1 && teamkiller[plist[i]] == id){
teamkiller[plist[i]] = 0
}
}
return PLUGIN_CONTINUE
}

public reset_teamattacks(){
if(get_cvar_num("dod_tkrevenge_tareset") == 1){
new plist[32],pnum
get_players(plist,pnum)
for(new i=0; i<pnum; i++){
if(is_user_connected(plist[i]) == 1 && tacount[plist[i]] > 0){
tacount[plist[i]] = 0
}
}
return PLUGIN_CONTINUE
}
return PLUGIN_CONTINUE
}

public client_score(index,score,total){
if(get_cvar_num("dod_tkrevenge_enabled") == 0 || ((get_user_flags(index)&ADMIN_IMMUNITY) && get_cvar_num("dod_tkrevenge_obeyimmunity") == 1)){
return PLUGIN_CONTINUE
}
if(is_user_bot(index) == 0 && get_cvar_num("dod_tkrevenge_karmareducetk") != 0){
new addkarma = get_cvar_num("dod_tkrevenge_scorekarma")
karma[index] += addkarma
new player = index
checkkarma(player)
return PLUGIN_CONTINUE
}
return PLUGIN_CONTINUE
}

public client_damage(attacker,victim,damage,wpnindex ,hitplace,TA){
if(TA == 0 || attacker==victim || ((get_user_flags(attacker)&ADMIN_IMMUNITY) && get_cvar_num("dod_tkrevenge_obeyimmunity") == 1)){
return PLUGIN_CONTINUE
}
new meleeta = 0
if(get_cvar_num("dod_tkrevenge_enabled") == 1){
if(get_cvar_num("dod_tkrevenge_meleeslay") == 1){
if(wpnindex == DODW_GARAND_BUTT || wpnindex == DODW_K43_BUTT || wpnindex == DODW_KAR_BAYONET || wpnindex == DODW_AMERKNIFE || wpnindex == DODW_BRITKNIFE || wpnindex == DODW_GERKNIFE || wpnindex == DODW_SPADE || wpnindex == DODW_ENFIELD_BAYONET){
meleeta = 1
new param[4]
param[0] = victim
param[1] = attacker
param[2] = wpnindex
param[3] = damage
set_task(0.1,"melee_attack_handle",0,param,4)
}
}
if(get_cvar_num("dod_tkrevenge_spawnprotect" ) == 1 && meleeta == 0){
get_user_origin(victim,killorigin[victim])
if(get_distance(killorigin[victim],spawnorigi n[victim]) < get_cvar_num("dod_tkrevenge_spawndistance")){
spawned[victim] = 1
if(is_user_alive(victim) == 1 && get_cvar_num("dod_tkrevenge_spawntahandle") == 1){
new param[4]
param[0] = victim
param[1] = attacker
param[2] = wpnindex
param[3] = damage
set_task(0.0,"change_health",0,param,4)
}
else if(is_user_alive(victim) == 1 && is_user_alive(attacker) == 1 && get_cvar_num("dod_tkrevenge_spawntahandle") == 2){
new victimname[32]
get_user_name(victim,victimname,31)
new attackername[32]
get_user_name(attacker,attackername,31)
client_print(0, print_chat, "[DoD TK Revenge] %s has been slayed for Spawn-TeamAttacking %s!",attackername,victimname)
new killerid = attacker
set_task(0.1,"kill_teamkiller",killerid)
}
}
else {
spawned[victim] = 0
}
}
}
if(get_cvar_num("dod_tkrevenge_tasequaltk") != 0){
if(wpnindex != DODW_HANDGRENADE && wpnindex != DODW_STICKGRENADE && wpnindex != DODW_MILLS_BOMB){
tacount[attacker]++
checktaer(attacker)
}
}
return PLUGIN_CONTINUE
}

public change_health(param[]){
if(is_user_alive(param[0]) == 1){
set_user_health(param[0],get_user_health(para m[0]) + param[3])
}
new dmgaddition = get_cvar_num("dod_tkrevenge_addmirrordmg")
if(is_user_alive(param[1]) == 1){
new oldhealth = get_user_health(param[1])
if(oldhealth > (param[3] + dmgaddition)){
set_user_health(param[1],get_user_health(para m[1]) - (param[3] + dmgaddition))
}
else if(oldhealth <= (param[3] + dmgaddition)){
new killerid = param[1]
kill_teamkiller(killerid)
}
}
}

public client_death(killer,victim,wpnindex,hitplace, TK){
if(killer==victim || (is_user_bot(victim) == 1 && is_user_bot(killer) == 1)){
return PLUGIN_CONTINUE
}
if(get_user_flags(killer)&ADMIN_IMMUNITY && get_cvar_num("dod_tkrevenge_obeyimmunity") == 1){
if(get_cvar_num("dod_tkrevenge_novictimdeath" ) == 1 && TK == 1){
new victimdeaths = dod_get_pl_deaths(victim)
dod_set_pl_deaths(victim,(victimdeaths -= 1))
}
return PLUGIN_CONTINUE
}
if(TK == 0){
if(is_user_bot(killer) == 0 && get_cvar_num("dod_tkrevenge_karmareducetk") != 0){
new addkarma = get_cvar_num("dod_tkrevenge_killkarma")
karma[killer] += addkarma
new player = killer
checkkarma(player)
return PLUGIN_CONTINUE
}
}
else if(TK == 1){
if(get_cvar_num("dod_tkrevenge_spawnprotect" ) == 1){
get_user_origin(victim,killorigin[victim])
if(get_distance(killorigin[victim],spawnorigi n[victim]) < get_cvar_num("dod_tkrevenge_spawndistance")){
spawned[victim] = 1
}
else {
spawned[victim] = 0
}
}
new param[3]
param[0] = victim
param[1] = killer
param[2] = wpnindex
set_task(0.2,"death_handle",0,param,3)
}
return PLUGIN_CONTINUE
}

public death_handle(param[]){
new victim = param[0]
new killer = param[1]
new wpnindex = param[2]
new id = victim
teamkiller[id] = killer
if(spawned[victim] == 1 && meleetk[killer] == 0){
new victimname[32]
get_user_name(victim,victimname,31)
new killername[32]
get_user_name(killer,killername,31)
if(is_user_alive(killer) == 1){
client_print(0, print_chat, "[DoD TK Revenge] %s has been slayed for Spawn-TeamKilling %s!",killername,victimname)
new killerid = killer
set_task(0.1,"kill_teamkiller",killerid)
}
else if(is_user_alive(killer) == 0){
client_print(0, print_chat, "[DoD TK Revenge] %s's TK-Count has been increased for Spawn-TeamKilling %s!",killername,victimname)
}
new spawntkcount = get_cvar_num("dod_tkrevenge_spawntkcount")
tkcount[killer] += spawntkcount
karma[killer] = 0
checktker(id)
}
else if(spawned[victim] == 1 && meleetk[killer] == 1){
meleetk[killer] = 0
}
if(is_user_bot(victim) == 1 && get_cvar_num("dod_tkrevenge_enabled") == 1){
new victimname[32]
get_user_name(victim,victimname,31)
new killername[32]
get_user_name(killer,killername,31)
if(get_cvar_num("dod_tkrevenge_botaction") == 0){
karma[killer] = 0
}
else if(get_cvar_num("dod_tkrevenge_botaction") == 1){
if(is_user_alive(killer) == 0 || get_cvar_num("dod_tkrevenge_forgiveslap") == 0){
client_print(0,print_chat,"[DoD TK Revenge] %s hugs %s and forgives the TeamKill!",victimname,killername)
karma[killer] = 0
}
else if(is_user_alive(killer) == 1 && get_cvar_num("dod_tkrevenge_forgiveslap") == 1){
client_print(0,print_chat, "[DoD TK Revenge] %s slaps %s and forgives the TeamKill!",victimname,killername)
user_slap(killer,0)
karma[killer] = 0
}
}
else if(get_cvar_num("dod_tkrevenge_botaction") == 2){
if(is_user_alive(killer) == 0){
karma[killer] = 0
}
else if(is_user_alive(killer) == 1){
if(get_cvar_num("dod_tkrevenge_enableglow") == 1){
client_print(0, print_chat, "[DoD TK Revenge] %s made %s glow and set him to 1hp for TeamKilling",victimname,killername)
if(get_user_team(killer) == 1){
set_user_rendering(killer,kRenderFxGlowShell, 0,255,0,kRenderNormal,25)
tkillglow[killer] = 1
}
else if(get_user_team(killer) == 2){
set_user_rendering(killer,kRenderFxGlowShell, 255,0,0,kRenderNormal,25)
tkillglow[killer] = 1
}
}
else if(get_cvar_num("dod_tkrevenge_enableglow") == 0){
client_print(0, print_chat, "[DoD TK Revenge] %s set %s to 1hp for TeamKilling",victimname,killername)
}
set_user_health(killer,1)
karma[killer] = 0
}
}
else if(get_cvar_num("dod_tkrevenge_botaction") == 3){
if(wpnindex == DODW_HANDGRENADE || wpnindex == DODW_STICKGRENADE || wpnindex == DODW_MILLS_BOMB){
if(get_cvar_num("dod_tkrevenge_nadetkcount") == 0){
nadetk[killer] = 1
}
else if(get_cvar_num("dod_tkrevenge_nadetkcount") == 1){
nadetk[killer] = 0
}
}
if(meleetk[killer] == 0 && spawned[victim] == 0){
if(is_user_alive(killer) == 0){
if(nadetk[killer] == 0){
client_print(0,print_chat,"[DoD TK Revenge] %s's TK-Count was increased for TeamKilling %s!",killername,victimname)
karma[killer] = 0
if(spawned[victim] == 0){
tkcount[killer]++
}
else if(spawned[victim] == 1){
new spawntkcount = get_cvar_num("dod_tkrevenge_spawntkcount")
tkcount[killer] += spawntkcount
}
checktker(id)
}
else if(nadetk[killer] == 1){
karma[killer] = 0
}
}
else if(is_user_alive(killer) == 1){
client_print(0, print_chat, "[DoD TK Revenge] %s has slayed %s for TeamKilling!",victimname,killername)
new killerid = killer
set_task(0.1,"kill_teamkiller",killerid)
if(nadetk[killer] == 0){
karma[killer] = 0
if(spawned[victim] == 0){
tkcount[killer]++
}
else if(spawned[victim] == 1){
new spawntkcount = get_cvar_num("dod_tkrevenge_spawntkcount")
tkcount[killer] += spawntkcount
}
checktker(id)
}
}
}
else if(meleetk[killer] == 1){
meleetk[killer] = 0
}
}
else if(get_cvar_num("dod_tkrevenge_botaction") == 4){
if(is_user_alive(killer) == 0){
karma[killer] = 0
return PLUGIN_HANDLED
}
else if(is_user_alive(killer) == 1){
client_print(0, print_chat, "[DoD TK Revenge] %s slapped %s with 50percent health for TeamKilling",victimname,killername)
new health = get_user_health(killer)
new slappower = health/2
user_slap(killer,slappower)
karma[killer] = 0
}
}
else if(get_cvar_num("dod_tkrevenge_botaction") == 5){
if(wpnindex == DODW_HANDGRENADE || wpnindex == DODW_STICKGRENADE || wpnindex == DODW_MILLS_BOMB){
if(get_cvar_num("dod_tkrevenge_nadetkcount") == 0){
nadetk[killer] = 1
}
else if(get_cvar_num("dod_tkrevenge_nadetkcount") == 1){
nadetk[killer] = 0
}
}
if(meleetk[killer] == 0 && spawned[victim] == 0){
if(nadetk[killer] == 0){
client_print(0,print_chat,"[DoD TK Revenge] %s did NOT forgive %s the TeamKill!",victimname,killername)
karma[killer] = 0
if(spawned[victim] == 0){
tkcount[killer]++
}
else if(spawned[victim] == 1){
new spawntkcount = get_cvar_num("dod_tkrevenge_spawntkcount")
tkcount[killer] += spawntkcount
}
checktker(id)
}
else if(nadetk[killer] == 1){
karma[killer] = 0
}
}
else if(meleetk[killer] == 1){
meleetk[killer] = 0
}
}
}
if(is_user_bot(victim) == 0 && get_cvar_num("dod_tkrevenge_enabled") == 1){
if(wpnindex == DODW_HANDGRENADE || wpnindex == DODW_STICKGRENADE || wpnindex == DODW_MILLS_BOMB){
if(get_cvar_num("dod_tkrevenge_nadetkcount") == 0){
nadetk[killer] = 1
}
else if(get_cvar_num("dod_tkrevenge_nadetkcount") == 1){
nadetk[killer] = 0
}
}
karma[killer] = 0
if(meleetk[killer] == 0 && spawned[victim] == 0){
set_task(0.3,"tkrevenge_menu",0,param,2)
}
if(meleetk[killer] == 1){
meleetk[killer] = 0
}
}
if(get_cvar_num("dod_tkrevenge_novictimdeath" ) == 1){
new victimdeaths = dod_get_pl_deaths(victim)
dod_set_pl_deaths(victim,(victimdeaths -= 1))
}
return PLUGIN_CONTINUE
}

public melee_attack_handle(param[]){
new meleeattacker[32]
new meleevictim[32]
new meleelogname[32]
new meleewpnname[32]
get_user_name(param[1],meleeattacker,31)
get_user_name(param[0],meleevictim,31)
xmod_get_wpnlogname(param[2],meleelogname,31)
dod_wpnlog_to_name(meleelogname,meleewpnname, 31)
new killerid = param[1]
kill_teamkiller(killerid)
if(is_user_alive(param[0]) == 1){
client_print(0,print_chat,"[DoD TK Revenge] %s has been slayed for trying to kill %s with his %s!",meleeattacker,meleevictim,meleewpnname)
karma[param[1]] = 0
if(get_cvar_num("dod_tkrevenge_spawntahandle" ) == 1 && spawned[param[0]] == 1){
set_task(0.0,"change_health",0,param,4)
}
}
else if(is_user_alive(param[0]) == 0){
meleetk[param[1]] = 1
new id = param[0]
teamkiller[id] = param[1]
if(spawned[id] == 0){
new meleetkcount = get_cvar_num("dod_tkrevenge_meleetkcount")
tkcount[teamkiller[id]] += meleetkcount
}
else if(spawned[id] == 1){
new spawntkcount = get_cvar_num("dod_tkrevenge_spawntkcount")
tkcount[teamkiller[id]] += spawntkcount
}
checktker(id)
karma[param[1]] = 0
client_print(0,print_chat,"[DoD TK Revenge] %s has been slayed for killing %s with his %s!",meleeattacker,meleevictim,meleewpnname)
}
}

public tkrevenge_menu(param[]){
if(get_cvar_num("dod_tkrevenge_options") == 1){
new revenge_menu[1024]
new key
new tkername[32]
get_user_name(param[1],tkername,31)
if(get_cvar_num("dod_tkrevenge_enableglow") == 1){
format(revenge_menu,1023,"\rDoD TK Revenge\R^n^n\y1.\w Forgive!^n\y2.\w Glow & 1hp!^n\y3.\w Slay!^n^nKiller: %s",tkername)
}
else if(get_cvar_num("dod_tkrevenge_enableglow") == 0){
format(revenge_menu,1023,"\rDoD TK Revenge\R^n^n\y1.\w Forgive!^n\y2.\w 1hp!^n\y3.\w Slay!^n^nKiller: %s",tkername)
}
key = (1<<0)|(1<<1)|(1<<2)
show_menu(param[0],key,revenge_menu)
if(get_user_team(param[0]) == 1){
client_cmd(param[0],"spk Gman/Gman_Choose1")
}
else if(get_user_team(param[0]) == 2){
client_cmd(param[0],"spk Gman/Gman_Choose2")
}
return PLUGIN_CONTINUE
}
else if(get_cvar_num("dod_tkrevenge_options") == 2){
new revenge_menu[1024]
new key
new tkername[32]
get_user_name(param[1],tkername,31)
format(revenge_menu,1023,"\rDoD TK Revenge\R^n^n\y1.\w Forgive!^n\y2.\w Slay!^n^nKiller: %s",tkername)
key = (1<<0)|(1<<1)
show_menu(param[0],key,revenge_menu)
if(get_user_team(param[0]) == 1){
client_cmd(param[0],"spk Gman/Gman_Choose1")
}
else if(get_user_team(param[0]) == 2){
client_cmd(param[0],"spk Gman/Gman_Choose2")
}
return PLUGIN_CONTINUE
}
else if(get_cvar_num("dod_tkrevenge_options") == 3){
new revenge_menu[1024]
new key
new tkername[32]
get_user_name(param[1],tkername,31)
format(revenge_menu,1023,"\rDoD TK Revenge\R^n^n\y1.\w Forgive!^n\y2.\w Slap 50percent!^n\y3.\w Slay!^n^nKiller: %s",tkername)
key = (1<<0)|(1<<1)|(1<<2)
show_menu(param[0],key,revenge_menu)
if(get_user_team(param[0]) == 1){
client_cmd(param[0],"spk Gman/Gman_Choose1")
}
else if(get_user_team(param[0]) == 2){
client_cmd(param[0],"spk Gman/Gman_Choose2")
}
return PLUGIN_CONTINUE
}
else if(get_cvar_num("dod_tkrevenge_options") == 4){
if(nadetk[param[1]] == 1 && get_cvar_num("dod_tkrevenge_nadetkcount") == 0){
return PLUGIN_CONTINUE
}
new revenge_menu[1024]
new key
new tkername[32]
get_user_name(param[1],tkername,31)
format(revenge_menu,1023,"\rDoD TK Revenge\R^n^n\y1.\w Forgive!^n\y2.\w DON'T Forgive!^n^nKiller: %s",tkername)
key = (1<<0)|(1<<1)
show_menu(param[0],key,revenge_menu)
if(get_user_team(param[0]) == 1){
client_cmd(param[0],"spk Gman/Gman_Choose1")
}
else if(get_user_team(param[0]) == 2){
client_cmd(param[0],"spk Gman/Gman_Choose2")
}
return PLUGIN_CONTINUE
}
return PLUGIN_CONTINUE
}

public tkrevenge_options(id,key){
if(teamkiller[id] == 0){
client_print(id,print_chat,"[DoD TK Revenge] Sorry, your TeamKiller has disconnected!")
return PLUGIN_HANDLED
}
new victimname[32]
get_user_name(id,victimname,31)
new killername[32]
get_user_name(teamkiller[id],killername,31)
if(get_cvar_num("dod_tkrevenge_options") == 1){
switch(key){
case 0: {
if(is_user_alive(teamkiller[id]) == 0 || get_cvar_num("dod_tkrevenge_forgiveslap") == 0){
client_print(0,print_chat,"[DoD TK Revenge] %s hugs %s and forgives the TeamKill!",victimname,killername)
return PLUGIN_HANDLED
}
else if(is_user_alive(teamkiller[id]) == 1 && get_cvar_num("dod_tkrevenge_forgiveslap") == 1){
client_print(0,print_chat, "[DoD TK Revenge] %s slaps %s and forgives the TeamKill!",victimname,killername)
user_slap(teamkiller[id],0)
}
}
case 1: {
if(is_user_alive(teamkiller[id]) == 0){
client_print(id,print_chat,"[DoD TK Revenge] Sorry %s, %s is already dead!",victimname,killername)
return PLUGIN_HANDLED
}
else if(is_user_alive(teamkiller[id]) == 1){
if(get_cvar_num("dod_tkrevenge_enableglow") == 1){
client_print(0, print_chat, "[DoD TK Revenge] %s made %s glow and set him to 1hp for TeamKilling",victimname,killername)
if(get_user_team(teamkiller[id]) == 1){
set_user_rendering(teamkiller[id],kRenderFxGl owShell,0,255,0,kRenderNormal,25)
tkillglow[teamkiller[id]] = 1
}
else if(get_user_team(teamkiller[id]) == 2){
set_user_rendering(teamkiller[id],kRenderFxGl owShell,255,0,0,kRenderNormal,25)
tkillglow[teamkiller[id]] = 1
}
}
else if(get_cvar_num("dod_tkrevenge_enableglow") == 0){
client_print(0, print_chat, "[DoD TK Revenge] %s set %s to 1hp for TeamKilling",victimname,killername)
}
set_user_health(teamkiller[id],1)

}
}
case 2: {
if(is_user_alive(teamkiller[id]) == 0){
if(is_user_bot(teamkiller[id]) == 0){
if(nadetk[teamkiller[id]] == 0){
if(get_cvar_num("dod_tkrevenge_respawnslay") == 1){
respawnslay[teamkiller[id]] = 1
client_print(0,print_chat,"[DoD TK Revenge] %s will be slayed after respawn for TeamKilling %s!",killername,victimname)
}
else if(get_cvar_num("dod_tkrevenge_respawnslay") == 0){
client_print(0,print_chat,"[DoD TK Revenge] %s's TK-Count was increased for TeamKilling %s!",killername,victimname)
}
tkcount[teamkiller[id]]++
checktker(id)
return PLUGIN_HANDLED
}
else if(nadetk[teamkiller[id]] == 1){
if(get_cvar_num("dod_tkrevenge_respawnslay") == 1){
respawnslay[teamkiller[id]] = 1
client_print(0,print_chat,"[DoD TK Revenge] %s will be slayed after respawn for TeamKilling %s!",killername,victimname)
}
else if(get_cvar_num("dod_tkrevenge_respawnslay") == 0){
client_print(id,print_chat,"[DoD TK Revenge] Sorry %s, but %s is already dead!",victimname,killername)
}
return PLUGIN_HANDLED
}
}
else if(is_user_bot(teamkiller[id]) == 1){
client_print(id,print_chat,"[DoD TK Revenge] Sorry %s, but %s is already dead!",victimname,killername)
}
}
else if(is_user_alive(teamkiller[id]) == 1){
client_print(0, print_chat, "[DoD TK Revenge] %s has slayed %s for TeamKilling!",victimname,killername)
new killerid = teamkiller[id]
kill_teamkiller(killerid)
if(nadetk[teamkiller[id]] == 0 && is_user_bot(teamkiller[id]) == 0){
tkcount[teamkiller[id]]++
checktker(id)
}
}
}
}
}
else if(get_cvar_num("dod_tkrevenge_options") == 2){
switch(key){
case 0: {
if(is_user_alive(teamkiller[id]) == 0 || get_cvar_num("dod_tkrevenge_forgiveslap") == 0){
client_print(0,print_chat,"[DoD TK Revenge] %s hugs %s and forgives the TeamKill!",victimname,killername)
return PLUGIN_HANDLED
}
else if(is_user_alive(teamkiller[id]) == 1 && get_cvar_num("dod_tkrevenge_forgiveslap") == 1){
client_print(0,print_chat, "[DoD TK Revenge] %s slaps %s and forgives the TeamKill!",victimname,killername)
user_slap(teamkiller[id],0)
}
}
case 1: {
if(is_user_alive(teamkiller[id]) == 0){
if(is_user_bot(teamkiller[id]) == 0){
if(nadetk[teamkiller[id]] == 0){
if(get_cvar_num("dod_tkrevenge_respawnslay") == 1){
respawnslay[teamkiller[id]] = 1
client_print(0,print_chat,"[DoD TK Revenge] %s will be slayed after respawn for TeamKilling %s!",killername,victimname)
}
else if(get_cvar_num("dod_tkrevenge_respawnslay") == 0){
client_print(0,print_chat,"[DoD TK Revenge] %s's TK-Count was increased for TeamKilling %s!",killername,victimname)
}
tkcount[teamkiller[id]]++
checktker(id)
return PLUGIN_HANDLED
}
else if(nadetk[teamkiller[id]] == 1){
if(get_cvar_num("dod_tkrevenge_respawnslay") == 1){
respawnslay[teamkiller[id]] = 1
client_print(0,print_chat,"[DoD TK Revenge] %s will be slayed after respawn for TeamKilling %s!",killername,victimname)
}
else if(get_cvar_num("dod_tkrevenge_respawnslay") == 0){
client_print(id,print_chat,"[DoD TK Revenge] Sorry %s, but %s is already dead!",victimname,killername)
}
return PLUGIN_HANDLED
}
}
else if(is_user_bot(teamkiller[id]) == 1){
client_print(id,print_chat,"[DoD TK Revenge] Sorry %s, but %s is already dead!",victimname,killername)
}
}
else if(is_user_alive(teamkiller[id]) == 1){
client_print(0, print_chat, "[DoD TK Revenge] %s has slayed %s for TeamKilling!",victimname,killername)
new killerid = teamkiller[id]
kill_teamkiller(killerid)
if(nadetk[teamkiller[id]] == 0 && is_user_bot(teamkiller[id]) == 0){
tkcount[teamkiller[id]]++
checktker(id)
}
}
}
}
}
if(get_cvar_num("dod_tkrevenge_options") == 3){
switch(key){
case 0: {
if(is_user_alive(teamkiller[id]) == 0 || get_cvar_num("dod_tkrevenge_forgiveslap") == 0){
client_print(0,print_chat,"[DoD TK Revenge] %s hugs %s and forgives the TeamKill!",victimname,killername)
return PLUGIN_HANDLED
}
else if(is_user_alive(teamkiller[id]) == 1 && get_cvar_num("dod_tkrevenge_forgiveslap") == 1){
client_print(0,print_chat, "[DoD TK Revenge] %s slaps %s and forgives the TeamKill!",victimname,killername)
user_slap(teamkiller[id],0)
}
}
case 1: {
if(is_user_alive(teamkiller[id]) == 0){
client_print(id,print_chat,"[DoD TK Revenge] Sorry %s, %s is already dead!",victimname,killername)
return PLUGIN_HANDLED
}
else if(is_user_alive(teamkiller[id]) == 1){
client_print(0, print_chat, "[DoD TK Revenge] %s slapped %s with 50percent health for TeamKilling",victimname,killername)
new health = get_user_health(teamkiller[id])
new slappower = health/2
user_slap(teamkiller[id],slappower)
}
}
case 2: {
if(is_user_alive(teamkiller[id]) == 0){
if(is_user_bot(teamkiller[id]) == 0){
if(nadetk[teamkiller[id]] == 0){
if(get_cvar_num("dod_tkrevenge_respawnslay") == 1){
respawnslay[teamkiller[id]] = 1
client_print(0,print_chat,"[DoD TK Revenge] %s will be slayed after respawn for TeamKilling %s!",killername,victimname)
}
else if(get_cvar_num("dod_tkrevenge_respawnslay") == 0){
client_print(0,print_chat,"[DoD TK Revenge] %s's TK-Count was increased for TeamKilling %s!",killername,victimname)
}
tkcount[teamkiller[id]]++
checktker(id)
return PLUGIN_HANDLED
}
else if(nadetk[teamkiller[id]] == 1){
if(get_cvar_num("dod_tkrevenge_respawnslay") == 1){
respawnslay[teamkiller[id]] = 1
client_print(0,print_chat,"[DoD TK Revenge] %s will be slayed after respawn for TeamKilling %s!",killername,victimname)
}
else if(get_cvar_num("dod_tkrevenge_respawnslay") == 0){
client_print(id,print_chat,"[DoD TK Revenge] Sorry %s, but %s is already dead!",victimname,killername)
}
return PLUGIN_HANDLED
}
}
else if(is_user_bot(teamkiller[id]) == 1){
client_print(id,print_chat,"[DoD TK Revenge] Sorry %s, but %s is already dead!",victimname,killername)
}
}
else if(is_user_alive(teamkiller[id]) == 1){
client_print(0, print_chat, "[DoD TK Revenge] %s has slayed %s for TeamKilling!",victimname,killername)
new killerid = teamkiller[id]
kill_teamkiller(killerid)
if(nadetk[teamkiller[id]] == 0 && is_user_bot(teamkiller[id]) == 0){
tkcount[teamkiller[id]]++
checktker(id)
}
}
}
}
}
else if(get_cvar_num("dod_tkrevenge_options") == 4){
switch(key){
case 0: {
if(is_user_alive(teamkiller[id]) == 0 || get_cvar_num("dod_tkrevenge_forgiveslap") == 0){
client_print(0,print_chat,"[DoD TK Revenge] %s hugs %s and forgives the TeamKill!",victimname,killername)
return PLUGIN_HANDLED
}
else if(is_user_alive(teamkiller[id]) == 1 && get_cvar_num("dod_tkrevenge_forgiveslap") == 1){
client_print(0,print_chat, "[DoD TK Revenge] %s slaps %s and forgives the TeamKill!",victimname,killername)
user_slap(teamkiller[id],0)
}
}
case 1: {
client_print(0,print_chat,"[DoD TK Revenge] %s did NOT forgive %s the TeamKill!",victimname,killername)
if(nadetk[teamkiller[id]] == 0 && is_user_bot(teamkiller[id]) == 0){
tkcount[teamkiller[id]]++
checktker(id)
}
}
}
}
return PLUGIN_HANDLED
}

public player_respawn(id){
if(tkillglow[id] == 1){
set_user_rendering(id,kRenderFxGlowShell,0,0, 0,kRenderNormal,25)
tkillglow[id] = 0
}
if(respawnslay[id] == 1){
new killerid = id
respawnslay[id] = 0
new respawnname[32]
get_user_name(id,respawnname,31)
client_print(0,print_chat,"[DoD TK Revenge] %s has been slayed for his previous unforgiven TeamKill!",respawnname)
set_task(0.1,"kill_teamkiller",killerid)
return PLUGIN_CONTINUE
}
if(get_cvar_num("dod_tkrevenge_spawnprotect" ) == 1){
set_task(0.1,"get_spawnorigin",id)
}
spawned
Flashhh! is offline
Flashhh!
Senior Member
Join Date: Nov 2005
Old 03-01-2006 , 15:29  
Reply With Quote #6

Bump!
Flashhh! is offline
Flashhh!
Senior Member
Join Date: Nov 2005
Old 03-11-2006 , 06:51  
Reply With Quote #7

Can someone change it to work on lan PLEASE!?
Flashhh! is offline
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 20:26.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode