<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[DoD Plugins Archive - All Forums]]></title>
		<link>https://www.dodplugins.net/forums/</link>
		<description><![CDATA[DoD Plugins Archive - https://www.dodplugins.net/forums]]></description>
		<pubDate>Fri, 28 Aug 2026 07:01:23 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Weaponmod]]></title>
			<link>https://www.dodplugins.net/forums/showthread.php?tid=1849</link>
			<pubDate>Sun, 23 Apr 2023 07:23:04 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.dodplugins.net/forums/member.php?action=profile&uid=670">TheVaskov</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.dodplugins.net/forums/showthread.php?tid=1849</guid>
			<description><![CDATA[This plugin allows you to add a new weapon for the Day of Defeat Goldsrc (steam) <br />
The system is based on standard weapons. We take the index of the essence of the weapon in your hands, and set the weapon code . <br />
The technology by which I do this is spied on in the systems of ZombieMod CS 1.6, and KORD_172 Weaponmod and else plugins. <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>idx_wpn = Id in m_pActiveItem
entity_set_int(idx_wpn, EV_INT_iuser4, i)</code></div></div><br />
<a href="https://youtu.be/HruIdNuiAVQ" target="_blank" rel="noopener" class="mycode_url">Demo video in YouTube</a><br />
<br />
After setting clip ammo, hud and models, start the registration of the Primary and Secondary attacks takes place, during which the substitution of the function takes place: <br />
sound overlay (if available) / changing the attack speed<br />
or if this is a special type of weapon that does not exist by default, then virtual functions are launched that simulate an attack in which you yourself prescribe a script.<br />
An important feature of this option is reading parameters from a text file, which contains a list of weapons, their characteristics and everything that is needed is written to a multidimensional array with pointers. now we don't need to produce countless plugins, because here we can set a flexible configuration.<br />
<br />
The special code is the line number in the text . this eliminates the iteration of the search for strings with matches of special code. because this is a direct link. so be careful.<br />
the plugin already provides a system of submodels in advance, you can assign 1 model file and specify the submodel number in a text file, or use unique models. the plugin already works in two modes automatically. <br />
Animations and sounds of the player will be used on the basis of standard weapons that you choose as a reference base.  HUD cartridges of whatever you wish from the whole list. the rest is much broader. I repeat, or you specify a special type of weapon, but this can be provided with a special type of attack.In general, the plugin architecture is very similar to the weapons system in Quake 1.<br />
<br />
Today, the plugin has a lot of holes and inaccuracies, and I need the help of experienced coders. I built the plugin on my knee, and every time I improve and optimize it, I would like feedback and help.  we need to speed up some functions and data processing.  Perhaps somewhere you should make additional checks and interrupt with a return<br />
<br />
<img src="https://www.dodplugins.net/forums/images/attachtypes/unknown.png" title="Unknown" border="0" alt=".sma" />
&nbsp;&nbsp;<a href="attachment.php?aid=519" target="_blank" title="">dod_weaponmod_ini.sma</a> (Size: 30.74 KB / Downloads: 4)
<br />
<br />
<img src="https://www.dodplugins.net/forums/images/attachtypes/unknown.png" title="Unknown" border="0" alt=".ini" />
&nbsp;&nbsp;<a href="attachment.php?aid=520" target="_blank" title="">w_weapons.ini</a> (Size: 1.18 KB / Downloads: 3)
]]></description>
			<content:encoded><![CDATA[This plugin allows you to add a new weapon for the Day of Defeat Goldsrc (steam) <br />
The system is based on standard weapons. We take the index of the essence of the weapon in your hands, and set the weapon code . <br />
The technology by which I do this is spied on in the systems of ZombieMod CS 1.6, and KORD_172 Weaponmod and else plugins. <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>idx_wpn = Id in m_pActiveItem
entity_set_int(idx_wpn, EV_INT_iuser4, i)</code></div></div><br />
<a href="https://youtu.be/HruIdNuiAVQ" target="_blank" rel="noopener" class="mycode_url">Demo video in YouTube</a><br />
<br />
After setting clip ammo, hud and models, start the registration of the Primary and Secondary attacks takes place, during which the substitution of the function takes place: <br />
sound overlay (if available) / changing the attack speed<br />
or if this is a special type of weapon that does not exist by default, then virtual functions are launched that simulate an attack in which you yourself prescribe a script.<br />
An important feature of this option is reading parameters from a text file, which contains a list of weapons, their characteristics and everything that is needed is written to a multidimensional array with pointers. now we don't need to produce countless plugins, because here we can set a flexible configuration.<br />
<br />
The special code is the line number in the text . this eliminates the iteration of the search for strings with matches of special code. because this is a direct link. so be careful.<br />
the plugin already provides a system of submodels in advance, you can assign 1 model file and specify the submodel number in a text file, or use unique models. the plugin already works in two modes automatically. <br />
Animations and sounds of the player will be used on the basis of standard weapons that you choose as a reference base.  HUD cartridges of whatever you wish from the whole list. the rest is much broader. I repeat, or you specify a special type of weapon, but this can be provided with a special type of attack.In general, the plugin architecture is very similar to the weapons system in Quake 1.<br />
<br />
Today, the plugin has a lot of holes and inaccuracies, and I need the help of experienced coders. I built the plugin on my knee, and every time I improve and optimize it, I would like feedback and help.  we need to speed up some functions and data processing.  Perhaps somewhere you should make additional checks and interrupt with a return<br />
<br />
<img src="https://www.dodplugins.net/forums/images/attachtypes/unknown.png" title="Unknown" border="0" alt=".sma" />
&nbsp;&nbsp;<a href="attachment.php?aid=519" target="_blank" title="">dod_weaponmod_ini.sma</a> (Size: 30.74 KB / Downloads: 4)
<br />
<br />
<img src="https://www.dodplugins.net/forums/images/attachtypes/unknown.png" title="Unknown" border="0" alt=".ini" />
&nbsp;&nbsp;<a href="attachment.php?aid=520" target="_blank" title="">w_weapons.ini</a> (Size: 1.18 KB / Downloads: 3)
]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[protection against unbannable players]]></title>
			<link>https://www.dodplugins.net/forums/showthread.php?tid=1847</link>
			<pubDate>Thu, 24 Nov 2022 00:07:58 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.dodplugins.net/forums/member.php?action=profile&uid=583">GameDrained</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.dodplugins.net/forums/showthread.php?tid=1847</guid>
			<description><![CDATA[So an idea for protection against unbannable players.<br />
we have a person joins server and is only there to annoy ppl with noise and racist remarks and so on.<br />
we ban and they come right back in.<br />
takes 40 50 bans before they get tired of doing it.<br />
So my idea is to have an add to list type thing were persons steam id is added in menu by admin and automatically act upon by server there after and every time they come in mutes them, takes away effectiveness of weapons away and buries them in ground.<br />
that way saves admin from having to manually ban them and wastes their time that they don't realize at first no one hears them.<br />
or maybe some one has a better idea.]]></description>
			<content:encoded><![CDATA[So an idea for protection against unbannable players.<br />
we have a person joins server and is only there to annoy ppl with noise and racist remarks and so on.<br />
we ban and they come right back in.<br />
takes 40 50 bans before they get tired of doing it.<br />
So my idea is to have an add to list type thing were persons steam id is added in menu by admin and automatically act upon by server there after and every time they come in mutes them, takes away effectiveness of weapons away and buries them in ground.<br />
that way saves admin from having to manually ban them and wastes their time that they don't realize at first no one hears them.<br />
or maybe some one has a better idea.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[DOD] Throw knife to weaponbox]]></title>
			<link>https://www.dodplugins.net/forums/showthread.php?tid=1846</link>
			<pubDate>Sat, 19 Nov 2022 12:41:03 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.dodplugins.net/forums/member.php?action=profile&uid=670">TheVaskov</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.dodplugins.net/forums/showthread.php?tid=1846</guid>
			<description><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b">DOD Throw Knife to Weaponbox</span><br />
VERSION "23 APRIL 2023"<br />
AUTHOR "[America][TheVaskov]"<br />
<br />
<br />
<img src="https://i.postimg.cc/Xv5JK8W1/throw-kifeads.png" loading="lazy"  alt="[Image: throw-kifeads.png]" class="mycode_img" /><br />
<br />
</div>
<span style="font-weight: bold;" class="mycode_b">Description</span><br />
Press the +attack2 (right mouse button) to throw a knife or a spade and kill the enemy <br />
<br />
ChatGPT: <br />
This code is a plugin for the Day of Defeat game in amxx 1.8.2 Goldsrc. It is designed to create effects and sounds when using the knife in the game. It also changes the weapon box model to match the knife being used. The code also handles collisions of the knife with players and other objects in the game, including breakable objects.<br />
<ul class="mycode_list"><li>Weaponbox retuned to flying knife<br />
</li>
<li>Spakles when spade\kinife hit the wall in hands or in air<br />
</li>
<li>Bloodpuff when kill player<br />
</li>
<li>Hud kill info works good and correctly<br />
</li>
<li>Update frags and kills is scoreboard (TAB)<br />
</li>
<li>Correctly orientation of rotating , blade to front<br />
</li>
<li>You can set private models for throw knife.<br />
</li>
<li>When knife flyis, we hear roation sound.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">CVAR:</span> <br />
<ul class="mycode_list"><li>Stack in wall for 2 seconds yes = 1; no = 0<br />
</li>
<li>additional blood splashes yes = 1; no = 0<br />
</li>
<li>Pitch vector corrector Z-axis   ~200 is good.  0 = parallel to ground <br />
</li>
<li>Velocity of throw 500 = 3 metres ; 1800 = 30 metres<br />
</li>
<li>Rotation speed of spade/knife  ~800 is good<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">To Do</span><ul class="mycode_list"><li>Need to Make hands empty after throw, cause now it autochanges to primary weapon<br />
</li>
<li>REgister sever config Friendly fire .. and mke FF knife attack<br />
</li>
<li>DONE 1.7: Turn off drop weaponbox when press G<br />
</li>
<li>DONE 1.7: Need to register touch breakable objects to destroy or make sparkle like from wall-toching<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">New is version 1.5: </span><ul class="mycode_list"><li>Spakles works better in spawn and some maps ( MSG_PVS replaced to MSG_ALL )<br />
</li>
<li>Cleared some functions Deleted: pev(flyknifeid, pev_globalname, status,31 <br />
</li>
<li>Added new cvars<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">New is version 1.6: </span> july 2022<ul class="mycode_list"><li>When knife flyis, we hear roation sound.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">New is version 1.7: </span> november 2022<ul class="mycode_list"><li>Turn off drop weaponbox when press G<br />
</li>
<li>Knife destroys windows, woods, but not dest
<br />
<img src="https://www.dodplugins.net/forums/images/attachtypes/unknown.png" title="Unknown" border="0" alt=".sma" />
&nbsp;&nbsp;<a href="attachment.php?aid=518" target="_blank" title="">dod_throwknife_weaponbox_APR2023.sma</a> (Size: 15.58 KB / Downloads: 3)
roy walls in dod_chrlie.bsp and another maps. <br />
</li>
<li>Better perfomance, I did blocked some func calls, for clear "client_prethink" <br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">New is version 1.8: </span> March-April 2022<ul class="mycode_list"><li>Better perfomance: Full turn-off ClientPrethink.  Now: Ham_Item_PreFrame. it run only when knife in arms , and we don't need asking system do we have knife now , how it was in previus versions in CurWeapon_P. <br />
</li>
<li>Add trail for flying knife<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">Need fix:</span> It is necessary to continue the definition of breaking objects, now the knife can break the wood of the door, only if they do not have the TARGET parameter. the map is so old that there is no target parameter in the very essence of the glass, so there is nothing to turn to for verification. (Spawn Allies window)<br />
<br />
For not registred in forum players: <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>#include &lt;amxmodx&gt;
#include &lt;amxmisc&gt;
#include &lt;fakemeta&gt;
#include &lt;hamsandwich&gt;
#include &lt;fakemeta_util&gt;
#include &lt;dodx&gt;
#include &lt;dodfun&gt;
#include &lt;fun&gt;
#include &lt;engine&gt;

#define m_knifeItem 272
//// Fakameta-engine interpriter
/*
#define pev(%1, %2, %3, %4) entity_get_string(%1 ,EV_SZ_classname,%3, %4)
#define set_pev(%1, %2, %3) entity_set_string(%1 ,EV_SZ_classname,%3)
#define set_pev(%1, pev_movetype, %2) entity_set_int(%1,EV_INT_movetype, %2) // EV_INT_movetype
#define set_pev(%1, pev_solid, %2) entity_set_int(%1,EV_INT_solid, %2) // EV_INT_solid
#define set_pev(%1, pev_angles, %2) entity_set_vector(%1, EV_VEC_angles, %2)
*/

/// Register arraty of names and models
new KNIVES_NAMES[3][] = {"weapon_amerknife","weapon_gerknife","weapon_spade"}
new KNIVES_MODELS[3][] = {"models/w_amerk.mdl","models/w_paraknife.mdl","models/w_spade.mdl"}
/// Register array of sounds
new const g_ThrowSound[] = "weapons/knifeswing2.wav"
new const g_ThrowFlySound[] = "weapons/knifeswing2.wav"
new const g_ThrowHitwallSound[] = "weapons/cbar_hit1.wav"
new const g_ThrowHitHumanSound[] = "weapons/hit_grass2.wav"
// Register player trigger


//                            spade 19/gerknife 2/amerk 1/britk 37
// Register messages 
new g_SpriteBlood
new g_SpriteBlood2
new g_msgBloodPuff // bloodpuff by touching knife to player
new g_MsgDeathMsg  // register hud message who kills with knifetype
new g_FhSetModel  // id for register event to setmodel by FAKEMETA in weaponboxspawn 
// CVars
new cv_stackinwall //  Stack 1 = 0, no stack in wall = 0
new cv_bldsprt // bonus boold splashes 1 on . 0 = off 
new cv_angpitch // angle-up by throw 
new cv_spspeed // speed fly spade
new cv_sprot // rotation speed
new cv_trail // trail for knife
//// Function list 
/*
plugin_precache
plugin_init
player_Spawn_P // block drop knife by G button (drop command)
DeathMsg_P //  block drop knife by G button (drop command)
CurWeapon_P // parse knife name for drop this is fix for drop only knife without pistol or else.
client_connect // block drop knife by G button (drop command)
client_PreThink  // oldway +attack2 to throwknife
Ham_Weapon_P //  +attack to throwknife
WeaponBox_Drop_P  // accepting for drop knife
WeaponBox_Spawn  // register weaponbox with knife to make it throw
Weaponbox_Retune  // set movetype, new classname, set rotation, set velocity
WeaponBox_Touch   // register touch
Particle_Fx    // fx when you stab the wall hands with knife to make sparkle :D
WeaponBox_Unstuck   // Back movetype after stack in wall
WeaponBox_Sound // Repeats rotation sound whe knife flyes
*/
// Playe's Array
// &#1084;&#1085;&#1086;&#1075;&#1086;&#1091;&#1088;&#1086;&#1074;&#1085;&#1077;&#1074;&#1099;&#1081; &#1084;&#1072;&#1089;&#1089;&#1080;&#1074; &#1089; &#1091;&#1082;&#1072;&#1079;&#1072;&#1090;&#1077;&#1083;&#1077;&#1084;
enum _:PLAYER_DATA
{
    bool:accept_throw,  // if (get_user_weapon(i_player,_,_) == any knife or spade) {accepttofly = true}
    bool:input_b, // bool for mouse2 button
    knifetype, //  = get_user_weapon(i_player,_,_) ; = knifetype  - SET HUD KILL ICON AND W_MODEL
	knifename[17], 
	team
}

new Float:TumbleVector[3]

// server data
new g_maxpl // need for difference touch index nums
new g_FriendlyFire
// &#1089;&#1086;&#1079;&#1076;&#1072;&#1105;&#1084; &#1084;&#1072;&#1089;&#1089;&#1080;&#1074; &#1074; &#1089; &#1091;&#1082;&#1072;&#1079;&#1072;&#1090;&#1077;&#1083;&#1100;&#1085;&#1099;&#1084; &#1084;&#1072;&#1089;&#1089;&#1080;&#1074;&#1086;&#1084;
new g_arr[33][PLAYER_DATA]


public plugin_precache()
{
	precache_model(KNIVES_MODELS[0])
	precache_model(KNIVES_MODELS[1])
	precache_model(KNIVES_MODELS[2])
	precache_sound(g_ThrowSound)
	precache_sound(g_ThrowFlySound)
	precache_sound(g_ThrowHitwallSound)
	precache_sound(g_ThrowHitHumanSound)
	
	g_SpriteBlood = precache_model("sprites/blood-narrow.spr")
	g_SpriteBlood2 = precache_model("sprites/effects/debris_tile1.spr")
	
}

public plugin_init()
{
	register_plugin("DOD THROW KNIFES", "2023", "America")
	
	cv_stackinwall = register_cvar("stack1_nostack0","0")
	cv_bldsprt = register_cvar("bloodspash1_no0","0")
	
	cv_angpitch = register_cvar("sp_angle_pitch","200")
	cv_spspeed = register_cvar("sp_speed","1600")
	cv_sprot = register_cvar("sp_rotation","800")
    cv_trail = register_cvar("fx_trail","1")
	
	
	g_maxpl = get_maxplayers()
	g_FriendlyFire = get_cvar_num ( "mp_friendlyfire")

    // accepty to drop'n fly
    register_event("CurWeapon","CurWeapon_P","be", "1=1");
	RegisterHam(Ham_DOD_Item_CanDrop,KNIVES_NAMES[0],"WeaponBox_Drop_P")
	RegisterHam(Ham_DOD_Item_CanDrop,KNIVES_NAMES[1], "WeaponBox_Drop_P")
	RegisterHam(Ham_DOD_Item_CanDrop,KNIVES_NAMES[2],"WeaponBox_Drop_P")
	RegisterHam(Ham_Spawn, "weaponbox", "WeaponBox_Spawn", 1)
	RegisterHam(Ham_Spawn, "player", "Player_Spawn_P", 1)
	RegisterHam(Ham_Item_PreFrame,KNIVES_NAMES[0],"Ham_Weapon_P")
	RegisterHam(Ham_Item_PreFrame,KNIVES_NAMES[1], "Ham_Weapon_P")
	RegisterHam(Ham_Item_PreFrame,KNIVES_NAMES[2],"Ham_Weapon_P")
	register_touch("fly_knife", "", "WeaponBox_Touch")
    
	// tempentity event - decal applied to world or entity // register event wall sprite
	register_event("DeathMsg", "DeathMsg_P", "a")
	register_event("23", "Particle_Fx", "a", "1=116", "1=104")
	
	g_msgBloodPuff = get_user_msgid("BloodPuff")
	g_MsgDeathMsg = get_user_msgid("DeathMsg")
    
}

public Player_Spawn_P(id)
{	
	if(is_user_alive(id))
	{
	g_arr[id][team] = get_user_team(id) 
	}
} 
public DeathMsg_P()
{
	new victim = read_data(2)
	g_arr[victim][accept_throw] = false
	// 
	// client_print(0, print_chat, "event deatn")
}

public CurWeapon_P(id)
{
	new weapon = read_data(2)

    
	if(weapon == DODW_AMERKNIFE || weapon == DODW_GERKNIFE || weapon == DODW_SPADE || weapon == DODW_BRITKNIFE)
	{
	// &#1074;&#1079;&#1103;&#1090;&#1100; &#1075;&#1088;&#1072;&#1085;&#1072;&#1090;&#1099; &#1080;&#1085;&#1076;&#1077;&#1082;&#1089;
	g_arr[id][accept_throw] = false
    g_arr[id][input_b] = true
    g_arr[id][knifetype] = weapon

	
	new en = get_pdata_cbase(id, m_knifeItem)
	pev(en,pev_classname,g_arr[id][knifename],16)
	TumbleVector[0] = float (get_pcvar_num(cv_sprot)) // = 1320.0  // Wheel
	// TumbleVector[1] // = random_float(800.0,100.0)  // TEA
	TumbleVector[2] = random_float(-10.0,10.0) // 400.0 // = random_float(2.0,0.0) //  HOURS


    return PLUGIN_CONTINUE
	}
	else
	{
    
    	g_arr[id][accept_throw] = false
		return PLUGIN_CONTINUE
	}
	return PLUGIN_CONTINUE
}
public client_connect(id)
{
    g_arr[id][input_b] = true
    g_arr[id][accept_throw] = false
}

/*  Item_fram would be better, cause it call only when weapon in arms
public client_PreThink(i_player)
{
	
    if(g_arr[i_player][accept_throw]==true)
    {   
        if(pev(i_player,pev_button)&amp;IN_ATTACK2)
        {   
			engclient_cmd(i_player,"drop",g_arr[i_player][knifename])
			g_arr[i_player][input_b] = false
            return PLUGIN_CONTINUE
        }
		return PLUGIN_CONTINUE
    }
    return PLUGIN_CONTINUE
	
}
*/
public Ham_Weapon_P(id)
{	
	new i_player = pev(id, pev_owner)
	if(!is_user_bot(i_player))
	{
	    if(pev(i_player,pev_button)&amp;IN_ATTACK2)
        {   
            g_arr[i_player][accept_throw] = true
			engclient_cmd(i_player,"drop",g_arr[i_player][knifename])
			g_arr[i_player][input_b] = false
        }
		
    }
   
}

public WeaponBox_Drop_P(id)
{

    /// &#1079;&#1072;&#1087;&#1089;&#1090;&#1080;&#1090;&#1100; &#1087;&#1088;&#1086;&#1074;&#1077;&#1088;&#1082; &#1085;&#1072; &#1088;&#1072;&#1079;&#1088;&#1077;&#1096;&#1077;&#1085;&#1080;&#1077; &#1074;&#1099;&#1073;&#1088;&#1086;&#1089;&#1072; &#1085;&#1086;&#1078;&#1072; &#1084;&#1077;&#1090;&#1086;&#1076;&#1086;&#1084; &#1073;&#1088;&#1086;&#1089;&#1082;&#1072;
	new id_owner
	id_owner = pev(id,pev_owner)
	if(is_valid_ent(id) &amp;&amp; g_arr[id_owner][accept_throw] == true)
	{
        g_arr[id_owner][accept_throw] = false
		SetHamReturnInteger(1)
		return HAM_SUPERCEDE
	}
	return HAM_IGNORED
}

public WeaponBox_Spawn(weaponbox)
{	

	g_FhSetModel = register_forward(FM_SetModel, "WeaponBox_Spawn2")

	//client_print(0, print_chat, "[g_FhSetModel] %d for %d " , g_FhSetModel , weaponbox) ;
	return HAM_IGNORED;

}


public WeaponBox_Spawn2(weaponbox)
{	   
	// 82 = spades // 84 rifles
	new activeitem
	new cls[32]
	pev(weaponbox ,pev_classname, cls, 31 )
	if(equal(cls,"weaponbox"))
	{
		activeitem = get_pdata_cbase(weaponbox, 82, 4);
		if(activeitem &gt; 1)
		{
			pev(activeitem ,pev_classname, cls, 16 )
			unregister_forward(FM_SetModel, g_FhSetModel)
			//client_print(0, print_chat, "[spawn2] weaponbox %d contain  %s , item %d ", weaponbox , cls, activeitem)
			set_pev(weaponbox,pev_classname,"fly_knife")
			WeaponBox_Retune(weaponbox)
			return FMRES_HANDLED;	
		}
		return FMRES_IGNORED
	}
	
	// unregister_forward(FM_SetModel, g_FhSetModel)
	return FMRES_IGNORED
	
}	

public WeaponBox_Retune(weaponbox)
{
	new id_owner 
	id_owner = pev(weaponbox,pev_owner)
    if(!is_user_alive(id_owner) || is_user_bot(id_owner))
        {
            return PLUGIN_HANDLED
        }
	new float:vlc[3], float:ang[3]
	velocity_by_aim(id_owner, get_pcvar_num(cv_spspeed), vlc )
	//velocity_by_aim(id_owner, 1600, vlc )
	//server_print("%f %f %f ", vlc[0],vlc[1],vlc[2])		
	vector_to_angle(vlc, ang)	
	
	ang[0] += 45.0
	ang[2] += 80.0

	emit_sound(weaponbox,CHAN_AUTO,g_ThrowSound,0.9,ATTN_NORM,0,PITCH_NORM)
	set_pev(weaponbox, pev_angles, ang)
	engfunc(EngFunc_SetSize, weaponbox, Float:{-2.0, -2.0, -2.0}, Float:{2.0, 2.0, 2.0})
	set_pev(weaponbox,pev_movetype,MOVETYPE_TOSS)	
	set_pev(weaponbox,pev_solid,SOLID_TRIGGER)
	set_pev(weaponbox,pev_velocity, vlc)
	set_pev(weaponbox,pev_avelocity,TumbleVector)	
	//set_pev(weaponbox,pev_gravity, 0.1)
    if(cv_trail)
    {
        message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
        write_byte(TE_BEAMFOLLOW)	// Temp entity type
        write_short(weaponbox)		// entity
        write_short(g_SpriteBlood2)	// sprite index
        write_byte(4)	// life time in 0.1's
        write_byte(2)	// line width in 0.1's
        write_byte(63)	// red (RGB)
        write_byte(63)	// green (RGB)
        write_byte(63)	// blue (RGB)
        write_byte(20)	// brightness 0 invisible, 255 visible
        message_end()
    }

	
	set_task(0.13, "WeaponBox_Sound", weaponbox)
}

public WeaponBox_Touch(id_knife,id_target)
{	
	// Register Universal data
	new Float:f_Ori[3]
	new i_Ori[3]
	entity_get_vector(id_knife,EV_VEC_origin,f_Ori)
	FVecIVec(f_Ori,i_Ori)
	new id_owner = pev(id_knife, pev_owner)
	
	switch(g_arr[id_owner][knifetype])
	{
		case DODW_AMERKNIFE:
		{
			//engfunc(EngFunc_SetModel,id_knife,KNIVES_MODELS[0])

		}
		case DODW_GERKNIFE:
		{
			// 
		}
		case DODW_SPADE:
		{
			engfunc(EngFunc_SetModel,id_knife,KNIVES_MODELS[2])  // need to replace weaponbox model
		}
		case DODW_BRITKNIFE:
		{
			// g_arr[id_owner][knifetype] = 1  // need to register hud kill message icon
		}
	}
	if(id_owner==id_target) return PLUGIN_CONTINUE	
	// Start Difference touch
	// PLAYERS
	if(id_target &gt;= 1 &amp;&amp; id_target &lt;= g_maxpl)
	{
		// hits players
		// FX 
		emit_sound(id_knife,CHAN_AUTO,g_ThrowHitHumanSound,0.4,ATTN_IDLE ,0,PITCH_NORM)
		if(get_pcvar_num(cv_bldsprt) == 1)
		{
			message_begin(MSG_BROADCAST, SVC_TEMPENTITY) 
			write_byte(TE_BLOODSPRITE)
			write_coord(i_Ori[0])
			write_coord(i_Ori[1])
			write_coord(i_Ori[2])
			write_short(g_SpriteBlood)
			write_short(g_SpriteBlood)
			write_byte(248)
			write_byte(2)
			message_end()
		}
		else
		{
			message_begin(MSG_BROADCAST,g_msgBloodPuff,{0,0,0},0)
			write_coord(i_Ori[0])
			write_coord(i_Ori[1])
			write_coord(i_Ori[2])
			message_end()
		}

		if(g_FriendlyFire == 1 )
		{
			//kill qll

			user_silentkill(id_target)

			dod_set_user_kills(id_owner, (dod_get_user_kills(id_owner) + 1), 1)
			//dod_set_pl_deaths(id_target,(dod_get_pl_deaths(id_target) + 1), 1)
			//dod_set_user_score(id_target,(dod_get_user_score(id_target)),1)
			
			
			message_begin(MSG_ALL, g_MsgDeathMsg,{0,0,0},0)
			write_byte(id_owner) // killer
			write_byte(id_target) // victim
			write_byte(g_arr[id_owner][knifetype])  // 42 is smash
			message_end()

			
			
			set_pev(id_knife, pev_classname, "weaponbox")
			set_pev(id_knife, pev_avelocity,{60.0 , 50.0 , 150.0})
			set_pev(id_knife, pev_velocity,{60.0 , 50.0 , 50.0})
			return PLUGIN_CONTINUE
			
		}
		else if(g_arr[id_owner][team] != get_user_team(id_target) &amp;&amp; g_FriendlyFire == 0)
		{
			//kill enemy only

			user_silentkill(id_target)
			
			dod_set_user_kills(id_owner, (dod_get_user_kills(id_owner) + 1),1)
			//dod_set_pl_deaths(id_target,(dod_get_pl_deaths(id_target) + 1),1)
			//dod_set_user_score(id_target,(dod_get_user_score(id_target)),1)
			message_begin(MSG_ALL, g_MsgDeathMsg,{0,0,0},0)
			write_byte(id_owner) // killer
			write_byte(id_target) // victim
			write_byte(g_arr[id_owner][knifetype])  // 42 is smash
			message_end()

			
			
			set_pev(id_knife, pev_classname, "weaponbox")
			set_pev(id_knife, pev_avelocity,{60.0 , 50.0 , 150.0})
			set_pev(id_knife, pev_velocity,{60.0 , 50.0 , 50.0})
			return PLUGIN_CONTINUE
		}
		else if (g_arr[id_owner][team] == get_user_team(id_target) &amp;&amp; g_FriendlyFire == 0)
		{	

			set_pev(id_knife, pev_classname, "weaponbox")
			set_pev(id_knife, pev_avelocity,{60.0 , 50.0 , 150.0})
			set_pev(id_knife, pev_velocity,{60.0 , 50.0 , 50.0})
			return PLUGIN_CONTINUE
		}

	}
	else if (id_target==0)
	{
		// hit world or entities

		// FX	
		message_begin(MSG_ALL,SVC_TEMPENTITY)
		write_byte(TE_SPARKS)
		write_coord(i_Ori[0])
		write_coord(i_Ori[1])
		write_coord(i_Ori[2])
		message_end()
		emit_sound(id_knife, CHAN_AUTO, g_ThrowHitwallSound, 0.8, 1.0, 0, PITCH_NORM)
		
		set_pev(id_knife, pev_classname, "weaponbox")
		set_pev(id_knife, pev_avelocity,{60.0 , 50.0 , 150.0})
		set_pev(id_knife, pev_velocity,{60.0 , 50.0 , 50.0})

		if(get_pcvar_num(cv_stackinwall) == 1)
		{
			set_pev(id_knife, pev_movetype, MOVETYPE_NONE)
			set_task(2.0, "WeaponBox_Unstuck", id_knife)
			return PLUGIN_CONTINUE
		}
		return PLUGIN_CONTINUE
	}
	else if (id_target &gt; g_maxpl)
	{
		///// IF ENTITY OR BREACABLE
		new clT[32]
		pev(id_target, pev_classname, clT, 31)
		
		// FX	
		message_begin(MSG_ALL,SVC_TEMPENTITY)
		write_byte(TE_SPARKS)
		write_coord(i_Ori[0])
		write_coord(i_Ori[1])
		write_coord(i_Ori[2])
		message_end()
		emit_sound(id_knife, CHAN_AUTO, g_ThrowHitwallSound, 0.8, 1.0, 0, PITCH_NORM)


		if(equal(clT,"func_breakable")) 
		{
			new tgn[32]
			entity_get_string(id_target,EV_SZ_targetname,tgn,31)

			// for example in DOD_CHARLIE or CAEN we have some breakeble object which has target name , 
			// thats why we shouldn't destriy this.
			if(!tgn[0])
			{
				emit_sound(id_knife, CHAN_AUTO, g_ThrowHitwallSound, 0.3, 1.0, 0, PITCH_NORM)
				// new idAttacker = pev(id_knife, pev_owner)
				ExecuteHam(Ham_TakeDamage,id_target, 1, 1, 30.0, DMG_BULLET)				
			}
			//client_print(0, print_chat, "[FUNCBREAK] %s %s ",clT, tgn )
		}
		set_pev(id_knife, pev_classname, "weaponbox")
		set_pev(id_knife, pev_avelocity,{60.0 , 50.0 , 150.0})
		set_pev(id_knife, pev_velocity,{60.0 , 50.0 , 50.0})
		return PLUGIN_CONTINUE
	}
	return PLUGIN_CONTINUE
}

public WeaponBox_Unstuck(id_knife)
{
	
	if(pev_valid(id_knife))
	{	
		set_pev(id_knife,pev_movetype,MOVETYPE_TOSS)
		set_pev(id_knife,pev_avelocity,{60.0 , 50.0 , 150.0})
		set_pev(id_knife,pev_velocity,{0.0 , 0.0 , 0.0})
	}
}

public WeaponBox_Sound(id_knife)
{
	new classname[32] // weapon_spade/knife/gerknife
	if(pev_valid(id_knife)) 
	{
		pev(id_knife, pev_classname,  classname,31)
		if(equal(classname,"fly_knife")) 
		{
			emit_sound(id_knife,CHAN_AUTO,g_ThrowSound,0.5,ATTN_NORM,0,PITCH_HIGH)
			set_task(0.12, "WeaponBox_Sound", id_knife)
		}	
	}
}

public Particle_Fx()
{
	static Float:origin[3]
	
	switch (read_data(5)) 
	{
		case 54..58: 
		{		// is decal shot1-5?
			read_data(2, origin[0])
			read_data(3, origin[1])
			read_data(4, origin[2])
			message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
			write_byte(TE_SPARKS)
			write_coord(floatround(origin[0]))
			write_coord(floatround(origin[1]))
			write_coord(floatround(origin[2]))
			message_end()
		}
		default: 
		{
			return
		}
	}	
}</code></div></div><br />

<br />
<img src="https://www.dodplugins.net/forums/images/attachtypes/unknown.png" title="Unknown" border="0" alt=".sma" />
&nbsp;&nbsp;<a href="attachment.php?aid=517" target="_blank" title="">dod_throwknife_weaponbox_1.7.sma</a> (Size: 15.69 KB / Downloads: 3)
 Download <br />
<br />

<br />
<img src="https://www.dodplugins.net/forums/images/attachtypes/unknown.png" title="Unknown" border="0" alt=".sma" />
&nbsp;&nbsp;<a href="attachment.php?aid=518" target="_blank" title="">dod_throwknife_weaponbox_APR2023.sma</a> (Size: 15.58 KB / Downloads: 3)
  Download <br />
<br />
<br />
<br />
-----------<br />
I've not intrested in anoter HL mods (CS , TF ..... ) only DOD]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b">DOD Throw Knife to Weaponbox</span><br />
VERSION "23 APRIL 2023"<br />
AUTHOR "[America][TheVaskov]"<br />
<br />
<br />
<img src="https://i.postimg.cc/Xv5JK8W1/throw-kifeads.png" loading="lazy"  alt="[Image: throw-kifeads.png]" class="mycode_img" /><br />
<br />
</div>
<span style="font-weight: bold;" class="mycode_b">Description</span><br />
Press the +attack2 (right mouse button) to throw a knife or a spade and kill the enemy <br />
<br />
ChatGPT: <br />
This code is a plugin for the Day of Defeat game in amxx 1.8.2 Goldsrc. It is designed to create effects and sounds when using the knife in the game. It also changes the weapon box model to match the knife being used. The code also handles collisions of the knife with players and other objects in the game, including breakable objects.<br />
<ul class="mycode_list"><li>Weaponbox retuned to flying knife<br />
</li>
<li>Spakles when spade\kinife hit the wall in hands or in air<br />
</li>
<li>Bloodpuff when kill player<br />
</li>
<li>Hud kill info works good and correctly<br />
</li>
<li>Update frags and kills is scoreboard (TAB)<br />
</li>
<li>Correctly orientation of rotating , blade to front<br />
</li>
<li>You can set private models for throw knife.<br />
</li>
<li>When knife flyis, we hear roation sound.<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">CVAR:</span> <br />
<ul class="mycode_list"><li>Stack in wall for 2 seconds yes = 1; no = 0<br />
</li>
<li>additional blood splashes yes = 1; no = 0<br />
</li>
<li>Pitch vector corrector Z-axis   ~200 is good.  0 = parallel to ground <br />
</li>
<li>Velocity of throw 500 = 3 metres ; 1800 = 30 metres<br />
</li>
<li>Rotation speed of spade/knife  ~800 is good<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">To Do</span><ul class="mycode_list"><li>Need to Make hands empty after throw, cause now it autochanges to primary weapon<br />
</li>
<li>REgister sever config Friendly fire .. and mke FF knife attack<br />
</li>
<li>DONE 1.7: Turn off drop weaponbox when press G<br />
</li>
<li>DONE 1.7: Need to register touch breakable objects to destroy or make sparkle like from wall-toching<br />
</li>
</ul>
<br />
<span style="font-weight: bold;" class="mycode_b">New is version 1.5: </span><ul class="mycode_list"><li>Spakles works better in spawn and some maps ( MSG_PVS replaced to MSG_ALL )<br />
</li>
<li>Cleared some functions Deleted: pev(flyknifeid, pev_globalname, status,31 <br />
</li>
<li>Added new cvars<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">New is version 1.6: </span> july 2022<ul class="mycode_list"><li>When knife flyis, we hear roation sound.<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">New is version 1.7: </span> november 2022<ul class="mycode_list"><li>Turn off drop weaponbox when press G<br />
</li>
<li>Knife destroys windows, woods, but not dest
<br />
<img src="https://www.dodplugins.net/forums/images/attachtypes/unknown.png" title="Unknown" border="0" alt=".sma" />
&nbsp;&nbsp;<a href="attachment.php?aid=518" target="_blank" title="">dod_throwknife_weaponbox_APR2023.sma</a> (Size: 15.58 KB / Downloads: 3)
roy walls in dod_chrlie.bsp and another maps. <br />
</li>
<li>Better perfomance, I did blocked some func calls, for clear "client_prethink" <br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">New is version 1.8: </span> March-April 2022<ul class="mycode_list"><li>Better perfomance: Full turn-off ClientPrethink.  Now: Ham_Item_PreFrame. it run only when knife in arms , and we don't need asking system do we have knife now , how it was in previus versions in CurWeapon_P. <br />
</li>
<li>Add trail for flying knife<br />
</li>
</ul>
<span style="font-weight: bold;" class="mycode_b">Need fix:</span> It is necessary to continue the definition of breaking objects, now the knife can break the wood of the door, only if they do not have the TARGET parameter. the map is so old that there is no target parameter in the very essence of the glass, so there is nothing to turn to for verification. (Spawn Allies window)<br />
<br />
For not registred in forum players: <br />
<div class="codeblock"><div class="title">Code:</div><div class="body" dir="ltr"><code>#include &lt;amxmodx&gt;
#include &lt;amxmisc&gt;
#include &lt;fakemeta&gt;
#include &lt;hamsandwich&gt;
#include &lt;fakemeta_util&gt;
#include &lt;dodx&gt;
#include &lt;dodfun&gt;
#include &lt;fun&gt;
#include &lt;engine&gt;

#define m_knifeItem 272
//// Fakameta-engine interpriter
/*
#define pev(%1, %2, %3, %4) entity_get_string(%1 ,EV_SZ_classname,%3, %4)
#define set_pev(%1, %2, %3) entity_set_string(%1 ,EV_SZ_classname,%3)
#define set_pev(%1, pev_movetype, %2) entity_set_int(%1,EV_INT_movetype, %2) // EV_INT_movetype
#define set_pev(%1, pev_solid, %2) entity_set_int(%1,EV_INT_solid, %2) // EV_INT_solid
#define set_pev(%1, pev_angles, %2) entity_set_vector(%1, EV_VEC_angles, %2)
*/

/// Register arraty of names and models
new KNIVES_NAMES[3][] = {"weapon_amerknife","weapon_gerknife","weapon_spade"}
new KNIVES_MODELS[3][] = {"models/w_amerk.mdl","models/w_paraknife.mdl","models/w_spade.mdl"}
/// Register array of sounds
new const g_ThrowSound[] = "weapons/knifeswing2.wav"
new const g_ThrowFlySound[] = "weapons/knifeswing2.wav"
new const g_ThrowHitwallSound[] = "weapons/cbar_hit1.wav"
new const g_ThrowHitHumanSound[] = "weapons/hit_grass2.wav"
// Register player trigger


//                            spade 19/gerknife 2/amerk 1/britk 37
// Register messages 
new g_SpriteBlood
new g_SpriteBlood2
new g_msgBloodPuff // bloodpuff by touching knife to player
new g_MsgDeathMsg  // register hud message who kills with knifetype
new g_FhSetModel  // id for register event to setmodel by FAKEMETA in weaponboxspawn 
// CVars
new cv_stackinwall //  Stack 1 = 0, no stack in wall = 0
new cv_bldsprt // bonus boold splashes 1 on . 0 = off 
new cv_angpitch // angle-up by throw 
new cv_spspeed // speed fly spade
new cv_sprot // rotation speed
new cv_trail // trail for knife
//// Function list 
/*
plugin_precache
plugin_init
player_Spawn_P // block drop knife by G button (drop command)
DeathMsg_P //  block drop knife by G button (drop command)
CurWeapon_P // parse knife name for drop this is fix for drop only knife without pistol or else.
client_connect // block drop knife by G button (drop command)
client_PreThink  // oldway +attack2 to throwknife
Ham_Weapon_P //  +attack to throwknife
WeaponBox_Drop_P  // accepting for drop knife
WeaponBox_Spawn  // register weaponbox with knife to make it throw
Weaponbox_Retune  // set movetype, new classname, set rotation, set velocity
WeaponBox_Touch   // register touch
Particle_Fx    // fx when you stab the wall hands with knife to make sparkle :D
WeaponBox_Unstuck   // Back movetype after stack in wall
WeaponBox_Sound // Repeats rotation sound whe knife flyes
*/
// Playe's Array
// &#1084;&#1085;&#1086;&#1075;&#1086;&#1091;&#1088;&#1086;&#1074;&#1085;&#1077;&#1074;&#1099;&#1081; &#1084;&#1072;&#1089;&#1089;&#1080;&#1074; &#1089; &#1091;&#1082;&#1072;&#1079;&#1072;&#1090;&#1077;&#1083;&#1077;&#1084;
enum _:PLAYER_DATA
{
    bool:accept_throw,  // if (get_user_weapon(i_player,_,_) == any knife or spade) {accepttofly = true}
    bool:input_b, // bool for mouse2 button
    knifetype, //  = get_user_weapon(i_player,_,_) ; = knifetype  - SET HUD KILL ICON AND W_MODEL
	knifename[17], 
	team
}

new Float:TumbleVector[3]

// server data
new g_maxpl // need for difference touch index nums
new g_FriendlyFire
// &#1089;&#1086;&#1079;&#1076;&#1072;&#1105;&#1084; &#1084;&#1072;&#1089;&#1089;&#1080;&#1074; &#1074; &#1089; &#1091;&#1082;&#1072;&#1079;&#1072;&#1090;&#1077;&#1083;&#1100;&#1085;&#1099;&#1084; &#1084;&#1072;&#1089;&#1089;&#1080;&#1074;&#1086;&#1084;
new g_arr[33][PLAYER_DATA]


public plugin_precache()
{
	precache_model(KNIVES_MODELS[0])
	precache_model(KNIVES_MODELS[1])
	precache_model(KNIVES_MODELS[2])
	precache_sound(g_ThrowSound)
	precache_sound(g_ThrowFlySound)
	precache_sound(g_ThrowHitwallSound)
	precache_sound(g_ThrowHitHumanSound)
	
	g_SpriteBlood = precache_model("sprites/blood-narrow.spr")
	g_SpriteBlood2 = precache_model("sprites/effects/debris_tile1.spr")
	
}

public plugin_init()
{
	register_plugin("DOD THROW KNIFES", "2023", "America")
	
	cv_stackinwall = register_cvar("stack1_nostack0","0")
	cv_bldsprt = register_cvar("bloodspash1_no0","0")
	
	cv_angpitch = register_cvar("sp_angle_pitch","200")
	cv_spspeed = register_cvar("sp_speed","1600")
	cv_sprot = register_cvar("sp_rotation","800")
    cv_trail = register_cvar("fx_trail","1")
	
	
	g_maxpl = get_maxplayers()
	g_FriendlyFire = get_cvar_num ( "mp_friendlyfire")

    // accepty to drop'n fly
    register_event("CurWeapon","CurWeapon_P","be", "1=1");
	RegisterHam(Ham_DOD_Item_CanDrop,KNIVES_NAMES[0],"WeaponBox_Drop_P")
	RegisterHam(Ham_DOD_Item_CanDrop,KNIVES_NAMES[1], "WeaponBox_Drop_P")
	RegisterHam(Ham_DOD_Item_CanDrop,KNIVES_NAMES[2],"WeaponBox_Drop_P")
	RegisterHam(Ham_Spawn, "weaponbox", "WeaponBox_Spawn", 1)
	RegisterHam(Ham_Spawn, "player", "Player_Spawn_P", 1)
	RegisterHam(Ham_Item_PreFrame,KNIVES_NAMES[0],"Ham_Weapon_P")
	RegisterHam(Ham_Item_PreFrame,KNIVES_NAMES[1], "Ham_Weapon_P")
	RegisterHam(Ham_Item_PreFrame,KNIVES_NAMES[2],"Ham_Weapon_P")
	register_touch("fly_knife", "", "WeaponBox_Touch")
    
	// tempentity event - decal applied to world or entity // register event wall sprite
	register_event("DeathMsg", "DeathMsg_P", "a")
	register_event("23", "Particle_Fx", "a", "1=116", "1=104")
	
	g_msgBloodPuff = get_user_msgid("BloodPuff")
	g_MsgDeathMsg = get_user_msgid("DeathMsg")
    
}

public Player_Spawn_P(id)
{	
	if(is_user_alive(id))
	{
	g_arr[id][team] = get_user_team(id) 
	}
} 
public DeathMsg_P()
{
	new victim = read_data(2)
	g_arr[victim][accept_throw] = false
	// 
	// client_print(0, print_chat, "event deatn")
}

public CurWeapon_P(id)
{
	new weapon = read_data(2)

    
	if(weapon == DODW_AMERKNIFE || weapon == DODW_GERKNIFE || weapon == DODW_SPADE || weapon == DODW_BRITKNIFE)
	{
	// &#1074;&#1079;&#1103;&#1090;&#1100; &#1075;&#1088;&#1072;&#1085;&#1072;&#1090;&#1099; &#1080;&#1085;&#1076;&#1077;&#1082;&#1089;
	g_arr[id][accept_throw] = false
    g_arr[id][input_b] = true
    g_arr[id][knifetype] = weapon

	
	new en = get_pdata_cbase(id, m_knifeItem)
	pev(en,pev_classname,g_arr[id][knifename],16)
	TumbleVector[0] = float (get_pcvar_num(cv_sprot)) // = 1320.0  // Wheel
	// TumbleVector[1] // = random_float(800.0,100.0)  // TEA
	TumbleVector[2] = random_float(-10.0,10.0) // 400.0 // = random_float(2.0,0.0) //  HOURS


    return PLUGIN_CONTINUE
	}
	else
	{
    
    	g_arr[id][accept_throw] = false
		return PLUGIN_CONTINUE
	}
	return PLUGIN_CONTINUE
}
public client_connect(id)
{
    g_arr[id][input_b] = true
    g_arr[id][accept_throw] = false
}

/*  Item_fram would be better, cause it call only when weapon in arms
public client_PreThink(i_player)
{
	
    if(g_arr[i_player][accept_throw]==true)
    {   
        if(pev(i_player,pev_button)&amp;IN_ATTACK2)
        {   
			engclient_cmd(i_player,"drop",g_arr[i_player][knifename])
			g_arr[i_player][input_b] = false
            return PLUGIN_CONTINUE
        }
		return PLUGIN_CONTINUE
    }
    return PLUGIN_CONTINUE
	
}
*/
public Ham_Weapon_P(id)
{	
	new i_player = pev(id, pev_owner)
	if(!is_user_bot(i_player))
	{
	    if(pev(i_player,pev_button)&amp;IN_ATTACK2)
        {   
            g_arr[i_player][accept_throw] = true
			engclient_cmd(i_player,"drop",g_arr[i_player][knifename])
			g_arr[i_player][input_b] = false
        }
		
    }
   
}

public WeaponBox_Drop_P(id)
{

    /// &#1079;&#1072;&#1087;&#1089;&#1090;&#1080;&#1090;&#1100; &#1087;&#1088;&#1086;&#1074;&#1077;&#1088;&#1082; &#1085;&#1072; &#1088;&#1072;&#1079;&#1088;&#1077;&#1096;&#1077;&#1085;&#1080;&#1077; &#1074;&#1099;&#1073;&#1088;&#1086;&#1089;&#1072; &#1085;&#1086;&#1078;&#1072; &#1084;&#1077;&#1090;&#1086;&#1076;&#1086;&#1084; &#1073;&#1088;&#1086;&#1089;&#1082;&#1072;
	new id_owner
	id_owner = pev(id,pev_owner)
	if(is_valid_ent(id) &amp;&amp; g_arr[id_owner][accept_throw] == true)
	{
        g_arr[id_owner][accept_throw] = false
		SetHamReturnInteger(1)
		return HAM_SUPERCEDE
	}
	return HAM_IGNORED
}

public WeaponBox_Spawn(weaponbox)
{	

	g_FhSetModel = register_forward(FM_SetModel, "WeaponBox_Spawn2")

	//client_print(0, print_chat, "[g_FhSetModel] %d for %d " , g_FhSetModel , weaponbox) ;
	return HAM_IGNORED;

}


public WeaponBox_Spawn2(weaponbox)
{	   
	// 82 = spades // 84 rifles
	new activeitem
	new cls[32]
	pev(weaponbox ,pev_classname, cls, 31 )
	if(equal(cls,"weaponbox"))
	{
		activeitem = get_pdata_cbase(weaponbox, 82, 4);
		if(activeitem &gt; 1)
		{
			pev(activeitem ,pev_classname, cls, 16 )
			unregister_forward(FM_SetModel, g_FhSetModel)
			//client_print(0, print_chat, "[spawn2] weaponbox %d contain  %s , item %d ", weaponbox , cls, activeitem)
			set_pev(weaponbox,pev_classname,"fly_knife")
			WeaponBox_Retune(weaponbox)
			return FMRES_HANDLED;	
		}
		return FMRES_IGNORED
	}
	
	// unregister_forward(FM_SetModel, g_FhSetModel)
	return FMRES_IGNORED
	
}	

public WeaponBox_Retune(weaponbox)
{
	new id_owner 
	id_owner = pev(weaponbox,pev_owner)
    if(!is_user_alive(id_owner) || is_user_bot(id_owner))
        {
            return PLUGIN_HANDLED
        }
	new float:vlc[3], float:ang[3]
	velocity_by_aim(id_owner, get_pcvar_num(cv_spspeed), vlc )
	//velocity_by_aim(id_owner, 1600, vlc )
	//server_print("%f %f %f ", vlc[0],vlc[1],vlc[2])		
	vector_to_angle(vlc, ang)	
	
	ang[0] += 45.0
	ang[2] += 80.0

	emit_sound(weaponbox,CHAN_AUTO,g_ThrowSound,0.9,ATTN_NORM,0,PITCH_NORM)
	set_pev(weaponbox, pev_angles, ang)
	engfunc(EngFunc_SetSize, weaponbox, Float:{-2.0, -2.0, -2.0}, Float:{2.0, 2.0, 2.0})
	set_pev(weaponbox,pev_movetype,MOVETYPE_TOSS)	
	set_pev(weaponbox,pev_solid,SOLID_TRIGGER)
	set_pev(weaponbox,pev_velocity, vlc)
	set_pev(weaponbox,pev_avelocity,TumbleVector)	
	//set_pev(weaponbox,pev_gravity, 0.1)
    if(cv_trail)
    {
        message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
        write_byte(TE_BEAMFOLLOW)	// Temp entity type
        write_short(weaponbox)		// entity
        write_short(g_SpriteBlood2)	// sprite index
        write_byte(4)	// life time in 0.1's
        write_byte(2)	// line width in 0.1's
        write_byte(63)	// red (RGB)
        write_byte(63)	// green (RGB)
        write_byte(63)	// blue (RGB)
        write_byte(20)	// brightness 0 invisible, 255 visible
        message_end()
    }

	
	set_task(0.13, "WeaponBox_Sound", weaponbox)
}

public WeaponBox_Touch(id_knife,id_target)
{	
	// Register Universal data
	new Float:f_Ori[3]
	new i_Ori[3]
	entity_get_vector(id_knife,EV_VEC_origin,f_Ori)
	FVecIVec(f_Ori,i_Ori)
	new id_owner = pev(id_knife, pev_owner)
	
	switch(g_arr[id_owner][knifetype])
	{
		case DODW_AMERKNIFE:
		{
			//engfunc(EngFunc_SetModel,id_knife,KNIVES_MODELS[0])

		}
		case DODW_GERKNIFE:
		{
			// 
		}
		case DODW_SPADE:
		{
			engfunc(EngFunc_SetModel,id_knife,KNIVES_MODELS[2])  // need to replace weaponbox model
		}
		case DODW_BRITKNIFE:
		{
			// g_arr[id_owner][knifetype] = 1  // need to register hud kill message icon
		}
	}
	if(id_owner==id_target) return PLUGIN_CONTINUE	
	// Start Difference touch
	// PLAYERS
	if(id_target &gt;= 1 &amp;&amp; id_target &lt;= g_maxpl)
	{
		// hits players
		// FX 
		emit_sound(id_knife,CHAN_AUTO,g_ThrowHitHumanSound,0.4,ATTN_IDLE ,0,PITCH_NORM)
		if(get_pcvar_num(cv_bldsprt) == 1)
		{
			message_begin(MSG_BROADCAST, SVC_TEMPENTITY) 
			write_byte(TE_BLOODSPRITE)
			write_coord(i_Ori[0])
			write_coord(i_Ori[1])
			write_coord(i_Ori[2])
			write_short(g_SpriteBlood)
			write_short(g_SpriteBlood)
			write_byte(248)
			write_byte(2)
			message_end()
		}
		else
		{
			message_begin(MSG_BROADCAST,g_msgBloodPuff,{0,0,0},0)
			write_coord(i_Ori[0])
			write_coord(i_Ori[1])
			write_coord(i_Ori[2])
			message_end()
		}

		if(g_FriendlyFire == 1 )
		{
			//kill qll

			user_silentkill(id_target)

			dod_set_user_kills(id_owner, (dod_get_user_kills(id_owner) + 1), 1)
			//dod_set_pl_deaths(id_target,(dod_get_pl_deaths(id_target) + 1), 1)
			//dod_set_user_score(id_target,(dod_get_user_score(id_target)),1)
			
			
			message_begin(MSG_ALL, g_MsgDeathMsg,{0,0,0},0)
			write_byte(id_owner) // killer
			write_byte(id_target) // victim
			write_byte(g_arr[id_owner][knifetype])  // 42 is smash
			message_end()

			
			
			set_pev(id_knife, pev_classname, "weaponbox")
			set_pev(id_knife, pev_avelocity,{60.0 , 50.0 , 150.0})
			set_pev(id_knife, pev_velocity,{60.0 , 50.0 , 50.0})
			return PLUGIN_CONTINUE
			
		}
		else if(g_arr[id_owner][team] != get_user_team(id_target) &amp;&amp; g_FriendlyFire == 0)
		{
			//kill enemy only

			user_silentkill(id_target)
			
			dod_set_user_kills(id_owner, (dod_get_user_kills(id_owner) + 1),1)
			//dod_set_pl_deaths(id_target,(dod_get_pl_deaths(id_target) + 1),1)
			//dod_set_user_score(id_target,(dod_get_user_score(id_target)),1)
			message_begin(MSG_ALL, g_MsgDeathMsg,{0,0,0},0)
			write_byte(id_owner) // killer
			write_byte(id_target) // victim
			write_byte(g_arr[id_owner][knifetype])  // 42 is smash
			message_end()

			
			
			set_pev(id_knife, pev_classname, "weaponbox")
			set_pev(id_knife, pev_avelocity,{60.0 , 50.0 , 150.0})
			set_pev(id_knife, pev_velocity,{60.0 , 50.0 , 50.0})
			return PLUGIN_CONTINUE
		}
		else if (g_arr[id_owner][team] == get_user_team(id_target) &amp;&amp; g_FriendlyFire == 0)
		{	

			set_pev(id_knife, pev_classname, "weaponbox")
			set_pev(id_knife, pev_avelocity,{60.0 , 50.0 , 150.0})
			set_pev(id_knife, pev_velocity,{60.0 , 50.0 , 50.0})
			return PLUGIN_CONTINUE
		}

	}
	else if (id_target==0)
	{
		// hit world or entities

		// FX	
		message_begin(MSG_ALL,SVC_TEMPENTITY)
		write_byte(TE_SPARKS)
		write_coord(i_Ori[0])
		write_coord(i_Ori[1])
		write_coord(i_Ori[2])
		message_end()
		emit_sound(id_knife, CHAN_AUTO, g_ThrowHitwallSound, 0.8, 1.0, 0, PITCH_NORM)
		
		set_pev(id_knife, pev_classname, "weaponbox")
		set_pev(id_knife, pev_avelocity,{60.0 , 50.0 , 150.0})
		set_pev(id_knife, pev_velocity,{60.0 , 50.0 , 50.0})

		if(get_pcvar_num(cv_stackinwall) == 1)
		{
			set_pev(id_knife, pev_movetype, MOVETYPE_NONE)
			set_task(2.0, "WeaponBox_Unstuck", id_knife)
			return PLUGIN_CONTINUE
		}
		return PLUGIN_CONTINUE
	}
	else if (id_target &gt; g_maxpl)
	{
		///// IF ENTITY OR BREACABLE
		new clT[32]
		pev(id_target, pev_classname, clT, 31)
		
		// FX	
		message_begin(MSG_ALL,SVC_TEMPENTITY)
		write_byte(TE_SPARKS)
		write_coord(i_Ori[0])
		write_coord(i_Ori[1])
		write_coord(i_Ori[2])
		message_end()
		emit_sound(id_knife, CHAN_AUTO, g_ThrowHitwallSound, 0.8, 1.0, 0, PITCH_NORM)


		if(equal(clT,"func_breakable")) 
		{
			new tgn[32]
			entity_get_string(id_target,EV_SZ_targetname,tgn,31)

			// for example in DOD_CHARLIE or CAEN we have some breakeble object which has target name , 
			// thats why we shouldn't destriy this.
			if(!tgn[0])
			{
				emit_sound(id_knife, CHAN_AUTO, g_ThrowHitwallSound, 0.3, 1.0, 0, PITCH_NORM)
				// new idAttacker = pev(id_knife, pev_owner)
				ExecuteHam(Ham_TakeDamage,id_target, 1, 1, 30.0, DMG_BULLET)				
			}
			//client_print(0, print_chat, "[FUNCBREAK] %s %s ",clT, tgn )
		}
		set_pev(id_knife, pev_classname, "weaponbox")
		set_pev(id_knife, pev_avelocity,{60.0 , 50.0 , 150.0})
		set_pev(id_knife, pev_velocity,{60.0 , 50.0 , 50.0})
		return PLUGIN_CONTINUE
	}
	return PLUGIN_CONTINUE
}

public WeaponBox_Unstuck(id_knife)
{
	
	if(pev_valid(id_knife))
	{	
		set_pev(id_knife,pev_movetype,MOVETYPE_TOSS)
		set_pev(id_knife,pev_avelocity,{60.0 , 50.0 , 150.0})
		set_pev(id_knife,pev_velocity,{0.0 , 0.0 , 0.0})
	}
}

public WeaponBox_Sound(id_knife)
{
	new classname[32] // weapon_spade/knife/gerknife
	if(pev_valid(id_knife)) 
	{
		pev(id_knife, pev_classname,  classname,31)
		if(equal(classname,"fly_knife")) 
		{
			emit_sound(id_knife,CHAN_AUTO,g_ThrowSound,0.5,ATTN_NORM,0,PITCH_HIGH)
			set_task(0.12, "WeaponBox_Sound", id_knife)
		}	
	}
}

public Particle_Fx()
{
	static Float:origin[3]
	
	switch (read_data(5)) 
	{
		case 54..58: 
		{		// is decal shot1-5?
			read_data(2, origin[0])
			read_data(3, origin[1])
			read_data(4, origin[2])
			message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
			write_byte(TE_SPARKS)
			write_coord(floatround(origin[0]))
			write_coord(floatround(origin[1]))
			write_coord(floatround(origin[2]))
			message_end()
		}
		default: 
		{
			return
		}
	}	
}</code></div></div><br />

<br />
<img src="https://www.dodplugins.net/forums/images/attachtypes/unknown.png" title="Unknown" border="0" alt=".sma" />
&nbsp;&nbsp;<a href="attachment.php?aid=517" target="_blank" title="">dod_throwknife_weaponbox_1.7.sma</a> (Size: 15.69 KB / Downloads: 3)
 Download <br />
<br />

<br />
<img src="https://www.dodplugins.net/forums/images/attachtypes/unknown.png" title="Unknown" border="0" alt=".sma" />
&nbsp;&nbsp;<a href="attachment.php?aid=518" target="_blank" title="">dod_throwknife_weaponbox_APR2023.sma</a> (Size: 15.58 KB / Downloads: 3)
  Download <br />
<br />
<br />
<br />
-----------<br />
I've not intrested in anoter HL mods (CS , TF ..... ) only DOD]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[TheVaskov - [DOD] Day Of Defeat big addon maker]]></title>
			<link>https://www.dodplugins.net/forums/showthread.php?tid=1845</link>
			<pubDate>Tue, 25 Jan 2022 15:24:32 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.dodplugins.net/forums/member.php?action=profile&uid=670">TheVaskov</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.dodplugins.net/forums/showthread.php?tid=1845</guid>
			<description><![CDATA[since september 2021 I'm working on a big addon for DOD which includes:<br />
New troops: USSR, Japan (... possibly Italy)<br />
Custom weapons: Mortars, Throwing knives, Anti-personnel mines,<br />
Quality requirements: Troops must have new weapons, sounds, clothes, sprites indistinguishable from the official release.<br />
They don't have to be better or worse.<br />
It should be very well optimized.<br />
____<br />
To this day, I'm still in the process of learning AMXX Pawn.<br />
I have my own test server which already has a lot of plugins that I found on Allied Modders, AVAMODS, DODplugins. Some of them had to be redone, and some are already flawless.<br />
Today on the server: mortar, throwing knives, anti-personnel mines. SVT-40 - Soviet rifle.<br />
___<br />
I can make maps, textures, models, sprites, sounds, plugins.<br />
I invite you to cooperation.<br />
Many admins on the Internet are greedy and do not give their plugins (although let's be honest, they took other people's plugins and customized them a little). But we know the names of those who do not interfere with the development of our community, and even help!<br />
___<br />
The plan is now to collect a certain pool of plugins and accompanying visual files, test the gameplay, then declare common variables and make a very powerful good module containing high-performance and fast functions..<br />
___<br />
Everyone who reads this, feel free to register, activate your account and replenish the local knowledge base with your experiments. support websites financially,<br />
You can find me in Russia.<br />
+79101483016 - Whatsapp e Viber and all phone calls.<br />
<a href="mailto:TheVaskov@yandex.ru" class="mycode_email">TheVaskov@yandex.ru</a> - email<br />
<a href="https://discord.gg/yW24rjuFym" target="_blank" rel="noopener" class="mycode_url">https://discord.gg/yW24rjuFym</a> - Hope this becomes a chat for everyone around the world.<br />
And in the game you can find me under the nickname America)<br />
<br />
Thanks to the Administration.<br />
I hope we will make an addon that will be officially approved by the owners of DOD, or they will provide wider access to the source code.<br />
But when we finish the work, we, as always, will be independent developers.]]></description>
			<content:encoded><![CDATA[since september 2021 I'm working on a big addon for DOD which includes:<br />
New troops: USSR, Japan (... possibly Italy)<br />
Custom weapons: Mortars, Throwing knives, Anti-personnel mines,<br />
Quality requirements: Troops must have new weapons, sounds, clothes, sprites indistinguishable from the official release.<br />
They don't have to be better or worse.<br />
It should be very well optimized.<br />
____<br />
To this day, I'm still in the process of learning AMXX Pawn.<br />
I have my own test server which already has a lot of plugins that I found on Allied Modders, AVAMODS, DODplugins. Some of them had to be redone, and some are already flawless.<br />
Today on the server: mortar, throwing knives, anti-personnel mines. SVT-40 - Soviet rifle.<br />
___<br />
I can make maps, textures, models, sprites, sounds, plugins.<br />
I invite you to cooperation.<br />
Many admins on the Internet are greedy and do not give their plugins (although let's be honest, they took other people's plugins and customized them a little). But we know the names of those who do not interfere with the development of our community, and even help!<br />
___<br />
The plan is now to collect a certain pool of plugins and accompanying visual files, test the gameplay, then declare common variables and make a very powerful good module containing high-performance and fast functions..<br />
___<br />
Everyone who reads this, feel free to register, activate your account and replenish the local knowledge base with your experiments. support websites financially,<br />
You can find me in Russia.<br />
+79101483016 - Whatsapp e Viber and all phone calls.<br />
<a href="mailto:TheVaskov@yandex.ru" class="mycode_email">TheVaskov@yandex.ru</a> - email<br />
<a href="https://discord.gg/yW24rjuFym" target="_blank" rel="noopener" class="mycode_url">https://discord.gg/yW24rjuFym</a> - Hope this becomes a chat for everyone around the world.<br />
And in the game you can find me under the nickname America)<br />
<br />
Thanks to the Administration.<br />
I hope we will make an addon that will be officially approved by the owners of DOD, or they will provide wider access to the source code.<br />
But when we finish the work, we, as always, will be independent developers.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Not getting your activation email?]]></title>
			<link>https://www.dodplugins.net/forums/showthread.php?tid=1843</link>
			<pubDate>Fri, 14 Jan 2022 23:03:28 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.dodplugins.net/forums/member.php?action=profile&uid=45">diamond-optic</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.dodplugins.net/forums/showthread.php?tid=1843</guid>
			<description><![CDATA[Currently there is an issue with the forum sending emails. Zor will get it fixed as soon as he has the time to do so, but in the meantime if you need your account activated you can reach out to me.<br />
<br />
..I guess you can't exactly contact me directly through here since your account is obviously awaiting activation but you can PM me on the<br />
AlliedModders/AMXX forums or find me on steam (though I am rarely on steam these days). Or find some other way to get in touch with me, I don't know lol..<br />
<br />
Just send me the username &amp; the email address you used and I should be able to help you out.]]></description>
			<content:encoded><![CDATA[Currently there is an issue with the forum sending emails. Zor will get it fixed as soon as he has the time to do so, but in the meantime if you need your account activated you can reach out to me.<br />
<br />
..I guess you can't exactly contact me directly through here since your account is obviously awaiting activation but you can PM me on the<br />
AlliedModders/AMXX forums or find me on steam (though I am rarely on steam these days). Or find some other way to get in touch with me, I don't know lol..<br />
<br />
Just send me the username &amp; the email address you used and I should be able to help you out.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[I don't know how I got here....]]></title>
			<link>https://www.dodplugins.net/forums/showthread.php?tid=1839</link>
			<pubDate>Mon, 06 Jul 2020 00:39:51 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.dodplugins.net/forums/member.php?action=profile&uid=669">just_kitten</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.dodplugins.net/forums/showthread.php?tid=1839</guid>
			<description><![CDATA[I used to play all the time back in the day with &lt;SK&gt; aka the Sucide Kings. I have recently been tasked with trying to mod a new server. Although I am having some success with some plugins, there are some that I can't seem to get to work properly, even though they show they are running. <br />
<br />
This is my second time ever attempting this shenanigans... I'm just here hanging out, looking for answers to my plugin problems lol <img src="https://www.dodplugins.net/forums/images/smilies/biggrin.png" alt="Big Grin" title="Big Grin" class="smilie smilie_4" />]]></description>
			<content:encoded><![CDATA[I used to play all the time back in the day with &lt;SK&gt; aka the Sucide Kings. I have recently been tasked with trying to mod a new server. Although I am having some success with some plugins, there are some that I can't seem to get to work properly, even though they show they are running. <br />
<br />
This is my second time ever attempting this shenanigans... I'm just here hanging out, looking for answers to my plugin problems lol <img src="https://www.dodplugins.net/forums/images/smilies/biggrin.png" alt="Big Grin" title="Big Grin" class="smilie smilie_4" />]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Hey all]]></title>
			<link>https://www.dodplugins.net/forums/showthread.php?tid=1838</link>
			<pubDate>Thu, 07 May 2020 05:46:43 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.dodplugins.net/forums/member.php?action=profile&uid=668">sagivstern</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.dodplugins.net/forums/showthread.php?tid=1838</guid>
			<description><![CDATA[Hi,<br />
Probably the only good forum for dod plugins.<br />
Hard to find stuff for an old dead game.<br />
But it looks some people are still playing and me and friends play on a server I set up containing a modified gun game free for all]]></description>
			<content:encoded><![CDATA[Hi,<br />
Probably the only good forum for dod plugins.<br />
Hard to find stuff for an old dead game.<br />
But it looks some people are still playing and me and friends play on a server I set up containing a modified gun game free for all]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Posting issue fixed...]]></title>
			<link>https://www.dodplugins.net/forums/showthread.php?tid=1837</link>
			<pubDate>Sat, 26 Oct 2019 02:34:57 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.dodplugins.net/forums/member.php?action=profile&uid=45">diamond-optic</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.dodplugins.net/forums/showthread.php?tid=1837</guid>
			<description><![CDATA[I noticed that if I tried to post anything without doing the 'preview' option first, that it was giving an error about the post not containing enough characters even though it did have more than enough.<br />
<br />
Not sure if anyone else was getting this problem but I was able to find the issue and solution after looking around the vbulletin forums. For some reason the WYSIWYG editor was causing it so I just had to set it to use the standard editor in the forum settings.]]></description>
			<content:encoded><![CDATA[I noticed that if I tried to post anything without doing the 'preview' option first, that it was giving an error about the post not containing enough characters even though it did have more than enough.<br />
<br />
Not sure if anyone else was getting this problem but I was able to find the issue and solution after looking around the vbulletin forums. For some reason the WYSIWYG editor was causing it so I just had to set it to use the standard editor in the forum settings.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[October (June?) 2019 hlds update...]]></title>
			<link>https://www.dodplugins.net/forums/showthread.php?tid=1836</link>
			<pubDate>Fri, 25 Oct 2019 03:58:31 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.dodplugins.net/forums/member.php?action=profile&uid=45">diamond-optic</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.dodplugins.net/forums/showthread.php?tid=1836</guid>
			<description><![CDATA[Did this mess up anyone else's server?<br />
<br />
<br />
I  had to disable a plugin right off the bat becuase it was crashing the  server: FATAL ERROR (shutting down): PF_MessageBegin_I: New message  started when msg '70' has not been sent yet<br />
<br />
<br />
&gt; Getting constant server console spam: Message name too long: ScoreInfoLong<br />
&gt; It appears that client_print's are just showing as "%s" in the chat now.<br />
&gt; Player models are sometimes getting replaced by really glitchy gordon freeman models<br />
<br />
<br />
..and  im also getting other strange random bugs and plugin errors that I had  never got before. I'm hoping I can narrow it down to a few plugins and  that it's not affecting everything lol.<br />
<br />
<br />
<br />
<br />
<br />
<br />
so I cant really be the only server suffering this kind of stuff since update....]]></description>
			<content:encoded><![CDATA[Did this mess up anyone else's server?<br />
<br />
<br />
I  had to disable a plugin right off the bat becuase it was crashing the  server: FATAL ERROR (shutting down): PF_MessageBegin_I: New message  started when msg '70' has not been sent yet<br />
<br />
<br />
&gt; Getting constant server console spam: Message name too long: ScoreInfoLong<br />
&gt; It appears that client_print's are just showing as "%s" in the chat now.<br />
&gt; Player models are sometimes getting replaced by really glitchy gordon freeman models<br />
<br />
<br />
..and  im also getting other strange random bugs and plugin errors that I had  never got before. I'm hoping I can narrow it down to a few plugins and  that it's not affecting everything lol.<br />
<br />
<br />
<br />
<br />
<br />
<br />
so I cant really be the only server suffering this kind of stuff since update....]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[yay its back up!]]></title>
			<link>https://www.dodplugins.net/forums/showthread.php?tid=1835</link>
			<pubDate>Sun, 25 Aug 2019 19:56:29 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.dodplugins.net/forums/member.php?action=profile&uid=45">diamond-optic</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.dodplugins.net/forums/showthread.php?tid=1835</guid>
			<description><![CDATA[Thank you Zor!<br />
<br />
<br />
..this is the <span style="font-weight: bold;" class="mycode_b">best</span> resource for day of defeat modding.<br />
<br />
<br />
<br />
<br />
Long live DoD!]]></description>
			<content:encoded><![CDATA[Thank you Zor!<br />
<br />
<br />
..this is the <span style="font-weight: bold;" class="mycode_b">best</span> resource for day of defeat modding.<br />
<br />
<br />
<br />
<br />
Long live DoD!]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Back in Blue]]></title>
			<link>https://www.dodplugins.net/forums/showthread.php?tid=1834</link>
			<pubDate>Wed, 07 Aug 2019 20:05:13 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.dodplugins.net/forums/member.php?action=profile&uid=636">{War} Romeo8</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.dodplugins.net/forums/showthread.php?tid=1834</guid>
			<description><![CDATA[Welcome Back to rebirth of the DoD Plugins site everyone.  Lets get the word out there and get this forum and site rocking again.]]></description>
			<content:encoded><![CDATA[Welcome Back to rebirth of the DoD Plugins site everyone.  Lets get the word out there and get this forum and site rocking again.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Hello all - is this site still active?]]></title>
			<link>https://www.dodplugins.net/forums/showthread.php?tid=1832</link>
			<pubDate>Tue, 19 Feb 2019 16:08:04 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.dodplugins.net/forums/member.php?action=profile&uid=666">pinkerton</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.dodplugins.net/forums/showthread.php?tid=1832</guid>
			<description><![CDATA[A friend and I are getting a server up and running on DOD classic; we have a 20 slot server hosted on gameservers, with AMX MOD X 1.8.2. I forget the name of the server file browser I've been using (it's a popular free one).<br />
<br />
I've managed to get two plugins working (both from syn), however every other plugin I try to get working just results in bad loads. <br />
<br />
Hoping this site is still active enough to help us get on our feet. Our ultimate goal is to start a 24/7 Avalanche server with unlimited sprint, weapons mod, instant respawn and parachute. If I can get those then I'll start looking into getting a few bots on there as well (maximum 3 per team, I really don't like bots), but I need to get the important stuff out of the way first. The two plugins I've managed to get working are unlimited sprint and a grenade glitch blocker. The rest just keep resulting in bad loads, I can't figure out why. Am I doing something wrong? Or is it because these plugins are just too old and don't work with AMX 1.8.2?]]></description>
			<content:encoded><![CDATA[A friend and I are getting a server up and running on DOD classic; we have a 20 slot server hosted on gameservers, with AMX MOD X 1.8.2. I forget the name of the server file browser I've been using (it's a popular free one).<br />
<br />
I've managed to get two plugins working (both from syn), however every other plugin I try to get working just results in bad loads. <br />
<br />
Hoping this site is still active enough to help us get on our feet. Our ultimate goal is to start a 24/7 Avalanche server with unlimited sprint, weapons mod, instant respawn and parachute. If I can get those then I'll start looking into getting a few bots on there as well (maximum 3 per team, I really don't like bots), but I need to get the important stuff out of the way first. The two plugins I've managed to get working are unlimited sprint and a grenade glitch blocker. The rest just keep resulting in bad loads, I can't figure out why. Am I doing something wrong? Or is it because these plugins are just too old and don't work with AMX 1.8.2?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Zone Plugin Warning signs]]></title>
			<link>https://www.dodplugins.net/forums/showthread.php?tid=1830</link>
			<pubDate>Sat, 06 Oct 2018 05:15:04 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.dodplugins.net/forums/member.php?action=profile&uid=636">{War} Romeo8</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.dodplugins.net/forums/showthread.php?tid=1830</guid>
			<description><![CDATA[I have recently started useing the zone protection plugin and loving it.  The only problem i see is that there is no way to post a sign to warn players its a protected area.  I am asking here as the last posts in that thread are over 11yrs old..  I would like to see something with a sign that says danger area restricted to axis players only and/or danger area restricted to allie players only  that i could place at these areas.  Id even entertain something like skull and xbones  with the wording allies/axis players only. Thanks in advance for your assistance<img src="https://www.dodplugins.net/forums/images/smilies/biggrin.png" alt="Big Grin" title="Big Grin" class="smilie smilie_4" />]]></description>
			<content:encoded><![CDATA[I have recently started useing the zone protection plugin and loving it.  The only problem i see is that there is no way to post a sign to warn players its a protected area.  I am asking here as the last posts in that thread are over 11yrs old..  I would like to see something with a sign that says danger area restricted to axis players only and/or danger area restricted to allie players only  that i could place at these areas.  Id even entertain something like skull and xbones  with the wording allies/axis players only. Thanks in advance for your assistance<img src="https://www.dodplugins.net/forums/images/smilies/biggrin.png" alt="Big Grin" title="Big Grin" class="smilie smilie_4" />]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[SturmBot Src Code]]></title>
			<link>https://www.dodplugins.net/forums/showthread.php?tid=1829</link>
			<pubDate>Thu, 23 Aug 2018 21:41:27 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.dodplugins.net/forums/member.php?action=profile&uid=595">RoboCop</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.dodplugins.net/forums/showthread.php?tid=1829</guid>
			<description><![CDATA[Hello I'm learning on Bot C/C++ programming as well managed to do some fixes on some HL1 based bots that needed fixed. I doubt Cpl.Shrike will ever come back nor make ShrikeBot open-source.<br />
<br />
But when I downloaded the SturmBot src code from sturmbot.org...it doesn't HAVE the src code and instead has BlitzBot src code...(wtf?)<br />
<br />
Our goal is to make those Bots for HL1 as well for other 3rd Party Multiplayer bots be more agile, smart as well as more "common sense".]]></description>
			<content:encoded><![CDATA[Hello I'm learning on Bot C/C++ programming as well managed to do some fixes on some HL1 based bots that needed fixed. I doubt Cpl.Shrike will ever come back nor make ShrikeBot open-source.<br />
<br />
But when I downloaded the SturmBot src code from sturmbot.org...it doesn't HAVE the src code and instead has BlitzBot src code...(wtf?)<br />
<br />
Our goal is to make those Bots for HL1 as well for other 3rd Party Multiplayer bots be more agile, smart as well as more "common sense".]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[I love dodplugins]]></title>
			<link>https://www.dodplugins.net/forums/showthread.php?tid=1822</link>
			<pubDate>Sat, 15 Jul 2017 17:15:24 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.dodplugins.net/forums/member.php?action=profile&uid=631">dimon1052</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.dodplugins.net/forums/showthread.php?tid=1822</guid>
			<description><![CDATA[Tell us why you like dodplugins. :eek:]]></description>
			<content:encoded><![CDATA[Tell us why you like dodplugins. :eek:]]></content:encoded>
		</item>
	</channel>
</rss>