07-11-2012, 19:49
If you have never heard before about the MW3 Server Addon you can look here for a more detailed description of the features: http://www.itsmods.com/forum/Thread-Rele...addon.html
Current Version:
02.09.2012: v1.414
Requirements:
MW3 Dedicated Server Version > 1.4.382
.NET Framework 3.0
VCRedist2008
VCRedist2010
Installation:
Extract the contents of 'Server Addon' folder in zip in your MW3 Dedicated Server root folder and start the MW3 Server as usual. If it's too hard you may look at this tutorial http://www.itsmods.com/forum/Thread-How-...noobs.html
Thanks @JariZ
OldRotation:
If you do not like the standard random rotation of MW3 you can use old cod4 style rotation. To do this you simply add the following entries in your sv_config under [Server]
Code:
[Server]
OldRotation=1
//Enable cod4-style rotation
OldRotationVal=playlist ffa_default map mp_dome playlist sd_default map mp_alpha
//Rotation, change to your desire
Changelog:
1.410 (Click to View)
- Added signature scans so it should work on future versions without the need of updating
- Fixed a bug in the ClientNum property resulting in wrong ServerClient
- Added many new stuff to the API
- Fixed bug of ServerClient.Other.Velocity.Z value returning the Y value
- Fixed a bug in the ClientNum property resulting in wrong ServerClient
- Added many new stuff to the API
- Fixed bug of ServerClient.Other.Velocity.Z value returning the Y value
1.411 (Click to View)
- Fixed a bug in OnCheckBan (thanks @hillbilly for the report)
- Fixed ServerClient.Other.isADS property
- Added some more stuff to the API
- Fixed ServerClient.Other.isADS property
- Added some more stuff to the API
1.412 (Click to View)
- Added @JariZ's weaponbuilder (thanks @JariZ)
- Modified OnPlayerDamaged (parameter DamageMod and HitLocation), OnSay (parameter Teamchat) and OnVote (parameter OptionalArgument) events
- Added SayAll and SayTeam function
- Added SetHitLocTable and GetHitLocTable function
- Fixed OldRotation and custom cmds
- Added some more stuff to the API
- Modified OnPlayerDamaged (parameter DamageMod and HitLocation), OnSay (parameter Teamchat) and OnVote (parameter OptionalArgument) events
- Added SayAll and SayTeam function
- Added SetHitLocTable and GetHitLocTable function
- Fixed OldRotation and custom cmds
- Added some more stuff to the API
1.413 (Click to View)
- Added option to remove map rotation threshold
- Fixed chat bug
- Fixed chat bug
1.414 (Click to View)
- Added Client.Other.SwitchToWeapon (proper weapon switch)
- Added new event OnPrecache (use for precaching shader)
- Added PrecacheShader
- Added KillPlayer
- Added Suicide
- Added Client.Other.EquipementType and Client.Other.OffhandType and other stuff
- Increased OldRotationVal buffer to 1024bytes
- Removed console: part from timed messages
- Added HudElem.Sorting (for overlaying hudelements)
- Added GetWeaponClipSize
- Added new event OnPrecache (use for precaching shader)
- Added PrecacheShader
- Added KillPlayer
- Added Suicide
- Added Client.Other.EquipementType and Client.Other.OffhandType and other stuff
- Increased OldRotationVal buffer to 1024bytes
- Removed console: part from timed messages
- Added HudElem.Sorting (for overlaying hudelements)
- Added GetWeaponClipSize
Bugs/Problems:
If you encounter bugs or problems please do not post in this thread. Post them in this thread: http://www.itsmods.com/forum/Thread-Gene...hread.html
API Documentation:
http://addon.teamsdk.com/ (thanks @narkos)
API Changes: (Click to View)
General
ServerClient struct
ServerClient.Stats struct
ServerClient.Other struct
ServerClient.Ammo struct
ServerClient.Other.UAV struct
ServerClient.Other.Vision struct
Entity struct
HudElem struct
HudElem.Color struct
Events
CSHARP Code
- int Entity_World //Integer holding the EntityNum of 'World'
- int AddonFrameInterval //Integer holding the interval of OnAddonFrame in milliseconds
- Entity SpawnEntity (String Entitytype, String Model, Vector Origin) //Spawns an entity and returns it
- Entity GetEntity(int EntityNum) //Returns an entity based on the EntityNum
- HudElem CreateNewHudElem() //Creates a HudElement and returns it
- HudElem GetHudElement(int ID) //Returns a HudElement based on the HudElementNum
- void SayAll(ServerClient client, String Message) //chat a message, OnSay event will be triggered
- void SayTeam(ServerClient client, String Message) //chat a message to the team, OnSay event will be triggered
- void SetHitLocTable(HitLocations hitloc, float multi) //modify HitLocTable multi
- float GetHitLocTable(HitLocations hitloc) //get the current HitLocation multi
- int GetWeapon(String Weapon, Attachments Att1, Attachments Att2, Attachments Att3, Camos Camo, Reticles Reticle) //Return weapon ID
- int GetWeaponClipSize(int WeaponID) //Returns clip size of a weapon
- void PlayerSuicide(int ClientNum) //Suicide player
- void KillPlayer(int AttackerClientNum, int VictimClientNum, int WeaponID, string sMOD) //Kill a player (sMOD can be string.Empty)
ServerClient struct
CSHARP Code
- ConnectionStates ServerClient.ConnectionState //ConnectionStates type holding the players connection state
- Stances ServerClient.Stance //Stances type holding the players current Stance
- bool ServerClient.Visible //Boolean holding the player's visibility (GSC: hide() and show())
ServerClient.Stats struct
CSHARP Code
- int ServerClient.Stats.Shots //Integer holding how many shots a player did, resets on death
ServerClient.Other struct
CSHARP Code
- bool ServerClient.Other.WeaponChangeDisabled //Boolean holding if player can change weapon
- bool ServerClient.Other.EquipementDisabled //Boolean holding if the player can use equipement
- bool ServerClient.Other.WeaponsEnabled //Boolean holding if the player can use weapons
- void ServerClient.Other.SwitchToWeapon(int WeaponID) //Switch player's weapon
- EquipementTypes ServerClient.Other.EquipementType //Type of equipement
- EquipementTypes ServerClient.Other.OffhandType //Type of offhand weapon
- void ServerClient.Other.ThrowGrenade() //Make the client throw a grenade (note: does not affect grenade ammo)
- bool ServerClient.Other.isClimbing //Boolean holding if the client is on a ladder
- ServerClient.Other.UAV //Struct holding UAV settings, do not use 'ServerClient.Other.UAVEnabled' anymore, it's obsolete
- ServerClient.Other.Vision //Struct holding vision settings
- bool ServerClient.Other.ControlsFrozen //Boolean if the player is frozen, do not use function 'FreezeControls()' anymore, it's obsolete
- bool ServerClient.Other.NoClip //Boolean if the player has noclip enabled, do not use function 'EnableNoclip()' anymore, it's obsolete
- bool ServerClient.Other.AllowJump //Boolean holding if the player is able to jump
- bool ServerClient.Other.isADS //Boolean holding if the player is aiming down sight
- bool ServerClient.Other.ButtonPressed(Buttons button) //Returns true or false if the player is pressing the button
- bool ServerClient.Other.isAlive //Boolean holding if the player is alive
- bool ServerClient.Other.FakeLag //Boolean holding if fake lag is enabled for the client
- int ServerClient.Other.MaxHealth //Integer holding the maximum health of a player
- int ServerClient.Other.FallDamagePercent //Integer holding the percent of falldamage that is applied (default 100)
- bool ServerClient.Other.CurrentWeaponAkimbo //Boolean holding if the current weapon is akimbo (fix for non-working weapons)
- int ServerClient.Other.WeaponSlot3 //Integer holding the weapon ID in slot 3
- bool ServerClient.Other.WeaponSlot3Akimbo //Boolean holding if weapon in slot 3 is akimbo
- int ServerClient.Other.WeaponSlot4 //Integer holding the weapon ID in slot 4
- bool ServerClient.Other.WeaponSlot4Akimbo //Boolean holding if weapon in slot 4 is akimbo
- int ServerClient.Other.WeaponSlot5 //Integer holding the weapon ID in slot 5
- bool ServerClient.Other.WeaponSlot5Akimbo //Boolean holding if weapon in slot 5 is akimbo
- int ServerClient.Other.WeaponSlot6 //Integer holding the weapon ID in slot 6
- bool ServerClient.Other.WeaponSlot6Akimbo //Boolean holding if weapon in slot 6 is akimbo
ServerClient.Ammo struct
CSHARP Code
- int ServerClient.Ammo.WeaponSlot3Ammo //Integer holding the ammo in slot 3
- int ServerClient.Ammo.WeaponSlot3AmmoClip //Integer holding the ammo clip in slot 3
- int ServerClient.Ammo.WeaponSlot3AkimboAmmo //Integer holding the akimbo ammo in slot 3
- int ServerClient.Ammo.WeaponSlot4Ammo //Integer holding the ammo in slot 4
- int ServerClient.Ammo.WeaponSlot4AmmoClip //Integer holding the ammo clip in slot 4
- int ServerClient.Ammo.WeaponSlot4AkimboAmmo //Integer holding the akimbo ammo in slot 4
- int ServerClient.Ammo.WeaponSlot5Ammo //Integer holding the ammo in slot 5
- int ServerClient.Ammo.WeaponSlot5AmmoClip //Integer holding the ammo clip in slot 5
- int ServerClient.Ammo.WeaponSlot5AkimboAmmo //Integer holding the akimbo ammo in slot 5
- int ServerClient.Ammo.WeaponSlot6Ammo //Integer holding the ammo in slot 6
- int ServerClient.Ammo.WeaponSlot6AmmoClip //Integer holding the ammo clip in slot 6
- int ServerClient.Ammo.WeaponSlot6AkimboAmmo //Integer holding the akimbo ammo in slot 6
ServerClient.Other.UAV struct
CSHARP Code
- bool ServerClient.Other.UAV.Enabled //Boolean holding if player has UAV
- bool ServerClient.Other.UAV.ShowDirection //Boolean holding if UAV shows enemy player direction
- bool ServerClient.Other.UAV.FastUpdate //Boolean holding if UAV updates fast
ServerClient.Other.Vision struct
CSHARP Code
- void ServerClient.Other.Vision.VisionSetNaked(string vision, string TransitionTime) //Function to change vision, TransitionTime is milliseconds as string
- bool ServerClient.Other.Vision.EMPView //Boolean holding EMP view is enabled
- bool ServerClient.Other.Vision.RadiationView //Boolean holding if radiation view is enabled (black/white, like in MW2 Afghan when you go out of map)
Entity struct
CSHARP Code
- int Entity.EntityNum //Integer holding the entity's ID
- void Entity.SetModel(String model) //Function to set the model of an entity
- bool Entity.Visible //Boolean holding the entity's visibility
- void Entity.Delete() //Function to delete the entity
- float Entity.OriginX //Float holding the entity's X origin
- float Entity.OriginY //Float holding the entity's Y origin
- float Entity.OriginZ //Float holding the entity's Z origin
HudElem struct
CSHARP Code
- float HudElem.Sorting //float value for sorting the hudelements (use for overlaying hudelements)
- void HudElem.SetString(string text) //Set a text to the HudElement, note: HudElementType must be Text
- void HudElem.SetLabel(string text) //Set a label to the HudElement (HudElementType does not matter)
- int HudElem.IconWidth //Set the width of the icon
- int HudElem.IconHeight //Set the height of the icon
- float HudElem.Value //Set a value to the HudElement, note: HudElementType must be Value (many GSC coders know this type)
- int HudElem.HudElementNum //Integer holding the HudElement's ID
- HudElementTypes HudElem.Type //HudElementTypes type holding the type of the HudElement
- Teams HudElem.Team //Teams type holding the HudElement's team
- Fonts HudElem.Font //Fonts type holding the HudElement's font
- float HudElem.FontScale //float holding the font scale
- bool HudElem.HideInMenu //bool if HudElem should hide when in menu
- byte HudElem.PointType //byte holding the point type
- byte HudElem.AlignOrg //byte holding the alignment from the origin
- void HudElem.SetIcon(String icon) //Function to set an icon to the HudElement
- int HudElem.ShowToEnt //Integer holding to which entity the HudElem is shown (Entity_World for all)
- float HudElem.OriginX //Float holding the HudElement's X origin
- float HudElem.OriginY //Float holding the HudElement's Y origin
- float HudElem.OriginZ //Float holding the HudElement's Z origin
- HudElem.Color //Struct holding the HudElement's color
HudElem.Color struct
CSHARP Code
- byte HudElem.Color.R
- byte HudElem.Color.G
- byte HudElem.Color.B
- byte HudElem.Color.A
- //Byte holding the HudElement's value for Red-Green-Blue-Alpha
- byte HudElem.Color.GlowR
- byte HudElem.Color.GlowG
- byte HudElem.Color.GlowB
- byte HudElem.Color.GlowA
- //Byte holding the HudElement's glow value for Red-Green-Blue-Alpha
Events
CSHARP Code
- OnPrecache() //Use this event to precache shaders
- OnPlayerDamaged(ServerClient Attacker, ServerClient Victim, String Weapon, Int32 Damage, String DamageMod, HitLocations HitLocation)
- OnSay(String Message, ServerClient Client, bool Teamchat)
- OnVote(String Vote, ServerClient Client, String OptionalArg)//Optional argument: holds argument for vote if needed (ex. player name when votekicking)
- //Note, for compatibility reason old events are still integrated. Do not use these obsolete events and update your plugins to the new events. The old events will eventually be deleted and your plugin will break.
Examples: (Click to View)
Spawn an entity:
This will spawn a care package model (unsolid) at the location (321,344,648).
Creating/using HudElements:
For an example on how to create/use HudElements please refer to this example plugin:
http://www.itsmods.com/forum/Thread-Rele...verAd.html
CSHARP Code
- Entity ent = SpawnEntity ("script_model", "com_plasticcase_trap_friendly", new Vector(321, 344, 648));
This will spawn a care package model (unsolid) at the location (321,344,648).
Creating/using HudElements:
For an example on how to create/use HudElements please refer to this example plugin:
http://www.itsmods.com/forum/Thread-Rele...verAd.html
I also planned to include support for TeknoMW3 but sadly most functions changed from 1.4 to 1.5+ so versions < 1.5 are not supported.
Credits:
@Nukem - main creator
agri
R4z8r
CoMPMStR
Chod
s0beit
AlterIW (@NTAuthority)
@zxz0O0 - updating and adding new stuff to the addon
@SuperNovaAO - helping with sigs
@Cyanide - 'owner' of code
@master131
@litgar - testing new version
@estebespt - help testing
@JariZ - weapon builder
Donate:
If you want to support my work you can donate to me
Donations are always appreciated.
Thank you.
Download mirror:
http://www.share-online.biz/dl/RXBW9Q9MMN