немного подразобрался в LUA. ТОлько вот скажите: где в моём коде ошибка?(правда, код не совсем мой, а за основу взят fruitgun с фэйспанча)
_OpenScript( "includes/vector3.lua" );
myindex = 0;
owner = 0;
currenttime = 0;
function onInit()
_swepsetsound( MyIndex, "single_shot", "Weapon_elite.Single");
fstuff = {};
fstuff[0] = "models/props_lab/harddrive01.mdl";
fstuff[1] = "models/props_lab/monitor01a.mdl";
fstuff[2] = "models/props_c17/consolebox03a.mdl";
fstuff[3] = "models/props_lab/citizenradio.mdl";
fstuff[4] = "models/props_c17/computer01_keyboard.mdl";
fstuff[5] = "models/props_c17/tv_monitor01.mdl";
firing = "models/props_c17/tv_monitor01.mdl";
end
function onThink()
end
function onPrimaryAttack()
if (_PlayerInfo(Owner, "alive") == false) then return; end
local ban = _EntCreate( "prop_physics" );
_EntPrecacheModel(firing);
_EntSetModel(ban, firing);
_EntSetKeyValue(ban, "onworldimpact", "stick");
_EntSetPos(ban, vecAdd(_PlayerGetShootPos(Owner),vector3(-15,0,0)));
_EntSetAng(ban, _PlayerGetShootAng(Owner));
local power = 15000;
local fireforce = vecMul(_PlayerGetShootAng(Owner), vector3(power, power, power));
_EntSpawn(ban);
_PhysApplyForce(ban, fireforce);
_SWEPUseAmmo(MyIndex, 0, 1);
end
function onSecondaryAttack()
if (firing == fstuff[0]) then firing = fstuff[1]; end
if (firing == fstuff[1]) then firing = fstuff[2]; end
if (firing == fstuff[2]) then firing = fstuff[3]; end
if (firing == fstuff[3]) then firing = fstuff[4]; end
if (firing == fstuff[4]) then firing = fstuff[5]; end
if (firing == fstuff[5]) then firing = fstuff[0]; end
end
Я знаю только то, что это из-за переменных. Потому что если переменную firing объявить в процедуре OnPrimaryAttack, и присвоить ей адрес, то будет работать. Есс-но, боеприпасы заменяться не будут
Настройки оружия(далее по файлу скрипта) не привожу, тк там всё в порядке.