Question to the Server-Gods

Started by Aquamarin, November 04, 2008, 12:29:06 PM

Previous topic - Next topic

Soldier Of Ra

Bsptransition will not work completely this way. Any map you insert doesn't matter, it will always go to the next map. I've found a solution for this without setting the sv_maplist to your destination. Nothing gets changed, sv_maplist won't get altered.

   

   If anyone's interested, I'll post it.


cubus

oh!!!!!!!!!!! i think... me too!!! :yes

   

   ah lenny! maybe it will be importent!... the server - aqua talk about - is a spearhead-server!

   

   do you think, this "solution" will run also for SH?

twl_viper

Soldier Of Ra :
   Bsptransition will not work completely this way. Any map you insert doesn't matter, it will always go to the next map. I've found a solution for this without setting the sv_maplist to your destination. Nothing gets changed, sv_maplist won't get altered.

   

   If anyone's interested, I'll post it.

   

   

   are you confusing maplist with vstr? my solution works for both

Aquamarin

IT WORKS - and the best is - IT WORKS FINE!

   Viper - my hero!

   NOW i can split my Padernoster in different maps, and it should be greater then ever! :)

   Thanks for your help! And thanks to Beatz for the server! And thanks to Cubus for his endurance! I feel like winning an Oscar! *lol*

twl_viper

well thanks - I am still interested in SORs solution however, but Im glad someone agrees with me that it works.:p

STORMnl

wil we have the 7 maps version now,

   and all maps back to the original,,,with everything in????
Dutch Blue Oyster mean machine instructor + The Jack off the dutch platoon - My Drill Instruction http://es.youtube.com/watch?v=25Qhbdijv5Y&feature=related

Soldier Of Ra

No... I do not. Vstr sucks and altering the maplist is completely unnecessary but if it works then fine. But here's how I do it.

   

   
local.orig_nextmap = getcvar "nextmap"
   setcvar "nextmap" "dm/mohdm3"
   local.gametype = getcvar "g_gametype"
   setcvar "g_gametype" "0"
   bsptransition nextmap
   // or...
   //leveltransition nextmap
   setcvar "g_gametype" local.gametype
   waitframe
   setcvar "nextmap" local.orig_nextmap

   

   I think saving&restoring the nextmap cvar is actually unnecessary because it is unused in MP. However the nextmap cvar is used by the leveltransition and bsptransition commands which is why you had to change the maplist into 1 map (= your destination), so there's only 1 "nextmap".

   Set the nextmap cvar to the map you want to go to. No messing with the maplist this way.

   

   It should work for SH.

cubus

okay..... like aqua said, the viper-solution works fine. we test it on a sh-server... useing 7 little testmaps......

   

   every jump through the declared triggers transfer us to the next map in line.... but now, we got a problem we cannot handle, because scripting like this isnt oure favorite thing...

   

   again a small overview, what we! are talking about:

   

   1.) campaign-start is in map (4)

   2.a) Main-direction for allies: map (4) - (5) - (6) - (7 = Allies final objective and fireing TEAMWIN allies)

   2.b) - allies have to finish a map by hitting allies-trigger, the enemy-trigger will be disabled and then the complete gang (allies and axis) will move to next map in line (4) to (5), (5) to (6), (6) to (7)

   3.a) Main-direction for axis: map (4) - (3) - (2) - (1 = axis final objective and fireing TEAMWIN axis)

   3.b) - axis have to finish a map by hitting axis-trigger, the enemy-trigger will be disabled and then the complete gang (allies and axis) will move to next map in line (4) to (3), (3) to (2), (2) to (1)

   4.) same procedure is repeated in the maps (3) and (2) and (5) and (6) each in accordance with the directions set for the individual teams

   5.) each map can enter multiple times, depending on the current game

   6.) in finale-map (1) for axis the situation is close like above, but the axis-targettrigger fire the TEAMWIN axis thread

   7.) in finale-map (7) for allies the situation is close like above, but the allies-targettrigger fire the TEAMWIN allies thread

   8.) if one of the winthreads is called, the campaign is finished and need a restart, which is in map (4). but execution of teamwin will restart the present map, which is (1) or (7)

   9.) map (4) knows different conditions:

   - first start = campaign start

   - enter by axis or allies during running the campaign. this event can occur multiple times

   - enter after campaign-finish by axis or allies, which means campaign-restart

   

   [orange]So, we need a way to restart the campaign after finishing map (1) or (7) without restart it manually [/orange]

   

   

   i think about seting some cvars in map (1), (7) if win-trigger is fired and map (4) will check this cavrs. but the situation is, that winteam restart the present map! dont take care about other settings or calls

   

   anyway.... we use right now only simple multipletriggers as targets, but later this can be multiple objectives... bombing stuff, TOW-targets, simple triggers which the capturing of a particular area symbolize.... nearly every know objectives

   

   

   So, someone get a idea?

   

   Note1: neither Aqua nor I are perfect in terms of scripting or get enough knowledge about things happen on a server

   Note2: sorry! we didnt try the solution from SoR right now....but i guess the situation might be similar

   

   thats the thread, we use right now for finale-trigger in map(7), map(1) finaltrigger looks similar

   

   

   triggerthread1-7:
   
   $map7_ende waittill trigger
   local.player = parm.other
   if (local.player.dmteam == "allies")
   {
   $map7_ende nottriggerable
   $map6_jumpto7 nottriggerable
   local.temp_maplist = getcvar "sv_maplist"
   setcvar temp_maplist local.temp_maplist
   setcvar sv_maplist "obj/obj_sprung4"
   setcvar "g_obj_alliedtext1" "ALLIES WON"
   setcvar "g_obj_alliedtext2" "THE CAMPAIGN!"
   setcvar "g_obj_alliedtext3" ""
   setcvar "g_obj_axistext1" ""
   setcvar "g_obj_axistext2" ""
   setcvar "g_obj_axistext3" "AXIS - TRY IT AGAIN!"
   iprintlnbold "BACK TO START"
   wait 1
   local.gametype = getcvar "g_gametype"
   setcvar "g_gametype" "0"
   bsptransition next
   setcvar "g_gametype" local.gametype
   teamwin allies
   end
   }
   
   goto triggerthread1-7
   
   end
   

Soldier Of Ra

I think I understand it. Just don't use teamwin.

   You could do something similar yourself. (I'll make something quickly)

   

   Btw, I see you mentioned triggers.

   Did you know there's a trigger_changelevel and that it works as well without changing the sv_maplist :p?

cubus

well, i know trigger_changelevel, but have no idea about changing stuff like sv_maplist... basiclly i do my stuff for sp-mapping...... only in case of "extremly emergency" i try to take care on script-problems on aqua-maps... but knowledge what happen on a server?????????????? no, not really!

Soldier Of Ra

I recommend not to change the sv_maplist as in viper's example.

   I'll make you an all purpose script that'll take care of teamwins, maprestarts, mapchanges etc with enough options and room to script.

cubus

cool!

   

   we will love you!!!!


Soldier Of Ra

Here it is. Everything's explained on the header. I quickly tested it, works so far, should work completely.

   

   4951-mapmanager.zip

   

   Here's the header:

   
// ******************************************************************
   //       Global Map Managing Script
   //           by Sor
   // -------------------------------------------------
   //
   // OPTIONS FOR teamwins SCRIPT:
   // -----------------------------
   // level.global_win["winner"] = "allies"          // team who's won. Can be: "axis" or "allies"
   // level.global_win["win_sound"] = 1         // Play a sound?
   // level.global_win["winscreen"] = 1         // Use this script's winscreen? (it will not be used if the "win_event" is "round_restart" since that's using teamwin)
   // level.global_win["winscreen_hud"] = 0         // Keep or disable the player's HUD during the winscreen?
   // level.global_win["winscreen_freeze"] = 0      // Freeze players during the winscreen?
   // level.global_win["winevent"] = "map_restart"    // what happens after this team has won? Can be: "map_restart"; "map_change" or "round_restart"
   // level.global_win["winevent_delay"] = 10       // Seconds before the "win_event" starts
   // level.global_win["winevent_display"] =   1      // Location print what will happen (mapchange, maprestart or roundrestart) + the delay
   // level.global_win["destination"] = "dm/mohdm1"    // map to change to (if the "win_event" is "map_change")
   // level.global_win["mapchange_keepstats"] = 0      // Keep player in same team with same weapon if the map is changed?
   //
   // OPTIONS FOR mapchange SCRIPT:
   // -----------------------------
   // level.global_mapchange["keepstats"] = 0       // Keep player in same team with same weapon if the map is changed?
   // level.global_mapchange["destination"] = "dm/mohdm1" // map to change to
   // level.global_mapchange["delay"] = 10          // delay before the change
   // level.global_mapchange["display"] = 1          // Location print the seconds before the map changes + to what map
   //
   //
   // OPTIONS FOR maprestart SCRIPT:
   // -------------------------------
   // level.global_maprestart["delay"] = 10          // delay before the restart
   // level.global_maprestart["display"] = 1          // Location print the seconds before the map restarts
   //
   // GLOBAL OPTIONS:
   // ----------------
   // level.global_win_scr["localization"] = "your text"  // This is the text locationprinted if the "Display" option is on.
   //                            // Use "Zeconds" in this string, to get it replaced by the seconds remaining
   //
   // AVAILABLE SCRIPTS:
   // global/win.scr::maprestart
   // global/win.scr::mapchange
   // global/win.scr::teamwins
   //

   

   Set (all) this before you execute the script. Everything not filled in will be set to default, which is in most case off or 0.

   If there are any problems, plz tell them and I'll fix them asap. :)