[ayuda] lo q le falta al TDM
#1

bueno mi idea es q el TDM consista en 2 ekipos y un tiempo de 20 min.
el ekipo q en esos 20 min haya logrado mas asesinatos ganara y q salga un msj del ekipo ganador, mientras transcurren esos 20 min aparesca un texto q vaya informando cuantos asesinatos lleva cada ekipo....
intente hacerlo yo mismo pero fracase xD bueno espero puedan ayudarme

PD: y si pueden q los admins puedan restaurar las stats de kada ekipo y el tiempo... nada mas gracias
Reply
#2

bueno, inicialmente para empezar decime que es lo 1є que fallo en tu GM, o sea lo 1є que no te salio hacer.
Reply
#3

Queremos ver los errores.
Reply
#4

Quote:
Originally Posted by the_chaoz
bueno, inicialmente para empezar decime que es lo 1є que fallo en tu GM, o sea lo 1є que no te salio hacer.
lo habia echo como me habian explikado q lo haga pero salio mal y ya no lo tengo x eso me gustaria q me ayuden a armarlo de nuevo yo ya tengo todo el TDM armado solo me falta un objetivo osea el q explike anteriormente
Reply
#5

bueno es un poco largo de explicar creo, pero aca te doy un empujon x asi decirlo para que te puedas guiar

si ya tienes los equipos definidos, crea una variable globalos asecinatos de cada equipo y un timer.
una vez que tienes la variable, en el callback OnPlayerDeath, vas a ver de que equipo es cada jugador, lo puedes hacer con un if. y le sumas 1 asecinato al equipo anterior(a la variable).
dentro del timer que va a tener el tiempo que tu elijas mediante un if comparas que equipo tiene mas asecinatos y decides quien es el ganador.
podria quedar algo asi:
pawn Код:
#define EQUIPO1 1  //yo defini el equipo 1 para que te puedas guiar y que no haya nada sin definir dentro de lo q te digo
#define EQUIPO2 2  //IDEM que arriba
new Equipo1Kills;  // variable global para guardar los asecinatos del equipo 1.
new Equipo2Kills;  // variable global para guardar los asecinatos del equipo 2.
new gTeam[MAX_PLAYERS];  //variable para guardar el equipo de cada jugador.

forward Partida();  //forward del timer
pawn Код:
public OnGameModeodeInit()
{
  SetTimer("Partida", 1200000, 0);//timer que determina la duracion de cada partida. (Nota: El timer esta puesto en 20 minutos)
  return 1;
}
pawn Код:
public OnPlayerDeath(playerid, killerid, reason)
{
  if(gTeam[playerid] != gTeam[killerid]){  //si el jugador que murio y el que lo mato no son del mismo equipo...
    if(gTeam[playerid] == EQUIPO1){  //si el jugador que murio es del equipo 1...
      Equipo2Kills++;  //suma 1 a la variable de asecinatos del equipo 2.
    }
    //si solo son 2 equipos usa else, si no usa if.
    else{
      Equipo1Kills++;  //suma 1 a la variable de asecinatos del equipo 1.
    }
  }
  return 1;
}
pawn Код:
public Partida()  //El Timer
{
  if(Equipo1Kills > Equipo2Kills){  //si los asecinatos del equipo 1 son mas que los del equipo 2...
    for(new i=0; i<MAX_PLAYERS; i++){  //variable q almacena todos los id de los jugadores
      if(IsPlayerConnected(i) && gTeam[i] == EQUIPO2){  //si i esta conectado y es miembro del equipo 1...
        GameTextForPlayer(i, "-B-Tu equipo ha Ganado la batalla!", 3000, 3);  //manda un mensaje
      }
    }
  }
  if(Equipo1Kills < Equipo2Kills){  //si los asecinatos del equipo 2 son mas que los del equipo 1...
    for(new i=0; i<MAX_PLAYERS; i++){
      if(IsPlayerConnected(i) && gTeam[i] == EQUIPO2){
        GameTextForPlayer(i, "-B-Tu equipo ha Ganado la batalla!", 3000, 3);
      }
    }
  }
  else{
    for(new i=0; i<MAX_PLAYERS; i++){
      if(IsPlayerConnected(i)){
        GameTextForPlayer(i, "-B-EMPATE!", 3000, 3);
      }
    }
  }
}
Espero que te sirva
Reply
#6

bn escucha the_chaoz, en este momento no tengo mi sv x problemas con mi PC pero en un par de dias lo utilizare y te avisare cual fue el resultado pero creo q va a funcionar,,, oye pero en ves de q a cada ekipo ganador le salga un msj no se puede hacer q directamente salga un msj para todos diciendo q equipo gano creo q estoy pidiendo mucho pero asi voy a aprender bien jeje desde ya muchas gracias ya lo probare y te avisare cual fue el resultado amigaso no re vemo
Reply
#7

si usa format
Reply
#8

format.... no entendi xD
Reply
#9

perdon format no sirve en este caso xD.
segun lo q entendi
lo que tienes q cambiar es:
pawn Код:
public Partida()  //El Timer
{
  if(Equipo1Kills > Equipo2Kills){  //si los asecinatos del equipo 1 son mas que los del equipo 2...
    for(new i=0; i<MAX_PLAYERS; i++){  //variable q almacena todos los id de los jugadores
      if(IsPlayerConnected(i)){  //si i esta conectado...
        GameTextForPlayer(i, "-B-El equipo 1 ha Ganado la batalla!", 3000, 3);  //manda un mensaje
      }
    }
  }
  if(Equipo1Kills < Equipo2Kills){  //si los asecinatos del equipo 2 son mas que los del equipo 1...
    for(new i=0; i<MAX_PLAYERS; i++){
      if(IsPlayerConnected(i)){
        GameTextForPlayer(i, "-B-El equipo 2 ha Ganado la batalla!", 3000, 3);
      }
    }
  }
  else{
    for(new i=0; i<MAX_PLAYERS; i++){
      if(IsPlayerConnected(i)){
        GameTextForPlayer(i, "-B-EMPATE!", 3000, 3);
      }
    }
  }
}
y de esta forma el mensaje lo mandaria a todos
Reply
#10

Quote:
Originally Posted by the_chaoz
perdon format no sirve en este caso xD.
segun lo q entendi
lo que tienes q cambiar es:
pawn Код:
public Partida()  //El Timer
{
  if(Equipo1Kills > Equipo2Kills){  //si los asecinatos del equipo 1 son mas que los del equipo 2...
    for(new i=0; i<MAX_PLAYERS; i++){  //variable q almacena todos los id de los jugadores
      if(IsPlayerConnected(i)){  //si i esta conectado...
        GameTextForPlayer(i, "-B-El equipo 1 ha Ganado la batalla!", 3000, 3);  //manda un mensaje
      }
    }
  }
  if(Equipo1Kills < Equipo2Kills){  //si los asecinatos del equipo 2 son mas que los del equipo 1...
    for(new i=0; i<MAX_PLAYERS; i++){
      if(IsPlayerConnected(i)){
        GameTextForPlayer(i, "-B-El equipo 2 ha Ganado la batalla!", 3000, 3);
      }
    }
  }
  else{
    for(new i=0; i<MAX_PLAYERS; i++){
      if(IsPlayerConnected(i)){
        GameTextForPlayer(i, "-B-EMPATE!", 3000, 3);
      }
    }
  }
}
y de esta forma el mensaje lo mandaria a todos
gracias kpo ya lo probare y te avisare si funciona o no en caso de no funcionar posteare los errores ok no re vemo...
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)