|
 |
brauche guten scripter und mapper (bewegende Platten und Buchstaben erstellen?)      |
|
|
| RE: brauche guten scripter und mapper |
 |
Die Buchstaben sind Script brushmodels. Die werden einfach per Schleife ein und ausgeschaltet.
Du erstellst die Buchstaben aus einzelnen Brushes. Die Brushes, die zu einem Buchstaben gehören, selektierst du und machst sie zu einem script_brushmodel (rechtsklick in den 2D-Bereich und da script -> bruschmodel auswählen). Dann öffnest du den Entity editor und gibst diesem script_brushmodel einen targetname (z.B. Buchstabe_1). Das machst du dann mit allen Buchstaben (jedem Buchstaben natürlich einen anderen Targetname geben).
Dann brauchst du nachher nur im Script alle entitys einsammeln und per Schleife ein und ausschalten .z.B.
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:
|
b1 = getent("Buchstabe_1","targetname");
b2 = getent("Buchstabe_2","targetname");
b3 = getent("Buchstabe_3","targetname");
b4 = getent("Buchstabe_4","targetname");
b5 = getent("Buchstabe_5","targetname");
while(1)
{
b1 hide();
wait 1;
b2 hide();
wait 1;
b3 hide();
wait 1;
b4 hide();
wait 1;
b5 hide();
wait 1;
b1 show();
wait 1;
b2 show();
wait 1;
b3 show();
wait 1;
b4 show();
wait 1;
b5 show();
wait 1;
} |
|
__________________
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 2 mal editiert, zum letzten Mal von OLD MAN WITH GUN: 29.12.2008 00:27.
|
|
|
|
|
BadMan
Turnbeutelvergesser
 
Dabei seit: 31.01.2008
Beiträge: 278

|
|
Sone Platte ist eigentlich auch recht einfach zu erstellen.
Man erstellt eine platte und einen kleinen Würfel dem man die Textur (origin) verpasst, dieser Würfel bestimmt dann den Mittelpunkt der Drehung (wenn man keinen macht, wird der Mittelpunkt der Platte angenommen). Wenn man beides erstellt hat, markiert man beides und devieniert es als (script_brushmodel) rechtsklick im 2D Fenster script/script_brushmodel wenn man das hat verpast man dem ganzen noch einen targetname und das wars auch schon. Als Skript macht man dann so etwas
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:
|
main()
{
platte = getent("platte01","targetname");
while(1)
{
platte rotatePitch(2,2);
wait 2;
platte rotatePitch(-2,2);
wait 2;
platte rotatePitch(-2,2);
wait 2;
platte rotatePitch(2,2);
wait 2;
}
}
|
|
für die Richtung der Rotation kann man folgendes verwenden
rotateYaw
rotateRoll
rotatePitch
Je nachdem wie sich die Platte drehen soll.
Wie man das Jumppad erstellt findest du hier (Hatte OMWG zwar schon mal, hats aber wieder weg ediert
)
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von BadMan: 29.12.2008 01:21.
|
|
|
|
|
BadMan
Turnbeutelvergesser
 
Dabei seit: 31.01.2008
Beiträge: 278

|
|
Original von OLD MAN WITH GUN
Original von BadMan
Wie man das Jumppad erstellt findest du hier (Hatte OMWG zwar schon mal, hats aber wieder weg ediert)
Weil ich erst nachher gelesen habe, das er weiß, wie man jumppads erstellt
stimmt jetzt fällt mir auch wieder ein weshalb ich den Link nicht beim ersten mal lesen reingeschrieben hatte.
|
|
|
|
|
BadMan
Turnbeutelvergesser
 
Dabei seit: 31.01.2008
Beiträge: 278

|
|
@lillJack
Hast bestimmt was falsch gemacht bei mir hat´s geklappt (kannst dir aber auch mal unten den DL anschauen da is die Platte auch drinnen)
@steinacker
Ich hab auch ma ne bewegte wand gemacht, allerdings nicht mit Trigger Sonden Zeitlich gesteuert.
Jede Wand wartet 0 -10 sec, wenn eine in einer Bewegung ist wartet sie erneut 0-10sec.
Das ganze kann man auch so gestalten, das sich mehrere Wände bewegen was dann so aussehen würde. Kannst das Skript auch mit dem aus dem DL ersetzen.
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:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
|
main()
{
level.plattenMoving = false;
level.pos_platte01 = true;
level.pos_platte02 = true;
level.pos_platte03 = true;
thread platte01_start();
thread platte02_start();
thread platte03_start();
thread platte02_03_start();
}
platte01_start()
{
while(1)
{
time = Randomint(10);
wait time;
if (!level.plattenMoving)
thread platte01_move();
}
}
platte02_start()
{
while(1)
{
time = Randomint(10);
wait time;
if (!level.plattenMoving)
thread platte02_move();
}
}
platte03_start()
{
while(1)
{
time = Randomint(10);
wait time;
if (!level.plattenMoving)
thread platte03_move();
}
}
platte02_03_start()
{
while(1)
{
time = Randomint(10);
wait time;
if (!level.plattenMoving)
thread platte02_03_move();
}
}
platte01_move()
{
plattenmodel_01 = getent ("platte01", "targetname");
platte01_dmg01 = getent ("platte01_dmg_01", "targetname");
platte01_dmg02 = getent ("platte01_dmg_02", "targetname");
//platte01_dmg01 linkto(plattenmodel_01);
//platte01_dmg02 linkto(plattenmodel_01);
level.plattenMoving = true;
way = 112; //-
speed = 5;
if (level.pos_platte01) {
//platte01_dmg01 show();
plattenmodel_01 movex (way - (way * 2), speed);
plattenmodel_01 waittill ("movedone");
//platte01_dmg01 hide();
level.pos_platte01 = false;
}
else
{
//platte01_dmg02 show();
plattenmodel_01 movex (way, speed);
plattenmodel_01 waittill ("movedone");
//platte01_dmg02 hide();
level.pos_platte01 = true;
}
level.plattenMoving = false;
}
platte02_move()
{
plattenmodel_02 = getent ("platte02", "targetname");
platte02_dmg01 = getent ("platte02_dmg_01", "targetname");
platte02_dmg02 = getent ("platte02_dmg_02", "targetname");
//platte02_dmg01 linkto(plattenmodel_02);
//platte02_dmg02 linkto(plattenmodel_02);
level.plattenMoving = true;
way = 96; //-
speed = 5;
if (level.pos_platte02) {
//platte02_dmg01 show();
plattenmodel_02 moveY (way - (way * 2), speed);
plattenmodel_02 waittill ("movedone");
//platte02_dmg01 hide();
level.pos_platte02 = false;
}
else
{
//platte02_dmg02 show();
plattenmodel_02 moveY (way, speed);
plattenmodel_02 waittill ("movedone");
//platte02_dmg02 hide();
level.pos_platte02 = true;
}
level.plattenMoving = false;
}
platte03_move()
{
plattenmodel_03 = getent ("platte03", "targetname");
platte03_dmg01 = getent ("platte03_dmg_01", "targetname");
platte03_dmg02 = getent ("platte03_dmg_02", "targetname");
//platte03_dmg01 linkto(plattenmodel_03);
//platte03_dmg02 linkto(plattenmodel_03);
level.plattenMoving = true;
way = 96; //-
speed = 5;
if (level.pos_platte03) {
//platte03_dmg01 show();
plattenmodel_03 moveY (way, speed);
plattenmodel_03 waittill ("movedone");
//platte03_dmg01 hide();
level.pos_platte03 = false;
}
else
{
//platte03_dmg02 show();
plattenmodel_03 moveY (way - (way * 2), speed);
plattenmodel_03 waittill ("movedone");
//platte03_dmg02 hide();
level.pos_platte03 = true;
}
level.plattenMoving = false;
}
platte02_03_move()
{
plattenmodel_02 = getent ("platte02", "targetname");
plattenmodel_03 = getent ("platte03", "targetname");
level.plattenMoving = true;
way = 96; //-
speed = 5;
if (level.pos_platte02)
{
if (level.pos_platte03)
{
plattenmodel_02 moveY (way - (way * 2), speed);
plattenmodel_03 moveY (way, speed);
plattenmodel_03 waittill ("movedone");
level.pos_platte02 = false;
level.pos_platte03 = false;
}
else
{
plattenmodel_02 moveY (way - (way * 2), speed);
plattenmodel_03 moveY (way - (way * 2), speed);
plattenmodel_03 waittill ("movedone");
level.pos_platte02 = false;
level.pos_platte03 = true;
}
}
else
{
if (level.pos_platte03)
{
plattenmodel_02 moveY (way, speed);
plattenmodel_03 moveY (way, speed);
plattenmodel_03 waittill ("movedone");
level.pos_platte02 = true;
level.pos_platte03 = false;
}
else
{
plattenmodel_02 moveY (way, speed);
plattenmodel_03 moveY (way - (way * 2), speed);
plattenmodel_03 waittill ("movedone");
level.pos_platte02 = true;
level.pos_platte03 = true;
}
}
level.plattenMoving = false;
}
|
|
Desto mehr wände sich bewegen desto mehr variablen muss man halt machen sonst gibt’s durcheinander.
Hab mal die Map hochgeladen wenn du es dir mal betrachten willst (nur das man zerquetscht wird hat nicht so geklappt wie ich mir das vorgestellt habe, da man einen Trigger hurt nicht Skripten kann)
Download
|
|
|
|
|
|
|
trigger_hurt linkto (mauer);
So wird ein Schuh draus
__________________
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.
|
|
|
|
|
BadMan
Turnbeutelvergesser
 
Dabei seit: 31.01.2008
Beiträge: 278

|
|
Ich hab jetzt nochmal etwas mit rumgespielt und das mit "linkto" klappt nicht ich bekomme, eine Fehlermeldung die mir sagt das ein Trigger Hurt die Funktion "linkto" nicht unterstützt.
(wenn´s aber ma genau hinschaut, stehst oben im Skript auskommentiert drinnen)
Ich glaube move befehle wollte der auch nicht annehmen.
Na Ja egal Habs jetzt anders gemacht und zwar habe ich stattdessen ein script_origin an der Stelle platziert, wo am rechten Ort zur rechten Zeit ein radiusDamage per Skript erstellt wird.
Das ist aber noch nicht alles was geändert ist. Es ist jetzt nicht mehr möglich (hoffe ich zumindest), bei Mehrfachbewegungen ein durcheinander zu schaffen, indem man eine Wand anhält. Es sind Staub Effekte bei den sich gerade bewegenden Wänden. Ein Sound ist nicht drinnen sollte aber auch keine große Sache sein. Außerdem habe ich die Skriptstruktur etwas geändert, und zwar hab ich das Skript in 4 Teile (4 eigene .gsc Dateien) und diese in einen Ordner gepackt.
1. _bewe.gsc Darin sind die Strafbefehle der einzelnen Bewegungen.
2. _move.gsc Darin sind die Bewegungen der einzelnen Wände.
3. _dmg.gsc Darin ist a Wand 2X der Befehl einen RadiusDamage zu erstellen.
4. _fx.gsc Darin ist erstens der oder die Effekte die geladen werden und das abspiel Skript das jede wand nutzen kann.
Ach genau Wand 1 kann sich auch drehen und in eine adere Richtung laufen, was man auch noch erweitern kann ohne große if else Blöcke immer nur jeweils einer für jede mögliche Bewegung.
So Habs mal hochgeladen finden könnt ihr es Hier
Und hier mal die Sachen die zusätzlich zum Rest noch ins zone file kommen.
Code angehängt. Klicke hier zum Ein-/Ausblenden
| code: |
1:
2:
3:
4:
5:
6:
7:
8:
|
rawfile,maps/mp/bewegung/_bewe.gsc
rawfile,maps/mp/bewegung/_dmg.gsc
rawfile,maps/mp/bewegung/_move.gsc
rawfile,maps/mp/bewegung/_fx.gsc
fx,treadfx/tread_road_sniperescape
|
|
Hätte da aber noch ne Frage: Weis einer wie oder ob man sich einen RadiusDamage ingame ansehen kann?
Den einzustellen ist irgendwie beschissen, daher würde ich gerne mal wissen wie der aussieht.
@Steinacker
Baust du eigentlich noch an der Map mit den Bewegten Wänden?
|
|
|
|
|
Animus
Steuerzahler

Dabei seit: 29.04.2008
Beiträge: 198

|
|
@steinacker
mach mal weiter an deiner moria ich find die bilder jedesmal geil.
wie weit bis du damit eigentlich wenn du es in % ausdrücken würdest?
ich komm mir jedes mal wie ein volldeppmapper vor wenn ich dein zeug seh.
|
|
|
|
|
|
|
|
 |
Impressum ||Datenschutzerklärung
|