Page 1 of 2
Weapon limiter conflict
Posted: Thu Jan 18, 2007 4:21 am
by Caboom
We run a weapon limiter on our server and when ever I load my new custom map the weapon limiter does not work. Does anyone know what would cause this or do you know if I need to add a particular line to the script? Thank you for your help!
Posted: Thu Jan 18, 2007 5:43 am
by bdbodger
You probably have to add a line . some scripts are added using the dm_precache scirpt or are just called in the level scirpt
Posted: Thu Jan 18, 2007 5:53 am
by lizardkid
to find out what the line IS, you could either look in the .pk3 for the mod and find which files were modified (and how), or contact the maker.
most likely you'll find the keyword thread or exec in the scripts.
Posted: Fri Jan 19, 2007 12:38 am
by Caboom
Ok will do, I'll give it a look. Thanks guys!
Posted: Fri Jan 19, 2007 3:50 am
by Caboom
One thing I noticed is that other custom maps work fine on our server, mine is the only one the weapon limiter. Also, what does this line do "exec global/door_locked.scr::lock?"
Here is my scr:
// Allinone
// ARCHITECTURE: Caboom
// SCRIPTING: Caboom
main:
// set scoreboard messages
setcvar "g_obj_alliedtext1" "Allinone By Caboom"
setcvar "g_obj_alliedtext2" ""
setcvar "g_obj_alliedtext3" ""
setcvar "g_obj_axistext1" "Download At"
setcvar "g_obj_axistext2" "www.5307thrangers.com"
setcvar "g_obj_axistext3" ""
setcvar "g_scoreboardpic" "none"
level waitTill prespawn
//*** Precache Dm Stuff
exec global/DMprecache.scr
level.script = maps/dm/allinone.scr
exec global/ambient.scr mohdm4
level waittill spawn
end
Posted: Fri Jan 19, 2007 4:56 am
by lizardkid
global/door_locked.scr::lock is a command to set some doors that you specify to "locked". It does the same thing as the command "lock", and it doesn't allow you to unlock them. There's a tutorial on how to use it, i believe.
However, that isn't the line you're looking for. Did you check in the .pk3 the mod came in for the scripts there?
allinone
Posted: Fri Jan 19, 2007 7:06 am
by tltrude
I downloaded your zip file from
http://www.5307thrangers.com (from the Spearhead download section) and noticed you included two file that don't need to be in it.
allinone.lin -- is only used by the editor to show where leaks in the skybox are (file/pointfile).
Thumbs.db -- is only used by Windows to display a large number of image files as thumbnail images.
They are not the cause of your problem, but though you might like to know. A leak in the skybox can cause many problems.
Posted: Fri Jan 19, 2007 11:05 pm
by Caboom
Hey thanks a bunch, I'll remove them (I was wondering about them). This is the script I found, very long:
main:
level waittill spawn
level.Limit = int(getcvar(Limiter_On))
level.ParaMod = int(getcvar(Limiter_ParaMod))
if (level.Limit == 1) {
level.SniperLimit = int(getcvar(SniperLimit))
level.MGLimit = int(getcvar(MGLimit))
level.SMGLimit = int(getcvar(SMGLimit))
level.RocketLimit = int(getcvar(RocketLimit))
level.ShotgunLimit = int(getcvar(ShotgunLimit))
thread WepLimiter
}
end
InitializeArrays:
level.AlliedSniperCount = 0
level.AxisSniperCount = 0
for(local.n=1;(local.n <= level.SniperLimit) ; local.n++) {
level.AlliedSniper[local.n] = -1
level.AxisSniper[local.n] = -1
}
level.AlliedMGCount = 0
level.AxisMGCount = 0
for(local.n=1;(local.n <= level.MGLimit) ; local.n++) {
level.AlliedMG[local.n] = -1
level.AxisMG[local.n] = -1
}
level.AlliedSMGCount = 0
level.AxisSMGCount = 0
for(local.n=1;(local.n <= level.SMGLimit) ; local.n++) {
level.AlliedSMG[local.n] = -1
level.AxisSMG[local.n] = -1
}
level.AlliedRocketCount = 0
level.AxisRocketCount = 0
for(local.n=1;(local.n <= level.RocketLimit) ; local.n++) {
level.AlliedRocket[local.n] = -1
level.AxisRocket[local.n] = -1
}
level.AlliedShotgunCount = 0
level.AxisShotgunCount = 0
for(local.n=1;(local.n <= level.ShotgunLimit) ; local.n++) {
level.AlliedShotgun[local.n] = -1
level.AxisShotgun[local.n] = -1
}
end
OutOfGameCheck:
for(local.n=1;(local.n <= level.SniperLimit) ; local.n++) {
if(level.AxisSniper[local.n] != -1) {
local.found = 0
for(local.i=1;local.i <= $player.size ; local.i++) {
local.player = $player[local.i]
if((local.player.entnum == level.AxisSniper[local.n]) && (local.player.dmteam == "axis")) {
local.found = 1
}
}
if(local.found != 1) {
level.AxisSniper[local.n] = -1
level.AxisSniperCount = ( level.AxisSniperCount - 1 )
iprintln ("Axis sniper " + local.n + " now available.")
}
}
if(level.AlliedSniper[local.n] != -1) {
local.found = 0
for(local.i=1;local.i <= $player.size ; local.i++) {
local.player = $player[local.i]
if((local.player.entnum == level.AlliedSniper[local.n]) && (local.player.dmteam == "allies")) {
local.found = 1
}
}
if(local.found != 1) {
level.AlliedSniper[local.n] = -1
level.AlliedSniperCount = ( level.AlliedSniperCount - 1 )
iprintln ("Allied sniper " + local.n + " now available.")
}
}
}
for(local.n=1;(local.n <= level.MGLimit) ; local.n++) {
if(level.AxisMG[local.n] != -1) {
local.found = 0
for(local.i=1;local.i <= $player.size ; local.i++) {
local.player = $player[local.i]
if((local.player.entnum == level.AxisMG[local.n]) && (local.player.dmteam == "axis")) {
local.found = 1
}
}
if(local.found != 1) {
level.AxisMG[local.n] = -1
level.AxisMGCount = ( level.AxisMGCount - 1 )
iprintln ("Axis MG " + local.n + " now available.")
}
}
if(level.AlliedMG[local.n] != -1) {
local.found = 0
for(local.i=1;local.i <= $player.size ; local.i++) {
local.player = $player[local.i]
if((local.player.entnum == level.AlliedMG[local.n]) && (local.player.dmteam == "allies")) {
local.found = 1
}
}
if(local.found != 1) {
level.AlliedMG[local.n] = -1
level.AlliedMGCount = ( level.AlliedMGCount - 1 )
iprintln ("Allied MG " + local.n + " now available.")
}
}
}
for(local.n=1;(local.n <= level.SMGLimit) ; local.n++) {
if(level.AxisSMG[local.n] != -1) {
local.found = 0
for(local.i=1;local.i <= $player.size ; local.i++) {
local.player = $player[local.i]
if((local.player.entnum == level.AxisSMG[local.n]) && (local.player.dmteam == "axis")) {
local.found = 1
}
}
if(local.found != 1) {
level.AxisSMG[local.n] = -1
level.AxisSMGCount = ( level.AxisSMGCount - 1 )
iprintln ("Axis SMG " + local.n + " now available.")
}
}
if(level.AlliedSMG[local.n] != -1) {
local.found = 0
for(local.i=1;local.i <= $player.size ; local.i++) {
local.player = $player[local.i]
if((local.player.entnum == level.AlliedSMG[local.n]) && (local.player.dmteam == "allies")) {
local.found = 1
}
}
if(local.found != 1) {
level.AlliedSMG[local.n] = -1
level.AlliedSMGCount = ( level.AlliedSMGCount - 1 )
iprintln ("Allied SMG " + local.n + " now available.")
}
}
}
for(local.n=1;(local.n <= level.RocketLimit) ; local.n++) {
if(level.AxisRocket[local.n] != -1) {
local.found = 0
for(local.i=1;local.i <= $player.size ; local.i++) {
local.player = $player[local.i]
if((local.player.entnum == level.AxisRocket[local.n]) && (local.player.dmteam == "axis")) {
local.found = 1
}
}
if(local.found != 1) {
level.AxisRocket[local.n] = -1
level.AxisRocketCount = ( level.AxisRocketCount - 1 )
if (level.ParaMod == 1) {
iprintln ("Axis FG42 " + local.n + " now available.")
}
else
{
iprintln ("Axis Rocket " + local.n + " now available.")
}
}
}
if(level.AlliedRocket[local.n] != -1) {
local.found = 0
for(local.i=1;local.i <= $player.size ; local.i++) {
local.player = $player[local.i]
if((local.player.entnum == level.AlliedRocket[local.n]) && (local.player.dmteam == "allies")) {
local.found = 1
}
}
if(local.found != 1) {
level.AlliedRocket[local.n] = -1
level.AlliedRocketCount = ( level.AlliedRocketCount - 1 )
if (level.ParaMod == 1) {
iprintln ("Allied M1 Carbine " + local.n + " now available.")
}
else
{
iprintln ("Allied Rocket " + local.n + " now available.")
}
}
}
}
for(local.n=1;(local.n <= level.ShotgunLimit) ; local.n++) {
if(level.AxisShotgun[local.n] != -1) {
local.found = 0
for(local.i=1;local.i <= $player.size ; local.i++) {
local.player = $player[local.i]
if((local.player.entnum == level.AxisShotgun[local.n]) && (local.player.dmteam == "axis")) {
local.found = 1
}
}
if(local.found != 1) {
level.AxisShotgun[local.n] = -1
level.AxisShotgunCount = ( level.AxisShotgunCount - 1 )
iprintln ("Axis Boomstick " + local.n + " now available.")
}
}
if(level.AlliedShotgun[local.n] != -1) {
local.found = 0
for(local.i=1;local.i <= $player.size ; local.i++) {
local.player = $player[local.i]
if((local.player.entnum == level.AlliedShotgun[local.n]) && (local.player.dmteam == "allies")) {
local.found = 1
}
}
if(local.found != 1) {
level.AlliedShotgun[local.n] = -1
level.AlliedShotgunCount = ( level.AlliedShotgunCount - 1 )
iprintln ("Allied Shotgun " + local.n + " now available.")
}
}
}
end
WepLimiter:
waitthread InitializeArrays
while(1)
{
waitthread OutOfGameCheck
for(local.i=1;local.i <player> 0 && !$player[local.i].checked && local.player.dmteam!="spectator" && local.weap.model) {
$player[local.i].checked = 1
$player[local.i].checkteam = local.player.dmteam
switch( local.weap.model )
{
case "models/weapons/svt_rifle.tik":
local.weap.istype = ASN
break
case "models/weapons/springfield.tik":
local.weap.istype = ASN
break
case "models/weapons/uk_w_l42a1.tik":
local.weap.istype = ASN
break
case "models/weapons/kar98sniper.tik":
local.weap.istype = XSN
break
case "models/weapons/g43.tik":
local.weap.istype = XSN
break
case "models/weapons/m1_garand.tik":
local.weap.istype = AR
break
case "models/weapons/enfield.tik":
local.weap.istype = AR
break
case "models/weapons/delisle.tik":
local.weap.istype = AR
break
case "models/weapons/mosin_nagant_rifle.tik":
local.weap.istype = AR
break
case "models/weapons/it_w_carcano.tik":
local.weap.istype = XR
break
case "models/weapons/kar98.tik":
local.weap.istype = XR
break
case "models/weapons/thompsonsmg.tik":
local.weap.istype = ASMG
break
case "models/weapons/sten.tik":
local.weap.istype = ASMG
break
case "models/weapons/ppsh_smg.tik":
local.weap.istype = ASMG
break
case "models/weapons/mp40.tik":
local.weap.istype = XSMG
break
case "models/weapons/it_w_moschetto.tik":
local.weap.istype = XSMG
break
case "models/weapons/bar.tik":
local.weap.istype = AMG
break
case "models/weapons/uk_w_vickers.tik":
local.weap.istype = AMG
break
case "models/weapons/mp44.tik":
local.weap.istype = XMG
break
case "models/weapons/it_w_breda.tik":
local.weap.istype = XMG
break
case "models/weapons/bazooka.tik":
local.weap.istype = ARK
break
case "models/weapons/uk_w_piat.tik":
local.weap.istype = ARK
break
case "models/weapons/panzerschreck.tik":
local.weap.istype = XRK
break
case "models/weapons/shotgun.tik":
local.weap.istype = ASG
break
case "models/weapons/kar98_mortar.tik":
local.weap.istype = XRM
break
case "models/weapons/gr_w_minedetector.tik":
local.weap.istype = AMN
break
case "models/weapons/us_w_minedetector.tik":
local.weap.istype = XMN
break
default:
local.weap.istype = NADA
break
}
if(local.player.dmteam == "allies")
{
switch(local.weap.istype)
{
case "AR":
waitthread NotaSniper local.player.dmteam local.player.entnum
waitthread NotaMG local.player.dmteam local.player.entnum
waitthread NotaSMG local.player.dmteam local.player.entnum
waitthread NotaRocket local.player.dmteam local.player.entnum
waitthread NotaShotgun local.player.dmteam local.player.entnum
break
case "ASN":
if(level.SniperLimit != -1) {
local.check = 0
for(local.n=1;local.n <= level.SniperLimit ; local.n++) {
if(level.AlliedSniper[local.n] == local.player.entnum) {
local.check = 1
}
}
if(local.check != 1) {
if (level.AlliedSniperCount == level.SniperLimit) {
$player[local.i].checked = 0
waitthread changeweapon allies local.player
}
if (level.AlliedSniperCount < level.SniperLimit) {
level.AlliedSniperCount = level.AlliedSniperCount + 1
local.done = 0
for(local.n=1; ((local.n <= level.SniperLimit) && (local.done != 1)) ; local.n++) {
if(level.AlliedSniper[local.n] == -1) {
level.AlliedSniper[local.n] = local.player.entnum
local.done = 1
iprintln ("Allied Sniper " + local.n + " of " + level.SniperLimit + " is client " + local.player.entnum + ".")
}
}
}
}
waitthread NotaMG local.player.dmteam local.player.entnum
waitthread NotaSMG local.player.dmteam local.player.entnum
waitthread NotaShotgun local.player.dmteam local.player.entnum
waitthread NotaRocket local.player.dmteam local.player.entnum
}
break
case "AMG":
if(level.MGLimit != -1) {
local.check = 0
for(local.n=1;local.n <= level.MGLimit ; local.n++) {
if(level.AlliedMG[local.n] == local.player.entnum) {
local.check = 1
}
}
if(local.check != 1) {
if (level.AlliedMGCount == level.MGLimit) {
$player[local.i].checked = 0
waitthread changeweapon allies local.player
}
if (level.AlliedMGCount < level.MGLimit) {
level.AlliedMGCount = level.AlliedMGCount + 1
local.done = 0
for(local.n=1; ((local.n <= level.MGLimit) && (local.done != 1)) ; local.n++) {
if(level.AlliedMG[local.n] == -1) {
level.AlliedMG[local.n] = local.player.entnum
local.done = 1
iprintln ("Allied MG " + local.n + " of " + level.MGLimit + " is client " + local.player.entnum + ".")
}
}
}
}
waitthread NotaSniper local.player.dmteam local.player.entnum
waitthread NotaSMG local.player.dmteam local.player.entnum
waitthread NotaShotgun local.player.dmteam local.player.entnum
waitthread NotaRocket local.player.dmteam local.player.entnum
}
break
case "ASMG":
if(level.SMGLimit != -1) {
local.check = 0
for(local.n=1;local.n <= level.SMGLimit ; local.n++) {
if(level.AlliedSMG[local.n] == local.player.entnum) {
local.check = 1
}
}
if(local.check != 1) {
if (level.AlliedSMGCount == level.SMGLimit) {
$player[local.i].checked = 0
waitthread changeweapon allies local.player
}
if (level.AlliedSMGCount < level.SMGLimit) {
level.AlliedSMGCount = level.AlliedSMGCount + 1
local.done = 0
for(local.n=1; ((local.n <= level.SMGLimit) && (local.done != 1)) ; local.n++) {
if(level.AlliedSMG[local.n] == -1) {
level.AlliedSMG[local.n] = local.player.entnum
local.done = 1
iprintln ("Allied SMG " + local.n + " of " + level.SMGLimit + " is client " + local.player.entnum + ".")
}
}
}
}
waitthread NotaSniper local.player.dmteam local.player.entnum
waitthread NotaMG local.player.dmteam local.player.entnum
waitthread NotaShotgun local.player.dmteam local.player.entnum
waitthread NotaRocket local.player.dmteam local.player.entnum
}
break
case "ARK":
if(level.RocketLimit != -1) {
local.check = 0
for(local.n=1;local.n <= level.RocketLimit ; local.n++) {
if(level.AlliedRocket[local.n] == local.player.entnum) {
local.check = 1
}
}
if(local.check != 1) {
if (level.AlliedRocketCount == level.RocketLimit) {
$player[local.i].checked = 0
waitthread changeweapon allies local.player
}
if (level.AlliedRocketCount < level.RocketLimit) {
level.AlliedRocketCount = level.AlliedRocketCount + 1
local.done = 0
for(local.n=1; ((local.n <= level.RocketLimit) && (local.done != 1)) ; local.n++) {
if(level.AlliedRocket[local.n] == -1) {
level.AlliedRocket[local.n] = local.player.entnum
local.done = 1
if (level.ParaMod == 1) {
iprintln ("Allied M1 Carbine " + local.n + " of " + level.RocketLimit + " is client " + local.player.entnum + ".")
}
else {
iprintln ("Allied Rocket " + local.n + " of " + level.RocketLimit + " is client " + local.player.entnum + ".")
}
}
}
}
}
waitthread NotaSniper local.player.dmteam local.player.entnum
waitthread NotaMG local.player.dmteam local.player.entnum
waitthread NotaSMG local.player.dmteam local.player.entnum
waitthread NotaShotgun local.player.dmteam local.player.entnum
}
break
case "ASG":
if(level.ShotgunLimit != -1) {
local.check = 0
for(local.n=1;local.n <= level.ShotgunLimit ; local.n++) {
if(level.AlliedShotgun[local.n] == local.player.entnum) {
local.check = 1
}
}
if(local.check != 1) {
if (level.AlliedShotgunCount == level.ShotgunLimit) {
$player[local.i].checked = 0
waitthread changeweapon allies local.player
}
if (level.AlliedShotgunCount < level.ShotgunLimit) {
level.AlliedShotgunCount = level.AlliedShotgunCount + 1
local.done = 0
for(local.n=1; ((local.n <= level.ShotgunLimit) && (local.done != 1)) ; local.n++) {
if(level.AlliedShotgun[local.n] == -1) {
level.AlliedShotgun[local.n] = local.player.entnum
local.done = 1
iprintln ("Allied Shotgun " + local.n + " of " + level.ShotgunLimit + " is client " + local.player.entnum + ".")
}
}
}
}
waitthread NotaSniper local.player.dmteam local.player.entnum
waitthread NotaMG local.player.dmteam local.player.entnum
waitthread NotaSMG local.player.dmteam local.player.entnum
waitthread NotaRocket local.player.dmteam local.player.entnum
}
break
default:
$player[local.i].checked = 0
break
}
}
if(local.player.dmteam == "axis")
{
switch(local.weap.istype)
{
case "XR":
waitthread NotaSniper local.player.dmteam local.player.entnum
waitthread NotaMG local.player.dmteam local.player.entnum
waitthread NotaSMG local.player.dmteam local.player.entnum
waitthread NotaRocket local.player.dmteam local.player.entnum
waitthread NotaShotgun local.player.dmteam local.player.entnum
break
case "XSN":
if(level.SniperLimit != -1) {
local.check = 0
for(local.n=1;local.n <= level.SniperLimit ; local.n++) {
if(level.AxisSniper[local.n] == local.player.entnum) {
local.check = 1
}
}
if(local.check != 1) {
if (level.AxisSniperCount == level.SniperLimit) {
$player[local.i].checked = 0
waitthread changeweapon axis local.player
}
if (level.AxisSniperCount < level.SniperLimit) {
level.AxisSniperCount = level.AxisSniperCount + 1
local.done = 0
for(local.n=1; ((local.n <= level.SniperLimit) && (local.done != 1)) ; local.n++) {
if(level.AxisSniper[local.n] == -1) {
level.AxisSniper[local.n] = local.player.entnum
local.done = 1
iprintln ("Axis Sniper " + local.n + " of " + level.SniperLimit + " is client " + local.player.entnum + ".")
}
}
}
}
waitthread NotaMG local.player.dmteam local.player.entnum
waitthread NotaSMG local.player.dmteam local.player.entnum
waitthread NotaShotgun local.player.dmteam local.player.entnum
waitthread NotaRocket local.player.dmteam local.player.entnum
}
break
case "XMG":
if(level.SMGLimit != -1) {
local.check = 0
for(local.n=1;local.n <= level.MGLimit ; local.n++) {
if(level.AxisMG[local.n] == local.player.entnum) {
local.check = 1
}
}
if(local.check != 1) {
if (level.AxisMGCount == level.MGLimit) {
$player[local.i].checked = 0
waitthread changeweapon axis local.player
}
if (level.AxisMGCount < level.MGLimit) {
level.AxisMGCount = level.AxisMGCount + 1
local.done = 0
for(local.n=1; ((local.n <= level.MGLimit) && (local.done != 1)) ; local.n++) {
if(level.AxisMG[local.n] == -1) {
level.AxisMG[local.n] = local.player.entnum
local.done = 1
iprintln ("Axis MG " + local.n + " of " + level.MGLimit + " is client " + local.player.entnum + ".")
}
}
}
}
waitthread NotaSniper local.player.dmteam local.player.entnum
waitthread NotaSMG local.player.dmteam local.player.entnum
waitthread NotaShotgun local.player.dmteam local.player.entnum
waitthread NotaRocket local.player.dmteam local.player.entnum
}
break
case "XSMG":
if(level.SMGLimit != -1) {
local.check = 0
for(local.n=1;local.n <= level.SMGLimit ; local.n++) {
if(level.AxisSMG[local.n] == local.player.entnum) {
local.check = 1
}
}
if(local.check != 1) {
if (level.AxisSMGCount == level.SMGLimit) {
$player[local.i].checked = 0
waitthread changeweapon axis local.player
}
if (level.AxisSMGCount < level.SMGLimit) {
level.AxisSMGCount = level.AxisSMGCount + 1
local.done = 0
for(local.n=1; ((local.n <= level.SMGLimit) && (local.done != 1)) ; local.n++) {
if(level.AxisSMG[local.n] == -1) {
level.AxisSMG[local.n] = local.player.entnum
local.done = 1
iprintln ("Axis SMG " + local.n + " of " + level.SMGLimit + " is client " + local.player.entnum + ".")
}
}
}
}
waitthread NotaSniper local.player.dmteam local.player.entnum
waitthread NotaMG local.player.dmteam local.player.entnum
waitthread NotaShotgun local.player.dmteam local.player.entnum
waitthread NotaRocket local.player.dmteam local.player.entnum
}
break
case "XRK":
if(level.RocketLimit != -1) {
local.check = 0
for(local.n=1;local.n <= level.RocketLimit ; local.n++) {
if(level.AxisRocket[local.n] == local.player.entnum) {
local.check = 1
}
}
if(local.check != 1) {
if (level.AxisRocketCount == level.RocketLimit) {
$player[local.i].checked = 0
waitthread changeweapon axis local.player
}
if (level.AxisRocketCount < level.RocketLimit) {
level.AxisRocketCount = level.AxisRocketCount + 1
local.done = 0
for(local.n=1; ((local.n <= level.RocketLimit) && (local.done != 1)) ; local.n++) {
if(level.AxisRocket[local.n] == -1) {
level.AxisRocket[local.n] = local.player.entnum
local.done = 1
if (level.ParaMod == 1) {
iprintln ("Axis FG42 " + local.n + " of " + level.RocketLimit + " is client " + local.player.entnum + ".")
}
else {
iprintln ("Axis Rocket " + local.n + " of " + level.RocketLimit + " is client " + local.player.entnum + ".")
}
}
}
}
}
waitthread NotaSniper local.player.dmteam local.player.entnum
waitthread NotaMG local.player.dmteam local.player.entnum
waitthread NotaSMG local.player.dmteam local.player.entnum
waitthread NotaShotgun local.player.dmteam local.player.entnum
}
break
case "ASG":
if(level.ShotgunLimit != -1) {
local.check = 0
for(local.n=1;local.n <= level.ShotgunLimit ; local.n++) {
if(level.AxisShotgun[local.n] == local.player.entnum) {
local.check = 1
}
}
if(local.check != 1) {
if (level.AxisShotgunCount == level.ShotgunLimit) {
$player[local.i].checked = 0
waitthread changeweapon axis local.player
}
if (level.AxisShotgunCount < level.AxisShotgunLimit) {
level.AxisShotgunCount = level.ShotgunCount + 1
local.done = 0
for(local.n=1; ((local.n <= level.ShotgunLimit) && (local.done != 1)) ; local.n++) {
if(level.AxisShotgun[local.n] == -1) {
level.AxisShotgun[local.n] = local.player.entnum
local.done = 1
iprintln ("Axis Shotgun " + local.n + " of " + level.ShotgunLimit + " is client " + local.player.entnum + ".")
}
}
}
}
waitthread NotaSniper local.player.dmteam local.player.entnum
waitthread NotaMG local.player.dmteam local.player.entnum
waitthread NotaSMG local.player.dmteam local.player.entnum
waitthread NotaRocket local.player.dmteam local.player.entnum
}
break
case "XRM":
if(level.ShotgunLimit != -1) {
local.check = 0
for(local.n=1;local.n <= level.ShotgunLimit ; local.n++) {
if(level.AxisShotgun[local.n] == local.player.entnum) {
local.check = 1
}
}
if(local.check != 1) {
if (level.AxisShotgunCount == level.ShotgunLimit) {
$player[local.i].checked = 0
waitthread changeweapon axis local.player
}
if (level.AxisShotgunCount < level.ShotgunLimit) {
level.AxisShotgunCount = level.AxisShotgunCount + 1
local.done = 0
for(local.n=1; ((local.n <level> 0) || $player[local.i].checkteam!=local.player.dmteam) {
$player[local.i].checked = 0
}
waitframe
} // for
wait 1
} // While
end
changeweapon local.team local.player:
local.player iprint "The weapon you have chosen is being limited." 1
local.player iprint "Please choose a different weapon." 1
local.player spectator
local.player join_team local.team
end
NotaSniper local.team local.number:
local.snipercheck = 0
if(local.team == "allies")
{
for(local.n=1;local.n <= level.SniperLimit ; local.n++) {
if(level.AlliedSniper[local.n] == local.number) {
local.snipercheck = 1
local.position = local.n
}
}
if(local.snipercheck == 1) {
level.AlliedSniperCount = ( level.AlliedSniperCount - 1 )
level.AlliedSniper[local.position] = -1
iprintln ("Allied Sniper " + local.position + " now available.")
}
}
if(local.team == "axis")
{
for(local.n=1;local.n <= level.SniperLimit ; local.n++) {
if(level.AxisSniper[local.n] == local.number) {
local.snipercheck = 1
local.position = local.n
}
}
if(local.snipercheck == 1) {
level.AxisSniperCount = ( level.AxisSniperCount - 1 )
level.AxisSniper[local.position] = -1
iprintln ("Axis Sniper " + local.position + " now available.")
}
}
waitframe
end
NotaMG local.team local.number:
local.MGcheck = 0
if(local.team == "allies")
{
for(local.n=1;local.n <= level.MGLimit ; local.n++) {
if(level.AlliedMG[local.n] == local.number) {
local.MGcheck = 1
local.position = local.n
}
}
if(local.MGcheck == 1) {
level.AlliedMGCount = ( level.AlliedMGCount - 1 )
level.AlliedMG[local.position] = -1
iprintln ("Allied MG " + local.position + " now available.")
}
}
if(local.team == "axis")
{
for(local.n=1;local.n <= level.MGLimit ; local.n++) {
if(level.AxisMG[local.n] == local.number) {
local.MGcheck = 1
local.position = local.n
}
}
if(local.MGcheck == 1) {
level.AxisMGCount = ( level.AxisMGCount - 1 )
level.AxisMG[local.position] = -1
iprintln ("Axis MG " + local.position + " now available.")
}
}
waitframe
end
NotaSMG local.team local.number:
local.SMGcheck = 0
if(local.team == "allies")
{
for(local.n=1;local.n <= level.SMGLimit ; local.n++) {
if(level.AlliedSMG[local.n] == local.number) {
local.SMGcheck = 1
local.position = local.n
}
}
if(local.SMGcheck == 1) {
level.AlliedSMGCount = ( level.AlliedSMGCount - 1 )
level.AlliedSMG[local.position] = -1
iprintln ("Allied SMG " + local.position + " now available.")
}
}
if(local.team == "axis")
{
for(local.n=1;local.n <= level.SMGLimit ; local.n++) {
if(level.AxisSMG[local.n] == local.number) {
local.SMGcheck = 1
local.position = local.n
}
}
if(local.SMGcheck == 1) {
level.AxisSMGCount = ( level.AxisSMGCount - 1 )
level.AxisSMG[local.position] = -1
iprintln ("Axis SMG " + local.position + " now available.")
}
}
waitframe
end
NotaShotgun local.team local.number:
local.Shotguncheck = 0
if(local.team == "allies")
{
for(local.n=1;local.n <= level.ShotgunLimit ; local.n++) {
if(level.AlliedShotgun[local.n] == local.number) {
local.Shotguncheck = 1
local.position = local.n
}
}
if(local.Shotguncheck == 1) {
level.AlliedShotgunCount = ( level.AlliedShotgunCount - 1 )
level.AlliedShotgun[local.position] = -1
iprintln ("Allied Shotgun " + local.position + " now available.")
}
}
if(local.team == "axis")
{
for(local.n=1;local.n <= level.ShotgunLimit ; local.n++) {
if(level.AxisShotgun[local.n] == local.number) {
local.Shotguncheck = 1
local.position = local.n
}
}
if(local.Shotguncheck == 1) {
level.AxisShotgunCount = ( level.AxisShotgunCount - 1 )
level.AxisShotgun[local.position] = -1
iprintln ("Axis Boomstick " + local.position + " now available.")
}
}
waitframe
end
NotaRocket local.team local.number:
local.Rocketcheck = 0
if(local.team == "allies")
{
for(local.n=1;local.n <= level.RocketLimit ; local.n++) {
if(level.AlliedRocket[local.n] == local.number) {
local.Rocketcheck = 1
local.position = local.n
}
}
if(local.Rocketcheck == 1) {
level.AlliedRocketCount = ( level.AlliedRocketCount - 1 )
level.AlliedRocket[local.position] = -1
if (level.ParaMod == 1) {
iprintln ("Allied M1 Carbine " + local.position + " now available.")
}
else {
iprintln ("Allied Rocket " + local.position + " now available.")
}
}
}
if(local.team == "axis")
{
for(local.n=1;local.n <= level.RocketLimit ; local.n++) {
if(level.AxisRocket[local.n] == local.number) {
local.Rocketcheck = 1
local.position = local.n
}
}
if(local.Rocketcheck == 1) {
level.AxisRocketCount = ( level.AxisRocketCount - 1 )
level.AxisRocket[local.position] = -1
if (level.ParaMod == 1) {
iprintln ("Axis FG42 " + local.position + " now available.")
}
else {
iprintln ("Axis Rocket " + local.position + " now available.")
}
}
}
waitframe
end
cvar
Posted: Sat Jan 20, 2007 11:41 pm
by tltrude
That first thread, "main", is checking for a "cvar", short for "Client Variable", named "Limiter_On" to see if it is set to "1".
My guess is that the "Limiter_On" cvar is created, and set, by the server. But, I know next to nothing about server mods. So, I'm probably not helping you very much.
You can check to see what cvars are set to by typing "cvarlist" in the console during a game.
Posted: Sun Jan 21, 2007 1:49 am
by Caboom
What I don't understand is why my map is the only one that doesn't work with our weapon limiter, all other maps work fine. Grrrrrr! I don't notice any differences with my scr and other custom map scr's.
Posted: Tue Jan 23, 2007 1:41 am
by Caboom
Anybody have any other suggestions... I'm going crazy!
Posted: Tue Jan 23, 2007 2:36 am
by bdbodger
WepLimiter:
waitthread InitializeArrays
while(1)
{
waitthread OutOfGameCheck
for(local.i=1;local.i <player> 0 && !$player[local.i].checked && local.player.dmteam!="spectator" && local.weap.model) {
$player[local.i].checked = 1
$player[local.i].checkteam = local.player.dmteam
switch( local.weap.model )
Where exactly you you set what local.weap is ? I don't see it defined in the thread or another thread called that sets it either .
Posted: Tue Jan 23, 2007 3:35 am
by Caboom
No idea... I just copied the scr from our weapon limiter pk3.
allinone.scr.scr
Posted: Tue Jan 23, 2007 3:52 am
by tltrude
Well I think I see why your map's script is not working. It has this name...
allinone.scr.scr
and it should have this name...
allinone.scr
Posted: Tue Jan 23, 2007 6:20 am
by bdbodger
Well that whole line is a bit strange and hard to read
for(local.i=1;local.i <player> 0 && !$player[local.i].checked && local.player.dmteam!="spectator" && local.weap.model) {
I myself would write it like this
Code: Select all
WepLimiter:
waitthread InitializeArrays
while(1)
{
waitthread OutOfGameCheck
for(local.i=1;local.i <= $player.size;local.i++)
{
if( !$player[local.i].checked && $player[local.i].dmteam!="spectator" )
{
$player[local.i].checked = 1
$player[local.i].checkteam = $player[local.i].dmteam
local.weap = waitthread player_weapon $player[local.i] // calls a thread to find player weapon
if(local.weap != NULL)
{
switch( local.weap.model )
{
Code: Select all
player_weapon local.player:
local.randnum = randomint 1000
local.player weaponcommand mainhand targetname ("weap" + local.randnum)
local.weap = $("weap" + local.randnum)
if(local.weap != NULL)
{
local.weap.targetname = ""
end local.weap // this sends the value of local.weap back to the other thread
}
end NULL
and watch your use of local.player instead of $player[local.i] like in that first line I quoted local.player has not been defined in the thread either , local varialbles have to be given a value and it has to be done inside of this thread the same variable in another thread would not be the same as the variable of the same name in this thread local variables are "local" to this thread and the value is not shared with other threads or saved when the thread ends or is called again . Maybe you ment to put a line like this in your script but forgot
local.player = $player[local.i]
The other thing to look out for is getting the end brackets in the right place } those I'll leave to you to match up with the ones in my example if you decide to use it .