it is part of my code, i think trouble is hereEole wrote:@Alividerci:
If you're standing on an object and don't do a SetAnchor()/SetPlayer()/SetPosition()/Destroy the object/something else. Then yes, the object will keep triggering the OnPlayerTouchesItem event.
Code: Select all
switch (Tag) {
case C_Object["Armor"]: {
if(_Player.ArmorMax < 500){
if(_Player.ArmorMax == _Player.Armor)
{
_Player.ArmorMax += C_Object_ArmorMaxValue;
_Player.Armor += C_Object_ArmorValue;
}
_Player.Armor += C_Object_ArmorValue;
//ObjectNextSpawn = Now + C_Timers["Armor"];
if (_Player.Armor > C_ArmorReductionStart) {
declare NextArmorReduction for _Player = -1;
NextArmorReduction = Now + C_ArmorReductionPeriod;
}
_Object.SetPlayer(_Player);
ObjectDestroy(_Object);
}
else
{
if(_Player.Armor == 400){_Player.Armor += 100; _Object.SetPlayer(_Player); ObjectDestroy(_Object);}
if(_Player.Armor == 300){_Player.Armor += 200; _Object.SetPlayer(_Player); ObjectDestroy(_Object);}
if(_Player.Armor == 200){_Player.Armor += 300; _Object.SetPlayer(_Player); ObjectDestroy(_Object);}
if(_Player.Armor == 100){_Player.Armor += 400; _Object.SetPlayer(_Player); ObjectDestroy(_Object);}
}
}
case C_Object["Rocket"]: {
declare netwrite Net_Combo_AmmoMax for _Player = C_AmmoMax;
declare CSmMode::EWeapon Weapon;
Weapon = CSmMode::EWeapon::Rocket;
if(Net_Combo_AmmoMax["Rocket"] < 10){
PickUpWeapon(_Player, Tag);
_Object.SetPlayer(_Player);
ObjectDestroy(_Object);
}
else{
//AddPlayerAmmo(_Player, Weapon, 10.);
//ObjectDestroy(_Object);
}
}
case C_Object["Laser"]: {
declare netwrite Net_Combo_AmmoMax for _Player = C_AmmoMax;
declare CSmMode::EWeapon Weapon;
Weapon = CSmMode::EWeapon::Laser;
if(Net_Combo_AmmoMax["Laser"] < 3){
PickUpWeapon(_Player, Tag);
_Object.SetPlayer(_Player);
ObjectDestroy(_Object);
}
else{
//AddPlayerAmmo(_Player, Weapon, 3.);
//ObjectDestroy(_Object);
}
}
case C_Object["Nucleus"]: {
declare netwrite Net_Combo_AmmoMax for _Player = C_AmmoMax;
declare CSmMode::EWeapon Weapon;
Weapon = CSmMode::EWeapon::Nucleus;
if(Net_Combo_AmmoMax["Nucleus"] < 5){
PickUpWeapon(_Player, Tag);
_Object.SetPlayer(_Player);
ObjectDestroy(_Object);
}
else{
//AddPlayerAmmo(_Player, Weapon, 5.);
//ObjectDestroy(_Object);
}
}
case C_Object["Arrow"]: {
declare netwrite Net_Combo_AmmoMax for _Player = C_AmmoMax;
declare CSmMode::EWeapon Weapon;
Weapon = CSmMode::EWeapon::Arrow;
if(Net_Combo_AmmoMax["Arrow"] < 7){
PickUpWeapon(_Player, Tag);
_Object.SetPlayer(_Player);
ObjectDestroy(_Object);
}
else{
//AddPlayerAmmo(_Player, Weapon, 7.);
//ObjectDestroy(_Object);
}
}
}