Jump to content

MoonDog

Members
  • Posts

    568
  • Joined

  • Last visited

Posts posted by MoonDog

  1. I didn't mean to say it was caused by OpenJK. :P I remember asking when someone told me that certain Icarus functions were made to work in MP in OpenJK if the problems were fixed, and they erroneously told me they were fixed in OpenJK.

     

    Thanks for the info. I'll pass it along.

  2.  

    timescale is cheat protected so im not sure.  Did you mean Linux Ded?

     

    I'm sorry, you said it wasn't an OS specific issue. I thought you might have meant there were issues setting timescale via Icarus in Windows that I was not aware of because they are not immediately apparent.

     

     

     

     

    lol dvar is so Call of Duty  :P

     

    I'm brain washed. :P

  3. @@Xycaleth probably could need sample map with scripts + source and a vid demonstration of intended windows behavior for the navgoal thing.

     

    As for timescale... I still don't know whats even wrong with it.  Its not even an OS specific thing.  And if it is what might be happening then its worse than I thought and won't really fix it until mrwonko is done with some major rewrite stuff.

     

    I don't know if I have time to put together a sample. There is an area in my FFA3 mod with a navgoal scripted AI. This would be inconvenient for debugging due to the size/load times.

     

     

    So, I've just realised something here. When you say these problems are happening, you meant that other people, who happen to be using your map mod, are having these problems.

     

     

    Correct. I don't want to stop offering support for my mods, but it's starting to get to the point where I am considering it.

     

     

    The NPC issues you've described are fixed as far as I can tell in OpenJK, and would only happen in JA++ as that seems to be the only up-to-date mod in the past few years. So the NPC problem is not related to OpenJK, but to JA++. As long as they have an up to date version of JA++, then they shouldn't have any problems.

     

    I'm told the mod is regular JA+, on Linux. AFAIK, the last time I attempted to utilize the the AI movement on Openjk + ja+(not ja++), it was not working as intended.

     

     

    As for timescale... I still don't know whats even wrong with it.  Its not even an OS specific thing.  And if it is what might be happening then its worse than I thought and won't really fix it until mrwonko is done with some major rewrite stuff.

     

    Are there some sort of hidden issues on the Windows Ded? The only time the Icarus/manually setting the dvar has worked for me has been on a Windows machine.

  4. To be clear, I'm not "doing" anything. I'm just tired of getting emails about my mod not working on linux servers, referring people to OpenJK, and getting emails back that the problem is not fixed.

  5. In interest of reducing the amount of emails coming at me about my FFA3 mod, I will ask for what seems to be the 4th time.

     

     

    When will OpenJK fix the following two issues with the dedicated server on LINUX.

     

    • NPC's don't follow scripted navgoals. They glitch about in circles
    • Setting the timescale either through direct commands, or through Icarus does not work on Linux servers

     

    I've opened reports for both of these issues on Github previously, but as I remember it was laughed off. Rudely.

  6. @DarthDementous a fellow Whovian yayyyy! xD

     

    I do agree that it would take considerable scripting and other work.  Scripting isn't really my forte though...

     

    I looked at this a while ago. The scripting required actually wouldn't be too advanced. The thing that deterred me from even attempting this would be the massive amount of entity work. You'd need to gut a lot of stuff out, and you'd need to do it for all the BSP's. Then you'd have to redistribute all of the BSP's, and provide instructions on how to setup the proper rotation vstrs on a server, as well as how to setup the scorelimit.

     

    Then there would be a lot of relying on people not to be dicks and intentionally break shit. Too much work. ><

    CaptainCrazy likes this
  7. lil_binger said he loves criticism and feedback, so here you go! :)
     
     
    Visibility:
     
    Level needs visibility optimization. Either with better structural brush layout, or hint brushing. Both preferably. lockpvs and showtris indicated that performance could be a good deal better throughout most of the level.
     
    *Side note*: Brushwork needs a good bit of treatment in terms of edge mitre to reduce tris counts. Also, there are a good deal of unnecessary surface splits from small brushes lying coplanar with larger brush planes. In the long run, this will cost performance. 
     
    Examples:


    shot0050_zps5e0200fb.jpg
     
    shot0051_zps972c8081.jpg
     
    shot0049_zpseba6936d.jpg


     
     
    Lighting:
     
    There are quite a few incidents in the level where there is light, but no light source to provide the light. Where is this light coming from? Light entities need accompanying geo/models.
     
     *Side note*: Where some areas DO have logical light sources, the light generated is not consistent with the light source. Meaning, the amount of light generated is disproportionate to the size of the light source. Also, light colors do not seem to always match the color indicated by the light source.
     
    Examples:
     


    Where is the light coming from? No logical light sources in vicinity.
    shot0046_zps5f197314.jpg
     
     
    Where is the light coming from? No logical light sources in vicinity.
    shot0053_zps51cb07bd.jpg
     
     
    Light is blue. The light sources are white.
    shot0054_zps5dbd5b99.jpg


     
     
    Theme/Texturing/Geo:
     
    The theme is relatively inconsistent throughout the level, which isn't necessarily a bad thing, however the "Bespin" theme and tones in the map look like a frankenstein of Bespin/Cloud city community made maps, or the JKO map. The textures, generally, match the colors and themes of Bespin. This are base textures however, so I guess Raven did a good job there. However, if we look at reference of Bespin, either through art or other games, we find the shapes and geo to be quite different. 
     
    Surfaces in Bespin generally have a very curved quality. Not harsh edges, hexigon/octogon shapes.
     
    Examples from reference image search:
     

     
    Landing platforms are not hexigons/octogons.
    JEKvb.png
     
     
    The hard surfaces are curved. Almost a very fluid fungi feel to the architecture.
    BESPIN1.JPG


     
    In terms of texture application, I'd say this level needs a really good pass on alignment and stretching. Some of the patch surfaces have stretched textures, or textures that are misaligned. Some of the brush surfaces need an alignment pass as well, to bring up the quality of the aesthetics.
     


    shot0056_zpsc10158df.jpg


     
     
    Layout:
     
    Numerous layout issues for gameplay types. Inconsistent ramp angles and heights is a problem that needs to be addressed. As well as scale for the geo. Many things do not seem to have been thought out in terms of good scale. Additionally, the current geo needs a very thorough clipping pass. There are a huge amount of hangups in the level to get caught on.
     
    In regards to the layout: The layout is largely unconducive for varied CTF play. Many of the spaces share the same characteristics in terms of space and height variation. This does not support a large amount of player preference. Also, the layout is not optimized. It's sort of baffling unless you sit there and attempt to memorize the map for a large period of time. A good layout should teach the players within the first 5 minutes. There are too many confusing twists and turns that don't seem to have a great deal of thought towards gameplay.
     


    shot0047_zps9bfbd644.jpg
     
    shot0048_zps1bf9aa78.jpg
     
    shot0052_zps4532b0c3.jpg

     

     

     

     

    Conclusion:

     

    Reads more like a blockout that needs to go through more stages of iteration for the layout. Work with reference at hand. Reference images for lighting, for geometry, and overall texturing. Look at other levels, both included samples and well made community maps to get a handle on scale. Work more towards accommodating various styles of prefered gameplay if you are going to claim to support CTF on the map. Gameplay, gameplay, gameplay. Everything else(lighting, art, etc...) should be built AROUND the gameplay. "Move your rifle around your head, not your head around your rifle."

    Boothand likes this
  8. @@MoonDog No I don't think I do. I used the cylinder tool to make a bending corner on a pipe, but I've used that before and had no issues. The only brushes I cleaved into only turned it into a pentagon, so i'm not sure what the error is.

     

     

     

    Well, it's definitely an error defined in light trace.

     

     

    #define MAX_TW_VERTS            12
    
     

     

    typedef struct traceWinding_s
    {
    	vec4_t plane;
    	int infoNum, numVerts;
    	traceVert_t v[ MAX_TW_VERTS ];
    }
    
     

    void ClipTraceWinding( traceWinding_t *tw, vec4_t plane, traceWinding_t *front, traceWinding_t *back ){
    	int i, j, k;
    	int sides[ MAX_TW_VERTS ], counts[ 3 ] = { 0, 0, 0 };
    	float dists[ MAX_TW_VERTS ];
    	float frac;
    	traceVert_t     *a, *b, mid;
    
    
    	/* clear front and back */
    	front->numVerts = 0;
    	back->numVerts = 0;
    
    	/* classify points */
    	for ( i = 0; i < tw->numVerts; i++ )
    	{
    		dists[ i ] = DotProduct( tw->v[ i ].xyz, plane ) - plane[ 3 ];
    		if ( dists[ i ] < -TW_ON_EPSILON ) {
    			sides[ i ] = SIDE_BACK;
    		}
    		else if ( dists[ i ] > TW_ON_EPSILON ) {
    			sides[ i ] = SIDE_FRONT;
    		}
    		else{
    			sides[ i ] = SIDE_ON;
    		}
    		counts[ sides[ i ] ]++;
    	}
    
    	/* entirely on front? */
    	if ( counts[ SIDE_BACK ] == 0 ) {
    		memcpy( front, tw, sizeof( *front ) );
    	}
    
    	/* entirely on back? */
    	else if ( counts[ SIDE_FRONT ] == 0 ) {
    		memcpy( back, tw, sizeof( *back ) );
    	}
    
    	/* straddles the plane */
    	else
    	{
    		/* setup front and back */
    		memcpy( front, tw, sizeof( *front ) );
    		front->numVerts = 0;
    		memcpy( back, tw, sizeof( *back ) );
    		back->numVerts = 0;
    
    		/* split the winding */
    		for ( i = 0; i < tw->numVerts; i++ )
    		{
    			/* radix */
    			j = ( i + 1 ) % tw->numVerts;
    
    			/* get verts */
    			a = &tw->v[ i ];
    			b = &tw->v[ j ];
    
    			/* handle points on the splitting plane */
    			switch ( sides[ i ] )
    			{
    			case SIDE_FRONT:
    				if ( front->numVerts >= MAX_TW_VERTS ) {
    					Error( "MAX_TW_VERTS (%d) exceeded", MAX_TW_VERTS );
    				}
    				front->v[ front->numVerts++ ] = *a;
    				break;
    
    			case SIDE_BACK:
    				if ( back->numVerts >= MAX_TW_VERTS ) {
    					Error( "MAX_TW_VERTS (%d) exceeded", MAX_TW_VERTS );
    				}
    				back->v[ back->numVerts++ ] = *a;
    				break;
    
    			case SIDE_ON:
    				if ( front->numVerts >= MAX_TW_VERTS || back->numVerts >= MAX_TW_VERTS ) {
    					Error( "MAX_TW_VERTS (%d) exceeded", MAX_TW_VERTS );
    				}
    				front->v[ front->numVerts++ ] = *a;
    				back->v[ back->numVerts++ ] = *a;
    				continue;
    			}
    
    			/* check next point to see if we need to split the edge */
    			if ( sides[ j ] == SIDE_ON || sides[ j ] == sides[ i ] ) {
    				continue;
    			}
    
    			/* check limit */
    			if ( front->numVerts >= MAX_TW_VERTS || back->numVerts >= MAX_TW_VERTS ) {
    				Error( "MAX_TW_VERTS (%d) exceeded", MAX_TW_VERTS );
    			}
    
    			/* generate a split point */
    			frac = dists[ i ] / ( dists[ i ] - dists[ j ] );
    			for ( k = 0; k < 3; k++ )
    			{
    				/* minimize fp precision errors */
    				if ( plane[ k ] == 1.0f ) {
    					mid.xyz[ k ] = plane[ 3 ];
    				}
    				else if ( plane[ k ] == -1.0f ) {
    					mid.xyz[ k ] = -plane[ 3 ];
    				}
    				else{
    					mid.xyz[ k ] = a->xyz[ k ] + frac * ( b->xyz[ k ] - a->xyz[ k ] );
    				}
    
    				/* set texture coordinates */
    				if ( k > 1 ) {
    					continue;
    				}
    				mid.st[ 0 ] = a->st[ 0 ] + frac * ( b->st[ 0 ] - a->st[ 0 ] );
    				mid.st[ 1 ] = a->st[ 1 ] + frac * ( b->st[ 1 ] - a->st[ 1 ] );
    			}
    
    			/* copy midpoint to front and back polygons */
    			front->v[ front->numVerts++ ] = mid;
    			back->v[ back->numVerts++ ] = mid;
    		}
    	}
    }
    
     

     

     

    I think you've got some complex objects that need to be split up into multiple brushes/meshes

  9. So during a test compile I recieved an error i've never seen:

     

    ************ ERROR ************

    MAX_TW_VERTS (12) exceeded

     

    Now most of the lighting in the map is coming from actual light source faces, and i've utilized this before so I dont think thats the problem.

    What this error refers to I'm not sure since I can still test the map without any noticable issue.

     

    Presently I'm at a loss.

     

     

    Do you have brushes that you've clipped a lot of faces onto?

  10. You are very sensitive, and seem to be reacting based on a misconception. I was speaking in generalities to voice an opinion about design. I have not looked at any WIP threads here as of late, because mostly people like you going on tirades, such as you just did, when receiving actual criticism or an opinion counter to their own. 

     

    I'm not sure what part of anything I said you misunderstood as any sort of personal attack at your work, but I have not even looked at it. Nor would I, given your little outburst. It discourages me from believing you'd be capable of holding any sort of meaningful discussion regarding design if I gave you real criticism. Unprofessional, counter-productive.

  11. Well the map I'm working on is going to be designed for TFFA primarily, as will be noted in the color schemes. But I wanted to have it playable for basic FFA as well.

    Not so much concerned with the CTF side of it personally.

    So I'm tempted to try it out with the FFA/TFFA spawns in map this way I can better distinguish the two sides.

     

    Now for another question. dynamic glows. I have a texture that I want to have a semi surrounding glow, like you would expect a flourescent light to create.

    I.E. |fuzzy glow|light core|fuzzy glow|

    The shader is as follows

     

     

    {

                   qer_editorimage textures/arena/bluelight.jpg

                   q3map_surfacelight 10000

                   q3map_backSplash 5 16

                   q3map_nolightmap

                   q3map_lightRGB 0.1 0.3 0.7

                    {

                            map $whiteimage

                            blendFunc GL_DST_COLOR GL_ZERO

                            rgbGen const ( 0.10 0.30 0.70 )

                   }

                   {

                            map $whiteimage

                            blendFunc GL_ONE GL_ONE

                            rgbGen const ( 0.10 0.30 0.70 )

                            glow

                   }

         }

     

    Will a glow such as described only be visible based on the way the map is compiled?

     

     

    You can alter the dynamic glow part of the shader as freely as you like, testing different images, blends and values to your hearts content without recompiling. The surfacelight, however will require a recompile. They are baked directly into the lightmap, and therefor need to be recreated to see the results of an adjustment on that argument.

     

    JKA doesn't have any sort of true primary dynamic lighting.

  12.  

     

    The ffa version I am making will have some team spawn points for tffa but it's possible a different version could be made to restrict access.  But then again I do have to watch my entity limit so depending on that number will determine if I will make a separate version for ffa.  I have lots of entities in my map already.  I have 70 path corners for the swtor ballon in my map alone.  A bunch of target_speakers, each tunnel I've made has an average of 3 trigger_push triggers and 3 target_push points.  If you are nowhere close to the entity limit in your map you have no worries.

     

     

    I doubt you have anything to worry about. That is a small handful of entities. I entity modded the plugin version of my FFA3 mod up to nearly 1,000 entities safely. I left a small cushion for projectiles and other gameplay entities, and never had any issues.

     

    As for the other things you said, part of the reason I hate community made maps that "support ctf", is because the person who designed it thought CTF would work as an afterthought as long as the flags are placed linearly in fashion; with supporting logical spawns. It's simply not the case, and is a good deal more complicated than that.

  13. Rendering "light" in Radiant is no simple thing. Quite the opposite. In the scheme of things, it loses it's importance anyway. Eventually you become good enough to predict how the falloff of each light entity will look, same thing for surface lighting. Even with light preview, one wouldn't suddenly become a light artist.

     

    I'd much rather GTKRadiant adopt things for CODRadiant besides the light preview, such as the camera movement system for the 3d view. It's very much more efficient. There are other features such as Z-Axis cubic clipping, hide unselected without requiring invert selections( Or, Regions. *Shudder* ), measuring tape line, model viewer, better texture window, better entity control and linking, more keyboard shortcuts for more functions (Rotate X, Y, Z, Lock X, Y , Z, etc... ) that I'd rather have. Because currently, using GTKRadiant is NOT a pleasure. Using CODRadiant is, because it feels more accessible and more fluid.

  14. I usually just place team based spawns only; in order to handle both situations. It's not a HUGE deal in JKA, but it's still a wise practice to carefully consider the amount of space and the layout of your level when placing your spawns. A common mistake for a community made competitive map is misunderstanding the importance of spawn placement.

     

    As for the limit of spawns, I'm not sure. I know the entity limit is 1023( +1 Required Worldspawn ). 

  15. A decompile isn't necessary, unless you need it for education purposes or to more easily get origins. With the state of this community, anyone using a decompile for benign purposes would be shocking.

     

    You can open the .bsp with notepad, search for "worldspawn", and find the entity list that way. Everything from the opening bracket of the world spawn entry 

     

    {

    "classname" "worldspawn"

    }

     

    to the closing bracket of the last entity

     

    example:

    {

    "classname" "your_mom"

    }

     

    needs to be copied out into a new txt file. Simple save that file as the_maps_name.ent. Modify the existing entities or add new ones, keeping to the proper syntax. You can then recompile the .ent file back into the BSP with an onlyents compile on Q3map2.

     

     

    There are a bunch of tutorials out there on how to do this. I like to use Boba Fett's little entity re-wrapper. Just need to setup your paths, and have the .ent file and the .bsp in the same folder as q3map2. Drag and drop the .ent file onto this .bat

     

    @echo off
    cls
    title
    Entity Recompiler - Wrapper made by BobaFett
    echo q3map2 entity recompile wrapper
    echo
    by BobaFett
    echo.
    m:
    cd C:\Program Files\GtkRadiant-1.4
    q3map2.exe -v -game ja -onlyents %1
    echo.
    echo Compiling finished, press any key to close this window
    pause
    >nul

  16. @@Asgarath83, lugormod adds an RPGish element as well as level 4 and 5 force powers. You just need to get away from SP, playing with others in JA especially is way more fun than by yourself.

     

    Gradual or poison is already doable, look at the Noghri weapons.

     

    You bet your ass poison is doable.

     

     

     

    Loop

    //Generated by BehavEd
    
    flush (  );
    rem ( "This script is ran when the player spawns every time" );
    
    loop ( -1.000 )
    {
    	rem ( "This loop sets their parm15 to timer2 and begins the poison loop" );
    	wait ( 1000.000 );
    	set ( /*@SET_TYPES*/ "SET_PARM15", $get( FLOAT, "timer2")$ );
    
    	if ( $get( FLOAT, "SET_PARM3")$, $=$, $1$ )
    	{
    		rem ( "If the player triggered poisonactive, count down their HP" );
    
    		if ( $get( FLOAT, "SET_HEALTH")$, $!$, $100$ )
    		{
    
    			if ( $get( FLOAT, "SET_HEALTH")$, $!$, $0$ )
    			{
    
    				if ( $get( FLOAT, "SET_HEALTH")$, $<$, $0$ )
    				{
    					set ( /*@SET_TYPES*/ "SET_HEALTH", "0" );
    				}
    
    
    				else (  )
    				{
    
    					if ( $get( FLOAT, "SET_HEALTH")$, $>$, $90$ )
    					{
    						set ( /*@SET_TYPES*/ "SET_COUNT", $get( STRING, "SET_HEALTH")$ );
    						set ( $get( FLOAT, "SET_COUNT")$, "-1" );
    						set ( /*@SET_TYPES*/ "SET_HEALTH", $get( FLOAT, "SET_COUNT")$ );
    					}
    
    
    					else (  )
    					{
    
    						if ( $get( FLOAT, "SET_HEALTH")$, $>$, $80$ )
    						{
    							set ( /*@SET_TYPES*/ "SET_COUNT", $get( STRING, "SET_HEALTH")$ );
    							set ( $get( FLOAT, "SET_COUNT")$, "-2" );
    							set ( /*@SET_TYPES*/ "SET_HEALTH", $get( FLOAT, "SET_COUNT")$ );
    						}
    
    
    						else (  )
    						{
    
    							if ( $get( FLOAT, "SET_HEALTH")$, $>$, $70$ )
    							{
    								set ( /*@SET_TYPES*/ "SET_COUNT", $get( STRING, "SET_HEALTH")$ );
    								set ( $get( FLOAT, "SET_COUNT")$, "-3" );
    								set ( /*@SET_TYPES*/ "SET_HEALTH", $get( FLOAT, "SET_COUNT")$ );
    							}
    
    
    							else (  )
    							{
    
    								if ( $get( FLOAT, "SET_HEALTH")$, $>$, $60$ )
    								{
    									set ( /*@SET_TYPES*/ "SET_COUNT", $get( STRING, "SET_HEALTH")$ );
    									set ( $get( FLOAT, "SET_COUNT")$, "-4" );
    									set ( /*@SET_TYPES*/ "SET_HEALTH", $get( FLOAT, "SET_COUNT")$ );
    								}
    
    
    								else (  )
    								{
    
    									if ( $get( FLOAT, "SET_HEALTH")$, $>$, $50$ )
    									{
    										set ( /*@SET_TYPES*/ "SET_COUNT", $get( STRING, "SET_HEALTH")$ );
    										set ( $get( FLOAT, "SET_COUNT")$, "-5" );
    										set ( /*@SET_TYPES*/ "SET_HEALTH", $get( FLOAT, "SET_COUNT")$ );
    
    										else (  )
    										{
    
    											if ( $get( FLOAT, "SET_HEALTH")$, $>$, $40$ )
    											{
    												set ( /*@SET_TYPES*/ "SET_COUNT", $get( STRING, "SET_HEALTH")$ );
    												set ( $get( FLOAT, "SET_COUNT")$, "-6" );
    												set ( /*@SET_TYPES*/ "SET_HEALTH", $get( FLOAT, "SET_COUNT")$ );
    
    												else (  )
    												{
    
    													if ( $get( FLOAT, "SET_HEALTH")$, $>$, $30$ )
    													{
    														set ( /*@SET_TYPES*/ "SET_COUNT", $get( STRING, "SET_HEALTH")$ );
    														set ( $get( FLOAT, "SET_COUNT")$, "-7" );
    														set ( /*@SET_TYPES*/ "SET_HEALTH", $get( FLOAT, "SET_COUNT")$ );
    
    														else (  )
    														{
    
    															if ( $get( FLOAT, "SET_HEALTH")$, $>$, $20$ )
    															{
    																set ( /*@SET_TYPES*/ "SET_COUNT", $get( STRING, "SET_HEALTH")$ );
    																set ( $get( FLOAT, "SET_COUNT")$, "-7" );
    																set ( /*@SET_TYPES*/ "SET_HEALTH", $get( FLOAT, "SET_COUNT")$ );
    
    																else (  )
    																{
    
    																	if ( $get( FLOAT, "SET_HEALTH")$, $>$, $10$ )
    																	{
    																		set ( /*@SET_TYPES*/ "SET_COUNT", $get( STRING, "SET_HEALTH")$ );
    																		set ( $get( FLOAT, "SET_COUNT")$, "-8" );
    																		set ( /*@SET_TYPES*/ "SET_HEALTH", $get( FLOAT, "SET_COUNT")$ );
    
    																		else (  )
    																		{
    
    																			if ( $get( FLOAT, "SET_HEALTH")$, $>$, $1$ )
    																			{
    																				set ( /*@SET_TYPES*/ "SET_COUNT", $get( STRING, "SET_HEALTH")$ );
    																				set ( $get( FLOAT, "SET_COUNT")$, "-10" );
    																				set ( /*@SET_TYPES*/ "SET_HEALTH", $get( FLOAT, "SET_COUNT")$ );
    																			}
    
    																		}
    
    																	}
    
    																}
    
    															}
    
    														}
    
    													}
    
    												}
    
    											}
    
    										}
    
    									}
    
    								}
    
    							}
    
    						}
    
    					}
    
    				}
    
    			}
    
    		}
    
    	}
    
    }
    
    

    Deathscript

    //Generated by BehavEd
    
    rem ( "When the player dies this script runs on them" );
    set ( /*@SET_TYPES*/ "SET_PARM3", "0" );
    rem ( "Clears their parm3 so when they respawn they arent poisoned again" );
    set ( /*@SET_TYPES*/ "SET_DEATHSCRIPT", "NULL" );
    rem ( "Clears their deathscript so no script is ran when they die unless they are poisoned" );

    Poisoner

    //Generated by BehavEd
    
    rem ( "This script poisons the player and should be in a target_scriptrunner" );
    rem ( "make sure the scriptrunner is count -1 and spawnflags 1" );
    rem ( "Make sure whatever you want as the delivery system targets the scriptrunner" );
    
    if ( $get( FLOAT, "SET_PARM3")$, $!$, $1$ )
    {
    	rem ( "parm3 is the poison parameter on all players DONT TRY TO USE IT FOR SOMETHING ELSE" );
    	set ( /*@SET_TYPES*/ "SET_PARM3", "1" );
    	rem ( "Sets the deathscript on the player so they are cleared of poison when they respawn" );
    	set ( /*@SET_TYPES*/ "SET_DEATHSCRIPT", "nopoison" );
    }
    
  17. A lot *could* be done with advanced entity modding on existing SP levels. I think this would be a major waste of time anyway though. You can put a hat on a pig, but it is still a pig.

     

    Icarus is much too weak to script anything approaching good combat. Also, the waypoint/combat point system and AI is atrocious. Pretty much, SP is a wash in terms of revamping the shipped levels. Especially since the source map files are not/will not be in circulation.

     

    When I played JKA, I loved alternate game modes like Siege and CTF. I was never "pro" at either, but I still had the most fun there.

     

     

    I would definitely play again if I saw CTF expanded on and popularized. Fresh levels would be good too. Only if they are very well designed ASYMMETRICAL CTF levels. Many of the custom levels that claim to support CTF are very very very very shitty CTF maps. You can't just slap a couple of fucking flags in a level. 

×
×
  • Create New...