[Tutorial] Custom Spiel-Modi CTF und CTFB einbauen * |
Mapicted
Steuerzahler
Dabei seit: 10.04.2015
Beiträge: 200
|
|
ja war noch am testen^^
Also das tutorial von modsonline ist falsch, so klappt es anscheinend nur unter ace aber nicht unter awe.
hier noch mal in englisch http://www.infinityward.com/community/fo...p?topic=28288.0
Man muss einfach in die gsc folgende zeilen einfügen und die coordinaten (X)der Flaggen anpassen( und die Trigger von dem obigem tut wieder löschen)
-------------------------------------------------------------------
if( getDvar("g_gametype") == "ctf")
{
addobj("allied_flag", (x, x, x), (0, 0, 0));
addobj("axis_flag", (x, x, x), (0, 0, 0));
}
if(getDvar("g_gametype") == "ctfb")
{
addobj("allied_flag", (x, x, x), (0, 0, 0));
addobj("axis_flag", (x, x, x), (0, 0, 0));
}
}
addobj(name, origin, angles)
{
ent = spawn("trigger_radius", origin, 0, 48, 148);
ent.targetname = name;
ent.angles = angles;
}
-----------------------------------------------------------------
__________________ Fresh Beginnings!
Dieser Beitrag wurde 12 mal editiert, zum letzten Mal von Mapicted: 09.04.2008 12:52.
|
|
|
|
|
|
Original von Mapicted
ent = spawn("trigger_radius", origin, 0, 48, 148); (eins vier acht)
Jan, vor lauter Klammern hast eine vergessen ;)
ent = spawn("trigger_radius", origin, 0, 48, 148);
ToM
__________________
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Nightwing: 09.04.2008 12:49.
|
|
|
|
|
Mapicted
Steuerzahler
Dabei seit: 10.04.2015
Beiträge: 200
|
|
jo der macht da das ...smilie draus wenn ich 8 ) schreibe
__________________ Fresh Beginnings!
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Mapicted: 09.04.2008 12:50.
|
|
|
|
|
|
Mach den Code mit der Code Funktion rein, dann passts.
ToM
__________________
|
|
|
|
|
yoda
Böser Admin
Dabei seit: 21.01.2004
Beiträge: 12.269
|
|
Oder vor dem Abschicken auf Optionen -> Punkt drei (von oben gesehen) -> Haken setzen von wegen Smileys in diesem Beitrag deaktivieren.
__________________ "Fürs Internet sollte das Baumhaus-Prinzip gelten:
Wer zu alt ist, um ohne Hilfe reinzukommen, soll uns darin auch keine Vorschriften machen."
Diskutiere nie mit einem Idioten - zuerst zwingt er Dich auf sein Niveau herab und dann schlägt er Dich mit Erfahrung...
|
|
|
|
|
yoda
Böser Admin
Dabei seit: 21.01.2004
Beiträge: 12.269
|
|
Hab mir das mal angeschaut und versucht zu verstehen... Hab es auch irgendwie geschafft, zwei Flaggen in meine Testmap, die für alles herhalten muss, einzubauen, lief auch so weit im AWE (ACE nicht getestet, dürfte aber ja dann das gleiche sein), aber erst nach etwas rumprobieren...
Bin mir jetzt nur nicht so ganz sicher, also helft mir mal bitte auf die Sprünge - bin nach Tally´s Anleitung vorgegangen:
Voraussetzung sind eingebaute SAB-Spawns, d. h., wenn man eine Map hat, bei der SAB läuft, sind schon mal gute Voraussetzungen da, SAB hab ich ans Laufen bekommen.
allies – hier spawnen die Allies (Marines/SAS) wenn die Runde begonnen hat
allies_start - hier spawnen die Allies (Marines/SAS) wenn die Runde beginnt
axis - hier spawnen die Axis (OpFor/Speznas) wenn die Runde begonnen hat
axis_start - hier spawnen die Axis (OpFor/Speznas) wenn die Runde beginnt
Ok, also erst mal die Map im MP angeschmissen, jeweils an die Stellen gegangen, an denen die Flaggen stehen sollen.
Konsole auf mit UMSCHALTTASTE + ^ und /viewpos (ENTER-Taste, klar) eingegeben, angezeigte Koordinaten notiert. MP beendet.
Wieder in den Radianten und an die Stellen, wo die Flaggen hin sollten hatte ich einen trigger_radius gesetzt, Taste "N", Key: radius, Value 23 (um den Radius zu verkleinern), danach Key: targetname, Value: axis_flag auf Seiten der Axis (OpFor/Speznas), Key: targetname, Value allies_flag auf Seiten der Allies (Marines/SAS).
Anschließend in die mp_mapname.gsc unter \raw\maps\mp zusätzlich diesen Eintrag drunter gesetzt:
if( getDvar("g_gametype") == "ctf")
{
addobj("allied_flag", (992, 20, 128), (0, 0, 0));
addobj("axis_flag", (-462, 20, 128), (0, 0, 0));
}
if(getDvar("g_gametype") == "ctfb")
{
addobj("allied_flag", (992, 20, 128), (0, 0, 0));
addobj("axis_flag", (-462, 20, 128), (0, 0, 0));
}
}
addobj(name, origin, angles)
{
ent = spawn("trigger_radius", origin, 0, 48, 148);
ent.targetname = name;
ent.angles = angles;
}
Die roten Einträge (992, 20, 128) + (-462, 20, 128) jeweils angepasst (Aufbau: x, y, z - wobei man bei z noch 60 abziehen muss, da die Flaggen sonst auf Augenhöhe schweben würden).
Ok, compiliert und Fast File erstellt, wieder im MP getestet CTF und CTFB liefen, aber es wurde keine Flagge angezeigt.
Also wieder in den Radianten, die trigger_radius wieder gelöscht auf beiden Seiten, compiliert und Fast File erstellt, getestet und siehe da, Flaggen waren da...
Kann man sich dann nicht den Teil aus Tally´s Anleitung mit dem trigger_radius sparen?
__________________ "Fürs Internet sollte das Baumhaus-Prinzip gelten:
Wer zu alt ist, um ohne Hilfe reinzukommen, soll uns darin auch keine Vorschriften machen."
Diskutiere nie mit einem Idioten - zuerst zwingt er Dich auf sein Niveau herab und dann schlägt er Dich mit Erfahrung...
|
|
|
|
|
yoda
Böser Admin
Dabei seit: 21.01.2004
Beiträge: 12.269
|
|
... ich hab alleine (ohne Bots) getestet - nachdem ich die trigger_radius rausgeschmissen hatte, waren beide Flaggen unter CTF und CTFB zu sehen...?
__________________ "Fürs Internet sollte das Baumhaus-Prinzip gelten:
Wer zu alt ist, um ohne Hilfe reinzukommen, soll uns darin auch keine Vorschriften machen."
Diskutiere nie mit einem Idioten - zuerst zwingt er Dich auf sein Niveau herab und dann schlägt er Dich mit Erfahrung...
|
|
|
|
|
steinacker
Milupa-Fan
Dabei seit: 13.03.2008
Beiträge: 662
|
|
moin,
irgendwie bekomm ich das hier nich ganz gebacken mit ctf und ctfb
meine map wird geladen bis kurz vor ende ladebalken und dann wird umgeswitched auf backlot frei für alle (mit awe4 und ace probiert)
hab hier mal meine map.gsc
Code angehängt. Klicke hier zum Ein-/Ausblenden
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
|
main()
{
maps\mp\_load::main();
maps\mp\mp_voyager4_fx::main();
maps\mp\_compass::setupMiniMap("compass_map_mp_voyager4");
// thread maps\createfx\mp_voyager4_fx::Add_FX();
maps\mp\_elevator::main();
maps\mp\_shuttle::main();
maps\mp\_teleporter::main();
maps\mp\_ringMoves::main();
maps\mp\_windowBreak::main();
// ambientPlay("ambient_backlot_ext");
ambientPlay("quake_rumble1");
game["allies"] = "marines";
game["axis"] = "speznas";
game["attackers"] = "axis";
game["defenders"] = "allies";
game["allies_soldiertype"] = "desert";
game["axis_soldiertype"] = "desert";
setdvar( "r_specularcolorscale", "1" );
setdvar("r_glowbloomintensity0",".25");
setdvar("r_glowbloomintensity1",".25");
setdvar("r_glowskybleedintensity0",".3");
setdvar("compassmaxrange","1800");
/////////////////////////////////////////////////////////gametype capture the flag/////////////////////////
if( getDvar("g_gametype") == "ctf")
{
addobj("allied_flag", (1472, 0, 254), (0, 0, 0));
addobj("axis_flag", (-1472, 0, 254), (0, 0, 0));
}
if(getDvar("g_gametype") == "ctfb")
{
addobj("allied_flag", (1472, 0, 254), (0, 0, 0));
addobj("axis_flag", (-1472, 0, 254), (0, 0, 0));
}
}
addobj(name, origin, angles)
{
ent = spawn("trigger_radius", origin, 0, 48, 148);
ent.targetname = name;
ent.angles = angles;
}
/*
/////////////////////////////////////////////////////////gametype retrieval/////////////////////////
if(getDvar("g_gametype") == "re")
{
level.objective_vcr = [];
level.objective_vcr[0] = spawn("script_model", (x, y, z)); //erster Punkt, Videoband
level.objective_vcr[0].angles = (0,0,0);
level.objective_vcr[1] = spawn("script_model", (x, y, z)); //erster Punkt, Videoband
level.objective_vcr[1].angles = (0, 0, 0);
level.objective_vcr[2] = spawn("script_model", (x, y, z)); //erster Punkt, Videoband
level.objective_vcr[2].angles = (0, 0, 0);
// Es können noch weitere Punkte angegeben werden
level.objective_vcrcase = [];
level.objective_vcrcase[0] = spawn("script_model", (x, y, z)); //erster Punkt, Videorecorder
level.objective_vcrcase[0].angles = (0, 0, 0); //die Winkel kannst du natürlich auch ändern
level.objective_vcrcase[1] = spawn("script_model", (x, y, z)); //erster Punkt, Videorecorder
level.objective_vcrcase[1].angles = (0, 0, 0);
level.objective_vcrcase[2] = spawn("script_model", (x, y, z)); //erster Punkt, Videorecorder
level.objective_vcrcase[2].angles = (0, 0, 0);
//auch hier kann man, wie beim Vidoband auch, entsprechend noch zusätzliche Spawns angeben
addobj_base("objective_base", (x, y, z), (0, 0, 0)); //Punkt (x,y,z auf deiner Map), zu dem das Videoband und der Videorecorder gebracht werden müssen
}
addobj_base(name, origin, angles)
{
ent = spawn("trigger_radius", origin, 0, 40, 48);
ent.targetname = name;
ent.angles = angles;
}
*/
/*
playables
game["allies"] = "marines";
game["allies"] = "sas";
game["axis"] = "speznas";
game["axis"] = "russian";
game["allies_soldiertype"] = "desert";
game["allies_soldiertype"] = "woodland";
game["axis_soldiertype"] = "desert";
game["axis_soldiertype"] = "woodland";
*/ |
|
und wenn ich die trigger noch in die map mit ein bringe, dann kommt die meldung bad syntax - deshalb wieder draussen, wie oben schon beschrieben
retrieval kommt dann als nächstes dran, deshalb noch auskommentiert
wenn ich das noch hinbekomme, dann kann ich meine map auch mal vorstellen und zum testen freigeben
__________________ Steinacker, Hans Adam - der letzte Scharfrichter von Bad Mergentheim
der mit der Schärfe eines Schwertes richtende
|
|
|
|
|
|
Hab gestern mit T. R. Graves den Gametype RE via Mapscript mal in die beta eingebaut, hatte denselben Fehler. In Deinem Script ist eine Klammer falsch. Die Funktionen addobj() und addobj_base() gehören NICHT in die main() Funktion mit rein, ich habs mal korrigiert:
Code angehängt. Klicke hier zum Ein-/Ausblenden
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
|
main(){
maps\mp\_load::main();
maps\mp\mp_voyager4_fx::main();
maps\mp\_compass::setupMiniMap("compass_map_mp_voyager4");
// thread maps\createfx\mp_voyager4_fx::Add_FX();
maps\mp\_elevator::main();
maps\mp\_shuttle::main();
maps\mp\_teleporter::main();
maps\mp\_ringMoves::main();
maps\mp\_windowBreak::main();
// ambientPlay("ambient_backlot_ext");
ambientPlay("quake_rumble1");
game["allies"] = "marines";
game["axis"] = "speznas";
game["attackers"] = "axis";
game["defenders"] = "allies";
game["allies_soldiertype"] = "desert";
game["axis_soldiertype"] = "desert";
setdvar( "r_specularcolorscale", "1" );
setdvar("r_glowbloomintensity0",".25");
setdvar("r_glowbloomintensity1",".25");
setdvar("r_glowskybleedintensity0",".3");
setdvar("compassmaxrange","1800");
// Gametype Capture the Flag & Capture the Flag back //
if( getDvar("g_gametype") == "ctf"){
addobj("allied_flag", (1472, 0, 254), (0, 0, 0));
addobj("axis_flag", (-1472, 0, 254), (0, 0, 0));
}
if(getDvar("g_gametype") == "ctfb"){
addobj("allied_flag", (1472, 0, 254), (0, 0, 0));
addobj("axis_flag", (-1472, 0, 254), (0, 0, 0));
}
// Gametype Retrieval //
if(getDvar("g_gametype") == "re"){
level.objective_vcr = [];
level.objective_vcr[0] = spawn("script_model", (x, y, z)); // erster Punkt, Videoband
level.objective_vcr[0].angles = (0, 0, 0);
level.objective_vcr[1] = spawn("script_model", (x, y, z)); // zweiter Punkt, Videoband
level.objective_vcr[1].angles = (0, 0, 0);
level.objective_vcr[2] = spawn("script_model", (x, y, z)); // dritter Punkt, Videoband
level.objective_vcr[2].angles = (0, 0, 0);
// Es können noch weitere Punkte angegeben werden
level.objective_vcrcase = [];
level.objective_vcrcase[0] = spawn("script_model", (x, y, z)); // erster Punkt, Videorecorder
level.objective_vcrcase[0].angles = (0, 0, 0); // die Winkel kannst du natürlich auch ändern
level.objective_vcrcase[1] = spawn("script_model", (x, y, z)); // zweiter Punkt, Videorecorder
level.objective_vcrcase[1].angles = (0, 0, 0);
level.objective_vcrcase[2] = spawn("script_model", (x, y, z)); // dritter Punkt, Videorecorder
level.objective_vcrcase[2].angles = (0, 0, 0);
// auch hier kann man, wie beim Videoband auch, entsprechend noch zusätzliche Spawns angeben
addobj_base("objective_base", (x, y, z), (0, 0, 0));
// Punkt (x,y,z auf deiner Map), zu dem das Videoband und der Videorecorder gebracht werden müssen
}
}
addobj_base(name, origin, angles){
ent = spawn("trigger_radius", origin, 0, 40, 48);
ent.targetname = name;
ent.angles = angles;
}
addobj(name, origin, angles){
ent = spawn("trigger_radius", origin, 0, 48, 148);
ent.targetname = name;
ent.angles = angles;
} |
|
ToM
__________________
Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von Nightwing: 25.06.2008 11:04.
|
|
|
|
|
steinacker
Milupa-Fan
Dabei seit: 13.03.2008
Beiträge: 662
|
|
ukee
werd's heut abend, oder besser morgen mal ausprobieren
aber irgendwie hatte ich das auch schonmal so, wie du das gescriptet hast, nur hab ich dann den gametype re auskommentiert, um zu sehen ob ctf alleine funzt ohne re
und so müsste dann eigentlich die funktion: addobj(); nicht im main sein
Code angehängt. Klicke hier zum Ein-/Ausblenden
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
|
main()
{
maps\mp\_load::main();
maps\mp\mp_voyager4_fx::main();
maps\mp\_compass::setupMiniMap("compass_map_mp_voyager4");
// thread maps\createfx\mp_voyager4_fx::Add_FX();
maps\mp\_elevator::main();
maps\mp\_shuttle::main();
maps\mp\_teleporter::main();
maps\mp\_ringMoves::main();
maps\mp\_windowBreak::main();
// ambientPlay("ambient_backlot_ext");
ambientPlay("quake_rumble1");
game["allies"] = "marines";
game["axis"] = "speznas";
game["attackers"] = "axis";
game["defenders"] = "allies";
game["allies_soldiertype"] = "desert";
game["axis_soldiertype"] = "desert";
setdvar( "r_specularcolorscale", "1" );
setdvar("r_glowbloomintensity0",".25");
setdvar("r_glowbloomintensity1",".25");
setdvar("r_glowskybleedintensity0",".3");
setdvar("compassmaxrange","1800");
/////////////////////////////////////////////////////////gametype capture the flag/////////////////////////
if( getDvar("g_gametype") == "ctf")
{
addobj("allied_flag", (1472, 0, 254), (0, 0, 0));
addobj("axis_flag", (-1472, 0, 254), (0, 0, 0));
}
if(getDvar("g_gametype") == "ctfb")
{
addobj("allied_flag", (1472, 0, 254), (0, 0, 0));
addobj("axis_flag", (-1472, 0, 254), (0, 0, 0));
}
}
addobj(name, origin, angles)
{
ent = spawn("trigger_radius", origin, 0, 48, 148);
ent.targetname = name;
ent.angles = angles;
}
/*
hier "kommentarblock" gametype retrieval
*/
|
|
__________________ Steinacker, Hans Adam - der letzte Scharfrichter von Bad Mergentheim
der mit der Schärfe eines Schwertes richtende
|
|
|
|
|
|
Nicht ganz, die DVAR Abfrage if (getDvar("g_gametype") == "custom_gametype") kommt in die main() Funktion, das andere nicht. Da wo Dein "Kommentarblock" steht für RE, wäre die if Abfrage ausserhalb von main(), das würde nicht tun.
Nochmal kurz zusammengefasst (Beispiel Map.gsc):
Code angehängt. Klicke hier zum Ein-/Ausblenden
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
|
main(){
maps\mp\mp_beispiel_fx::main();
maps\createfx\mp_beispiel_fx::main();
maps\mp\mp_beispiel_drown::main();
maps\mp\mp_beispiel_elevators::main();
maps\mp\_explosive_barrels::main();
maps\mp\_breakable_windows::main();
maps\mp\_load::main();
maps\mp\_compass::setupMiniMap("compass_map_mp_beispiel");
ambientPlay("ambient_cargoshipmp_ext");
game["allies"] = "sas";
game["axis"] = "russian";
game["attackers"] = "axis";
game["defenders"] = "allies";
game["allies_soldiertype"] = "urban";
game["axis_soldiertype"] = "urban";
setdvar( "r_specularcolorscale", "1" );
setdvar("compassmaxrange","1600");
// Gametype Capture the Flag & Capture the Flag back
if( getDvar("g_gametype") == "ctf"){
addobj("allied_flag", (1472, 0, 254), (0, 0, 0));
addobj("axis_flag", (-1472, 0, 254), (0, 0, 0));
}
if(getDvar("g_gametype") == "ctfb"){
addobj("allied_flag", (1472, 0, 254), (0, 0, 0));
addobj("axis_flag", (-1472, 0, 254), (0, 0, 0));
}
// Gametype Retrieval
if(getDvar("g_gametype") == "re"){
level.objective_vcr = [];
level.objective_vcr[0] = spawn("script_model", (x, y, z)); // erster Punkt, Videoband
level.objective_vcr[0].angles = (0, 0, 0);
level.objective_vcr[1] = spawn("script_model", (x, y, z)); // zweier Punkt, Videoband
level.objective_vcr[1].angles = (0, 0, 0);
level.objective_vcr[2] = spawn("script_model", (x, y, z)); // dritter Punkt, Videoband
level.objective_vcr[2].angles = (0, 0, 0);
// Es können noch weitere Punkte angegeben werden
level.objective_vcrcase = [];
level.objective_vcrcase[0] = spawn("script_model", (x, y, z)); // erster Punkt, Videorecorder
level.objective_vcrcase[0].angles = (0, 0, 0); // die Winkel kannst du natürlich auch ändern
level.objective_vcrcase[1] = spawn("script_model", (x, y, z)); // zweier Punkt, Videorecorder
level.objective_vcrcase[1].angles = (0, 0, 0);
level.objective_vcrcase[2] = spawn("script_model", (x, y, z)); // dritter Punkt, Videorecorder
level.objective_vcrcase[2].angles = (0, 0, 0);
// auch hier kann man, wie beim Videoband auch, entsprechend noch zusätzliche Spawns angeben
addobj_base("objective_base", (x, y, z), (0, 0, 0));
// Punkt (x,y,z auf deiner Map), zu dem das Videoband und der Videorecorder gebracht werden müssen
}
} // Hier endet die main() Funktion, der Rest MUSS ausserhalb sein, da es eigenständige Funktionen sind.
// Gametype Capture the Flag & Capture the Flag back
addobj(name, origin, angles){
ent = spawn("trigger_radius", origin, 0, 48, 148);
ent.targetname = name;
ent.angles = angles;
}
// Gametype Retrieval
addobj_base(name, origin, angles){
ent = spawn("trigger_radius", origin, 0, 40, 48);
ent.targetname = name;
ent.angles = angles;
}
|
|
ToM
PS: Dein Script, was ich n Post weiter oben gepostet hab, ist korrigiert, sollte funzen.
__________________
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Nightwing: 25.06.2008 12:49.
|
|
|
|
|
BadMan
Turnbeutelvergesser
Dabei seit: 31.01.2008
Beiträge: 278
|
|
Das hier
Code angehängt. Klicke hier zum Ein-/Ausblenden
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
|
if( getDvar("g_gametype") == "ctf"){
addobj("allied_flag", (1513, -154, 244), (0, 0, 0));
addobj("axis_flag", (-965, -66, 0), (0, 0, 0));
}
if(getDvar("g_gametype") == "ctfb"){
addobj("allied_flag", (1513, -154, 244), (0, 0, 0));
addobj("axis_flag", (-965, -66, 0), (0, 0, 0));
} |
|
Packst du einfach in deine mp_mapname.gsc über die letzte klammer und das
Code angehängt. Klicke hier zum Ein-/Ausblenden
code: |
1:
2:
3:
4:
5:
6:
|
addobj(name, origin, angles){
ent = spawn("trigger_radius", origin, 0, 48, 148);
ent.targetname = name;
ent.angles = angles;
} |
|
unter die letzte klammer
sollte dann in etwa so aussehen
Code angehängt. Klicke hier zum Ein-/Ausblenden
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
|
main()
{
maps\mp\mp_bog_fx::main();
maps\createart\mp_bog_art::main();
maps\mp\_load::main();
maps\mp\_compass::setupMiniMap("compass_map_mp_bog");
ambientPlay("ambient_crossfire");
game["allies"] = "marines";
game["axis"] = "opfor";
game["attackers"] = "axis";
game["defenders"] = "allies";
game["allies_soldiertype"] = "desert";
game["axis_soldiertype"] = "desert";
setdvar( "r_specularcolorscale", "2" );
setdvar("compassmaxrange","1800");
if( getDvar("g_gametype") == "ctf"){
addobj("allied_flag", (1513, -154, 244), (0, 0, 0));
addobj("axis_flag", (-965, -66, 0), (0, 0, 0));
}
if(getDvar("g_gametype") == "ctfb"){
addobj("allied_flag", (1513, -154, 244), (0, 0, 0));
addobj("axis_flag", (-965, -66, 0), (0, 0, 0));
}
}
addobj(name, origin, angles){
ent = spawn("trigger_radius", origin, 0, 48, 148);
ent.targetname = name;
ent.angles = angles;
} |
|
dann passt du die Koordinaten an wo die Flaggen halt hin sollen dann läuft CTF und CTFB
|
|
|
|
|
|
Du brauchst im Radiant gar nichts zu machen.
Wichtig sind nur die Einträge in der .gsc
Das Skript spawnt einen trigger_radius für jede Team-Flagge und die Flaggen an den von Dir angegebenen Koordinaten.
Wenn Deine SAB spawns in Ordnung sind, muss das auch klappen.
P.S.: Du musst natürlich auch eine Mod benutzen, in der CTF enthalten ist (wie AWE4).
__________________
|
|
|
|
|
|
Ich zeig' Dir das mal am Beispiel der Voyager4 "lol"
Man kann jede Map, die SAB enthält, mit CTF + CTFB versorgen.
Ich habe Deine Map unter AWE4 / CTF gestartet.
Im awe4-Mod-Ordner ist eine zz_ctf.iwd drin.
Die enthält im Ordner maps/Unterordner gametypes eine mp_voyager4.gsc-Datei.
/**/
main()
{
maps\mp\mp_voyager4_fx::main();
maps\mp\_load::main();
maps\mp\_compass::setupMiniMap("compass_map_mp_voyager4");
ambientPlay("ambient_backlot_ext");
game["allies"] = "marines";
game["axis"] = "speznas";
game["attackers"] = "axis";
game["defenders"] = "allies";
game["allies_soldiertype"] = "desert";
game["axis_soldiertype"] = "desert";
setdvar( "r_specularcolorscale", "1" );
setdvar("r_glowbloomintensity0",".25");
setdvar("r_glowbloomintensity1",".25");
setdvar("r_glowskybleedintensity0",".3");
setdvar("compassmaxrange","1800");
if( getDvar("g_gametype") == "ctf")
{
addobj("allied_flag", (1472, 0, 254), (0, 0, 0));
addobj("axis_flag", (-1472, 0, 254), (0, 0, 0));
}
if(getDvar("g_gametype") == "ctfb")
{
addobj("allied_flag", (1472, 0, 254), (0, 0, 0));
addobj("axis_flag", (-1472, 0, 254), (0, 0, 0));
}
}
addobj(name, origin, angles)
{
ent = spawn("trigger_radius", origin, 0, 48, 148);
ent.targetname = name;
ent.angles = angles;
}
Die obigen Angaben stimmen natürlich nicht ganz mit Deiner .gsc-Datei (z.B. ambient etc.) überein, aber es funktioniert.
Und noch eins: Teste die Map nicht aus den Modtools, sondern packe Sie nach geänderter .gsc-Datei und Kompilierung in Deine normale Installation in den Usermaps-Ordner.
LINK Beispiel-iwd
__________________
|
|
|
|
|
|
|
|
Impressum ||Datenschutzerklärung
|