AYUDA en script Checkpoints!!
#1

Hola porfavor lean todo para que puedan entender... estoy creando un server de juegos del hambre, para poder entrar a la guerra o arena los jugadores deben situarse en un checkpoint para ir a la arena correspondiente y al estar 10 jugadores dentro del checkpoint estos son teletransportados al mapeo donde empieza la guerra.

Todo esto funciona BIEN siempre y cuando pruebe el sv como local y yo sea el unico que este conectado, en ese caso me teletransporta efectivamente al lugar correspondiente y configuro el codigo para que al haber 1 persona en el checkpoint se teletransporte en vez de 10 como debe ser.
asi:
pawn Код:
if(checkpointid == checkarena1[playerid])
    {

    new strings[500];
    format(strings, 500, "%d/10 guerreros esperando para entrar en la ARENA 1...",GetOnLinePlayers());
    TextDrawSetString(players, strings);
    TextDrawShowForPlayer(playerid, players);




 if(gentearena1 == 0) //eso es lo que cambio para ver cuanto estan en el checkpoint, no se si sea ahi el error.
      {


    new Random = random(sizeof(RandomSpawns));
    SetPlayerPos(playerid, RandomSpawns[Random][0], RandomSpawns[Random][1], RandomSpawns[Random][2]);
    SetPlayerFacingAngle(playerid, RandomSpawns[Random][3]);




TimerConteoArena1[playerid] = SetTimerEx("ConteoArena1", 1000, true, "i", playerid);
TogglePlayerControllable(playerid,0);
ronda1= 1;
SendClientMessage(playerid, -1, "El juego comenzarб en breve, prepбrate para empezar!");
 ArenaJugador[playerid] = 1;
 barra[playerid] = CreateProgressBar(500.00, 107.00, 106.50, 19.20, -1, 100.0);

    SetProgressBarMaxValue(barra[playerid], 100.0);

    SetProgressBarValue(barra[playerid], 0);

    GivePlayerMoney(playerid,10);
    jugando[playerid] = 0;
    TextDrawShowForPlayer(playerid, Textdraw1);

                            JugadoresArena1++;
                            }
           if(ronda1 == 1)
{

    new strings3[501];
    format(strings3, 501, "Espera hasta que termine la Arena.",GetOnLinePlayers());
    TextDrawSetString(players, strings3);
    TextDrawShowForPlayer(playerid, players);

}
}
Entonces cuando hay solo 1 persona en el server funciona bien pero en cambio si se conecta otra persona me pasan 2 situaciones diferentes

1.-

EN ESTE CASO APARECEN BIEN LA CANTIDAD DE PERSONAS EN EL CHECKPOINT PERO NO ME TELETRANSPORTA A NINGUN LADO A PESAR DE TENER CONFIGURADO EL CODIGO PARA QUE AL HABER 2 PERSONAS EN EL CHECKPOINT NOS TELETRANSPORTE.

2.- LO OTRO QUE PUEDE PASAR Y ES MAS COMUN ES QUE SOLO LE FUNCIONE A 1 PERSONA EL CHECKPOINT (id 0), SE TELETRANSPORTE Y TODO ESO, PERO AL OTRO EL CHECKPOINT NO LO DETECTA o falla de alguna u otra manera.

en fin, les dejo todo el codigo:
pawn Код:
public OnPlayerEnterDynamicCP(playerid, checkpointid)
{
    if(checkpointid == checkarena1[playerid])
    {

    new strings[500];
    format(strings, 500, "%d/10 guerreros esperando para entrar en la ARENA 1...",GetOnLinePlayers());
    TextDrawSetString(players, strings);
    TextDrawShowForPlayer(playerid, players);

 if(gentearena1 == 10)
      {

    new Random = random(sizeof(RandomSpawns));
    SetPlayerPos(playerid, RandomSpawns[Random][0], RandomSpawns[Random][1], RandomSpawns[Random][2]);
    SetPlayerFacingAngle(playerid, RandomSpawns[Random][3]);
TimerConteoArena1[playerid] = SetTimerEx("ConteoArena1", 1000, true, "i", playerid);
TogglePlayerControllable(playerid,0);
ronda1= 1;
SendClientMessage(playerid, -1, "El juego comenzarб en breve, prepбrate para empezar!");
 ArenaJugador[playerid] = 1;
 barra[playerid] = CreateProgressBar(500.00, 107.00, 106.50, 19.20, -1, 100.0);

    SetProgressBarMaxValue(barra[playerid], 100.0);

    SetProgressBarValue(barra[playerid], 0);

    GivePlayerMoney(playerid,10);
    jugando[playerid] = 0;
    TextDrawShowForPlayer(playerid, Textdraw1);

                            JugadoresArena1++;
                            }
           if(ronda1 == 1)
{

    new strings3[501];
    format(strings3, 501, "Espera hasta que termine la Arena.",GetOnLinePlayers());
    TextDrawSetString(players, strings3);
    TextDrawShowForPlayer(playerid, players);

}
}

    if(checkpointid == checkarena2[playerid])
    {


 new stringss[550];
    format(stringss, 550, "%d/10 guerreros esperando para entrar en la ARENA 1...",GetOnLinePlayers());
    TextDrawSetString(players, stringss);
    TextDrawShowForPlayer(playerid, players);

if(ronda2 == 1)

{
    new stringss2[505];
    format(stringss2, 505, "Espera hasta que termine la Arena.",GetOnLinePlayers());
    TextDrawSetString(players, stringss2);
    TextDrawShowForPlayer(playerid, players);

}

if(gentearena2 == 10)
      {




   new Random3 = random(sizeof(RandomSpawns2));
    SetPlayerPos(playerid, RandomSpawns2[Random3][0], RandomSpawns2[Random3][1], RandomSpawns2[Random3][2]);
    SetPlayerFacingAngle(playerid, RandomSpawns2[Random3][3]);



TimerConteoArena2[playerid] = SetTimerEx("ConteoArena2", 1000, true, "i", playerid);

TogglePlayerControllable(playerid,0);
ronda2= 1;
SendClientMessage(playerid, -1, "El juego comenzarб en breve, prepбrate para empezar!");
 ArenaJugador[playerid] = 1;
 barra[playerid] = CreateProgressBar(500.00, 107.00, 106.50, 19.20, -1, 100.0);

    SetProgressBarMaxValue(barra[playerid], 100.0);

    SetProgressBarValue(barra[playerid], 0);

    GivePlayerMoney(playerid,10);
    jugando[playerid] = 0;
    TextDrawShowForPlayer(playerid, Textdraw1);
     JugadoresArena2++;


  }
  }
    return 1;
}
pawn Код:
new JugadoresArena1;
new gentearena1;
new gentearena2;
new JugadoresArena2;
new ronda1,jugadores; new jugando[MAX_PLAYERS];
En conclusion, tengo 2 checkpoints los cuales te teletransportan, quiero que al haber 10 personas dentro del checkpoint los lleve a todos a un cierto lugar lo cual esta fallando y no se en que. AYUDA!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)