[ЎAyuda!] CountDown!
#1

Hola mi nombre es Edugta, necesito ayuda con mi script:

Estoy usando esto para hacer un CountDown o Cuenta Regresiva (oculte lo demбs):

pawn Код:
#include <a_samp>

public OnPlayerCommandText(playerid, cmdtext[])

    SetTimer("message",1000 ,false);
    SetTimer("message2",2000 ,false);
    SetTimer("message3",3000 ,false);
    SetTimer("message4",4000 ,false);
    SetTimer("message5",5000 ,false);
    SetTimer("message6",6000 ,false);
 

forward message();
forward message2();
forward message3();
forward message4();
forward message5();
forward message6();

public message()
{

}

public message2()
{
;
}

public message3()
{

}

public message4()
{
;
}

public message5()
{

}

public message6()
{

}
Cada vez que aparezca un nъmero, haga un sonido, pero al poner PlayerPlaySound(playerid, id, x, y, z),
me da esto:

pawn Код:
C:\Archivos de programa\Rockstar Games\GTA San Andreas\filterscripts\countdown.pwn(30) : error 017: undefined symbol "playerid"
C:\Archivos de programa\Rockstar Games\GTA San Andreas\filterscripts\countdown.pwn(36) : error 017: undefined symbol "playerid"
C:\Archivos de programa\Rockstar Games\GTA San Andreas\filterscripts\countdown.pwn(42) : error 017: undefined symbol "playerid"
C:\Archivos de programa\Rockstar Games\GTA San Andreas\filterscripts\countdown.pwn(48) : error 017: undefined symbol "playerid"
C:\Archivos de programa\Rockstar Games\GTA San Andreas\filterscripts\countdown.pwn(54) : error 017: undefined symbol "playerid"
C:\Archivos de programa\Rockstar Games\GTA San Andreas\filterscripts\countdown.pwn(60) : error 017: undefined symbol "playerid"
Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase


6 Errors.
ЎAYUDENME PORFA!


EDIT (Ўcualquiera me robarб!):

pawn Код:
#include <a_samp>

public OnPlayerCommandText(playerid, cmdtext[])
{
    if(strcmp("/321", cmdtext, true, 6) == 0)
    {
    SetTimer("message",1000 ,false);
    SetTimer("message2",2000 ,false);
    SetTimer("message3",3000 ,false);
    SetTimer("message4",4000 ,false);
    SetTimer("message5",5000 ,false);
    SetTimer("message6",6000 ,false);
    }
}

forward message();
forward message2();
forward message3();
forward message4();
forward message5();
forward message6();

public message()
{
    GameTextForAll("~w~5", 1000, 6);
    PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0);
}

public message2()
{
    GameTextForAll("~w~4", 1000, 6);
    PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0);
}

public message3()
{
    GameTextForAll("~r~3", 1000, 6);
    PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0);
}

public message4()
{
    GameTextForAll("~r~2", 1000, 6);
    PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0);
}

public message5()
{
    GameTextForAll("~r~1", 1000, 6);
    PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0);
}

public message6()
{
    GameTextForAll("~w~GO!", 1000, 6);
    PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
    SetPlayerArmour(0, 100);
    SetPlayerHealth(0, 100);
}
Reply
#2

No tienes definido el playerid es por eso
pawn Код:
public message()
{  
    //pone esto en cada public del countdown
    for(new playerid=0; playerid < MAX_PLAYERS; playerid++)
     {
      PlayerPlaySound(playerid, id, x, y, z); //y aqui pones el PlayerPlaySound
     }
}
Reply
#3

pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])

    SetTimer("message",1000 ,false);
    SetTimer("message2",2000 ,false);
    SetTimer("message3",3000 ,false);
    SetTimer("message4",4000 ,false);
    SetTimer("message5",5000 ,false);
    SetTimer("message6",6000 ,false);
Eso no es ningъn comando :/
Reply
#4

Demasiados Timers

pawn Код:
// global
new TimerCuenta;
new CuentaAtras = 5;
#define TIME_CUENTA 1000 // Puede variar, acб esta puesto en 1 segundo.
forward CuentaRegresiva();

// Donde deseas realizar esto: comando, callback o lo que sea.
TimerCuenta = SetTimer("CuentaRegresiva",TIME_CUENTA,1);

// Callback: Cuenta Regresiva
public CuentaRegresiva()
{
    switch(CuentaAtras)
    {
        case 0: CuentaAtras = 5; KillTimer(TimerCuenta); GameTextForAll("0",999,1);
        case 1: CuentaAtras--; GameTextForAll("1",999,1);
        case 2: CuentaAtras--; GameTextForAll("2",999,1);
        case 3: CuentaAtras--; GameTextForAll("3",999,1);
        case 4: CuentaAtras--; GameTextForAll("4",999,1);
        case 5: CuentaAtras--; GameTextForAll("5",999,1);
    }
}
Si no me equivoco eso estб bien, puede ser que este mal, es la hora y no me da muchas ganas de probar
Reply
#5

Quote:
Originally Posted by MaRcOsWeB
Посмотреть сообщение
Demasiados Timers
pawn Код:
public CuentaRegresiva()
{
    switch(CuentaAtras)
    {
        case 0: CuentaAtras = 5; KillTimer(TimerCuenta); GameTextForAll("0",999,1);
        case 1: CuentaAtras--; GameTextForAll("1",999,1);
        case 2: CuentaAtras--; GameTextForAll("2",999,1);
        case 3: CuentaAtras--; GameTextForAll("3",999,1);
        case 4: CuentaAtras--; GameTextForAll("4",999,1);
        case 5: CuentaAtras--; GameTextForAll("5",999,1);
    }
}
casi esta bien solo te faltу agregarle los corchetes { }, cuando solo usas 1 funciуn no es nesesario pero para mбs de 1 si
pawn Код:
public CuentaRegresiva()
{
    switch(CuentaAtras)
    {
        case 0: { CuentaAtras = 5; KillTimer(TimerCuenta); GameTextForAll("0",999,1); }
        case 1: { CuentaAtras--; GameTextForAll("1",999,1); }
        case 2: { CuentaAtras--; GameTextForAll("2",999,1); }
        case 3: { CuentaAtras--; GameTextForAll("3",999,1); }
        case 4: { CuentaAtras--; GameTextForAll("4",999,1); }
        case 5: { CuentaAtras--; GameTextForAll("5",999,1); }
    }

}
asн quedaria finalmente o sino se ponen , (comas) entre si
pawn Код:
case 0: CuentaAtras = 5, KillTimer(TimerCuenta), GameTextForAll("0",999,1);
Reply
#6

Ya puse el codigo completo
Reply
#7

Y ahora anda?
Reply
#8

pawn Код:
#include <a_samp>

forward message(playerid);
forward message2(playerid);
forward message3(playerid);
forward message4(playerid);
forward message5(playerid);
forward message6(playerid);


public OnPlayerCommandText(playerid, cmdtext[])
{    
if(strcmp("/321", cmdtext, true, 6) == 0)    
{    
SetTimer("message",1000 ,false);    
SetTimer("message2",2000 ,false);  
SetTimer("message3",3000 ,false);    
SetTimer("message4",4000 ,false);    
SetTimer("message5",5000 ,false);    
SetTimer("message6",6000 ,false);    
}
}

public message(playerid)
{    
GameTextForAll("~w~5", 1000, 6);    
PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0);
}

public message2(playerid)
{    
GameTextForAll("~w~4", 1000, 6);    
PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0);
}

public message3(playerid)
{    
GameTextForAll("~r~3", 1000, 6);    
PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0);
}

public message4(playerid)
{    
GameTextForAll("~r~2", 1000, 6);    
PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0);
}

public message5(playerid)
{    
GameTextForAll("~r~1", 1000, 6);  
PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0);
}

public message6(playerid)
{    
GameTextForAll("~w~GO!", 1000, 6);    
PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);    
SetPlayerArmour(0, 100);    
SetPlayerHealth(0, 100);
}
Antes tenia:
pawn Код:
forward message();
forward message2();
forward message3();
forward message4();
forward message5();
forward message6();
Agora tiйn:
pawn Код:
forward message(playerid);
forward message2(playerid);
forward message3(playerid);
forward message4(playerid);
forward message5(playerid);
forward message6(playerid);
Publics antes tenia:
pawn Код:
public message()
public message1()
public message2()
public message3()
public message4()
public message5()
public message6()
Agora tiйn:
pawn Код:
public message(playerid)
public message1(playerid)
public message2(playerid)
public message3(playerid)
public message4(playerid)
public message5(playerid)
public message6(playerid)
Se ha esquecido de los "playerid".
Reply
#9

usa este codigo:

pawn Код:
//variable
new TT, time = 5;
//cmd
if(!strcmp(cmdtext, "/countdown", true))return TT = SetTimer("Conteo", 1000, true);
//timer
forward Conteo();
public Conteo()
{
    new str[8];
    if(time>0)format(str, 5, "~R~%i", time);
    else str = "~G~YAA!"
    GameTextForAll(str, 1000, 4);
    time--;
    if(time == 0){
        time = 5;
        KillTimer(TT);
    }
}
Reply
#10

Quote:
Originally Posted by the_chaoz
Посмотреть сообщение
usa este codigo:

pawn Код:
//variable
new TT, time = 5;
//cmd
if(!strcmp(cmdtext, "/countdown", true))return TT = SetTimer("Conteo", 1000, true);
//timer
forward Conteo();
public Conteo()
{
    new str[8];
    if(time>0)format(str, 5, "~R~%i", time);
    else str = "~G~YAA!"
    GameTextForAll(str, 1000, 4);
    time--;
    if(time == 0){
        time = 5;
        KillTimer(TT);
    }
}
Tambiйn pensei en fazer uno asin, mas, editei el script del porque asin es mбs fбcil elle perceber lo que tenia incorreto.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)