source: GTP/trunk/App/Demos/Illum/IBRBillboardCloudTrees/Shark3D/demo_v5x0x7_t164x31u_enterpr_kwin32/bin/res/level/actor/levelplayer.s3d_actor_run @ 2330

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