SA-MP Forums Archive
[Ajuda] Coisa simples com comando e uma funзгo - 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)
+---- Thread: [Ajuda] Coisa simples com comando e uma funзгo (/showthread.php?tid=472025)



Coisa simples com comando e uma funзгo - JhoWL - 26.10.2013

Criei um teleporte, mais quando o player estivesse com LIFE baixo ele nгo poderia se teleportar..
mais nгo estou conseguindo, concerteza fiz algo errado, no mesmo jeito ele se teleporta.
Comando:
pawn Код:
if(strcmp(cmdtext,"/sf", true) == 0){
if(SemLife(playerid)) return SendClientMessage(playerid, -1, "Vocк nгo pode se teleporta com vida baixa");
{
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
SetVehiclePos(GetPlayerVehicleID(playerid),-2006.3324,146.2305,27.5391);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
GetPlayerName(playerid, pName, sizeof(pName));
format(string, sizeof(string), ">> %s Foi para SAN FIERRO [ /SF ]", pName);
SendClientMessageToAll(-1, string);
SetPlayerPos(playerid,-2042.2521,136.4568,28.8359);
}
return 1;
}
pawn Код:
stock SemLife(playerid)
{
new Float:HP;
GetPlayerHealth(playerid, HP);
if(HP < 40) return 1;
return 0;
}



Re: Coisa simples com comando e uma funзгo - tonisantolia - 26.10.2013

Tente:
pawn Код:
if(strcmp(cmdtext,"/sf", true) == 0){
    if(GetPlayerHealth(playerid) < 40) return SendClientMessage(playerid, -1, "Vocк nгo pode se teleporta com vida baixa");
    SetPlayerInterior(playerid, 0);
    SetPlayerVirtualWorld(playerid, 0);
    SetVehiclePos(GetPlayerVehicleID(playerid),-2006.3324,146.2305,27.5391);
    SetPlayerInterior(playerid, 0);
    SetPlayerVirtualWorld(playerid, 0);
    GetPlayerName(playerid, pName, sizeof(pName));
    format(string, sizeof(string), ">> %s Foi para SAN FIERRO [ /SF ]", pName);
    SendClientMessageToAll(-1, string);
    SetPlayerPos(playerid,-2042.2521,136.4568,28.8359);
    return 1;
}
Se o player estiver com HP abaixo de 40 nгo irб se teleportar ..

Desculpa se o script nгo funcionar, estou um tempo sem mexer em pawn.


Re: Coisa simples com comando e uma funзгo - JhoWL - 26.10.2013

Quote:
Originally Posted by tonisantolia
Посмотреть сообщение
Tente:
pawn Код:
if(strcmp(cmdtext,"/sf", true) == 0){
    if(GetPlayerHealth(playerid) < 40) return SendClientMessage(playerid, -1, "Vocк nгo pode se teleporta com vida baixa");
    SetPlayerInterior(playerid, 0);
    SetPlayerVirtualWorld(playerid, 0);
    SetVehiclePos(GetPlayerVehicleID(playerid),-2006.3324,146.2305,27.5391);
    SetPlayerInterior(playerid, 0);
    SetPlayerVirtualWorld(playerid, 0);
    GetPlayerName(playerid, pName, sizeof(pName));
    format(string, sizeof(string), ">> %s Foi para SAN FIERRO [ /SF ]", pName);
    SendClientMessageToAll(-1, string);
    SetPlayerPos(playerid,-2042.2521,136.4568,28.8359);
    return 1;
}
Se o player estiver com HP abaixo de 40 nгo irб se teleportar ..

Desculpa se o script nгo funcionar, estou um tempo sem mexer em pawn.
nгo funcionou , usei o cmd com 100% de life, e nгo teleportou.
Apenas apareceu a msg, com unknow command.

pawn Код:
if(GetPlayerHealth(playerid) < 50) return SendClientMessage(playerid, -1, "Vocк nгo pode se teleporta com vida baixa");
Coloquei isso nos teles, e deu warning em todas as linhas que adicione estб funзгo


CMD:
pawn Код:
if(strcmp(cmdtext,"/sf", true) == 0){
if(GetPlayerHealth(playerid) < 50) return SendClientMessage(playerid, -1, "Vocк nгo pode se teleporta com vida baixa");
SetVehiclePos(GetPlayerVehicleID(playerid),-2006.3324,146.2305,27.5391);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
GetPlayerName(playerid, pName, sizeof(pName));
format(string, sizeof(string), ">> %s Foi para SAN FIERRO [ /SF ]", pName);
SendClientMessageToAll(-1, string);
SetPlayerPos(playerid,-2042.2521,136.4568,28.8359);
return 1;
}



Re: Coisa simples com comando e uma funзгo - arakuta - 26.10.2013

Por que a funзгo GetPlayerHealth passa a vida por referкncia, nгo por return.

Seria interessante que vocк lesse sobre a funзгo que estб a utilizar.

https://sampwiki.blast.hk/wiki/GetPlayerHealth


Re: Coisa simples com comando e uma funзгo - Klions - 26.10.2013

Tente:
pawn Код:
if(strcmp("/sf", cmdtext, true, 10) == 0)
    if(GetPlayerHealth(playerid) < 50)
    {
        SendClientMessage(playerid, -1, "Vocк nгo pode se teleporta com vida baixa");
    }else{
        SetPlayerInterior(playerid, 0);
        SetPlayerVirtualWorld(playerid, 0);
        SetVehiclePos(GetPlayerVehicleID(playerid),-2006.3324,146.2305,27.5391);
        SetPlayerInterior(playerid, 0);
        SetPlayerVirtualWorld(playerid, 0);
        GetPlayerName(playerid, pName, sizeof(pName));
        format(string, sizeof(string), ">> %s Foi para SAN FIERRO [ /SF ]", pName);
        SendClientMessageToAll(-1, string);
        SetPlayerPos(playerid,-2042.2521,136.4568,28.8359);
    }
    return 1;
}



Re: Coisa simples com comando e uma funзгo - andreasbleck - 26.10.2013

Sempre й bom indentar o code

Tenta assim:
pawn Код:
if(!strcmp(cmdtext, "/sf", true))
{
    switch(SemVida(playerid, 40))
    {
        case 0:
        {
            switch(IsPlayerInAnyVehicle(playerid))
            {
                case 0:
                {
                    SetPlayerInterior(playerid, 0);
                    SetPlayerVirtualWorld(playerid, 0);
                    SetPlayerPos(playerid, -2042.2521, 136.4568, 28.8359);
                }
                case 1:
                {
                    new vehicleid = GetPlayerVehicleID(playerid);
                    LinkVehicleToInterior(vehicleid, 0);
                    SetVehicleVirtualWorld(vehicleid, 0);
                    SetVehiclePos(vehicleid, -2006.3324, 146.2305, 27.5391);
                }
            }
            new string[64];
            GetPlayerName(playerid, string, sizeof(string));
            format(string, sizeof(string), ">> %s Foi para SAN FIERRO [ /SF ]", string);
            SendClientMessageToAll(-1, string);
        }
        case 1: return SendClientMessage(playerid, -1, "Vocк nгo pode se teleportar com vida baixa");
    }
    return 1;
}
pawn Код:
stock SemVida(playerid, health)
{
    new Float:tmphealth;
    GetPlayerHealth(playerid, tmphealth);
    if(tmphealth < health) return 1;
    return 0;
}



Re: Coisa simples com comando e uma funзгo - PT - 26.10.2013

Quote:
Originally Posted by andreasbleck
Посмотреть сообщение
Sempre й bom indentar o code

Tenta assim:
pawn Код:
if(!strcmp(cmdtext, "/sf", true))
{
    if(SemLife(playerid)) return SendClientMessage(playerid, -1, "Vocк nгo pode se teleporta com vida baixa");
    else
    {
        SetPlayerInterior(playerid, 0);
        SetPlayerVirtualWorld(playerid, 0);
        SetVehiclePos(GetPlayerVehicleID(playerid), -2006.3324, 146.2305, 27.5391);
        SetPlayerInterior(playerid, 0);
        SetPlayerVirtualWorld(playerid, 0);
        new pName[25];
        GetPlayerName(playerid, pName, sizeof(pName));
        format(string, sizeof(string), ">> %s Foi para SAN FIERRO [ /SF ]", pName);
        SendClientMessageToAll(-1, string);
        SetPlayerPos(playerid, -2042.2521, 136.4568, 28.8359);
    }
    return 1;
}
que isso cara, ta errado essa logica.

vc deveria primeiro vereficar se o player ta em veiculo ou nao e se sim setar a posicao do carro em 1 local X

se nao tiver em carro, setar so o player nas cordenadas X

repara isso ae.


Re: Coisa simples com comando e uma funзгo - andreasbleck - 26.10.2013

Quote:
Originally Posted by PT
Посмотреть сообщение
que isso cara, ta errado essa logica.

vc deveria primeiro vereficar se o player ta em veiculo ou nao e se sim setar a posicao do carro em 1 local X

se nao tiver em carro, setar so o player nas cordenadas X

repara isso ae.
Nem tinha visto que tinha funзгo de veiculo, vo arrumar.

Quote:

This forum requires that you wait 240 seconds between posts. Please try again in 50 seconds.

EDIT: Pronto, vк agora.


Re: Coisa simples com comando e uma funзгo - Jhonni - 26.10.2013

pawn Код:
if(strcmp(cmdtext,"/sf", true) == 0)
if(SemVida(playerid)) return SendClientMessage(playerid, -1, "Vocк nгo pode se teleporta com vida baixa");
else{
GetPlayerName(playerid, pName, sizeof(pName));
format(string, sizeof(string), ">> %s foi para SAN FIERRO [ /SF ] ", pName);
SendClientMessageToAll(-1, string);
SetPlayerInterior(playerid,0);
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER){
SetVehiclePos(GetPlayerVehicleID(playerid),-2006.3324,146.2305,27.5391);
SetVehicleZAngle(GetPlayerVehicleID(playerid),87.9631);}else{
SetPlayerPos(playerid,-2042.2521,136.4568,28.8359);SetCameraBehindPlayer(playerid);
SetPlayerFacingAngle(playerid,87.9631);
SetCameraBehindPlayer(playerid);
}
return 1;
}