[Ajuda] Ajuda com Teleportes ???
#1

Aew manolada , й o seguinte ...

Eu criei 10 pickups espalhados em LS que ao digitar um comando ou apertar enter sobre eles , te levam a um ъnico interior ... Oque eu queria que voces me ajudassem era , que quando o player entrasse no interior usando alguma das 10 Pickups , ao usar a pickup que estб dentro do interior que serve para sair , ele voltasse na pickup que ele usou para poder entrar ! O projeto que eu to fazendo й uma FS de farmacias ... O cуdigo ta ai em baixo , e eu deixei ">> TEXTO <<" em 2 lugares que presisam ser modificados , oque eu num seii fazer '-' , que sao as Coords de IDA e de VOLTA ! VO FICA MUUUUUITO FELIZ SE ALGUEM PUDER ME AJUDAR ! TO TRABALHANDO NESSE MEU PRIMEIRO FS A 3 DIAS ! ^_^

pawn Код:
//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
//FS de Farmacias em LS Criado por HeyHoLetsGo (Felipe_Chierice)|
//Esse foi meu primeiro FilterScript, espero que gostem ! ^_^'  |
//Se for usar em seu Server, favor manter os creditos !         |
//Se encontrar algum Bug, relatem pra min no Forum SA-MP!       |
//=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

#include <a_samp>

//=== [Defines Cores] ===
#define COR_VERDE_FLUORESCENTE 0x00F600AA
#define COR_AZULNEUTRO 0xABCDEF01
#define COR_AZUL_PISCINA 0x00FFFFAA
#define COR_VERMELHO 0xFF0000FF
#define COR_VERDE_ABACATE 0xB6FC69FF
#define COR_AMARELO 0xFFFF00AA
#define COR_BRANCO 0xFFFFFFAA
#define COR_CINZA_AZUL 0x456EAF67
#define COR_AZUL 0x0000FFAA
#define COR_AZULMEDIO 0x63AFF00A
#define COR_CINZA 0xAFAFAFAA
#define COR_ROXO 0x9900FFAA
#define COR_VIOLETA 0x9955DEEE
#define COR_MARROM 0x993300AA
#define COR_MARROMCLARO 0x99934EFA
#define COR_LARANJA 0xFF9933AA
#define COR_ROSA_DANONE 0xFF66FFAA
#define COR_AZULCLARO 0x33CCFFAA
#define COR_AMARELOCLARO 0xFFFFCCAA
#define COR_3DLABEL 0xF68E00F6

#define farmacia 1000
#define FILTERSCRIPT

#if defined FILTERSCRIPT

public OnFilterScriptInit()
{
    print("\n-----------------------------------------------------------");
    print(" Farmacias LS v1.0 - BY: HeyHoLetsGo || LIGADO COM SUCESSO!");
    print("-----------------------------------------------------------\n");

    //=-=-=-=-=-=-=-=-=-=[PICKUPS]=-=-=-=-=-=-=-=-=-=
    AddStaticPickup(1241,23,-25.132598,-139.066986,1003.546875); // Saida Farmacia
    AddStaticPickup(1274,23,-21.0467,-138.6313,1003.5469); // Pickup Compra Farmacia
    AddStaticPickup(1241,23,1172.5511,-1323.6270,15.4036); // Entrada Farmacia 1
    AddStaticPickup(1241,23,1325.9927,-1741.3862,13.5469); // Entrada Farmacia 2
    AddStaticPickup(1241,23,2467.0535,-1743.6769,13.5469); // Entrada Farmacia 3
    AddStaticPickup(1241,23,2048.3816,-1091.4099,24.5985); // Entrada Farmacia 4
    AddStaticPickup(1241,23,1641.4440,-1171.5991,24.0781); // Entrada Farmacia 5
    AddStaticPickup(1241,23,1445.2292,-1303.5032,13.5469); // Entrada Farmacia 6
    AddStaticPickup(1241,23,1366.6169,-1383.2607,13.6742); // Entrada Farmacia 7
    AddStaticPickup(1241,23,1057.2535,-1131.3278,23.8281); // Entrada Farmacia 8
    AddStaticPickup(1241,23,370.3190,-1601.5806,31.6027); // Entrada Farmacia 9
    AddStaticPickup(1241,23,2070.6038,-1785.2797,13.5595); // Entrada Farmacia 10
    //=-=-=-=-=-=-=-=-=-=[3DTEXTS]=-=-=-=-=-=-=-=-=-=
    Create3DTextLabel("Farmacia\nF para sair", COR_3DLABEL, -25.132598,-139.066986,1003.546875, 7, 0); // Texto Saida
    Create3DTextLabel("Farmacia\nUse /farmacia", COR_3DLABEL, -21.0467,-138.6313,1003.5469, 7, 0); // Pickup  Compra
    Create3DTextLabel("Farmacia\nF para entrar", COR_3DLABEL, 1172.5511,-1323.6270,15.4036, 7, 0); // Texto Entrada 1
    Create3DTextLabel("Farmacia\nF para entrar", COR_3DLABEL, 1325.9927,-1741.3862,13.5469, 7, 0); // Texto Entrada 2
    Create3DTextLabel("Farmacia\nF para entrar", COR_3DLABEL, 2467.0535,-1743.6769,13.5469, 7, 0); // Texto Entrada 3
    Create3DTextLabel("Farmacia\nF para entrar", COR_3DLABEL, 2048.3816,-1091.4099,24.5985, 7, 0); // Texto Entrada 4
    Create3DTextLabel("Farmacia\nF para entrar", COR_3DLABEL, 1641.4440,-1171.5991,24.0781, 7, 0); // Texto Entrada 5
    Create3DTextLabel("Farmacia\nF para entrar", COR_3DLABEL, 1445.2292,-1303.5032,13.5469, 7, 0); // Texto Entrada 6
    Create3DTextLabel("Farmacia\nF para entrar", COR_3DLABEL, 1366.6169,-1383.2607,13.6742, 7, 0); // Texto Entrada 7
    Create3DTextLabel("Farmacia\nF para entrar", COR_3DLABEL, 1057.2535,-1131.3278,23.8281, 7, 0); // Texto Entrada 8
    Create3DTextLabel("Farmacia\nF para entrar", COR_3DLABEL, 370.3190,-1601.5806,31.6027, 7, 0); // Texto Entrada 9
    Create3DTextLabel("Farmacia\nF para entrar", COR_3DLABEL, 2070.6038,-1785.2797,13.5595, 7, 0); // Texto Entrada 10
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[]) // Comandos
{
    if(strcmp(cmdtext, "/farmacia", true) == 0)
    {
        if(IsPlayerInRangeOfPoint(playerid, 1.0, -21.0467,-138.6313,1003.5469)) // O Player tem que estar nessas coordenadas para acontecer oque estб abaixo
        {
            ShowPlayerDialog(playerid, farmacia, DIALOG_STYLE_LIST, "{FF0000}Farmacia BSL - SELECIONE UM MEDICAMENTO", "{FFFFFF}Band-AID (20 Saъde) - R$20\n{FFFFFF}Remйdio (50 Saъde) - R$50\n{FFFFFF}Kit Mйdico (100 Saъde) - R$100", "Comprar", "Sair");
        }
        else // Se ele nao estiver :
        {
            SendClientMessage(playerid, COR_AMARELO, "[FARMACIA] Vocк nгo estб em nenhuma das farmбcias de Los Santos.");
        }
    }
    if(strcmp(cmdtext, "/entrandointerior", true) == 0) // Comando de entrar (Nao serб usado, й utilizado F para acionб-lo. "Mais Abaixo")
    {
        if(IsPlayerInRangeOfPoint(playerid,2.0,>> AQUI PRESISA TER TODOS OS TELEPORTES ! '-' <<)) // O Player tem que estar nessas coordenadas para acontecer oque estб abaixo
        {
            SetPlayerInterior(playerid, 16); // Setando o interior
            SetPlayerPos(playerid,-25.132598,-139.066986,1003.546875); // Serб teleportado a este local
        }
    }
    if(strcmp(cmdtext, "/sairdointerior", true) == 0) // // Comando de sair (Nao serб usado, й utilizado F para acionб-lo. "Mais Abaixo")
    {
        if(IsPlayerInRangeOfPoint(playerid,1.0,-25.132598,-139.066986,1003.546875)) // O Player tem que estar nessas coordenadas para acontecer oque estб abaixo
        {
            SetPlayerInterior(playerid, 0); // Setando o interior ao Sair
            SetPlayerPos(playerid,>> E AQUI PRA ELE VOLTAR DA POSISAO DE ELE VEIO! :D <<); // Serб teleportado a este local
        }
    }
    return 1; // Returnando a 1 (True)
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) // Callback de chamar Dialogs
{
    if(dialogid == farmacia) // ID da dialog
    {
        if(response)
        {
            if(listitem == 0) // Band-AID
            {
                if(GetPlayerMoney(playerid) < 20)
                {
                    SendClientMessage(playerid, COR_VERMELHO,"[FARMACIA] Vocк precisa de R$20 para comprar o Band-AID.");
                }
                if(GetPlayerMoney(playerid) >= 20)
                {
                    new Float:health;
                    SendClientMessage(playerid, COR_AMARELO,"[FARMACIA] Vocк comprou um Band-AID e recuperou 20 de Saъde.");
                    GetPlayerHealth(playerid, health);
                    SetPlayerHealth(playerid, health+20); // Irб acrescentar 20 de vida ao player
                    PlayerPlaySound(playerid,1054,0.0,0.0,0.0); // Som que irб fazer na hora que comprar a bebida
                    GivePlayerMoney(playerid, -20); // Irб gastar R$20 do player
                }
            }
            if(listitem == 1) // Remйdio
            {
                if(GetPlayerMoney(playerid) < 50)
                {
                    SendClientMessage(playerid, COR_VERMELHO,"[FARMACIA] Vocк precisa de R$50 para comprar o Remйdio.");
                }
                if(GetPlayerMoney(playerid) >= 50)
                {
                    new Float:health;
                    SendClientMessage(playerid, COR_AMARELO,"[FARMACIA] Vocк comprou uma Remйdio e curou 50 de Saъde.");
                    GetPlayerHealth(playerid, health);
                    SetPlayerHealth(playerid, health+50); // Irб acrescentar 50 de vida ao player
                    PlayerPlaySound(playerid,1054,0.0,0.0,0.0); // Som que irб fazer na hora que comprar a bebida
                    GivePlayerMoney(playerid, -50); // Irб gastar R$50 do player
                }
            }
            if(listitem == 2) // Kit Mйdico
            {
                if(GetPlayerMoney(playerid) < 100)
                {
                    SendClientMessage(playerid, COR_VERMELHO,"[FARMACIA] Vocк precisa de R$100 para comprar o Kit Mйdico.");
                }
                if(GetPlayerMoney(playerid) >= 100)
                {
                    new Float:health;
                    SendClientMessage(playerid, COR_AMARELO,"[FARMACIA] Vocк comprou um Kit Mйdico e curou toda sua vida.");
                    GetPlayerHealth(playerid, health);
                    SetPlayerHealth(playerid, health+100); // Irб acrescentar 100 de vida ao player
                    PlayerPlaySound(playerid,1054,0.0,0.0,0.0); // Som que irб fazer na hora que comprar a bebida
                    GivePlayerMoney(playerid, -100); // Irб gastar R$100 do player
                }
            }
            else
            {
           
            }
        }
    }
    return 0;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    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.
    }
}
#endif
Reply
#2

Alguem ajuda aeew Por Favoor !
Reply
#3

Esse que й o problema de criar tudo em fs, deve ter um monte de OnPlayerPickUpPickup nos fs, e nem sequer vocк adicionou um neste ae.
Reply
#4

Nunca fiz algo do gкnero, talvez esteja certo mais provбvel que nгo

pawn Код:
new Float:VoltarX[MAX_PLAYERS], Float:VoltarY[MAX_PLAYERS], Float:VoltarZ[MAX_PLAYERS];
    if(strcmp(cmdtext, "/entrandointerior", true) == 0)
    {
        GetPlayerPos(playerid, VoltarX[playerid], VoltarY[playerid], VoltarZ[playerid]);
        if(IsPlayerInRangeOfPoint(playerid,2.0,>> AQUI PRESISA TER TODOS OS TELEPORTES ! '-' <<))
        {
            SetPlayerInterior(playerid, 16);
            SetPlayerPos(playerid,-25.132598,-139.066986,1003.546875);
        }
    }
    if(strcmp(cmdtext, "/sairdointerior", true) == 0)
    {
        if(IsPlayerInRangeOfPoint(playerid,1.0,-25.132598,-139.066986,1003.546875))
        {
            SetPlayerInterior(playerid, 0);
            SetPlayerPos(playerid,VoltarX[playerid],VoltarY[playerid], VoltarZ[playerid]);
        }
    }
Reply
#5

Quote:
Originally Posted by CaioMiglioli
Посмотреть сообщение
Nunca fiz algo do gкnero, talvez esteja certo mais provбvel que nгo

pawn Код:
new Float:VoltarX[MAX_PLAYERS], Float:VoltarY[MAX_PLAYERS], Float:VoltarZ[MAX_PLAYERS];
    if(strcmp(cmdtext, "/entrandointerior", true) == 0)
    {
        GetPlayerPos(playerid, VoltarX[playerid], VoltarY[playerid], VoltarZ[playerid]);
        if(IsPlayerInRangeOfPoint(playerid,2.0,>> AQUI PRESISA TER TODOS OS TELEPORTES ! '-' <<))
        {
            SetPlayerInterior(playerid, 16);
            SetPlayerPos(playerid,-25.132598,-139.066986,1003.546875);
        }
    }
    if(strcmp(cmdtext, "/sairdointerior", true) == 0)
    {
        if(IsPlayerInRangeOfPoint(playerid,1.0,-25.132598,-139.066986,1003.546875))
        {
            SetPlayerInterior(playerid, 0);
            SetPlayerPos(playerid,VoltarX[playerid],VoltarY[playerid], VoltarZ[playerid]);
        }
    }
Uma float fora do comando
Reply
#6

Quote:
Originally Posted by Gleisson_.
Посмотреть сообщение
Uma float fora do comando
assim tб melhor?
pawn Код:
new STR[3][250];
    if(strcmp(cmdtext, "/entrandointerior", true) == 0)
    {
        new Float:VoltarX, Float:VoltarY, Float:VoltarZ;
        GetPlayerPos(playerid, VoltarX, VoltarY, VoltarZ);
        format(STR[0], 250, "%d",VoltarX);
        format(STR[1], 250, "%d",VoltarY);
        format(STR[2], 250, "%d",VoltarZ);
        if(IsPlayerInRangeOfPoint(playerid,2.0,>> AQUI PRESISA TER TODOS OS TELEPORTES ! '-' <<))
        {
            SetPlayerInterior(playerid, 16);
            SetPlayerPos(playerid,-25.132598,-139.066986,1003.546875);
        }
    }
    if(strcmp(cmdtext, "/sairdointerior", true) == 0)
    {
        if(IsPlayerInRangeOfPoint(playerid,1.0,-25.132598,-139.066986,1003.546875))
        {
            SetPlayerInterior(playerid, 0);
            SetPlayerPos(playerid,STR[0],STR[1], STR[2]);
        }
    }
Reply
#7

Quote:
Originally Posted by CaioMiglioli
Посмотреть сообщение
assim tб melhor?
pawn Код:
new STR[3][250];
    if(strcmp(cmdtext, "/entrandointerior", true) == 0)
    {
        new Float:VoltarX, Float:VoltarY, Float:VoltarZ;
        GetPlayerPos(playerid, VoltarX, VoltarY, VoltarZ);
        format(STR[0], 250, "%d",VoltarX);
        format(STR[1], 250, "%d",VoltarY);
        format(STR[2], 250, "%d",VoltarZ);
        if(IsPlayerInRangeOfPoint(playerid,2.0,>> AQUI PRESISA TER TODOS OS TELEPORTES ! '-' <<))
        {
            SetPlayerInterior(playerid, 16);
            SetPlayerPos(playerid,-25.132598,-139.066986,1003.546875);
        }
    }
    if(strcmp(cmdtext, "/sairdointerior", true) == 0)
    {
        if(IsPlayerInRangeOfPoint(playerid,1.0,-25.132598,-139.066986,1003.546875))
        {
            SetPlayerInterior(playerid, 0);
            SetPlayerPos(playerid,STR[0],STR[1], STR[2]);
        }
    }
que gasto de strings atoa hein e ainda mais 250 haa
Reply
#8

Quote:
Originally Posted by Gleisson_.
Посмотреть сообщение
Esse que й o problema de criar tudo em fs, deve ter um monte de OnPlayerPickUpPickup nos fs, e nem sequer vocк adicionou um neste ae.
Mais , eu nao usei nenhuma OnPlayerPickUpPickup ! Sу OnPlayerCommandText ! Qe quando o player dб certo comando em tбl coordenadas , que sao as mesmas onde tem as Pickups criadas , ele teleporta pro interior ! Ai coloquei tambem que o comando por ser feito assim qe pressionar F/Enter .. (:
Reply
#9

Ta , blza ... Coloquei aquela new no topo da FS , e coloquei esse codigo que voce fez , mas deu um erro ! Olha :

pawn Код:
C:\Documents and Settings\Kieryce\Desktop\Nova pasta\filterscripts\BACKUP FarmaciaTOLP.pwn(105) : error 035: argument type mismatch (argument 2)
Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase


1 Error.
O codigo :
pawn Код:
if(strcmp(cmdtext, "/entrandointerior", true) == 0)
    {
        new Float:VoltarX, Float:VoltarY, Float:VoltarZ;
        GetPlayerPos(playerid, VoltarX, VoltarY, VoltarZ);
        format(STR[0], 250, "%d",VoltarX);
        format(STR[1], 250, "%d",VoltarY);
        format(STR[2], 250, "%d",VoltarZ);
        if(IsPlayerInRangeOfPoint(playerid,2.0,1172.5511,-1323.6270,15.4036))
        {
            SetPlayerInterior(playerid, 16);
            SetPlayerPos(playerid,-25.132598,-139.066986,1003.546875);
        }
    }
    if(strcmp(cmdtext, "/sairdointerior", true) == 0)
    {
        if(IsPlayerInRangeOfPoint(playerid,1.0,-25.132598,-139.066986,1003.546875))
        {
            SetPlayerInterior(playerid, 0);
            SetPlayerPos(playerid,STR[0],STR[1],STR[2]);
        }
    }
Linha do ERRO:
pawn Код:
SetPlayerPos(playerid,STR[0],STR[1],STR[2]);

Podem ver se da pra resolver isso ae pra mim ? Vllws .
Reply
#10

Manda a linha 105
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)