SA-MP Forums Archive
[Tutorial] Teleportes por comando e por teclas. - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+----- Forum: Lançamentos/Releases (https://sampforum.blast.hk/forumdisplay.php?fid=56)
+----- Thread: [Tutorial] Teleportes por comando e por teclas. (/showthread.php?tid=403272)



Teleportes por comando e por teclas. - Duduloch - 29.12.2012

Olб pessoal! Estou aqui hoje, fazendo meu primeiro tutorial pro fуrum SAMP. E estarei fazendo um tutorial sobre como setar um player a um interior por comando e por tecla pressionada.

Sumбrio:

1. Escolhendo o interior
2. Pegando coordenadas
3. Pegando o id do interior
4. Criando comando de entrar
5. Criando comando de sair
6. Criando uma pickup!
7. Usando OnPlayerKeyStateChange
8. Finalizaзгo
9. Crйditos

1. Escolhendo o interior.
Bom pessoal, para comeзar teremos que escolher o interior que queremos... Para isso precisaremos acessar o seguinte site: http://weedarr.wikidot.com/interior. E escolher o interior, para o tutorial eu escolherei a LSPD.

2. Pegando as coordenadas.
Primeiramente solicito que abra o bloco de notas para salvar as 3 coisas!

Continuando no site, apуs escolher o interior vocк precisa selecionar a coordenada.. Coordenada й aqueles nъmeros antes das fotos! Eu como irei utilizar a LSPD minhas coordenadas serгo: 246.783996,63.900199,1003.640625. Esses nъmeros chamados coordenadas servirгo para definir o local em que o player serб mandado depois que digitar o comando! Apуs pegar essa coordenada, vocк terб de entrar em um servidor qualquer de samp, ou entгo abrir o samp DEBUG, mas como fazer isso? Entre em:
PHP код:
Meu Computador/Disco Local C/Arquivos de programas/RockstarGames/GTA San Andreas 
e selecionar o programa SA-MP Debug. Apуs fazer isso, abrirб uma janela com duas opзхes, vocк clicarб em Local Host. Feito isso, vocк irб ser mandado para dentro do jogo. Jб dentro do jogo, vocк irб atй o local em que vocк quer que seja a entrada do interior, ou seja, onde vocк quer que o comando funcione, (para facilitar o deslocamento dentro do jogo, digite /v 522). Chegando lб, vocк digitarб "/save" (sem as aspas), daн jб pode fechar o jogo. Apуs isso vб atй: Meus Documentos/GTA San Andreas User Files/SAMP e abrir o arquivo "SavePositions". Lб terб uma segunda coordenada salva, esse й o local em que vocк digitou /save.


3. Pegando o id do interior.
Essa й uma das partes mais importante, se nгo a mais! Ainda no site pegaremos o nъmero antes das coordenadas, que й o id do interior, no meu caso: 6. Citei que essa parte й importante pelo fato de esse ser o nъmero "chave", ele que separa o "mundo lб fora" com o interior, se vocк nгo setar o interior correto no comando, vocк ficarб com a famosa "tela branca" em que nгo se enxerga nada! Explicarei depois como usar esse ID.

4. Criando o comando de entrar
Eba! Chegou a melhor parte do tuto! Criar o comando . Bem, vamos lб. Vamos abrir o pawno, clicar em Open, e abrir seu Game Mode, agora apertaremos F3 e procuraremos por:
pawn Код:
public OnPlayerCommandText
Essa serб a callback em que iremos trabalhar nosso comando! Vamos comeзar logo apos a abertura da primeira chave. Por exemplo:
pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    //Comeзaremos aqui
Vamos ao code e a explicaзгo:
pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/entrarDP", cmdtext, true) == 0)
    {
        if (IsPlayerInRangeOfPoint(playerid, 2.0, 1554.4293,-1675.7588,16.1953)) // No lugar desses numeros:         1554.4293,-1675.7588,16.1953 vocк irб mudar pela coordenada que vocк pegou ao digitar /save (a segunda coordenada que vocк pegou) e colocarб ali. Explicaзгo do code: Alн estб verificando se o player estб a uma distвncia mбxima de 2.0 da coordenada 1554.4293,-1675.7588,16.1953.
        {//Se ele estiver dentro desse raio irб acontecer oque estiver dentro dessas chaves, ou seja, o teleporte do player.
             SetPlayerPos(playerid, 246.783996,63.900199,1003.640625); // 246.783996,63.900199,1003.640625 й a coordenada de dentro da DP. Ou sejб, SetPlayerPos estarб setando a posiзгo do playerid. Vocк terб que mudar esses nъmeros de acordo com os que vocк pegou no site.
             SetPlayerInterior(playerid, 6); //Aqui estaremos usando o nъmero em que eu considerei "o numero chave" 6 й igual ao numero do interior, vocк mudarб ele pelo numero que vocк pegou no site!
        }//Fecharб a funзгo
        else
        { // Se o player nгo estiver dentro da coordenada o code que estб dentro dessa chave serб chamado.
             SendClientMessage(playerid, -1, "Vocк nгo estб na entrada da DP para entrar!"); // Aqui estarб enviando uma mensagem pro player caso ele nгo estiver na coordenada do IsPlayerInRangeOfPoint.
        } // Fechando a funзгo. Caso nгo queira que mande alguma coisa quando o player nгo estiver na entrada, sу apague o else atй essa ultima chave!
    }//Fechando comando
Comando de entrar criado


5. Criando o comando de sair
Agora iremos criar o comando de sair do interior, mas nгo se assuste, й bem mais simples do que o de entrar.
Comeзaremos em baixo da chave:
pawn Код:
}//Fechando comando
pawn Код:
//Basta vocк copiar todo o comando e colar ele em baixo, e fazer algumas substituiзхes.
    if (strcmp("/sairDP", cmdtext, true) == 0) //Mude o comando que estб entre as aspas.
    {
        if (IsPlayerInRangeOfPoint(playerid, 2.0, 246.783996,63.900199,1003.640625)) // Aqui agora vocк irб inverter as coordenadas, ou seja, irб botar agora as coordenadas de dentro aqui no IsPlayerInRangeOfPoint, apenas copie as coordenadas do SetPlayerPos do seu comando de entrar e substitua aqui em cima.
        {
             SetPlayerPos(playerid, 1554.4293,-1675.7588,16.1953); // O mesmo com aqui! Vocк pegarб as coordenadas do seu comando de entrar do IsPlayerInRangeOfPoint e colarб aqui!
             SetPlayerInterior(playerid, 6); //Agora vocк irб mudar o numero do seu interior para 0. Para nгo ficar branco. O interior do "mundo aberto" й sempre 0.
        }
        else
        { // Se o player nгo estiver dentro da coordenada o code que estб dentro dessa chave serб chamado.
             SendClientMessage(playerid, -1, "Vocк nгo estб na saida da DP para sair!"); // Aqui estarб enviando uma mensagem pro player caso ele nгo estiver na coordenada do IsPlayerInRangeOfPoint.
        } // Fechando a funзгo. Caso nгo queira que mande alguma coisa quando o player nгo estiver na entrada, sу apague o else atй essa ultima chave!
    }//Fechando comando
} //Caso tenha mais comandos para baixo tire essa chave. Senгo darб erros no seu GM.
Prontinho! Falei que seria fбcil criar o comando de sair . A partir daqui os comandos jб estгo funcionando!


6. Criando uma pickup
Essa parte й bem simples! Procure por: OnGameModeInt. Dentro dessa callback vocк irб colocar o seguinte:
pawn Код:
CreatePickup(1318, 1, 1554.4293,-1675.7588,16.1953, -1); // Os numeros: 1554.4293,-1675.7588,16.1953 vocк irб substituir pelas coordenadas da sua entrada!


7. Usando OnPlayerKeyStateChange
Bem, primeiramente irei dar uma breve sobre oque essa callback faz:
Ela tem uma super-utilidade que й dar o conforto de vocк usar um comando sem precisar digitar, com um simples toque de um tecla . Vamos ao comando!
Procure por OnPlayerKeyStateChange.
Dentro das chaves ponha:

pawn Код:
if ((newkeys==KEY_SECONDARY_ATTACK))
    {
          OnPlayerCommandText(playerid,"/entrar"); //mude o "/entrar" pelo comando que vocк escolheu lб no seu comando de entrar. Mantenha as " ".
          OnPlayerCommandText(playerid,"/sair");  //Mude o /sair tambйm.
    }
Prontinho!!
Agora se vocк estiver numa distancia de 2.0 da entrada/saida e apertar F ou Enter o comando funcionarб!


8. Finzalizaзгo
Bem, como vocкs puderam ver, foi um tuto simples, sei que 90% de vocкs sabem sobre oquк eu expliquei, mas ainda a muitos que nгo sabem.. Bem, qual o motivo de eu fazer esse tuto? Simplesmente por quк aqui em casa estб um tйdio total e to sem nada pra fazer rsrs. Espero ter ajudado e esclarecido eventuais dъvidas.. Qualquer nova dъvida, critica ou sugestгo sу deixar nos comentбrios! Abraзos para todos vocкs!

9. Crйditos

Tutorial: DuduLoch
Organizaзгo do tutorial: DuduLoch.



Re: Teleportes por comando e por teclas. - LeMoi - 29.12.2012

Legal


Re: Teleportes por comando e por teclas. - Duduloch - 29.12.2012

Quote:
Originally Posted by TiTaNic
Посмотреть сообщение
Legal
Ty my friend '


Re: Teleportes por comando e por teclas. - Sky™ - 29.12.2012

there patience to create tutorials

god job -.-


Re: Teleportes por comando e por teclas. - Duduloch - 29.12.2012

Quote:
Originally Posted by Sky_.
Посмотреть сообщение
there patience to create tutorials

god job -.-
@Off Deus trabalho! rsrs

Obrigado pelo comment


Re: Teleportes por comando e por teclas. - mau.tito - 29.12.2012

Ta bom , mas a font e grande de mais diminua um pouco pf.


Re: Teleportes por comando e por teclas. - Schocc - 29.12.2012

Quote:
Originally Posted by mau.tito
Посмотреть сообщение
Ta bom , mas a font e grande de mais diminua um pouco pf.
І ..


Re: Teleportes por comando e por teclas. - Don_Speed - 29.12.2012

Quote:
Originally Posted by mau.tito
Посмотреть сообщение
Ta bom , mas a font e grande de mais diminua um pouco pf.
і...



Re: Teleportes por comando e por teclas. - Duduloch - 29.12.2012

Quote:
Originally Posted by mau.tito
Посмотреть сообщение
Ta bom , mas a font e grande de mais diminua um pouco pf.
Quote:
Originally Posted by Schocc
Посмотреть сообщение
І ..
Quote:
Originally Posted by Don_Speed
Посмотреть сообщение


і...
Okay Okay '-'


Respuesta: Teleportes por comando e por teclas. - [NVC]iTrevaS - 29.12.2012

Muito bom (: