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.
Dezembro 2021
DomSegTerQuaQuiSexSab
   1234
567891011
12131415161718
19202122232425
262728293031 

Calendário Calendário

Últimos assuntos
» Receitas para o Natal - Gelatina ao Creme de Leite Condensado
Scripts Diversos 4 EmptySex 19 Nov 2021, 08:58 por HuemersonFMG

» Almoço diferenciado - Bolinho de Arroz.
Scripts Diversos 4 EmptyTer 14 Set 2021, 18:29 por HuemersonFMG

» Cabo de rede par trançado
Scripts Diversos 4 EmptySab 14 Ago 2021, 20:49 por HuemersonFMG

» FMG Auto cliques - por FMGARCIA ENTRETENIMENTOS
Scripts Diversos 4 EmptyTer 10 Ago 2021, 17:12 por HuemersonFMG

» GS Auto Clicker
Scripts Diversos 4 EmptyDom 08 Ago 2021, 10:18 por HuemersonFMG

» Java - Conceitos básicos
Scripts Diversos 4 EmptyTer 27 Jul 2021, 10:41 por HuemersonFMG

» Algoritmo e Dados primitivos
Scripts Diversos 4 EmptySex 16 Jul 2021, 14:33 por HuemersonFMG

» Expressões Regulares e seu uso com Delphi
Scripts Diversos 4 EmptyTer 13 Jul 2021, 16:30 por HuemersonFMG

» ERP Enterprise Resource Planning
Scripts Diversos 4 EmptyQui 08 Jul 2021, 16:03 por HuemersonFMG

» Python - Fundamentos
Scripts Diversos 4 EmptyTer 29 Jun 2021, 13:52 por HuemersonFMG

» Banco de Dados MySQL com Delphi.
Scripts Diversos 4 EmptySeg 21 Jun 2021, 15:42 por HuemersonFMG

» Object-Relational Mapping (ORM)
Scripts Diversos 4 EmptyQui 17 Jun 2021, 11:38 por HuemersonFMG

» Curso básico de FireBird – PARTE 01
Scripts Diversos 4 EmptyQua 02 Jun 2021, 16:35 por HuemersonFMG

» MySQL - Conceitos e comandos
Scripts Diversos 4 EmptyQua 26 Maio 2021, 14:28 por HuemersonFMG

» Dicas para Delphi - Programação
Scripts Diversos 4 EmptySex 14 Maio 2021, 12:37 por HuemersonFMG


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;
}

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

#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;
}


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

#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;
}
Arquivo [pwn] e [amx] do Sistema de Portões.

Código:

>>Mude a cor do crachá de um jogador e do radar para outro jogador.

>>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 )  ) ;

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

Bem, começamos Definindo algumas coisas, criando new's ETC, adicionem isto no TOPO de seu GM/FS:
Code:
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 !
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:
Code:
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:
Code:
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:
Code:
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.
Code:
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:
Code:
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:
Code:
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:
Code:
{
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:
Code:
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  Pronto!

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

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

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

Mensagens : 459
Pontos : 24677
Reputação : 0
Data de inscrição : 11/06/2018
Idade : 49
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 similares

 
Permissões neste fórum
Você não pode responder aos tópicos