Congelar ao entrar no interior
#1

Eai galera do sa-mp forum, serб que tem como algume me ajudar a congelar um player por 5 segundos quando ele usar os seguintes comandos:

/entrar
PHP код:
CMD:entrar(playeridparams[])
{
    static
        
id = -1;
        
    if (
IsPlayerInRangeOfPoint(playerid2.5, -204.5334, -1735.3131675.7687) && PlayerData[playerid][pHospitalInt] != -1)
    {
        
SetPlayerPos(playeridarrHospitalSpawns[PlayerData[playerid][pHospitalInt]][0], arrHospitalSpawns[PlayerData[playerid][pHospitalInt]][1], arrHospitalSpawns[PlayerData[playerid][pHospitalInt]][2]);
        
SetPlayerFacingAngle(playeridarrHospitalSpawns[PlayerData[playerid][pHospitalInt]][3]);
        
SetPlayerInterior(playerid0);
        
SetPlayerVirtualWorld(playerid0);
        
SetCameraBehindPlayer(playerid);
        
PlayerData[playerid][pHospitalInt] = -1;
    }
    else if (
IsPlayerInRangeOfPoint(playerid2.51797.4436, -1578.935314.0853))
    {
        
SetPlayerPosEx(playerid1206.8619, -1314.3546797.0880);
        
SetPlayerFacingAngle(playerid270.0000);
        
SetPlayerInterior(playerid5);
        
SetPlayerVirtualWorld(playeridPRISON_WORLD);
        
SetCameraBehindPlayer(playerid);
    }
    else if (
IsPlayerInRangeOfPoint(playerid2.51211.1923, -1354.3439796.7456) && GetPlayerVirtualWorld(playerid) == PRISON_WORLD)
    {
        
SetPlayerPos(playerid1772.5142, -1548.55739.9133);
        
SetPlayerFacingAngle(playerid180.0000);
        
SetPlayerInterior(playerid0);
        
SetPlayerVirtualWorld(playerid0);
        
SetCameraBehindPlayer(playerid);
    }
    for (new 
0sizeof(arrHospitalSpawns); ++) if (IsPlayerInRangeOfPoint(playerid3.0arrHospitalSpawns[i][0], arrHospitalSpawns[i][1], arrHospitalSpawns[i][2]))
    {
        
SetPlayerPos(playerid, -204.5648, -1736.1201675.7687);
        
SetPlayerFacingAngle(playerid180.0000);
        
SetPlayerInterior(playerid3);
        
SetPlayerVirtualWorld(playerid5000);
        
SetCameraBehindPlayer(playerid);
        
PlayerData[playerid][pHospitalInt] = i;
        return 
1;
    }
    if ((
id House_Nearest(playerid)) != -1)
    {
        if (
HouseData[id][houseLocked])
            return 
SendErrorMessage(playerid"Vocк nгo pode entrar em uma casa trancada.");
        
SetPlayerPos(playeridHouseData[id][houseInt][0], HouseData[id][houseInt][1], HouseData[id][houseInt][2]);
        
SetPlayerFacingAngle(playeridHouseData[id][houseInt][3]);
        
SetPlayerInterior(playeridHouseData[id][houseInterior]);
        
SetPlayerVirtualWorld(playeridHouseData[id][houseID] + 5000);
        
SetCameraBehindPlayer(playerid);
        
PlayerData[playerid][pHouse] = HouseData[id][houseID];
        return 
1;
    }
    if ((
id Business_Nearest(playerid)) != -1)
    {
        if (
BusinessData[id][bizLocked])
            return 
SendErrorMessage(playerid"Este negуcio estб fechado pelo proprietбrio.");
            
        if (
PlayerData[playerid][pTask] && !PlayerData[playerid][pStoreTask])
        {
            
PlayerData[playerid][pStoreTask] = 1;
            
Dialog_Show(playeridShowOnlyDIALOG_STYLE_MSGBOX"24/7""Este negуcio й uma loja de varejo. Vocк pode comprar muitos itens usando o comando /comprar.\nHб muitas coisas ъteis que vocк pode comprar aqui, que sгo adicionados ao seu inventбrio.\n\nO item mais ъtil й o sistema GPS, como este dispositivo permite-lhe encontrar o que vocк precisa.\nVocк pode deixar este negуcio a qualquer momento pressionando a tecla 'F' na porta.""Fechar""");
            if (
IsTaskCompleted(playerid))
            {
                
PlayerData[playerid][pTask] = 0;
                
ShowPlayerFooter(playerid"Vocк tem ~g~Concluido~w~ todas as suas tarefas!");
            }
        }
        
SetPlayerPos(playeridBusinessData[id][bizInt][0], BusinessData[id][bizInt][1], BusinessData[id][bizInt][2]);
        
SetPlayerFacingAngle(playeridBusinessData[id][bizInt][3]);
        
SetPlayerInterior(playeridBusinessData[id][bizInterior]);
        
SetPlayerVirtualWorld(playeridBusinessData[id][bizID] + 6000);
        
SetCameraBehindPlayer(playerid);
        
PlayerData[playerid][pBusiness] = BusinessData[id][bizID];
        if (
strlen(BusinessData[id][bizMessage]) && strcmp(BusinessData[id][bizMessage], "NULL"true)) {
            
SendClientMessage(playeridCOLOR_DARKBLUEBusinessData[id][bizMessage]);
        }
        return 
1;
    }
    if ((
id Entrance_Nearest(playerid)) != -1)
    {
        if (
EntranceData[id][entranceLocked])
            return 
SendErrorMessage(playerid"Esta entrada estб bloqueada no momento.");
        if (
PlayerData[playerid][pTask])
        {
            if (
EntranceData[id][entranceType] == && !PlayerData[playerid][pBankTask])
            {
                
PlayerData[playerid][pBankTask] = 1;
                
Dialog_Show(playeridShowOnlyDIALOG_STYLE_MSGBOX"Banco""Este й um dos bancos de San Andreas. Vocк pode gerenciar suas contas bancбrias aqui.\nCada jogador tem uma conta bancбria padrгo e uma conta poupanзa para fundos extra.\n\nVocк pode digitar /banco dentro deste edifнcio para gerenciar tanto as suas contas bancбrias.\nSe vocк estiver perto de uma mбquina ATM, vocк pode usar o comando /atm para as suas necessidades bancбrias.""Fechar""");
                if (
IsTaskCompleted(playerid))
                {
                    
PlayerData[playerid][pTask] = 0;
                    
ShowPlayerFooter(playerid"Vocк tem ~g~concluido~w~ todas as suas tarefas!");
                }
            }
            else if (
EntranceData[id][entranceType] == && !PlayerData[playerid][pTestTask])
            {
                
PlayerData[playerid][pTestTask] = 1;
                
Dialog_Show(playeridShowOnlyDIALOG_STYLE_MSGBOX"DMV""O DMV й o lugar onde um jogador pode tentar o exame de conduзгo para obter sua licenзa.\nVocк deve evitar bater em obstбculos, danificar o veнculo ou excesso de velocidade durante o teste.\n\nЙ legalmente obrigados a possuir uma licenзa de conduзгo para conduzir em San Andreas.\nDirigir sem licenзa pode resultar em vбrias conseqькncias de aplicaзгo da lei.""Fechar""");
                if (
IsTaskCompleted(playerid))
                {
                    
PlayerData[playerid][pTask] = 0;
                    
ShowPlayerFooter(playerid"Vocк tem ~g~concluido~w~ todas as suas tarefas!");
                }
            }
        }
        if (
EntranceData[id][entranceCustom])
            
SetPlayerPosEx(playeridEntranceData[id][entranceInt][0], EntranceData[id][entranceInt][1], EntranceData[id][entranceInt][2]);
        else
             
SetPlayerPos(playeridEntranceData[id][entranceInt][0], EntranceData[id][entranceInt][1], EntranceData[id][entranceInt][2]);
        
SetPlayerFacingAngle(playeridEntranceData[id][entranceInt][3]);
        
SetPlayerInterior(playeridEntranceData[id][entranceInterior]);
        
SetPlayerVirtualWorld(playeridEntranceData[id][entranceWorld]);
        
SetCameraBehindPlayer(playerid);
        
PlayerData[playerid][pEntrance] = EntranceData[id][entranceID];
        return 
1;
    }
    return 
1;

/sair
PHP код:
CMD:sair(playeridparams[])
{
    static
        
id = -1;
        
    if (
IsPlayerInRangeOfPoint(playerid2.51206.8619, -1314.3546796.7880) && GetPlayerVirtualWorld(playerid) == PRISON_WORLD && !PlayerData[playerid][pJailTime])
    {
        
SetPlayerPos(playerid1797.4436, -1578.935314.0853);
        
SetPlayerFacingAngle(playerid270.0000);
        
SetPlayerInterior(playerid0);
        
SetPlayerVirtualWorld(playerid0);
        
SetCameraBehindPlayer(playerid);
    }
    else if (
IsPlayerInRangeOfPoint(playerid2.51772.5142, -1548.55739.9133))
    {
        if (
PlayerData[playerid][pFreeze])
        
SetPlayerPosEx(playerid1211.1923, -1354.3439797.0456);
        
SetPlayerFacingAngle(playerid0.0000);
        
SetPlayerInterior(playerid5);
        
SetPlayerVirtualWorld(playeridPRISON_WORLD);
        
SetCameraBehindPlayer(playerid);
    }
    if ((
id House_Inside(playerid)) != -&& IsPlayerInRangeOfPoint(playerid2.5HouseData[id][houseInt][0], HouseData[id][houseInt][1], HouseData[id][houseInt][2]))
    {
        
SetPlayerPos(playeridHouseData[id][housePos][0], HouseData[id][housePos][1], HouseData[id][housePos][2]);
        
SetPlayerFacingAngle(playeridHouseData[id][housePos][3] - 180.0);
        
SetPlayerInterior(playeridHouseData[id][houseExterior]);
        
SetPlayerVirtualWorld(playeridHouseData[id][houseExteriorVW]);
        
SetCameraBehindPlayer(playerid);
        
PlayerData[playerid][pHouse] = -1;
        return 
1;
    }
    if ((
id Business_Inside(playerid)) != -&& IsPlayerInRangeOfPoint(playerid2.5BusinessData[id][bizInt][0], BusinessData[id][bizInt][1], BusinessData[id][bizInt][2]))
    {
        
SetPlayerPos(playeridBusinessData[id][bizPos][0], BusinessData[id][bizPos][1], BusinessData[id][bizPos][2]);
        
SetPlayerFacingAngle(playeridBusinessData[id][bizPos][3] - 180.0);
        
SetPlayerInterior(playeridBusinessData[id][bizExterior]);
        
SetPlayerVirtualWorld(playeridBusinessData[id][bizExteriorVW]);
        
SetCameraBehindPlayer(playerid);
        
PlayerData[playerid][pBusiness] = -1;
        return 
1;
    }
    if ((
id Entrance_Inside(playerid)) != -&& IsPlayerInRangeOfPoint(playerid2.5EntranceData[id][entranceInt][0], EntranceData[id][entranceInt][1], EntranceData[id][entranceInt][2]))
    {
        if (
EntranceData[id][entranceCustom])
            
SetPlayerPosEx(playeridEntranceData[id][entrancePos][0], EntranceData[id][entrancePos][1], EntranceData[id][entrancePos][2]);
        else
            
SetPlayerPosEx(playeridEntranceData[id][entrancePos][0], EntranceData[id][entrancePos][1], EntranceData[id][entrancePos][2]);
        
SetPlayerFacingAngle(playeridEntranceData[id][entrancePos][3] - 180.0);
        
SetPlayerInterior(playeridEntranceData[id][entranceExterior]);
        
SetPlayerVirtualWorld(playeridEntranceData[id][entranceExteriorVW]);
        
SetCameraBehindPlayer(playerid);
        
PlayerData[playerid][pEntrance] = Entrance_GetLink(playerid);
        return 
1;
    }
    return 
1;

/entrargaragem
PHP код:
CMD:entrargaragem(playeridparams[])
{
    new 
vehicleid GetPlayerVehicleID(playerid),
        
seatid 0;
    if (
GetFactionType(playerid) != FACTION_POLICE)
        return 
SendErrorMessage(playerid"Vocк nгo й um policial.");
        
    if(!
IsPlayerInRangeOfPoint(playerid5.02354.23730237.7049426.60196))
        return 
SendErrorMessage(playerid"Vocк nгo estб no local da entrada.");
        
    
SetVehicleVirtualWorld(vehicleid0);
    
SetPlayerVirtualWorld(playerid0);
    
LinkVehicleToInterior(vehicleid0);
    
SetVehiclePos(vehicleid, -1631.1047693.30886.621);
    
SetPlayerPos(playerid, -1631.1047693.30886.621);
    
PutPlayerInVehicle(playeridvehicleidseatid);
    return 
1;

/sairgaragem
PHP код:
CMD:sairgaragem(playeridparams[])
{
    new 
vehicleid GetPlayerVehicleID(playerid),
        
seatid 0;
    if (
GetFactionType(playerid) != FACTION_POLICE)
        return 
SendErrorMessage(playerid"Vocк nгo й um policial.");
    if(!
IsPlayerInRangeOfPoint(playerid5.0, -1631.1047693.30886.621))
        return 
SendErrorMessage(playerid"Vocк nгo estб no local da saнda.");
    
SetVehicleVirtualWorld(vehicleid0);
    
SetPlayerVirtualWorld(playerid0);
    
LinkVehicleToInterior(vehicleid0);
    
SetVehiclePos(vehicleid2354.23730237.7049426.60196);
    
SetPlayerPos(playerid2354.23730237.7049426.60196);
    
PutPlayerInVehicle(playeridvehicleidseatid);
    return 
1;

/entrarpns e /sairpns

PHP код:
CMD:entrarpns(playeridparams[])
{
    new 
vehicleid GetPlayerVehicleID(playerid),
        
seatid 0;
    if(!
IsPlayerInRangeOfPoint(playerid5.02075.6960, -1830.860213.3391))
        return 
SendErrorMessage(playerid"Vocк nгo estб no local da entrada.");
    
SetVehicleVirtualWorld(vehicleid0);
    
SetPlayerVirtualWorld(playerid0);
    
LinkVehicleToInterior(vehicleid0);
    
SetVehiclePos(vehicleid2064.0129, -1831.669613.5469);
    
SetPlayerPos(playerid2064.0129, -1831.669613.5469);
    
PutPlayerInVehicle(playeridvehicleidseatid);
    return 
1;
}
CMD:sairpns(playeridparams[])
{
    new 
vehicleid GetPlayerVehicleID(playerid),
        
seatid 0;
    if(!
IsPlayerInRangeOfPoint(playerid5.02064.0129, -1831.669613.5469))
        return 
SendErrorMessage(playerid"Vocк nгo estб no local da entrada.");
    
SetVehicleVirtualWorld(vehicleid0);
    
SetPlayerVirtualWorld(playerid0);
    
LinkVehicleToInterior(vehicleid0);
    
SetVehiclePos(vehicleid2075.6960, -1830.860213.3391);
    
SetPlayerPos(playerid2075.6960, -1830.860213.3391);
    
PutPlayerInVehicle(playeridvehicleidseatid);
    return 
1;

Reply
#2

Vocк vai precisar disso:
https://sampwiki.blast.hk/wiki/SetTimerEx
https://sampwiki.blast.hk/wiki/Function...erControllable

Leia tudo, nгo й difнcil, comenta aki dnv em caso de dъvidas.
Reply
#3

Cara, fiz isso, resolveu meu problema de entrar e sair sem bugar, bom mais tenho outro problema agora, eu gostaria de saber se tem como congelar um veiculo tambйm, nгo so a pessoa.

PHP код:
CMD:entrar(playeridparams[])
{
    static
        
id = -1;
        
    if (
IsPlayerInRangeOfPoint(playerid2.5, -204.5334, -1735.3131675.7687) && PlayerData[playerid][pHospitalInt] != -1)
    {
        
SetPlayerPos(playeridarrHospitalSpawns[PlayerData[playerid][pHospitalInt]][0], arrHospitalSpawns[PlayerData[playerid][pHospitalInt]][1], arrHospitalSpawns[PlayerData[playerid][pHospitalInt]][2]);
        
SetPlayerFacingAngle(playeridarrHospitalSpawns[PlayerData[playerid][pHospitalInt]][3]);
        
SetPlayerInterior(playerid0);
        
SetPlayerVirtualWorld(playerid0);
        
SetTimerEx("micongela",5000,false,"i",playerid);
        
TogglePlayerControllable(playerid,0);
        
SetCameraBehindPlayer(playerid);
        
PlayerData[playerid][pHospitalInt] = -1;
    }
    else if (
IsPlayerInRangeOfPoint(playerid2.51797.4436, -1578.935314.0853))
    {
        
SetPlayerPosEx(playerid1206.8619, -1314.3546797.0880);
        
SetPlayerFacingAngle(playerid270.0000);
        
SetTimerEx("micongela",5000,false,"i",playerid);
        
TogglePlayerControllable(playerid,0);
        
SetPlayerInterior(playerid5);
        
SetPlayerVirtualWorld(playeridPRISON_WORLD);
        
SetCameraBehindPlayer(playerid);
    }
    else if (
IsPlayerInRangeOfPoint(playerid2.51211.1923, -1354.3439796.7456) && GetPlayerVirtualWorld(playerid) == PRISON_WORLD)
    {
        
SetPlayerPos(playerid1772.5142, -1548.55739.9133);
        
SetPlayerFacingAngle(playerid180.0000);
        
SetTimerEx("micongela",5000,false,"i",playerid);
        
TogglePlayerControllable(playerid,0);
        
SetPlayerInterior(playerid0);
        
SetPlayerVirtualWorld(playerid0);
        
SetCameraBehindPlayer(playerid);
    }
    for (new 
0sizeof(arrHospitalSpawns); ++) if (IsPlayerInRangeOfPoint(playerid3.0arrHospitalSpawns[i][0], arrHospitalSpawns[i][1], arrHospitalSpawns[i][2]))
    {
        
SetPlayerPos(playerid, -204.5648, -1736.1201675.7687);
        
SetPlayerFacingAngle(playerid180.0000);
        
SetTimerEx("micongela",5000,false,"i",playerid);
        
TogglePlayerControllable(playerid,0);
        
SetPlayerInterior(playerid3);
        
SetPlayerVirtualWorld(playerid5000);
        
SetCameraBehindPlayer(playerid);
        
PlayerData[playerid][pHospitalInt] = i;
        return 
1;
    }
    if ((
id House_Nearest(playerid)) != -1)
    {
        if (
HouseData[id][houseLocked])
            return 
SendErrorMessage(playerid"Vocк nгo pode entrar em uma casa trancada.");
        
SetPlayerPos(playeridHouseData[id][houseInt][0], HouseData[id][houseInt][1], HouseData[id][houseInt][2]);
        
SetPlayerFacingAngle(playeridHouseData[id][houseInt][3]);
        
SetTimerEx("micongela",5000,false,"i",playerid);
        
TogglePlayerControllable(playerid,0);
        
SetPlayerInterior(playeridHouseData[id][houseInterior]);
        
SetPlayerVirtualWorld(playeridHouseData[id][houseID] + 5000);
        
SetCameraBehindPlayer(playerid);
        
PlayerData[playerid][pHouse] = HouseData[id][houseID];
        return 
1;
    }
    if ((
id Business_Nearest(playerid)) != -1)
    {
        if (
BusinessData[id][bizLocked])
            return 
SendErrorMessage(playerid"Este negуcio estб fechado pelo proprietбrio.");
            
        if (
PlayerData[playerid][pTask] && !PlayerData[playerid][pStoreTask])
        {
            
PlayerData[playerid][pStoreTask] = 1;
            
Dialog_Show(playeridShowOnlyDIALOG_STYLE_MSGBOX"24/7""Este negуcio й uma loja de varejo. Vocк pode comprar muitos itens usando o comando /comprar.\nHб muitas coisas ъteis que vocк pode comprar aqui, que sгo adicionados ao seu inventбrio.\n\nO item mais ъtil й o sistema GPS, como este dispositivo permite-lhe encontrar o que vocк precisa.\nVocк pode deixar este negуcio a qualquer momento pressionando a tecla 'F' na porta.""Fechar""");
            if (
IsTaskCompleted(playerid))
            {
                
PlayerData[playerid][pTask] = 0;
                
ShowPlayerFooter(playerid"Vocк tem ~g~Concluido~w~ todas as suas tarefas!");
            }
        }
        
SetPlayerPos(playeridBusinessData[id][bizInt][0], BusinessData[id][bizInt][1], BusinessData[id][bizInt][2]);
        
SetPlayerFacingAngle(playeridBusinessData[id][bizInt][3]);
         
SetTimerEx("micongela",5000,false,"i",playerid);
        
TogglePlayerControllable(playerid,0);
        
SetPlayerInterior(playeridBusinessData[id][bizInterior]);
        
SetPlayerVirtualWorld(playeridBusinessData[id][bizID] + 6000);
        
SetCameraBehindPlayer(playerid);
        
PlayerData[playerid][pBusiness] = BusinessData[id][bizID];
        if (
strlen(BusinessData[id][bizMessage]) && strcmp(BusinessData[id][bizMessage], "NULL"true)) {
            
SendClientMessage(playeridCOLOR_DARKBLUEBusinessData[id][bizMessage]);
        }
        return 
1;
    }
    if ((
id Entrance_Nearest(playerid)) != -1)
    {
        if (
EntranceData[id][entranceLocked])
            return 
SendErrorMessage(playerid"Esta entrada estб bloqueada no momento.");
        if (
PlayerData[playerid][pTask])
        {
            if (
EntranceData[id][entranceType] == && !PlayerData[playerid][pBankTask])
            {
                
PlayerData[playerid][pBankTask] = 1;
                
Dialog_Show(playeridShowOnlyDIALOG_STYLE_MSGBOX"Banco""Este й um dos bancos de San Andreas. Vocк pode gerenciar suas contas bancбrias aqui.\nCada jogador tem uma conta bancбria padrгo e uma conta poupanзa para fundos extra.\n\nVocк pode digitar /banco dentro deste edifнcio para gerenciar tanto as suas contas bancбrias.\nSe vocк estiver perto de uma mбquina ATM, vocк pode usar o comando /atm para as suas necessidades bancбrias.""Fechar""");
                if (
IsTaskCompleted(playerid))
                {
                    
PlayerData[playerid][pTask] = 0;
                    
ShowPlayerFooter(playerid"Vocк tem ~g~concluido~w~ todas as suas tarefas!");
                }
            }
            else if (
EntranceData[id][entranceType] == && !PlayerData[playerid][pTestTask])
            {
                
PlayerData[playerid][pTestTask] = 1;
                
Dialog_Show(playeridShowOnlyDIALOG_STYLE_MSGBOX"DMV""O DMV й o lugar onde um jogador pode tentar o exame de conduзгo para obter sua licenзa.\nVocк deve evitar bater em obstбculos, danificar o veнculo ou excesso de velocidade durante o teste.\n\nЙ legalmente obrigados a possuir uma licenзa de conduзгo para conduzir em San Andreas.\nDirigir sem licenзa pode resultar em vбrias conseqькncias de aplicaзгo da lei.""Fechar""");
                if (
IsTaskCompleted(playerid))
                {
                    
PlayerData[playerid][pTask] = 0;
                    
ShowPlayerFooter(playerid"Vocк tem ~g~concluido~w~ todas as suas tarefas!");
                }
            }
        }
        if (
EntranceData[id][entranceCustom])
            
SetPlayerPosEx(playeridEntranceData[id][entranceInt][0], EntranceData[id][entranceInt][1], EntranceData[id][entranceInt][2]);
        else
             
SetPlayerPos(playeridEntranceData[id][entranceInt][0], EntranceData[id][entranceInt][1], EntranceData[id][entranceInt][2]);
        
SetPlayerFacingAngle(playeridEntranceData[id][entranceInt][3]);
        
SetPlayerInterior(playeridEntranceData[id][entranceInterior]);
        
SetPlayerVirtualWorld(playeridEntranceData[id][entranceWorld]);
        
SetTimerEx("micongela",5000,false,"i",playerid);
        
TogglePlayerControllable(playerid,0);
        
SetCameraBehindPlayer(playerid);
        
PlayerData[playerid][pEntrance] = EntranceData[id][entranceID];
        return 
1;
    }
    return 
1;

Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)