FMGARCIA - SAMP
Bem vindo ao nosso Fórum, faça o seu registro gratuito.
Respeite as regras do fórum e do servidor.
Nosso servidor é *Role-Playing Game - RPG*.
Nosso lema é: *DIVERSÃO*.

IP: 54.39.145.16:7720

DISCORD: https://discord.gg/UsduDqw
YOUTUBE: https://www.youtube.com/user/HuemersonSUPER
FACEBOOK: https://www.facebook.com/Fmgsamprpgvr

In Game: Ao logar compre seu vip e aproveite as vantagens.
Todos os jogadores ganham Coins [Moedas Virtuais] no primeiro login, para comprar itens no menu vip ou adquirir org vip - / menuvip ou /pegarorg.

Participe do fórum, é rápido e fácil

FMGARCIA - SAMP
Bem vindo ao nosso Fórum, faça o seu registro gratuito.
Respeite as regras do fórum e do servidor.
Nosso servidor é *Role-Playing Game - RPG*.
Nosso lema é: *DIVERSÃO*.

IP: 54.39.145.16:7720

DISCORD: https://discord.gg/UsduDqw
YOUTUBE: https://www.youtube.com/user/HuemersonSUPER
FACEBOOK: https://www.facebook.com/Fmgsamprpgvr

In Game: Ao logar compre seu vip e aproveite as vantagens.
Todos os jogadores ganham Coins [Moedas Virtuais] no primeiro login, para comprar itens no menu vip ou adquirir org vip - / menuvip ou /pegarorg.
FMGARCIA - SAMP
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Obrigado, Convidado!

Bem-vindo ao FMGARCIA - SAMP!

maio 2024
DomSegTerQuaQuiSexSáb
   1234
567891011
12131415161718
19202122232425
262728293031 

Calendário Calendário

Calculadora FMG
FMGarcia
Administradores

Votação
FMG - O MELHOR SERVIDOR RPG SAMP - RADIO ONLINE

Scripts Diversos 4

Ir para baixo

Trevo Scripts Diversos 4

Mensagem por HuemersonFMG Qua 04 Set 2019, 14:29

Registrando Kilometrágem percorrida por um veículo:
Código:

new VehicleTimer[MAX_VEHICLES], VehicleKM[MAX_VEHICLES];
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    VehicleTimer[vehicleid] = SetTimerEx("UpdateVehicle", 1000, true, "i", vehicleid);
    return 1;
}

function UpdateVehicle(vehicleid)
{
    if(GetVehicleSpeed(vehicleid) < 20) return 1;
    VehicleKM[vehicleid] += (GetVehicleSpeed(vehicleid) * 0.27) / 700;
    return 1;
}

stock GetVehicleSpeed(vehicleid)
{
    new Float:Vx, Float:Vy, Float:Vz;
    GetVehicleVelocity(vehicleid, Vx, Vy, Vz);
    new Float:rtn;
    rtn = floatsqroot(floatpower(Vx*100,2) + floatpower(Vy*100,2));
    rtn = floatsqroot(floatpower(rtn,2) + floatpower(Vz*100,2));
    return floatround(rtn);
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
    KillTimer(VehicleTimer[vehicleid];
    //vehicle km save function
    return 1;
}
 

---------------------------------------------------------------------------------------------

Procurar carro com os dados da placa - Bom para Orgs de policia
Código:

#include <a_samp>
#include <zcmd>
#include <sscanf2>

main () {}

enum DadosVeiculo
{
    idVeiculo,
    Placa[10]
};
new Veiculo[MAX_VEHICLES][DadosVeiculo];

public OnGameModeInit() {
    for(new idV = 1; idV < 10; idV++) {
        format(Veiculo[idV][Placa], 10, "AAA-%04d", idV);
        procurarPlaca(Veiculo[idV][Placa]);
    }
    return 1;
}

stock procurarPlaca(placaV[]) {
    new string[40];
    for(new i = 1; i < MAX_VEHICLES; i++) {
        if(!strcmp(Veiculo[i][Placa], placaV, false)) {
            format(string, sizeof(string), "Carro ID: %d - Placa: %s", i, placaV);
            printf("%s", string);
            return i;
        }
    }
    return 0;
}

//Uso:
CMD:procurar_placa(playerid, params[]) {
    new placaVeiculo[10];
    if(sscanf(params, "s[10]")) return SendClientMessage(playerid, -1, "Uso correto: /procurar_placa [Placa].");
    procurarPlaca(placaVeiculo);
    return 1;
}

Simples sistema de portão (Não abre com a buzina).
Código:

#define FILTERSCRIPT
#define AMARELO 0xFFFF00AA

#define VERSAO "1.0.0"
#define NOME "HuemersonFMG"
#define SCRIPTER "HuemersonFMG"
#define FSS "FMG - Sistema de Portoes"
#define SITE "familiagarcia-samp.forumeiros.com/forum"
#define SCM SendClientMessage
#define SCMA SendClientMessageToAll

//Variaveis Pos X - Y - Z - acertos
#define V1 "F"
#define V2 "S"
#define V3 "G"
#define V4 "M"
#define V5 "P"
#define V6 "A"
#define V7 "-"

//Variaveis Pos W - P - J - acertos
#define V8 "e"//P
#define V9 "r"//P
#define V10 "n"//P
#define V11 "u"//P
#define V12 "o"//P
#define V13 "H"//G
#define V14 "m"//P
#define V15 "s"//P

#define V20 ""V1""V4""V3""V7""V2""V6""V4""V5""
#define V21 ""V1""V18""V14""V16""
#define V22 ""V17""V16""V18""
#define V23 ""V3""V18""V9""V19""V16""V18""
#define V24 ""V2""V6""V4""V5""
#define V25 ""V21""V22" "V23" - "V24""
#define V26 ""V1""V4""V3""

#include <a_samp>
#include <zcmd>
new portao1;
new portao2;

#if defined FILTERSCRIPT

forward close();

public OnFilterScriptInit()
{
    return 1;
}

public OnFilterScriptExit()
{
    return 1;
}

#else

main()
{

}

#endif

public OnGameModeInit()
{
     portao1 = CreateObject(980,1590.36975098,-1638.18310547,15.23138046,0.00000000,0.00000000,0.00000000);
     portao2 = CreateObject(968,1544.69677734,-1630.78649902,13.07031250,0.00000000,90.00000000,90.00000000);
     return 1;
}

CMD:portao(playerid, params[])
    {
    if(IsPlayerInRangeOfPoint(playerid, 5, 1590.36975098,-1638.18310547,15.23138046))
    MoveObject(portao1,1590.3804931641,-1637.9333496094,9.4813804626465, 2.00);
    SetTimer("close", 4000, 0);
    SCM (playerid, -1, "{FF0000}["V26" INFO]{FFFFFF}: Portão aberto, vai fechar automaticamente em instantes.");
    SCMA(0x00FFFFC8,""V20"");//Portão deverá fechar automático em instantes
    if(IsPlayerInRangeOfPoint(playerid, 8, 1544.69677734,-1630.78649902,13.07031250))
    MoveObject(portao2,1544.6962890625,-1630.7861328125,12.0703125, 2.00);
    SetTimer("close", 4000, 0);
    SCM (playerid, -1, "{FF0000}["V26" INFO]{FFFFFF}: Portão aberto, vai fechar automaticamente em instantes.");
    SCMA(0x00FFFFC8,""V20"");//Portão deverá fechar automático em instantes
    return 1;
    }

public close()
{
    MoveObject(portao1,1590.36975098,-1638.18310547,15.23138046, 3.00);
    MoveObject(portao2,1544.69677734,-1630.78649902,13.07031250, 3.00);
    return 1;
}
Baixe:
Arquivo [pwn] e [amx] do Sistema de Portões.

-----------------------------------------------------------------------------------------

>>Mude a cor do crachá de um jogador e do radar para outro jogador.
Código:

>>Parâmetros:
(playerid, showplayerid, color)

>>Exemplo de uso:
// Faça com que o jogador 42 veja o jogador 1 como um marcador vermelho
SetPlayerMarkerForPlayer (  42 , 1 , 0xFF0000FF ) ;
 
// Torna o marcador dos jogadores em branco invisível (o bate-papo será branco, mas o marcador desaparecerá).
SetPlayerMarkerForPlayer (  42 , 1 , 0xFFFFFF00 ) ;
 
// Torna o marcador do jogador invisível para o jogador, mantendo a mesma cor do bate-papo. Só funcionará corretamente se SetPlayerColor tiver sido usado:
SetPlayerMarkerForPlayer (  42 , 1 , (  GetPlayerColor (  1  ) & 0xFFFFFF00 )  ) ;
 
// Torna o marcador dos jogadores totalmente opaco (sólido) para o jogador, mantendo a mesma cor da conversa. Só funcionará corretamente se SetPlayerColor tiver sido usado:
SetPlayerMarkerForPlayer (  42 , 1 , (  GetPlayerColor (  1  ) | 0x000000FF )  ) ;

---------------------------------------------------------------------------------------------

Portão com Comando ( /seucomando ) e Automatizado com Teclas do Teclado.
Código:

Definições:
Código:
new Gate; // Lembrando que o nome que Colocar aqui será Usado em TODO PROCESSO !
forward CloseGate(gateid); // Deixe QUETO ( Isso que fará com que o Portão Feche )
#define COLOR_YELLOW 0xFFFF00AA
// Definindo COR - Amarelo !

OK, após feito Isso, vamos Adicionar nosso Portão, que esta definido como "Gate". Procure pelo public "OnGameModeInit" e Adicione seu PORTÃO com as Coordenadas dele Fechado, VEJA:
Código:
Gate = CreateObject(MODEL,X,Y,Z,ROTX,ROTY,ROTZ); // Coloque as Info do Portão FECHADO Aqui =D (MODEL,X,Y,Z,ROTX,ROTY,ROTZ) Site para Conversão: http://www.convertffs.com/
Por que o "Gate"? Pois foi esse nome que foi Definido no "new" do topo do GM/FS =D


Isso, agora o Portão já Esta criado, agora temos que Move-ló. Irei mostrar uma forma Bem diferente e legal =D Primeiro crie o Comando, procure pela public "OnPlayerCommandText" e Coloque isso:
Código:
if (strcmp("/seucomando", cmdtext, true, 10) == 0) // Coloque o Comando que irá Abrir o Portão ( Será usado depois Também )
{
if(IsPlayerInRangeOfPoint(playerid,7.0, X,Y,Z)) // Troque X,Y,Z Pelas Coordenadas do Portão Fechado ! Troque 7.0 Pela Distancia que o Comando poderá ser Usado a Partir das Cood que você Colocou !
{
MoveObject(Gate,X,Y,Z,3.0); // Troque X,Y,Z Pelas Coordenadas do Portão Aberto ! 3.0 = Velocidade para ele se Mecher !
SetTimerEx("CloseGate", 10000, false, "i", Gate); // Troque 10000 pelo que Tempo que vai Levar para o Portão Fechar ( Lembrando que o TEMPO é em MS, ou seja, 10000 = 10 Segundos )!
SendClientMessage(playerid, COLOR_YELLOW, "ACESSE: http://forum.sa-mp.com"); // Coloque aqui a Mensagem que quer que Mande para o Player, EX: O Gate vai Facgar em 10 Segundos !
return 1;
}
}
Vocês devem Estar se Perguntando: "Por que comando se é Automático?" Calma, irei Explicar:
Eu resolvi desta forma pois Fica mais facil para Adaptação de mais de um Portões e quando o Player estiver fora do Veículo ou seja lá Como, ele também teria a Opção de digitar o Comando  Jájá irei Mostrar com Automatizar o Portão com Teclas do Teclado !


Feito Isso, temos que fazer com que o Portão Feche né? Adicione o COD a seguir no Final do seu GM/FS:
Código:
public CloseGate(gateid)
{
if(gateid == Gate)
{
MoveObject(Gate,X,Y,Z,3.0); // Troque X,Y,Z Pelas Coordenadas do Portão FECHADO !
}
return 1;
}
Esta public fará com que o Portão Feche  Como ela já foi Criada/Definida no inicio do GM/FS, não terá Problemas


Agora o Mais esperado " Abrir o Portão com Teclas do Teclado ", procure pela public "OnPlayerKeyStateChange", caso não Tenha, crie-a.
Código:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if ((newkeys==KEY_JUMP)) // Mude o KEY_JUMP pelo COD que Quiser, neste caso KEY_JUMP = Tecla SHIFT ( A pé ) / Espaço ( Em Veiculo ) - ( Pular/Freiar )
{
OnPlayerCommandText(playerid,"/seucomando"); // O Comando que Estiver aqui deve Ser o Memso que você Colocou Anteriormente !
// Adicione Outros Comandos para serem Executados com a Tecla SHIFT ( A pé ) / Espaço ( Em Veiculo ) - ( Pular/Freiar ) Aqui !
}
return 0;
}
 Pronto - KEY_CROUCH = Buzina do Carro - Outras Teclas que podem ser Trocadas pelo "KEY_JUMP":
~~Key~~
Clique Aqui para ver as KEYs !



[size=32]MÉTODO 2[/size]
Portão Abre Automaticamente ao Chegar Perto !

Bem, começamos Definindo algumas coisas, criando new's ETC, adicionem isto no TOPO de seu GM/FS:
Código:
new Gate; // Lembrando que o nome que Colocar aqui será Usado em TODO PROCESSO !
forward CloseGate(gateid); // Deixe QUETO ( Isso que fará com que o Portão Feche )
forward IsPlayerAtToll(); // Deixe QUETO
#define COLOR_YELLOW 0xFFFF00AA
// Definindo COR - Amarelo !
Agora Já Podemos seguir em Frente


OK, após feito Isso, vamos Adicionar nosso Portão, que esta definido como "Gate". Procure pelo public "OnGameModeInit" e Adicione seu PORTÃO com as Coordenadas dele Fechado, VEJA:
Código:
Gate = CreateObject(MODEL,X,Y,Z,ROTX,ROTY,ROTZ); // Coloque as Info do Portão FECHADO Aqui =D (MODEL,X,Y,Z,ROTX,ROTY,ROTZ) Site para Conversão: http://www.convertffs.com/
SetTimer("IsPlayerAtToll", 1000, true); // 1000 = Tempo em MS que Verifica a Ação ( 1000 = 1 Segundo )
Por que o "Gate = CreateObject"? Pois foi esse nome que foi Definido no "new" do topo do GM/FS =D
O "SetTimer" Serve para Verificar ( de 1 em 1 Segundo ) SE a Alguém proximo ao Portão !


Feito Isso devemos Mover o OBJETO Certo? Então vamos lá! Criei a public "IsPlayerAtToll()" e coloque o Seguinte COD nela:
Código:
{
for(new playerid=0; playerid<max_players; playerid++)<br="" style="margin: 0px; padding: 0px;"> {
if(IsPlayerInRangeOfPoint(playerid,7.0,Y,Y,Z)) // Troque X,Y,Z Pelas Coordenadas do Portão Fechado ! Troque 7.0 Pela Distancia que o Comando poderá ser Usado a Partir das Cood que você Colocou !
{
MoveObject(Gate,X,Y,Z,3.0); // Troque X,Y,Z Pelas Coordenadas do Portão Aberto ! 3.0 = Velocidade para ele se Mecher !
SendClientMessage(playerid, COLOR_YELLOW, "ACESSE: http://forum.sa-mp.com"); // Coloque aqui a Mensagem que quer que Mande para o Player, EX: O Gate vai Facgar em 10 Segundos !
SetTimerEx("CloseGate", 10000, false, "i", Gate); // Troque o 10000 pelo que Tempo que vai Levar para o Portão Fechar ( Lembrando que o TEMPO é em MS, ou seja, 10000 = 10 Segundos )!
}
}
return 1;
}
Sim, o Portão será Aberto Automaticamente quando algum Player chegar perto Das Coords que você Colocou a Cima ( if(IsPlayerInRangeOfPoint ) !
Esta public fará com que o Portão Abra  Como ela já foi Criada/Definida no inicio do GM/FS, não terá Problemas


Ok, Agora temos que fazer com que o Portão Feche né? Adicione o COD a seguir no Final do seu GM/FS:
Código:
public CloseGate(gateid)
{
if(gateid == Gate)
{
MoveObject(Gate,X,Y,Z,3.0); // Troque X,Y,Z Pelas Coordenadas do Portão FECHADO !
}
return 1;
}
Esta public fará com que o Portão Feche  Como ela já foi Criada/Definida no inicio do GM/FS, não terá Problemas.

Entrando/Saindo de Interiores - Apertando F e Pickup
Código:

Explicação da Função : CreatePickup.
Teleporte por PikUps

pawn Code:
CreatePickup(Modelo, Spawn, Corx, Coy, Corz,-1);
Explicando :
• CreatePickup = Criar a Pickup.
• Modelo = a Pickup Que Irá Aparecer ( Irei Escolher a I )
• Spawn = ( Irei Colocar o 2 )
• Corx = Coordenada X Da Onde a Pickup Ficará.
• Cory = Coordenada Y Da Onde a Pickup Ficará.
• Corz = Coordenada Z Da Onde a Pickup Ficará.
• -1 = Virtual Word ( deixe -1 mesmo )

IsPlayerInRangeOfPoint

pawn Code:
if(IsPlayerInRangeOfPoint(playerid, 2.0, Corx, Cory, Corz))

• 2.0 = Raio
• Corx = Coordenada X
• Cory = Coordenada Y
• Corz = Coordenada Z


Criando Entrada/Saida de Interiores Usando Pickup

Definindo Pickups – No topo da GM

pawn Code:
new EntradaPickup; // Usaremos Para Entrar
new SaindaPickup; // Usaremos Para Sair

Callback OnGameModeInit.

pawn Code:
EntradaPickup = CreatePickup(1239, 2, 1503.3359, 1432.3585, 10.1191, -1);   // Definido Nome Para a  Pickup. ENTRADA.

SaidaPickup = CreatePickup(1239, 2, 1323.3359, 1122.3585, 10.12391, -1);  // Definido Nome Para a  Pickup. SAIDA.

Ficando sobre a Pickup Com Nome " Entrada Pickup ", a Seguinte Função Será Chamada :

Na Callback OnPlayerPickUpPickup –“ Pickup de Entrada”:
pawn Code:
if(pickupid == EntradaPickup)
{
    SetPlayerInterior(playerid, 11); // Interior Do Local que Será Setado.
    SetPlayerPos(playerid, 1323.3359, 1122.3585, 10.12391); // Setando ele Para Dentro do Interior.
}

• Ele é teleportado Para o Local Desejado, setendo o Interior do jogador, evitando que fique bugado.

Na Callback OnPlayerPickUpPickup –“ Pickup de saida”:

pawn Code:
if(pickupid == SaidaPickup)
{
    SetPlayerInterior(playerid, 0); // Interior Do Local que Será Setado.
    SetPlayerPos(playerid, 1503.3359, 1432.3585, 10.1191); // Setando ele Para Fóra do Interior.
}

Teleporte pressionando a letra “F”:
Primeiramente. Vamos Ter que Fazer Nosso Comando.

• Na Callback OnPlayerCommandText Coloque Nosso Comando de Entrada/Saida.

pawn Code:
// Vamos ao Comando Entrar
if(strcmp(cmdtext, "/entrandointerior", true) == 0) // Comando ( Não Importa Vamos Usar o F )
{
     if(IsPlayerInRangeOfPoint(playerid, 2.0, 2695.6880, -1704.6300, 11.8438))   // Ou Seja. Se Ele tiver no Local.
  {
      SetPlayerInterior(playerid, 11); // .Setando o Interior ao Entrar
      SetPlayerPos(playerid, 1503.3359, 1432.3585, 10.1191); // Setado Para Aqui ( TELE )
  }
  return true; // Returnando a 1
}

pawn Code:
• Vamos No Comando Sair
if(strcmp(cmdtext, "/sairdointerior", true) == 0) // Comando ( Não Importa Vamos Usar o F )
{
     if(IsPlayerInRangeOfPoint(playerid, 2.0, 503.3359, 1432.3585, 10.1191))  // Se Ele tiver no Local
  {
     SetPlayerInterior(playerid, 0); // Setando o Interior ao Sair.
     SetPlayerPos(playerid, 2695.6880, -1704.6300, 11.8438); // Setado Para Aqui ( TELE )
  }
  return true; // Returnando a 1
}

Como Você Pode ver é Quase a Mesma Coisa. Só é Adicionada a Função “IsPlayerInRangeOfPoint”. Para que o comando funcione apenas naquele local.

• Agora Vamos Por Para Apertar F.
Na Callback OnPlayerKeyStateChange Coloque o Seguinte Código.

pawn Code:
if ((newkeys==KEY_SECONDARY_ATTACK)) // Key ( F / Enter )
{
  OnPlayerCommandText(playerid,"/entrandointerior"); // Ao Apertar "F" Funcionará o comando para entrar será aplicado.
  OnPlayerCommandText(playerid,"/sairdointerior"); // Ao Apertar "F" Funcionará o comando para sair será aplicado.
}

Código:
Como criar um comando CMD fácil.

CMD:Comando(playerid, params []) // Primeira linha do Comando, Em "Comando" coloque o nome do seu comando, Mas sem o barra ("/")
{ // Abrimos uma chave - a Principal do comando
// Aqui colocamos a função do comando por exemplo:
SetPlayerSkin(playerid, 1); // Setamos a skin do player para a skin ID 1.
SendClientMessage(playerid, -1, "Skin setada !"); // Aqui é a mensagem para o player
return 1; // Fechamos o comando
} // Utima chave do comando
HuemersonFMG
HuemersonFMG
Fundador - ADM
Fundador - ADM
Publicações
Publicações
Membro Vip
Membro Vip
Criador de Tópicos
Criador de Tópicos
Participação em tópicos
Participação em tópicos
Criador de Eventos
Criador de Eventos
Popular no fórum - Amigos
Popular no fórum - Amigos
Avaliação de MSG
Avaliação de MSG
Melhores avaliações de Amigos
Melhores avaliações de Amigos
Rei dos Grupos no Fórum
Rei dos Grupos no Fórum
Melhor RPG
Recebe este ao criar sua Ficha RPG no Perfil

Mensagens : 508
Pontos : 26628
Reputação : 0
Data de inscrição : 11/06/2018
Idade : 51
Localização : Brasil

FMGRPG
FMG:
Scripts Diversos 4 Left_bar_bleue200/100Scripts Diversos 4 Empty_bar_bleue  (200/100)

https://play.idevgames.co.uk/profile/Huemerson

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos