26.11.2016, 00:03
Then there's the one I have in my friend's gm he shows 1 2 3 place in the race sorry I'm from Brazil
Код:
public TimerTextDrawEvento() { new MaximosPegos[3] = -1; foreach (Player, I) { if(FoiProEvento[I] == 1) { new S[50]; if(TotalDeCpsQuePegou[I] >= MaximosPegos[0]) { format(S,sizeof(S),"~r~~h~~h~1| ~w~/ ~r~~h~%d", JogadoresNoEvento); TextDrawSetString(TextoEvento[I], S); TextDrawShowForPlayer(I, TextoEvento[I]); MaximosPegos[0] = TotalDeCpsQuePegou[I]; MaximosPegos[1] = MaximosPegos[0] - 1; MaximosPegos[2] = MaximosPegos[0] - 2; } else if(TotalDeCpsQuePegou[I] == MaximosPegos[1]) { format(S,sizeof(S),"~r~~h~~h~2| ~w~/ ~r~~h~%d", JogadoresNoEvento); TextDrawSetString(TextoEvento[I], S); TextDrawShowForPlayer(I, TextoEvento[I]); } else if(TotalDeCpsQuePegou[I] == MaximosPegos[2]) { format(S,sizeof(S),"~r~~h~~h~3| ~w~/ ~r~~h~%d", JogadoresNoEvento); TextDrawSetString(TextoEvento[I], S); TextDrawShowForPlayer(I, TextoEvento[I]); } for(new C = ID_Atual_CP_ADM; C >= 0; C --) { if(TotalDeCpsQuePegou[I] == (MaximoPegoAtual - C)) { format(S,sizeof(S),"~r~~h~~h~%d| ~w~/ ~r~~h~%d", C, JogadoresNoEvento); TextDrawSetString(TextoEvento[I], S); TextDrawShowForPlayer(I, TextoEvento[I]); } } new S[50]; format(S,sizeof(S),"~r~~h~~h~%d| ~w~/ ~r~~h~%d", Posicao[I], JogadoresNoEvento); TextDrawSetString(TextoEvento[I], S); TextDrawShowForPlayer(I, TextoEvento[I]); } } new ar[MAX_PLAYERS][2], tmpsize; tmpsize = fill (ar); process( ar , tmpsize ); CreateTop (ar , tmpsize); if(LimiteJogadoresEvento != -1) { if(CPSADMAtivados == 0) { if(ArquivoCPCarregado == -1) CancelarEvento(); else { new S[175], TotalQueFoi = 0; foreach (Player, I) if(FoiProEvento[I] == 1) TotalQueFoi ++; if(TempoMelhorCP == 999999999) format(S, sizeof(S), "~r~~h~~h~CPs ID: ~w~%d~n~~p~~h~Recorde: Nenhum~n~~b~~h~~h~Jogadores no evento: ~w~%d", ArquivoCPCarregado, TotalQueFoi); else format(S, sizeof(S), "~r~~h~~h~CPs ID: ~w~%d~n~~p~~h~Recorde: ~w~%s (%02d:%02d:%02d)~n~~b~~h~~h~Jogadores no evento: ~w~%d", ArquivoCPCarregado, NomeMelhor, CPs_Horas(TempoMelhorCP), CPs_Minutos(TempoMelhorCP), CPs_Segundos(TempoMelhorCP), TotalQueFoi); TextDrawSetString(TextoEvento, S); foreach (Player, I) if(FoiProEvento[I] == 1) TextDrawShowForPlayer(I, TextoEvento); } } else { #define Valor_Distancia_Maxima 999999999.999 new Resultado1 = -1, Resultado2 = -1, Resultado3 = -1, Float:Desempate1 = Valor_Distancia_Maxima, Float:Desempate2 = Valor_Distancia_Maxima, Float:Desempate3 = Valor_Distancia_Maxima, Vencedor1 = -1, Vencedor2 = -1, Vencedor3 = -1, Empatados1 = -1, Empatados2 = -1, Ganhador1[MAX_PLAYERS] = -1, Ganhador2[MAX_PLAYERS] = -1, Ganhador3[MAX_PLAYERS] = -1, JaFoiPremiado[MAX_PLAYERS] = 0; // Achar o primeiro colocado ******************************************************************************************************* foreach (Player, I) { if((FoiProEvento[I] == 1) && (TotalDeCpsQuePegou[I] >= Resultado1) && (GetPlayerState(I) == 2)) { Resultado1 = TotalDeCpsQuePegou[I]; } } foreach (Player, I) { if((TotalDeCpsQuePegou[I] == Resultado1) && (GetPlayerState(I) == 2)) { Ganhador1[I] = 1; if(Empatados1 < 2) Empatados1 ++; } else Ganhador1[I] = -1; } foreach (Player, I) { if((Ganhador1[I] == 1) && (GetPlayerState(I) == 2)) { new Float:D = GetDistanceToPoint(I, CoordenadasCPSADM[Resultado1][0], CoordenadasCPSADM[Resultado1][1], CoordenadasCPSADM[Resultado1][2]); if(D <= Desempate1) { Desempate1 = D; Vencedor1 = I; //break; } } } JaFoiPremiado[Vencedor1] = 1; if(Empatados1 == 1) { Desempate1 = Valor_Distancia_Maxima; foreach (Player, I) { if((Ganhador1[I] == 1) && (JaFoiPremiado[I] == 0) && (GetPlayerState(I) == 2)) { new Float:D = GetDistanceToPoint(I, CoordenadasCPSADM[Resultado1][0], CoordenadasCPSADM[Resultado1][1], CoordenadasCPSADM[Resultado1][2]); if(D <= Desempate1) { Desempate1 = D; Vencedor2 = I; //break; } } } JaFoiPremiado[Vencedor2] = 1; } else if(Empatados1 == 2) { Desempate1 = Valor_Distancia_Maxima; foreach (Player, I) { if((Ganhador1[I] == 1) && (JaFoiPremiado[I] == 0) && (GetPlayerState(I) == 2)) { new Float:D = GetDistanceToPoint(I, CoordenadasCPSADM[Resultado1][0], CoordenadasCPSADM[Resultado1][1], CoordenadasCPSADM[Resultado1][2]); if(D <= Desempate1) { Desempate1 = D; Vencedor3 = I; //break; } } } JaFoiPremiado[Vencedor3] = 1; } // Achar o vencedor 2 ******************************************************************************************************* if(Vencedor2 == -1) { foreach (Player, I) { if((FoiProEvento[I] == 1) && (TotalDeCpsQuePegou[I] >= Resultado2) && (TotalDeCpsQuePegou[I] != Resultado1) && (JaFoiPremiado[I] == 0) && (GetPlayerState(I) == 2)) { Resultado2 = TotalDeCpsQuePegou[I]; } } foreach (Player, I) { if((TotalDeCpsQuePegou[I] == Resultado2) && (GetPlayerState(I) == 2)) { Ganhador2[I] = 1; if(Empatados2 < 1) Empatados2 ++; } else Ganhador2[I] = -1; } foreach (Player, I) { if((Ganhador2[I] == 1) && (JaFoiPremiado[I] == 0) && (GetPlayerState(I) == 2)) { new Float:D = GetDistanceToPoint(I, CoordenadasCPSADM[Resultado2][0], CoordenadasCPSADM[Resultado2][1], CoordenadasCPSADM[Resultado2][2]); if(D <= Desempate2) { Desempate2 = D; Vencedor2 = I; //break; } } } JaFoiPremiado[Vencedor2] = 1; if(Empatados2 == 1) { Desempate2 = Valor_Distancia_Maxima; foreach (Player, I) { if((Ganhador2[I] == 1) && (JaFoiPremiado[I] == 0) && (GetPlayerState(I) == 2)) { new Float:D = GetDistanceToPoint(I, CoordenadasCPSADM[Resultado2][0], CoordenadasCPSADM[Resultado2][1], CoordenadasCPSADM[Resultado2][2]); if(D <= Desempate2) { Desempate2 = D; Vencedor3 = I; //break; } } } JaFoiPremiado[Vencedor3] = 1; } } // Achar o vencedor 3 ******************************************************************************************************* if(Vencedor3 == -1) { foreach (Player, I) { if((FoiProEvento[I] == 1) && (TotalDeCpsQuePegou[I] >= Resultado3) && (TotalDeCpsQuePegou[I] != Resultado1) && (TotalDeCpsQuePegou[I] != Resultado2) && (JaFoiPremiado[I] == 0) && (GetPlayerState(I) == 2)) { Resultado3 = TotalDeCpsQuePegou[I]; } } foreach (Player, I) { if((TotalDeCpsQuePegou[I] == Resultado3) && (GetPlayerState(I) == 2)) { Ganhador3[I] = 1; } else Ganhador3[I] = -1; } foreach (Player, I) { if((Ganhador3[I] == 1) && (JaFoiPremiado[I] == 0) && (GetPlayerState(I) == 2)) { new Float:D = GetDistanceToPoint(I, CoordenadasCPSADM[Resultado3][0], CoordenadasCPSADM[Resultado3][1], CoordenadasCPSADM[Resultado3][2]); if(D <= Desempate3) { Desempate3 = D; Vencedor3 = I; //break; } } } JaFoiPremiado[Vencedor3] = 1; } foreach (Player, I) { if(strcmp(NomeVencedor1, PlayerName(I)) == 0) Vencedor1 = I; else if(strcmp(NomeVencedor2, PlayerName(I)) == 0) Vencedor2 = I; else if(strcmp(NomeVencedor3, PlayerName(I)) == 0) Vencedor3 = I; } new S[175]; if(Vencedor3 != -1) format(S, sizeof(S), "~r~1| ~w~%s ~y~%d~n~~r~2| ~w~%s ~y~%d~n~~r~3| ~w~%s ~y~%d", PlayerName(Vencedor1), TotalDeCpsQuePegou[Vencedor1], PlayerName(Vencedor2), TotalDeCpsQuePegou[Vencedor2], PlayerName(Vencedor3), TotalDeCpsQuePegou[Vencedor3]); else if(Vencedor2 != -1) format(S, sizeof(S), "~r~1| ~w~%s ~y~%d~n~~r~2| ~w~%s ~y~%d~n~~r~3| ~w~Ninguem", PlayerName(Vencedor1), TotalDeCpsQuePegou[Vencedor1], PlayerName(Vencedor2), TotalDeCpsQuePegou[Vencedor2]); else if(Vencedor1 != -1) format(S, sizeof(S), "~r~1| ~w~%s ~y~%d~n~~r~2| ~w~Ninguem~n~~r~3| ~w~Ninguem", PlayerName(Vencedor1), TotalDeCpsQuePegou[Vencedor1]); TextDrawSetString(TextoEvento, S); foreach (Player, I) if(FoiProEvento[I] == 1) TextDrawShowForPlayer(I, TextoEvento); } return 1; }