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
- 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
- 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
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
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
Code:
int ServerClient.Stats.Shots //Integer holding how many shots a player did, resets on death
ServerClient.Other struct
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
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
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
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
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
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
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
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.
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.
(07-11-2012, 20:04)zxz0O0 Wrote: Oh and if someone has problems understanding the new stuff in the API, feel free to ask for an example and I will make one and add it the OP.
(07-11-2012, 20:04)zxz0O0 Wrote: Oh and if someone has problems understanding the new stuff in the API, feel free to ask for an example and I will make one and add it the OP.