[ +/- ] [ Data/Hora: 23 Mai 2013, 14:43 ]


Criar um novo TópicoWrite comments Página 5 de 8   [ 111 posts ]
Ir para página Anterior  1, 2, 3, 4, 5, 6, 7, 8  Próximo
Autor Mensagem
 Assunto da Mensagem:
MensagemEnviado: 02 Mai 2005, 01:25 
Moderador(a)/Colaborador(a)
Avatar do Utilizador

Registado: 22 Nov 2003, 16:38
Mensagens: 5310
Localização: Brasilia DF
O <b>Skill4</b> da porta pode receber um númer de 1 até 4 e o <b>Skill4</b> da chave define qual chave vai abrir aquela porta. zero é o padrão que quer dizer que as portas naturalmente surgem destrancadas e se valor nenhum for definido ao <b>Skill4</b> de uma porta ela vai ficar destrancada.

<center>
<b>Come Get Some!</b>
<img src=\"http://www.unidev.com.br/imagem/forum/3dgs.gif\" border=0>

</center>

Editado por - alexiis on 02/05/2005 01:26:25

_________________
Imagem


Topo
 Perfil  
 
 Assunto da Mensagem:
MensagemEnviado: 02 Mai 2005, 11:24 
Membro Júnior

Registado: 16 Dez 2004, 20:17
Mensagens: 99
Localização: Brasil
<font color=green>Eu sei que o assunto já está acabado, mas uma maneira fácil de colocar um som na fase, é só colocar dar um ADDSOUND e determinar o som que vc quer, é tá certo ele só vai tocar proximo de onde estiver colocado, mas tipo, num carro, numa vitrola (Return to Castle Wolfestein) ou numa televisao ou coisa do tipo, dai fica bem massa, mas a extensao é WAV, e pra quem enfrenta problemas com as Dlls de MP3, eu uso o DBpowerAMP Music Convert(conversor de MP3 para WAV) associado com o DMC Audio CD Input... Funciona que é uma beleza...E sobre as portas e chaves tem no tutoral...</font id=green>

_________________
www.digitozero.com
www.eletronicadigital.com
www.eletronika.net


Topo
 Perfil  
 
 Assunto da Mensagem:
MensagemEnviado: 02 Mai 2005, 11:58 
Membro Sênior
Avatar do Utilizador

Registado: 28 Set 2003, 22:47
Mensagens: 367
Localização: Brasil
Esse codigo eh o q ta no tutorial sobre como abrir porta com uma chave:

var indicador = 0;
var my_pos[3];
var my_angulo[3];


function scan_me()
{
my_pos.x = camera.x;
my_pos.y = camera.y;
my_pos.z = camera.z;
my_angulo.pan = camera.pan;
my_angulo.tilt = camera.tilt;
temp.pan = 120;
temp.tilt = 180;
temp.z = 200;
indicador = 1;
scan (my_pos,my_angulo,temp);
}


//////// PEGANDO A CHAVE /////////////////////


sound som_chave = <beamer.wav>;
var chave = 0;


function pega_chave()
{
if (indicador != 1)
{
return;
}
chave = 1;
snd_play (som_chave,100,50);
remove(my);
}

action chave_teste
{
my.event = pega_chave;
my.enable_scan = on;
}


///////// ABRINDO A PORTA /////////

sound porta_abre = <abre.wav>;
sound porta_fecha = <fecha.wav>;


define _counter skill25;

function evento_porta()
{
if (indicador != 1)
{
return;
}

if (chave != 1) // A porta soh abre com a chave
{
return;
}

if (my._counter <= 0)
{

snd_play (porta_abre,100,50);
while(my._counter < 90)
{
my.pan -= 3*time;
my._counter += 3*time;
wait(1);
}

my.pan += my._counter - 90;
my._counter = 90;
}
else
{
snd_play (porta_fecha,100,50);
while (my._counter > 0)
{
my.pan += 3*time;
my._counter -= 3*time;
wait(1);
}

my.pan += my._counter;
my._counter = 0;
}

}

action porta
{
my.event = evento_porta;
my.enable_scan = on;
my._counter = 0;
}

/////// A PORTA ABRE COM A TECLA ESPACO ////////

on_space = scan_me;


Topo
 Perfil  
 
 Assunto da Mensagem:
MensagemEnviado: 07 Mai 2005, 16:00 
Membro

Registado: 19 Mar 2005, 23:47
Mensagens: 48
Localização: Brasil
valews deu certo a porta

mas tipo como fasso para que quando mudo de fase a vida do meu player passe junto pra outra fasse tipo se esta 30 % de vida e tipo 50 de municao 2 armas nao passa me ajudem tipo queria que o que peguei no primeiro nivel fosse junto comigo pro segundo e assim por diante levando a vida municao armas alguem faz ae um demo e coloca pra baixar valew ajuda ae alexiis ou programer qualquer um que saiba valews

Editado por - fefe19 on 07/05/2005 18:34:09


Topo
 Perfil  
 
 Assunto da Mensagem:
MensagemEnviado: 07 Mai 2005, 19:29 
Moderador(a)/Colaborador(a)
Avatar do Utilizador

Registado: 22 Nov 2003, 16:38
Mensagens: 5310
Localização: Brasilia DF
eu tenho um codigo desses mas ta no meu outro computador que esta quebrado mas eu vou dar uma olhadinha na internet depois que sei que na AUM tem um artigo sobre isso. Mas agorinha eu vou ter que dar uma saida e so volto mais tarde, mas sei que o pessoal aqui se ler a sua duvida pode te ajudar tambem. Mas se for urgente, da uma fucada na AUM que voce acha.

<center>
<b>Come Get Some!</b>
<img src=\"http://www.unidev.com.br/imagem/forum/3dgs.gif\" border=0>

</center>

_________________
Imagem


Topo
 Perfil  
 
 Assunto da Mensagem:
MensagemEnviado: 07 Mai 2005, 23:39 
Membro Ativo

Registado: 13 Nov 2004, 15:15
Mensagens: 187
Localização: Brasil
E ai fefe19, tudo firmeza, de uma olhada nesse tutorial que eu fiz sobre outro assunto, mas que tambem aborda o codigo de sangue. Abraços.

-=|Ðä®kñë§§|=-

http://geocities.yahoo.com.br/dreyki/Levelre.htm

_________________
Voltando ao meu mundinho de brincar de Deus

marcospaulor@hotmail.com

-=|Ðä®kñë§§|=-


Topo
 Perfil  
 
 Assunto da Mensagem:
MensagemEnviado: 08 Mai 2005, 17:46 
Membro

Registado: 19 Mar 2005, 23:47
Mensagens: 48
Localização: Brasil
valew to tentando mas ta difícil se alguem fizer um demo e melhor me ajudem ae faz um demo com 2 nivel com os codigos para guarda o sangue arma e municao valews alguem por favor me ajude com o codigo de passar de nivel levando a vida a municao e as armas pra outra fase me ajudem valew

Editado por - fefe19 on 10/05/2005 00:28:19

Editado por - alexiis em 21/07/2005 19:11:06


Topo
 Perfil  
 
 Assunto da Mensagem:
MensagemEnviado: 10 Mai 2005, 01:03 
Moderador(a)/Colaborador(a)
Avatar do Utilizador

Registado: 22 Nov 2003, 16:38
Mensagens: 5310
Localização: Brasilia DF
Aqui vai um exemplo funcional com 2 armas mas voce pode modificar o codigo para que o jogador passe de nivel com outros itens. Leia os comentarios da funcao <b>restoure_12()</b> que explicam a parte que cria as armas novamente e adicione linhas de codigo equivalente para fazer funcionar com outros itens.

Code:
<font color=navy>
//////////////////////////////////////////////////////////////////////////////////////////////////////

function change_levels_12();
function restore_12();

//////////////////////////////////////////////////////////////////////////////////////////////////////

string level2_wmb = <level2.wmb>;// nome do segundo nivel
string weapon1_mdl = <mk23.mdl>;// modelo de pistola
string weapon2_mdl = <mp40.mdl>;// modelo de metralhadora

//////////////////////////////////////////////////////////////////////////////////////////////////////

action level_12
{
   my.enable_impact = on;
   my.event = change_levels_12;
}

function change_levels_12
{
   wait (1);
   if (you != player) {return;}
   me = null;
   level_load (level2_wmb); // carrega o novo nivel
   sleep (1);
   restore_12(); // restaura os itens
}

function restore_12()
{
        // restaurando a pistola
   while (player == null) {wait (1);}
   if (weapon_1 == 1) // caso o jogador tenha pego a arma 1
   {
      ent_create (weapon1_mdl, nullvector, pistol); // cria a arma novamente
   }

         // restaura a metralhadora
   if (weapon_2 == 1) // caso o jogador tenha pego a segunda arma
   {
      ent_create (weapon2_mdl, nullvector, machine_gun); // cria a arma novamente
   }
   gun_loaded = 1;
   gun_select();
}   

action pistol
{
   my.__rotate = on;
   my.__repeat = off;
   my.__silent = on;
   my._offs_x = 30;
   my._offs_y = -10;
   my._offs_z = 15;
   my._ammotype = 1.20;
   my._weaponnumber = 1;
   my._bulletspeed = 1000.01;
   my._firetime = 8;
   my._firemode = damage_shoot + hit_hole + gunfx_brass + gunfx_animate + 0.10;
   gun();
}

action machine_gun
{
   my.__rotate = on;
   my.__repeat = on;
   my.__silent = on;
   my._offs_x = 35;
   my._offs_y = 10;
   my._offs_z = 15;
   my._ammotype = 2.99;
   my._weaponnumber = 2;
   my._bulletspeed = 5000.01;
   my._firetime = 2;
   my._firemode = damage_shoot + hit_hole + gunfx_brass + gunfx_animate + 0.20
   gun();
}
</font id=navy>

<center>
<b>Come Get Some!</b>
<img src=\"http://www.unidev.com.br/imagem/forum/3dgs.gif\" border=0>

</center>

Editado por - alexiis on 10/05/2005 01:07:21

_________________
Imagem


Topo
 Perfil  
 
 Assunto da Mensagem:
MensagemEnviado: 13 Mai 2005, 00:24 
Membro

Registado: 19 Mar 2005, 23:47
Mensagens: 48
Localização: Brasil
valew vo tentar mas e o codigo da vida que passa a vida e a arma pois a municao percebi que ja ta certo so falta a da vida e armas me ajude ae valew ha e outra coisa como fasso para que toque um video avi no começo quando carrega o jogo e apareçe a foto do a6 queria que passe um video tipo de entrada do jogo valew


Topo
 Perfil  
 
 Assunto da Mensagem:
MensagemEnviado: 13 Mai 2005, 00:39 
Moderador(a)/Colaborador(a)
Avatar do Utilizador

Registado: 22 Nov 2003, 16:38
Mensagens: 5310
Localização: Brasilia DF
Use o codigo a seguir para tocar um video depois de um menu por exemplo ou mesmo entre fases:

Code:
<font color=navy>
string level2_wmb = <level2.wmb>;

action level_changer
{
while (vec_dist (my.x, player.x) > 100) {wait (1);}
my = null; // mantem o filme funcionando durante o level_load
level_load (level2_wmb);
wait (3);
media_play ("cutscene.avi", null, 100); // agora "tocando" o filme
}

</font id=navy>
<font color=black>
e para saber mais sobre filmes tocando durante tem um topico antigo que fala sobre isso.Clique aqui para ir direto a ele. E existem outras postagens que abordam esse assunto tambem. verifique os topicos antigos que vai achar respostas para perguntas que voce nem fez aina, hehe. Serio, la tem outros topicos sobre videos de abertura no 3D Game Studio.


<center>
<b>Come Get Some!</b>
<img src=\"http://www.unidev.com.br/imagem/forum/3dgs.gif\" border=0>

</center>

</font id=black>

Editado por - alexiis on 13/05/2005 00:40:28

_________________
Imagem


Topo
 Perfil  
 
 Assunto da Mensagem:
MensagemEnviado: 13 Mai 2005, 01:29 
Membro Ativo

Registado: 13 Nov 2004, 15:15
Mensagens: 187
Localização: Brasil
E ai fefe19, ai vai o codigo da vida
crie uma variavel para armazenar o valor da vida

var vida=0;

quando for passar para outro level coloque.

function level2() // Função da porta Sala para a Cozinha
{
vida = player._health; // Guarda o valor da energia do player em \"vida\"
load_level (<Cozinha1.wmb>); // Carrega o Level Cozinha
}

e dentro do level coloque uma entidade com a ação

action vida
{
player._health = vida;
}

é isso ai, qualquer duvida
marcospaulo@hotmail.com

-=|Ðä®kñë§§|=-

_________________
Voltando ao meu mundinho de brincar de Deus

marcospaulor@hotmail.com

-=|Ðä®kñë§§|=-


Topo
 Perfil  
 
 Assunto da Mensagem:
MensagemEnviado: 14 Mai 2005, 00:15 
Membro

Registado: 19 Mar 2005, 23:47
Mensagens: 48
Localização: Brasil
valew galera pela ajuda peguei o codigo do alexiis de armas e modifiquei algumas coisa nao tava dando certo e coloquei esse codigo de vida agora ja consegui minha duvida agora e pra por um filme antes de começar meu jogo como fasso


Topo
 Perfil  
 
 Assunto da Mensagem:
MensagemEnviado: 14 Mai 2005, 04:29 
Moderador(a)/Colaborador(a)
Avatar do Utilizador

Registado: 22 Nov 2003, 16:38
Mensagens: 5310
Localização: Brasilia DF
acho que ja respondi essa, nao ?

o codigo para tocar um filme no inicio do jogo tambem pode ser assim caso seu jogo tenha apenas o mapa sem menu:
Code:
<font color=navy>

function main()
{
// set some common flags and variables
//   warn_level = 2;   // announce bad texture sizes and bad wdl code
   tex_share = on;   // map entities share their textures

// center the splash screen for non-640x480 resolutions, and display it
   splashscreen.pos_x = (screen_size.x - bmap_width(splashmap))/2;
   splashscreen.pos_y = (screen_size.y - bmap_height(splashmap))/2;
   splashscreen.visible = on;
// wait 3 frames (for triple buffering) until it is flipped to the foreground
   wait(3);

// init the 'environment' (sky & sceen map)
   init_environment();
// now load the level
   level_load(level_str);


<font color=red>
// tocar filme de abertura
        media_play ("cutscene.avi", null, 100); // "tocando" o filme
        wait(500); // tempo em quants da duracao do video;
</font id=red>


// freeze the game
   freeze_mode = 1;

// wait the required second, then switch the splashscreen off.
   waitt(16);
     splashscreen.visible = off;
   bmap_purge(splashmap);   // remove splashscreen from video memory

// load some global variables, like sound volume
   load_status();

// display the initial message
   msg_show(mission_str,10);

// initialize lens flares when edition supports flares
ifdef CAPS_FLARE;
   lensflare_start();
endif;

// un-freeze the game
   freeze_mode = 0;

//   client_move();   // for a possible multiplayer game
// call further functions here...
}
</font id=navy>






Aqui eu apenas adicionei o comando de executar o filme e o outro de esperar ate o filme terminar para iniciar o jogo na funcao <b>main()</b> do WDL principal. A parte alterada esta em <font color=red>vermelho</font id=red>.


Esse e o modo mais curto e grosso de tocar um video de abertura. Voce vai ter que calcular o tempo do filme em segundos e multiplicar por 16 para ter a quantidade correta de quants para que o filme nao seja cortado ou acabe e fique um tempao esperando ate comecar o jogo.
Eu estou sem o meu 3D Game Studio aqui e nao sei se vai funcionar mas para nao precisar calcular o tempo do filme e fazer o jogo entrar assim que o video, seja de quanto tempo ele for, terminar tente fazer assim:
Code:
<font color=navy>
<font color=red>var avi_handle;</font id=red>

function main()
{
// set some common flags and variables
//   warn_level = 2;   // announce bad texture sizes and bad wdl code
   tex_share = on;   // map entities share their textures

// center the splash screen for non-640x480 resolutions, and display it
   splashscreen.pos_x = (screen_size.x - bmap_width(splashmap))/2;
   splashscreen.pos_y = (screen_size.y - bmap_height(splashmap))/2;
   splashscreen.visible = on;
// wait 3 frames (for triple buffering) until it is flipped to the foreground
   wait(3);

// init the 'environment' (sky & sceen map)
   init_environment();
// now load the level
   level_load(level_str);


</font id=navy><font color=red>
// tocar filme de abertura


          if (avi_handle == 0) // o video nao esta tocando ainda
         {
            avi_handle = media_play ("cutscene.avi", null, 100); // entao toque o filme
         }
      }
      else
      {
         media_stop (avi_handle); // para de tocar o filme
         avi_handle = 0; // zera o handle
      }
      wait (3);

</font id=red>
<font color=navy>


// freeze the game
   freeze_mode = 1;

// wait the required second, then switch the splashscreen off.
   waitt(16);
     splashscreen.visible = off;
   bmap_purge(splashmap);   // remove splashscreen from video memory

// load some global variables, like sound volume
   load_status();

// display the initial message
   msg_show(mission_str,10);

// initialize lens flares when edition supports flares
ifdef CAPS_FLARE;
   lensflare_start();
endif;

// un-freeze the game
   freeze_mode = 0;

//   client_move();   // for a possible multiplayer game
// call further functions here...
}



</font id=navy>


<font color=black>


<center>
<b>Come Get Some!</b>
<img src=\"http://www.unidev.com.br/imagem/forum/3dgs.gif\" border=0>
</center>
</font id=black>

Editado por - alexiis on 14/05/2005 11:28:20

_________________
Imagem


Topo
 Perfil  
 
 Assunto da Mensagem:
MensagemEnviado: 14 Mai 2005, 14:16 
Membro

Registado: 19 Mar 2005, 23:47
Mensagens: 48
Localização: Brasil
valew vo tentar alexiis obrigado pela ajuda ate o momento pois conserteza aparecera mais duvidas como essa como fasso um fogo mas bem real tipo particulas uma chuva tem como vc fazer um demo ae com fogo chuva raio


Topo
 Perfil  
 
 Assunto da Mensagem:
MensagemEnviado: 14 Mai 2005, 19:51 
Moderador(a)/Colaborador(a)
Avatar do Utilizador

Registado: 22 Nov 2003, 16:38
Mensagens: 5310
Localização: Brasilia DF
Uma acao de fogo seria tipo assim:

Code:
<font color=navy>

// ******** FOGO ***********

action my_fire {
   sarray();                      
   if (ppoint >= 300) { END; }               
   my.skill14 = ppoint;                  
   parray[my.skill14 * 6] = 1;               
   if (my.skill8 == 0) { my.skill8 = 4; }            
   if (my.skill7 == 0) { my.skill7 = 1; }            
   if (my.skill7 < 0.2 && my.skill7 != -1) { my.skill7 = 0.2; }   
   if (my.skill7 > 3) { my.skill7 = 3; }
   while(1) {                     
      if (my.skill7 > 0) {               
         my.skill13 -= 1;            
         if (my.skill13 <= 0) {
            my.skill13 = my.skill8 / TIME;               

            parray[my.skill14 * 6 +2] = my.skill7;            

            parray[my.skill14 * 6 +1] = my.x + (random(4) - 2) * my.skill7;   
            my.skill10 = my.skill14;               
            my.skill11 = my.y + (random(4) - 2) * my.skill7;      
            my.skill12 = my.z;                  
            emit(1,my.skill10,feuer_particle);            

            parray[my.skill14 * 6 +1] = my.x + (random(4) - 2) * my.skill7;   
            my.skill11 = my.y + (random(4) - 2) * my.skill7;      
            emit(1,my.skill10,feuer_particle);            
         }
      }
      wait(1);
   }
}


function feuer_particle(){
   if(my_age == 0)   {
      my_alpha = 0;                  
      my_color.blue = parray[my_pos.x * 6 + 2];      
      my_pos.x = parray[my_pos.x * 6 + 1];         
      my_speed.z = (0.7+random(0.4)) * my_color.blue;      
      my_color.red = random (100);            
      my_color.green = random (100);
      my_size = (1000+random(300)) * my_color.blue;      
      my_map = fire_map;               
      my_flare = on;                  
      my_bright= on;                  
      END;
   }
   if (my_age > 30) {                  
         MY_ACTION = NULL;
   }
   if (my_age > 7) {                  
      my_alpha = 100-MY_AGE*3.3;
   } else { my_alpha = my_age * 10; }

   my_speed.x = (sin(my_age*7+my_color.red) / 7) * my_color.blue;
   my_speed.y = (cos(my_age*8+my_color.green) / 7) * my_color.blue;
}


</font id=navy>


para obter o codigo completo com os sprites e tudo mais de uma olhadinha no arquivo <b>fire.wdl</b> no Minilevel 1.

Qunato aos efeitos de tempestade ai vai um exemplo:

Code:
<font color=navy>

//chuva/////////////////////////////////

var temp_chuva = 0;   
BMAP snow_map, <chuva.pcx>; // sprite para representar gotas de chuva   

ACTION chuva // (gerador de chuva)   
{   
       MY.INVISIBLE = ON;   
      WHILE (1)   
      {   
               temp_chuva.X = MY.X + 200 - RANDOM(400); // área quadrada de 400 quants   
               temp_chuva.Y = MY.Y + 200 - RANDOM(400);   
               temp_chuva.Z = MY.Z;   
               EMIT 1, temp_chuva, _chuva;   
               WAIT 1;   
      }   
}   

function  _chuva ()   
{   
      IF (MY_AGE == 0)   
      {   
              MY_FLARE = ON;   
              MY_MAP = chuva_map;   
              MY_SPEED.X = 0;   
              MY_SPEED.Y = 0;   
              MY_SPEED.Z = -10; // velocidade da queda das gotas de chuva
              MY_SIZE = 50 + RANDOM(30);   
      }   
      IF (MY_AGE >= 200)  // remove gotas de chuva invisiveis
      {   
              SET MY_ACTION, NULL;   
      }   
}   
/////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////


///////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////
  // Relâmpagos: ////////////////////////////////////////////////
   /////////////////////////////////////////////////////////////


action relampago
   {
     while(my.lightrange == 0)
      {
       my.invisible = on;
       my.passable = on;

       wait (15 + random (50));

       // clarão 1     

      // gerando o clarão 1:

      my.lightrange = 10 + random (2500);
      my.lightred = 200;
      my.lightgreen = 200;
      my.lightblue = 250;
      wait (1 + random (2));



      // apagando o clarão 1:

      my.lightrange = 0;
      my.lightred = 0;
      my.lightgreen = 0;
      my.lightblue = 0;
      wait (1 + random (5));
     
      // clarão 2

      // gerando o clarão 2:

      my.lightrange = 190 + random (5000);
      my.lightred = 250;
      my.lightgreen = 250;
      my.lightblue = 250;
      wait (1 + random (3));


      // apagando o clarão 2:

      my.lightrange = 0;
      my.lightred = 0;
      my.lightgreen = 0;
      my.lightblue = 0;
      wait (5 + random (12));
     }
   }



////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////



</font id=navy>


<font color=black>
no mesmo link que te passei antes tem um exemplo de neve e na tecdemo que acompanha o 3DGS A6 tem um bom exemplo de raios e ate um meio tosco de furacao.

<center>
<b>Come Get Some!</b>
<img src=\"http://www.unidev.com.br/imagem/forum/3dgs.gif\" border=0>
</center>
</font id=black>

Editado por - alexiis on 15/05/2005 00:58:07

_________________
Imagem


Topo
 Perfil  
 
Mostrar mensagens anteriores:  Ordenar por  
Criar um novo TópicoWrite comments Página 5 de 8   [ 111 posts ]
Ir para página Anterior  1, 2, 3, 4, 5, 6, 7, 8  Próximo
Similar topics
Video aulas de modelagem 3D com 3D Studio Max!
Fórum: Notícias
Autor: Drag
Respostas: 5
Game Maker
Fórum: Game Making
Autor: And
Respostas: 6
[Game Art] Criando Personagens 3D para Games!
Fórum: Arte 3D
Autor: Drag
Respostas: 17
tutorial game estrategia
Fórum: 3D Game Studio
Autor: lavrednav
Respostas: 6
Db e qb + save game
Fórum: Dark Basic
Autor: FilipeEsch
Respostas: 2
Topo


Quem está ligado:

Utilizadores a ver este Fórum: Nenhum utilizador registado e 2 visitantes


Criar Tópicos: Proibído
Responder Tópicos: Proibído
Editar Mensagens: Proibído
Apagar Mensagens: Proibído

Pesquisar por:
Ir para:  

cron


Powered by phpBB ©

Virtual Object Informtica Ltda. Fone/Fax: (15)3231-6840