ASk Posted September 8, 2002 Share Posted September 8, 2002 Good job. I was stuck on this for quite some time already, thinking why it displayed the round won/loss messages correctly but not objective won/loss messages NOR the custom sounds. Ah and another note: the default sound in the code is an un-existant one. That's why there's no sound on objective/round completion. Only thing I hope, is that people will actually play and like this gametype. Link to comment Share on other sites More sharing options...
DeTRiTiC-iQ Posted September 9, 2002 Share Posted September 9, 2002 Since this gametype evidently will become a mod due to the quantity of modfieid coding, I just you all work together. SAGA will not succeed if their are dozens of different versions that people have to download just to play individual maps. Secondly, this needs to become a full mod, not just something which unlocks the gametype and adds a few tweaks to the code, a class system would be nice to see. Thirdly, when the mod is running, hide the other gametypes in the same way that Hydroball only lets you select the one gametype. Finally, I have been waiting for this kind of project ever since I expressed my view that Infiltrate! for JK should be revived, since this is close, I am keen to make maps for it. Link to comment Share on other sites More sharing options...
Slunker Posted September 9, 2002 Author Share Posted September 9, 2002 Hmmmmm.... I managed to set up my source to use a "World" group, and made a paired value that sets/unsets lightsaber-only. Force disabled is apparently a bit trickier. I can set the g_forcePowerDisable cvar, but it isn't doing anything, really. Afterwards, I run WPInitForcePowers() or whatever the func is, but that doesn't accomplish anything, either. I think that perhaps WPInitForcePowers() needs to be reprogrammed, because it has special areas for CTF/CTY and GT_TOURNAMENT... probably others, I got tired of digging through source code and took a break for the day afterward. Anyhow. Progress is being made. After getting diabling force powers to work, I'm going to make a big project out of nolightsaber mode (and it accompanying control from the .saga file). Lastly, limiting available skins by team (i.e. Stormtrooper and Imperial are the only available skins for the Imperial team, Rebel is the only available skin for the rebel team, or some such) would be a fun option to have available (but not absolutely necessary), to make the scenarios seem more... *shrugs* realistic? -Slunker btw, if anyone has a better understanding of disabling force powers, and knows of something necessary other than changing the cvar and running that function, please say so. Link to comment Share on other sites More sharing options...
razorace Posted September 9, 2002 Share Posted September 9, 2002 For force powers and stuff, wouldn't the easiest way be to add a function to the initsagamode that reads the "world" definition group and set the cvars on startup. As for the model and skins sounds like it would take a lot of rewriting in the UI and cg files. Say, how are you planning on releasing this code? A lot of people are complaining that there's too many server varities / Mods as is. It would probably be a good idea if we all get together and make a single upgraded Saga Mod instead of 50 zillion different minor Mods.... Razor Ace Link to comment Share on other sites More sharing options...
Mr Tim Posted September 9, 2002 Share Posted September 9, 2002 Without having much experience in this kind of thing, except as an end-user (read - gamer) and someone with a slightly vague plan to get involved in this side of things in future... Instead of releasing this as a mod in its own right (as seems to have been cavassed above), wouldn't it be better to simply make the code available to any mod makers who want to create objective based mods and/or maps in the future? Basically, open source code to be implemented wherever and by whoever needs it. I don't see much use in having this as a mod in its own right (which seems to be what others were saying). Incorporate it into a mod or foget about it, would be my humble view for any actual or potential mod makers out there. Link to comment Share on other sites More sharing options...
ASk Posted September 9, 2002 Share Posted September 9, 2002 I am ready to help in any way I can Link to comment Share on other sites More sharing options...
Slunker Posted September 9, 2002 Author Share Posted September 9, 2002 That's how I'm using the cvars... at the end of the saga_init function, it reads in World, and all the accompanying paired values (only 2 right now, one that works)... Yah, that skins thing'll be... difficult. But! That's a long way away as I see it, so! I guess I'll have to look harder at WP_ForcePowerInit() if no one has any ideas. As far as open source goes: I agree that releasing our improvements here as source code will be important, since: any mod we release will incorporate a working version of an entire gametype. It makes sense for it to be public property, therefore, since the working source for all other gametypes (except, uh... duel_tournament and single_player- the other two unreleased gametypes) is public property. HOWEVER. Releasing this as a mod in its own right is important, because otherwise, saga gametype will never be used. Get it? So. Anyhow! If you'd like the source for the noweaps code, it's pretty easy. At the end of Saga_init() (outside all enclosing if statements related with the rebel/imperial groups...) if (GetValueGroup(saga_info,"World",objectives)) { if(GetPairedValue(objectives,"noweaps",goalreq)) { trap_Cvar_Set("g_weaponDisable",goalreq); } } Pretty easy, like I said. Notice that I send goalreq to trav_Cvar_Set, not atoi(goalreq). Obviously, this is because the value argument of trap_Cvar_Set() is a character pointer. Okay! -Slunker Link to comment Share on other sites More sharing options...
ASk Posted September 9, 2002 Share Posted September 9, 2002 since the working source for all other gametypes (except, uh... duel_tournament and single_player- the other two unreleased gametypes) is public property GT_TOURNAMENT is the Duel gametype GT_SINGLE_PLAYER does nothing except a bit more aggressive bots. It's most likely a remaining gametype from Quake 3 Single Player game. Link to comment Share on other sites More sharing options...
razorace Posted September 9, 2002 Share Posted September 9, 2002 Originally posted by Slunker if (GetValueGroup(saga_info,"World",objectives)) { if(GetPairedValue(objectives,"noweaps",goalreq)) { trap_Cvar_Set("g_weaponDisable",goalreq); } } -Slunker It would be easier on the parser code if you added the Strip_Tabs() before the GetPairedValue. Link to comment Share on other sites More sharing options...
DeTRiTiC-iQ Posted September 9, 2002 Share Posted September 9, 2002 The way I see it, release it with all the current code fixes so that mappers can get started, and so that they can be played. But continue working with it and make it into a proper team-game with classes etc. We've had too many minor mods, ie saber tweaks, jetpack etc. Games thrive on actual gametype modifications not minor mods. As I said in an earlier post, this is exactly the type of project i've been waiting for, but since i'm a mapper not a coder (yet) I haven't gone anywhere far. If done well this could become very popular. If you want maps/websites/ideas/rants contact me - det@massassi.net Link to comment Share on other sites More sharing options...
razorace Posted September 9, 2002 Share Posted September 9, 2002 At least half a dozen teams are working on that sort of project. They can do whatever they want with class-types and crap. This is just for improving the Saga code for a more varible gamemode. Link to comment Share on other sites More sharing options...
Miggs the Just Posted September 10, 2002 Share Posted September 10, 2002 cant you guys just use the g_jediVmerc for force disabling. Obviously it wouldnt work for some senario's but for a Rebel Vs. Empire map it would well. This sucks cause i just finished my map today. I was able to make a objective based map just with CTF with no coding. But it looks like Ill have to change it to Saga now. If you guys need help with this Ill help with anything, this is definitely what this game needs, And we do need to work together and get a fleshed out mod, try to enclude Jedimod, jetpack, grapple...ect. we can make it like a patch 1.05 to bring this game back to life. anyways I think JediVmerc is the way to go, one Idea I had was to make Mercs start with Detpacks and use them like engineers in RTCW, that way jedi would be better fighters but Mercs would be vital to winning objectives. I'll put the map up later anyways. Link to comment Share on other sites More sharing options...
Slunker Posted September 10, 2002 Author Share Posted September 10, 2002 Good idea on the striptabs() thing, btw. And with JediVMerc, I'm simply not going to use that, since that is not my original intention. My original intention was to make it so that force powers could be totally disabled from the .saga file. It WILL be done that way. Classes and such, (but more specifically, the ability for the mapmaker to create his own classes for his own map) are important, but not our current objective. As far as I see, there should be nothing out of control of the mapper, so using g_JediVMerc and making it so that jedis fight and mercs complete objective isn't what we're after at all. That would be creating a gamme. We're creating a gametype. The differences are huge. -Slunker Link to comment Share on other sites More sharing options...
monsoontide Posted September 12, 2002 Share Posted September 12, 2002 NOW THIS IS A GAMEPLAY MODE! Excellent work guys. I've been wanting to do something like this in JK2 ever since playing some of those cool MP levels in Return To Castle Wolenstein. Esp. the blow up the Submarine level ;-) My current map is nearly complete and I am eager to add this gameplay mode to the map. I think I follow the instructions, but perhaps a tutorial (with PIX) would be beneficial. I will propbably be posting a few questions as I go though as my coding skills are kinda rusty/extinct. Monsoontide Link to comment Share on other sites More sharing options...
razorace Posted September 12, 2002 Share Posted September 12, 2002 monsoontide is correct, we need a tutorial AND a coordinated Saga 2.0 project. I can help coordinate Saga 2.0, but I'm not up for writing a Saga 1.0 tutorial. I don't understand the mapping aspect of the system AND I got a full plate of writing with MotF. Link to comment Share on other sites More sharing options...
Slunker Posted September 12, 2002 Author Share Posted September 12, 2002 I suppose I could adjust my original post to be more correct and add pictures to make a tutorial...? -Slunker Link to comment Share on other sites More sharing options...
monsoontide Posted September 12, 2002 Share Posted September 12, 2002 Slunker - Yes! That would be excellent. Just a step by step on how to set up, say... 2 or 3 objectives per team - Code wise as well as what needs to be done in Radiant (With specific (simple) examples that people can use as a base to start from. Woohoo - the possibilty of playing a game where the objective is more than just arsing around trying to kill people. (Sorry - trying to stab someone with a lightsabre for the umpteeth time gets tedious quickly). If I can assist in any way or give feedback on this let me know Monsoontide Link to comment Share on other sites More sharing options...
ASk Posted September 12, 2002 Share Posted September 12, 2002 The basics: .saga file //saga info file Rebel // one of the 2 groups that must exist. The other is Imperial { RequiredObjectives 2 // number of required objectives required for win attackers 1 // sets bot behaviour wonround "Congratulations" //message on win round lostround "You Suck" //message on lose round roundover_sound_wewon "/sounds/somesound.wav" //not required, but will be played on win if defined roundover_sound_welost "/sounds/somesound.wav" //not required, but will be played on loss if defined Objective2 // each objective is defined as Objective# { final 0 // if 1, game ends on objective completion target ent1_name // name of map entity to activate on completion (can be used to open doors, etc) message_rebel "Congratulations! Objective 1 complete!" // text on objective completion for the team message_imperial "You suck! Objective 1 was completed" // text on objective completion for the opposing team sound_imperial "/sounds/somesound.wav" //not required, but will play for imperial on this completion sound_rebel "/sounds/somesound.wav" //not required, but will play for rebel on this completion } Objective3 { final 0 target obj1_name message_rebel "Congratulations! Objective 2 complete!" message_imperial "You suck! Objective 2 was completed" } Objective4 { final 1 target obj1_name message_rebel "Congratulations! Objective 3 complete!" message_imperial "You suck! Objective 3 was completed" } } //imperial here Imperial { RequiredObjectives 1 attackers 0 wonround "Congratulations" lostround "You Suck" Objective1 { final 1 target obj2_name message_imperial "Congratulations! Objective 1 complete!" message_rebel "You suck! Objective 1 was completed" } } Map: For every start point of the rebels, place info_player_rebel entity For every start point of the Imperials place info_player_imperial entity Place one info_player_deathmatch to allow for spectators/pre-match camera to load correctly (without this entity a "No Spawn Points" error will appear) To add objectives: Place info_saga_objective entity for each objective. If the objective is for imperials, set side to 1, else to 2 (in entity properties add a new entry called side). Also, add an entry "objective #" where # is the one that is in the .saga file (so the entity with objective 5, will use the Objective5 block of the .saga To trigger the objective you could use something like func_button linked to the info_saga_objective. Anything that will trigger the ent->use property. This allows for objectives such as "run through that door" or "press this button" or "destroy the switch" (in the last case, without some more coding, a team can just destroy the enemy's intended objective and screw them up, so for now it could be implemented via "press this button to blow things up" and starting the effect by using the target field in .saga file). Source code modifications: these are only basic, and provide bug fixes to 2 major bugs in the code: 1) objective can be triggered by any team member: g_saga.c, sagaTriggerUseFunction below if (activator && activator->client) { //activator will hopefully be the person who triggered this event clUser = activator->s.number; } add if(ent->side != activator->client->sess.sessionTeam) // only allow Imperial to trigger imperial objs and vice-versa { return; } 2) objective can be triggered multiple times: here i decided to use an array where the elements are 1 or 0 depending if the objective was completed. This effectively limits the max objective number for each team, but 50 should be more than enough: at the start of the file add this: #define MAX_OBJ_NUM 50 int rebel_obj[MAX_OBJ_NUM]; int imperial_obj[MAX_OBJ_NUM]; in InitSagaMode() at the end // Just to be safe, reset both arrays to 0 for(i=0; i<MAX_OBJ_NUM; i++) { imperial_obj[i]=0; rebel_obj[i]=0; } better be safe than sorry in sagaTriggerUse below the 1st fix code and above the main part: // ============= Disable multiple triggering of one entity over and over ========// if(ent->side == SAGATEAM_IMPERIAL) { if(imperial_obj[ent->objective]==1) // already triggered { return; } imperial_obj[ent->objective]=1; } else { if(rebel_obj[ent->objective]==1) // already triggered { return; } rebel_obj[ent->objective]=1; } after doing these, compile the jk2mpgame.qvm. Since it's server-side, regular clients can join at will. For an example get http://www.darklordsofsith.com/ask/saga_mod.zip It may not work for you, since I did not test it much, but it worked for me (it contains the above bugfixes, a test map and a method of displaying it in UI) Link to comment Share on other sites More sharing options...
razorace Posted September 12, 2002 Share Posted September 12, 2002 You forgot to mention the default maximum number of objectives. The max number of objective possible in the default code is 8 (objectives 1 - 9). However, the objective limit isn't heavily coded into the system so it would be easy to increase. Link to comment Share on other sites More sharing options...
Slunker Posted September 12, 2002 Author Share Posted September 12, 2002 *grins!* Wow, thanks for taking care of that for me, ASk! I'm lazy, I should point out, so I probably wouldn't have gotten to it very quickly. Yesh, the ways of triggering objectives is INFINITE. Since anything firing at an objective will trigger it. The interesting thing about this is bot behavior regarding objectives. While you can't count on a bot to do something like, say, push a button, use a particular force power on something, manipulation items properly, etc., bots are actually fairly well-done! For each objective, (if attackers is set to '1') the bot will go find what targets the objective, find what targets that, etc., until it makes a list of OBJECTIVE SOURCES. These are things like breakable items, buttons, etc., that originally trigger objectives. It then picks one of these sources and attacks toward it. (If you've ever played one of Blizzards RTS's, you know what I mean. It moves toward its objective, while attacking all enemies it comes across.) I'm not sure how intelligent this system is, as I've never tested it on a bot-mapped map before. However, at the very least, the bots will try and hold the area AROUND the objective until someone bright enough to complete it comes along. If attackers is 0, the bots on your team show yet another spurt of intelligence. They do what they did if attackers was 1, except for the OTHER TEAM'S OBJECTIVES. Except instead of making an effort to complete the objective, they just try and keep the enemy away from the objective source. Pretty smart, eh? Anyhow! Just some clarity there. Link to comment Share on other sites More sharing options...
ASk Posted September 13, 2002 Share Posted September 13, 2002 nah....I just was bored, and repasting parts of my previous posts and some files that I have already done is easy. Anyway, perhaps I will look onto the bot code and mod it for the bots to be more intelligent. Link to comment Share on other sites More sharing options...
Sephiroth Posted September 18, 2002 Share Posted September 18, 2002 OMG this is k-rad! I've been waiting so long for this to become clear since the original thread about the gametype. This, i think, is best compared to Tribes 2 and RTCW objectives.. I think what the community really needs is definately a full scale mod. you all need to work together, as there are far too many variants of existing mods.. take JediMod for example, there have been so many other mods spawned from it and so many new versions of those mods.. that achieves nothing except confusion and indecision for the players.. A combined effort *should* produce the best mod thus far (not just because of the saga gametype, but because it creates a standard for mappers to follow). I'll be looking forward to some quality modding! Link to comment Share on other sites More sharing options...
Sephiroth Posted September 19, 2002 Share Posted September 19, 2002 A mate and myself were just discussing some possibilities, and what really struck a chord was the possibility of porting team fortress to JK2.. with a JK2 theme.. Think about JK2 Fortress.. it's got some great potential as an idea for a mod using the base of the saga gametype.. I know it would revive the game quite a lot.. but it'd probably take so long to get it done it might come too late.. Just an idea anyway I guess. Link to comment Share on other sites More sharing options...
Gandel Posted September 19, 2002 Share Posted September 19, 2002 wow neat. Link to comment Share on other sites More sharing options...
razorace Posted September 19, 2002 Share Posted September 19, 2002 Yeah, Jedi Fortress...someone is already working on it. Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.