AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Help changing TK Plugin, Ban by IP instead AuthId (https://forums.alliedmods.net/showthread.php?t=24597)

Flashhh! 02-26-2006 20:07

Help changing TK Plugin, Ban by IP instead AuthId
 
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()


mysticssjgoku4 02-26-2006 20:16

Re: Help changing TK Plugin, Ban by IP instead AuthId
 
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.

Flashhh! 02-27-2006 01:27

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

Which is teh problem?

v3x 02-27-2006 01:30

It's compiled 100% but your indenting is teh suck.

Flashhh! 02-28-2006 01:04

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 :cry: . 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! 03-01-2006 15:29

Bump!

Flashhh! 03-11-2006 06:51

Can someone change it to work on lan PLEASE!? :(


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

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