Obrigado, Convidado!
Bem-vindo ao FMGARCIA - SAMP!
HuemersonFMG | ||||
CleidiSilva21 | ||||
barbfix | ||||
Tranks_NorT | ||||
RenatoFMG | ||||
William | ||||
Vinícius_ Kawasaki | ||||
scorpio | ||||
alfredw10 |
Scripts Diversos 4
Scripts Diversos 4
- 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;
}
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- Fundador - ADM
- PublicaçõesPublicaçõesMembro VipMembro VipCriador de TópicosCriador de TópicosParticipação em tópicosParticipação em tópicosCriador de EventosCriador de EventosPopular no fórum - AmigosPopular no fórum - AmigosAvaliação de MSGAvaliação de MSGMelhores avaliações de AmigosMelhores avaliações de AmigosRei dos Grupos no FórumRei dos Grupos no FórumMelhor RPGRecebe 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:
(200/100)
Dom 12 maio 2024, 12:16 por HuemersonFMG
» Modelo API Chamada Externa - Rest
Sex 10 maio 2024, 11:48 por HuemersonFMG
» Sistema de Ceps Brasileiro
Qui 14 Mar 2024, 09:36 por HuemersonFMG
» Esqueceu o número do seu telefone?
Ter 05 Dez 2023, 12:51 por HuemersonFMG
» Scripts SQL - Oracle
Ter 05 Dez 2023, 11:56 por HuemersonFMG
» Dicas para Excel
Sex 27 Out 2023, 11:22 por HuemersonFMG
» Acentos e Caracteres Especiais em HTML
Sex 20 Out 2023, 13:17 por HuemersonFMG
» Dez motivos para consumir mais café...
Dom 27 Ago 2023, 05:09 por alfredw10
» Combinações de teclas do Windows
Dom 06 Ago 2023, 13:29 por HuemersonFMG
» PL/SQL - Extensão da linguagem SQL - Oracle
Qua 10 maio 2023, 10:16 por HuemersonFMG
» Node.js é uma tecnologia assíncrona
Ter 09 maio 2023, 11:21 por HuemersonFMG
» Pontos Cardeais
Seg 24 Abr 2023, 20:02 por HuemersonFMG
» 1º DE MAIO – DIA MUNDIAL DO TRABALHO
Seg 24 Abr 2023, 15:34 por HuemersonFMG
» ChatGPT - robô virtual (chatbot) que responde a perguntas variadas
Seg 20 Fev 2023, 11:23 por HuemersonFMG
» Simples Página de Login em HTML - Visual Studio Code
Seg 06 Fev 2023, 13:40 por HuemersonFMG