Code: Select all
/** Pick up item
*
* @param _Player The player who picked up the item
* @param _Item The item picked up by the player
*/
Void PickUpItem(CSmPlayer _Player, CSmItem _Item) {
if (_Player == Null || _Item == Null) return;
declare Tag for _Item = "";
declare AnchorId for _Item = NullId;
if (!ItemAnchors.existskey(AnchorId)) return;
declare ItemAnchor <=> ItemAnchors[AnchorId];
declare ItemSpawned for ItemAnchor = False;
declare ItemNextSpawn for ItemAnchor = Now;
ItemSpawned = False;
if (C_Timers.existskey(Tag)) ItemNextSpawn = Now + C_Timers[Tag];
switch (Tag) {
case C_Item["Armor"]: {
_Player.ArmorMax += C_Item_ArmorMaxValue;
_Player.Armor += C_Item_ArmorValue;
//ItemNextSpawn = Now + C_Timers["Armor"];
if (_Player.Armor > C_ArmorReductionStart) {
declare NextArmorReduction for _Player = -1;
NextArmorReduction = Now + C_ArmorReductionPeriod;
}
}
case C_Item["Rocket"]: {
PickUpWeapon(_Player, Tag);
}
case C_Item["Laser"]: {
PickUpWeapon(_Player, Tag);
}
case C_Item["Nucleus"]: {
PickUpWeapon(_Player, Tag);
}
case C_Item["Arrow"]: {
PickUpWeapon(_Player, Tag);
}
}
//it is off bluescreen but it works only for armor(not weapons)
//AttachItemToPlayer(_Item, _Player);
DestroyItem(_Item);
}
Code: Select all
SetPlayerAmmoMax(_Player, Weapon, AmmoMax[_Weapon]);