Fortress Forever

Fortress Forever (https://forums.fortress-forever.com/index.php)
-   Lua (https://forums.fortress-forever.com/forumdisplay.php?f=44)
-   -   Lua Requests (Lua Assistance Division) (https://forums.fortress-forever.com/showthread.php?t=14729)

squeek. 02-25-2008 01:41 AM

Lua Requests (Lua Assistance Division)
 
Make any and all lua scripting requests here, and the LADs will attempt to get it done.

GambiT 02-25-2008 01:54 AM

ok, heres a task. this is for rock2.

i have 2 triggers(for each team), one for wo entry(call it "wolight"[red/bluewolight]) and one for yard entry spotlight(call it "yardlight"[red/blueyardlight]). heres the thing, when a "disguised" enemy spy goes through the trigger i do NOT want it to light up, but for all other enemies i do.

enough info?

also, dunno how we're going to do it, but if you could get something rolling with the green gas effect via lua that'd be sweet.

Pon 02-25-2008 02:16 AM

Code:

if player:GetDisguisedTeam == *whateverteam* then return end
      else
light her up (whatever code you already have)....


*whateverteam* really depends on the code you already have, I guess. If you have the team variable already picked out (which I guess you should seeing as the lights are team based, but meh)

Without seeing the code you have, I can't really give you much more than that. But this should point you in the right direction, and if you post/send me the code I'd be happy to fit it in for you if you like.

I'd also consider what would happen when a disguised and cloaked spy enters the base... would the situation be similar to SG's tracking in that instance? If so i can expand upon the code further.

squeek. 02-25-2008 02:16 AM

Re: GambiT
Code:

triggerlight = trigger_ff_script:new({ team = Team.kUnassigned })

function triggerlight:allowed( touch_entity )
        if IsPlayer( touch_entity ) then
                local player = CastToPlayer( touch_entity )
                if player:IsDisguised() == false then
                        return player:GetTeamId() == self.team
                end
        end
        return EVENT_DISALLOWED
end

function triggerlight:ontouch( touch_entity )
  if IsPlayer( touch_entity ) then
      OutputEvent( self.light, "TurnOn" )
  end
end

function triggerlight:onendtouch( touch_entity )
  if IsPlayer( touch_entity ) then
      OutputEvent( self.light, "TurnOff" )
  end
end

blueyardlight = triggerlight:new({ team = Team.kBlue, light = "blueyardlight_light" })
bluewolight = triggerlight:new({ team = Team.kBlue, light = "bluewolight_light" })
redyardlight = triggerlight:new({ team = Team.kRed, light = "redyardlight_light" })
redwolight = triggerlight:new({ team = Team.kRed, light = "redwolight_light" })

Also, you could have the spotlights follow the player. But with multiple players in the trigger it could be hard to make sure it works.

ensiform 02-25-2008 02:19 AM

Quote:

Originally Posted by GambiT
ok, heres a task. this is for rock2.

i have 2 triggers(for each team), one for wo entry(call it "wolight"[red/bluewolight]) and one for yard entry spotlight(call it "yardlight"[red/blueyardlight]). heres the thing, when a "disguised" enemy spy goes through the trigger i do NOT want it to light up, but for all other enemies i do.

From base_teamplay... involving respawn door triggers:

Code:

function respawndoor:allowed( allowed_entity )
        if IsPlayer( allowed_entity ) then
               
                local player = CastToPlayer( allowed_entity )
               
                if player:GetTeamId() == self.team then
                        return EVENT_ALLOWED
                end
               
                if self.allowdisguised then
                        if player:IsDisguised() and player:GetDisguisedTeam() == self.team then
                                return EVENT_ALLOWED
                        end

                end
        end
        return EVENT_DISALLOWED
end

So maybe... trigger_ff_script that with an ontrigger callback that looks for enemies (and also do a check for disguised spies that match the allied team) and then have it fail same as if regular allies touch it

GambiT 02-25-2008 02:19 AM

lol, here....

Code:

IncludeScript("base_teamplay");

function startup()

        SetPlayerLimit( Team.kBlue, 0 )
        SetPlayerLimit( Team.kRed, 0 )
        SetPlayerLimit( Team.kYellow, -1 )
        SetPlayerLimit( Team.kGreen, -1 )
end

haha...

anyway, the spotlights i'm talking about are the ones that light up when the enemy comes into your yard and also the one for the wardens office entry. basically trigger the lights when an enemy comes through the trigger, but i dont want it to trigger the lights when the spy is disguised.

maybe it's to soon to worry about this. but we do need to figure something out with the gas...

GambiT 02-25-2008 02:20 AM

thanks ya'll, Squeek that looks like what i need.

appreciate it man!

Pon 02-25-2008 02:21 AM

^^ boss showing off in front of the team... :(

Of course, your way would let spies in that are disguised as their own team :)

Aside from that, I guess squeek's way pretty much fits what you weant then, if thats all the Lua you have :D

EDIT: Wow, clambering over eachother to help.... :)

squeek. 02-25-2008 02:24 AM

Quote:

Originally Posted by GambiT
maybe it's to soon to worry about this. but we do need to figure something out with the gas...

I haven't messed much with this, but it could be possible to force the spy gas effect. I'll look into it.

Quote:

Originally Posted by Pon
EDIT: Wow, clambering over eachother to help.... :)

Haha, I was quite surprised by the activity in this thread. And, yeah, my code would let any disguised spy through, no matter the team he's disguised as. That could be changed really easily though.

GambiT 02-25-2008 02:28 AM

no its fine, if i'm diguised as a friendly and it doesnt set off the light they might think i'm a friendly spy. thats what i call good confusion.

the spy gas is exactly what i want with the gas. i sure as hell hope thats possible!

Pon 02-25-2008 02:34 AM

I think it would be along the lines of:

Code:

player:AddEffect (EF.kGas)
(unsure about the "EF." part, i'll deferr to anyone's experience as I haven't used it before)

As for the protective suits.... that's probably the aukward bit.

squeek. 02-25-2008 02:38 AM

Quote:

Originally Posted by Pon
I think it would be along the lines of:

Code:

player:AddEffect (kGas)
As for the protective suits.... that's probably the aukward bit.

Protective suits will probably use the same basic code that the flag uses. And it's spelled Auwquard.

And, the Gas effect thing requires 3 floats (numbers) after the effect tag, so I'm figuring out what each does right now.

Code:

player:AddEffect( EF.kGas, number, number, number )

GambiT 02-25-2008 02:40 AM

yea the suits are going to be tricky to. i figured if we couldnt get suits in then every where that a suit was would be a small chamber you get in and close, and of coarse it would have to force close incase some dick tried to get in there with you. other wise you'd both die.

squeek. 02-25-2008 02:51 AM

Okay, so I figured out what the three numbers are:

Code:

player:AddEffect( EF.kGas, effect duration, icon duration, speed )
Testing what speed does in this context (if anything). Maybe it's the fade-in time? But probably it's nothing.

EDIT: Speed doesn't look like it does anything. Each tick does 1 damage. Probably going to have to mess with the player_ongas() function to get it to work how you want it.

GambiT 02-25-2008 08:11 PM

i appreciate your help on this, let me know when you have something and i'll test it.

Dr.Satan 02-25-2008 09:30 PM

Is it possible to use the HL suit from valve? If you can add that to materials and use the prop in your map then couldn't we potentially just tie a lua to that prop to null the effect of the lua for the EF.kGas?

Or is that not a way to check if the model / prop is called on the player w/out actually coding it into the game?

I would hate to have to see it being a cordoned off trigger b/c what was best about grabbing a suit was you could then get back into position once you had one.

squeek. 02-25-2008 09:43 PM

Quote:

I would hate to have to see it being a cordoned off trigger b/c what was best about grabbing a suit was you could then get back into position once you had one.
It won't have to be. It would just make it easier.

Dr.Satan 02-25-2008 10:02 PM

Yeah...hopefully glow gets done for 2.1...then we can simply make an entity icon and tie a lua code to it. If not it's going to be difficult to see who is immune and who isn't.

The gas chamber does need an immunity trigger though!

Dr.Satan 02-25-2008 10:59 PM

Ok so i did some more research and it seems that is how the original creator of rock_2 did it...but is there a HEV suit that goes with HL 2? I would assume there has to be, but you never actually see the model so Valve may not have done it.

I'll check when I get home.

Hirohito 02-25-2008 11:17 PM

Quote:

Originally Posted by Dr.Satan
Ok so i did some more research and it seems that is how the original creator of rock_2 did it...but is there a HEV suit that goes with HL 2? I would assume there has to be, but you never actually see the model so Valve may not have done it.

I'll check when I get home.

There is. It's in /items under hevsuit.mdl.


All times are GMT. The time now is 02:43 PM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.