bienvenidos a la 3° parte de este tutorial. comenten y puntuen; Gracias.
Textos
En este tutorial vamos a ver en los textos. Hay todo tipo de textos: grandes, pequeños, negrita, colores ...
Visualización de texto
CÓDIGO
00BA: "BEEFY 'show_text_styled GXT tiempo un estilo de 3000
Usted tiene que usar el nombre de la entrada GXT entre el''. Detrás de tiempo que tienes que poner la cantidad de tiempo que el texto se debe mostrar. Hay 7 estilos, que se puede rellenar detrás de estilo:
1: En el centro, igual que cuando se aprobó una misión o ganar una carrera.
2: En el bottomRight, al igual que al iniciar una misión.
3: El texto blanco en el centro, al igual que cuando se pierden o roto.
4: Estilo 1, pero más pequeño.
5: Igual que el estilo de 4, pero un poco más alto en la pantalla.
6: Texto pequeño blanco en el centro de la pantalla.
7: texto azul claro en la parte superior de la pantalla.
Tenga cuidado, 0 no es un estilo, y el juego se bloqueará!
Texto en blanco en la parte inferior de la pantalla se muestra con otros códigos de operación. Hay una diferencia entre los códigos de operación de alta prioridad lowpriority. La alta prioridad reemplazará al lowpriority. Por ejemplo:
CÓDIGO
00BB: el tiempo "IE23" show_text_lowpriority GXT 3000 marca un
esperar a 1000
00BC: el tiempo "MTIME3 'show_text_highpriority GXT 3000 marca un
Así que aquí IE23 la primera se mostrará, pero después de un segundo se sustituyen por «MTIME3.
Puede borrar los textos de los códigos de operación siguientes:
CÓDIGO
00BE: text_clear_all
03D5: "MTIME3 'remove_text
Textos de la pantalla con el número de
CÓDIGO
01E3: número show_text_1number_styled GXT "BB_15 500 de tiempo de 5000 un estilo
Con este código de operación se puede añadir un número en el texto. En este caso, su puntuación más alta será de 500 nuevos. Los estilos son exactamente las mismas como se mencionó anteriormente. Pero ten cuidado: hay que utilizar las entradas de GXT que son compatibles con los números! Voy a volver sobre este tema en el siguiente tutorial, cuando vamos a añadir nuevos textos.
Hay más códigos de operación de este. Creo que van a hablar por sí mismo:
CÓDIGO
01E4: número de 'HJ_IS' show_text_1number_lowpriority GXT $ var tiempo una bandera de 2000
036D: Los números de "TX_SEQ 'show_text_2numbers_styled GXT $ var tiempo $ var2 5000 style 5
02FD: Los números de "BB_05 'show_text_2numbers_lowpriority GXT $ var tiempo $ var2 5000 marca un
02FF: Los números de "WHEEL02 'show_text_3numbers GXT $ var $ var2 $ var3 tiempo una bandera de 3000
0302: Los números de "WHEEL01 'show_text_4numbers GXT bandera $ var $ var2 $ var3 tiempo var4 $ 3000 1
0303: Los números de "QUAR_P6 'show_text_4numbers_highpriority GXT bandera $ var $ var2 $ var3 tiempo $ 10,000 var4 un
0308: Los números de "HJSTAT 'show_text_6numbers GXT bandera $ var $ var2 $ var3 $ var4 tiempo var5 $ 5000 5
Mostrar los cuadros de texto
CÓDIGO
03E5: "HELP101 'show_text_box
Esta es la "normal" de texto. Desaparecerá después de algún tiempo. Un cuadro de texto es un cuadrado negro en la esquina superior izquierda con letras blancas.
CÓDIGO
0512: 'HOSP_1' show_permanent_text_box
Este es un cuadro de texto permanente, por lo que se mostrará hasta que un código de operación se ejecuta en el que no. Ese es el código de operación siguientes:
CÓDIGO
03E6: remove_text_box
Por ejemplo:
CÓDIGO
0512: 'HOSP_1' show_permanent_text_box
esperar a 1000
03E6: remove_text_box
Con este código de operación se mostrará un cuadro de texto, y se eliminará después de 1 segundo.
CÓDIGO
0513: número de 'SLOT_02' show_text_box_1number 2
Se trata de un código de operación para un cuadro de texto con un número en el texto, en este caso el valor 2.
Existen tres códigos de operación que comprobar si el cuadro de texto existen:
CÓDIGO
0A2A: "SGPUNT 'caja_de_texto muestra
08FE: text_box_displayed
88FE: no text_box_displayed
CÓDIGO
0989: 500 set_text_boxes_width
Con este código de operación, puede modificar el ancho de la caja de texto. Para ver la diferencia, puede utilizar el siguiente código:
CÓDIGO
0512: 'HOSP_1' show_permanent_text_box
esperar a 1000
0989: 500 set_text_boxes_width
Textes dibujado
CÓDIGO
033E: set_draw_text_position 300,0 200,0 GXT "BJ_PUSH '
Este es un ejemplo de un texto elaborado. Se le puede dar la posición que desee, mediante la edición del 300,0 y 200,0 de la. El 300.0 es horizontal, la 200.0 es vertical.
Un texto elaborado es normalmente un texto en blanco pequeño. Pero usted puede cambiar esto con los códigos de operación 133F y 1340. Sólo se puede eliminar con el siguiente código:
CÓDIGO
03F0: enable_text_draw 0
Usted también puede hacer un texto elaborado con los números:
CÓDIGO
045A: número draw_text_1number 320,0 155.333 GXT "ganador" 1000
045B: 'TIME' draw_text_2numbers 320,0 390,0 GXT números 20 30
Creo que estos códigos hablan por sí mismo.
Otros códigos de operación de texto
CÓDIGO
0A19: 'marcas' display_zone_text
Con este código de operación puede mostrar un texto como el de las al entrar en una zona. Por ejemplo, San Marcos.
CÓDIGO
09C1: add_next_text_to_brief_history 1
Con este código de operación se puede añadir un texto a la "breve" en el menú principal, por lo que un jugador puede mirar hacia atrás. Un 1 significa que tiene que ser almacenado en la opción breve, 0 significa que no tiene por qué. Tienes que poner este código antes de que el código de operación que se está utilizando para mostrar textos. Por ejemplo:
CÓDIGO
09C1: add_next_text_to_brief_history 1
00BB: el tiempo "IE23" show_text_lowpriority GXT 3000 marca un
Cuando quieres ver un ejemplo de un texto en una misión de corta duración, se puede ver en el tutorial anterior, que contiene una aplicación de los textos.
Guardar la costumbre de punto
En este tutorial, vamos a tomar una medida fácil de guardar el punto. Tenga en cuenta, que no funciona bien en MPack. Así que si quieres hacer uso de la costumbre de guardar el punto en el SMC, a continuación, utilizar el main.scm y MPack no.
Plan de acción:
1) Creación de la recolección y comprobar si el jugador lo recogió.
2) Mostrar pantalla de guardado y esperar a que el ahorro se hace
3) Limpiar
1) Creación de la recolección y comprobar si el jugador lo recogió
Esto no es demasiado difícil. Si has seguido los tutoriales de otros en este tema también será capaz de hacerlo usted mismo. Usted puede hacerlo de la siguiente manera:
CÓDIGO
$ Save_x = 2488.6506
$ Save_y = -1660.9884
$ = 13.3359 save_z
0395: clear_area 1 en $ $ save_x gama save_y $ 1,0 save_z
$ SAVE_PICKUP = Pickup.Create (# PICKUPSAVE, 3, $ save_x, save_y $, $ save_z)
repetir
esperar 100
hasta el 0214: $ pickup SAVE_PICKUP picked_up
Si usted no sabe lo que estoy haciendo aquí, le sugiero que echar otro vistazo a este tutorial.
2) Mostrar pantalla de guardado y esperar a que el ahorro se hace
Puede mostrar la pantalla de salvar con un solo código de operación:
CÓDIGO
03D8: show_save_screen
Sin embargo, tenemos que hacer algunas otras cosas antes de utilizar este código de operación, sin embargo. En primer lugar, tenemos que establecer la variable de $ ONMISSION el 1, por lo que el jugador no recibe llamadas telefónicas y cosas por el estilo. En segundo lugar, tenemos que asegurarnos de que el jugador no puede moverse, se vería extraño cuando el actor se encuentra en un lugar totalmente diferente cuando el ahorro se hace.
CÓDIGO
$ ONMISSION = 1 / / valores enteros
Player.CanMove ($ PLAYER_CHAR) = False
Tenemos que esperar hasta que el ahorro se hace. Aunque no se puede encontrar un "save_done" en la herramienta de búsqueda de código de operación o en el main.scm (usted puede encontrar 83D9 (no save_done) sin embargo), es posible y fácil de usar.
CÓDIGO
repetir
esperar 100
hasta 03D9: save_done
La combinación de estos fragmentos, la segunda parte del código se convierte en:
CÓDIGO
$ ONMISSION = 1 / / valores enteros
Player.CanMove ($ PLAYER_CHAR) = False
03D8: show_save_screen
repetir
esperar 100
hasta 03D9: save_done
3) Limpiar
¿Qué tenemos ahora? Tenemos la pastilla que tiene que ser recogido. A continuación, una pantalla para guardar aparecerá, y el código tiene que esperar hasta que el jugador terminó el ahorro. Usted no tiene que hacer algo al respecto que el ahorro, que está codificada. En esta última parte, vamos a arreglar la cámara, y comprobar si el jugador no está cerca de la camioneta salvarlos. Junto a esto, tenemos que destruir la camioneta.
CÓDIGO
Pickup.Destroy ($ SAVE_PICKUP)
repetir
esperar 100
hasta Player.Defined ($ PLAYER_CHAR)
Camera.Restore_WithJumpCut
Camera.SetBehindPlayer
Player.CanMove ($ PLAYER_CHAR) = True
$ ONMISSION = 0
repetir
esperar 0
hasta 80EC: no actor PLAYER_ACTOR $ 0 near_point 2488.6506 -1660,9884 radio de 2,0 2,0
salto @ SAVE_LOOP
La primera línea es destruir la camioneta. Al final, vamos a ir al principio (después de esperar hasta que el jugador no está en ese lugar nada más), por lo que la camioneta se creará de nuevo. Entonces podremos restablecer la cámara. El jugador tiene que ser capaz de moverse de nuevo. Por último, tenemos que poner la variable $ ONMISSION a 0, de lo contrario no es posible hacer otra misión o recibir llamadas.
El código completo de un hilo de punto de la aduana:
CÓDIGO
: SAVE
hilo "SAVE"
/ / Ubicación de la camioneta ahorrar
$ Save_x = 2488.6506
$ Save_y = -1660.9884
$ = 13.3359 save_z
: SAVE_LOOP
0395: clear_area 1 en $ $ save_x gama save_y $ 1,0 save_z
$ SAVE_PICKUP = Pickup.Create (# PICKUPSAVE, 3, $ save_x, save_y $, $ save_z)
repetir
esperar 100
hasta el 0214: $ pickup SAVE_PICKUP picked_up
$ ONMISSION = 1 / / valores enteros
Player.CanMove ($ PLAYER_CHAR) = False
03D8: show_save_screen
repetir
esperar 100
hasta 03D9: save_done
Pickup.Destroy ($ SAVE_PICKUP)
repetir
esperar 100
hasta Player.Defined ($ PLAYER_CHAR)
Camera.Restore_WithJumpCut
Camera.SetBehindPlayer
Player.CanMove ($ PLAYER_CHAR) = True
$ ONMISSION = 0
repetir
esperar 0
hasta 80EC: no actor PLAYER_ACTOR $ 0 $ near_point save_x $ save_y radio de 2,0 2,0
salto @ SAVE_LOOP
end_thread
Haga clic aquí para ver el código en un main.scm despojado.
Escenas
En este tutorial, voy a explicar una escena básica. Es muy difícil decir cómo hacerlo, porque cada escena individual es diferente. Sin embargo, creo que sería capaz de aprender cuando les explico una escena simple. Así que codifica un mismo escena simple, y yo te mostraré lo que significa. Tenga en cuenta que usted tiene que probar casi todos los códigos que está haciendo. Usted tiene que poner espera entre a hacer una historia mejor, usted tiene que probar la cámara, etc.
Ejemplo de escena
Básicamente, una escena es un montón de códigos de operación que no es necesario el aporte de los jugadores. Si el jugador no puede hacer nada, y sólo tiene que ver algo, es una escena. Tenga esto en cuenta en el tutorial. Vamos a comenzar con el código completo de la escena me guión:
CÓDIGO
//---------------------
/ / Inicio Cutscene
//---------------------
: CUTSCENE
03BC: $ comenzar = create_sphere_at 2489.0088 13.3519 -1658,4554 radio de 1,0
repetir
esperar 0
hasta 00FE: esfera actor PLAYER_ACTOR $ 0 in_sphere 2489.0088 13.3519 -1658,4554 radio 1,0 1,0 1,0
Player.CanMove ($ PLAYER_CHAR, false)
//---------------------
/ / Cargar Modelos
//---------------------
model.Load (# ejército)
model.Load (# patriota)
model.load (# m4)
023C: 'dulce' load_special_actor como 1 / / los modelos 290-299
023C: "Kendl 'load_special_actor como 2 / / los modelos 290-299
023C: load_special_actor 'César' como 3 / / los modelos 290-299
038B: load_requested_models
: Load_check
esperar 0
si y
model.available (# ejército)
model.available (# patriota)
model.available (# m4)
023D: special_actor una carga
023D: special_actor 2 cargado
023D: 3 special_actor carga
else_jump @ load_check
//---------------------
/ / De Spawn en todo lo que se desvanecen
//---------------------
fade 0 500
repetir
esperar 0
hasta 816B: no desapareciendo
02A3: enable_widescreen 1
03BD: $ destroy_sphere comenzar
Car.Create ($ coche, patriota #, 2503,0217, -1672,2841, 13,3594)
Car.Angle ($ carro) = 82.3844
0129: 1 @ = 23 create_actor_pedtype modelo # ejército in_car $ coche driverseat
01C8: 2 = @ 23 create_actor_pedtype modelo # ejército in_car coche passenger_seat $ 0
01C8: 3 @ = 23 create_actor_pedtype modelo # ejército in_car $ passenger_seat un coche
01C8: 4 @ = 23 create_actor_pedtype modelo # ejército in_car coche passenger_seat $ 2
01B2: give_actor 1 @ 31 municiones de armas 60 / / Cargar el modelo de arma antes de usar este
01B2: give_actor 2 @ 31 municiones de armas 60 / / Cargar el modelo de arma antes de usar este
01B2: give_actor 3 @ 31 municiones de armas 60 / / Cargar el modelo de arma antes de usar este
01B2: give_actor 4 @ 31 municiones de armas 60 / / Cargar el modelo de arma antes de usar este
009A: 5 @ = 4 create_actor_pedtype modelo # SPECIAL01 en 2479,1279 -1680,2635 13.338
Actor.Angle (5 @) = 359.6866
009A: 6 x 4 = create_actor_pedtype modelo # SPECIAL02 en 2477,7996 -1678,5049 13.3386
Actor.Angle (6 @) = 266.6259
009A: 7 @ = 4 create_actor_pedtype modelo # SPECIAL03 en 2479,3577 -1676,2166 13.337
Actor.Angle (7 @) = 176.3852
00A1: put_actor $ PLAYER_ACTOR en 2480,9185 -1678,2045 13.3404
Actor.Angle ($ PLAYER_ACTOR) = 98.7008
04ED: load_animation "bandas"
repetir
esperar 0
hasta 04EE: animación "pandillas" carga
0605: actor 5 @ perform_animation_sequence "PRTIAL_GNGTLKA" IFP_file "pandillas" bucle de 4,0 1 0 0 0 -1 hora
0605: actor 6 @ perform_animation_sequence "PRTIAL_GNGTLKB" IFP_file "pandillas" bucle de 4,0 1 0 0 0 -1 hora
0605: actor 7 @ perform_animation_sequence "PRTIAL_GNGTLKC" IFP_file "pandillas" bucle de 4,0 1 0 0 0 -1 hora
0605: actor $ perform_animation_sequence PLAYER_ACTOR "PRTIAL_GNGTLKC" IFP_file "pandillas" bucle de 4,0 1 0 0 0 -1 hora
Camera.SetPosition (2472.7151, -1681.5944, 16.9041, 0.0, 0.0, 0.0)
Camera.PointAt (2494.2827, -1669.9541, 13.3359, 2)
esperar a 2000
00A7: $ coche coche drive_to 2487.1799 13.3359 -1670,8324
se desvanecen 1 500
repetir
esperar 0
hasta 816B: no desapareciendo
//---------------------
/ / Comportamiento después de desaparecer
//---------------------
repetir
espere 10
hasta 01AE: $ coche coche esfera 0 near_point 2487.1799 -1670,8324 radio 3,0 3,0 detenido
0160: set_camera_point_at 2494.2827 -1669,9541 9,3359 modo 2
05CD: AS_actor 1 @ $ exit_car coche
05CD: AS_actor 2 @ $ exit_car coche
05CD: AS_actor 3 @ $ exit_car coche
05CD: AS_actor 4 @ $ exit_car coche
0635: AS_actor 1 @ $ aim_at_actor PLAYER_ACTOR -1 ms
0635: AS_actor 2 @ aim_at_actor $ PLAYER_ACTOR -1 ms
0635: AS_actor 3 @ $ aim_at_actor PLAYER_ACTOR -1 ms
0635: AS_actor 4 @ aim_at_actor $ PLAYER_ACTOR -1 ms
074D: AS_actor $ PLAYER_ACTOR turns_to_and_look_at_actor un límite de tiempo @ -1
074D: AS_actor 5 @ @ turns_to_and_look_at_actor un límite de tiempo -1
074D: AS_actor 6 @ @ turns_to_and_look_at_actor un límite de tiempo -1
074D: AS_actor 7 @ @ turns_to_and_look_at_actor un límite de tiempo -1
esperar a 2500
05C4: AS_actor $ PLAYER_ACTOR hands_up -1 ms
05C4: AS_actor 5 @ hands_up -1 ms
05C4: AS_actor 6 @ hands_up -1 ms
05C4: AS_actor 7 @ hands_up -1 ms
esperar a 5000
//---------------------
/ / Limpieza
//---------------------
fade 0 500
repetir
esperar 0
hasta 816B: no desapareciendo
00A6: $ destroy_car coche
009B: destroy_actor 1 @
009B: destroy_actor 2 @
009B: destroy_actor 3 @
009B: destroy_actor 4 @
009B: destroy_actor 5 @
009B: destroy_actor 6 @
009B: destroy_actor 7 @
0687: $ clear_actor tarea PLAYER_ACTOR
Player.CanMove ($ PLAYER_CHAR, true)
0373: set_camera_directly_behind_player
02EB: restore_camera_with_jumpcut
02A3: enable_widescreen 0
esperar a 2000
se desvanecen 1 500
repetir
esperar 0
hasta 816B: no desapareciendo
Historia y empezar a
La historia de este pequeño vídeo es: no es un patriota con cuatro actores del ejército en el mismo. También hay cuatro actores especiales: Sweet, Kendl, Cesar y CJ. Los actores especiales están hablando el uno al otro (con una animación). El Patriot tiene que conducir a los 4 agentes especiales, y los chicos del ejército tiene que salir del coche. A continuación, los 4 agentes especiales que a su vez a los chicos del ejército. Los milicos tienen todo un M4, y su objetivo es el grupo de 4 agentes especiales. Por último, el 4 agentes especiales que rendirse.
Vamos a hacer un ámbito en el que el jugador tiene que caminar antes de que comience la escena. Sería extraño si el jugador puede mover durante el CJ de la escena, es por eso que nos aseguramos de que no se puede mover. Después de que vamos a cargar todo lo que necesitamos en la misma escena. Creo que no hace falta explicar nada de esto.
CÓDIGO
//---------------------
/ / Inicio Cutscene
//---------------------
: CUTSCENE
03BC: $ comenzar = create_sphere_at 2489.0088 13.3519 -1658,4554 radio de 1,0
repetir
esperar 0
hasta 00FE: esfera actor PLAYER_ACTOR $ 0 in_sphere 2489.0088 13.3519 -1658,4554 radio 1,0 1,0 1,0
Player.CanMove ($ PLAYER_CHAR, false)
//---------------------
/ / Cargar Modelos
//---------------------
model.Load (# ejército)
model.Load (# patriota)
model.load (# m4)
023C: 'dulce' load_special_actor como 1 / / los modelos 290-299
023C: "Kendl 'load_special_actor como 2 / / los modelos 290-299
023C: load_special_actor 'César' como 3 / / los modelos 290-299
038B: load_requested_models
: Load_check
esperar 0
si y
model.available (# ejército)
model.available (# patriota)
model.available (# m4)
023D: special_actor una carga
023D: special_actor 2 cargado
023D: 3 special_actor carga
else_jump @ load_check
Fade y genera
Para empezar, usted tiene que utilizar algunos se desvanecen, porque otra cosa que se vea todo lo que generan y que no es agradable. Así que primero hay que dar un fundido, y espera hasta que no se desvanece nada más (cosa que usted va a ver las cosas generan porque la pantalla no es de color negro todavía). Después de ese bucle, hay que generar todo lo que quieras.
CÓDIGO
//---------------------
/ / Se reproducen en desaparecer
//---------------------
fade 0 500
repetir
esperar 0
hasta 816B: no desapareciendo
02A3: enable_widescreen 1
03BD: $ destroy_sphere comenzar
Car.Create ($ coche, patriota #, 2503,0217, -1672,2841, 13,3594)
Car.Angle ($ carro) = 82.3844
0129: 1 @ = 23 create_actor_pedtype modelo # ejército in_car $ coche driverseat
01C8: 2 = @ 23 create_actor_pedtype modelo # ejército in_car coche passenger_seat $ 0
01C8: 3 @ = 23 create_actor_pedtype modelo # ejército in_car $ passenger_seat un coche
01C8: 4 @ = 23 create_actor_pedtype modelo # ejército in_car coche passenger_seat $ 2
01B2: give_actor 1 @ 31 municiones de armas 60 / / Cargar el modelo de arma antes de usar este
01B2: give_actor 2 @ 31 municiones de armas 60 / / Cargar el modelo de arma antes de usar este
01B2: give_actor 3 @ 31 municiones de armas 60 / / Cargar el modelo de arma antes de usar este
01B2: give_actor 4 @ 31 municiones de armas 60 / / Cargar el modelo de arma antes de usar este
009A: 5 @ = 4 create_actor_pedtype modelo # SPECIAL01 en 2479,1279 -1680,2635 13.338
Actor.Angle (5 @) = 359.6866
009A: 6 x 4 = create_actor_pedtype modelo # SPECIAL02 en 2477,7996 -1678,5049 13.3386
Actor.Angle (6 @) = 266.6259
009A: 7 @ = 4 create_actor_pedtype modelo # SPECIAL03 en 2479,3577 -1676,2166 13.337
Actor.Angle (7 @) = 176.3852
00A1: put_actor $ PLAYER_ACTOR en 2480,9185 -1678,2045 13.3404
Actor.Angle ($ PLAYER_ACTOR) = 98.7008
04ED: load_animation "bandas"
repetir
esperar 0
hasta 04EE: animación "pandillas" carga
0605: actor 5 @ perform_animation_sequence "PRTIAL_GNGTLKA" IFP_file "pandillas" bucle de 4,0 1 0 0 0 -1 hora
0605: actor 6 @ perform_animation_sequence "PRTIAL_GNGTLKB" IFP_file "pandillas" bucle de 4,0 1 0 0 0 -1 hora
0605: actor 7 @ perform_animation_sequence "PRTIAL_GNGTLKC" IFP_file "pandillas" bucle de 4,0 1 0 0 0 -1 hora
0605: actor $ perform_animation_sequence PLAYER_ACTOR "PRTIAL_GNGTLKC" IFP_file "pandillas" bucle de 4,0 1 0 0 0 -1 hora
Camera.SetPosition (2472.7151, -1681.5944, 16.9041, 0.0, 0.0, 0.0)
Camera.PointAt (2494.2827, -1669.9541, 13.3359, 2)
esperar a 2000
00A7: $ coche coche drive_to 2487.1799 13.3359 -1670,8324
se desvanecen 1 500
repetir
esperar 0
hasta 816B: no desapareciendo
También tenemos que darle a los actores de una animación, ya que tiene que parecer que están teniendo una conversación. Entonces quizás el más difícil de escenas: la cámara. No hay una manera fácil de conseguir la cámara de la forma que desee. Acabo de utilizar un jetpack y la herramienta de coordenadas en el Sanny Builder. Usted tiene que probar un montón, por lo que se convertirá en la forma que desee.
Se recomienda tener un "tiempo" de espera en el fundido, por lo que no se ve nada desovar después de la decoloración. Pero la unidad de coche tiene que estar detrás de los que esperan, porque de lo contrario el coche estará en su destino antes de que el jugador puede ver algo nuevo! Por supuesto, tenemos que levantar el fundido al final.
Comportamiento después de desaparecer
CÓDIGO
//---------------------
/ / Comportamiento después de desaparecer
//---------------------
repetir
espere 10
hasta 01AE: $ coche coche esfera 0 near_point 2487.1799 -1670,8324 radio 3,0 3,0 detenido
0160: set_camera_point_at 2494.2827 -1669,9541 9,3359 modo 2
05CD: AS_actor 1 @ $ exit_car coche
05CD: AS_actor 2 @ $ exit_car coche
05CD: AS_actor 3 @ $ exit_car coche
05CD: AS_actor 4 @ $ exit_car coche
0635: AS_actor 1 @ $ aim_at_actor PLAYER_ACTOR -1 ms
0635: AS_actor 2 @ aim_at_actor $ PLAYER_ACTOR -1 ms
0635: AS_actor 3@ aim_at_actor $PLAYER_ACTOR -1 ms
0635: AS_actor 4@ aim_at_actor $PLAYER_ACTOR -1 ms
074D: AS_actor $ PLAYER_ACTOR turns_to_and_look_at_actor un límite de tiempo @ -1
074D: AS_actor 5 @ @ turns_to_and_look_at_actor un límite de tiempo -1
074D: AS_actor 6 @ @ turns_to_and_look_at_actor un límite de tiempo -1
074D: AS_actor 7 @ @ turns_to_and_look_at_actor un límite de tiempo -1
esperar a 2500
05C4: AS_actor $ PLAYER_ACTOR hands_up -1 ms
05C4: AS_actor 5 @ hands_up -1 ms
05C4: AS_actor 6 @ hands_up -1 ms
05C4: AS_actor 7 @ hands_up -1 ms
esperar a 5000
En este código, básicamente, decir lo que los actores tienen que hacer después de la decoloración. En primer lugar tenemos que esperar hasta que el coche llega a su destino. Entonces vamos a cambiar la cámara, por lo que muestra lo que pasa mejor. Queremos que los chicos del ejército salir del coche, y que apuntan a que el jugador (o alguien más de los 4 actores especiales). Queremos que los actores especiales vistazo a los milicos. Pero tenemos que esperar un tiempo (el tiempo de espera de 2500 ms), otro de los actores especial se llevan las manos antes de los chicos del Ejército apuntan a ellos. Que se parece un poco extraño. Así que después del 2500, queremos que se ponga las manos en alto y la escena termina.
Limpiar
Por supuesto que tenemos que limpiar las cosas después de la escena. Para asegurarse de que nadie lo vea, lo primero que va a hacer un fundido de nuevo. Entonces tenemos que destruir el coche y los actores. El código de operación de trabajo claro está, porque de lo contrario el jugador se mantenga las manos en alto después de la escena. El jugador también tiene que ser capaz de moverse de nuevo después de la escena, así que tenemos que hacer que este código de operación real de nuevo. La cámara tiene que estar detrás del jugador y la pantalla panorámica del debe ser levantado.
CÓDIGO
//---------------------
/ / Limpieza
//---------------------
fade 0 500
repetir
esperar 0
hasta 816B: no desapareciendo
00A6: $ destroy_car coche
009B: destroy_actor 1 @
009B: destroy_actor 2 @
009B: destroy_actor 3 @
009B: destroy_actor 4 @
009B: destroy_actor 5 @
009B: destroy_actor 6 @
009B: destroy_actor 7 @
0687: $ clear_actor tarea PLAYER_ACTOR
Player.CanMove ($ PLAYER_CHAR, true)
0373: set_camera_directly_behind_player
02EB: restore_camera_with_jumpcut
02A3: enable_widescreen 0
esperar a 2000
se desvanecen 1 500
repetir
esperar 0
hasta 816B: no desapareciendo
Código completo en un main.scm despojado
Otros códigos de operación
Hay muchas otras cosas que puedes hacer en una escena. También puede utilizar otro tipo de códigos de operación, como cambiar el clima:
CÓDIGO
01B6: set_weather 1
O simplemente utilizar los códigos de operación nivel de búsqueda:
CÓDIGO
010D: set_player $ PLAYER_CHAR wanted_level_to 0
010E: set_player $ PLAYER_CHAR minimum_wanted_level_to 2
01F0: set_max_wanted_level_to 6
Otra cosa que usted puede utilizar en una escena, es el "salto escena" código de operación. Si haces una misión, y el jugador tiene que hacerlo de nuevo, probablemente no desee ver las escenas de nuevo. Hay una solución para eso. Un ejemplo de la misión "El dilema General" (codificada por PatrickW y yo):
CÓDIGO
0707: start_scene_skip_to @ GENDIL_3502
CÓDIGO
: GENDIL_3502
0701: end_scene_skip
si
08D0: cutscene_skipped
jf @ GENDIL_3523
fade 0 100
: GENDIL_3523
Así que cuando el jugador quiere saltar de la escena, él irá a GENDIL_3502. Al parecer, en el código que el jugador se salta un desvanecimiento, por lo que hay que hacer, pero sólo cuando la escena se omite.
Puede utilizar los objetos, otras animaciones, camionetas, textos ... Siempre y cuando tenga en cuenta que tiene que ser creado y destruido en los fundidos, se puede hacer todo! Especialmente vistazo a los códigos de operación como, por ejemplo:
CÓDIGO
05CD: AS_actor -1 exit_car 22 @
Estos códigos son códigos de operación no jugables, así que muy útil para escenas!
espero que les haya servido,
Textos
En este tutorial vamos a ver en los textos. Hay todo tipo de textos: grandes, pequeños, negrita, colores ...
Visualización de texto
CÓDIGO
00BA: "BEEFY 'show_text_styled GXT tiempo un estilo de 3000
Usted tiene que usar el nombre de la entrada GXT entre el''. Detrás de tiempo que tienes que poner la cantidad de tiempo que el texto se debe mostrar. Hay 7 estilos, que se puede rellenar detrás de estilo:
1: En el centro, igual que cuando se aprobó una misión o ganar una carrera.
2: En el bottomRight, al igual que al iniciar una misión.
3: El texto blanco en el centro, al igual que cuando se pierden o roto.
4: Estilo 1, pero más pequeño.
5: Igual que el estilo de 4, pero un poco más alto en la pantalla.
6: Texto pequeño blanco en el centro de la pantalla.
7: texto azul claro en la parte superior de la pantalla.
Tenga cuidado, 0 no es un estilo, y el juego se bloqueará!
Texto en blanco en la parte inferior de la pantalla se muestra con otros códigos de operación. Hay una diferencia entre los códigos de operación de alta prioridad lowpriority. La alta prioridad reemplazará al lowpriority. Por ejemplo:
CÓDIGO
00BB: el tiempo "IE23" show_text_lowpriority GXT 3000 marca un
esperar a 1000
00BC: el tiempo "MTIME3 'show_text_highpriority GXT 3000 marca un
Así que aquí IE23 la primera se mostrará, pero después de un segundo se sustituyen por «MTIME3.
Puede borrar los textos de los códigos de operación siguientes:
CÓDIGO
00BE: text_clear_all
03D5: "MTIME3 'remove_text
Textos de la pantalla con el número de
CÓDIGO
01E3: número show_text_1number_styled GXT "BB_15 500 de tiempo de 5000 un estilo
Con este código de operación se puede añadir un número en el texto. En este caso, su puntuación más alta será de 500 nuevos. Los estilos son exactamente las mismas como se mencionó anteriormente. Pero ten cuidado: hay que utilizar las entradas de GXT que son compatibles con los números! Voy a volver sobre este tema en el siguiente tutorial, cuando vamos a añadir nuevos textos.
Hay más códigos de operación de este. Creo que van a hablar por sí mismo:
CÓDIGO
01E4: número de 'HJ_IS' show_text_1number_lowpriority GXT $ var tiempo una bandera de 2000
036D: Los números de "TX_SEQ 'show_text_2numbers_styled GXT $ var tiempo $ var2 5000 style 5
02FD: Los números de "BB_05 'show_text_2numbers_lowpriority GXT $ var tiempo $ var2 5000 marca un
02FF: Los números de "WHEEL02 'show_text_3numbers GXT $ var $ var2 $ var3 tiempo una bandera de 3000
0302: Los números de "WHEEL01 'show_text_4numbers GXT bandera $ var $ var2 $ var3 tiempo var4 $ 3000 1
0303: Los números de "QUAR_P6 'show_text_4numbers_highpriority GXT bandera $ var $ var2 $ var3 tiempo $ 10,000 var4 un
0308: Los números de "HJSTAT 'show_text_6numbers GXT bandera $ var $ var2 $ var3 $ var4 tiempo var5 $ 5000 5
Mostrar los cuadros de texto
CÓDIGO
03E5: "HELP101 'show_text_box
Esta es la "normal" de texto. Desaparecerá después de algún tiempo. Un cuadro de texto es un cuadrado negro en la esquina superior izquierda con letras blancas.
CÓDIGO
0512: 'HOSP_1' show_permanent_text_box
Este es un cuadro de texto permanente, por lo que se mostrará hasta que un código de operación se ejecuta en el que no. Ese es el código de operación siguientes:
CÓDIGO
03E6: remove_text_box
Por ejemplo:
CÓDIGO
0512: 'HOSP_1' show_permanent_text_box
esperar a 1000
03E6: remove_text_box
Con este código de operación se mostrará un cuadro de texto, y se eliminará después de 1 segundo.
CÓDIGO
0513: número de 'SLOT_02' show_text_box_1number 2
Se trata de un código de operación para un cuadro de texto con un número en el texto, en este caso el valor 2.
Existen tres códigos de operación que comprobar si el cuadro de texto existen:
CÓDIGO
0A2A: "SGPUNT 'caja_de_texto muestra
08FE: text_box_displayed
88FE: no text_box_displayed
CÓDIGO
0989: 500 set_text_boxes_width
Con este código de operación, puede modificar el ancho de la caja de texto. Para ver la diferencia, puede utilizar el siguiente código:
CÓDIGO
0512: 'HOSP_1' show_permanent_text_box
esperar a 1000
0989: 500 set_text_boxes_width
Textes dibujado
CÓDIGO
033E: set_draw_text_position 300,0 200,0 GXT "BJ_PUSH '
Este es un ejemplo de un texto elaborado. Se le puede dar la posición que desee, mediante la edición del 300,0 y 200,0 de la. El 300.0 es horizontal, la 200.0 es vertical.
Un texto elaborado es normalmente un texto en blanco pequeño. Pero usted puede cambiar esto con los códigos de operación 133F y 1340. Sólo se puede eliminar con el siguiente código:
CÓDIGO
03F0: enable_text_draw 0
Usted también puede hacer un texto elaborado con los números:
CÓDIGO
045A: número draw_text_1number 320,0 155.333 GXT "ganador" 1000
045B: 'TIME' draw_text_2numbers 320,0 390,0 GXT números 20 30
Creo que estos códigos hablan por sí mismo.
Otros códigos de operación de texto
CÓDIGO
0A19: 'marcas' display_zone_text
Con este código de operación puede mostrar un texto como el de las al entrar en una zona. Por ejemplo, San Marcos.
CÓDIGO
09C1: add_next_text_to_brief_history 1
Con este código de operación se puede añadir un texto a la "breve" en el menú principal, por lo que un jugador puede mirar hacia atrás. Un 1 significa que tiene que ser almacenado en la opción breve, 0 significa que no tiene por qué. Tienes que poner este código antes de que el código de operación que se está utilizando para mostrar textos. Por ejemplo:
CÓDIGO
09C1: add_next_text_to_brief_history 1
00BB: el tiempo "IE23" show_text_lowpriority GXT 3000 marca un
Cuando quieres ver un ejemplo de un texto en una misión de corta duración, se puede ver en el tutorial anterior, que contiene una aplicación de los textos.
Guardar la costumbre de punto
En este tutorial, vamos a tomar una medida fácil de guardar el punto. Tenga en cuenta, que no funciona bien en MPack. Así que si quieres hacer uso de la costumbre de guardar el punto en el SMC, a continuación, utilizar el main.scm y MPack no.
Plan de acción:
1) Creación de la recolección y comprobar si el jugador lo recogió.
2) Mostrar pantalla de guardado y esperar a que el ahorro se hace
3) Limpiar
1) Creación de la recolección y comprobar si el jugador lo recogió
Esto no es demasiado difícil. Si has seguido los tutoriales de otros en este tema también será capaz de hacerlo usted mismo. Usted puede hacerlo de la siguiente manera:
CÓDIGO
$ Save_x = 2488.6506
$ Save_y = -1660.9884
$ = 13.3359 save_z
0395: clear_area 1 en $ $ save_x gama save_y $ 1,0 save_z
$ SAVE_PICKUP = Pickup.Create (# PICKUPSAVE, 3, $ save_x, save_y $, $ save_z)
repetir
esperar 100
hasta el 0214: $ pickup SAVE_PICKUP picked_up
Si usted no sabe lo que estoy haciendo aquí, le sugiero que echar otro vistazo a este tutorial.
2) Mostrar pantalla de guardado y esperar a que el ahorro se hace
Puede mostrar la pantalla de salvar con un solo código de operación:
CÓDIGO
03D8: show_save_screen
Sin embargo, tenemos que hacer algunas otras cosas antes de utilizar este código de operación, sin embargo. En primer lugar, tenemos que establecer la variable de $ ONMISSION el 1, por lo que el jugador no recibe llamadas telefónicas y cosas por el estilo. En segundo lugar, tenemos que asegurarnos de que el jugador no puede moverse, se vería extraño cuando el actor se encuentra en un lugar totalmente diferente cuando el ahorro se hace.
CÓDIGO
$ ONMISSION = 1 / / valores enteros
Player.CanMove ($ PLAYER_CHAR) = False
Tenemos que esperar hasta que el ahorro se hace. Aunque no se puede encontrar un "save_done" en la herramienta de búsqueda de código de operación o en el main.scm (usted puede encontrar 83D9 (no save_done) sin embargo), es posible y fácil de usar.
CÓDIGO
repetir
esperar 100
hasta 03D9: save_done
La combinación de estos fragmentos, la segunda parte del código se convierte en:
CÓDIGO
$ ONMISSION = 1 / / valores enteros
Player.CanMove ($ PLAYER_CHAR) = False
03D8: show_save_screen
repetir
esperar 100
hasta 03D9: save_done
3) Limpiar
¿Qué tenemos ahora? Tenemos la pastilla que tiene que ser recogido. A continuación, una pantalla para guardar aparecerá, y el código tiene que esperar hasta que el jugador terminó el ahorro. Usted no tiene que hacer algo al respecto que el ahorro, que está codificada. En esta última parte, vamos a arreglar la cámara, y comprobar si el jugador no está cerca de la camioneta salvarlos. Junto a esto, tenemos que destruir la camioneta.
CÓDIGO
Pickup.Destroy ($ SAVE_PICKUP)
repetir
esperar 100
hasta Player.Defined ($ PLAYER_CHAR)
Camera.Restore_WithJumpCut
Camera.SetBehindPlayer
Player.CanMove ($ PLAYER_CHAR) = True
$ ONMISSION = 0
repetir
esperar 0
hasta 80EC: no actor PLAYER_ACTOR $ 0 near_point 2488.6506 -1660,9884 radio de 2,0 2,0
salto @ SAVE_LOOP
La primera línea es destruir la camioneta. Al final, vamos a ir al principio (después de esperar hasta que el jugador no está en ese lugar nada más), por lo que la camioneta se creará de nuevo. Entonces podremos restablecer la cámara. El jugador tiene que ser capaz de moverse de nuevo. Por último, tenemos que poner la variable $ ONMISSION a 0, de lo contrario no es posible hacer otra misión o recibir llamadas.
El código completo de un hilo de punto de la aduana:
CÓDIGO
: SAVE
hilo "SAVE"
/ / Ubicación de la camioneta ahorrar
$ Save_x = 2488.6506
$ Save_y = -1660.9884
$ = 13.3359 save_z
: SAVE_LOOP
0395: clear_area 1 en $ $ save_x gama save_y $ 1,0 save_z
$ SAVE_PICKUP = Pickup.Create (# PICKUPSAVE, 3, $ save_x, save_y $, $ save_z)
repetir
esperar 100
hasta el 0214: $ pickup SAVE_PICKUP picked_up
$ ONMISSION = 1 / / valores enteros
Player.CanMove ($ PLAYER_CHAR) = False
03D8: show_save_screen
repetir
esperar 100
hasta 03D9: save_done
Pickup.Destroy ($ SAVE_PICKUP)
repetir
esperar 100
hasta Player.Defined ($ PLAYER_CHAR)
Camera.Restore_WithJumpCut
Camera.SetBehindPlayer
Player.CanMove ($ PLAYER_CHAR) = True
$ ONMISSION = 0
repetir
esperar 0
hasta 80EC: no actor PLAYER_ACTOR $ 0 $ near_point save_x $ save_y radio de 2,0 2,0
salto @ SAVE_LOOP
end_thread
Haga clic aquí para ver el código en un main.scm despojado.
Escenas
En este tutorial, voy a explicar una escena básica. Es muy difícil decir cómo hacerlo, porque cada escena individual es diferente. Sin embargo, creo que sería capaz de aprender cuando les explico una escena simple. Así que codifica un mismo escena simple, y yo te mostraré lo que significa. Tenga en cuenta que usted tiene que probar casi todos los códigos que está haciendo. Usted tiene que poner espera entre a hacer una historia mejor, usted tiene que probar la cámara, etc.
Ejemplo de escena
Básicamente, una escena es un montón de códigos de operación que no es necesario el aporte de los jugadores. Si el jugador no puede hacer nada, y sólo tiene que ver algo, es una escena. Tenga esto en cuenta en el tutorial. Vamos a comenzar con el código completo de la escena me guión:
CÓDIGO
//---------------------
/ / Inicio Cutscene
//---------------------
: CUTSCENE
03BC: $ comenzar = create_sphere_at 2489.0088 13.3519 -1658,4554 radio de 1,0
repetir
esperar 0
hasta 00FE: esfera actor PLAYER_ACTOR $ 0 in_sphere 2489.0088 13.3519 -1658,4554 radio 1,0 1,0 1,0
Player.CanMove ($ PLAYER_CHAR, false)
//---------------------
/ / Cargar Modelos
//---------------------
model.Load (# ejército)
model.Load (# patriota)
model.load (# m4)
023C: 'dulce' load_special_actor como 1 / / los modelos 290-299
023C: "Kendl 'load_special_actor como 2 / / los modelos 290-299
023C: load_special_actor 'César' como 3 / / los modelos 290-299
038B: load_requested_models
: Load_check
esperar 0
si y
model.available (# ejército)
model.available (# patriota)
model.available (# m4)
023D: special_actor una carga
023D: special_actor 2 cargado
023D: 3 special_actor carga
else_jump @ load_check
//---------------------
/ / De Spawn en todo lo que se desvanecen
//---------------------
fade 0 500
repetir
esperar 0
hasta 816B: no desapareciendo
02A3: enable_widescreen 1
03BD: $ destroy_sphere comenzar
Car.Create ($ coche, patriota #, 2503,0217, -1672,2841, 13,3594)
Car.Angle ($ carro) = 82.3844
0129: 1 @ = 23 create_actor_pedtype modelo # ejército in_car $ coche driverseat
01C8: 2 = @ 23 create_actor_pedtype modelo # ejército in_car coche passenger_seat $ 0
01C8: 3 @ = 23 create_actor_pedtype modelo # ejército in_car $ passenger_seat un coche
01C8: 4 @ = 23 create_actor_pedtype modelo # ejército in_car coche passenger_seat $ 2
01B2: give_actor 1 @ 31 municiones de armas 60 / / Cargar el modelo de arma antes de usar este
01B2: give_actor 2 @ 31 municiones de armas 60 / / Cargar el modelo de arma antes de usar este
01B2: give_actor 3 @ 31 municiones de armas 60 / / Cargar el modelo de arma antes de usar este
01B2: give_actor 4 @ 31 municiones de armas 60 / / Cargar el modelo de arma antes de usar este
009A: 5 @ = 4 create_actor_pedtype modelo # SPECIAL01 en 2479,1279 -1680,2635 13.338
Actor.Angle (5 @) = 359.6866
009A: 6 x 4 = create_actor_pedtype modelo # SPECIAL02 en 2477,7996 -1678,5049 13.3386
Actor.Angle (6 @) = 266.6259
009A: 7 @ = 4 create_actor_pedtype modelo # SPECIAL03 en 2479,3577 -1676,2166 13.337
Actor.Angle (7 @) = 176.3852
00A1: put_actor $ PLAYER_ACTOR en 2480,9185 -1678,2045 13.3404
Actor.Angle ($ PLAYER_ACTOR) = 98.7008
04ED: load_animation "bandas"
repetir
esperar 0
hasta 04EE: animación "pandillas" carga
0605: actor 5 @ perform_animation_sequence "PRTIAL_GNGTLKA" IFP_file "pandillas" bucle de 4,0 1 0 0 0 -1 hora
0605: actor 6 @ perform_animation_sequence "PRTIAL_GNGTLKB" IFP_file "pandillas" bucle de 4,0 1 0 0 0 -1 hora
0605: actor 7 @ perform_animation_sequence "PRTIAL_GNGTLKC" IFP_file "pandillas" bucle de 4,0 1 0 0 0 -1 hora
0605: actor $ perform_animation_sequence PLAYER_ACTOR "PRTIAL_GNGTLKC" IFP_file "pandillas" bucle de 4,0 1 0 0 0 -1 hora
Camera.SetPosition (2472.7151, -1681.5944, 16.9041, 0.0, 0.0, 0.0)
Camera.PointAt (2494.2827, -1669.9541, 13.3359, 2)
esperar a 2000
00A7: $ coche coche drive_to 2487.1799 13.3359 -1670,8324
se desvanecen 1 500
repetir
esperar 0
hasta 816B: no desapareciendo
//---------------------
/ / Comportamiento después de desaparecer
//---------------------
repetir
espere 10
hasta 01AE: $ coche coche esfera 0 near_point 2487.1799 -1670,8324 radio 3,0 3,0 detenido
0160: set_camera_point_at 2494.2827 -1669,9541 9,3359 modo 2
05CD: AS_actor 1 @ $ exit_car coche
05CD: AS_actor 2 @ $ exit_car coche
05CD: AS_actor 3 @ $ exit_car coche
05CD: AS_actor 4 @ $ exit_car coche
0635: AS_actor 1 @ $ aim_at_actor PLAYER_ACTOR -1 ms
0635: AS_actor 2 @ aim_at_actor $ PLAYER_ACTOR -1 ms
0635: AS_actor 3 @ $ aim_at_actor PLAYER_ACTOR -1 ms
0635: AS_actor 4 @ aim_at_actor $ PLAYER_ACTOR -1 ms
074D: AS_actor $ PLAYER_ACTOR turns_to_and_look_at_actor un límite de tiempo @ -1
074D: AS_actor 5 @ @ turns_to_and_look_at_actor un límite de tiempo -1
074D: AS_actor 6 @ @ turns_to_and_look_at_actor un límite de tiempo -1
074D: AS_actor 7 @ @ turns_to_and_look_at_actor un límite de tiempo -1
esperar a 2500
05C4: AS_actor $ PLAYER_ACTOR hands_up -1 ms
05C4: AS_actor 5 @ hands_up -1 ms
05C4: AS_actor 6 @ hands_up -1 ms
05C4: AS_actor 7 @ hands_up -1 ms
esperar a 5000
//---------------------
/ / Limpieza
//---------------------
fade 0 500
repetir
esperar 0
hasta 816B: no desapareciendo
00A6: $ destroy_car coche
009B: destroy_actor 1 @
009B: destroy_actor 2 @
009B: destroy_actor 3 @
009B: destroy_actor 4 @
009B: destroy_actor 5 @
009B: destroy_actor 6 @
009B: destroy_actor 7 @
0687: $ clear_actor tarea PLAYER_ACTOR
Player.CanMove ($ PLAYER_CHAR, true)
0373: set_camera_directly_behind_player
02EB: restore_camera_with_jumpcut
02A3: enable_widescreen 0
esperar a 2000
se desvanecen 1 500
repetir
esperar 0
hasta 816B: no desapareciendo
Historia y empezar a
La historia de este pequeño vídeo es: no es un patriota con cuatro actores del ejército en el mismo. También hay cuatro actores especiales: Sweet, Kendl, Cesar y CJ. Los actores especiales están hablando el uno al otro (con una animación). El Patriot tiene que conducir a los 4 agentes especiales, y los chicos del ejército tiene que salir del coche. A continuación, los 4 agentes especiales que a su vez a los chicos del ejército. Los milicos tienen todo un M4, y su objetivo es el grupo de 4 agentes especiales. Por último, el 4 agentes especiales que rendirse.
Vamos a hacer un ámbito en el que el jugador tiene que caminar antes de que comience la escena. Sería extraño si el jugador puede mover durante el CJ de la escena, es por eso que nos aseguramos de que no se puede mover. Después de que vamos a cargar todo lo que necesitamos en la misma escena. Creo que no hace falta explicar nada de esto.
CÓDIGO
//---------------------
/ / Inicio Cutscene
//---------------------
: CUTSCENE
03BC: $ comenzar = create_sphere_at 2489.0088 13.3519 -1658,4554 radio de 1,0
repetir
esperar 0
hasta 00FE: esfera actor PLAYER_ACTOR $ 0 in_sphere 2489.0088 13.3519 -1658,4554 radio 1,0 1,0 1,0
Player.CanMove ($ PLAYER_CHAR, false)
//---------------------
/ / Cargar Modelos
//---------------------
model.Load (# ejército)
model.Load (# patriota)
model.load (# m4)
023C: 'dulce' load_special_actor como 1 / / los modelos 290-299
023C: "Kendl 'load_special_actor como 2 / / los modelos 290-299
023C: load_special_actor 'César' como 3 / / los modelos 290-299
038B: load_requested_models
: Load_check
esperar 0
si y
model.available (# ejército)
model.available (# patriota)
model.available (# m4)
023D: special_actor una carga
023D: special_actor 2 cargado
023D: 3 special_actor carga
else_jump @ load_check
Fade y genera
Para empezar, usted tiene que utilizar algunos se desvanecen, porque otra cosa que se vea todo lo que generan y que no es agradable. Así que primero hay que dar un fundido, y espera hasta que no se desvanece nada más (cosa que usted va a ver las cosas generan porque la pantalla no es de color negro todavía). Después de ese bucle, hay que generar todo lo que quieras.
CÓDIGO
//---------------------
/ / Se reproducen en desaparecer
//---------------------
fade 0 500
repetir
esperar 0
hasta 816B: no desapareciendo
02A3: enable_widescreen 1
03BD: $ destroy_sphere comenzar
Car.Create ($ coche, patriota #, 2503,0217, -1672,2841, 13,3594)
Car.Angle ($ carro) = 82.3844
0129: 1 @ = 23 create_actor_pedtype modelo # ejército in_car $ coche driverseat
01C8: 2 = @ 23 create_actor_pedtype modelo # ejército in_car coche passenger_seat $ 0
01C8: 3 @ = 23 create_actor_pedtype modelo # ejército in_car $ passenger_seat un coche
01C8: 4 @ = 23 create_actor_pedtype modelo # ejército in_car coche passenger_seat $ 2
01B2: give_actor 1 @ 31 municiones de armas 60 / / Cargar el modelo de arma antes de usar este
01B2: give_actor 2 @ 31 municiones de armas 60 / / Cargar el modelo de arma antes de usar este
01B2: give_actor 3 @ 31 municiones de armas 60 / / Cargar el modelo de arma antes de usar este
01B2: give_actor 4 @ 31 municiones de armas 60 / / Cargar el modelo de arma antes de usar este
009A: 5 @ = 4 create_actor_pedtype modelo # SPECIAL01 en 2479,1279 -1680,2635 13.338
Actor.Angle (5 @) = 359.6866
009A: 6 x 4 = create_actor_pedtype modelo # SPECIAL02 en 2477,7996 -1678,5049 13.3386
Actor.Angle (6 @) = 266.6259
009A: 7 @ = 4 create_actor_pedtype modelo # SPECIAL03 en 2479,3577 -1676,2166 13.337
Actor.Angle (7 @) = 176.3852
00A1: put_actor $ PLAYER_ACTOR en 2480,9185 -1678,2045 13.3404
Actor.Angle ($ PLAYER_ACTOR) = 98.7008
04ED: load_animation "bandas"
repetir
esperar 0
hasta 04EE: animación "pandillas" carga
0605: actor 5 @ perform_animation_sequence "PRTIAL_GNGTLKA" IFP_file "pandillas" bucle de 4,0 1 0 0 0 -1 hora
0605: actor 6 @ perform_animation_sequence "PRTIAL_GNGTLKB" IFP_file "pandillas" bucle de 4,0 1 0 0 0 -1 hora
0605: actor 7 @ perform_animation_sequence "PRTIAL_GNGTLKC" IFP_file "pandillas" bucle de 4,0 1 0 0 0 -1 hora
0605: actor $ perform_animation_sequence PLAYER_ACTOR "PRTIAL_GNGTLKC" IFP_file "pandillas" bucle de 4,0 1 0 0 0 -1 hora
Camera.SetPosition (2472.7151, -1681.5944, 16.9041, 0.0, 0.0, 0.0)
Camera.PointAt (2494.2827, -1669.9541, 13.3359, 2)
esperar a 2000
00A7: $ coche coche drive_to 2487.1799 13.3359 -1670,8324
se desvanecen 1 500
repetir
esperar 0
hasta 816B: no desapareciendo
También tenemos que darle a los actores de una animación, ya que tiene que parecer que están teniendo una conversación. Entonces quizás el más difícil de escenas: la cámara. No hay una manera fácil de conseguir la cámara de la forma que desee. Acabo de utilizar un jetpack y la herramienta de coordenadas en el Sanny Builder. Usted tiene que probar un montón, por lo que se convertirá en la forma que desee.
Se recomienda tener un "tiempo" de espera en el fundido, por lo que no se ve nada desovar después de la decoloración. Pero la unidad de coche tiene que estar detrás de los que esperan, porque de lo contrario el coche estará en su destino antes de que el jugador puede ver algo nuevo! Por supuesto, tenemos que levantar el fundido al final.
Comportamiento después de desaparecer
CÓDIGO
//---------------------
/ / Comportamiento después de desaparecer
//---------------------
repetir
espere 10
hasta 01AE: $ coche coche esfera 0 near_point 2487.1799 -1670,8324 radio 3,0 3,0 detenido
0160: set_camera_point_at 2494.2827 -1669,9541 9,3359 modo 2
05CD: AS_actor 1 @ $ exit_car coche
05CD: AS_actor 2 @ $ exit_car coche
05CD: AS_actor 3 @ $ exit_car coche
05CD: AS_actor 4 @ $ exit_car coche
0635: AS_actor 1 @ $ aim_at_actor PLAYER_ACTOR -1 ms
0635: AS_actor 2 @ aim_at_actor $ PLAYER_ACTOR -1 ms
0635: AS_actor 3@ aim_at_actor $PLAYER_ACTOR -1 ms
0635: AS_actor 4@ aim_at_actor $PLAYER_ACTOR -1 ms
074D: AS_actor $ PLAYER_ACTOR turns_to_and_look_at_actor un límite de tiempo @ -1
074D: AS_actor 5 @ @ turns_to_and_look_at_actor un límite de tiempo -1
074D: AS_actor 6 @ @ turns_to_and_look_at_actor un límite de tiempo -1
074D: AS_actor 7 @ @ turns_to_and_look_at_actor un límite de tiempo -1
esperar a 2500
05C4: AS_actor $ PLAYER_ACTOR hands_up -1 ms
05C4: AS_actor 5 @ hands_up -1 ms
05C4: AS_actor 6 @ hands_up -1 ms
05C4: AS_actor 7 @ hands_up -1 ms
esperar a 5000
En este código, básicamente, decir lo que los actores tienen que hacer después de la decoloración. En primer lugar tenemos que esperar hasta que el coche llega a su destino. Entonces vamos a cambiar la cámara, por lo que muestra lo que pasa mejor. Queremos que los chicos del ejército salir del coche, y que apuntan a que el jugador (o alguien más de los 4 actores especiales). Queremos que los actores especiales vistazo a los milicos. Pero tenemos que esperar un tiempo (el tiempo de espera de 2500 ms), otro de los actores especial se llevan las manos antes de los chicos del Ejército apuntan a ellos. Que se parece un poco extraño. Así que después del 2500, queremos que se ponga las manos en alto y la escena termina.
Limpiar
Por supuesto que tenemos que limpiar las cosas después de la escena. Para asegurarse de que nadie lo vea, lo primero que va a hacer un fundido de nuevo. Entonces tenemos que destruir el coche y los actores. El código de operación de trabajo claro está, porque de lo contrario el jugador se mantenga las manos en alto después de la escena. El jugador también tiene que ser capaz de moverse de nuevo después de la escena, así que tenemos que hacer que este código de operación real de nuevo. La cámara tiene que estar detrás del jugador y la pantalla panorámica del debe ser levantado.
CÓDIGO
//---------------------
/ / Limpieza
//---------------------
fade 0 500
repetir
esperar 0
hasta 816B: no desapareciendo
00A6: $ destroy_car coche
009B: destroy_actor 1 @
009B: destroy_actor 2 @
009B: destroy_actor 3 @
009B: destroy_actor 4 @
009B: destroy_actor 5 @
009B: destroy_actor 6 @
009B: destroy_actor 7 @
0687: $ clear_actor tarea PLAYER_ACTOR
Player.CanMove ($ PLAYER_CHAR, true)
0373: set_camera_directly_behind_player
02EB: restore_camera_with_jumpcut
02A3: enable_widescreen 0
esperar a 2000
se desvanecen 1 500
repetir
esperar 0
hasta 816B: no desapareciendo
Código completo en un main.scm despojado
Otros códigos de operación
Hay muchas otras cosas que puedes hacer en una escena. También puede utilizar otro tipo de códigos de operación, como cambiar el clima:
CÓDIGO
01B6: set_weather 1
O simplemente utilizar los códigos de operación nivel de búsqueda:
CÓDIGO
010D: set_player $ PLAYER_CHAR wanted_level_to 0
010E: set_player $ PLAYER_CHAR minimum_wanted_level_to 2
01F0: set_max_wanted_level_to 6
Otra cosa que usted puede utilizar en una escena, es el "salto escena" código de operación. Si haces una misión, y el jugador tiene que hacerlo de nuevo, probablemente no desee ver las escenas de nuevo. Hay una solución para eso. Un ejemplo de la misión "El dilema General" (codificada por PatrickW y yo):
CÓDIGO
0707: start_scene_skip_to @ GENDIL_3502
CÓDIGO
: GENDIL_3502
0701: end_scene_skip
si
08D0: cutscene_skipped
jf @ GENDIL_3523
fade 0 100
: GENDIL_3523
Así que cuando el jugador quiere saltar de la escena, él irá a GENDIL_3502. Al parecer, en el código que el jugador se salta un desvanecimiento, por lo que hay que hacer, pero sólo cuando la escena se omite.
Puede utilizar los objetos, otras animaciones, camionetas, textos ... Siempre y cuando tenga en cuenta que tiene que ser creado y destruido en los fundidos, se puede hacer todo! Especialmente vistazo a los códigos de operación como, por ejemplo:
CÓDIGO
05CD: AS_actor -1 exit_car 22 @
Estos códigos son códigos de operación no jugables, así que muy útil para escenas!
espero que les haya servido,

