[AJUDA]Comando
#1

Iae pessoal, To precisando de uma ajuda..
eu criei um comando de teleportar e tudo blza
so que eu queria q quando a pessoa digitasse /basefree a pessoa esperace 10 segundos sem se mecher para teleportar, caso ele se mecha aparecer uma msg q ele se mecheu


PHP код:
public OnPlayerCommandText(playeridcmdtext[])
{
    if (
strcmp("/basefree"cmdtexttrue10) == 0)
    {
        new 
pname[MAX_PLAYER_NAME];
        new 
string[43];
        
SetPlayerInterior(playerid,0);
        
SetPlayerPos(playerid1431100511);
        
SendClientMessage(playerid,0x0B6F00AA"{FF0101}Seja Bem Vindo a {0C01FF}Base Free");
        
SendClientMessage(playerid,0x0B6F00AA"Para Ver os Criadores da BF. Digite /cbf");
        
GetPlayerName(playeridpnameMAX_PLAYER_NAME);
        
format(stringsizeof(string), "%s foi para a Base Free /BaseFree"pname);
        
SendClientMessageToAll(0x33CCFFAAstring);
        
        return 
1;
    } 
Reply
#2

Nгo й mais fбcil usar TogglePlayerControllable para congelar o player de uma vez?

Use SetTimerEx com GetPlayerPos, depois й sу comparar a posiзгo dele й igual a posiзгo dele (X == X, Y == Y, Z == Z), se nгo for, ele se mexeu.
Reply
#3

PHP код:
public OnPlayerCommandText(playeridcmdtext[])
{
    if (
strcmp("/basefree"cmdtexttrue10) == 0)
    {
        new 
Float:Pos[3];
        
GetPlayerPos(playeridPos[0], Pos[1], Pos[2]);
        
SendClientMessage(playerid,0x0B6F00AA"Espere 10 segundos para ser teleportado.");
        
SetTimerEx("AntiEsc"10000false"dfff"playeridPos[0], Pos[1], Pos[2]);
        return 
1;
    }
    return 
0;
}
forward Check(pIDFloat:XFloat:YFloat:Z);
public 
Check(pIDFloat:XFloat:YFloat:Z)
{
    new 
Float:Pos[3];
    
GetPlayerPos(pIDPos[0], Pos[1], Pos[2]);
    if(
Pos[0] == && Pos[1] == && Pos[2] == Z)
    {
        new 
nome[MAX_PLAYER_NAME];
        
SetPlayerInterior(pID,0);
        
SetPlayerPos(pID1431100511);
        
SendClientMessage(pID,0x0B6F00AA"{FF0101}Seja Bem Vindo a {0C01FF}Base Free");
        
SendClientMessage(pID,0x0B6F00AA"Para Ver os Criadores da BF. Digite /cbf");
        
GetPlayerName(pID,nome,sizeof(nome));
        
format(stringsizeof(string), "%s foi para a Base Free /BaseFree"nome);
        
SendClientMessageToAll(0x33CCFFAAstring);
    }
    else { 
SendClientMessage(playerid,0x0B6F00AA"Vocк se mexeu e por isto nгo foi teleportado."); }
    return 
1;

Reply
#4

Код:
C:\Documents and Settings\Cliente\Desktop\Test\filterscripts\BaseFre.pwn(327) : error 010: invalid function or declaration
C:\Documents and Settings\Cliente\Desktop\Test\filterscripts\BaseFre.pwn(332) : error 010: invalid function or declaration
C:\Documents and Settings\Cliente\Desktop\Test\filterscripts\BaseFre.pwn(334) : error 010: invalid function or declaration
C:\Documents and Settings\Cliente\Desktop\Test\filterscripts\BaseFre.pwn(344) : error 017: undefined symbol "playerid"
C:\Documents and Settings\Cliente\Desktop\Test\filterscripts\BaseFre.pwn(345) : error 017: undefined symbol "playerid"
C:\Documents and Settings\Cliente\Desktop\Test\filterscripts\BaseFre.pwn(346) : error 017: undefined symbol "playerid"
C:\Documents and Settings\Cliente\Desktop\Test\filterscripts\BaseFre.pwn(347) : error 017: undefined symbol "playerid"
C:\Documents and Settings\Cliente\Desktop\Test\filterscripts\BaseFre.pwn(349) : error 017: undefined symbol "string"
C:\Documents and Settings\Cliente\Desktop\Test\filterscripts\BaseFre.pwn(349) : error 017: undefined symbol "string"
C:\Documents and Settings\Cliente\Desktop\Test\filterscripts\BaseFre.pwn(349) : error 029: invalid expression, assumed zero
C:\Documents and Settings\Cliente\Desktop\Test\filterscripts\BaseFre.pwn(349) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


11 Errors.
Deu esses seguintes erros
Reply
#5

Quote:
Originally Posted by [BEP]AcerPilot
Посмотреть сообщение
Nгo й mais fбcil usar TogglePlayerControllable para congelar o player de uma vez?

Use SetTimerEx com GetPlayerPos, depois й sу comparar a posiзгo dele й igual a posiзгo dele (X == X, Y == Y, Z == Z), se nгo for, ele se mexeu.
Ou X != X que irб dб o resultado de que ele se moveu

pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if (strcmp("/basefree", cmdtext, true, 10) == 0)
    {
        new Float:Pos[3];
        GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
        SendClientMessage(playerid,0x0B6F00AA, "Espere 10 segundos para ser teleportado.");
        SetTimerEx("AntiEsc", 10000, false, "dfff", playerid, Pos[0], Pos[1], Pos[2]);
        return 1;
    }
    return 0;
}
pawn Код:
forward Check(playerid, Float:X, Float:Y, Float:Z);

public Check(playerid, Float:X, Float:Y, Float:Z)
{
    new Float:Pos[3];
    GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
    if(Pos[0] == X && Pos[1] == Y && Pos[2] == Z)
    {
        new nome[MAX_PLAYER_NAME];
        SetPlayerInterior(playerid,0);
        SetPlayerPos(playerid, 1431, 1005, 11);
        SendClientMessage(playerid,0x0B6F00AA, "{FF0101}Seja Bem Vindo a {0C01FF}Base Free");
        SendClientMessage(playerid,0x0B6F00AA, "Para Ver os Criadores da BF. Digite /cbf");
        GetPlayerName(playerid,nome,sizeof(nome));
        format(string, sizeof(string), "%s foi para a Base Free /BaseFree", nome);
        SendClientMessageToAll(0x33CCFFAA, string);
    }
    else { SendClientMessage(playerid,0x0B6F00AA, "Vocк se mexeu e por isto nгo foi teleportado."); }
    return 1;
}
Reply
#6

Codigo corrigido.
Reply
#7

Apareceu ainda 1 erro
Код:
C:\Documents and Settings\Cliente\Desktop\Test\filterscripts\BaseFre.pwn(344) : error 017: undefined symbol "playerid"
Linha 344
PHP код:
    else { SendClientMessage(playerid,0x0B6F00AA"Vocк se mexeu e por isto nгo foi teleportado."); } 
Reply
#8

Pronto:

PHP код:
public OnPlayerCommandText(playeridcmdtext[])
{
    if (
strcmp("/basefree"cmdtexttrue10) == 0)
    {
        new 
Float:Pos[3];
        
GetPlayerPos(playeridPos[0], Pos[1], Pos[2]);
        
SendClientMessage(playerid,0x0B6F00AA"Espere 10 segundos para ser teleportado.");
        
SetTimerEx("Check"10000false"dfff"playeridPos[0], Pos[1], Pos[2]);
        return 
1;
    }
    return 
0;
}
forward Check(pIDFloat:XFloat:YFloat:Z);
public 
Check(pIDFloat:XFloat:YFloat:Z)
{
    new 
Float:Pos[3];
    
GetPlayerPos(pIDPos[0], Pos[1], Pos[2]);
    if(
Pos[0] == && Pos[1] == && Pos[2] == Z)
    {
        new 
nome[MAX_PLAYER_NAME];
        
SetPlayerInterior(pID,0);
        
SetPlayerPos(pID1431100511);
        
SendClientMessage(pID,0x0B6F00AA"{FF0101}Seja Bem Vindo a {0C01FF}Base Free");
        
SendClientMessage(pID,0x0B6F00AA"Para Ver os Criadores da BF. Digite /cbf");
        
GetPlayerName(pID,nome,sizeof(nome));
        
format(stringsizeof(string), "%s foi para a Base Free /BaseFree"nome);
        
SendClientMessageToAll(0x33CCFFAAstring);
    }
    else { 
SendClientMessage(pID,0x0B6F00AA"Vocк se mexeu e por isto nгo foi teleportado."); }
    return 
1;

Reply
#9

olha so, agora deu certo, compilo tudo certo..
mais eu digito /basefree ai aparece a msg "espere 10 segundos..."
eu espero mais de minutos e ele nao teleporta.
Ajuda Pliss.
Reply
#10

Desculpa ae novamente. Agora o codigo funciona, de certeza !
Reply


Forum Jump:


Users browsing this thread: 6 Guest(s)