the Marauder's Map

Post your scripting questions / solutions here

Moderator: Moderators

User avatar
wacko
Field Marshal
Posts: 2085
Joined: Fri Jul 05, 2002 8:42 pm
Location: Germany

Post by wacko »

err, still some difficulties:

Code: Select all

	     		level.radar_light[local.i] = spawn script_object "scale" "0.5" "model" "fx/corona_red.tik"
is working

Code: Select all

	     		level.radar_light[local.i] = spawn script_object "scale" "0.5"
	     		level.radar_light[local.i].model = fx/corona_red.tik
isn't :cry:

Code: Select all

	     		level.radar_light[local.i] = spawn script_object "scale" "0.5"
	     		level.radar_light[local.i].model = "fx/corona_red.tik"
neither, btw
Elgan
Site Admin
Posts: 890
Joined: Tue Apr 13, 2004 10:43 pm
Location: uk
Contact:

Post by Elgan »

Code: Select all

  level.radar_light[local.i] = spawn script_object "scale" "0.5"
              level.radar_light[local.i] model = "fx/corona_red.tik"
no dot
lizardkid
Windows Zealot
Posts: 3672
Joined: Fri Mar 19, 2004 7:16 pm
Location: Helena MT

Post by lizardkid »

to make it simpler (and i know for sure that original line works) just do this.

Code: Select all

level.radar.light[local.i] = spawn fx/corona_red.tik "scale" "2.5"
that's the original line put into the array.
Moderator

۞
Abyssus pro sapientia
Olympus pro Ignarus
۞

AND STUFF™ © 2006
User avatar
wacko
Field Marshal
Posts: 2085
Joined: Fri Jul 05, 2002 8:42 pm
Location: Germany

Post by wacko »

regarding the spawning, the only lines I made kinda working are:
main:
level waittill spawn
thread the_radar_setup
thread the_radar
end

the_radar_setup:
level.map_x_min = -1664
level.map_x_max = 1664
level.map_y_min = -1664
level.map_y_max = 1664
level.radar_x_min = -320
level.radar_x_max = -256
level.radar_y_min = 256
level.radar_y_max = 320
level.map_x_size = (level.map_x_max - level.map_x_min)
level.map_y_size = (level.map_y_max - level.map_y_min)
level.radar_x_size = (level.radar_x_max - level.radar_x_min)
level.radar_y_size = (level.radar_y_max - level.radar_y_min)
level.radar_x_cen = level.radar_x_size / 2 + level.radar_x_min
level.radar_y_cen = level.radar_y_size / 2 + level.radar_y_min
level.final_x_pos = (level.map_x_size / level.radar_x_size)
level.final_y_pos = (level.map_y_size / level.radar_y_size)
level.clock = 0
end

the_radar:
while (1)
{
for (local.i=1;local.i<=$player.size;local.i++)
{
if(level.radar_light[local.i] == NIL || level.radar_light[local.i] == NULL)
{
switch ($player[local.i].dmteam)
{
case "allies":
level.radar_light[local.i] = spawn script_object "scale" "0.25" "model" "fx/corona_blue.tik"
goto switchend
case "axis":
level.radar_light[local.i] = spawn script_object "scale" "0.25" "model" "fx/corona_red.tik"
goto switchend
default:
level.radar_light[local.i] = spawn script_object "scale" "0.25" "model" "fx/corona_white.tik"
goto switchend
}
switchend:
}

if ((isAlive $player[local.i]) && (($player[local.i].dmteam == "allies") || ($player[local.i].dmteam == "axis") || ($player[local.i].dmteam == "freeforall")))
{
//floor offset---------------------------------------------------
level.radar_light[local.i].xoffset = 64
level.radar_light[local.i].yoffset = 0
if ($player[local.i].origin[2]<144)
{
level.radar_light[local.i].xoffset = 0
level.radar_light[local.i].yoffset = -64
}
if ($player[local.i].origin[2]>400)
{
level.radar_light[local.i].xoffset = 0
level.radar_light[local.i].yoffset = 0
}
//floor offset---------------------------------------------------
level.radar_light[local.i].origin = (($player[local.i].origin[0] / level.final_x_pos + level.radar_x_cen + level.radar_light[local.i].xoffset) (($player[local.i].origin[1] / level.final_y_pos) + level.radar_y_cen + level.radar_light[local.i].yoffset) 335)
wait .1
}
else
{
level.radar_light[local.i] remove
}
}
wait .1
if(level.radar_light.size >= 1 && level.radar_light.size > $player.size)
{
level.radar_light= waitthread take_extra_radars
}
}
end


take_extra_radars:

local.players = $player.size


for(local.i = level.radar_light.size;local.i > local.players;local.i--)
{

level.radar_light[local.i] remove
}

if(local.players >= 1)
{
for(local.i=1;local.i <= local.players;local.i++)
{
local.temp_array[local.i] = level.radar_light[local.i]
}
end local.temp_array
}
end

Everything else caused lots of errors in the console and not much more... Another typo? Maybe, but the way it is now, is ok 4 me. :wink:

Nevertheless, the whole script seems to be somehow buggy. I'm quite sure that sometimes corona wasn't changed when the player changed his team :? And the coronas appear as soon as the players have chosen their team (i.e. before selecting a weapon and still being able to fly around).
Elgan
Site Admin
Posts: 890
Joined: Tue Apr 13, 2004 10:43 pm
Location: uk
Contact:

Post by Elgan »

what are the erros u get in console?
User avatar
wacko
Field Marshal
Posts: 2085
Joined: Fri Jul 05, 2002 8:42 pm
Location: Germany

Post by wacko »

Elgan wrote:what are the erros u get in console?
atm, i think i get none but with

Code: Select all

	     		    level.radar_light[local.i] = spawn fx/corona_red.tik "scale" "0.25"
I get s/th like

Code: Select all

Script error: You must specify an explicit classname for misc object tik models
and

Code: Select all

!*!*!* 'models/fx/corona_red.tik' was spawned as an Object at (0,0,0). Should be made into a static model or script model (# here is a #counting up)
But does this matter? Using

Code: Select all

						level.radar_light[local.i] = spawn script_object "scale" "0.25" "model" "fx/corona_blue.tik"
is fine for me, isn't it?!
Elgan
Site Admin
Posts: 890
Joined: Tue Apr 13, 2004 10:43 pm
Location: uk
Contact:

Post by Elgan »

Code: Select all

                  level.radar_light[local.i] = spawn script_object "scale" "0.25" "model" "fx/corona_blue.tik" 
sud be ok







but to sure it all just use script model and it will be happy

Code: Select all

                  level.radar_light[local.i] = spawn script_model "scale" "0.25" "model" "fx/corona_blue.tik" 
User avatar
wacko
Field Marshal
Posts: 2085
Joined: Fri Jul 05, 2002 8:42 pm
Location: Germany

Post by wacko »

Elgan wrote:

Code: Select all

                  level.radar_light[local.i] = spawn script_object "scale" "0.25" "model" "fx/corona_blue.tik" 
sud be ok
Well, err, yes, that's what I said (tried to :wink: ). Problem rather seem to be all those if clauses, arrays, for-loops... Maybe I should add some more "wait .1" to give it a bit more time?
Elgan wrote:but to sure it all just use script model and it will be happy

Code: Select all

                  level.radar_light[local.i] = spawn script_model "scale" "0.25" "model" "fx/corona_blue.tik" 
Huh? Don't see a difference to above :?
Elgan
Site Admin
Posts: 890
Joined: Tue Apr 13, 2004 10:43 pm
Location: uk
Contact:

Post by Elgan »

script_model not script_object
User avatar
wacko
Field Marshal
Posts: 2085
Joined: Fri Jul 05, 2002 8:42 pm
Location: Germany

Post by wacko »

Elgan wrote:script_model not script_object
:shock: omg, my eyes... i can't ... i don't ... i'm blind
User avatar
bdbodger
Moderator
Posts: 2596
Joined: Tue Feb 25, 2003 7:34 am
Location: canada
Contact:

Post by bdbodger »

switch ($player[local.i].dmteam)
{
case "allies":
level.radar_light[local.i] = spawn script_object "scale" "0.25" "model" "fx/corona_blue.tik"
goto switchend
case "axis":
level.radar_light[local.i] = spawn script_object "scale" "0.25" "model" "fx/corona_red.tik"
goto switchend
default:
level.radar_light[local.i] = spawn script_object "scale" "0.25" "model" "fx/corona_white.tik"
goto switchend
}
switchend:
}
The proper way to use a switch statement is like this useing label: or case #:

Code: Select all

switch (selection) statement
============================

Standard usage
--------------

switch (expr)
{
label1:
	statement
	...
	statement
	break

label2:
	statement
	...
	statement
	break

case 0:
	statement
	...
	statement
	break	

case 1:
	statement
	...
	statement
	break

default:
	statement
	...
	statement
	break
}
The break ends the switch and goes to the next line after it , goto is very sloppy
Image
User avatar
wacko
Field Marshal
Posts: 2085
Joined: Fri Jul 05, 2002 8:42 pm
Location: Germany

Post by wacko »

:oops: , how could I? Thanks, m8.
bdbodger wrote:... goto is very sloppy
sloppy would mean, that the script err sometimes will and sometimes won't execute it?

Ok, then. I'm quite happy with the script now, after all the help I got :D
I've put everything into that same pk3 and u can do whatever u like with it. Thanks for all the help again!!

Btw, I changed the Subject of this thread. It was supposed to be top secret, well it isn't anymore anyway :wink:
Rookie One.pl
Site Admin
Posts: 2752
Joined: Fri Jan 31, 2003 7:49 pm
Location: Nowa Wies Tworoska, Poland
Contact:

Post by Rookie One.pl »

Goto is an obsolete thingy - it origins from old programming languages.

And apparently you can use strings in case statements.
Admin
Image
Image
Honour guide me.

here's my stuff - inequation.org | here's where I work - thefarm51.com
User avatar
bdbodger
Moderator
Posts: 2596
Joined: Tue Feb 25, 2003 7:34 am
Location: canada
Contact:

Post by bdbodger »

Yes you can use strings or numbers

case 0:

or

allies:
or for some other test like testing for player model or JV's bots , this sample checked the player model then used the bot models but not the scripts

Code: Select all

switch(self.model)
{
models/player/allied_airborne.tik:
	local.ent = human/multiplayer_allied_airborne_soldier.tik
	break
models/player/allied_pilot.tik:
	local.ent = human/multiplayer_allied_pilot.tik
	break
models/player/allied_sas.tik:
	local.ent = human/multiplayer_allied_oss_man.tik
	break
switch and break go together goto is just ugly the same goes for while loops
Image
User avatar
ViPER
General
Posts: 1058
Joined: Fri Jan 14, 2005 5:48 pm
Location: California
Contact:

Post by ViPER »

Cool. YOU ARE HERE! LOL

need more peeps to check this out. "king of the map room" great idea!

CAUTION!! look out for teamspeak users working in pairs. lol
Post Reply