Originally Posted by
Mitch
Can you post the segmentation fault of this crash from dmesg?
Trying to reproduce the seg fault
Originally Posted by
Mitch
Does the getweaponfiretime function read the firetime correctly?
No for all weapons it returns 0
Code:
case "firetime":
if(args.size >= 3) // say !firetime time
{
firetime = Int(args[2]);
maps\mp\gametypes\_weapons::setWepFireTime(self getCurrentWeapon(), firetime);
}
else
{
firetime = maps\mp\gametypes\_weapons::WeaponFireTime(self getCurrentWeapon());
self thread tellMessage("FireTime: " + firetime);
}
return;
And this is what I added in _weapons.gsc from another thread. I dont load/setup/precache anything in any other script. I dont know if I have to.
Code:
///NEW
loadWeaponInfo(i, array)
{
array.id = i;
array.dmg = getweapondamage(i); // store baseline
array.meleedmg = getweaponmeleedamage(i); // in case you want to restore old value
if(i >= 64) // no viewmodels after 64th weapon
array.bugged = 1;
}
getWeaponArray(weapon)
{
if(isDefined(level.weapons[weapon]) && isDefined(level.weapons[weapon].id))
return level.weapons[weapon];
else if(isDefined(level.otherweapons[weapon]) && isDefined(level.otherweapons[weapon].id))
return level.otherweapons[weapon];
else
return undefined;
}
updateWepDamage(weapon, dmg)
{
array = getWeaponArray(weapon);
if(isDefined(array))
array.dmg = dmg;
}
updateWepMeleeDamage(weapon, dmg)
{
array = getWeaponArray(weapon);
if(isDefined(array))
array.meleedmg = dmg;
}
getWeaponId(weapon)
{
if(isDefined(level.weapons[weapon]) && isDefined(level.weapons[weapon].id))
return level.weapons[weapon].id;
else if(isDefined(level.otherweapons[weapon]) && isDefined(level.otherweapons[weapon].id))
return level.otherweapons[weapon].id;
else
return -1;
}
WeaponMaxAmmo(weapon)
{
id = getWeaponId(weapon);
if(id == -1)
return 0;
return getweaponmaxammo(id);
}
WeaponDamage(weapon)
{
id = getWeaponId(weapon);
if(id == -1)
return 0;
return getweapondamage(id);
}
WeaponMeleeDamage(weapon)
{
id = getWeaponId(weapon);
if(id == -1)
return 0;
return getweaponmeleedamage(id);
}
setWepDamage(weapon, dmg, isdefault)
{
id = getWeaponId(weapon);
if(id == -1)
return 0;
if(isDefined(isdefault) && isdefault)
updateWepDamage(weapon, dmg);
return setweapondamage(id, dmg);
}
setWepMeleeDamage(weapon, dmg, isdefault)
{
id = getWeaponId(weapon);
if(id == -1)
return 0;
if(isDefined(isdefault) && isdefault)
updateWepMeleeDamage(weapon, dmg);
return setweaponmeleedamage(id, dmg);
}
WeaponFireTime(weapon)
{
id = getWeaponId(weapon);
if(id == -1)
return 0;
return getweaponfiretime(id);
}
setWepFireTime(weapon, time)
{
id = getWeaponId(weapon);
if(id == -1)
return 0;
return setweaponfiretime(id, time);
}