CRIANDO UM MAPA SINGLE PLAYER PARA HALF LIFE
Com esse tutorial você irá aprender como criar um mapa single player para Half Life.
Antes de por a mão na massa, vou descrever alguns termos que eu uso no tutorial:
Bom, vamos por a mão na massa.
PARTE 1 - UTILIZANDO AS ENTIDADES MONSTER_X E SCRIPTED_SEQUENCE
1º - Crie uma sala parecida com a mostrada na figura. ( mais tarde você saberá o porque ).
2º - Agora nós vamos adicionar uma entidade monster_scientist ( um Cientista ) no nosso mapa. Para fazer isso, selecione o botão de criacao de entidades ( você deve estar usando o FGD do Half Life ) e coloque uma entidade do tipo monster_scientist. Agora vamos setar as propriedades dessa entidade:
ATTRIBUTE | VALUE | DESCRIÇÃO |
Name | sci1 | Nome da entidade ( será usado pelo scripted_sequence ) |
Body | Glasses | Skin do cientista |
3º - Agora vamos utitlizar uma entidade que faça o cientista que nós acabamos de criar, executar um script. Para isso, usaremos a entidade scripted_sequence. A função dela, basicamente, é fazer o monstro se deslocar da posição inicial ( a entidade monster_scientist ) até a entidade scripted_sequence e quando ele chegar nessa entidade ele executa o script. Novamente, va no botão de criar entidades e crie uma entidade scripted_sequence em algum outro lugar do mapa ( deixe a base dela encostada no chão ). Vamos setar essa entidade
ATTRIBUTE | VALUE | DESCRIÇÃO |
Name | sci1_script | Nome da entidade |
Target | Evento que será acionado quando o script estiver terminado | |
Delay Before... | Tempo para que o evento acima seja acionado | |
Target Monster | sci1 | Nome do Monstro que essa entidade controlará |
Action Animation | wave | Animação que o monstro fará quando chegar nessa entidade ( uma lista completa desses nomes pode ser encontrada aqui: HL Entity Help |
Idle Animation | Animação que o monstro fará quando Action Animation terminar | |
Move to Position | Walk | Como o Monstro irá chegar até a entidade scripted_sequence |
Seach Radious | 512 | A entidade scripted_sequence procurará por algum monstro qualquer que esteja dentro do raio determinado por esse parametro |
Repeat Rate | É de quanto em quanto tempo que a entidade procurará por um mosntro dentro do Search Radius |
Nos flags dessa entidade, selcione a CheckBox Override AI que faz com que caso o cientista esteja fazendo algo por conta própria, ela pare o que estava fazendo para fazer o script
Ajuste o angulo da scripted_sequence para o lado que você quer que o cientista vira quando chegar nela.
4º - Agora, vamos fazer um trigger que acionará a entidade scripted_sequence. Simplismente crie um brush com a textura AAATRIGGER, transforme ela numa entidade trigger_once e no atriubuto Target coloque o nome da scripted_sequence ,que no nosso caso é sci1_script.
COMO FUNCIONA: Quando o player passar pelo trigger_once, a entidade scripted_sequence será acionada, fazendo o cientista sair de sua posição inical, andar até a entidade scripted_sequence, virar para o ângulo que a scripted_sequence está e dar um tchauzinho
PARTE 2 - UTILIZANDO TRIGGER_CHANGELEVEL E INFO_LANDMARK
1º - Agora, vamos fazer o processo de troca de mapa no Half Life. Adicione a entidade chamada info_landmark no seu mapa, como mostra a figura abaixo. Essa entidade é como se fosse um guia para o Half Life saber onde você estava antes do mapa ser trocado e onde ela deve posicionar você no próximo mapa. Logo, as duas entidades info_landmark ( uma em cada mapa ) deve estar posicionada no mesmo e exato local ( com relação aos brushes das paredes, piso e chão, e não em relação as cordenadas ( logo ja deu pra perceber que os dois mapas devem ter uma parte totalmente igual )) e deve ter o mesmo nome. Como ainda estamos fazendo o primeiro mapa, não se preocupe com isso ainda.
ATTRIBUTE | VALUE | DESCRIÇÃO |
Name | change1 | Nome do info_landmark ( mesmo nome nos dois mapas ) |
2º - Após ter colocado o info_lankmark, voce deve criar um brush com a textura AAATRIGGER e transformá-lo num entidade trigger_changelevel e deve estar posicionado depois do info_lankmark ( Vendo um mapa de cima, por exemplo. Se o fluxo do mapa esta indo da direita para a esquerda, você deve por o trigger_changelevel a esquerda do info_landmark e vice-versa ). Como na figura abaixo
ATTRIBUTE | VALUE | DESCRIÇÃO |
New map Name | map2 | Nome do próximo mapa |
Landmark Name | change1 | Nome do info_lankmark, correspondente àquela troca de mapa |
COMO FUNCIONA: Ao você passar pelo trigger_changelevel, ele carrega o novo mapa e te posiciona no info_landmark desse mapa.
PARTE 3 - ADICIONANDO INFO_NODE
1º - Info_nodes são entidades que determinam as rotas que os Monstros ( monster_xxx ) podem pegar para se locomover ( sao muito parecidos com os Waypoints para os bots no CS ). Quando o mapa é carregado, o Half Life pega todas as entidades info_nodes e faz ligacões entre elas, fazendo uma malha de rotas para os monstros. Sem os Nodes, os Monstros tem dificuldade de locomoção, tipo quando você manda ele te seguir e ele fica batendo nos cantos das paredes e acaba ficando preso sem ter para onde ir. Não tem um lugar especifico que você DEVE adicionar nodes, mas deve ter alguns cuidados:
PARTE 4 - TERMINANDO O 1º MAPA E COMEÇANDO O SEGUNDO.
1º - Depois que você ja colocou scripted_sequences, mosters, nodes, landmarks, changelevels, só falta colocar um info_player_start e luzes no seu mapa. Salve esse mapa com o nome de map1. Agora seu primeiro mapa está pronto. Vamos começar o segundo.
2º - Aindo com o primeiro mapa aberto, selecione e copie a parte do mapa mostrada abaixo ( com entidades e tudo ).
3º - Agora vá no menu File -> New e cole essa parte que você acabou de copiar do mapa anterior ( essa vai ser a parte totalmente igual que foi citada na Parte 2. Nesse novo mapa, selecione a entidade trigger_changelevel e passe para a direita do info_lankmark ( pois agora o fluxo do mapa vai da esquerda para a direita ). Ainda com trigger_changelevel selecionado, abra a janela de propriedades da entidade e mude o atributo New map Name para map1. Agora é so fazer o resto do 2º mapa e quando estiver terminado, salvá-lo com o nome de map2.
OBS. No 2º mapa não é necessario colocar um info_player_start
Para baixar os mapas usados neste tutorial clique aqui
Este tutorial foi criado por Fergo
Copyright - Todos os direitos reservados - 2004