 |
Ver Mensagens sem resposta | Ver Tópicos Activos
| [ +/- ]
[ Data/Hora: 23 Mai 2013, 14:43 ]
|
|
| Autor |
Mensagem |
|
alexiis
|
Assunto da Mensagem: Enviado: 02 Mai 2005, 01:25 |
|
| Moderador(a)/Colaborador(a) |
 |
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
_________________
|
|
| Topo |
|
 |
|
andremarcos
|
Assunto da Mensagem: Enviado: 02 Mai 2005, 11:24 |
|
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 |
|
 |
|
xmetal
|
Assunto da Mensagem: Enviado: 02 Mai 2005, 11:58 |
|
| Membro Sênior |
 |
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 |
|
 |
|
fefe19
|
Assunto da Mensagem: Enviado: 07 Mai 2005, 16:00 |
|
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 |
|
 |
|
alexiis
|
Assunto da Mensagem: Enviado: 07 Mai 2005, 19:29 |
|
| Moderador(a)/Colaborador(a) |
 |
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>
_________________
|
|
| Topo |
|
 |
|
Darkness
|
Assunto da Mensagem: Enviado: 07 Mai 2005, 23:39 |
|
Registado: 13 Nov 2004, 15:15 Mensagens: 187 Localização: Brasil
|
|
| Topo |
|
 |
|
fefe19
|
Assunto da Mensagem: Enviado: 08 Mai 2005, 17:46 |
|
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 |
|
 |
|
alexiis
|
Assunto da Mensagem: Enviado: 10 Mai 2005, 01:03 |
|
| Moderador(a)/Colaborador(a) |
 |
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
_________________
|
|
| Topo |
|
 |
|
fefe19
|
Assunto da Mensagem: Enviado: 13 Mai 2005, 00:24 |
|
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 |
|
 |
|
alexiis
|
Assunto da Mensagem: Enviado: 13 Mai 2005, 00:39 |
|
| Moderador(a)/Colaborador(a) |
 |
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
_________________
|
|
| Topo |
|
 |
|
Darkness
|
Assunto da Mensagem: Enviado: 13 Mai 2005, 01:29 |
|
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 |
|
 |
|
fefe19
|
Assunto da Mensagem: Enviado: 14 Mai 2005, 00:15 |
|
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 |
|
 |
|
alexiis
|
Assunto da Mensagem: Enviado: 14 Mai 2005, 04:29 |
|
| Moderador(a)/Colaborador(a) |
 |
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
_________________
|
|
| Topo |
|
 |
|
fefe19
|
Assunto da Mensagem: Enviado: 14 Mai 2005, 14:16 |
|
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 |
|
 |
|
alexiis
|
Assunto da Mensagem: Enviado: 14 Mai 2005, 19:51 |
|
| Moderador(a)/Colaborador(a) |
 |
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
_________________
|
|
| 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
|
|
 |
|

|
 |