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:
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
TELEPORTER SCRIPT
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| Parameter Beschreibung Typ Beispiel dringend erforderlich |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| pos ~> Wo befindet sich der Teleporter? ( x , y , z ) ( 7 , 8 , 9 ) ja |
| targetPos ~> Wohin soll man teleportiert werden? ( x , y , z ) ( 1 , 2 , 3 ) ja |
| targetDir ~> Die Blickrichtung nach dem Teleportieren? ( pitch , yaw , roll ) ( 0 , 90 , 0 ) nein |
| useTouch ~> Muss [F] gedrückt werden um den Teleporter zu aktivieren? true/false true nein (default: false) |
| actionFunc ~> Was soll mit dem Spieler passieren der teleportiert wurde? ::functionPointer mod\_file::func nein |
| guidArray ~> Nur für bestimmte GUIDS erlauben? array der Guids? array guidArray nein |
| targetname ~> Targetname für identifizierung des Teleporters? string "teleporter_eingang" nein (default: "trigger_teleport") |
| radius ~> Radius des Teleporter-Trigger? floating number 32.0 nein (default: 32) |
| height ~> Height des Teleporter-Trigger? floating number 64.0 nein (default: 64) |
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
- falls einige Parameter nicht gesetzt sind, immer ein <undefined> eintragen!
- einige Beispiele hier:
1.
spawnTeleporter( ( 1050 , 326 , 16 ) , ( 1208 , 470 , 36 ) );
2.
spawnTeleporter( ( 1050 , 326 , 16 ) , ( 1208 , 470 , 36 ) , undefined , true , undefined , level.secret_guids );
3.
points = getEntArray( "mp_tdm_spawn" , "classname" );
point = points[randomInt( points.size )];
spawnTeleporter( point.origin , point.origin + ( 0 , 0 , 100 ) );
4.
points = getEntArray( "mp_tdm_spawn" , "classname" );
spawnTeleporter( points[randomInt( points.size )].origin , points[randomInt( points.size )].origin , undefined , false );
5.
start = getEnt( "teleporter_start" , "targetname" );
end = getEnt( "teleporter_end" , "targetname" );
spawnTeleporter( start.origin , end.origin , end.angles );
6. spawnTeleporter( ( 100 , 736 , -16 ) , ( 928 , 443 , 32 ) , ( 0 , 189 , 0 ) , true , ::onPlayerTeleport , level.secret_guids );
(Beispiel actionFunc)
onPlayerTeleport()
{
if( isDefined( self ) && isPlayer( self ) )
{
self iPrintLnBold( "WHOOOOOOOOOOOOOSHHHH.........\nYou have been teleported" );
self playLocalSound( "teleport" );
}
}
functionPointer wäre dann:
- wenn actionFunc in der selben Datei ist
::onPlayerTeleport
- wenn actionFunc NICHT in der selben Datei ist
ordnername1\ordnername2\dateiname::onPlayerTeleport
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
main()
{
level.secret_guids = [];
level.secret_guids[level.secret_guids.size] = 012345;
level.secret_guids[level.secret_guids.size] = 235423;
level.secret_guids[level.secret_guids.size] = 657432;
level.secret_guids[level.secret_guids.size] = 645631;
}
spawnTeleporter( pos , targetPos , targetDir , useTouch , actionFunc , guidArray , targetname , radius , height )
{
if( !isDefined( pos ) || !isDefined( targetPos ) )
return;
if( !isDefined( radius ) ) radius = 32;
if( !isDefined( height ) ) height = 64;
if( !isDefined( targetname ) ) targetname = "trigger_teleport";
level thread teleporterThink( pos , targetPos , targetDir , useTouch , actionFunc , guidArray , targetname , radius , height );
}
teleporterThink( pos , targetPos , targetDir , useTouch , actionFunc , guidArray , targetname , radius , height )
{
trigger = spawn( "trigger_radius" , pos + ( 0 , 0 , height / 2 ) , 0 , radius , height );
trigger.targetname = targetname;
trigger.targetPos = targetPos;
trigger.targetDir = targetDir;
trigger.actionFunc = actionFunc;
isGuid = isDefined( guidArray ) && guidArray.size;
useTouch = isDefined( useTouch ) && useTouch;
pGuid = 0;
for( validPlayer = true ; isDefined( trigger ) ; validPlayer = true )
{
trigger waittill( "trigger" , player );
if( !isDefined( player ) || !isPlayer( player ) || !isAlive( player ) )
continue;
if( useTouch && !player useButtonPressed() )
continue;
if( isGuid )
{
pGuid = player getGuid();
validPlayer = false;
for( i = 0 ; i < guidArray.size ; i++ )
{
if( pGuid != guidArray[i] )
continue;
validPlayer = true;
break;
}
}
if( !validPlayer )
continue;
player setOrigin( trigger.targetPos );
if( isDefined( trigger.targetDir ) )
player setPlayerAngles( trigger.targetDir );
if( isDefined( trigger.actionFunc ) )
player thread [[trigger.actionFunc]]();
}
} |