SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Português/Portuguese

Reply
 
Thread Tools Display Modes
Old 26/09/2019, 12:35 PM   #1
Mitsukwizzard
Little Clucker
 
Join Date: Jan 2019
Posts: 23
Reputation: 0
Default comando /tv

Pessoa to com sistema de /tv, mas toda vez que sair do /tv sou spawnado para o spawn,
qual o codigo para eu ficar no mesmo local não ser spawnado.

PHP Code:
    if(strcmp(cmd"/tvoff"true) == 0)
    {
        new 
nome[24];
        
GetPlayerName(playeridnomesizeof nome);
        if(
JogadorInfo[playerid][pAdmin] >= 1)
        {
              if(
WatchingTV[playerid] > 0)
             {
                if(
admtrabalhando[playerid] == 1)
                {
                     
SetPlayerSkin(playerid,217);
                }
                
WatchingTV[playerid] = 0;
                
Spectate[playerid] = 253;
                
GameTextForPlayer(playerid"~n~~n~~n~~n~~w~TV OFF"50003);
                
MedicBill[playerid] = 0;
                return 
1;
            }
            else
            {
                
SendClientMessage(playeridCOLOR_GREY"Você não está de TV em Ninguem !");
                return 
1;
            }
        }
        return 
1;
    } 
Mitsukwizzard is offline   Reply With Quote
Old 26/09/2019, 12:42 PM   #2
ipsLuan
High-roller
 
ipsLuan's Avatar
 
Join Date: Feb 2013
Location: Ilhéus, BA
Posts: 4,485
Reputation: 328
Default Re: comando /tv

Ao usar o comando, salve a posição do jogador com SetPVarFloat e ao terminar, sete a posição do jogador.
__________________
Brasil New Style
ip.brasilnewstyle.com
ipsLuan is offline   Reply With Quote
Old 26/09/2019, 02:18 PM   #3
wearLy
Big Clucker
 
wearLy's Avatar
 
Join Date: Jun 2018
Location: SA-MP
Posts: 148
Reputation: 31
Default Re: comando /tv

A maneira que o ipsLuan te ensinou é a mais correta, porém eu vou te mandar o código porque talvez fique mais fácil para você:

PHP Code:
// Eu uso dessa forma meu /tv

enum spectadorInfo
{
    
//bool:spectadorValid,
    //spectadorID,
    
Float:spectadorPos[4],    // Use apenas esse, para a sua função, os outros não será importante para você
};
new 
SpectadorInfo[MAX_PLAYERS][spectadorInfo];

// Coloque isso no seu comando /tv
GetPlayerPos(playeridSpectadorInfo[playerid][spectadorPos][0], SpectadorInfo[playerid][spectadorPos][1], SpectadorInfo[playerid][spectadorPos][2]);
GetPlayerFacingAngle(playeridSpectadorInfo[playerid][spectadorPos][3]);

// Coloque isso no seu comando /tvoff
SetPlayerPos(playeridSpectadorInfo[playerid][spectadorPos][0], SpectadorInfo[playerid][spectadorPos][1], SpectadorInfo[playerid][spectadorPos][2]);
SetPlayerFacingAngle(playeridSpectadorInfo[playerid][spectadorPos][3]); 
__________________
_______


» [FilterScript] Sistema Anti-AFK


» Brasil Play Start - Fórum
» IP: 198.50.206.176:7777



"In the community since 2010"
wearLy is offline   Reply With Quote
Old 27/09/2019, 07:14 PM   #4
Mitsukwizzard
Little Clucker
 
Join Date: Jan 2019
Posts: 23
Reputation: 0
Default Re: comando /tv

Valeu amigo mas não funciono aqui, Sera que esto colocando os códigos em local errado nos comandos.

PHP Code:
    if(strcmp(cmd"/tvon"true) == 0)
    {
        
GetPlayerPos(playeridSpectadorInfo[playerid][spectadorPos][0], SpectadorInfo[playerid][spectadorPos][1], SpectadorInfo[playerid][spectadorPos][2]);
        
GetPlayerFacingAngle(playeridSpectadorInfo[playerid][spectadorPos][3]);
        if(
IsPlayerConnected(playerid))
        {
            if(
JogadorInfo[playerid][pAdmin] < 1)
            {
                
SendClientMessage(playeridCOLOR_GREEN"Você não é um Administrador");
                return 
1;
            }
            if(
admtrabalhando[playerid] < && JogadorInfo[playerid][pAdmin] != 1340 && JogadorInfo[playerid][pAdmin] != 1341 && JogadorInfo[playerid][pAdmin] != 1342)
            {
                
SendClientMessage(playeridCOLOR_GRAD1"Você não está trabalhando! (/trabalhar)");
                return 
1;
            }
            if(
JogadorInfo[playerid][pAdmin] >= 1)
            {
                if(
WatchingTV[playerid] < 1)
                {
                    
GetPlayerPos(playeridUnspec[playerid][Coords][0],Unspec[playerid][Coords][1],Unspec[playerid][Coords][2]);
                }
            }
            if(
Spectate[playerid] == 255 && JogadorInfo[playerid][pAdmin] >= 1)
            {
                
GetPlayerPos(playeridUnspec[playerid][sPx], Unspec[playerid][sPy], Unspec[playerid][sPz]);
                
Unspec[playerid][sPint] = JogadorInfo[playerid][pInt];
                
Unspec[playerid][sLocal] = JogadorInfo[playerid][pLocal];
                
JogadorInfo[playerid][pLocal] = 255;
                
gTeam[playerid] = 0;
            }
            
tmp strtok(cmdtextidx);
            if(
JogadorInfo[playerid][pAdmin] >= 1)
            {
                
giveplayerid ReturnUser(tmp);
                new 
world;
                
world GetPlayerVirtualWorld(giveplayerid);
                if(
IsPlayerConnected(giveplayerid))
                {
                    if(
giveplayerid != INVALID_PLAYER_ID)
                    {
                        if(
JogadorInfo[giveplayerid][pAdmin] >= 1339 && JogadorInfo[playerid][pAdmin] < 1338)
                        {
                            
SendClientMessage(playeridCOLOR_GRAD1"Você não pode ficar de TV em um Admin Dono !");
                            return 
1;
                        }
                        
Spectate[playerid] = giveplayerid;
                        new 
Float:health;
                        
GetPlayerHealth(Spectate[playerid], health);
                        
GetPlayerName(Spectate[playerid], giveplayersizeof(giveplayer));
                        new 
cash =  GetPlayerMoneyEx(Spectate[playerid]);
                        if (
JogadorInfo[playerid][pAdmin] >= 1)
                        {
                            
SetPlayerToTeamColor(playerid);
                            
SetPlayerVirtualWorld(playerid,world);
                            
JogadorInfo[playerid][pSpawn] = 0;
                            
format(stringsizeof(string), "Info: (%d) %s R$%d H:%.0f",Spectate[playerid],giveplayer,cash,health);
                        }
                        
SendClientMessage(playeridCOLOR_YELLOW2string);
                        
WatchingTV[playerid] = 1;
                    }
                }
                else
                {
                    
SendClientMessage(playeridCOLOR_WHITE"USE: /tvon [id]");
                }
            }
            else
            {
                
SendClientMessage(playeridCOLOR_GREEN"Você não tem permissão para usar esse comando!");
                return 
1;
            }
        }
        return 
1;
    }
    if(
strcmp(cmd"/tvoff"true) == 0)
    {
        
SetPlayerPos(playeridSpectadorInfo[playerid][spectadorPos][0], SpectadorInfo[playerid][spectadorPos][1], SpectadorInfo[playerid][spectadorPos][2]);
        
SetPlayerFacingAngle(playeridSpectadorInfo[playerid][spectadorPos][3]);
        new 
nome[24];
        
GetPlayerName(playeridnomesizeof nome);
        if(
JogadorInfo[playerid][pAdmin] >= 1)
        {
              if(
WatchingTV[playerid] > 0)
             {
                if(
admtrabalhando[playerid] == 1)
                {
                     
SetPlayerSkin(playerid,217);
                }
                
WatchingTV[playerid] = 0;
                
Spectate[playerid] = 253;
                
GameTextForPlayer(playerid"~n~~n~~n~~n~~w~TV OFF"50003);
                
MedicBill[playerid] = 0;
                return 
1;
            }
            else
            {
                
SendClientMessage(playeridCOLOR_GREY"Você não está de TV em Ninguem !");
                return 
1;
            }
        }
        return 
1;
    } 
Mitsukwizzard is offline   Reply With Quote
Old 28/09/2019, 11:37 PM   #5
rjjj
Huge Clucker
 
rjjj's Avatar
 
Join Date: Jan 2014
Location: Acre, Brasil
Posts: 261
Reputation: 204
Default Re: comando /tv

No SA-MP, quando a função TogglePlayerSpectating é executada para desligar o modo de observação, por padrão o OnPlayerSpawn é chamado .



Deve haver um timer que rege esse sistema no seu GM, mas de qualquer jeito você terá que manipular variáveis e funções como SetPlayerPos e SetSpawnInfo no locais certos do código.



Espero ter ajudado .
__________________


rjjj is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Pedido] Comando de Forçar Player a Usar um Comando Ex: /ForcarDigitar id /Drop EquipeBMR Português/Portuguese 2 02/05/2014 08:18 PM
[Ajuda] Ajuda Um Comando Para Mostrar De Que Gang E (apenas em um comando) Pietrotm2012 Português/Portuguese 8 12/01/2013 02:08 PM
[Pedido] comando de quem usar esse comando perde 48% de vida! Weslly Stronda Português/Portuguese 4 08/11/2012 07:13 PM
[AJUDA] faser comando /gmx e quando digitar comando errado, surgir messgem ( comando inexistest) SERRA93 Português/Portuguese 5 14/07/2011 09:44 PM
[Ajuda] Comando de /equipar (mesmo comando, um texto para cada org) danqueiroz Português/Portuguese 9 21/04/2010 11:34 PM


All times are GMT. The time now is 07:02 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.