Can we ask for a model change in map script?

Post your scripting questions / solutions here

Moderator: Moderators

Post Reply
User avatar
small_sumo
Lieutenant General
Posts: 953
Joined: Mon Jul 01, 2002 4:17 pm
Contact:

Can we ask for a model change in map script?

Post by small_sumo »

Can we ask for a model change in map script? Or to be more specific the weapon model, this would be to suit the maps enviornment. You could have a ww2 map then a modern one then a medievil one. The sript would have to say soemthing liek.

Case model mp42.tik use model mp42_modern

Accept it obviously wouldnt be that easy .........


Can it be done or am I dreamin

:roll:
Image

www.smallsumo.tk

Yeah Truth above Honor Man ;)
Phil {sfx}
Sergeant
Posts: 67
Joined: Thu Sep 30, 2004 2:08 pm
Location: uk
Contact:

Post by Phil {sfx} »

Had 20 mins spare so wrote you this script, should do the job you want aslong as the tiks/map names match.

Code: Select all

Main:
thread line1
end

line1:

local.mapnam = getcvar "mapname"
switch ( local.mapnam ) 
{
  case "dm/ww2":
  thread sumo_ww2_weps
  break

  case "dm/modern":
  thread sumo_modern_weps
  break

  case "dm/medievil":
  thread sumo_medievil_weps
  break

  default:
  println "no map found"
  break
}
end

sumo_ww2_weps:

while(1)
{
wait 1
for (local.i = 1; local.i <= $player.size; local.i++) 
{
local.player = $player[local.i]
local.randnum = randomint 1000
local.player weaponcommand dual targetname ("weap" + local.randnum)
local.weap = $("weap" + local.randnum)
local.weap.targetname = ""
if (local.player.dmteam=="allies")
{
if (local.weap) 
{
switch (local.weap.model)
{
case "models/weapons/m2frag_grenade.tik":
local.player take "models/weapons/m2frag_grenade.tik"
wait 0.1
local.player give "models/weapons/ww2_m2frag_grenade.tik"
break

case "models/weapons/m1_garand.tik":
local.player take "models/weapons/m1_garand.tik"
wait 0.1
local.player give "models/weapons/ww2_m1_garand.tik"
break

case "models/weapons/colt45.tik":
local.player take "models/weapons/colt45.tik"
wait 0.1
local.player give "models/weapons/ww2_colt45.tik"
break

case "models/weapons/bar.tik":
local.player take "models/weapons/bar.tik"
wait 0.1
local.player give "models/weapons/ww2_bar.tik"
break

case "models/weapons/bazooka.tik":
local.player take "models/weapons/bazooka.tik"
wait 0.1
local.player give "models/weapons/ww2_bazooka.tik"
break

case "models/weapons/shotgun.tik":
local.player take "models/weapons/shotgun.tik"
wait 0.1
local.player give "models/weapons/ww2_allied_shotgun.tik"
break
case "models/weapons/springfield.tik":
local.player take "models/weapons/springfield.tik"
wait 0.1
local.player give "models/weapons/ww2_springfield.tik"
break

case "models/weapons/thompsonsmg.tik":
local.player take "models/weapons/thompsonsmg.tik"
wait 0.1
local.player give "models/weapons/ww2_thompsonsmg.tik"
break

case "models/weapons/silencedpistol.tik":
local.player take "models/weapons/silencedpistol.tik"
wait 0.1
local.player give "models/weapons/ww2_allied_silencedpistol.tik"
break

case "models/weapons/binoculars.tik":
local.player take "models/weapons/binoculars.tik"
wait 0.1
local.player give "models/weapons/ww2_allied_binoculars.tik"
break
}
}
}
else if (local.player.dmteam=="axis")
{
if (local.weap) 
{
switch (local.weap.model)
{
case "models/weapons/steilhandgranate.tik":
local.player take "models/weapons/steilhandgranate.tik"
wait 0.1
local.player give "models/weapons/ww2_steilhandgranate.tik"
break

case "models/weapons/p38.tik":
local.player take "models/weapons/p38.tik"
wait 0.1
local.player give "models/weapons/ww2_p38.tik"
break

case "models/weapons/mp44.tik":
local.player take "models/weapons/mp44.tik"
wait 0.1
local.player give "models/weapons/ww2_mp44.tik"
break

case "models/weapons/panzerschreck.tik":
local.player take "models/weapons/panzerschreck.tik"
wait 0.1
local.player give "models/weapons/ww2_panzerschreck.tik"
break

case "models/weapons/mp40.tik":
local.player take "models/weapons/mp40.tik"
wait 0.1
local.player give "models/weapons/ww2_mp40.tik"
break

case "models/weapons/binoculars.tik":
local.player take "models/weapons/binoculars.tik"
wait 0.1
local.player give "models/weapons/ww2_axis_binoculars.tik"
break

case "models/weapons/silencedpistol.tik":
local.player take "models/weapons/silencedpistol.tik"
wait 0.1
local.player give "models/weapons/ww2_axis_silencedpistol.tik"
break

case "models/weapons/kar98sniper.tik":
local.player take "models/weapons/kar98sniper.tik"
wait 0.1
local.player give "models/weapons/ww2_kar98sniper.tik"
break

case "models/weapons/kar98.tik":
local.player take "models/weapons/kar98.tik"
wait 0.1
local.player give "models/weapons/ww2_kar98.tik"
break

case "models/weapons/shotgun.tik":
local.player take "models/weapons/shotgun.tik"
wait 0.1
local.player give "models/weapons/ww2_axis_shotgun.tik"
break
}
}
}
}
waitframe
}
end

sumo_modern_weps:

while(1)
{
wait 1
for (local.i = 1; local.i <= $player.size; local.i++) 
{
local.player = $player[local.i]
local.randnum = randomint 1000
local.player weaponcommand dual targetname ("weap" + local.randnum)
local.weap = $("weap" + local.randnum)
local.weap.targetname = ""
if (local.player.dmteam=="allies")
{
if (local.weap) 
{
switch (local.weap.model)
{
case "models/weapons/m2frag_grenade.tik":
local.player take "models/weapons/m2frag_grenade.tik"
wait 0.1
local.player give "models/weapons/modern_m2frag_grenade.tik"
break

case "models/weapons/m1_garand.tik":
local.player take "models/weapons/m1_garand.tik"
wait 0.1
local.player give "models/weapons/modern_m1_garand.tik"
break

case "models/weapons/colt45.tik":
local.player take "models/weapons/colt45.tik"
wait 0.1
local.player give "models/weapons/modern_colt45.tik"
break

case "models/weapons/bar.tik":
local.player take "models/weapons/bar.tik"
wait 0.1
local.player give "models/weapons/modern_bar.tik"
break

case "models/weapons/bazooka.tik":
local.player take "models/weapons/bazooka.tik"
wait 0.1
local.player give "models/weapons/modern_bazooka.tik"
break

case "models/weapons/shotgun.tik":
local.player take "models/weapons/shotgun.tik"
wait 0.1
local.player give "models/weapons/modern_allied_shotgun.tik"
break
case "models/weapons/springfield.tik":
local.player take "models/weapons/springfield.tik"
wait 0.1
local.player give "models/weapons/modern_springfield.tik"
break

case "models/weapons/thompsonsmg.tik":
local.player take "models/weapons/thompsonsmg.tik"
wait 0.1
local.player give "models/weapons/modern_thompsonsmg.tik"
break

case "models/weapons/silencedpistol.tik":
local.player take "models/weapons/silencedpistol.tik"
wait 0.1
local.player give "models/weapons/modern_allied_silencedpistol.tik"
break

case "models/weapons/binoculars.tik":
local.player take "models/weapons/binoculars.tik"
wait 0.1
local.player give "models/weapons/modern_allied_binoculars.tik"
break
}
}
}
else if (local.player.dmteam=="axis")
{
if (local.weap) 
{
switch (local.weap.model)
{
case "models/weapons/steilhandgranate.tik":
local.player take "models/weapons/steilhandgranate.tik"
wait 0.1
local.player give "models/weapons/modern_steilhandgranate.tik"
break

case "models/weapons/p38.tik":
local.player take "models/weapons/p38.tik"
wait 0.1
local.player give "models/weapons/modern_p38.tik"
break

case "models/weapons/mp44.tik":
local.player take "models/weapons/mp44.tik"
wait 0.1
local.player give "models/weapons/modern_mp44.tik"
break

case "models/weapons/panzerschreck.tik":
local.player take "models/weapons/panzerschreck.tik"
wait 0.1
local.player give "models/weapons/modern_panzerschreck.tik"
break

case "models/weapons/mp40.tik":
local.player take "models/weapons/mp40.tik"
wait 0.1
local.player give "models/weapons/modern_mp40.tik"
break

case "models/weapons/binoculars.tik":
local.player take "models/weapons/binoculars.tik"
wait 0.1
local.player give "models/weapons/modern_axis_binoculars.tik"
break

case "models/weapons/silencedpistol.tik":
local.player take "models/weapons/silencedpistol.tik"
wait 0.1
local.player give "models/weapons/modern_axis_silencedpistol.tik"
break

case "models/weapons/kar98sniper.tik":
local.player take "models/weapons/kar98sniper.tik"
wait 0.1
local.player give "models/weapons/modern_kar98sniper.tik"
break

case "models/weapons/kar98.tik":
local.player take "models/weapons/kar98.tik"
wait 0.1
local.player give "models/weapons/modern_kar98.tik"
break

case "models/weapons/shotgun.tik":
local.player take "models/weapons/shotgun.tik"
wait 0.1
local.player give "models/weapons/modern_axis_shotgun.tik"
break
}
}
}
}
waitframe
}
end

sumo_medievil_weps:

while(1)
{
wait 1
for (local.i = 1; local.i <= $player.size; local.i++) 
{
local.player = $player[local.i]
local.randnum = randomint 1000
local.player weaponcommand dual targetname ("weap" + local.randnum)
local.weap = $("weap" + local.randnum)
local.weap.targetname = ""
if (local.player.dmteam=="allies")
{
if (local.weap) 
{
switch (local.weap.model)
{
case "models/weapons/m2frag_grenade.tik":
local.player take "models/weapons/m2frag_grenade.tik"
wait 0.1
local.player give "models/weapons/medievil_m2frag_grenade.tik"
break

case "models/weapons/m1_garand.tik":
local.player take "models/weapons/m1_garand.tik"
wait 0.1
local.player give "models/weapons/medievil_m1_garand.tik"
break

case "models/weapons/colt45.tik":
local.player take "models/weapons/colt45.tik"
wait 0.1
local.player give "models/weapons/medievil_colt45.tik"
break

case "models/weapons/bar.tik":
local.player take "models/weapons/bar.tik"
wait 0.1
local.player give "models/weapons/medievil_bar.tik"
break

case "models/weapons/bazooka.tik":
local.player take "models/weapons/bazooka.tik"
wait 0.1
local.player give "models/weapons/medievil_bazooka.tik"
break

case "models/weapons/shotgun.tik":
local.player take "models/weapons/shotgun.tik"
wait 0.1
local.player give "models/weapons/medievil_allied_shotgun.tik"
break
case "models/weapons/springfield.tik":
local.player take "models/weapons/springfield.tik"
wait 0.1
local.player give "models/weapons/medievil_springfield.tik"
break

case "models/weapons/thompsonsmg.tik":
local.player take "models/weapons/thompsonsmg.tik"
wait 0.1
local.player give "models/weapons/medievil_thompsonsmg.tik"
break

case "models/weapons/silencedpistol.tik":
local.player take "models/weapons/silencedpistol.tik"
wait 0.1
local.player give "models/weapons/medievil_allied_silencedpistol.tik"
break

case "models/weapons/binoculars.tik":
local.player take "models/weapons/binoculars.tik"
wait 0.1
local.player give "models/weapons/medievil_allied_binoculars.tik"
break
}
}
}
else if (local.player.dmteam=="axis")
{
if (local.weap) 
{
switch (local.weap.model)
{
case "models/weapons/steilhandgranate.tik":
local.player take "models/weapons/steilhandgranate.tik"
wait 0.1
local.player give "models/weapons/medievil_steilhandgranate.tik"
break

case "models/weapons/p38.tik":
local.player take "models/weapons/p38.tik"
wait 0.1
local.player give "models/weapons/medievil_p38.tik"
break

case "models/weapons/mp44.tik":
local.player take "models/weapons/mp44.tik"
wait 0.1
local.player give "models/weapons/medievil_mp44.tik"
break

case "models/weapons/panzerschreck.tik":
local.player take "models/weapons/panzerschreck.tik"
wait 0.1
local.player give "models/weapons/medievil_panzerschreck.tik"
break

case "models/weapons/mp40.tik":
local.player take "models/weapons/mp40.tik"
wait 0.1
local.player give "models/weapons/medievil_mp40.tik"
break

case "models/weapons/binoculars.tik":
local.player take "models/weapons/binoculars.tik"
wait 0.1
local.player give "models/weapons/medievil_axis_binoculars.tik"
break

case "models/weapons/silencedpistol.tik":
local.player take "models/weapons/silencedpistol.tik"
wait 0.1
local.player give "models/weapons/medievil_axis_silencedpistol.tik"
break

case "models/weapons/kar98sniper.tik":
local.player take "models/weapons/kar98sniper.tik"
wait 0.1
local.player give "models/weapons/medievil_kar98sniper.tik"
break

case "models/weapons/kar98.tik":
local.player take "models/weapons/kar98.tik"
wait 0.1
local.player give "models/weapons/medievil_kar98.tik"
break

case "models/weapons/shotgun.tik":
local.player take "models/weapons/shotgun.tik"
wait 0.1
local.player give "models/weapons/medievil_axis_shotgun.tik"
break
}
}
}
}
waitframe
}
end
edit:

oops missed 3 lines. :oops:
Last edited by Phil {sfx} on Mon Nov 29, 2004 2:53 pm, edited 1 time in total.
Senior Modder/Mapper/Scripter/Modeller @ www.mods-r-us.net
User avatar
small_sumo
Lieutenant General
Posts: 953
Joined: Mon Jul 01, 2002 4:17 pm
Contact:

Post by small_sumo »

Wow thats a very comprehensive answer, thankyou very much. I might try just executing part of it with a custom weapon or two and see how it goes. Only one thing I think may get in the way is and correct me if I am wrong, the case commands stay for the whole round, so like when someoen sellects a new weapon it will automatically be changed? And is this the best script with lag in mind?

I have a big week of work this week cos my boss is on hollidays so it may take a while for me to test this out.

It will be just perfect for my expansion pack.

I mentioned medievil cos I watched troy on the weekend lol.
Image

www.smallsumo.tk

Yeah Truth above Honor Man ;)
Phil {sfx}
Sergeant
Posts: 67
Joined: Thu Sep 30, 2004 2:08 pm
Location: uk
Contact:

Post by Phil {sfx} »

Lag wise, i can't see it cause anymore than anyone else gets running weapon checks. its not running all of them at once, but just the one selected by the map.
Senior Modder/Mapper/Scripter/Modeller @ www.mods-r-us.net
Post Reply