• Shielder
    51 replies, posted
[release] It's been a long while since I released something, so here we go again: My new addon is here, called Shielder! [img]http://filesmelt.com/dl/newshielder.png[/img] This is a portable shield addon, which spawns numerous shields around you which will orbit you to maximize protection! To use: type [b]shielder_menu[/b] in the console to open the Shielder main menu, where you can change all of its settings. It's a [b]server side[/b] addon, clients will automatically download it if the server has it and they don't have it. Version is: 1.1! New features: model & color selector. Video: [media]http://www.youtube.com/watch?v=l7R74fKGdEM[/media] Download it here! [url=http://www.garrysmod.org/downloads/?a=view&id=95021][img]http://www.garrysmod.org/img/?t=dll&id=95021[/img][/url] To install: place the shielder folder in your garrysmod/addons folder. It's that simple. If you want to update, do the same, but overwrite everything. [/release]
First post nice. [highlight](User was banned for this post ("Snipe" - grea$emonkey))[/highlight]
Awesome. Noticed it in that "post what your working on " thread. Thought it looked neat.
This is pretty cool. Maybe add a few other models to choose from?
How will it react if the shield bumps into a wall or slope? Perhaps it should angle the pieces on that side to face parallel to the slop they go onto. That would also make an aforementioned sphere more plausible.
[QUOTE=Jeffman12;20930417]How will it react if the shield bumps into a wall or slope? Perhaps it should angle the pieces on that side to face parallel to the slop they go onto. That would also make an aforementioned sphere more plausible.[/QUOTE] They will clip through everything. You should watch the video. And I'm afraid I lack the trigonometric knowledge to make them into a sphere... [editline]09:42AM[/editline] [QUOTE=Arkantos;20930312]This is pretty cool. Maybe add a few other models to choose from?[/QUOTE] You can edit the lua file for now, but I'll add this in the next version!
Looks pretty good to me. =] The funny thing is that i just made a shield yesterday but it works in a totally different way. It can shield you gainst props and such things but not bullets. =/ Putting them in a sphere shouldn't be too hard but a problem might be visibility. You can use Vector:Rotate( Angle ) to fix that sphere shield, making the props facing the player isn't very hard either. faceAng = (propPos - PlyPos):Normalize():Angle()
[QUOTE=Sakarias88;20933539]Looks pretty good to me. =] The funny thing is that i just made a shield yesterday but it works in a totally different way. It can shield you gainst props and such things but not bullets. =/ Putting them in a sphere shouldn't be too hard but a problem might be visibility. You can use Vector:Rotate( Angle ) to fix that sphere shield, making the props facing the player isn't very hard either. faceAng = (propPos - PlyPos):Normalize():Angle()[/QUOTE] Stargate beat you too it, They made it, broke it, fixed it and made it square and shitty.
Nice, you release it.
Awesome video.
You could do with making them transparent, it's quite the irritation to try see through them.
Splendid
Very interesting
[QUOTE=Ass Man;20933665]Stargate beat you too it, They made it, broke it, fixed it and made it square and shitty.[/QUOTE] Oh, stop whining about it. It's not a serious problem, just one hardly noticeable thing wrong. And this is not the same thing. Looks really good, DLing.
[QUOTE=Unib5;20937416]You could do with making them transparent, it's quite the irritation to try see through them.[/QUOTE] Added to todo list. I'll probably do it just like the color tool, being able to change red, green, blue and alpha.
Looks very sexy, you should add a setting that materializes the props so you can see through them
I love this! But, you should have an option to change the model, the plank being the default one.
[QUOTE=Kude;20942991]Oh, stop whining about it. It's not a serious problem, just one hardly noticeable thing wrong. And this is not the same thing. Looks really good, DLing.[/QUOTE] LAZY LAZY LAZY Can't even fix ONE thing.
Just add Ass Man to the ignore list, it'll make your life much better. And this is interesting. From what I've tried, 'tis fun :3
I'm running this on my server now, great work.
[QUOTE=Inacio;20954638]Get an option to make it a half-sphere. That would be awesome.[/QUOTE] Better yet, a full sphere. They pass through the world, at least...
Nice, front page. Cookie for you!
From the GarrysMod.com description I was expecting wooden shield entitys that you can spawn and will orbit you. But I guess this is just as good.
Maybe you could fix so the shield doesn't block things that goes out from the shield. Here is an example about how to fix that. ply is the player. v is any entity inside the shield. [lua] local dir1 = v:GetVelocity():Normalize() local dir = (v:GetPos() - ply:GetPos()):Normalize() local dot = dir:DotProduct(dir1) if dot < 0 then --something happens end [/lua] if dot is less than 0 it means that something is going in the players general direction. If you for example throw a grenade the dot product will be above 0. You could probably implement it in the ShouldCollide gamemode hook. It may require that you set the player as a networked ent on all the shield props.
Sakarias, can u release your shield too? I think that breakable shield which interacts with props and world is much better that this rotating fortress. Dlagor, what's about shield swep, which protects the user only from attacks which come only from specific angle? I meant the shield from call of duty modern warfare 2. [editline]04:33PM[/editline] You know, it will be awesome if shield swep will ricoshet attacks back into user.
Kinda useless, since people can basically do this with wiremod these times...
[QUOTE=Vadim;20972649]Sakarias, can u release your shield too? I think that breakable shield which interacts with props and world is much better that this rotating fortress.[/QUOTE] Nah, the shield is for the mech only and I wouldn't like to steal Dlaor's time to shine.
It should be either made with a custom amount of transparency or a set level, plus allowing the owner to shoot through them or have a toggle box to enable/disable it.
When I saw this I spent half an hour give or take to make this E2. :) [url]http://www.xfire.com/video/25dfe4/[/url] [code]@name Shielder @persist [Props Queue HasProp]:array Num CurrentNum Speed N if (first()|duped()) { dPanel("Shielder",vec2(scrW()/2-275/2,scrH()/2-145/2),vec2(275,145)) dButton("Remove Shielder","Shielder",vec2(8,32),vec2(100,25)) dButton("Reconstruct Shields","Shielder",vec2(130,32),vec2(100,25)) dSlider("Number of shields","Shielder",vec2(8,55),260,3,20) dSetNval("Number of shields",6) dSlider("Shield rotate speed","Shielder",vec2(8,100),260,0,360) dSetNval("Shield rotate speed",45) dRunOnChange("Reconstruct Shields",1) dRunOnChange("Number of shields",1) dRunOnChange("Shield rotate speed",1) dRunOnChange("Enable Shielder",1) dShow("Shielder",0) propSpawnEffect(0) Num = 6 Speed = 45 Queue = array(1,1,1,1,1,1) HasProp = array(0,0,0,0,0,0) runOnTick(1) runOnChat(1) } if (clk("ShieldCheck")) { if (CurrentNum != Num & CurrentNum + Queue:count() != Num) { if (Num > CurrentNum) { for(I=1,Num) { if (!HasProp[I,number]) { Queue:pushNumber(1) } } } elseif (Num < CurrentNum) { for(I=1,CurrentNum-Num) { Props[Props:count(),entity]:propDelete() Props:remove(Props:count()) HasProp[Props:count(),number] = 0 CurrentNum-- } } } } elseif (chatClk(owner())) { if (lastSaid() == ".remove") { hideChat(1) print("Removing shielder.") Props:propDelete() selfDestruct() exit() } elseif (lastSaid() == ".menu") { hideChat(1) print("Opening menu") dShow("Shielder",1) } } elseif (dClk("Number of shields")) { Num = dNval("Number of shields") stoptimer("ShieldCheck") timer("ShieldCheck",1000) exit() } elseif (dClk("Shield rotate speed")) { Speed = dNval("Shield rotate speed") exit() } elseif (dClk("Remove Shielder")) { print("Removing shielder.") Props:propDelete() selfDestruct() exit() } elseif (dClk("Reconstruct Shields")) { Props:propDelete() CurrentNum = 0 Queue = array() Props = array() HasProp = array() for(I=1,Num) {Queue[I,number] = 1, HasProp[I,number] = 0} } else { if (Queue:count()) { timer("Spawn",500) if (clk("Spawn")) { E = propSpawn("models/props_junk/wood_pallet001a.mdl",1) Found = 0 for(I=1,Num) { if (!HasProp[I,number]) { Props[I,entity] = E HasProp[I,number] = 1 Found = 1 CurrentNum++ break } } if (!Found) {E:propDelete()} Queue:remove(1) } } N+=Speed/180, if (N>360) {N=0} if (Props:count()) { for(I=1,Props:count()) { E = Props[I,entity] if (!E & HasProp[I,number]) { HasProp[I,number] = 0 CurrentNum-- if (CurrentNum < Num & CurrentNum + Queue:count() < Num) { Queue:pushNumber(1) } continue } Pos = owner():pos()+vec(0,(12+Num/50)*Num,45):rotate(ang(0,360/Num*I+N,0)) Ang = ang(90,360/Num*I+N-90,0) E:setPos(Pos) E:setAng(Ang) } } }[/code]
[QUOTE=Divran;20983847]When I saw this I spent half an hour give or take to make this E2. :) [url]http://www.xfire.com/video/25dfe4/[/url] [code]@name Shielder @persist [Props Queue HasProp]:array Num CurrentNum Speed N if (first()|duped()) { dPanel("Shielder",vec2(scrW()/2-275/2,scrH()/2-145/2),vec2(275,145)) dButton("Remove Shielder","Shielder",vec2(8,32),vec2(100,25)) dButton("Reconstruct Shields","Shielder",vec2(130,32),vec2(100,25)) dSlider("Number of shields","Shielder",vec2(8,55),260,3,20) dSetNval("Number of shields",6) dSlider("Shield rotate speed","Shielder",vec2(8,100),260,0,360) dSetNval("Shield rotate speed",45) dRunOnChange("Reconstruct Shields",1) dRunOnChange("Number of shields",1) dRunOnChange("Shield rotate speed",1) dRunOnChange("Enable Shielder",1) dShow("Shielder",0) propSpawnEffect(0) Num = 6 Speed = 45 Queue = array(1,1,1,1,1,1) HasProp = array(0,0,0,0,0,0) runOnTick(1) runOnChat(1) } if (clk("ShieldCheck")) { if (CurrentNum != Num & CurrentNum + Queue:count() != Num) { if (Num > CurrentNum) { for(I=1,Num) { if (!HasProp[I,number]) { Queue:pushNumber(1) } } } elseif (Num < CurrentNum) { for(I=1,CurrentNum-Num) { Props[Props:count(),entity]:propDelete() Props:remove(Props:count()) HasProp[Props:count(),number] = 0 CurrentNum-- } } } } elseif (chatClk(owner())) { if (lastSaid() == ".remove") { hideChat(1) print("Removing shielder.") Props:propDelete() selfDestruct() exit() } elseif (lastSaid() == ".menu") { hideChat(1) print("Opening menu") dShow("Shielder",1) } } elseif (dClk("Number of shields")) { Num = dNval("Number of shields") stoptimer("ShieldCheck") timer("ShieldCheck",1000) exit() } elseif (dClk("Shield rotate speed")) { Speed = dNval("Shield rotate speed") exit() } elseif (dClk("Remove Shielder")) { print("Removing shielder.") Props:propDelete() selfDestruct() exit() } elseif (dClk("Reconstruct Shields")) { Props:propDelete() CurrentNum = 0 Queue = array() Props = array() HasProp = array() for(I=1,Num) {Queue[I,number] = 1, HasProp[I,number] = 0} } else { if (Queue:count()) { timer("Spawn",500) if (clk("Spawn")) { E = propSpawn("models/props_junk/wood_pallet001a.mdl",1) Found = 0 for(I=1,Num) { if (!HasProp[I,number]) { Props[I,entity] = E HasProp[I,number] = 1 Found = 1 CurrentNum++ break } } if (!Found) {E:propDelete()} Queue:remove(1) } } N+=Speed/180, if (N>360) {N=0} if (Props:count()) { for(I=1,Props:count()) { E = Props[I,entity] if (!E & HasProp[I,number]) { HasProp[I,number] = 0 CurrentNum-- if (CurrentNum < Num & CurrentNum + Queue:count() < Num) { Queue:pushNumber(1) } continue } Pos = owner():pos()+vec(0,(12+Num/50)*Num,45):rotate(ang(0,360/Num*I+N,0)) Ang = ang(90,360/Num*I+N-90,0) E:setPos(Pos) E:setAng(Ang) } } }[/code][/QUOTE] Is it really necessary to show how easy this is to do in E2? My version is stand alone, what if someone wants this addon but doesn't have/want to install Wiremod?
Sorry, you need to Log In to post a reply to this thread.