SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Português/Portuguese > Lançamentos/Releases

Reply
 
Thread Tools Display Modes
Old 03/08/2013, 04:48 AM   #1
Bruno13
High-roller
 
Bruno13's Avatar
 
Join Date: May 2013
Location: Caxias do Sul/RS
Posts: 1,412
Reputation: 240
Default Câmera em Primeira Pessoa (Fora do veiculo)

Introdução

Olá a todos do fórum sa-mp.
Hoje vim aqui postar meu primeiro filterscript, bom primeiro não
mas sim o primeiro que posto...

Ele se trata de câmera em primeira pessoa, porém não é dentro
do veiculo com já existe, é como se fosse aquele tal mod que tem,
só que não precisa do mod(ava), e estarei postando parte por parte
para você conseguir colocar em seu GM, pois o código é bem pequeno,
e acho que não seria necessário mais um filterscript ai hein...hehehe.


Inserindo código

Vamos a primeira parte, localize no seu GameMode o lugar onde esta as defines, e cole esse código(caso já tenha essas cores ou irá usar outras que já estão definidas, nem precisa colocar essas defines):

Code:
#define VERMELHO 0xAA3333AA
#define VERDE 0x00A200FF

Agora as variáveis:
Code:
new pUsarCamera[MAX_PLAYERS];
new pPrimeiro[MAX_PLAYERS];
new firstperson[MAX_PLAYERS];

Certo agora iremos na public OnPlayerCommandText, e iremos inserir esse código abaixo:
Code:
new cmd[256];
	if (strcmp(cmd, "/camera", true) == 0)
	{
		if(pUsarCamera[playerid] == 0)
		{
	    	SendClientMessage(playerid, -1, "Pronto! Agora você podera usar camera em primeira pessoa!");
            SendClientMessage(playerid, -1, "Para usar pressione e tecla de barra invertida ou use /primeiro.");
			pUsarCamera[playerid] = 1;
		}
		else if(pUsarCamera[playerid] == 1)
		{
		    if(pPrimeiro[playerid] == 0)//camera desligada
			{
		    	SendClientMessage(playerid, VERMELHO, "Ativação desligada! Você desabilitou a camera em primeira pessoa.");
				pUsarCamera[playerid] = 0;
			}
			else
   			{
   			    SendClientMessage(playerid, VERDE, "   Sua camera esta ativada, desative-a antes.");
   			}
		}
		return true;
	}
    if(strcmp(cmd, "/primeiro", true) == 0)
	{
     	if(pUsarCamera[playerid] == 1)
		{
		    if(IsPlayerInAnyVehicle(playerid))
			{
				SendClientMessage(playerid,VERDE,"Você não pode usar essa camêra em um veiculo!");
			}
			if(pPrimeiro[playerid] == 0)
			{
			 	CameraPrimeira(playerid,1);
                GameTextForPlayer(playerid, "~w~camera~g~ ligada", 5000, 6);
				pPrimeiro[playerid] = 1;//ligou a camera
			}
			else
			{
			    pPrimeiro[playerid] = 0;
			    GameTextForPlayer(playerid, "~w~camera~r~ desligada", 5000, 6);
			    CameraPrimeira(playerid,0);
			}
		}
		else
		{
		    SendClientMessage(playerid, VERDE, "Para poder usar camera em primeira pessoa tera que usar /camera antes!");
		}
		return 1;
	}

Ok, agora vamos na outra public OnPlayerKeyStateChange, que ira ser a função para podermos ativar a câmera apertando teclas(Tecla que coloquei foi de Barra invertida: \):
OBS: Você pode alterar o id da tecla, mudando o id de 1 para a que escolher.
Code:
if(newkeys == 1 && GetPlayerState(playerid) != PLAYER_STATE_DRIVER)
    {
        if(pUsarCamera[playerid] == 1)
		{
	        if(pPrimeiro[playerid] == 0)
			{
			 	CameraPrimeira(playerid,1);
				pPrimeiro[playerid] = 1;
				GameTextForPlayer(playerid, "~w~camera~g~ ligada", 5000, 6);
			}
			else if(pPrimeiro[playerid] == 1)
			{
			    pPrimeiro[playerid] = 0;
			    CameraPrimeira(playerid,0);
	            GameTextForPlayer(playerid, "~w~camera~r~ desligada", 5000, 6);
			}
		}
    }

Agora vamos a parte final, que e a Stock, que será chamada para poder ativar a câmera, eu costumo deixar no fim do GameMode, mas você que escolhe, só tome cuidado para não colocar dentro de outras funções como as public, stocks...
Code:
stock CameraPrimeira(playerid,type)
{
	if(type == 0)
  	{
        SetCameraBehindPlayer(playerid);
        DestroyObject(firstperson[playerid]);
  	}
   	else if(type == 1)
    {
        firstperson[playerid] = CreateObject(19300, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
        AttachObjectToPlayer(firstperson[playerid],playerid, 0.0, 0.27, 0.7, 0.0, 0.0, 0.0);
        AttachCameraToObject(playerid, firstperson[playerid]);
    }
    return type;
}

Bugs

Bom, infelizmente assim foi o melhor que consegui deixar, pois o attach que cria ele meio que quando vira o mouse para olhar pra traz da pra ver por dentro do corpo da skin, porém se colocasse mais para a frente não daria porque não apareceria as armas da mão dele e tal...Mas se alguem quiser ajustar é só modificar a posição Y do attach que está na stock.

Final

Bom galera é isso, esse código tinha feito para mim, porém acabei achando que não tinha muita graça(rsrs) então vim traze-lo a vocês, pois já vi gente pedindo câmera mas fora do veiculo, então ta ai...

Créditos: Bruno_13

Obrigado espero que gostem, até a próxima

@EDIT

Mudado de return 1 para return type.
__________________
Desenvolvendo Hogwarts RP/G
Code:
> Não trabalho mais com venda de sistemas.
> Site: www.bruno13.tk

Last edited by Bruno13; 07/02/2014 at 12:24 AM.
Bruno13 is offline   Reply With Quote
Old 03/08/2013, 04:56 AM   #2
n0minal
High-roller
 
n0minal's Avatar
 
Join Date: Mar 2013
Location: Rio de Janeiro
Posts: 4,154
Reputation: 723
Default Re: Câmera em Primeira Pessoa (Fora do veiculo)

Barra invertida em keystatechange? Ta né... Bom trabalho mas me diz ai como fizestes para achar o id desta tecla...
__________________
n0minal is offline   Reply With Quote
Old 03/08/2013, 05:15 AM   #3
Bruno13
High-roller
 
Bruno13's Avatar
 
Join Date: May 2013
Location: Caxias do Sul/RS
Posts: 1,412
Reputation: 240
Default Re: Câmera em Primeira Pessoa (Fora do veiculo)

Quote:
Originally Posted by n0minal View Post
Barra invertida em keystatechange? Ta né... Bom trabalho mas me diz ai como fizestes para achar o id desta tecla...
Vlw. Bom eu usei essa imagem:

Mas eu acho que deve ter mais do que esses id's...
__________________
Desenvolvendo Hogwarts RP/G
Code:
> Não trabalho mais com venda de sistemas.
> Site: www.bruno13.tk
Bruno13 is offline   Reply With Quote
Old 03/08/2013, 12:40 PM   #4
P1c4550
Huge Clucker
 
P1c4550's Avatar
 
Join Date: Jun 2013
Posts: 233
Reputation: 7
Default Re: Câmera em Primeira Pessoa (Fora do veiculo)

Bom trabalho
__________________
P1c4550 is offline   Reply With Quote
Old 03/08/2013, 01:17 PM   #5
darkxdll
High-roller
 
darkxdll's Avatar
 
Join Date: Jul 2012
Location: C:\Windows\DLLs
Posts: 1,535
Reputation: 87
Default Re: Câmera em Primeira Pessoa (Fora do veiculo)

Ficou legal , se tivesse explicações , poderia ser um tutorial kkk..
Parabéns ai
__________________
Dúvida ? Chama aí : 044-88087215
darkxdll is offline   Reply With Quote
Old 03/08/2013, 02:29 PM   #6
lucaspilar
Huge Clucker
 
lucaspilar's Avatar
 
Join Date: Mar 2013
Posts: 196
Reputation: 2
Default Re: Câmera em Primeira Pessoa (Fora do veiculo)

Bem Legal mano Bom trabalho, usarei em meu servidor e deixarei os creditos claro.
lucaspilar is offline   Reply With Quote
Old 03/08/2013, 03:38 PM   #7
Don_Speed
High-roller
 
Don_Speed's Avatar
 
Join Date: Sep 2011
Location: Curitiba / PR
Posts: 3,174
Reputation: 251
Default Re: Câmera em Primeira Pessoa (Fora do veiculo)

Code:
stock CameraPrimeira(playerid,type)
{
    if(type == 0)
    {
        SetCameraBehindPlayer(playerid);
        DestroyObject(firstperson[playerid]);
    }
    else if(type == 1)
    {
        CancelSelectTextDraw(playerid);
        firstperson[playerid] = CreateObject(19300, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
        AttachObjectToPlayer(firstperson[playerid],playerid, 0.0, 0.27, 0.7, 0.0, 0.0, 0.0);
        AttachCameraToObject(playerid, firstperson[playerid]);
    }
    return type;
}
__________________
Don_Speed is offline   Reply With Quote
Old 03/08/2013, 11:34 PM   #8
Bruno13
High-roller
 
Bruno13's Avatar
 
Join Date: May 2013
Location: Caxias do Sul/RS
Posts: 1,412
Reputation: 240
Default Re: Câmera em Primeira Pessoa (Fora do veiculo)

Quote:
Originally Posted by Don_Speed View Post
Code:
stock CameraPrimeira(playerid,type)
{
    if(type == 0)
    {
        SetCameraBehindPlayer(playerid);
        DestroyObject(firstperson[playerid]);
    }
    else if(type == 1)
    {
        CancelSelectTextDraw(playerid);
        firstperson[playerid] = CreateObject(19300, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
        AttachObjectToPlayer(firstperson[playerid],playerid, 0.0, 0.27, 0.7, 0.0, 0.0, 0.0);
        AttachCameraToObject(playerid, firstperson[playerid]);
    }
    return type;
}
Bah poisé nem tinha me tocado, é que eu ainda estou começando em pawn, mas valeu, pensei que não mudaria muito se fosse 1 para type....
__________________
Desenvolvendo Hogwarts RP/G
Code:
> Não trabalho mais com venda de sistemas.
> Site: www.bruno13.tk
Bruno13 is offline   Reply With Quote
Old 04/08/2013, 12:55 AM   #9
xxRaioxx
Huge Clucker
 
xxRaioxx's Avatar
 
Join Date: Jun 2013
Location: Brazil, Minas Gerais, Varginha
Posts: 284
Reputation: 5
Default Re: Câmera em Primeira Pessoa (Fora do veiculo)

Quote:
Originally Posted by Bruno13 View Post
Introdução
Certo agora iremos na public OnPlayerCommandText, e iremos inserir esse código abaixo:
Code:
new cmd[256];
	if (strcmp(cmd, "/camera", true) == 0)
	{
		if(pUsarCamera[playerid] == 0)
		{
	    	SendClientMessage(playerid, -1, "Pronto! Agora você podera usar camera em primeira pessoa!");
            SendClientMessage(playerid, -1, "Para usar pressione e tecla de barra invertida ou use /primeiro.");
			pUsarCamera[playerid] = 1;
		}
		else if(pUsarCamera[playerid] == 1)
		{
		    if(pPrimeiro[playerid] == 0)//camera desligada
			{
		    	SendClientMessage(playerid, VERMELHO, "Ativação desligada! Você desabilitou a camera em primeira pessoa.");
				pUsarCamera[playerid] = 0;
			}
			else
   			{
   			    SendClientMessage(playerid, VERDE, "   Sua camera esta ativada, desative-a antes.");
   			}
		}
		return true;
	}
    if(strcmp(cmd, "/primeiro", true) == 0)
	{
     	if(pUsarCamera[playerid] == 1)
		{
		    if(IsPlayerInAnyVehicle(playerid))
			{
				SendClientMessage(playerid,VERDE,"Você não pode usar essa camêra em um veiculo!");
			}
			if(pPrimeiro[playerid] == 0)
			{
			 	CameraPrimeira(playerid,1);
                GameTextForPlayer(playerid, "~w~camera~g~ ligada", 5000, 6);
				pPrimeiro[playerid] = 1;//ligou a camera
			}
			else
			{
			    pPrimeiro[playerid] = 0;
			    GameTextForPlayer(playerid, "~w~camera~r~ desligada", 5000, 6);
			    CameraPrimeira(playerid,0);
			}
		}
		else
		{
		    SendClientMessage(playerid, VERDE, "Para poder usar camera em primeira pessoa tera que usar /camera antes!");
		}
		return 1;
	}
Eu uso ZCMD como faz esses comandos?
__________________

---

Tutoriais


FilterScripts

xxRaioxx is offline   Reply With Quote
Old 04/08/2013, 01:21 AM   #10
Bruno13
High-roller
 
Bruno13's Avatar
 
Join Date: May 2013
Location: Caxias do Sul/RS
Posts: 1,412
Reputation: 240
Default Re: Câmera em Primeira Pessoa (Fora do veiculo)

Quote:
Originally Posted by xxRaioxx View Post
Eu uso ZCMD como faz esses comandos?
Nunca usei zcmd (apesar de ser melhor), mas creio que para esses comandos ai é só pegar a parte entre a primeira chave até a ultima e mudar apenas o formato de como é o zcmd...
__________________
Desenvolvendo Hogwarts RP/G
Code:
> Não trabalho mais com venda de sistemas.
> Site: www.bruno13.tk
Bruno13 is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[FilterScript] Câmera em 1ª pessoa ForT Lançamentos/Releases 33 18/08/2016 03:51 AM
[Ajuda] Câmera saindo fora da Parede maikonk Português/Portuguese 2 09/07/2013 03:38 AM
[Pedido] Câmera em primeira pessoa sem estar no carro. lucaspilar Português/Portuguese 0 13/06/2013 01:19 PM
[Ajuda] Camera em 1° Pessoa StringBR Português/Portuguese 8 09/05/2013 06:45 PM
[AJUDA] Tirar pessoa do veiculo Kelvin_Cesar Português/Portuguese 6 19/10/2011 07:09 PM


All times are GMT. The time now is 10:07 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.