Page 2 of 2
Posted: Sun Jan 30, 2005 6:13 pm
by Bjarne BZR
Rookie One wrote:No, Bjarne, this is exactly the same issue as I described in my previous post - it will be triggered before you choose the weapon.
Yes, but I was thinking that you use the scanner to test until the player
has selected a weapon... and when a weapn has been selected: set the runspeed and mark the player as processed.
This presuppses that you can query the player for info on its weapon, but that part you are probably better informed on than me.
Posted: Sun Jan 30, 2005 6:16 pm
by jv_map
Rookie One wrote:Nah, I tell you, this doesn't work!

Here's my thread:
Code: Select all
waitTillJoinGame:
while (self.dmteam == "spectator" || !isAlive(self))
waitframe
local.trigger = spawn trigger_multiple origin self.origin
local.trigger setsize ( -16 -16 -16 ) ( 16 16 16 )
local.trigger waittill trigger
self thread global/enemyterritory/class_handler.scr::determineClass
self thread waitTillDeath
end
The determineClass thread reads the weapon the player's carrying and gives him a new, class-specific loadout, but it's called right at the moment of choosing a team... Aaargh!!!

Try it like this:
Code: Select all
waitTillJoinGame:
while (self && (self.dmteam == "spectator" || !isAlive(self)))
waitframe
if(self) // just checks if player didn't leave battle
{
local.trigger = spawn trigger_multiple
local.trigger setsize ( -16 -16 -16 ) ( 16 16 16 )
local.trigger glue self
local.chosen_team = self.dmteam
while(self && self.dmteam == local.chosen_team)
{
local.trigger waittill trigger
if(parm.other == self)
break
}
local.trigger remove
if(self && self.dmteam == local.chosen_team)
{
self thread global/enemyterritory/class_handler.scr::determineClass
self thread waitTillDeath
}
}
end
I think this will work... only small problem would be if a player leaves when the thread is waiting for a trigger event... could fix that with a thread that does something along the lines of local.trigger activate $world after a given delay too

Posted: Sun Jan 30, 2005 6:21 pm
by Rookie One.pl
I don't quite get this, but...
What I've done is this: I've got a loop that waits a frame till the player joins a team or becomes alive. When he does, there's another loop that tries to set the class and it stops only when this is done. However, jv_map told me not to abuse weapon checking since it can cause lags and I wanted to avoid it...

But what Elgan said is quite interesting. How to find out player's current leg state? When you're actually spawned you first land on the ground, right?
Posted: Sun Jan 30, 2005 6:33 pm
by Elgan
you u land when u spawn.
I mean like set some player flags and only when they have joined a team and landed do blah.
i dont think waitforstate works

so u wud have to mess with exec scripts etc.
if u can work it maybe it wud be better to use jv's thing. I dunno. i want a muffin
Posted: Sun Jan 30, 2005 6:38 pm
by Rookie One.pl
jv_map wrote:I think this will work... only small problem would be if a player leaves when the thread is waiting for a trigger event... could fix that with a thread that does something along the lines of local.trigger activate $world after a given delay too

Sure it works...
Code: Select all
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
trigger_multiple::glue : Cannot glue to master because of: MAX_GLUE_CHILDREN reached
And still nothing happens!

Posted: Mon Jan 31, 2005 5:17 pm
by jv_map
How often is waitTillJoinGame called?
Posted: Mon Jan 31, 2005 7:47 pm
by Rookie One.pl
I'm not sure myself how many times it was called... There was a bug that made the whole script execute a few times.

And the cause was putting it into DMprecache.scr - it's called by the map script and then by the *_precache.scr... I removed the script call from there and now it's just called from the map script. I discovered this bug when I was spawning a player's model after his death (similar to what Mefy does in freeze tag) - when I looked at the model, the fps dropped from like 100 to 2,5...
Anyway, I'm still working on this. However, I'm sure the trigger method didn't work. Will post something when I got some other things running smoothly.