Weapon limiter conflict

Post your scripting questions / solutions here

Moderator: Moderators

Caboom
Corporal
Posts: 49
Joined: Sat Jun 17, 2006 7:36 am
Location: California

Weapon limiter conflict

Post 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!
User avatar
bdbodger
Moderator
Posts: 2596
Joined: Tue Feb 25, 2003 7:34 am
Location: canada
Contact:

Post 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
Image
lizardkid
Windows Zealot
Posts: 3672
Joined: Fri Mar 19, 2004 7:16 pm
Location: Helena MT

Post 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.
Moderator

۞
Abyssus pro sapientia
Olympus pro Ignarus
۞

AND STUFF™ © 2006
Caboom
Corporal
Posts: 49
Joined: Sat Jun 17, 2006 7:36 am
Location: California

Post by Caboom »

Ok will do, I'll give it a look. Thanks guys!
Caboom
Corporal
Posts: 49
Joined: Sat Jun 17, 2006 7:36 am
Location: California

Post 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
lizardkid
Windows Zealot
Posts: 3672
Joined: Fri Mar 19, 2004 7:16 pm
Location: Helena MT

Post 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?
Moderator

۞
Abyssus pro sapientia
Olympus pro Ignarus
۞

AND STUFF™ © 2006
User avatar
tltrude
Chuck Norris
Posts: 4774
Joined: Sun Jul 07, 2002 4:03 am
Location: Oklahoma, USA
Contact:

allinone

Post 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.
Tom Trude,

Image
Caboom
Corporal
Posts: 49
Joined: Sat Jun 17, 2006 7:36 am
Location: California

Post 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
User avatar
tltrude
Chuck Norris
Posts: 4774
Joined: Sun Jul 07, 2002 4:03 am
Location: Oklahoma, USA
Contact:

cvar

Post 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.
Tom Trude,

Image
Caboom
Corporal
Posts: 49
Joined: Sat Jun 17, 2006 7:36 am
Location: California

Post 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.
Caboom
Corporal
Posts: 49
Joined: Sat Jun 17, 2006 7:36 am
Location: California

Post by Caboom »

Anybody have any other suggestions... I'm going crazy!
User avatar
bdbodger
Moderator
Posts: 2596
Joined: Tue Feb 25, 2003 7:34 am
Location: canada
Contact:

Post 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 .
Image
Caboom
Corporal
Posts: 49
Joined: Sat Jun 17, 2006 7:36 am
Location: California

Post by Caboom »

No idea... I just copied the scr from our weapon limiter pk3.
User avatar
tltrude
Chuck Norris
Posts: 4774
Joined: Sun Jul 07, 2002 4:03 am
Location: Oklahoma, USA
Contact:

allinone.scr.scr

Post 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
Tom Trude,

Image
User avatar
bdbodger
Moderator
Posts: 2596
Joined: Tue Feb 25, 2003 7:34 am
Location: canada
Contact:

Post 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 .
Image
Post Reply