|
|
[Tutorial] Explosive Modelle |
-tiger-
Steuerzahler
Dabei seit: 22.01.2008
Beiträge: 189
|
|
[Tutorial] Explosive Modelle |
|
Vorlage von display | Modsonline
1. Öffnet im Radianten das com_propane_tank.map Prefab, ihr findet es unter: Prefab --> Misc_Models --> com_propane_tank.map. Speichert das Prefab mit einem anderen Namen ab zb. explo_propane_tank.
2. Erstellt nun einen Brush der genauso groß ist wie das Model. Nun überzieht ihr den Brush mit der clip_nosight Textur. Drückt die Taste 4, damit ist die Grid Größe 8 ausgewählt ist. Markiert den Brush, geht dann oben im Radianten auf Brush --> Arbitrary sided cylinder, gebt in dem neuen Fenster die Zahl 12 ein damit der Brush 12 Zylinderseiten bekommt.
3. Markiert das Model und drückt die Taste N, im Entity Fenster gebt ihr unter Key: targetname und unter value: explodable_model ein. Macht einen Haken vor NO_SHADOW und NO_STATIC_SHADOWS, dadurch werden keine Schatten für das Model erstellt. Achtet darauf das das Model mittig ausgerichtet ist (origin 0 0 0). Markiert jetzt noch den Brush und drückt W. Dadurch wird das skript_model mit dem Brush verbunden, jetzt speichern.
Platziert das Prefab in eure Map und speichert eure Map ab. Nun könnt ihr eure Map Kompilieren.
maps\mp\_explosive_models::main(); fügt diese Zeile in euremap.gsc ein, rawfile,maps/mp/_explosive_models.gsc und die Zeile fügt ihr unter update your zone file ein.
Erstellt eine neue .gsc Datei und speichert es unter raw/maps/mp als _explosive_models.gsc ab.
_explosive_models.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:
|
main()
{
models = getentarray("explodable_model", "targetname");
if (models.size > 0)
{
level.breakables_fx["explode"] = loadfx( "explosions/grenadeexp_metal" );
}
level.barrelExpSound = "explo_metal_rand";
for(i = 0; i < models.size; i++)
{
models[i] thread explodable_model_think();
}
}
explodable_model_think()
{
//targeted brushmodels take priority over proximity based breakables - nate
if (isdefined(self.target))
{
targ = getent(self.target,"targetname");
if(targ.classname == "script_brushmodel")
{
self.remove = targ;
}
}
accumulate = 40;
threshold = 0;
dmg = 0;
self setcandamage(true);
while(1)
{
self waittill("damage", amount, other);
if (amount >= threshold)
{
dmg += amount;
if (dmg >= accumulate)
{
self thread explodable_model_explode();
}
}
}
}
explodable_model_explode()
{
Self = getentarray("explodable_model", "targetname");
if (isdefined (self.remove))
{
self.remove delete();
}
if(isdefined(self))
{
origin = self getorigin();
range = 200;
maxdamage = 200;
mindamage = 1;
self playsound (level.barrelExpSound);
playfx(level.breakables_fx["explode"], origin);
radiusDamage(origin, range, maxdamage, mindamage);
self delete();
}
}
|
|
skript info:
range ist Größe des Schadens Radius,
maxdamage ist Maximale Größe des Player Schadens
explosions/grenadeexp_metal ist der Effekt
barrelExpSound ist der soundalias Name
__________________
Processor: Intel Core2 Quad Q6600 | Mainboard: ABIT IP35 | Grafikkarte: GeForce 9800 GTX | Arbeitsspeicher: 2 GB G-Skill | Netzteil: Be Quiet! Straight Power
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von -tiger-: 17.04.2009 22:07.
|
|
|
|
|
-tiger-
Steuerzahler
Dabei seit: 22.01.2008
Beiträge: 189
|
|
Original von Marvin
Nur mal ne fräge:
Kann man dafür auch ein anderes Model als das im Beispiel nehmen
Marvin
Ja, man kann jedes XModel dafür verwenden. Aber es muss dann zu ein skript_model gemacht werden.
__________________
Processor: Intel Core2 Quad Q6600 | Mainboard: ABIT IP35 | Grafikkarte: GeForce 9800 GTX | Arbeitsspeicher: 2 GB G-Skill | Netzteil: Be Quiet! Straight Power
|
|
|
|
|
jtms
Hat kein Zuhause
Dabei seit: 30.10.2012
Beiträge: 86
|
|
Danke tiger für das Script
Ich dachte mir, wenn ich eine fetten Tank habe soll der ja mehr schaden machen als so ein winziger gasbehälter, deshalb hab ich das script ein bisschen erweitert:
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:
|
main()
{
models = getentarray("explodable_model", "targetname");
if (models.size > 0)
{
level.breakables_fx["explode"] = loadfx( "explosions/grenadeexp_metal" );
}
level.barrelExpSound = "explo_metal_rand";
for(i = 0; i < models.size; i++)
{
models[i] thread explodable_model_think();
}
}
explodable_model_think()
{
//targeted brushmodels take priority over proximity based breakables - nate
if (isdefined(self.target))
{
targ = getent(self.target,"targetname");
if(targ.classname == "script_brushmodel")
{
self.remove = targ;
}
}
accumulate = 40;
threshold = 0;
dmg = 0;
self setcandamage(true);
while(1)
{
self waittill("damage", amount, other);
if (amount >= threshold)
{
dmg += amount;
if (dmg >= accumulate)
{
self thread explodable_model_explode();
}
}
}
}
explodable_model_explode()
{
Self = getentarray("explodable_model", "targetname");
if (isdefined (self.remove))
{
self.remove delete();
}
if(isdefined(self))
{
origin = self getorigin();
if (isdefined(self.range))
{
range = self.range;
}
else
{
range = 200;
}
if (isdefined(self.mindamage))
{
mindamage = self.mindamage;
}
else
{
mindamage = 1;
}
if (isdefined(self.maxdamage))
{
maxdamage = self.maxdamage;
}
else
{
maxdamage = 300;
}
self playsound (level.barrelExpSound);
playfx(level.breakables_fx["explode"], origin);
radiusDamage(origin, range, maxdamage, mindamage);
self delete();
}
}
|
|
1.: Bist du damit einverstanden, dass ich in deinem script rumpfusche?
2.: funktioniert das so?
LG
JTMS
__________________ jtms-mapping.jimdo.com/
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von jtms: 15.02.2013 16:05.
|
|
|
|
|
|
|
|
Impressum ||Datenschutzerklärung
|