|
 |
Wie erstelle ich betauchbares Wasser? (langsamer gehen, rauschen, weniger Schwerkraft) |
Oi!mel
Turnbeutelvergesser
 
Dabei seit: 29.06.2009
Beiträge: 299

|
|
| Wie erstelle ich betauchbares Wasser? (langsamer gehen, rauschen, weniger Schwerkraft) |
 |
Hallo,
Ich möchte auf meiner Map eine Stelle mit Wasser, die man betauchen kann. Das soll heißen, man bewegt sich unter Wasser langsamer, sieht wie durch Glas durch die Oberfläche, und hat ein dumpfes Rauschen im Ohr. Am besten wäre noch dass man nicht schießen kann.
Ich hab mir die Lösung so vorgestellt. Also an die Oberfläche kommt eine nicht geclippte Glasplatte, und das dumpfe Rauschen mit einem Trigger und nem Sound. Probiert hab ichs schon, geschafft noch nicht. Wie ich ess machen soll dass man sich langsamer bewegt, und weniger Schwerkraft hat, hab ich leider überhaupt keinen Plan.
Kann mir jemand bitte bei der Umsetzung helfen?
Dankeschön
|
|
|
|
|
Oi!mel
Turnbeutelvergesser
 
Dabei seit: 29.06.2009
Beiträge: 299

|
|
So. ich hab jetzt zumindest schonmal trübes Wasser. Den entscheidenden Anstoss hat mir Banana gegeben. Ich habe das drown Script umgeschrieben.
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:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
|
main()
{
drownage = getentarray("drown","targetname");
if (isDefined("drownage"))
{
precacheShader("black");
precacheShader("white");
level.barsize = 288;
level.drowntime = 0.20;
level.hurttime = 0.20;
for(d = 0; d < drownage.size; d++)
{
drownage[d] thread water();
}
}
}
Water()
{
while (1)
{
self waittill("trigger", other);
if(isPlayer(other) && other istouching(self))
other thread drown(self);
}
}
drown(trigger)
{
self endon("disconnect");
dceiling = getent(trigger.target,"targetname");
water_vision = undefined;
while (self istouching(trigger) && !self istouching(dceiling))
{
wait .125;
if(isDefined(self.drowning))
return;
self.drowning = true;
if(!isDefined(water_vision))
{
water_vision = newClientHudElem(self);
water_vision.x = 0;
water_vision.y = 0;
water_vision setshader ("white", 640, 480);
water_vision.alignX = "left";
water_vision.alignY = "top";
water_vision.horzAlign = "fullscreen";
water_vision.vertAlign = "fullscreen";
water_vision.color = (.16, .28, .38);
water_vision.alpha = .75;
}
level.barincrement = (level.barsize / (20.0 * level.drowntime));
// level.player allowProne(false);
if(!isDefined(self.progressbackground))
{
self.progressbackground = newClientHudElem(self);
self.progressbackground.alignX = "center";
self.progressbackground.alignY = "middle";
self.progressbackground.x = 8000;
self.progressbackground.y = 8000;
self.progressbackground.alpha = 0.5;
}
self.progressbackground setShader("black", (level.barsize + 4), 14);
if(!isDefined(self.progressbar))
{
self.progressbar = newClientHudElem(self);
self.progressbar.alignX = "left";
self.progressbar.alignY = "middle";
self.progressbar.x = (8000 - (level.barsize / 2.0));
self.progressbar.y = 8000;
}
self.progressbar setShader("white", 0, 8);
self.progressbar scaleOverTime(level.drowntime, level.barsize, 8);
self.progresstime = 0;
d = 0;
f = 0;
while(isalive(self) && self istouching(trigger) && !self istouching(dceiling))
{
d ++;
f ++;
wait 0.05;
self.progresstime += 0.05;
if(self.progresstime >= level.hurttime)
{
if(f >= 4)
{
radiusDamage(self.origin,9, 1, 1);
f = 0;
}
}
}
if(isalive(self) && self istouching(trigger) && !self istouching(dceiling))
{
self.progressbackground destroy();
self.progressbar destroy();
wait 0.025;
radiusDamage(self.origin,22, 3000, 3000);
self.drowning = undefined;
self.sounder = undefined;
randb = randomInt(4);
deathmethod1 = " made a hole in the water and lay down quietly to rest forever.";
deathmethod2 = " paid a long lasting visit to Davy Jones's Locker.";
deathmethod3 = " went diving without breathing apparatus.";
deathmethod4 = " swam like a brick.";
if (randb == 0)
iPrintLn( self.name, deathmethod1);
if (randb == 1)
iPrintLn( self.name, deathmethod2);
if (randb == 2)
iPrintLn( self.name, deathmethod3);
if (randb == 3)
iPrintLn( self.name, deathmethod4);
wait .05;
water_vision destroy();
}
else
{
water_vision.alpha = .5;
water_vision fadeOverTime(3);
water_vision.alpha = 0;
wait 0.05;
self.progressbackground destroy();
self.progressbar destroy();
self.drowning = undefined;
self.sounder = undefined;
}
wait .05;
}
} |
|
So, wie kann man den jetzt aus dieser Basis einen Sound einfügen?
Oder wie kann ich in diesem Bereich gravity verändern, oder timescale ?
Und wie kann ich den Spieler daran hindern in diesem Bereich zu schießen?
Dankeschön.
|
|
|
|
|
Oi!mel
Turnbeutelvergesser
 
Dabei seit: 29.06.2009
Beiträge: 299

|
|
Ein Problem weniger. Das mit dem sound hab ich hingekriegt.
Das ist das aktuelle Script:
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:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
|
main()
{
level.scr_sound["underwater"] = "underwater";
drownage = getentarray("drown","targetname");
if (isDefined("drownage"))
{
precacheShader("black");
precacheShader("white");
level.barsize = 288;
level.drowntime = 5;
level.hurttime = 0.0;
for(d = 0; d < drownage.size; d++)
{
drownage[d] thread water();
}
}
}
Water()
{
while (1)
{
self waittill("trigger", other);
if(isPlayer(other) && other istouching(self))
other thread drown(self);
other playsound("underwater");
}
}
drown(trigger)
{
self endon("disconnect");
dceiling = getent(trigger.target,"targetname");
water_vision = undefined;
while (self istouching(trigger) && !self istouching(dceiling))
{
wait .125;
if(isDefined(self.drowning))
return;
self.drowning = true;
if(!isDefined(water_vision))
{
water_vision = newClientHudElem(self);
water_vision.x = 0;
water_vision.y = 0;
water_vision setshader ("white", 640, 480);
water_vision.alignX = "left";
water_vision.alignY = "top";
water_vision.horzAlign = "fullscreen";
water_vision.vertAlign = "fullscreen";
water_vision.color = (.16, .28, .38);
water_vision.alpha = .75;
}
level.barincrement = (level.barsize / (20.0 * level.drowntime));
//level.player allowProne(false);
if(!isDefined(self.progressbackground))
{
self.progressbackground = newClientHudElem(self);
self.progressbackground.alignX = "center";
self.progressbackground.alignY = "middle";
self.progressbackground.x = 8000;
self.progressbackground.y = 8000;
self.progressbackground.alpha = 0.5;
}
self.progressbackground setShader("black", (level.barsize + 4), 14);
if(!isDefined(self.progressbar))
{
self.progressbar = newClientHudElem(self);
self.progressbar.alignX = "left";
self.progressbar.alignY = "middle";
self.progressbar.x = (8000 - (level.barsize / 2.0));
self.progressbar.y = 8000;
}
self.progressbar setShader("white", 0, 8);
self.progressbar scaleOverTime(level.drowntime, level.barsize, 8);
self.progresstime = 0;
d = 0;
f = 0;
while(isalive(self) && self istouching(trigger) && !self istouching(dceiling))
{
d ++;
f ++;
wait 0.05;
self.progresstime += 0.05;
if(self.progresstime >= level.hurttime)
{
if(f >= 4)
{
radiusDamage(self.origin,0, 0, 0);
f = 0;
}
}
}
if(isalive(self) && self istouching(trigger) && !self istouching(dceiling))
{
self.progressbackground destroy();
self.progressbar destroy();
wait 0.025;
radiusDamage(self.origin,22, 3000, 3000);
self.drowning = undefined;
self.sounder = undefined;
randb = randomInt(4);
deathmethod1 = " made a hole in the water and lay down quietly to rest forever.";
deathmethod2 = " paid a long lasting visit to Davy Jones's Locker.";
deathmethod3 = " went diving without breathing apparatus.";
deathmethod4 = " swam like a brick.";
if (randb == 0)
iPrintLn( self.name, deathmethod1);
if (randb == 1)
iPrintLn( self.name, deathmethod2);
if (randb == 2)
iPrintLn( self.name, deathmethod3);
if (randb == 3)
iPrintLn( self.name, deathmethod4);
wait .05;
water_vision destroy();
}
else
{
water_vision.alpha = .5;
water_vision fadeOverTime(3);
water_vision.alpha = 0;
wait 0.05;
self.progressbackground destroy();
self.progressbar destroy();
self.drowning = undefined;
self.sounder = undefined;
}
wait .05;
}
} |
|
Wie kann ich das mit der Schwerkraft oder mit dem "Nicht-Schießen" noch hinkriegen?
Danke
|
|
|
|
|
Oi!mel
Turnbeutelvergesser
 
Dabei seit: 29.06.2009
Beiträge: 299

|
|
So, ich glaub ich bekomm das ganze eh hin. Jetzt hab ich das mit dem Waffen abschalten hinbekommen.
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:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
|
main()
{
level.scr_sound["underwater"] = "underwater";
drownage = getentarray("drown","targetname");
if (isDefined("drownage"))
{
precacheShader("black");
precacheShader("white");
level.barsize = 288;
level.drowntime = 5;
level.hurttime = 0.0;
for(d = 0; d < drownage.size; d++)
{
drownage[d] thread water();
}
}
}
Water()
{
while (1)
{
self waittill("trigger", other);
if(isPlayer(other) && other istouching(self))
other thread drown(self);
other playsound("underwater");
other DisableWeapons();
}
}
drown(trigger)
{
self endon("disconnect");
dceiling = getent(trigger.target,"targetname");
water_vision = undefined;
while (self istouching(trigger) && !self istouching(dceiling))
{
wait .125;
if(isDefined(self.drowning))
return;
self.drowning = true;
if(!isDefined(water_vision))
{
water_vision = newClientHudElem(self);
water_vision.x = 0;
water_vision.y = 0;
water_vision setshader ("white", 640, 480);
water_vision.alignX = "left";
water_vision.alignY = "top";
water_vision.horzAlign = "fullscreen";
water_vision.vertAlign = "fullscreen";
water_vision.color = (.16, .28, .38);
water_vision.alpha = .75;
}
level.barincrement = (level.barsize / (20.0 * level.drowntime));
//level.player allowProne(false);
if(!isDefined(self.progressbackground))
{
self.progressbackground = newClientHudElem(self);
self.progressbackground.alignX = "center";
self.progressbackground.alignY = "middle";
self.progressbackground.x = 8000;
self.progressbackground.y = 8000;
self.progressbackground.alpha = 0.5;
}
self.progressbackground setShader("black", (level.barsize + 4), 14);
if(!isDefined(self.progressbar))
{
self.progressbar = newClientHudElem(self);
self.progressbar.alignX = "left";
self.progressbar.alignY = "middle";
self.progressbar.x = (8000 - (level.barsize / 2.0));
self.progressbar.y = 8000;
}
self.progressbar setShader("white", 0, 8);
self.progressbar scaleOverTime(level.drowntime, level.barsize, 8);
self.progresstime = 0;
d = 0;
f = 0;
while(isalive(self) && self istouching(trigger) && !self istouching(dceiling))
{
d ++;
f ++;
wait 0.05;
self.progresstime += 0.05;
if(self.progresstime >= level.hurttime)
{
if(f >= 4)
{
radiusDamage(self.origin,0, 0, 0);
f = 0;
}
}
}
if(isalive(self) && self istouching(trigger) && !self istouching(dceiling))
{
self.progressbackground destroy();
self.progressbar destroy();
wait 0.025;
radiusDamage(self.origin,22, 3000, 3000);
self.drowning = undefined;
self.sounder = undefined;
randb = randomInt(4);
deathmethod1 = " made a hole in the water and lay down quietly to rest forever.";
deathmethod2 = " paid a long lasting visit to Davy Jones's Locker.";
deathmethod3 = " went diving without breathing apparatus.";
deathmethod4 = " swam like a brick.";
if (randb == 0)
iPrintLn( self.name, deathmethod1);
if (randb == 1)
iPrintLn( self.name, deathmethod2);
if (randb == 2)
iPrintLn( self.name, deathmethod3);
if (randb == 3)
iPrintLn( self.name, deathmethod4);
wait .05;
water_vision destroy();
}
else
{
water_vision.alpha = .5;
water_vision fadeOverTime(3);
water_vision.alpha = 0;
wait 0.05;
self.progressbackground destroy();
self.progressbar destroy();
self.drowning = undefined;
self.sounder = undefined;
}
wait 1;
self EnableWeapons();
wait .5;
}
} |
|
Jetzt brauch ich nur noch das mit der Schwerkraft. Kann mir da einer helfen?
Dankeschön
|
|
|
|
|
|
|
|
 |
Impressum ||Datenschutzerklärung
|