Opferlamm-Clan Board
www.opferlamm-clan.de
Verantwortlich für diese bösen Machenschaften: siehe Impressum

Registrierung Kalender Mitgliederliste Suche Häufig gestellte Fragen Zur Startseite

Opferlamm-Clan Board » Call of Duty 2 » Call of Duty 2 - Mapping » CoD2-Mapping-Hilfe » Eisfläche zerstören » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Eisfläche zerstören
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
schnuller
Teetrinker


images/avatars/avatar-70.jpg


Dabei seit: 07.08.2006
Beiträge: 31


Eisfläche zerstören Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Hy

Ich habe in meiner Map einige kleine Eisflächen die beim draufschiessen verschwinden und einen sound vom zerbrechlichen Glas abspielen sollen.

Was muß ich mit den Eisflächen im Radianten machen und was muß in die gsc.file rein.Habe schon mehrere Tutorials durch, aber nichts passendes gefunden.

Vielleicht kann mir einer von euch helfen.
schnuller ist offline E-Mail an schnuller senden Beiträge von schnuller suchen Nehmen Sie schnuller in Ihre Freundesliste auf
schnuller
Teetrinker


images/avatars/avatar-70.jpg


Dabei seit: 07.08.2006
Beiträge: 31


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Habe dieses CODUO Tut bei Level Designer gefunden.

Kann ich das für COD2 benutzen? und wenn ja,was muß ich daran ändern, habe schon ein wenig probiert bekomme es aber nicht hin mit dem Negativ.



Bospers Tutorial für alles was BUMM macht Wink

So ich hab mich mal hingesetzt und mich gefragt wie das wohl gehen mag mit dem In die Luft sprengen von Wänden und so.
Erster Ansatzpunkt war natürlich das Video-Tut von davinci. Hmm aber der benutzt ja ne Bombe die man legen muss um seine Wand hochzujagen. Neee das is ja uncool! Wenn will ich, dass die bei Beschuss auseinander fliegt! Also weiter überlegt.
Zweiter Ansatz war dann mp_foy da man hier ja den Kirchturm zerstören kann. Also Graydiant gestartet und mp_foy geladen.
Nach ca. 2 Std hatte ich dann meine erste kleine Map mit einer sprengbaren Mauer fertig. Und daran möchte ich euch jetzt Teilhaben lassen. Erfahrene Scripter werden das wahrscheinlich schon alles kennen aber kann ja trotzdem net schaden oder? also auf ans Werk...

1. Schritt: Was brauch ich im Graydiant?

Eigentlich net viel, na ja kommt auf die Größe des zu sprengenden Objektes an.
1. Das Objekt was gesprengt werden soll.
1.1 Das beste ist hier wenn ihr euch einfach ein paar "Stäbe" aus mehreren Brushes baut um somit die Fläche abzudecken die ich "verändern" wollt. Diese Stäbe teilt ihr dann jeweils in zwei Teile und Baut daraus die Kontur eures "Loches". Wie ihr das macht ist eigentlich egal Hauptsache ihr habt euer Loch.

1.2 In dieses Loch baut ihr nun, genau wie vorher, sozusagen das Negativ ein. Das heißt: Ihr schließt das grade gebaute Loch wieder!

So der Großteil der Arbeit ist damit getan. Also weiter:

2. Das Objekt sprengbar machen
2.1 Jetzt Selektiert ihr das komplette Negativ und klickt im 2D Fenster einmal mit der rechten Maustaste. Dann geht ihr auf script->Brushmodel. Im Entity-Menü gebt ihr dann folgendes ein:
key: "script_exploder" Value: "2"
key: "Targetname" Value: "delete"


2.2 Vielleicht habt ihr es euch schon gedacht: Natürlich brauchen wir auch einen Trigger der die ganze sache ins rollen bringt! Also fix einen Brush um unser negativ gezogen (oder um den Bereich wo es möglich sein soll die Zerstörung auszulösen. Der Trigger muss glaube ich aber das oder die script_brushmodel(s) einschließen) und ihm schnell die Textur common\trig zugewiesen. Wieder rechtsklick in der 2D Ansicht aber dieses mal trigger->damage Im Entity-Menü gebt ihr dann folgendes ein:
key: "script_exploder" Value: "2"
key: "spawnflags" Value: "115"
key: "targetname" Value: "belltower_damage" (das könnt ihr auch anders nennen, ich habs zum Testen so übernommen wie es in foy ist)

Da wir auch ein wenig Effekt verwöhnt sind kommen wir zu
2.3 Rechtsklick->script->script_model. Im Entity-Menü:
key: "model" Value: "xmodel/fx"
key: "script_delay" Value: "0.4" (oder wie lange eure Verzögerung dauern soll)
key: "script_exploder" Value: "2"
key: "script_fxid" Value: "bell_tower_exp"

So damit wäre die Arbeit im Graydianten getan. Wenden wir uns nun den scripts zu. Hierzu erstellt ihr die berühmte
deine_map.gsc und eine deine_map_fx.gsc. In erstere kommt das hier rein:

Code:

main()
{

level thread maps\mp\mp_foy_fx::main();

maps\mp\_load::main();

// Set up the effects used for explosion
level._effect["bell_tower_exp"] = loadfx ("fx/map_mp/mp_belltower_exp.efx");


// Run the function that does the explosion
level thread belltower_damage();
}

belltower_damage()
{
trig = getent("belltower_damage","targetname");
trig waittill ("trigger");
radiusDamage(trig.origin, 256, 200, 190);
}

und in die deine_map_fx.gsc kommt das hier:
Code:

main()
{
precacheFauch böse );
effects = getentarray ("effect","targetname");
spawnWorldFauch böse effects);
}

precacheFauch böse )
{
// Explosions =========================//
level._effect["bell_tower_exp"] = loadfx ("fx/map_mp/mp_belltower_exp.efx");
}


und das war’s!! Die beiden .gsc’s noch in den maps/mp Ordner, die Map kompilieren und fertig ist eure Sprengbare Wand oder
was auch immer. Hab leider noch nicht herausgefunden warum die Häkchen beim Trigger_damage keine Wirkung haben aber kommt
sicher noch.
Ach ja und sollte im Spiel euer Negativ in der Wand zu sehen sein, baut einfach einen Brush, der das gesamte Loch abdeckt
und gebt ihm die Textur shadow_cast (oder so ähnlich), damit ist das Problem auch behoben.


So ich hoffe ich konnte allen Script-Anfängern damit ein wenig helfen und dem einen oder anderen Profi vielleicht auch Wink

so long
Bosper
_________________
Diplomatie ist die Kunst, mit hundert Worten zu verschweigen was man mit einem Wort sagen könnte.
schnuller ist offline E-Mail an schnuller senden Beiträge von schnuller suchen Nehmen Sie schnuller in Ihre Freundesliste auf
schnuller
Teetrinker


images/avatars/avatar-70.jpg


Dabei seit: 07.08.2006
Beiträge: 31


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

HY

Kann mir vielleicht einer bei dem CODUO Tut helfen, habe es ausprobiert aber es funzt natürlich auch wieder nicht.

Diese Funktion ist z.B. für Falltüren geeignet, wenn man den Spieler leicht "foppen" möchte Wink.

1. erstelle dein Brush-Modell im Editor
2. mache ein script_brushmodel daraus (rechter Mausklick in 2D-Ansicht)
3. im Entity Editor (Taste N) gibst du deinem script_brushmodel den key targetname mit dem value mybrushmodel1
4. baue einen Brush mit der Textur common/trigger
5. mache ihn zum trigger_damage (rechter Mausklick)
6. im Entity Editor gibst du diesem Trigger den key targetname mit dem value mytrigger1 und setzte eventuelle flags wie pistol, etc.)
7. speichere und kompiliere deine map
8. erstelle mit notepad eine neue datei mit folgendem inhalt [EDIT:gefixt!]:
Code:

main() {
thread delete_brush1();
}

delete_brush1() {
brushmodel1 = getent ("mybrushmodel1","targetname");
trigger1 = getent ("mytrigger1","targetname");
trigger1 waittill ("trigger", other);
brushmodel1 delete();
}

9. speichere die Datei als deinmapname_brush.gsc in maps bei Singleplayer- oder maps\mp bei Multiplayer-Maps. Alternativ schreibst du den Code der Sektion "delete_brush1" ans Ende deiner Haupt-GSC. Der Aufruf "thread delete_brush1();" steht dann oben in der Main-Sektion.

Wenn du nun im Spiel diesen Trigger triggerst, indem du ihn z.b. beschießst, wird das script_brushmodel gelöscht. Stehst du gerade zufälligerweise auf diesem Brush drauf... tja Yeah

so long


Meine haupt.gsc sieht so aus

main()
{
thread delete_brush1();
maps\mp\mp_exploder::main();
maps\mp\flaschen::main();
maps\mp\bb_barrels::barrelInit();
maps\mp\_load::main();
ambientPlay("ambient_mp_berlinsballerbude");
maps\mp\mp_berlinsballerbude_fx::main();
getent ("bbradio","targetname") playloopsound ("bbradio");
getent ("dog","targetname") playloopsound ("dog");

game["allies"] = "russian"; //Die Alliierten sind Russen
game["axis"] = "german"; //Die Achsenmächste sind Deutsche
game["attackers"] = "allies"; //Die Alliierten sind Angreifer
game["defenders"] = "axis"; //Die Achsenmächte müssen verteidigen
game["russian_soldiertype"] = "padded"; //Die Russen tragen Winteruniformen
game["german_soldiertype"] = "winterdark"; //Die Deutschen tragen dunkle Winteruniformen

if(getcvar("g_gametype") == "hq")
{
level.radio = [];
level.radio[0] = spawn("script_model", (97, -1185, -512));
level.radio[0].angles = (0, 180, 0);
level.radio[1] = spawn("script_model", (-735, -437, -1204));
level.radio[1].angles = (0, 90, 0);
level.radio[2] = spawn("script_model", (904, -2137, -120cool );
level.radio[2].angles = (0, 180, 0);
level.radio[3] = spawn("script_model", (-736, -1858, -1171));
level.radio[3].angles = (0, 180, 0);
level.radio[4] = spawn("script_model", (1067, -338, -1111));
level.radio[4].angles = (0, 90, 0);
level.radio[5] = spawn("script_model", (95, -1840, -114cool );
level.radio[5].angles = (0, 0, 0);
}

setCullFog (0, 6000, .42, .46, .50, 0);
}
delete_brush1() {
brushmodel1 = getent ("mybrushmodle1","targetname");
trigger1 = getent ("mytrigger1","targetname");
trigger1 waittill ("trigger", other);
brushmodel1 delete();
}

Das kann doch nicht so schwer sein einen brush mit einem trigger beim draufschießen verschwinden zu lassen.

Bitte helft mir traurig traurig
schnuller ist offline E-Mail an schnuller senden Beiträge von schnuller suchen Nehmen Sie schnuller in Ihre Freundesliste auf
T.R.Graves
*bM.sprite~


images/avatars/avatar-796.jpg


Dabei seit: 19.05.2006
Beiträge: 340


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Du bekommst bei deinem Script wahrscheinlich eine Fehlermeldung denn es hat sich ein Fehler eingeschlichen

}
delete_brush1();
brushmodel1 = getent ("mybrushmodle1","targetname");
trigger1 = getent ("mytrigger1","targetname");
trigger1 waittill ("trigger", other);
brushmodel1 delete();
}

In der roten Zeile habe ich statt { ein ; gesetzt. kontrolliere das mal.

Ausserdem würde ich deine Targetnamen vereinfachen da sich dort auch Fehler einschleichen können zb.: mybrushmodle1 sollte wahrscheinlich mybrushmodel1 heissen.

ciao

__________________

Wie habe ich gemerkt, dass ich Gott bin:
Ich habe gebetet und stellte fest, dass ich Selbstgespräche führe.
T.R.Graves ist offline E-Mail an T.R.Graves senden Beiträge von T.R.Graves suchen Nehmen Sie T.R.Graves in Ihre Freundesliste auf
schnuller
Teetrinker


images/avatars/avatar-70.jpg


Dabei seit: 07.08.2006
Beiträge: 31


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Das löschen des brushes funzt jetzt,aber kann es leider nicht kopieren.Was muß ich im script und im radianten ändern damit ich es so oft kopieren kann wie ich will ? Habe nämlich mehrere flächen von dieser art in der map.
schnuller ist offline E-Mail an schnuller senden Beiträge von schnuller suchen Nehmen Sie schnuller in Ihre Freundesliste auf
OLD MAN WITH GUN
... sehr viel alleine


images/avatars/avatar-798.gif


Dabei seit: 01.05.2006
Beiträge: 2.305


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Naja, dies wird ein wenig aufwendiger.
Fangen wir mit den Eisflächen an.
Du erstellst also deine Eisflächen und machst aus jeder einen script_brushmodel (du brauchst bei ihnen nichts weiter einstellen).
Als nächstes setzt du über jede Eisfläche einen trigger_damage.
Jedem dieser Trigger gibst du nun folgende Werte:
Key: targetname
Value: trigger_ice
Anschließend markierst du immer einen Trigger und die darunterliegende Eisfläche und drückst 'w' (somit zielt immer einer der Trigger auf die darunterliegende Eisfläche).
Das war es eigentlich im Radianten.

So nun zum Scripting.
Du erstellst einen neue Textdatei und nennst diese z.B. ice.gsc
Dort kommt folgendes hinein:

Code einblendenCode 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:
main()
{
  thread ice();
}

ice()
{
  trigger_ice = getentarray("trigger_ice", "targetname");
  for (i=0; i < trigger_ice.size; i++)
  {
    ice = getent(trigger_ice[i].target, "targetname");
    ice thread destroy_ice(trigger_ice[i]);
  }
}

destroy_ice(ice_trigger)
{
  while(1)
  {
    ice_trigger waittill("trigger");
    self delete();
    ice_trigger delete();
  }
}


Dann öffnest du noch deine gsc-Datei deiner Map und machst oben noch den Eintrag:
maps\mp\ice::main();
(dort, wo auch die Zeile maps\mp\_load::main(); steht).

Wenn du nachträglich noch mehr Eisflächen einbauen willst, brauchst du nur die jeweilige Eisfläche wieder als script_brushmodel in die Map einzufügen, einen weiteren trigger_damage darüber zu setzten, diesem die bereits oben erwähnten Einträge für Key und Value zu geben und den Trigger mit 'w' mit der Eisfläche zu verbinden. Der Script funktioniert dann auch bei diesem, ohne eine Änderung vorzunehmen.

__________________

Da die Lichtgeschwindigkeit höher ist als die Schallgeschwindigkeit,
hält man so manchen für einen hellen Kopf, bis man ihn reden hört.

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von OLD MAN WITH GUN: 29.10.2006 13:17.

OLD MAN WITH GUN ist offline Beiträge von OLD MAN WITH GUN suchen Nehmen Sie OLD MAN WITH GUN in Ihre Freundesliste auf
schnuller
Teetrinker


images/avatars/avatar-70.jpg


Dabei seit: 07.08.2006
Beiträge: 31


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Funzt jetzt alles super mit den eisflächen,aber kann ich auch das script so erweitern das sich ein sound abspielt wenn es zerbricht ? z.b.zerbrechendes glas.
schnuller ist offline E-Mail an schnuller senden Beiträge von schnuller suchen Nehmen Sie schnuller in Ihre Freundesliste auf
OLD MAN WITH GUN
... sehr viel alleine


images/avatars/avatar-798.gif


Dabei seit: 01.05.2006
Beiträge: 2.305


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:

Original von schnuller
Funzt jetzt alles super mit den eisflächen,aber kann ich auch das script so erweitern das sich ein sound abspielt wenn es zerbricht ? z.b.zerbrechendes glas.
Sicher, das Script ist ja nur eine Art Grundversion.

__________________

Da die Lichtgeschwindigkeit höher ist als die Schallgeschwindigkeit,
hält man so manchen für einen hellen Kopf, bis man ihn reden hört.

OLD MAN WITH GUN ist offline Beiträge von OLD MAN WITH GUN suchen Nehmen Sie OLD MAN WITH GUN in Ihre Freundesliste auf
schnuller
Teetrinker


images/avatars/avatar-70.jpg


Dabei seit: 07.08.2006
Beiträge: 31


Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Zitat:

Original von OLD MAN WITH GUN

Zitat:

Original von schnuller
Funzt jetzt alles super mit den eisflächen,aber kann ich auch das script so erweitern das sich ein sound abspielt wenn es zerbricht ? z.b.zerbrechendes glas.
Sicher, das Script ist ja nur eine Art Grundversion.


Klappt alles wie es soll danke.Nur noch der sound fehlt.
schnuller ist offline E-Mail an schnuller senden Beiträge von schnuller suchen Nehmen Sie schnuller in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Opferlamm-Clan Board » Call of Duty 2 » Call of Duty 2 - Mapping » CoD2-Mapping-Hilfe » Eisfläche zerstören

Impressum ||Datenschutzerklärung

Forensoftware: Wbb - WoltLab GmbH || zum Archiv