[Tutorial] Entrando/Saindo de Interiores - Apertando F e Pickup
#1

Explicaзгo da Funзгo : CreatePickup.

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 )


Explicando a Funзгo : IsPlayerInRangeOfPoint


pawn Code:
if(IsPlayerInRangeOfPoint(playerid, 2.0, Corx, Cory, Corz))
2.0 = Raio
Corx = Coordenada X
Cory = Coordenada Y
Corz = Coordenada Z

Veja Mais Em : https://sampwiki.blast.hk/wiki/IsPlayerInRangeOfPoint



Vamos Comeзar Agora.

Criando Entrada/Saida de Interiores Usando Pickup

Primeiramente, Vamos Definir Nossas 2 Pickups. Que Ajudarб a Fazer o Player Entrar й Sair do Interior


pawn Code:
new EntradaPickup; // Usaremos Para Entrar
new SaindaPickup; // Usaremos Para Sair
Pronto, Vamos Prosseguir Para o Passo Nъmero 2.
Definimos no Topo Nossas Pickups. Agora Vamos na Callback OnGameModeInit.


pawn Code:
// Entгo Vou da um Nome Para Minha Pickup. Colocar Ela Para Entrar.
EntradaPickup = CreatePickup(1239, 2, 1503.3359, 1432.3585, 10.1191, -1);
// Entгo Vou da um Nome Para Minha Pickup. Colocar Ela Para Sair.
SaidaPickup = CreatePickup(1239, 2, 1323.3359, 1122.3585, 10.12391, -1);
Ou Seja, as nossas pickups Defininas em Cima, Demos Uma Funзгo a Elas.Agora Vamos Para o Passo Nъmero 3.

Entгo Ao Ficar Em Cima da Pickup Com Nome " Entrada Pickup ", a Seguinte Funзгo Serб Chamada :

Na Callback OnPlayerPickUpPickup Bote a Funзгo Que Serб Chamada, Na 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.
}
Resultado : Ao Ficar em Cima da Pickup "EntradaPickup" Ele Tele transportarб o Player Para o Local Desejado, й Setarб o Interior dele, Para Nгo Bugarб.

Terminado o Passo 4. Faзa a Mesma Coisa Com a "SaidaPickup".


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 Ou Seja Saindo do Interior.
}
Resultado : Ao Ficar em Cima da Pickup "SaidaPickup" Ele Tele transportarб o Player Para o Local Desejado.

- Assim Podendo Criar Teleportes, Entradas, Saidas, Entre Outros.


Criando Entrada/Saida de Interiores Apertando 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 )
{
   // Ou Seja. Se Ele tiver no Local Do IsPlayerInRangeOfPoint, Funcionarб as Funзхes Abaixo
   if(IsPlayerInRangeOfPoint(playerid, 2.0, 2695.6880, -1704.6300, 11.8438))
   {
       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 )
{
   // Ou Seja. Se Ele tiver no Local Do IsPlayerInRangeOfPoint, Funcionarб as Funзхes Abaixo
   if(IsPlayerInRangeOfPoint(playerid, 2.0, 503.3359, 1432.3585, 10.1191))
   {
      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. Que Funcionarб o Comando 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 Do Lado.
   OnPlayerCommandText(playerid,"/sairdointerior"); // Ao Apertar "F" Funcionarб o Comando Do Lado.
  // Se Quiser Colocar mais, a vontade.
}
Entгo й Muito Fбcil. й Com Isso Da Para Fazer Vбrias Coisas. Espero Que Tirado Uma Dъvida de Alguem.

Erros Avisar-me. Tou Enferrujado rsrs.
Crйditos: >> Jonathan Feitosa << ( Sumido )

Reply
#2

Up , muito bom velho ^^

First !!
Reply
#3

bom , so que dava pra fazer isso sem comando tambem nй? , tipow coloca as funзoes do comando no OnPlayerKeyStateChange tambem dava , e nem ia precisar de comandos
Reply
#4

Sim,Sim. Mais Assim й Mais Fбcil de Aprender й de Fazer .
Reply
#5

bom mano para min esse foi melhor tutorial mais como e fazia diferente sem comando mais agora vo fazer com comandos
Reply
#6

Por Comando Da Pra Por Vбrios. Nem Da Sу pra Por um. Usando Esses Dois Comandos da pra Colocar Quantos Vocкs Quiserem.
Reply
#7

Nossa mano me ajudou muito tava procurando isso mу tempгo vlw ae fera.
Reply
#8

Por isso Fiz o Tutorial
Reply
#9

ensina ai tbm a fazer portoes apertando "H" ai sim para gang war rsrs
Reply
#10

Basta trocar KEY_SECONDARY_ATTACK por KEY_CROUCH.
Reply
#11

Existe algum site mostrando as cordenadas de entrada e saida dos interiores? Serб que tem? Por causa daqueles padrгo amarelo, pode existir, se existir pode me falar?
Reply
#12

http://weedarr.wikidot.com/interior
Reply
#13

Sabia, fui perguntar ao Shadow ele disse q nгo era --'

@EDIT

E a saida? Eu tenho que fazer manualmente?
Reply
#14

a mesma coisa da entrada, tem que fazer com que o player seja teleportado para interior 0 (:
mais vocк pode fazer como quiser ^^
Reply
#15

Atб entendi, valeu! ♥

@EDIT

Isso aqui nгo entendi, no IsPlayerInRangeOfPoint

pawn Code:
if(IsPlayerInRangeOfPoint(playerid, 2.0, 2695.6880, -1704.6300, 11.8438))
Estб com outra cordenada

Code:
2695.6880, -1704.6300, 11.8438
Nгo entendi isso !! Alguem explica ??

Reply
#16

Coordenada de Entrada e Saida Meu Filho.

Exemplo, Quando Vocк Entra Ele й setado pra um local, quando vocк sai, ele й setado pra outro local.
Reply
#17

belo tuto '-'
Reply
#18

C:\Documents and Settings\Administrador\Desktop\SA-MP SERVER\gamemodes\lvdm.pwn(952) : error 001: expected token: ";", but found "if"
C:\Documents and Settings\Administrador\Desktop\SA-MP SERVER\gamemodes\lvdm.pwn(954) : error 021: symbol already defined: "OnPlayerCommandText"
C:\Documents and Settings\Administrador\Desktop\SA-MP SERVER\gamemodes\lvdm.pwn(955) : error 021: symbol already defined: "OnPlayerCommandText"
C:\Documents and Settings\Administrador\Desktop\SA-MP SERVER\gamemodes\lvdm.pwn(957) : error 054: unmatched closing brace ("}")
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase


4 Errors.


AJUDEM AE PLSS
Reply
#19

Sem codigo nгo da pra ajudar gustavo.
Reply
#20

Acho que jб foi resolvido Pharrel
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)