Jump to content

Home

Shield like in siege_korriban


SD_Radical_Ed

Recommended Posts

  • Replies 50
  • Created
  • Last Reply

If you're going to do it without scripting, there might be a trigger_remove or something like it. Although it is probably easier to use a script and a variable. And my comment on ICARUS: I thought it was a good and useful language too, until I discovered Elite Force 2's script system. It uses C. I don't think I really need to say any more, do I?

Link to comment
Share on other sites

Yes, it was terrible. However, it has given me a chance to rebuild what I have destroyed, only better than before. And yes, I now save backups on my desktop. This way, if I go on another rampage (my stupidity wiped it out rather than some freak accident, admittedly) I have a copy of it on my desktop - two backups, actually.

 

How I lost my work was this: I downloaded a mod. Normally, the .pk3 files are inside .zip files, but not this time. I should have read the page. It said clearly I was d/ling clone_trooper_mod.pk3. I opened it up, and moved into my base folder. *cringe* I overwrote everything. Furious, I deleted everything I overwrote - which included the project. I am still left with the scars of my anger.

 

As you can see in my sig, I managed to reinstall JA by copying files one at a time from both CD's to the hard drive. But the computer does not recognize the installation. It still tells me to install. You may be thinking: "Why not just install it, and get it out of the way?" Sadly, I cannot. It only asks me to uninstall it. If I click yes, it takes off nothing. Around and around I go... so, I can play JA, I just can't uninstall. (But why would I want to? ;))

Link to comment
Share on other sites

***BEWARE! LONG POST FOLLOWS!***

 

Patience, grasshopper. (j/k)

 

I cannot find a place suitable to upload files of this size, so what I will do is take pics of my extremely ugly box (I said I wouldn't make it pretty) and show you how it's done. It'll be a medium-large tutorial, so allow me to take pics, upload them, and type up the post. I'll include the scripts necessary to run this. :) I'll provide detailed instructions. I do not know how much you know, so I will assume (probably wrongly) that you know nothing. I know you know more than nothing, but just in case there's just that one thing I didn't need to mention and you wanted to know... so, give me a little time. I have the mapping part done, since it's simple to map. The hard pard comes from the scripting... which I cannot teach you. I know too little of it myself.

 

EDIT - My scripting is done. I think. I'm going to check it out.

 

EDIT II - I have goofed up my scripting. I am going back in to fix it.

Link to comment
Share on other sites

I am unhappy to report that I have failed. I have tried time and again, but the scripts won't run. The third brush blows up when you saber it, the switch works, but I cannot seen to make it invisible and back. If you haven't done so already, finish the rest of the map, and I'll try again until I get it right.

 

EDIT - Now I am sure I need help myself. Here is what I have:

 

A brush with func_static. It has the targetname forcefield_not.

 

A trigger_once around the info_player_start. It targets a scriptrunner.

The script for this entity is thus:

//Generated by BehavEd

set ( /*@SET_TYPES*/ "SET_PARM1", "On" );

 

A switch with a trigger_multiple. It triggers a scriptrunner.

//Generated by BehavEd


if ( $get( STRING, "PARM1")$, $=$, $On$ )
{

affect ( "forcefield_not", /*@AFFECT_TYPE*/ FLUSH )
{
	set ( /*@SET_TYPES*/ "SET_INVISIBLE", /*@BOOL_TYPES*/ "true" );
	set ( /*@SET_TYPES*/ "SET_PARM1", "Off" );

	else (  )
	{
		set ( /*@SET_TYPES*/ "SET_INVISIBLE", /*@BOOL_TYPES*/ "false" );
		set ( /*@SET_TYPES*/ "SET_PARM1", "On" );
	}

}

}

 

A brush that is func_breakable. It targets a scriptrunner

//Generated by BehavEd


affect ( "forcefield_not", /*@AFFECT_TYPE*/ FLUSH )
{
set ( /*@SET_TYPES*/ "SET_INVISIBLE", /*@BOOL_TYPES*/ "true" );
}


affect ( "button", /*@AFFECT_TYPE*/ FLUSH )
{
set ( /*@SET_TYPES*/ "SET_TARGET", "NULL" );
}

 

Don't feel so bad for not knowing how to do this. Now I don't think I do either. Can someone tell me what I did wrong with this here?

Link to comment
Share on other sites

ROFL lol it was even too complicated for you

seriously thanks for helping me out with this tho

 

Normally I'd be pissed for that, but that's too true for me to get mad. Meh, what can I say, besides I need to look up a few tutorials.

 

Not have something show up in FFA... just not put it in a FFA map? You can't make an MP map for both Siege and FFA, I don't think. But the good news is you can copy and paste everything, and take out the Siege stuff.

Link to comment
Share on other sites

You can't make an MP map for both Siege and FFA, I don't think.

 

Yes you can, I did it with my Jungle Warfare map, never got the siege objectives set how I wanted them because I stopped working on it, but the siege mode does work and so does FFA. You just need to make sure guns are disabled for siege, so that the classes cant pick up weapons they arent supposed to spawn with. Really the objectives all worked, it was just that I couldnt get a model I wanted for one of the objectives to work right, so I gave up on it.

 

 

 

 

And while I dont know hardly anything about scripting, isnt the invisible thing for affecting players? I dont know if it would work or not for a brush in the map. Try using some thing else, such as a deactivate of some kind.

Link to comment
Share on other sites

***If anybody knows what I did wrong on the above script, please tell me!***

 

I had decided to stay clear of this thread as it seemed so crazy right from the beginning, but I suppose I can write a couple of notes here now that scripting is involved.

 

First thing: If you are going to use parms, then set the initial parm in Radiant already. There's no reason to have a small script just for that.

 

And in general, parms are entity specific, so you can't just launch a script with a scriptrunner and check for a parm. An entity must be affected first, and that means a parm of that particular entity is then checked.

 

And I would use a number to mark the on/off state (like 1 / 0). That's better programming convention, but of course you can do it however you like, as long as it works.

 

And also your if-else structure is flawed. In ICARUS syntax, else is not indented compared to the parent if. Check some Raven scripts to see what I mean.

 

And, if memory serves, when you turn something to invisible with the script command, it's also turned nonsolid. So, when you turn it back visible, you must also use the specific script command (SET_SOLID) to turn it back solid.

 

Well, that's about it.

Link to comment
Share on other sites

Doing this whole thing with scripting would be 90% easier than with those bizarre entity hacks posted earlier (that didn't even work, did they?). I could build this system from scratch in 7 minutes with scripting.

 

But naturally I won't. It wouldn't teach you anything. Basically all the info needed is pretty much already given, by combining the basic, simplest parts of the entity hacks posted with corrected bits of StaffSaberist's scripting. Well, a variable could also be used instead of a parm, but that's a small difference (though it would require an initial script run once to declare the variable).

Link to comment
Share on other sites

Since I already have that, I may as well fix it. And I will.

 

EDIT - All right. I have re-done the scripting. And still nothing. Can a func_static simply not be made invisible?

 

I have in Radiant:

 

A triggered script like thus for the info_player_start:

//(BHVD)
declare ( /*@DECLARE_TYPE*/ FLOAT, "Switch" );
set ( "Switch", "1" );

A func_static for our "forcefield".

A switch/wall section with a trigger_once. The trigger_once targets the scriptrunner, and triggers this script:

//(BHVD)

if ( $get( FLOAT, "Switch")$, $=$, $1$ )
{

affect ( "forcefield_not", /*@AFFECT_TYPE*/ INSERT )
{
	set ( /*@SET_TYPES*/ "SET_INVISIBLE", /*@BOOL_TYPES*/ "true" );
}

set ( "Switch", "0" );
}


else (  )
{

affect ( "forcefield_not", /*@AFFECT_TYPE*/ INSERT )
{
	set ( /*@SET_TYPES*/ "SET_INVISIBLE", /*@BOOL_TYPES*/ "false" );
	set ( /*@SET_TYPES*/ "SET_SOLID", /*@BOOL_TYPES*/ "true" );
}

set ( "Switch", "1" );
}

And finally, a func_breakable that targets a scriptrunner which triggers:

//(BHVD)

affect ( "forcefield_not", /*@AFFECT_TYPE*/ FLUSH )
{
set ( /*@SET_TYPES*/ "SET_INVISIBLE", /*@BOOL_TYPES*/ "true" );
}


affect ( "button", /*@AFFECT_TYPE*/ FLUSH )
{
set ( /*@SET_TYPES*/ "SET_TARGET", "NULL" );
}

 

I used "INSERT" instead of "FLUSH" because I thought it possible to erase the invisibility and nonsolidness. Was that a mistake? IF not, what else have I erred on? I tried to take your advice to the letter...

Link to comment
Share on other sites

Hmm... I don't immediately spot any strange errors. Use FLUSH, though. INSERT means any old commands the entity happens to be executing aren't erased but the new commands are added to the queue. That's very rarely something you desire - perhaps useful for some cinematic purposes.

 

Also it might be more clear to inactivate the switch, not set the target to null. That's quite strange a solution.

 

Recheck script_targetnames and stuff once more.

Link to comment
Share on other sites

I had it target NULL because it was targeting the scriptrunner. If it was not targeting the scriptrunner, the script could not run. But I changed it anyway, as well as the INSERT >> FLUSH.

 

OK, x2 checked the stuff in Radiant. I noticed only one thing that may be off: I had a scriptrunner entity with two values as opening. The first was the targetname, the second was the usescript key. So, I changed the targetname to opening_ss (StaffSaberist). Compiled. I load it up... no function.

 

Perhaps my error is in the placement of my scripts. I have the scripts in folder C:\Program Fles\LucasArts\Star Wars Jedi Knight Jedi Academy\GameData\Base\scripts\.

 

I set the scriptrunner to access scripts/scriptname. If I had my old project as a reference, I'd know immediately if I am wrong. But I don't. I will look for the answer, but I wonder if that is the problem.

 

Boy, Ed, we took over your thread! Don't worry, we are working on it. And I am learning some interesting ideas for my next project. :)

Link to comment
Share on other sites

Turn the script monitor on and you spare yourself of some speculation. I don't know if it works in MP, but test in SP if it doesn't. g_icarusdebug 5.

 

And you don't include the "scripts/" in the scripts path. Scripts is where scripts are always kept (though normally in subfolders under it), so no need to include that part in the path.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.


×
×
  • Create New...