<?xml version="1.0"?>
<rss version="2.0"><channel><title>&#x41F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x43D;&#x438;&#x435; &#x442;&#x435;&#x43C;&#x44B;: Script Releases</title><link>https://zloplay.ru/forum/85-script-releases/</link><description>&#x41F;&#x43E;&#x441;&#x43B;&#x435;&#x434;&#x43D;&#x438;&#x435; &#x442;&#x435;&#x43C;&#x44B;: Script Releases</description><language>ru</language><item><title>Infinity Admin Mod(IAM) Version 3.0</title><link>https://zloplay.ru/topic/21768-infinity-admin-modiam-version-30/</link><description><![CDATA[
<p>Hi all.</p>
<p> </p>
<p>This script work look like b3 &amp; ServerAdmin(Addon) &amp; ManuAdminMod and some new features.</p>
<p>New features : dont show commands with ! in chat , show online admins , block chat for user or all , change map and mode,Aliases,XlrStats,player number in welcome message,Maxping Detector Censor,Badwrod,Voting New , ....</p>
<p> </p>
<p>Aliases Added x</p>
<p>XLRstats Added x</p>
<p>Max ping Detector Added x</p>
<p>Badword Added x</p>
<p>Vote Added x</p>
<p>Auto Register x</p>
<p>Group Welcomer added x</p>
<p>Console name changed x</p>
<p>setteam added x</p>
<p>scream added x</p>
<p>Load &amp; Unload Script x</p>
<p>Aliases Fixed x</p>
<p>Login Added (Anti-Hack) x</p>
<p>Best Balancer has bug dont use xxxxxxxx</p>
<p>All Bugs Fixed (split lower delted,!rules bug,maxping censor,...) All of Them</p>
<p>Spree Messeges Added x</p>
<p>Welcomer Fixed!</p>
<p> </p>
<p> </p>
<p> </p>
<p></p>
<pre class="ipsCode">!add //add admins ex: !add Admin sa3id
!addimmune or !protect //protect players !protect Sa3id
!admintest or !at //to show your level
!unimmune or !unprotect // unprotect a player
!ver //show IAM version
!yell // or all show message on hud
!pm // pm to player
!res or !fr //fast restart game
!restart or !maprestart // restart map
!rules //show rules
!kick or !k //kick [playername] [reason]
!ban or !b //ban a player
!tmpban or !tb //temporary ban
!slot //kick a player for slot ex : !slot 
!warn or !w //warn a player
!unwarn or !uw //unwarn a player
!maprotate or !mr //go to next map
!rcon // execute a command in rcon
!abalance //active balance
!dbalance //deactive balance
!get //change dspl ex : !get sd (you must have sd dspl in admin folder)
!mod //change mod without change map (attention : when you use this may stop maprotation in a map so make default dspl in admin folder)
!gametype // ex : !gametype mp_dome sd or !gametype  ("sd" is a dsr file you must have dsr in admin folder) (attention : when you use this may stop maprotation in a map so make default dspl in admin folder)
!ngt //set a dspl to run for next rotation(nextmap)
!nextmap or !nm //show the nextmap on dspl(with pm)
@nextmap or @nm //show the nextmap for all users
!maplist //show maplist
!map //!map  ex : !map hardhat
!unban //unban a player
!guid // show player guid
!say // say message on console
!help // show your cmds
!time // Show time [pm]
@time // show to time to all users
!admins // show online admins [pm]
@admins //show online admins to all
!fov //change your fov
!block //player name to block his chat ex: !block sa3id
!unblock //player name to unblock he !unblock sa3id
!blocklist or !blist // to show blocklist
!blockchat or !bc // on or off to block chat for all players
!register // register for log your kill or death stats
!xlrstats //show your kill and death and kill/death
!sxlr // ex : !sxlr sa3id // show player xlrstats
!setmaxping // ex : !setmaxping 200
!maxping // ex :!maxping on or off - active maxping detector censor
!speed // change game speed
!gravity // change gravity
!jump // change jump hieght
!badword \\ on or off
!knife // on or off
!addword // add new word to badword list
!vfr // vote for restart
!vm // vote for change map
!vg // vote for change gametype
!votekick // vote for kick players
!vy // vote agree
!vn // vote against
!vc // cancel vote
!hc // off or on
!killed // show your killer like cod  4
!load // load scripts ex : !load bohud.dll
!unload // unload scripts ex : !unload bohud.dll
!scream // scream your message in chat with many colors ex : !scream go go go
!setteam // change player teams ex : !setteam sa3 axis
!myteam // show your team
!login // login the admin for use commands
!balance // fast balance after enter cmd in server
!remove // remove player from groups
</pre>
<div></div>
<p></p>
<p> </p>
<p> </p>
<p><strong>how to install</strong></p>
<p>extract IAM.dll  and IAM folder into scripts folder run dedicated server and write this below code into console and on first run script make a config file in IAM folder in scripts open this with notepad and config the file or copy the config from IAM.cfg of this post</p>
<p></p>
<pre class="ipsCode">
loadscript IAM.dll
</pre>
<div></div>
<p></p>
<p> </p>
<p><strong>Timed messages</strong></p>
<p><strong>if you want show admins type @admins or for time @time and for nextmap @nextmap.</strong></p>
<p></p>
<pre class="ipsCode">
50000
^1IAM ^2Created By Sa3id
@time
^3Type ^2!rules ^3to Show Rules
@nextmap
@admins
</pre>
<div></div>
<p></p>
<p> </p>
<p><strong>Aliases</strong></p>
<p></p>
<pre class="ipsCode">
in IAM folder open aliases file with notepad and add command look like this :
!r = !res
!w = !warn
!v = !ver
!pr = !protect
!bl = !block
!unb = !unblock
</pre>
<div></div>
<p></p>
<p> </p>
<p><strong>IAM.cfg</strong></p>
<p></p>
<pre class="ipsCode">
groups=User,Member,Admin,MasterAdmin
MasterAdmin_xuids=
Admin_xuids=guid,
Member_xuids=guid2,
MasterAdmin_commands=*ALL*
Admin_commands=!help,!rules,!ver,!guid,!res,!fr,!restart,!gt,!get,!gametype,!mapвЂ‹,!kick,!tmpban,!warn,!unwarn,!yell,!w,!v,!w,!uw,!login,!addd,!register,!xlrstatsвЂ‹
Member_commands=!help,!rules,!ver,!admins,!nextmap,
User_commands=!help,!rules,!ver,!guid,!time,!admins,!nextmap,!login,

[Messeges]
timedmessages=true
kickmessage=^2 ^3has been kicked ^7for ^1 ^7by ^1
banmessage=^2 ^3has been banned ^7for ^1 ^7by ^1
tempbanmessage=^2 ^3has been temp banned ^7for ^1 ^7by ^1
warnmessage=^1 ^3has been warned ^7for ^1 ^7warning: ^2 of 3
unwarnmessage=^1 ^3was unwarned
maxpingmsg=^3 ^7your ping is too high if you can fix it or you will be kicked.
rules=^2Don't Cheat,^3Bad Language ^7= ^1Kick/Ban,

[GroupWelcomer]
connectmessage=^2Khosh Oomadi ^1 ^3 ^2Playere Shomare ^1.
MasterAdmin_message=^2Welcome ^1MasterAdmin ^5
Admin_message=^2Welcome ^1Admin ^5
Member_message=^2Welcome ^1Member ^5
User_message=^2Doorood Bar to ^5
welcomer=true
pm=false

[Vote]
votetime=60
vmaps=mp_hardhat mp_dome
vmod=sd_default,tdm_default

[security]
login=false
password=oops
admins=

[spreeMesseges]
spree=headshot,rowkill,explode,fristkill,multikill,    //enable or disable messeges   , end spree active when rowkill actived
firstrow_value=5
secondrow_value=10
endspree_value=5
multikill_value=3
monsterkill_value=5
//multi kill value is 5 and bigger ex : kills &gt;= 5 delete this line after read
fristkill_messege=^7 ^1drew first blood!
rowkill_messege=^3 ^7Gets Spree Kills!^3(^75Kills in Row^3)
headshot_messege=^3 ^7Kill ^1 ^7By HeadShot
suicide_messege=^3 ^7Was Depresed!
explode_messege=^1 ^0His Ass Eploded!
rowkill5_messege=^7 ^1is on a ^3killing spree! ^1(^2 ^1kills in a row)
rowkill10_messege=^7 ^1is on a ^3rampage! ^1(^2 ^1kills in a row)
multikill_messege=^7!! ^1Multikill ^7&gt; ^2^7 &lt; ^1Multikill^7 !!
monsterkill_messege=^7!!!! ^1MONSTERKILL ^7&gt;&gt;&gt; ^2^7 &lt;&lt;&lt; ^1MONSTER KILL ^7!!!!
endspree_messege=^2^1's killing spree ended (^2 ^1kills). He was killed 8by ^3^1!

[Other]
immuneplayers=76561197960545636,76561197960897616,
botname=^0[^1R^7M^0] ^7:
blockchat=false
promode=icon
maxping=200
pingcensor=false
badword=kick
autoreg=false
Team1=^0[^1IAM^0]
Team2=^2Guest
dspl=default
hardcore=false
protect=    //protect players for don't balance him
</pre>
<div></div>
<p></p>
<p> </p>
<p><strong>Change Logs</strong></p>
<p></p>
<pre class="ipsCode">
xXxV2.6xXx
add bot name like b3
add enable and disable hardcore !hc on or off
group welcomer added
new infinty script for fix chat problem (Edit by Me)

xXxV2.6 Build 45xXx
Mod &amp; Gametype fixed
Team Names added
Kill Cam and added
Hardcore(HC) Fixed

xXxV2.7xXx
All Bugs fixed
added dspl option for fix gametype bug
added !killed for show your killer

xXxv2.8xXx
Aliases fixed completly
added setteam
!scream added like b3
you can change console name
and fixed other bugs

xXxV3.0xXx
All Bugs Fixed All ex: when you type  server show  it's fixed,rules fixed,maxping fixed,!add fuxed,....
Spree Messeges Added!
!remove command added
Best Balancer Added!(fast)
loginpassword changed to password
</pre>
<div></div>
<p></p>
<p> </p>
<p><strong>IF</strong></p>
<p>if when player send message to server and you have error on console use infinityscripts.dll in rar package</p>
<p> </p>
<p> </p>
<p>Credits :</p>
<p>Sa3id for making scripts</p>
<p>DUKIP and Paulofonta for helping to approve post and script</p>
<p>NTAuthority for Infinity script</p>
<p>***USA*** Clan Members for Helping to Debug</p>
]]></description><guid isPermaLink="false">21768</guid><pubDate>Sun, 03 Feb 2013 19:23:27 +0000</pubDate></item><item><title>Simple jump/speed/gravity</title><link>https://zloplay.ru/topic/15681-simple-jumpspeedgravity/</link><description><![CDATA[
<p>This is a simple plugin that allow admins to change jump_height, g_speed and g_gravity dvars.</p>
<p> </p>
<p>The plugin work only if there is a text file called "jump_plugin_setting.txt" on the same folder.</p>
<p>Edit the file provided with this:</p>
<p></p>
<pre class="ipsCode">AdminName1,AdminName2,AdminName3
jump_height=39
g_speed=190
g_gravity=800</pre>
<div></div>
<p></p>
<p>Admins name are separated by a comma (no space!)</p>
<p>The numbers near dvar will be the default value dvar of all matches.</p>
<p> </p>
<p>Chat control for admin:</p>
<p>//jump_height [number]</p>
<p>//g_speed[number]</p>
<p>//g_gravity[number]</p>
<p> </p>
<p>//all default config //This command will set all dvar to default config value.</p>
<p>//all default game //This command will set all dvar to default game value.</p>
<p> </p>
<p>//jump_height default config //This command will set jump_height dvar to default config value.</p>
<p>//jump_height default game //This command will set jump_height dvar to default game value.</p>
<p>//g_speed default config //This command will set g_speed dvar to default config value.</p>
<p>//g_speed default game //This command will set g_speed dvar to default game value.</p>
<p>//g_gravity default config //This command will set g_gravity dvar to default config value.</p>
<p>//g_gravity default game //This command will set g_gravity dvar to default game value.</p>
<p> </p>
<p>Source code:</p>
<p></p>
<pre class="ipsCode">
/*  
           ***Settings Plugin***

   Based on InstaGib plugin by DaMacc
   Admin system and chat control by Kiren0494
   zxz0000 remove fall damage
*/

using System;
using System.IO;
using System.Collections;
using System.Runtime.InteropServices;

using InfinityScript;

namespace InfinityScript.Examples
{
   public class jump_plugin : BaseScript
   {
       public string executionPath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
       public int jump_heightConfig;
       public int g_speedConfig;
       public int g_gravityConfig;
       public int jump_heightDefault = 39;
       public int g_speedDefault = 190;
       public int g_gravityDefault = 800;

       public jump_plugin()
       {
           StreamReader objReader = new StreamReader(@executionPath + "\\" + "jump_plugin_setting.txt");
           string sLine = "";
           ArrayList arrText = new ArrayList();

           while (sLine != null)
           {
               sLine = objReader.ReadLine();
               if (sLine != null)
               {
                       arrText.Add(sLine);
               }
           }
           objReader.Close();
           string[] admins = arrText[0].ToString().Split(',');
           string[] settings = arrText[1].ToString().Split('=');
           jump_heightConfig = int.Parse(settings[1]);
           settings = arrText[2].ToString().Split('=');
           g_speedConfig = int.Parse(settings[1]);
           settings = arrText[3].ToString().Split('=');
           g_gravityConfig = int.Parse(settings[1]);

           setDefaultConfigValue();

           OnNotify("prematch_done", () =&gt;
           {
               Call("iprintln", "^6Setting plugin loaded with ^2jump_height = ^1" + JumpHeight + "^2, g_speed = ^1" + Speed + "^2, g_gravity = ^1" + Gravity);
           });

           PlayerConnecting += new Action(entity =&gt;
           {
               entity.SetField("isAdmin", 0);
               for (int i = 0; i &lt; admins.Length; i++)
               {
                   if (admins[i].CompareTo(getPlayerName(entity))==0)
                   {
                       entity.SetField("isAdmin", 1);
                   }
               }
           });
       }

       public override void OnSay(Entity player, string playerName, string text)
       {
           string[] arrChatMsg = text.Split(' ');

           if (arrChatMsg[0] == "/jump_height")
           {
               if (playerIsAdmin(player) == 0)
               {
                   player.Call("iprintlnbold", "^1SORRY, YOU ARE NOT ADMIN D:");
                   return;
               }
               try
               {
                   if (arrChatMsg.Length != 1)
                   {
                       if (arrChatMsg[1] == "default")
                       {
                           if (arrChatMsg[2] == "game")
                           {
                               Call("iprintln", "^1jump_height " + JumpHeight + "-----^5Changed^1-^5to^1-----&gt;" + jump_heightDefault + " (default game value) ^2by" + playerName);
                               JumpHeight = jump_heightDefault;
                           }
                           if (arrChatMsg[2] == "config")
                           {
                               Call("iprintln", "^1jump_height " + JumpHeight + "-----^5Changed^1-^5to^1-----&gt;" + jump_heightConfig + " (default server value) ^2by" + playerName);
                               JumpHeight = jump_heightConfig;
                           }
                       }
                       else
                       {
                           Call("iprintln", "^1jump_height " + JumpHeight + "-----^5Changed^1-^5to^1-----&gt;" + arrChatMsg[1] + " ^2by" + playerName);
                           JumpHeight = int.Parse(arrChatMsg[1]);
                       }
                   }
                   else
                       player.Call("iprintlnbold", "^1jump_height is set to ^2:"+JumpHeight);
               }
               catch (Exception e)
               {
               }
           }
           if (arrChatMsg[0] == "/g_speed")
           {
               if (playerIsAdmin(player) == 0)
               {
                   player.Call("iprintlnbold", "^1SORRY, YOU ARE NOT ADMIN D:");
                   return;
               }
               try
               {
                   if (arrChatMsg.Length != 1)
                   {
                       if (arrChatMsg[1] == "default")
                       {
                           if (arrChatMsg[2] == "game")
                           {
                               Call("iprintln", "^1g_speed " + Speed + "-----^5Changed^1-^5to^1-----&gt;" + g_speedDefault + " (default game value) ^2by" + playerName);
                               Speed = g_speedDefault;
                           }
                           if (arrChatMsg[2] == "config")
                           {
                               Call("iprintln", "^1g_speed " + Speed + "-----^5Changed^1-^5to^1-----&gt;" + g_speedConfig + " (default server value) ^2by" + playerName);
                               Speed = g_speedConfig;
                           }
                       }
                       else
                       {
                           Call("iprintln", "^1g_speed " + Speed + "-----^5Changed^1-^5to^1-----&gt;" + arrChatMsg[1] + " ^2by" + playerName);
                           Speed = int.Parse(arrChatMsg[1]);
                       }
                   }
                   else
                       player.Call("iprintlnbold", "^1g_speed is set to ^2:" + Speed);
               }
               catch (Exception e)
               {
               }

           }
           if (arrChatMsg[0] == "/g_gravity")
           {
               if (playerIsAdmin(player) == 0)
               {
                   player.Call("iprintlnbold", "^1SORRY, YOU ARE NOT ADMIN D:");
                   return;
               }
               try
               {
                   if (arrChatMsg.Length != 1)
                   {
                       if (arrChatMsg[1] == "default")
                       {
                           if (arrChatMsg[2] == "game")
                           {
                               Call("iprintln", "^1g_gravity " + Gravity + "-----^5Changed^1-^5to^1-----&gt;" + g_gravityDefault + " (default game value) ^2by" + playerName);
                               Gravity = g_gravityDefault;
                           }
                           if (arrChatMsg[2] == "config")
                           {
                               Call("iprintln", "^1g_gravity " + Gravity + "-----^5Changed^1-^5to^1-----&gt;" + g_gravityConfig + " (default server value) ^2by" + playerName);
                               Gravity = g_gravityConfig;
                           }
                       }
                       else
                       {
                           Call("iprintln", "^1g_gravity " + Gravity + "-----^5Changed^1-^5to^1-----&gt;" + arrChatMsg[1] + " ^2by" + playerName);
                           Gravity = int.Parse(arrChatMsg[1]);
                       }
                   }
                   else
                       player.Call("iprintlnbold", "^1g_gravity is set to ^2:" + Gravity);
               }
               catch (Exception e)
               {
               }
           }
           if (arrChatMsg[0] == "/all")
           {
               if (playerIsAdmin(player) == 0)
               {
                   player.Call("iprintlnbold", "^1SORRY, YOU ARE NOT ADMIN D:");
                   return;
               }
               try
               {
                   if (arrChatMsg[1] == "default")
                   {
                       if (arrChatMsg[2] == "config")
                       {
                           Call("iprintln", "^1jump_height = " + JumpHeight + "g_speed = " + Speed + " g_gravity = " + Gravity + "^2 Changed by " + playerName);
                           setDefaultConfigValue();
                       }
                       if (arrChatMsg[2] == "game")
                       {
                           Call("iprintln", "^1jump_height, g_speed, g_gravity changed to normal value ^2by " + playerName);
                           setDefaultGameValue();
                       }
                   }
               }
               catch (Exception e)
               {
               }
           }
           return;
       }

       public override void OnPlayerDamage(Entity player, Entity inflictor, Entity attacker, int damage, int dFlags, string mod, string weapon, Vector3 point, Vector3 dir, string hitLoc)
       {
           if (mod == "MOD_FALLING" &amp;&amp; JumpHeight &gt; 120)
           {
               player.Health += damage;
           }
       }

       public void setDefaultConfigValue()
       {
           JumpHeight = jump_heightConfig;
           Speed = g_speedConfig;
           Gravity = g_gravityConfig;
       }

       public void setDefaultGameValue()
       {
           JumpHeight = jump_heightDefault;
           Speed = g_speedDefault;
           Gravity = g_gravityDefault;
       }

       public string getPlayerName(Entity player)
       {
           return player.GetField("name");
       }

       public int playerIsAdmin(Entity player)
       {
           return player.GetField("isAdmin");
       }

       public static unsafe int Gravity
       {
           get
           {
               return *((int*)0x4768C6);
           }

           set
           {
               *((int*)0x4768C6) = value;
           }
       }

       public static unsafe int Speed
       {
           get
           {
               return *((int*)0x4760ea);
           }

           set
           {
               *((int*)0x4760ea) = value;
           }
       }

       public static unsafe float JumpHeight
       {
           get
           {
               return *((float*)0x6da708);
           }

           set
           {
               *((float*)0x6da708) = value;
           }
       }    
   }
}
</pre>
<div></div>
<p></p>
<p> </p>
<p>Credits:</p>
<p>DaMacc - Offsets</p>
<p>zxz0O0 - Removed fall damage</p>
<p>Me</p>
<p> </p>
<p></p>
<ul><li>
<span><span style="color:#FFFFFF;">Approved by Pigophone</span></span><span> on 31/10/12</span>
</li></ul><p></p>
]]></description><guid isPermaLink="false">15681</guid><pubDate>Tue, 30 Oct 2012 20:46:20 +0000</pubDate></item><item><title>iSnipeIW5</title><link>https://zloplay.ru/topic/8927-isnipeiw5/</link><description><![CDATA[
<p><span>iSnipeIW5</span></p>
<p>As close to iSnipe3 as possible, a few features not available but most are. Fully configurable through dvars. I know Deathmax already got this one ported but I had my own version that I was using as a way to get used to the scripting interface.</p>
<p> </p>
<p><img src="http://i.imgur.com/unRYZ.jpg" alt="unRYZ.jpg" loading="lazy"></p>
<p> </p>
<p>Configurable settings:</p>
<p></p>
<pre class="ipsCode">
seta isnipe_useanticamp true
seta isnipe_maxcamptime 20
seta isnipe_useantihardscope true
seta isnipe_maxscopetime 0.6

//seta isnipe_usecustomfov true
//seta isnipe_customfov 80
//seta isnipe_customfovscale 1
seta isnipe_customteamnames true
seta isnipe_teamnameallies "^1Team A"
seta isnipe_teamnameaxis "^2Team B"

seta isnipe_damagedirection false
//seta isnipe_customscoreboardheiht true
//seta isnipe_scoreboarditemheight 15
//seta isnipe_displaynumericping true

seta isnipe_removeturrets true
seta isnipe_drawcrosshair false
//seta isnipe_playermaxhealth 20
seta isnipe_enablekillcam true
seta isnipe_showplayersalive true
seta isnipe_showtopplayer true

seta isnipe_enablefalldamage false

seta isnipe_mainweapon "iw5_l96a1_mp_l96a1scope_xmags"
//seta isnipe_throwingknife false
seta isnipe_usesecondary true
seta isnipe_secondaryweapon "iw5_deserteagle_mp"
seta isnipe_secondaryammo false

seta isnipe_removeallpersk true
seta isnipe_sniperperks true</pre>
<div></div>
<p></p>
<p>Things commented out are still coming.</p>
<p> </p>
<p>Version 0.2:</p>
<p>Fixed not working in SnD with some very hacky and not pretty code.</p>
<p>Fixed ads repeating without letting go of ads button</p>
<p>Added turret removal option.</p>
<p> </p>
<p>Download: iSnipeIW5 Source.zip[/attachment]</p>
<p> </p>
<p></p>
<ul><li>
<span><span style="color:#FFFFFF;">Approved by Pigophone</span></span><span> on 08/10/12</span>
</li></ul><p></p>
]]></description><guid isPermaLink="false">8927</guid><pubDate>Fri, 24 Aug 2012 15:29:50 +0000</pubDate></item><item><title>[UPDATE]Admin Plugin v1.2</title><link>https://zloplay.ru/topic/20849-updateadmin-plugin-v12/</link><description><![CDATA[
<p>Hello everyone,</p>
<p> </p>
<p>this plugin is better than b3  <img src="https://zloplay.ru/uploads/emoticons/default_biggrin.png" alt=":D" srcset="https://zloplay.ru/uploads/emoticons/biggrin@2x.png 2x" width="20" height="20" loading="lazy"> .</p>
<p>at the first launch it will create two config files.</p>
<p>in this update i hide in chat the command message and add some unecessary commands :mrgreen: .</p>
<p> </p>
<p>ADMN CONFIG.cfg</p>
<p></p>
<pre class="ipsCode">
groups=User,Member,Admin,Boss,BigBoss
Member_xuids=, //add here the guids after the ','
Admin_xuids=,   //add here the guids after the ','
Boss_xuids=,      //add here the guids after the ','
BigBoss_xuids=,  //add here the guids after the ','
User_xuids=*EVERYONE*    //DON'T TOUCH THIS LINE
Admin_commands= //add here the commands
Boss_commands=    //add here the commands
BigBoss_commands=*ALL*    //if you use *ALL*, this group can use all commands
User_commands=!help,!rules,!version,!guid,!regstats,!xlrstats
timedmessages=true //type true if you want the timed messages, false if you don't want them
connectmessage=[^2^7]^1 Connected.
kickmessage=^2 ^3has been kicked ^7for ^1 ^7by ^1
banmessage=^2 ^3has been banned ^7for ^1 ^7by ^1
tempbanmessage=^2 ^3has been temp banned ^7for ^1 ^7by ^1
warnmessage=^1 ^3has been warned ^7for ^1 ^7warning: ^2
unwarnmessage=^1 ^3was unwarned ^2now he have ^1 ^2warnings
immuneplayers= //add here your guid
rules=^2don't hack,^1don't advertise,don't cry //add here the rules
</pre>
<div></div>
<p></p>
<p> </p>
<p>you can also add and delete the groups:</p>
<p></p>
<pre class="ipsCode">
groups=User,Member,Admin,Boss,BigBoss,
_xuids=,   //write the guids after the ','
_commands=,           //write the guids after the ','
</pre>
<div></div>
<p></p>
<p> </p>
<p>timed messages.txt</p>
<p></p>
<pre class="ipsCode">
   30000 //the messages interval in milliseconds 30000 = 30 seconds
   ^3Visit: ^2tuttocarbonio.altervista.org
   ^2Don't hack please
   ^5follow all rules
   ^6respect the admins
</pre>
<div></div>
<p></p>
<p> </p>
<p><strong>NEW</strong> COMMANDS: </p>
<p></p>
<pre class="ipsCode">
!add [groupname] [part of playername]  (ex. !add Admin bingo)(add a player to a group)
!addimmune [part of playername]  (ex. !addimmune bingo)(add a player to immune players)
!version (display the plugin version)
!yell [part of player] [message]  (ex. !yell bingo hi bingo)(display a message on player hud)
!yell all [message]  (ex. !yell all hi all)(display a message on all players hud)
!rules  (display the rules)
!kick [part of playername] [optional reason]  (ex. !kick bingo reason)(kick a player)
!ban [part of playername]  [optional reason]  (ex. !ban bingo reason)(ban a palyer)
!tmpban [part of playername] [optional reason]  (ex. !tmpban bingo reason)(temp ban a player)
!warn [part of playername] [optional reason]  (ex. !warn bingo reason)(warn a player)
!unwarn [part of player] (ex. !unwarn bingo)
!kill [part of playername] (ex. !kill bingo)(kill a player whit an airstrike)
!kill all (kill all player with an super airstrike)
!nextmap (go to next map)
!maplist (display all maps names)
!map [map name]  (ex. !map mp_dome)
!unban [part of playername]  (ex. !unban bingo)
!unimmune [part of playername]  (unimmune a player)
!guid (display your guid)
!say [message] (say a message on the console)
!help (show all commands that you can use)
!regstats (unable the server to log your stats)
!xlrstats  (use this command to see your stats)
!earthqake (make a super earth qake!)
</pre>
<div></div>
<p></p>
<p> </p>
<p> </p>
<p>tuttocarbonio.altervista.org</p>
<p> </p>
<p>Credits: Me, Bonemind for his rcon plugin</p>
]]></description><guid isPermaLink="false">20849</guid><pubDate>Sat, 19 Jan 2013 19:53:26 +0000</pubDate></item><item><title>Quarantine Chaos Zombie Mod v0.4</title><link>https://zloplay.ru/topic/10840-quarantine-chaos-zombie-mod-v04/</link><description><![CDATA[
<p>This is a mod that is supposed to be as close as the original QCZM as possible for IW5. The mod incorperates a new MapEdit Class that I will be releasing as soon as it is done. The Mod is based off of TDM instead of the Infected gametype because I think it kind of sucks and is round based which is annoying for mod writing.  This mod was written entirely by myself and DidUknowiPwn. The mod includes 15 mapedits with more on the way.  Hopefully we can get it to the same status it was on IW4.</p>
<p> </p>
<p><span>Download:</span></p>
<p> </p>
<p></p>
<pre class="ipsCode">Readme

v0.1
-First Release
-To install just extract to your iw5m folder
-Requres a dedicated server installation to run
-Report all bugs on the forums

v0.2 -DidUknowiPwn-
-Second Release
-Fixes a few bugs with some maps
-Fixed Zombies getting Juiced
-New DSR to fix Humans cheating to get their own weapons

v0.3 -DidUknowiPwn-
-Third Release
-Support for DLC3/4
-Fixed a few bugs
-Changed Shop a little
-Fixed Health crashing issue.
-Fixed Thermal Overlay staying between rounds for Zombies.
-Changed "The Thing" to the Desert Eagle.
-Removed Desert Eagle from Spawn with weapon.

v0.4 -TheApadayo-
-Fourth Release
-Fixed credits and alpha spawning (again)
-Fixed Map edits
-Fixed Health issues
-Added new UI
-Experimental Gametype name changer in Serverbrowser

</pre>
<div></div>
<p></p>
<p> </p>
<p><span>Known Issues</span></p>
<p></p>
<pre class="ipsCode">
Server crashes with Health: XXX/XXX g_configString error. //Fixed in 0.3
**None in 0.4**</pre>
<div></div>
<p></p>
<p> </p>
<p><span>Credits</span></p>
<p></p>
<pre class="ipsCode">Main Scripters: TheApadayo and DidUknowiPwn
Mappers: DidUknowiPwn and Dasfonia
Helpers: NTAuthority, zxz0O0, Dasfonia, [GK-A]Ipzd123</pre>
<div></div>
<p></p>
<p> </p>
<p><span style="color:#FF0000;">All bug reports/feature requests should be posted here. </span></p>
<p> </p>
<p>When posting a bug report, <strong>simply saying "X doesn't work" will be ignored</strong>. You must give an accurate detail on where it occurred and when it occurred.</p>
<p>Example: Normal playing time, server crashes and says something about health configstring error.</p>
<p>Feature requests should be written in plain English and please <strong>spend at least 5 minutes to make sure it isn't already in the mod.</strong></p>
<p>Example: Please consider adding Tactical Insertions to shop.</p>
<p> </p>
<p>Gameplay video should be up as soon as I get some (or never...)</p>
<p> </p>
<p>Old Versions:</p>
<p>[attachment=1]QCZM v0.3.zip[/attachment]</p>
]]></description><guid isPermaLink="false">10840</guid><pubDate>Fri, 07 Sep 2012 21:09:52 +0000</pubDate></item><item><title>[RELEASE]MapEdit</title><link>https://zloplay.ru/topic/17588-releasemapedit/</link><description><![CDATA[
<p>Hey everyone me and Apadayo have been making a MapEdit code for the IW5M QCZM we're doing. (And it's already released here: <a href="http://fourdeltaone.net/forum/viewtopic.php?f=40&amp;t=13143" rel="external nofollow">viewtopic.php?f=40&amp;t=13143</a>, there hasn't been an update for a while now but don't worry we're back to working on it!) </p>
<p>Basically this script will let you add walls, doors, floors and blocks to a map of your choice. </p>
<p> </p>
<p><span><strong><span style="text-decoration:underline;">Source Code</span></strong></span></p>
<p>Revision 71 of QCZM for IW5M</p>
<p></p>
<pre class="ipsCode">п»їusing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using InfinityScript;

namespace MapEdit
{
   public class MapEdit : BaseScript
   {
       private Entity _airdropCollision;
       private Random _rng = new Random();
       private string _mapname;
       public MapEdit()
           : base()
       {
           Entity care_package = Call("getent", "care_package", "targetname");
           _airdropCollision = Call("getent", care_package.GetField("target"), "targetname");
           _mapname = Call("getdvar", "mapname");
           Call("precachemodel", getAlliesFlagModel(_mapname));
           Call("precachemodel", getAxisFlagModel(_mapname));
           Call("precachemodel", "prop_flag_neutral");
           Call("precacheshader", "waypoint_flag_friendly");
           Call("precacheshader", "compass_waypoint_target");
           Call("precacheshader", "compass_waypoint_bomb");
           Call("precachemodel", "weapon_scavenger_grenadebag");
           Call("precachemodel", "weapon_oma_pack");
           Call("setdvar", "mapedit_allowcheats", "1");

           if (File.Exists("scripts\\maps\\" + _mapname + ".txt"))
               loadMapEdit(_mapname);

           PlayerConnected += new Action(player =&gt;
           {
               player.Call("notifyonplayercommand", "fly", "+frag");
               player.SetField("attackeddoor", 0); // debounce timer
               player.SetField("repairsleft", 0); // door repairs remaining

               // usable notifications
               player.Call("notifyonplayercommand", "triggeruse", "+activate");
               player.OnNotify("triggeruse", (ent) =&gt; HandleUseables(player));

               UsablesHud(player);
               player.OnNotify("fly", (ent) =&gt;
               {
                   if (player.GetField("sessionstate") != "spectator")
                   {
                       player.Call("allowspectateteam", "freelook", true);
                       player.SetField("sessionstate", "spectator");
                       player.Call("setcontents", 0);
                   }
                   else
                   {
                       player.Call("allowspectateteam", "freelook", false);
                       player.SetField("sessionstate", "playing");
                       player.Call("setcontents", 100);
                   }
               });
           });
       }

       public override void OnSay(Entity player, string name, string message)
       {
           if (Call("getdvarint", "mapedit_allowcheats") != 1)
               return;
           // stop idiots from cheating
           string[] commands = { "viewpos" };
           /* if (commands.Contains(message) &amp;&amp; !(player.GetField("name") == "TheApadayo" || player.GetField("name") == "DidUknowiPwn"))
            {
                player.Call("iprintlnbold", "Stop Cheating Idiot...");
                return;
            }*/

           switch (message)
           {
               case "viewpos":
                   print("({0}, {1}, {2})", player.Origin.X, player.Origin.Y, player.Origin.Z);
                   break;
           }
           if (message.StartsWith("sound"))
           {
               player.Call("playlocalsound", message.Split(' ')[1]);
           }
           if (message.StartsWith("model"))
           {
               Call("precachemodel", message.Split(' ')[1]);
               Entity ent = Call("spawn", "script_model", new Parameter(player.Origin));
               ent.Call("setmodel", message.Split(' ')[1]);
               ent.SetField("angles", new Parameter(player.GetField("angles")));
           }
           /*if (message.StartsWith("health"))
           {
               player.Call("iprintlnbold", "Health is at: ^1" + player.Health + "^0/^1" + player.GetField("maxhp"));
           }*/
       }

       public void CreateRamp(Vector3 top, Vector3 bottom)
       {
           float distance = top.DistanceTo(bottom);
           int blocks = (int)Math.Ceiling(distance / 30);
           Vector3 A = new Vector3((top.X - bottom.X) / blocks, (top.Y - bottom.Y) / blocks, (top.Z - bottom.Z) / blocks);
           Vector3 temp = Call("vectortoangles", new Parameter(top - bottom));
           Vector3 BA = new Vector3(temp.Z, temp.Y + 90, temp.X);
           for (int b = 0; b &lt;= blocks; b++)
           {
               spawnCrate(bottom + (A * , BA);
           }
       }

       public static List usables = new List();
       public void HandleUseables(Entity player)
       {
           foreach (Entity ent in usables)
           {
               if (player.Origin.DistanceTo(ent.Origin) &lt; ent.GetField("range"))
               {
                   switch (ent.GetField("usabletype"))
                   {
                       case "door":
                           usedDoor(ent, player);
                           break;
                       default:
                           break;
                   }
               }
           }
       }

       public static void runOnUsable(Func func, string type)
       {
           foreach (Entity ent in usables)
           {
               if (ent.GetField("usabletype") == type)
               {
                   func.Invoke(ent);
               }
           }
       }

       public static void notifyUsables(string notify)
       {
           foreach (Entity usable in usables)
           {
               usable.Notify(notify);
           }
       }

       public void UsablesHud(Entity player)
       {
           HudElem message = HudElem.CreateFontString(player, "hudbig", 0.6f);
           message.SetPoint("CENTER", "CENTER", 0, -50);
           OnInterval(100, () =&gt;
           {
               bool _changed = false;
               foreach (Entity ent in usables)
               {
                   if (player.Origin.DistanceTo(ent.Origin) &lt; ent.GetField("range"))
                   {
                       switch (ent.GetField("usabletype"))
                       {
                           case "door":
                               message.SetText(getDoorText(ent, player));
                               break;
                           default:
                               message.SetText("");
                               break;
                       }
                       _changed = true;
                   }
               }
               if (!_changed)
               {
                   message.SetText("");
               }
               return true;
           });
       }

       public string getDoorText(Entity door, Entity player)
       {
           int hp = door.GetField("hp");
           int maxhp = door.GetField("maxhp");
           if (player.GetField("sessionteam") == "allies")
           {
               switch (door.GetField("state"))
               {
                   case "open":
                       if (player.CurrentWeapon == "defaultweapon_mp")
                           return "Door is Open. Press ^3[{+activate}] ^7to repair it. (" + hp + "/" + maxhp + ")";
                       return "Door is Open. Press ^3[{+activate}] ^7to close it. (" + hp + "/" + maxhp + ")";
                   case "close":
                       if (player.CurrentWeapon == "defaultweapon_mp")
                           return "Door is Closed. Press ^3[{+activate}] ^7to repair it. (" + hp + "/" + maxhp + ")";
                       return "Door is Closed. Press ^3[{+activate}] ^7to open it. (" + hp + "/" + maxhp + ")";
                   case "broken":
                       if (player.CurrentWeapon == "defaultweapon_mp")
                           return "Door is Broken. Press ^3[{+activate}] ^7to repair it. (" + hp + "/" + maxhp + ")";
                       return "^1Door is Broken.";
               }
           }
           else if (player.GetField("sessionteam") == "axis")
           {
               switch (door.GetField("state"))
               {
                   case "open":
                       return "Door is Open.";
                   case "close":
                       return "Press ^3[{+activate}] ^7to attack the door.";
                   case "broken":
                       return "^1Door is Broken";
               }
           }
           return "";
       }

       public void MakeUsable(Entity ent, string type, int range)
       {
           ent.SetField("usabletype", type);
           ent.SetField("range", range);
           usables.Add(ent);
       }

       public void CreateDoor(Vector3 open, Vector3 close, Vector3 angle, int size, int height, int hp, int range)
       {
           double offset = (((size / 2) - 0.5) * -1);
           Entity center = Call("spawn", "script_model", new Parameter(open));
           for (int j = 0; j &lt; size; j++)
           {
               Entity door = spawnCrate(open + (new Vector3(0, 30, 0) * (float)offset), new Vector3(0, 0, 0));
               door.Call("setModel", "com_plasticcase_enemy");
               door.Call("enablelinkto");
               door.Call("linkto", center);
               for (int h = 1; h &lt; height; h++)
               {
                   Entity door2 = spawnCrate(open + (new Vector3(0, 30, 0) * (float)offset) - (new Vector3(70, 0, 0) * h), new Vector3(0, 0, 0));
                   door2.Call("setModel", "com_plasticcase_enemy");
                   door2.Call("enablelinkto");
                   door2.Call("linkto", center);
               }
               offset += 1;
           }
           center.SetField("angles", new Parameter(angle));
           center.SetField("state", "open");
           center.SetField("hp", hp);
           center.SetField("maxhp", hp);
           center.SetField("open", new Parameter(open));
           center.SetField("close", new Parameter(close));

           MakeUsable(center, "door", range);
       }

       private void repairDoor(Entity door, Entity player)
       {
           if (player.GetField("repairsleft") == 0) return; // no repairs left on weapon

           if (door.GetField("hp") &lt; door.GetField("maxhp"))
           {
               door.SetField("hp", door.GetField("hp") + 1);
               player.SetField("repairsleft", player.GetField("repairsleft") - 1);
               player.Call("iprintlnbold", "Repaired Door! (" + player.GetField("repairsleft") + " repairs left)");
               // repair it if broken and close automatically
               if (door.GetField("state") == "broken")
               {
                   door.Call(33399, new Parameter(door.GetField("close")), 1); // moveto
                   AfterDelay(300, () =&gt;
                   {
                       door.SetField("state", "close");
                   });
               }
           }
           else
           {
               player.Call("iprintlnbold", "Door has full health!");
           }
       }

       private void usedDoor(Entity door, Entity player)
       {
           if (!player.IsAlive) return;
           // has repair weapon. do repair door
           if (player.CurrentWeapon.Equals("defaultweapon_mp"))
           {
               repairDoor(door, player);
               return;
           }
           if (door.GetField("hp") &gt; 0)
           {
               if (player.GetField("sessionteam") == "allies")
               {
                   if (door.GetField("state") == "open")
                   {
                       door.Call(33399, new Parameter(door.GetField("close")), 1); // moveto
                       AfterDelay(300, () =&gt;
                       {
                           door.SetField("state", "close");
                       });
                   }
                   else if (door.GetField("state") == "close")
                   {
                       door.Call(33399, new Parameter(door.GetField("open")), 1); // moveto
                       AfterDelay(300, () =&gt;
                       {
                           door.SetField("state", "open");
                       });
                   }
               }
               else if (player.GetField("sessionteam") == "axis")
               {
                   if (door.GetField("state") == "close")
                   {
                       if (player.GetField("attackeddoor") == 0)
                       {
                           int hitchance = 0;
                           switch (player.Call("getstance"))
                           {
                               case "prone":
                                   hitchance = 20;
                                   break;
                               case "couch":
                                   hitchance = 45;
                                   break;
                               case "stand":
                                   hitchance = 90;
                                   break;
                               default:
                                   break;
                           }
                           if (_rng.Next(100) &lt; hitchance)
                           {
                               door.SetField("hp", door.GetField("hp") - 1);
                               player.Call("iprintlnbold", "HIT: " + door.GetField("hp") + "/" + door.GetField("maxhp"));
                           }
                           else
                           {
                               player.Call("iprintlnbold", "^1MISS");
                           }
                           player.SetField("attackeddoor", 1);
                           player.AfterDelay(1000, (e) =&gt; player.SetField("attackeddoor", 0));
                       }
                   }
               }
           }
           else if (door.GetField("hp") == 0 &amp;&amp; door.GetField("state") != "broken")
           {
               if (door.GetField("state") == "close")
                   door.Call(33399, new Parameter(door.GetField("open")), 1f); // moveto
               door.SetField("state", "broken");
           }
       }

       public Entity CreateWall(Vector3 start, Vector3 end)
       {
           float D = new Vector3(start.X, start.Y, 0).DistanceTo(new Vector3(end.X, end.Y, 0));
           float H = new Vector3(0, 0, start.Z).DistanceTo(new Vector3(0, 0, end.Z));
           int blocks = (int)Math.Round(D / 55, 0);
           int height = (int)Math.Round(H / 30, 0);

           Vector3 C = end - start;
           Vector3 A = new Vector3(C.X / blocks, C.Y / blocks, C.Z / height);
           float TXA = A.X / 4;
           float TYA = A.Y / 4;
           Vector3 angle = Call("vectortoangles", new Parameter(C));
           angle = new Vector3(0, angle.Y, 90);
           Entity center = Call("spawn", "script_origin", new Parameter(new Vector3(
               (start.X + end.X) / 2, (start.Y + end.Y) / 2, (start.Z + end.Z) / 2)));
           for (int h = 0; h &lt; height; h++)
           {
               Entity crate = spawnCrate((start + new Vector3(TXA, TYA, 10) + (new Vector3(0, 0, A.Z) * h)), angle);
               crate.Call("enablelinkto");
               crate.Call("linkto", center);
               for (int i = 0; i &lt; blocks; i++)
               {
                   crate = spawnCrate(start + (new Vector3(A.X, A.Y, 0) * i) + new Vector3(0, 0, 10) + (new Vector3(0, 0, A.Z) * h), angle);
                   crate.Call("enablelinkto");
                   crate.Call("linkto", center);
               }
               crate = spawnCrate(new Vector3(end.X, end.Y, start.Z) + new Vector3(TXA * -1, TYA * -1, 10) + (new Vector3(0, 0, A.Z) * h), angle);
               crate.Call("enablelinkto");
               crate.Call("linkto", center);
           }
           return center;
       }
       public Entity CreateFloor(Vector3 corner1, Vector3 corner2)
       {
           float width = corner1.X - corner2.X;
           if (width &lt; 0) width = width * -1;
           float length = corner1.Y - corner2.Y;
           if (length &lt; 0) length = length * -1;

           int bwide = (int)Math.Round(width / 50, 0);
           int blength = (int)Math.Round(length / 30, 0);
           Vector3 C = corner2 - corner1;
           Vector3 A = new Vector3(C.X / bwide, C.Y / blength, 0);
           Entity center = Call("spawn", "script_origin", new Parameter(new Vector3(
               (corner1.X + corner2.X) / 2, (corner1.Y + corner2.Y) / 2, corner1.Z)));
           for (int i = 0; i &lt; bwide; i++)
           {
               for (int j = 0; j &lt; blength; j++)
               {
                   Entity crate = spawnCrate(corner1 + (new Vector3(A.X, 0, 0) * i) + (new Vector3(0, A.Y, 0) * j), new Vector3(0, 0, 0));
                   crate.Call("enablelinkto");
                   crate.Call("linkto", center);
               }
           }
           return center;
       }

       private int _flagCount = 0;

       public void CreateElevator(Vector3 enter, Vector3 exit)
       {
           Entity flag = Call("spawn", "script_model", new Parameter(enter));
           flag.Call("setModel", getAlliesFlagModel(_mapname));
           Entity flag2 = Call("spawn", "script_model", new Parameter(exit));
           flag2.Call("setModel", getAxisFlagModel(_mapname));

           int curObjID = 31 - _flagCount++;
           Call(431, curObjID, "active"); // objective_add
           Call(435, curObjID, new Parameter(flag.Origin)); // objective_position
           Call(434, curObjID, "compass_waypoint_bomb"); // objective_icon

           OnInterval(100, () =&gt;
           {
               foreach (Entity player in getPlayers())
               {
                   if (player.Origin.DistanceTo(enter) &lt;= 50)
                   {
                       player.Call("setorigin", new Parameter(exit));
                   }
               }
               return true;
           });
       }

       public void CreateHiddenTP(Vector3 enter, Vector3 exit)
       {
           Entity flag = Call("spawn", "script_model", new Parameter(enter));
           flag.Call("setModel", "weapon_scavenger_grenadebag");
           Entity flag2 = Call("spawn", "script_model", new Parameter(exit));
           flag2.Call("setModel", "weapon_oma_pack");
           OnInterval(100, () =&gt;
           {
               foreach (Entity player in getPlayers())
               {
                   if (player.Origin.DistanceTo(enter) &lt;= 50)
                   {
                       player.Call("setorigin", new Parameter(exit));
                   }
               }
               return true;
           });
       }

       // maybe someday
       /*private void realElevator(Vector3 bottom, Vector3 top)
       {
           Entity center = Call("spawn", "script_origin", new Parameter(bottom));
           Entity floor = CreateFloor(new Vector3(bottom.X - 200, bottom.Y - 150, bottom.Z),
               new Vector3(bottom.X + 200, bottom.Y + 150, bottom.Z));
           floor.Call("enablelinkto");
           floor.Call("linkto", center);
           Entity cieling = CreateFloor(new Vector3(bottom.X - 200, bottom.Y - 150, bottom.Z),
               new Vector3(bottom.X + 200, bottom.Y + 150, bottom.Z + 300));
           cieling.Call("enablelinkto");
           cieling.Call("linkto", center);
       }*/

       public Entity spawnModel(string model, Vector3 origin, Vector3 angles)
       {
           Entity ent = Call("spawn", "script_model", new Parameter(origin));
           ent.Call("setmodel", model);
           ent.SetField("angles", new Parameter(angles));
           return ent;
       }

       public Entity spawnCrate(Vector3 origin, Vector3 angles)
       {
           Entity ent = Call("spawn", "script_model", new Parameter(origin));
           ent.Call("setmodel", "com_plasticcase_friendly");
           ent.SetField("angles", new Parameter(angles));
           ent.Call(33353, _airdropCollision); // clonebrushmodeltoscriptmodel
           return ent;
       }
       public Entity[] getSpawns(string name)
       {
           return Call("getentarray", name, "classname");
       }
       public void removeSpawn(Entity spawn)
       {
           spawn.Call("delete");
       }
       public void createSpawn(string type, Vector3 origin, Vector3 angle)
       {
           Entity spawn = Call("spawn", type, new Parameter(origin));
           spawn.SetField("angles", new Parameter(angle));
       }

       private static void print(string format, params object[] p)
       {
           Log.Write(LogLevel.All, format, p);
       }

       private void loadMapEdit(string mapname)
       {
           try
           {
               StreamReader map = new StreamReader("scripts\\maps\\" + mapname + ".txt");
               while (!map.EndOfStream)
               {
                   string line = map.ReadLine();
                   if (line.StartsWith("//") || line.Equals(string.Empty))
                   {
                       continue;
                   }
                   string[] split = line.Split(':');
                   if (split.Length &lt; 1)
                   {
                       continue;
                   }
                   string type = split[0];
                   switch (type)
                   {
                       case "crate":
                           split = split[1].Split(';');
                           if (split.Length &lt; 2) continue;
                           spawnCrate(parseVec3(split[0]), parseVec3(split[1]));
                           break;
                       case "ramp":
                           split = split[1].Split(';');
                           if (split.Length &lt; 2) continue;
                           CreateRamp(parseVec3(split[0]), parseVec3(split[1]));
                           break;
                       case "elevator":
                           split = split[1].Split(';');
                           if (split.Length &lt; 2) continue;
                           CreateElevator(parseVec3(split[0]), parseVec3(split[1]));
                           break;
                       case "HiddenTP":
                           split = split[1].Split(';');
                           if (split.Length &lt; 2) continue;
                           CreateHiddenTP(parseVec3(split[0]), parseVec3(split[1]));
                           break;
                       case "door":
                           split = split[1].Split(';');
                           if (split.Length &lt; 7) continue;
                           CreateDoor(parseVec3(split[0]), parseVec3(split[1]), parseVec3(split[2]), int.Parse(split[3]), int.Parse(split[4]), int.Parse(split[5]), int.Parse(split[6]));
                           break;
                       case "wall":
                           split = split[1].Split(';');
                           if (split.Length &lt; 2) continue;
                           CreateWall(parseVec3(split[0]), parseVec3(split[1]));
                           break;
                       case "floor":
                           split = split[1].Split(';');
                           if (split.Length &lt; 2) continue;
                           CreateFloor(parseVec3(split[0]), parseVec3(split[1]));
                           break;
                       /*case "realelevator":
                           split = split[1].Split(';');
                           if (split.Length &lt; 2) continue;
                           realElevator(parseVec3(split[0]), parseVec3(split[1]));
                           break;*/
                       case "model":
                           split = split[1].Split(';');
                           if (split.Length &lt; 3) continue;
                           spawnModel(split[0], parseVec3(split[1]), parseVec3(split[2]));
                           break;
                       default:
                           print("Unknown MapEdit Entry {0}... ignoring", type);
                           break;
                   }
               }
           }
           catch (Exception e)
           {
               print("error loading mapedit for map {0}: {1}", mapname, e.Message);
           }
       }

       private Vector3 parseVec3(string vec3)
       {
           vec3 = vec3.Replace(" ", string.Empty);
           if (!vec3.StartsWith("(") &amp;&amp; !vec3.EndsWith(")")) throw new IOException("Malformed MapEdit File!");
           vec3 = vec3.Replace("(", string.Empty);
           vec3 = vec3.Replace(")", string.Empty);
           String[] split = vec3.Split(',');
           if (split.Length &lt; 3) throw new IOException("Malformed MapEdit File!");
           return new Vector3(float.Parse(split[0]), float.Parse(split[1]), float.Parse(split[2]));
       }

       private string getAlliesFlagModel(string mapname)
       {
           switch (mapname)
           {
               case "mp_alpha":
               case "mp_dome":
               case "mp_exchange":
               case "mp_hardhat":
               case "mp_interchange":
               case "mp_lambeth":
               case "mp_radar":
               case "mp_cement":
               case "mp_hillside_ss":
               case "mp_morningwood":
               case "mp_overwatch":
               case "mp_park":
               case "mp_qadeem":
               case "mp_restrepo_ss":
               case "mp_terminal_cls":
               case "mp_roughneck":
               case "mp_boardwalk":
               case "mp_moab":
               case "mp_nola":
                   return "prop_flag_delta";
               case "mp_bootleg":
               case "mp_bravo":
               case "mp_carbon":
               case "mp_mogadishu":
               case "mp_village":
               case "mp_shipbreaker":
                   return "prop_flag_pmc";
               case "mp_paris":
                   return "prop_flag_gign";
               case "mp_plaza2":
               case "mp_seatown":
               case "mp_underground":
               case "mp_aground_ss":
               case "mp_courtyard_ss":
               case "mp_italy":
               case "mp_meteora":
                   return "prop_flag_sas";
           }
           return "";
       }
       private string getAxisFlagModel(string mapname)
       {
           switch (mapname)
           {
               case "mp_alpha":
               case "mp_bootleg":
               case "mp_dome":
               case "mp_exchange":
               case "mp_hardhat":
               case "mp_interchange":
               case "mp_lambeth":
               case "mp_paris":
               case "mp_plaza2":
               case "mp_radar":
               case "mp_underground":
               case "mp_cement":
               case "mp_hillside_ss":
               case "mp_overwatch":
               case "mp_park":
               case "mp_restrepo_ss":
               case "mp_terminal_cls":
               case "mp_roughneck":
               case "mp_boardwalk":
               case "mp_moab":
               case "mp_nola":
                   return "prop_flag_speznas";
               case "mp_bravo":
               case "mp_carbon":
               case "mp_mogadishu":
               case "mp_village":
               case "mp_shipbreaker":
                   return "prop_flag_africa";
               case "mp_seatown":
               case "mp_aground_ss":
               case "mp_courtyard_ss":
               case "mp_meteora":
               case "mp_morningwood":
               case "mp_qadeem":
               case "mp_italy":
                   return "prop_flag_ic";
           }
           return "";
       }

       private Entity[] getPlayers()
       {
           List players = new List();
           for (int i = 0; i &lt; 17; i++)
           {
               Entity entity = Call("getentbynum", i);
               if (entity != null)
               {
                   if (entity.IsPlayer)
                   {
                       players.Add(entity);
                   }
               }
           }
           return players.ToArray();
       }
   }
}
</pre>
<div></div>
<p></p>
<p> </p>
<p><span><strong><span style="text-decoration:underline;">How to  use!</span></strong></span></p>
<p>*Put the compiled .dll inside your MW3 Server folder/scripts/</p>
<p>*Make a folder called maps inside the folder scripts.</p>
<p>*Inside maps make a text file containing the map name.</p>
<p>i.e. Hardhat = mp_hardhat.txt</p>
<p>*Functions that you can use:</p>
<p></p>
<pre class="ipsCode">// ramp format
// ramp: (startX, startY, startZ) ; (endX, endY, endZ)
// elevator (portal) format ***THIS IS FOR TELEPORTING FLAGS***
// elevator: (enterX, enterY, enterZ) ; (exitX, exitY, exitZ)
// door format
// door: (openX, openY, openZ) ; (closeX, closeY, closeZ) ; (angleX, angleY, angleZ) ; size ; height ; hp ; range
// wall format
// wall: (startX, startY, startZ) ; (endX, endY, endZ)
// floor(/ceiling) format
// floor: (corner1X, corner1Y, corner1Z) ; (corner2X, corner2Y, corner2Z)
// HiddenTP(portal) format
// HiddenTP: (enterX, enterY, enterZ) ; (exitX, exitY, exitZ)</pre>
<div></div>
<p></p>
<p>*How to fly around: press your Lethal Grenade button to enter fly mode. Press the button again to get out of it.</p>
<p>*To get the position of where you are at type viewpos in chat and look at the dedicated server console it's print there. </p>
<p>*Quick way to update map without restarting server, just type map_restart in console and the map will "respawn" and your changes will be there.</p>
<p> </p>
<p><span><strong><span style="text-decoration:underline;">Examples</span></strong></span></p>
<p>Some examples of MapEdits: <a href="https://www.assembla.com/code/qczm-iw5/subversion/nodes/maps?rev=71" rel="external nofollow">https://www.assembla.com/code/qczm-iw5/ ... aps?rev=71</a></p>
<p>//MapEdits by DidUknowiPwn, Apadayo and Dasfonia.</p>
<p> </p>
<p><span><strong><span style="text-decoration:underline;">Problems?</span></strong></span></p>
<p>a. If you experience problems such as players/hands/grenades not showing when you throw them then you have exceeded the amount of models that can be spawned in the map! Reduce it by fixing your mapedit. Cannot be fixed through MapEdit script.</p>
<p>b. My edits don't work! </p>
<p>You're not properly writing the functions in the .txt file for the map.</p>
<p>c. Errors in console!</p>
<p>You're not properly writing the functions in the .txt file for the map.</p>
<p> </p>
<p><span><strong><span style="text-decoration:underline;">Download</span></strong></span></p>
<p>[attachment=1]MapEdit.rar[/attachment]</p>
<p>[attachment=0]MapEdit_NoFly.rar[/attachment]</p>
<p> </p>
<p>Make sure to read Examples, Problems?, and How to Use! before you ask for help.</p>
<p>Script by: Apadayo and DidUknowiPwn</p>
]]></description><guid isPermaLink="false">17588</guid><pubDate>Sun, 25 Nov 2012 07:01:23 +0000</pubDate></item><item><title>[RELEASE]Random Weapon For Infected V1.0</title><link>https://zloplay.ru/topic/19433-releaserandom-weapon-for-infected-v10/</link><description><![CDATA[
<p>Hello friends.</p>
<p>After months of Bug Fix today I decided to launch the mod.</p>
<p>zombie of my servers [TG] Zombies</p>
<p>since we have begun a new project.</p>
<p>Good Zombie Mod The ACA has the following features.</p>
<p>1. Change weapon every 30 second.</p>
<p>2. 30 Seconds Without Weapons</p>
<p>3. Work with the gameplay INFECTED</p>
<p>4. The weapons change only affects humans.</p>
<p>5. It contains a line of credit to me.</p>
<p>The Mod is subject to change in future versions.</p>
<p> </p>
<p>Video For Mod.</p>
<p>
</p>
<div class="ipsEmbeddedVideo"><div><iframe width="459" height="344" src="https://www.youtube.com/embed/xcUxLV740Bg?feature=oembed" frameborder="0" allowfullscreen="true" loading="lazy"></iframe></div></div>
<p> </p>
<p>Tutorial</p>
<p>1. create a new game mode infected with your own perks and specialist streak</p>
<p>2. place the "zombier37.dll" in the scripts folder</p>
<p>3.boot the server and enjoy</p>
<p> </p>
<p> </p>
<p>For Updates.</p>
<p><a href="http://www.tg-clan.us" rel="external nofollow">http://www.tg-clan.us</a></p>
]]></description><guid isPermaLink="false">19433</guid><pubDate>Thu, 27 Dec 2012 23:34:50 +0000</pubDate></item><item><title>Welcome Message</title><link>https://zloplay.ru/topic/8777-welcome-message/</link><description><![CDATA[
<p>First of all, I'm new to C#, so this mod might not be perfect!</p>
<p>The way it works is very simple. It reads a text file and displays it's content as welcome message on your server.</p>
<p> </p>
<p>Source:</p>
<p></p>
<pre class="ipsCode">//momo5502 is learning C# 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

using InfinityScript;

namespace Message
{

   public class Message : BaseScript
   {
       public Message()
           : base()
       {

           //Read the config file
           var config = File.ReadAllLines("scripts\\message.txt");

           //Write to the console
           Log.Write(LogLevel.Info, "\nMomo5502's Welcome Message Plugin loaded!\nMessage set to:\n  1st Line: \"" + config[0] + "\"\n  2nd Line: \"" + config[1] + "\"\n  3rd Line: \"" + config[2] + "\"\nIcon set to: \"" + config[3] + "\"\nHud set to: \"" + config[4] + "\"");

           //Precache the Icon
           Call("precacheShader", config[3]);

           PlayerConnected += entity =&gt;
           {
               //Hud Text
               var hud = HudElem.CreateFontString(entity, "objective", 3f);
               hud.SetPoint("TOPCENTER", "TOPCENTER", 0, 10);
               hud.SetText(config[4]);

               entity.AfterDelay(12000, Entity =&gt;
                   {
                       //First Line
                       var elem = HudElem.CreateFontString(entity, "objective", 2.5f); 
                       elem.SetPoint("CENTER", "CENTER", 0, -50);
                       elem.SetText(config[0]);

                       //Second Line
                       var text = HudElem.CreateFontString(entity, "objective", 2.0f); 
                       text.SetPoint("CENTER", "CENTER", 0, -30);
                       text.SetText(config[1]);

                       //Third Line
                       var text1 = HudElem.CreateFontString(entity, "objective", 1.75f);
                       text1.SetPoint("CENTER", "CENTER", 0, -10);
                       text1.SetText(config[2]);

                       //Icon
                       var icon = HudElem.CreateIcon(entity, config[3], 60, 60);
                       icon.SetPoint("CENTER", "CENTER", 0, 30);
                       icon.Alpha = 1;

                       //Hide everything after 7 seconds
                       entity.AfterDelay(7000, Momo5502 =&gt; //Momo5502 as parameter^^
                       {
                           elem.SetText("");
                           text.SetText("");
                           text1.SetText("");
                           icon.Alpha = 0;
                       });   
                   });     
           };
       }
   }
}

</pre>
<div></div>
<p></p>
<p> </p>
<p>Extract the downloaded files to the scripts folder and edit your welcome message in the message.txt</p>
<p> </p>
<p>-UPDATE-</p>
<p>Supports now up to 3 lines of text, 1 icon and a hud text.</p>
<p>If you don't want for example the icon (or line1, 2 or 3), don't completly remove the line from the message.txt, but simply leave the line blank (or your unwanted line of text)!</p>
<p>To sum it up: Your message.txt contains out of 6 lines (no matter if blank or not):</p>
<p>Line 1: Text of line 1</p>
<p>Line 2: Text of line 2</p>
<p>Line 3: Text of line 3</p>
<p>Line 4: Iconname</p>
<p>Line 5: Hud text on the top</p>
<p>Line 6: Security line (always blank; otherwise server will crash)</p>
<p> </p>
<p>Please report any bugs! <img src="https://zloplay.ru/uploads/emoticons/default_smile.png" alt=":)" srcset="https://zloplay.ru/uploads/emoticons/smile@2x.png 2x" width="20" height="20" loading="lazy"></p>
<p> </p>
<p> </p>
<p><img src="http://cloud-2.steampowered.com/ugc/594731762959909271/911D24FFAC5E2A378EBDC5BFD2BC3D9B3259FA72/" alt="911D24FFAC5E2A378EBDC5BFD2BC3D9B3259FA72" loading="lazy"></p>
<p> </p>
<p><img src="http://cloud-2.steampowered.com/ugc/594731762959904570/C8D4CA156F51FE5C3401057E1ABC620FBBCE878F/" alt="C8D4CA156F51FE5C3401057E1ABC620FBBCE878F" loading="lazy"></p>
<p> </p>
<p></p>
<ul><li>
<span><span style="color:#FFFFFF;">Approved by Pigophone</span></span><span> on 08/10/12</span>
</li></ul><p></p>
]]></description><guid isPermaLink="false">8777</guid><pubDate>Thu, 23 Aug 2012 16:44:41 +0000</pubDate></item><item><title>[RELASE]JetPilot Mod V1.1</title><link>https://zloplay.ru/topic/23522-relasejetpilot-mod-v11/</link><description><![CDATA[
<p>Hello everyone,</p>
<p> </p>
<p>this mod allow you to pilot shoot from a jet.</p>
<p>you can use minigun and missiles.</p>
<p><span>Versions:</span></p>
<p></p>
<pre class="ipsCode">
v1.0
-Initial relase

v1.0.1
-minigun fire set to automatic
-1 bug fixed
-added fx explosion on player killed

v1.1
-some bugs fixed
-better hud
-weapons reloading
</pre>
<div></div>
<p></p>
<p> </p>
<p>Credits:</p>
<p>bingo007 for the mod</p>
<p>DUKIP for his gametype change function</p>
<p> </p>
<p>tuttocarbonio.altervista.org</p>
]]></description><guid isPermaLink="false">23522</guid><pubDate>Sun, 24 Feb 2013 20:47:06 +0000</pubDate></item><item><title>Improved AntiCamp</title><link>https://zloplay.ru/topic/17850-improved-anticamp/</link><description><![CDATA[
<p>I got a request from =[DNS]=WildCat to fix some issues with the original AntiCamp which I did. As I think it may be also useful for other people I release the source here.</p>
<p> </p>
<p>Changes I did to the original AntiCamp:</p>
<p>- Add check if player is using killstreak weapon</p>
<p>- Add check if player is using sentry turret</p>
<p>- Add customizable distance</p>
<p>- Add customizable time for checking distance</p>
<p>- Add customizable option for max warnings -&gt; when the player reaches maximum he will suicide</p>
<p> </p>
<p>To use the custom option you add in your server config:</p>
<p></p>
<pre class="ipsCode">seta scr_ac_time 4000 //milliseconds for check
seta scr_ac_distance 50
scr_ac_maxwarnings 2</pre>
<div></div>
<p>Change the above values to your need.</p>
<p> </p>
<p>Source code:</p>
<p></p>
<pre class="ipsCode">using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using InfinityScript;

namespace InfinityScript.Examples
{
   public class AntiCamp : BaseScript
   {
       private bool _donePrematch = false;
       private List _safeTriggers = new List();
       private int Distance = 50;
       private int CheckTime = 4000;
       private int[] Warnings = new int[18];
       private int MaxWarnings = 2;

       private static bool isKillstreakWep(string wep)
       {
           if (wep.Contains("ac130"))
               return true;
           if (wep.Contains("remote"))
               return true;
           if (wep.Contains("minigun"))
               return true;
           return false;
       }

       public AntiCamp()
       {
           Call("setdvarifuninitialized", "scr_ac_time", 4000);
           Call("setdvarifuninitialized", "scr_ac_distance", 50);
           Call("setdvarifuninitialized", "scr_ac_maxwarnings", 2);
           Distance = Call("getdvarint", "scr_ac_distance");
           CheckTime = Call("getdvarint", "scr_ac_time");
           MaxWarnings = Call("getdvarint", "scr_ac_maxwarnings");
           if (CheckTime &lt; 500)
               CheckTime = 500;

           var gameType = Call("getDvar", "g_gametype").ToLower();

           for (int i = 0; i &lt; 2048; i++)
           {
               var entity = Call("getEntByNum", i);

               if (entity != null)
               {
                   var targetname = entity.GetField("targetname");

                   if (gameType == "dom")
                   {
                       if (targetname == "flag_primary" || targetname == "flag_secondary")
                       {
                           _safeTriggers.Add(entity);
                       }
                   }
                   else if (gameType == "koth")
                   {
                       if (targetname == "radiotrigger")
                       {
                           _safeTriggers.Add(entity);
                       }
                   }
               }
           }

           // only trigger anticamp after the game started
           OnNotify("prematch_done", () =&gt;
           {
               _donePrematch = true;
           });

           // don't trigger anticamp after the game ended
           OnNotify("game_over", () =&gt;
           {
               _donePrematch = false;
           });

           PlayerConnecting += new Action(entity =&gt;
           {
               // bombsite using
               entity.SetField("ac_using", 0);
               //using remote
               entity.SetField("ac_remote", 0);

               entity.OnNotify("use_hold", player =&gt;
               {
                   player.SetField("ac_using", 1);
               });

               entity.OnNotify("done_using", player =&gt;
               {
                   player.SetField("ac_using", 0);
               });

               entity.OnNotify("using_remote", player =&gt;
                   {
                       player.SetField("ac_remote", 1);
                   });

               entity.OnNotify("stopped_using_remote", player =&gt;
                   {
                       player.SetField("ac_remote", 0);
                   });

               //entity.OnInterval(4000, player =&gt;
               entity.OnInterval(CheckTime, player =&gt;
               {
                   int entNum = player.Call("getentitynumber");
                   if (!player.IsAlive)
                   {
                       goto _Reset;
                   }

                   if (!_donePrematch)
                   {
                       goto _Reset;
                   }

                   if (player.GetField("ac_using") != 0)
                   {
                       goto _Reset;
                   }
                   if (player.GetField("ac_remote") != 0)
                   {
                       goto _Reset;
                   }
                   if (isKillstreakWep(player.CurrentWeapon))
                       goto _Reset;

                   foreach (var safeEntity in _safeTriggers)
                   {
                       if (player.Call("istouching", safeEntity) != 0)
                       {
                           Log.Write(LogLevel.Trace, "touching safe entity");
                           goto _Reset;
                       }
                   }

                   if (player.Call("istalking") != 0)
                   {
                       Log.Write(LogLevel.Trace, "talking");
                       goto _Reset;
                   }

                   if (player.Call("isusingturret") != 0)
                   {
                       goto _Reset;
                   }

                   if (player.HasField("ac_lastPos"))
                   {
                       var lastPos = player.GetField("ac_lastPos");

                       //why no height difference?
                       //if (lastPos.DistanceTo2D(player.Origin) &lt; 50)
                       if (lastPos.DistanceTo(player.Origin) &lt; Distance)
                       {
                           player.Call("iprintlnbold", "You will be killed if you do not move.");

                           Warnings[entNum]++;
                           if (Warnings[entNum] &gt;= MaxWarnings)
                           {
                               player.Call("suicide");
                               goto _Reset;
                           }
                       }
                   }
                   goto _NoReset;

               _Reset:
                   Warnings[entNum] = 0;

               _NoReset:
                   player.SetField("ac_lastPos", player.Origin);
                   return true;
               });
           });
       }
   }
}</pre>
<div></div>
<p></p>
<p> </p>
<p>Credits to NTAuthority or whoever made the original AntiCamp example.</p>
]]></description><guid isPermaLink="false">17850</guid><pubDate>Sat, 01 Dec 2012 12:49:12 +0000</pubDate></item><item><title>Gametype Changer</title><link>https://zloplay.ru/topic/22471-gametype-changer/</link><description><![CDATA[
<p>since I was browsing here... and was bored so releasing here too.</p>
<p>--DUKIP: Source hidden for now, don't want people to get all crazy in it.--</p>
<p> </p>
<ul><li>
<strong>Create a file called "gametype.txt"</strong><br></li>
<li>
<strong>Enter your custom gametype</strong><br></li>
<li>
<strong>????</strong><br></li>
<li><strong>profit</strong></li>
</ul><p> </p>
<p>Full Credits to : DUKIP and TheApadayo --DUKIP: What about you <img src="https://zloplay.ru/uploads/emoticons/default_tongue.png" alt=":P" srcset="https://zloplay.ru/uploads/emoticons/tongue@2x.png 2x" width="20" height="20" loading="lazy"> you just added some changes--</p>
<p>[attachment=0]IW5M_Gametype_Changer.rar[/attachment]</p>
]]></description><guid isPermaLink="false">22471</guid><pubDate>Tue, 12 Feb 2013 12:25:20 +0000</pubDate></item><item><title>Snipe Mod</title><link>https://zloplay.ru/topic/8093-snipe-mod/</link><description><![CDATA[
<p>Based off iSnipe 3 from MW2.</p>
<p> </p>
<p>Thanks to iNuke for creating the original mod.</p>
<p>Thanks to zxzO0O/DaMacc/(read the other topic for the full list) for the no knife class.</p>
<p> </p>
<p>Source: <a href="https://github.com/Deathmax/iw5m-scripts/tree/master/SnipeMod" rel="external nofollow">https://github.com/Deathmax/iw5m-script ... r/SnipeMod</a></p>
<p> </p>
<p>Features (all of which are configurable):</p>
<p></p>
<ul><li>Anti-hardscope<br /></li>
<li>Anti-melee</li>
</ul><p></p>
<p> </p>
<p>TODO:</p>
<p></p>
<ul><li>Fix anti-hardscope (Don't use toggle ADS, use hold ADS)</li></ul><p></p>
<p> </p>
<p>NOT WORKING:</p>
<p></p>
<ul><li>Player health set<br /></li>
<li>Fall damage</li>
</ul><p></p>
<p> </p>
<p>Configuration:</p>
<p></p>
<ol style="list-style-type:decimal;"><li>Start the server and load the script once.<br /></li>
<li>A file called settings.xml should have been generated under scripts\snipermod\</li>
</ol><p></p>
<p> </p>
<p></p>
<ul><li>
<span><span style="color:#FFFFFF;">Approved by Pigophone</span></span><span> on 08/10/12</span>
</li></ul><p></p>
]]></description><guid isPermaLink="false">8093</guid><pubDate>Sun, 19 Aug 2012 11:50:47 +0000</pubDate></item><item><title>Easy MapEdit</title><link>https://zloplay.ru/topic/17993-easy-mapedit/</link><description><![CDATA[
<p>Tired of having to manually add the map edits to the txt file? tired of having to alt-tab and shit so you can create a mapedit? well this is for you then!</p>
<p> </p>
<p><strong>How to use:</strong></p>
<p>Use the chat command set the START and the END of the map edit.</p>
<p></p>
<pre class="ipsCode">!wall
!ramp
!tp
!htp
!floor</pre>
<div></div>
<p></p>
<p>Then type "map_restart" on server console and done!</p>
<p> </p>
<p><strong>TODO:</strong></p>
<p>-Add map_restart ingame.</p>
<p>-Add door.</p>
<p>-Somehow, fly?</p>
<p>-Instantly create the mapedits.</p>
<p> </p>
<p><strong>Source Code:</strong></p>
<p></p>
<pre class="ipsCode">using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using InfinityScript;
using System.IO;

namespace ManualMapEdit
{
   public class ManualMapEdit : BaseScript
   {
       bool creating = false;
       float startx;
       float starty;
       float startz;
       float endx;
       float endy;
       float endz;

       public ManualMapEdit()
           : base()
       {
           PlayerConnected += new Action(player =&gt;
           {
               player.Call("notifyonplayercommand", "fly", "+frag");
               player.OnNotify("fly", (ent) =&gt;
               {
                   if (player.GetField("sessionstate") != "spectator")
                   {
                       player.Call("allowspectateteam", "freelook", true);
                       player.SetField("sessionstate", "spectator");
                       player.Call("setcontents", 0);
                   }
                   else
                   {
                       player.Call("allowspectateteam", "freelook", false);
                       player.SetField("sessionstate", "playing");
                       player.Call("setcontents", 100);
                   }
               });
           });
       }
       public override void OnSay(Entity player, string playerName, string text)
       {
           var mapname = Call("getdvar", "mapname");

           string[] msg = text.Split(' ');


           if (msg[0] == "!restart")
           {
               Call("setdvar", "map_restart", "1");
           }

           if (msg[0] == "!wall" &amp;&amp; !creating)
           {
               player.Call("iprintlnbold", "^2START SET: " + player.Origin);
               startx = player.Origin.X;
               starty = player.Origin.Y;
               startz = player.Origin.Z;
               creating = true;
           }
           else if (msg[0] == "!wall" &amp;&amp; creating)
           {
               player.Call("iprintlnbold", "^2END SET: "+player.Origin);
               endx = player.Origin.X;
               endy = player.Origin.Y;
               endz = player.Origin.Z;
               creating = false;
               File.AppendAllText("scripts\\maps\\" + mapname + ".txt", Environment.NewLine + "wall: (" + startx + "," + starty + "," + startz + ") ; (" + endx + "," + endy + "," + endz + ")");
           }

           if (msg[0] == "!ramp" &amp;&amp; !creating)
           {
               player.Call("iprintlnbold", "^2START SET: " + player.Origin);
               startx = player.Origin.X;
               starty = player.Origin.Y;
               startz = player.Origin.Z;
               creating = true;
           }
           else if (msg[0] == "!ramp" &amp;&amp; creating)
           {
               player.Call("iprintlnbold", "^2END SET: " + player.Origin);
               endx = player.Origin.X;
               endy = player.Origin.Y;
               endz = player.Origin.Z;
               creating = false;
               File.AppendAllText("scripts\\maps\\" + mapname + ".txt", Environment.NewLine + "ramp: (" + startx + "," + starty + "," + startz + ") ; (" + endx + "," + endy + "," + endz + ")");
           }

           if (msg[0] == "!tp" &amp;&amp; !creating)
           {
               player.Call("iprintlnbold", "^2START SET: " + player.Origin);
               startx = player.Origin.X;
               starty = player.Origin.Y;
               startz = player.Origin.Z;
               creating = true;
           }
           else if (msg[0] == "!tp" &amp;&amp; creating)
           {
               player.Call("iprintlnbold", "^2END SET: " + player.Origin);
               endx = player.Origin.X;
               endy = player.Origin.Y;
               endz = player.Origin.Z;
               creating = false;
               File.AppendAllText("scripts\\maps\\" + mapname + ".txt", Environment.NewLine + "elevator: (" + startx + "," + starty + "," + startz + ") ; (" + endx + "," + endy + "," + endz + ")");
           }

           if (msg[0] == "!htp" &amp;&amp; !creating)
           {
               player.Call("iprintlnbold", "^2START SET: " + player.Origin);
               startx = player.Origin.X;
               starty = player.Origin.Y;
               startz = player.Origin.Z;
               creating = true;
           }
           else if (msg[0] == "!htp" &amp;&amp; creating)
           {
               player.Call("iprintlnbold", "^2END SET: " + player.Origin);
               endx = player.Origin.X;
               endy = player.Origin.Y;
               endz = player.Origin.Z;
               creating = false;
               File.AppendAllText("scripts\\maps\\" + mapname + ".txt", Environment.NewLine + "HiddenTP: (" + startx + "," + starty + "," + startz + ") ; (" + endx + "," + endy + "," + endz + ")");
           }

           if (msg[0] == "!floor" &amp;&amp; !creating)
           {
               player.Call("iprintlnbold", "^2START SET: " + player.Origin);
               startx = player.Origin.X;
               starty = player.Origin.Y;
               startz = player.Origin.Z;
               creating = true;
           }
           else if (msg[0] == "!floor" &amp;&amp; creating)
           {
               player.Call("iprintlnbold", "^2END SET: " + player.Origin);
               endx = player.Origin.X;
               endy = player.Origin.Y;
               endz = player.Origin.Z;
               creating = false;
               File.AppendAllText("scripts\\maps\\" + mapname + ".txt", Environment.NewLine + "floor: (" + startx + "," + starty + "," + startz + ") ; (" + endx + "," + endy + "," + endz + ")");
           }

       }
   }
}
</pre>
<div></div>
<p></p>
]]></description><guid isPermaLink="false">17993</guid><pubDate>Tue, 04 Dec 2012 15:28:22 +0000</pubDate></item><item><title>Give Ammo</title><link>https://zloplay.ru/topic/11494-give-ammo/</link><description><![CDATA[
<p>Here's a simple script for some of you guys out there, this just gives you max ammo when you type !giveammo in chat.</p>
<p> </p>
<p>How to install:</p>
<p>1) Download zip below.</p>
<p>2) Extract the .dll</p>
<p>3) Put the .dll inside your MW3 Dedi folder in <span style="color:#FF0000;"><span style="text-decoration:underline;"><strong>scripts</strong></span></span></p>
<p>4a) Open each dsr you want it to be included in and type </p>
<p>loadScript "Ammo.dll"</p>
<p>4b) Open server.cfg and add</p>
<p>loadScript "Ammo.dll" </p>
<p>this will add it to all your dsr's.</p>
<p> </p>
<p><strong><span style="text-decoration:underline;"><span style="color:#00FF00;">Source</span></span></strong></p>
<p></p>
<pre class="ipsCode">using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using InfinityScript;

namespace Ammo
{
   public class Ammo : BaseScript
   {
       public Ammo()
           : base()
       {
           PlayerConnected += new Action(entity =&gt;
           {
               Call("setdvar", "motd", "DUKIP is awesome");
           });
       }
       public override void OnSay(Entity player, string name, string message)
       {
           if (message.StartsWith("!giveammo"))
           {
               var weapon = player.CurrentWeapon;
               player.Call("giveMaxAmmo", player.CurrentWeapon);
           }
       }
   }
}</pre>
<div></div>
<p></p>
<p> </p>
<p><strong><span style="text-decoration:underline;">Changelog:</span></strong></p>
<p>V1.0 Initial Release</p>
<p> </p>
<p>A massive thank you to two the person who guided me and put up with my shit skills.</p>
<p> </p>
<p></p>
<ul><li>
<span><span style="color:#FFFFFF;">Approved by Pigophone</span></span><span> on 08/10/12</span>
</li></ul><p></p>
]]></description><guid isPermaLink="false">11494</guid><pubDate>Fri, 14 Sep 2012 05:32:46 +0000</pubDate></item><item><title>[RELASE]Advertise plugin</title><link>https://zloplay.ru/topic/20473-relaseadvertise-plugin/</link><description><![CDATA[
<p>Hi all,</p>
<p> </p>
<p>this plugin will create an advertise on players HUD:</p>
<p><img src="http://tuttocarbonio.altervista.org/adv.jpg" alt="adv.jpg" loading="lazy"></p>
<p> </p>
<p>Server.cfg:</p>
<p></p>
<pre class="ipsCode">
seta adv_message "Visit my site" //change here the advertise message
seta adv_messinterval 20000      //the interval value in milliseconds between each message
</pre>
<div></div>
<p></p>
<p> </p>
<p>Source:</p>
<p></p>
<pre class="ipsCode">
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using InfinityScript;

namespace adv_plugin
{
   public class adv_plugin : BaseScript
   {
       string message = "^1Visit my site";
       int interval = 20000;

       public adv_plugin() : base() {
           message = Call("getdvar", "adv_message");
           string tmpM = Call("getdvar", "adv_messinterval");
           interval = Convert.ToInt32(tmpM);
           OnInterval(interval, () =&gt; {
               Call("allclientsprint", message);
               return true;
           });
       }
   }
}

</pre>
<div></div>
<p></p>
<p> </p>
<p>[attachment=0]Advertise.rar[/attachment]</p>
<p>tuttocarbonio.altervista.org</p>
]]></description><guid isPermaLink="false">20473</guid><pubDate>Mon, 14 Jan 2013 14:09:58 +0000</pubDate></item><item><title>Blocked Cheat DVARs v1.3.3 with Hardcore Support!</title><link>https://zloplay.ru/topic/13875-blocked-cheat-dvars-v133-with-hardcore-support/</link><description><![CDATA[
<p><span style="text-decoration:underline;"><strong><span>Version:</span></strong></span><span style="color:#FF0000;"> 1.3.3</span></p>
<p>Hey guys here's a simple script for you guys to use, this script blocks most of the cheating commands used by players. NTA knows about it and is patching it as we speak.</p>
<p> </p>
<p> </p>
<p><span><span style="text-decoration:underline;"><strong><span style="color:#FF0000;">Install</span></strong></span></span></p>
<p>To install in your dedi open your server.cfg and add this line to the very top of your .cfg</p>
<p><span><strong><span style="text-decoration:underline;">loadScript "BlockedDvars.dll"</span></strong></span></p>
<p>For Hardcore server use this: <span><strong><span style="text-decoration:underline;">loadScript "BlockedDvarsHC.dll"</span></strong></span></p>
<p>and then put the .dll inside your scripts folder.</p>
<p>Restart your server and done.</p>
<p> </p>
<p><span>Regular/Softcore Servers </span></p>
<p>[/size][/b]</p>
<p>1.0 Initial Release</p>
<p>1.1 Added 4 more dvars</p>
<p>1.2 Added 1 dvar thanks S T R 8 L 3 A D or however your name was <img src="https://zloplay.ru/uploads/emoticons/default_tongue.png" alt=":P" srcset="https://zloplay.ru/uploads/emoticons/tongue@2x.png 2x" width="20" height="20" loading="lazy"></p>
<p>1.3 Added 8 new dvars -yes 8- with also HC support!  -Hardcore servers you need this urgently!-</p>
<p>1.3.1 An attempt to fix the Server Command Overflow error.</p>
<p>1.3.2 Another attempt to fix it. Changed the setting from PlayerConnected to PlayerConnecting.</p>
<p>1.3.3 Another attempt, removed a few more commands that nobody would even know.</p>
<p> </p>
<p> </p>
<p>Credits: Me -for coding-</p>
<p>GrossKopf -told me mentally to do it-</p>
<p>Apadayo -for helping me fix a stupid error-</p>
<p>NTAuthority -for helping me make the code smaller/easier-</p>
<p>Icedream -for being awesome-</p>
]]></description><guid isPermaLink="false">13875</guid><pubDate>Mon, 08 Oct 2012 23:56:33 +0000</pubDate></item><item><title>Jailbreak Mode Mod v1.0</title><link>https://zloplay.ru/topic/19048-jailbreak-mode-mod-v10/</link><description><![CDATA[
<p>Finally have some time to release this mod.</p>
<p>So here it is!</p>
<p> </p>
<p><strong><span style="text-decoration:underline;">Basic Idea:</span></strong></p>
<p>Jailbreak is a teambased mod for IW5M. There are two teams: Axis and Allies. When killed, you will be put in jail (different jails for each team). While in jail, fellow teammates can free you by killing enemy players. When an enemy player is killed, the first person who got in jail will be released and so on.</p>
<p> </p>
<p><strong><span style="text-decoration:underline;">How to set it all up!</span></strong></p>
<p>1. Create the following path in your scripts folder: /jailbreak/jails/</p>
<p>2. Throw all the MapEdit txtfiles you find inside the JailbreakMapEdits.rar file in the /jails/ folder you just created.</p>
<p>3. Create a tdm dsr with killstreaks disabled and the timelimit is the roundtimelimit. (map will rotate after the timelimit so make it like 10 minutes or even higher)</p>
<p>4. You should be good to go from here!</p>
<p> </p>
<p><strong><span style="text-decoration:underline;">Dvar that can be used to modify the settings:</span></strong></p>
<p></p>
<pre class="ipsCode">seta jailbreak_max_wins 4</pre>
<div></div>
<p></p>
<p>Currently there are 18 usable maps included with this mod. I will make some more in the future and make additions to the other ones if needed.</p>
<p>You can also make your own ones if you'd like to because the syntax of the mapedit txt files is the same as the MapEdit from DUKIP and the Apadayo</p>
<p> </p>
<p><strong><span style="text-decoration:underline;">Known issues:</span></strong></p>
<p>- Some offhand secondary weapons aren't shown on the HUD (scrambler, portable radar and tactical insertion). Could not get them to work <img src="https://zloplay.ru/uploads/emoticons/default_sad.png" alt=":(" srcset="https://zloplay.ru/uploads/emoticons/sad@2x.png 2x" width="20" height="20" loading="lazy"></p>
<p>- HUD may mess up when a player reconnects when the same round is still in progress. Just don't do that.... (will be all normal again in the next round though)</p>
<p> </p>
<p><strong><span style="text-decoration:underline;">Credits:</span></strong></p>
<p>- Aalalex (myself) --&gt; Jailbreak Logic.</p>
<p>- Cyb3rz3r0 --&gt; Redid MapEdit Class which was originally made by DUKIP and The Apadayo. Also helped me with a couple of things for Jailbreak logic.</p>
<p>- Taftse --&gt; Helped Cyb3rz3r0 with MapEdit Class.</p>
<p> </p>
<p><strong><span style="text-decoration:underline;">Things to do for 2.0:</span></strong></p>
<p>- Don't kill people when they get jailbroken but teleport them to some place safe. (requires me to use the iw5's spawnsystem or create one myself)</p>
<p>- Add the option to put players in spectator mode instead if in jail. (Not really the Quake 3 way, thats why it will be optional)</p>
<p>- Some more additions to the HUD?</p>
<p> </p>
<p>Gameplay Video:</p>
<p></p>
<p> </p>
<p>Some changes have been made to the hud but I was not able to record another gameplay video so here is a screenshot of it:</p>
<p><img src="http://img534.imageshack.us/img534/29/iw5m2012122211434443.png" alt="iw5m2012122211434443.png" loading="lazy"></p>
<p> </p>
<p>Please let me know if you find any bugs!</p>
<p> </p>
<p>Furure updates of this mod will be posted here:</p>
<p><a href="http://mach3software.com/ghost-soldiers.net/showthread.php?10-Jailbreak-Mode-Mod-v1-0&amp;p=13#post13" rel="external nofollow">http://mach3software.com/ghost-soldiers.net/showthread.php?10-Jailbreak-Mode-Mod-v1-0&amp;p=13#post13</a></p>
<p> </p>
<p>Virusscan for the attachment (I like to put virusses in my txtfiles you know...)</p>
<p><a href="https://www.virustotal.com/file/117a76d2129d7908016075f483af095d83c6cf5fc1ec6529b08d707f09b35734/analysis/1356174543/" rel="external nofollow">https://www.virustotal.com/file/117a76d2129d7908016075f483af095d83c6cf5fc1ec6529b08d707f09b35734/analysis/1356174543/</a></p>
<p> </p>
<p>So apparently some admins around here fail to obey their own rules.</p>
<p>Here is a link to download the compiled dll for this mod:</p>
<p><a href="http://www.mediafire.com/?rmjyejzv9vva0me" rel="external nofollow">HERE!</a></p>
<p>There is a virusscan included over there as well.</p>
<p>Enjoy!</p>
]]></description><guid isPermaLink="false">19048</guid><pubDate>Sat, 22 Dec 2012 11:18:19 +0000</pubDate></item><item><title><![CDATA[Hide & Seek Plugin]]></title><link>https://zloplay.ru/topic/18194-hide-seek-plugin/</link><description><![CDATA[
<p>Finally I have time to release this plugin.</p>
<p> </p>
<p><span><strong>Video of the mod/plugin:</strong></span></p>
<p></p>
<p> </p>
<p><span><strong>Summary:</strong></span></p>
<p><strong>Hiders:</strong></p>
<p>- Select a model available in the map and hide yourself</p>
<p>- You can rotate the model</p>
<p>- You can try to kill seekers with your knife</p>
<p> </p>
<p><strong>Seekers:</strong></p>
<p>- Search and kill the hiders</p>
<p>- You can attach/detach a silencer to your weapon</p>
<p>- You can enable/disable acoustic sensor (if it's enabled server-side)</p>
<p> </p>
<p>Fall damage is disabled.</p>
<p>Killstreaks are disabled.</p>
<p>Follow the instructions on the HUD for more informations.</p>
<p> </p>
<p><span><strong>Admin settings:</strong></span></p>
<p>You can configure some settings in your server.cfg</p>
<p></p>
<pre class="ipsCode">seta scr_hns_hidetime 25 //While this countdown seekers have black vision and can not move. Hiders can move faster than usual
seta scr_hns_timelimit 3 //Timelimit in minutes
seta scr_hns_seekerhealth 280 //Health for seekers; 280 requires 3knife hits
seta scr_hns_seekersensor 0 //Enable/disable acoustic sensor for seekers (heartbeat-sensor-like)</pre>
<div></div>
<p></p>
<p>Use this plugin with gametype <span style="text-decoration:underline;">Search &amp; Destroy</span>! This plugin disables the match rules data (.dsr file).</p>
<p> </p>
<p><span>Thanks to jeremych for hosting a beta server.</span></p>
<p> </p>
<p>Source code is attached.</p>
]]></description><guid isPermaLink="false">18194</guid><pubDate>Fri, 07 Dec 2012 18:55:28 +0000</pubDate></item><item><title>OldRotation Plugin</title><link>https://zloplay.ru/topic/16409-oldrotation-plugin/</link><description><![CDATA[
<p>This plugin replaces the MW3 random rotation with the old cod4-style rotation. That means the server rotates the way you want, not just randomly, also you can set up more than 16 maps.</p>
<p> </p>
<p>You must create a file called OldRotation.cfg in your scripts folder.</p>
<p>Syntax:</p>
<p></p>
<pre class="ipsCode">playlist [playlistname] map [mapname]</pre>
<div></div>
<p>Example:</p>
<p></p>
<pre class="ipsCode">playlist ffa_default map mp_dome playlist sd_default map mp_alpha playlist jug_default map mp_carbon</pre>
<div></div>
<p><strong>Note: You must </strong><strong><span style="text-decoration:underline;">not</span></strong><strong> create a new line in OldRotation.cfg. The whole rotation has to be on a single line! (Thanks Paulofonta)</strong></p>
<p><span>Source:</span></p>
<p>Simple version:</p>
<p></p>
<pre class="ipsCode">
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using InfinityScript;
using System.IO;

namespace OldRotation
{
   public class OldRot : BaseScript
   {
       public OldRot()
       {
           Log.Write(LogLevel.Info, "\n OldRotation Plugin loaded\n Author: zxz0O0");

           if (!File.Exists(@"scripts\OldRotation.cfg"))
           {
               Log.Write(LogLevel.Error, "File OldRotation.cfg not found. OldRotation Plugin will not work");
               return;
           }

           string content = File.ReadAllText(@"scripts\OldRotation.cfg");
           if (content.Length &lt; 5)
           {
               Log.Write(LogLevel.Error, "Syntax error in OldRotation. OldRotation Plugin will not work");
               return;
           }

           Call("setdvarifuninitialized", "sv_old_mapRotation", content);
           Call("setdvar", "sv_maprotation", "temp-pl");

           if (HasRotated())
           {
               SetRotation();
               Log.Write(LogLevel.Info, "rotating");
           }
       }

       private void SetRotation()
       {
           string val = Call("getdvar", "sv_old_mapRotation");
           string map;
           string playlist;
           string[] valSplit = val.Split(' ');
           if (valSplit.Length &lt; 3 || valSplit[0] != "playlist" || valSplit[2] != "map")
           {
               Log.Write(LogLevel.Error, "Syntax error in OldRotation. OldRotation Plugin will not work");
               return;
           }
           playlist = valSplit[1];
           map = valSplit[3];
           val = string.Empty;
           for (int i = 4; i &lt; valSplit.Length; i++)
           {
               val += valSplit[i];
               val += " ";
           }

           val += "playlist " + playlist + " map " + map;
           Call("setdvar", "sv_old_mapRotation", val);
           Call("setdvar", "sv_nextmap", map);
           File.WriteAllText(@"admin\temp-pl.dspl", map + "," + playlist + ",1000");
       }

       private bool HasRotated()
       {
           string map = Call("getdvar", "mapname");
           string estimated = Call("getdvar", "sv_nextmap");
           if (String.IsNullOrEmpty(estimated))
               return true;

           if (String.Compare(map, estimated, true) == 0)
               return true;
           return false;
       }
   }
}
</pre>
<div></div>
<p></p>
<p> </p>
<p>Extended version:</p>
<p>Use this version if you use &gt; 30 maps.</p>
<p></p>
<pre class="ipsCode">
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using InfinityScript;
using System.IO;

namespace OldRotation
{
   public class OldRot : BaseScript
   {
       private static string OldRotFilename = "OldRotation.cfg";

       public OldRot()
       {
           Call("setdvarifuninitialized", "sv_oldrotation", "OldRotation.cfg");
           OldRotFilename = Call("getdvar", "sv_oldrotation");
           Log.Write(LogLevel.Info, "\n OldRotation Plugin loaded\n Author: zxz0O0");

           if (Call("getdvarint", "HasJustStarted", 1) == 1)
           {
               Log.Write(LogLevel.Info, "First Start...");
               if (File.Exists(@"scripts\" + OldRotFilename + ".tmp"))
                   File.Delete(@"scripts\" + OldRotFilename + ".tmp");
               File.Copy(@"scripts\" + OldRotFilename, @"scripts\" + OldRotFilename + ".tmp", true);
               Call("setdvar", "HasJustStarted", 0);
           }

           if (!File.Exists(@"scripts\" + OldRotFilename + ".tmp"))
               File.Copy(@"scripts\" + OldRotFilename, @"scripts\" + OldRotFilename + ".tmp", true);

           if (!File.Exists(@"scripts\" + OldRotFilename))
           {
               Log.Write(LogLevel.Error, "File " + OldRotFilename + " not found. OldRotation Plugin will not work");
               return;
           }

           FileInfo fInfo = new FileInfo(@"scripts\" + OldRotFilename);
           if(fInfo.Length &lt; 5)
           {
               Log.Write(LogLevel.Error, "Syntax error in Rotation file. OldRotation Plugin will not work");
               return;
           }

           Call("setdvar", "sv_maprotation", OldRotFilename);

           if (HasRotated())
           {
               Log.Write(LogLevel.Info, "Rotating...");
               SetRotation();
           }
       }

       private void SetRotation()
       {
           string content = File.ReadAllText(@"scripts\" + OldRotFilename + ".tmp");
           string map;
           string playlist;
           string[] valSplit = content.Split(new char[] { ' ' }, 5);
           if (valSplit.Length &lt; 4 || valSplit[0] != "playlist" || valSplit[2] != "map")
           {
               Log.Write(LogLevel.Error, "Syntax error in tmp Rotation file. OldRotation Plugin will not work");
               return;
           }
           playlist = valSplit[1];
           map = valSplit[3];

           for (int z = 0; z &lt; 4; z++)
           {
               string s = valSplit[z];
               int start = content.IndexOf(s);
               int length = s.Length;
               content = content.Remove(start, length);
               content = content.TrimStart(' ');
               if (content[content.Length - 1] != ' ')
                   content += " ";
               content += s;
           }

           File.WriteAllText(@"scripts\" + OldRotFilename + ".tmp", content);
           Call("setdvar", "sv_nextmap", map);
           File.WriteAllText(@"admin\" + OldRotFilename + ".dspl", map + "," + playlist + ",1000");
       }

       private bool HasRotated()
       {
           string map = Call("getdvar", "mapname");
           string estimated = Call("getdvar", "sv_nextmap");
           if (String.IsNullOrEmpty(estimated))
               return true;

           if (String.Compare(map, estimated, true) == 0)
               return true;
           return false;
       }
   }
}</pre>
<div></div>
<p></p>
<p>The extended version uses OldRotation.cfg by default. If you want to use other files (if you have multiple servers) you add in your server config at the end:</p>
<p></p>
<pre class="ipsCode">seta sv_oldrotation "OldRotationFileName.cfg"</pre>
<div></div>
<p>The file must be in scripts folder.</p>
<p>Extended: [attachment=1]OldRotationExtended.rar[/attachment]</p>
<p> </p>
<p> </p>
<p>Credits to Nukem for creating this feature for the steam version.</p>
]]></description><guid isPermaLink="false">16409</guid><pubDate>Mon, 05 Nov 2012 17:30:43 +0000</pubDate></item><item><title>Roll The Dice WIP (40 rolls)</title><link>https://zloplay.ru/topic/7639-roll-the-dice-wip-40-rolls/</link><description><![CDATA[
<p>Porting over RTDv3 from MW2 to IW5M, slowly.</p>
<p> </p>
<p>Source: <a href="https://github.com/Deathmax/iw5m-scripts/tree/master/RollTheDice" rel="external nofollow">https://github.com/Deathmax/iw5m-script ... ollTheDice</a></p>
<p> </p>
<p>Screenshot:</p>
<p><img src="http://i.imgur.com/FArNi.jpg" alt="FArNi.jpg" loading="lazy"></p>
<p> </p>
<p>Status: Several rolls do not work, not all weapons are automatically switched to.</p>
<p> </p>
<p>Current rolls (40):</p>
<p></p>
<ol><li>Extra speed<br></li>
<li>Unlimited XM25<br></li>
<li>No Recoil<br></li>
<li>One kit KO<br></li>
<li>No ADS<br></li>
<li>Triple HP<br></li>
<li>All Perks<br></li>
<li>Unlimited Frag Grenades<br></li>
<li>Go Get 'em Makarov (Machine Gun /w unlimited ammo)<br></li>
<li>Darkness<br></li>
<li>Thermal Vision<br></li>
<li>Barrett Roll<br></li>
<li>Negative<br></li>
<li>Knife Runner<br></li>
<li>Turtle<br></li>
<li>Supermodel 1887<br></li>
<li>Fallout<br></li>
<li>Unlimited Ammo<br></li>
<li>Wallhack for 40 seconds<br></li>
<li>Double HP and roll again!<br></li>
<li>Godmode for 15 seconds<br></li>
<li>Bullseye<br></li>
<li>Fire in the...<br></li>
<li>Now you are retarded<br></li>
<li>AZUMOOB's Sub Setup<br></li>
<li>Tank<br></li>
<li>EMP<br></li>
<li>Morpheus<br></li>
<li>Unlimited Ammo and roll again!<br></li>
<li>COD4<br></li>
<li>Handgun of Crap<br></li>
<li>Extra Speed and roll again!<br></li>
<li>Walking AC130 25MM<br></li>
<li>Invisibility for 15 seconds*<br></li>
<li>Nightvision<br></li>
<li>No Ammo Reserve<br></li>
<li>Javelin<br></li>
<li>It's late<br></li>
<li>Deagle<br></li>
<li>Spas</li>
</ol><p></p>
<p><span>*Not working</span></p>
<p> </p>
<p></p>
<ul><li>
<span><span style="color:#FFFFFF;">Approved by Pigophone</span></span><span> on 08/10/12</span>
</li></ul><p></p>
]]></description><guid isPermaLink="false">7639</guid><pubDate>Fri, 17 Aug 2012 03:48:40 +0000</pubDate></item><item><title>Show Position</title><link>https://zloplay.ru/topic/14523-show-position/</link><description><![CDATA[
<p>Hey !</p>
<p>I made a little script to show your Position in the HUD. (You'll need that If you make Map-Edits)</p>
<p>To update your current position just enter "!update".</p>
<p>Screenshit, I mean Screenshot:</p>
<p><img src="http://validati0n.pf-control.de/mafscript.png" alt="mafscript.png" loading="lazy"></p>
<p> </p>
<p>Source:</p>
<p></p>
<pre class="ipsCode">
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using InfinityScript;

namespace Viewpos
{
   public class ViewPosMSG : BaseScript 
   {
       private HudElem pos1;
       public ViewPosMSG()
           : base()
       {

           PlayerConnected += showdaposition;
           PlayerDisconnected += dewrite;
       }

       void showdaposition(Entity obj)
       {

           pos1 = HudElem.CreateServerFontString("hudbig", 0.6f);
           pos1.SetPoint("BOTTOMCENTER", "BOTTOMCENTER", 0, 1);
           pos1.HideWhenInMenu = true;
           pos1.SetText("^0Your position: " + "^9X: " + obj.Origin.X + " ^5Y: " + obj.Origin.Y + " ^6Z: " + obj.Origin.Z);
       }

       public override void OnSay(Entity player, string name, string message)
       {
           if (message.StartsWith("!update"))
           {
               pos1.HideWhenInMenu = false; //You don't need that, but it's good to make mapedits
               pos1.SetText("^9X: " + player.Origin.X + " ^5Y: " + player.Origin.Y + " ^6Z: " + player.Origin.Z);
           }
       }

       void dewrite(Entity obj)
       {
           pos1.SetText("");
       }

}
}

</pre>
<div></div>
<p></p>
<p> </p>
<p>Credits:</p>
<p>[*] MegM@k (How to write in HUD) (<a href="http://fourdeltaone.net/viewtopic.php?f=39&amp;t=15845&amp;p=122567" rel="external nofollow">http://fourdeltaone.net/viewtopic.php?f=39&amp;t=15845&amp;p=122567</a>)</p>
<p>validati0n (all other)</p>
<p> </p>
<p>Download link: [attachment=0]Show Position - validati0n.rar[/attachment]</p>
]]></description><guid isPermaLink="false">14523</guid><pubDate>Sun, 14 Oct 2012 18:08:51 +0000</pubDate></item><item><title>NoMapThreshold</title><link>https://zloplay.ru/topic/17526-nomapthreshold/</link><description><![CDATA[
<p>This simple command/plugin removes the map threshold (4maps/120seconds). This is probably mainly useful for plugin developers. I saw someone asked for this so I release it.</p>
<p> </p>
<p>Source:</p>
<p></p>
<pre class="ipsCode">using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using InfinityScript;

namespace NoMapThreshold
{
   public class NMT : BaseScript
   {
       unsafe public NMT()
       {
           Log.Write(LogLevel.Info, "\n NoMapThreshold Plugin loaded\n Author: zxz0O0");

           *(byte*)0x04E521B = 0xEB;
       }
   }
}</pre>
<div></div>
<p></p>
<p> </p>
<p>NTA, did you forget to patch the second check? <img src="https://zloplay.ru/uploads/emoticons/default_biggrin.png" alt=":D" srcset="https://zloplay.ru/uploads/emoticons/biggrin@2x.png 2x" width="20" height="20" loading="lazy"></p>
]]></description><guid isPermaLink="false">17526</guid><pubDate>Sat, 24 Nov 2012 11:12:50 +0000</pubDate></item><item><title>Anti-Plant</title><link>https://zloplay.ru/topic/16174-anti-plant/</link><description><![CDATA[
<p>So this piece of code basically prevents user from planting the bomb in Search and Destroy, Sabotage or Demolition.</p>
<p>Which can come in handy with iSnipe for example.</p>
<p>(I have only tested it with Search and Destroy but I don't see why it would not work with the other gamemodes).</p>
<p> </p>
<p><span style="text-decoration:underline;"><strong>Code:</strong></span></p>
<p></p>
<pre class="ipsCode">            PlayerConnected += new Action(entity =&gt;
           {

               entity.OnInterval(500, (ent) =&gt;
                   {
                       if (entity.CurrentWeapon.Equals("briefcase_bomb_mp"))
                       {
                           entity.TakeWeapon("briefcase_bomb_mp");

                           //Switch back the the player's weapon here.....Kinda optional

                           entity.Call("iprintlnbold", "You are not allowed to plant the bomb!");
                       }
                       return true;
                   });</pre>
<div></div>
<p></p>
<p> </p>
<p>This is very simple but I haven't seen anyone use it and because it can come in handy I figured I'd post this.</p>
<p> </p>
<p><span style="text-decoration:underline;"><strong>Example Video:</strong></span></p>
<p></p>
<p> </p>
<p></p>
<ul><li>
<span><span style="color:#FFFFFF;">Approved by Pigophone</span></span><span> on 4/11/12</span>
</li></ul><p></p>
]]></description><guid isPermaLink="false">16174</guid><pubDate>Sat, 03 Nov 2012 22:56:15 +0000</pubDate></item><item><title>IRCBridge</title><link>https://zloplay.ru/topic/7232-ircbridge/</link><description><![CDATA[
<p>Trying out InfinityScript.</p>
<p> </p>
<p>Source: <a href="https://github.com/Deathmax/iw5m-scripts/tree/master/IRCBridge" rel="external nofollow">https://github.com/Deathmax/iw5m-script ... /IRCBridge</a></p>
<p> </p>
<p>(May be unstable)</p>
<p>Download:</p>
<p>[*]In-game chat is relayed to IRC.</p>
<p>[*]Killfeed is relayed to IRC.</p>
<p>[*]List scoreboard from IRC.</p>
<p></p>
<p> </p>
<p>TODO:</p>
<p></p>
<ul><li>More commands.<br /></li>
<li>Output IRC chat into game.<br /></li>
<li>Provide a (limited*) admin interface for channel ops.</li>
</ul><p></p>
<p><span>*Limited as InfinityScript has slightly less control compared to IW4M's AdminPlugin interface as it is basically GSC.</span></p>
<p> </p>
<p>Example:</p>
<p></p>
<pre class="ipsCode"> Deathmax is connecting to the game.
Deathmax has connected to the game.
!players
Player - Score - Death
Deathmax - 0 - 0
Deathmax: hmmm
Deathmax: is there by any chance  colour?
yay
colors
Deathmax(axis) suicided.
Deathmax is connecting to the game.
Deathmax has connected to the game.
Deathmax(allies) was killed by Deathmax(allies) with destructible_car.
!players
Player - Score - Death
Deathmax - 0 - 1
Deathmax is connecting to the game.
Deathmax has connected to the game.
Deathmax(allies) was killed by Deathmax(allies) with destructible_car.
Deathmax(allies) suicided.
!players
Player - Score - Kills - Assists - Death
Deathmax - 0 - 0 - 0 - 2
Deathmax: damn, its lonely here
Deathmax(allies) was killed by Deathmax(allies) with destructible_car.
Deathmax has disconnected from the game.</pre>
<div></div>
<p></p>
<p> </p>
<p></p>
<ul><li>
<span><span style="color:#FFFFFF;">Approved by Pigophone</span></span><span> on 08/10/12</span>
</li></ul><p></p>
]]></description><guid isPermaLink="false">7232</guid><pubDate>Sun, 12 Aug 2012 12:53:15 +0000</pubDate></item><item><title>walking ac130 Mod</title><link>https://zloplay.ru/topic/13235-walking-ac130-mod/</link><description><![CDATA[
<p><em><span style="text-decoration:underline;"><strong>feature :</strong></span></em></p>
<p></p>
<ul><li> - walking ac130 8-) </li></ul><p></p>
<p> </p>
<p><em><span style="text-decoration:underline;"><strong>Known bugs :</strong></span></em></p>
<p> - sometimes  you get no weapon at startup just goto <em><span style="text-decoration:underline;">Change class</span></em> then select Any <em><span style="text-decoration:underline;">Class</span></em> then you will get it to <strong>work</strong>  <img src="https://zloplay.ru/uploads/emoticons/default_wink.png" alt=";)" srcset="https://zloplay.ru/uploads/emoticons/wink@2x.png 2x" width="20" height="20" loading="lazy"></p>
<p> </p>
<p> </p>
<p> </p>
<p><img src="https://dl.dropbox.com/u/78998523/ac130.PNG" alt="ac130.PNG" loading="lazy"></p>
<p> </p>
<p>Source Code :!:  :</p>
<p> </p>
<p></p>
<pre class="ipsCode">using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using InfinityScript;

namespace ac130
{
   public class ac130 : BaseScript{
       private HudElem info;
       public List PlayerStop = new List();
       public bool Ammo(Entity player, int amount)
       {
           if (PlayerStop.Contains(player.GetField("name")))
               return false;
           var wep = player.CurrentWeapon;
           player.Call("setweaponammoclip", wep, amount);
           player.Call("setweaponammoclip", wep, amount, "left");
           player.Call("setweaponammoclip", wep, amount, "right");
           return true;
       }
       public ac130()
           : base()
       {

           PlayerConnected += new Action(entity =&gt;
           {
               info = HudElem.CreateServerFontString("hudbig", 0.8f);
               info.SetPoint("CENTER", "CENTER", 0, -150);
               info.HideWhenInMenu = true;
               info.SetText("^1ac130 Mod by ^2TheSir");


               entity.SpawnedPlayer += new Action(() =&gt;
               {

                   OnInterval(100, () =&gt; Ammo(entity, 99));
                  entity.TakeAllWeapons();
                   entity.GiveWeapon("ac130_25mm_mp");
                   entity.SwitchToWeaponImmediate("ac130_25mm_mp");
                   entity.Call("disableweaponpickup");

               });
           });
       }
   }
}
</pre>
<div></div>
<p></p>
<p> </p>
<p></p>
<ul><li>
<span><span style="color:#FFFFFF;">Approved by Pigophone</span></span><span> on 08/10/12</span>
</li></ul><p></p>
]]></description><guid isPermaLink="false">13235</guid><pubDate>Mon, 01 Oct 2012 08:15:55 +0000</pubDate></item></channel></rss>
