source: GTP/trunk/App/Demos/Illum/IBRBillboardCloudTrees/Shark3D/bin/res/level_shmap/actor/levelplayer.s3d_actor_run @ 2517

Revision 2517, 14.6 KB checked in by igarcia, 17 years ago (diff)
Line 
1///////////////////////////////////////////////////////////////////////////////
2//
3//      ##  ######
4//       ######  ###
5//  ## ###############        Shark 3D Engine (www.shark3d.com)
6//   ########## # # #
7//    ########                Copyright (c) 1996-2006 Spinor GmbH.
8//   ######### # # #          All rights reserved.
9//  ##   ##########
10//      ##
11//
12///////////////////////////////////////////////////////////////////////////////
13
14// Definition of the player.
15//
16// In this case, the player is a player having a walk collision detection
17// and can be controlled by the human player.
18//
19// The player is not defined directly, but only a suppl for the player.
20// The reason for this is that not only one player must be created,
21// but a new player for every player which logs into the server.
22// As long as no client logs into a server, no player is created.
23// Each time a player logs into the server, the player suppl
24// is used to create a player.
25
26
27// Since each dsc-file formally can only contain a single actor,
28// we use the group actor to define more than one actor.
29actor_ident "kit_base.group"
30actor_param
31{
32    // Delegate action calls to the children.
33    active 1
34    child_array
35    {
36        // This dispatcher dispatches commands coming
37        // from outside the capsule.
38        ident "kit_base.dispatch"
39        param
40        {
41            name "dispatch_export"
42            entry_array
43            {
44                cmds "destroy"
45                targets "capsule"
46            }
47            {
48                cmds "created_local"
49                targets
50            }
51            {
52                cmds "created_net"
53                targets "reproduce"
54                newcmd "set_blocked"
55            }
56            {
57                cmds "net_traverse"
58                targets "group_player"
59                newcmd "traverse"
60            }
61            {
62                cmds "net_appear"
63                targets "reproduce"
64                newcmd "rework"
65            }
66            // Inform management:
67            {
68                // Store the inform-actor in "inform":
69                cmds "assign_inform" "set_inform"
70                targets "inform_deleg"
71                newcmd "set_deleg_target"
72            }
73            {
74                // Delegate the inform command:
75                cmds "assign_inform" "set_inform"
76                targets "informanswer"
77                    "oninform_gfxmgr" "oninform_sndmgr"
78                    "oninform_world" "oninform_sky"
79                    "oninform_sim"
80                    "oninform_noise"
81                    "oninform_sensorstate"
82                    "oninform_maincamera"
83                    "maininform_switch"
84                    "oninform_playerbody"
85            }
86            {
87                cmds "search_inform" "search_noinform"
88                targets "informanswer"
89            }
90            {
91                // Set the position of the player.
92                cmds "set_transf"
93                targets "scene_root"
94            }
95            {
96                cmds "add_motion"
97                targets "player_deleg" "godplayer_deleg"
98            }
99            {
100                cmds "add_motion_to_gear"
101                targets "gear"
102                newcmd "add_gear_motion"
103            }
104            {
105                cmds "god"
106                targets "god_switch"
107                newcmd "toggle_switch"
108            }
109            {
110                cmds "goto_level_next"
111                newcmd "goto_level10"
112                targets "^^levelmgr"
113            }
114            {
115                cmds "goto_level_prev"
116                newcmd "goto_level8"
117                targets "^^levelmgr"
118            }
119        }
120    }
121    {
122        ident "kit_base.dispatch"
123        param
124        {
125            name "dispatch"
126            entry_array
127            {
128                // Disable god mode:
129                cmds "disable_god"
130                targets "maininform_switch"
131                newcmd "select_normalmode"
132            }
133            {
134                // Disable godmode.
135                cmds "disable_god"
136                targets "player_deleg_actor"
137                newcmd "enable"
138            }
139            {
140                // Disable godmode.
141                cmds "disable_god"
142                targets "godplayer_deleg_actor"
143                newcmd "disable"
144            }
145            {
146                // Disable godmode.
147                cmds "disable_god"
148                targets "godctrl"
149                newcmd "god_to_player"
150            }
151            {
152                // Disable godmode.
153                cmds "disable_god"
154                targets "scene_root"
155                newcmd "activate_body"
156            }
157            {
158                // Enable godmode.
159                cmds "enable_god"
160                targets "maininform_switch"
161                newcmd "select_godmode"
162            }
163            {
164                // Enable godmode.
165                cmds "enable_god"
166                targets "player_deleg_actor"
167                newcmd "disable"
168            }
169            {
170                // Enable godmode.
171                cmds "enable_god"
172                targets "godplayer_deleg_actor"
173                newcmd "enable"
174            }
175            {
176                // Enable godmode.
177                cmds "enable_god"
178                targets "godctrl"
179                newcmd "player_to_god"
180            }
181        }
182    }
183    {
184        ident "kit_base.deleg"
185        param
186        {
187            name "inform_deleg"
188            deleg_name "inform"
189            deleg_target ""
190            allow_no_target 1
191            enabled 1
192        }
193    }
194    {
195        ident "kit_engobj.informanswer"
196        param
197        {
198            name "informanswer"
199            answer_cmd "add_result"
200            answer_actor "capsule_deleg"
201        }
202    }
203    {
204        ident "kit_base.switch"
205        param
206        {
207            name "god_switch"
208            target "dispatch"
209            disable_switch_cmd "disable_god"
210            enable_switch_cmd "enable_god"
211        }
212    }
213    {
214        ident "kit_engobj.itemeye"
215        param
216        {
217            name "scene_root"
218            item_actor "group_player"
219            item_name "body:scene_root"
220        }
221    }
222    {
223        ident "kit_engobj.itemeye"
224        param
225        {
226            name "camera"
227            item_actor "group_player"
228            item_name "simplepos:camera"
229        }
230    }
231    {
232        ident "kit_engobj.itemeye"
233        param
234        {
235            name "playerbody"
236            item_actor "group_player"
237            item_name "body:scene_root"
238        }
239    }
240    {
241        ident "kit_engobj.itemeye"
242        param
243        {
244            name "gear"
245            item_actor "group_player"
246            item_name "gear:gear"
247        }
248    }
249    {
250        ident "kit_base.obj"
251        param
252        {
253            // Create the position of the godplayer
254            // (spawn at (0,0,0) for now).
255            name "god_vehicleobj"
256            obj_suppl "^stdsuppl"
257            obj_ident "simplepos:"
258            obj_param
259            {
260                env "^^env"
261            }
262        }
263    }
264    {
265        // Select the position of the godmode-player
266        // (we want the position, not the wrapping actor,
267        // so "unwrap" it).
268        ident "kit_engobj.itemeye"
269        param
270        {
271            name "god_vehicle"
272            item_actor "god_vehicleobj"
273            item_name ""
274        }
275    }
276    {
277        // Create a camera-position for the godmode-player
278        // mounted on the godmode-player's position
279        // (i.e. camera moves relatively to player-position).
280        ident "kit_base.obj"
281        param
282        {
283            name "god_camobj"
284            obj_suppl "^stdsuppl"
285            obj_ident "simplepos:"
286            obj_param
287            {
288                env "^^env"
289                parent "god_vehicle"
290            }
291        }
292    }
293    {
294        // Select the position of the godmode-camera
295        // (we want the position, not the wrapping actor,
296        // so "unwrap" it).
297        ident "kit_engobj.itemeye"
298        param
299        {
300            name "god_cam"
301            //item_actor "^god_spawn"
302            item_actor "god_camobj"
303            item_name ""
304        }
305    }
306    {
307        // The godplayer moves different than the normal player
308        // so pass the movement to this godmode-control actor.
309        ident "kit_engobj.godctrl"
310        param
311        {
312            active 1
313            name "godctrl"
314            move_dir 0.0 1.0 0.0
315            move_also 1.0 0.0 0.0
316            cam_dir 0.0 0.0 1.0
317            cam_also 1.0 0.0 0.0
318            god_vehicle "god_vehicle"
319            god_cam "god_cam"
320            player_vehicle "playerbody"
321            player_cam "camera"
322        }
323    }
324    {
325        ident "kit_engobj.motionlook"
326        param
327        {
328            name "motionlook"
329            look_actor "camera"
330            look_target "camera"
331            look_get_cmd "get_transf"
332            look_set_cmd "set_transf"
333            other_target "dispatch_export"
334            other_cmd "add_motion_to_gear"
335            axis 1.0 0.0 0.0
336            min_angle -170.0
337            max_angle -10.0
338        }
339    }
340    {
341        ident "kit_engobj.motionlook"
342        param
343        {
344            name "godmotionlook"
345            look_actor "god_cam"
346            look_target "god_cam"
347            look_get_cmd "get_transf"
348            look_set_cmd "set_transf"
349            other_target "godctrl"
350            other_cmd "add_motion"
351            axis 1.0 0.0 0.0
352            min_angle -170.0
353            max_angle -10.0
354        }
355    }
356    {
357        ident "kit_base.deleg"
358        param
359        {
360            name "player_deleg_actor"
361            deleg_name "player_deleg"
362            deleg_target "motionlook"
363            enabled 1
364            allow_no_target 1
365        }
366    }
367    {
368        ident "kit_base.deleg"
369        param
370        {
371            name "godplayer_deleg_actor"
372            deleg_name "godplayer_deleg"
373            deleg_target "godmotionlook"
374            enabled 0
375            allow_no_target 1
376        }
377    }
378    {
379        ident "kit_engobj.oninform"
380        param
381        {
382            // Tell the client about performing
383            // the level change.
384            name "oninform_changelevel"
385            cmd "changelevel_perform"
386        }
387    }
388    {
389        ident "kit_engobj.oninformobj"
390        param
391        {
392            name "oninform_gfxmgr"
393            cmd "set_gfxmgr_level"
394            param "^gfxmgr"
395        }
396    }
397    {
398        ident "kit_engobj.oninformobj"
399        param
400        {
401            name "oninform_sndmgr"
402            cmd "set_sndmgr_level"
403            param "^sndmgr"
404        }
405    }
406    {
407        ident "kit_engobj.oninformobj"
408        param
409        {
410            name "oninform_world"
411            cmd "set_state_world"
412            param "^state_world"
413        }
414    }
415    {
416        ident "kit_engobj.oninformobj"
417        param
418        {
419            name "oninform_sky"
420            cmd "set_state_sky"
421            param "^state_sky"
422        }
423    }
424    {
425        ident "kit_engobj.oninformobj"
426        param
427        {
428            name "oninform_sim"
429            cmd "set_sim_world"
430            param "^sim_world"
431        }
432    }
433    {
434        ident "kit_engobj.oninformobj"
435        param
436        {
437            name "oninform_noise"
438            cmd "set_noise_world"
439            param "^noise_world"
440        }
441    }
442    {
443        ident "kit_engobj.oninformobj"
444        param
445        {
446            name "oninform_sensorstate"
447            cmd "set_sensorstate_world"
448            param "^sensorstate_world"
449        }
450    }
451    {
452        ident "kit_engobj.oninformobj"
453        param
454        {
455            name "oninform_maincamera"
456            cmd "set_camera"
457            param "camera"
458        }
459    }
460    {
461        ident "kit_engobj.oninformobj"
462        param
463        {
464            name "oninform_godcamera"
465            cmd "set_camera"
466            param "god_cam"
467        }
468    }
469    {
470        // This actor is used to switch between the main
471        // camera and the test camera.
472        // This actor switches between different actors
473        // which get the "assign_inform" or "set_inform"
474        // command with the current inform-actor, whereas
475        // all other disabled actors get a "assign_inform" or
476        // "set_inform" with 0 as argument.
477        ident "kit_engobj.oninformswitch"
478        param
479        {
480            name "maininform_switch"
481            deleg_name "maininform"
482            target "oninform_maincamera"
483            entry_array
484            {
485                cmd "select_godmode"
486                target "oninform_godcamera"
487            }
488            {
489                cmd "select_normalmode"
490                target "oninform_maincamera"
491            }
492        }
493    }
494    {
495        ident "kit_engobj.oninformobj"
496        param
497        {
498            name "oninform_playerbody"
499            cmd "set_playerbody"
500            param "playerbody"
501        }
502    }
503    {
504        ident "kit_engobj.itemeye"
505        param
506        {
507            name "sensortrig_pos"
508            item_actor "group_player"
509            item_name "simplepos:sensortrig"
510        }
511    }
512    {
513        ident "kit_base.obj"
514        param
515        {                           
516            name "sensortrig_elem"
517            obj_suppl "^^envcompsuppl"
518            obj_ident "eng_sensor_std.sensortrig"
519            obj_param
520            {
521                env "^^env"
522                sensorstate "^sensorstate_world"
523                pos "sensortrig_pos"
524            }
525        }
526    }
527    {
528        ident "kit_engobj.sensortrig"
529        param
530        {
531            name "sensortrig_world"
532            sensorelem_actor "sensortrig_elem"
533            sensorelem_name ""
534            enter_cmd "player_enter"
535            leave_cmd "player_leave"
536            sender "capsule_deleg"
537        }
538    }
539    {
540        ident "kit_base.onaction"
541        param
542        {
543            active 1
544            name "update_sensortrig_world_onaction"
545            target "sensortrig_world"
546            cmd "update"
547        }
548    }
549    {
550        ident "kit_engbase.netreproduce"
551        param
552        {
553            name "reproduce"
554            producer "inform"
555            charge "capsule_deleg"
556            reproduce_cmd "reproduce"
557        }
558    }
559}
Note: See TracBrowser for help on using the repository browser.