public OnPlayerUpdate(playerid)
{
if(Ingresado[playerid] == false)
{
if(GetPlayerInterior(playerid) != 0 && GetPlayerWeapon(playerid) != 0) {
SetPlayerArmedWeapon(playerid,1);
return 0;
}
}
if(CColor[playerid] == true)
{
new
keys,
updown,
leftright,
Archivo[64];
GetPlayerKeys(playerid, keys, updown, leftright);
if(updown < 0) CSelec[playerid]--;//ARRIBA
else if(updown > 0) CSelec[playerid]++;//ABAJO
if(CSelec[playerid] > 4) CSelec[playerid] = 1;
else if(CSelec[playerid] < 1) CSelec[playerid] = 4;
if(keys & KEY_FIRE)
{
new
ColorC = RGBA(COLORES[playerid][0], COLORES[playerid][1], COLORES[playerid][2], COLORES[playerid][3]);
format(Archivo, sizeof Archivo, "Clanes/%s.ini", Clan_TAG[playerid]);
dini_IntSet(Archivo, "Color", ColorC);
CColor[playerid] = false;
OcultarCombinador(playerid);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
if(Clan_ID[playerid] == Clan_ID[i])
SetPlayerColor(i, ColorC);
}
TogglePlayerControllable(playerid, 1);
GameTextForPlayer(playerid, "~y~~h~ Color seleccionado", 3000, 4);
}
if(leftright > 0)//DERECHA
{
if(CSelec[playerid] == 1)//ROJO
{
if(keys & KEY_SPRINT) COLORES[playerid][0] += 5;
else COLORES[playerid][0]++;
if(COLORES[playerid][0] > 255) COLORES[playerid][0] = 0;
}
if(CSelec[playerid] == 2)//VERDE
{
if(keys & KEY_SPRINT) COLORES[playerid][1] += 5;
else COLORES[playerid][1]++;
if(COLORES[playerid][1] > 255) COLORES[playerid][1] = 0;
}
if(CSelec[playerid] == 3)//AZUL
{
if(keys & KEY_SPRINT) COLORES[playerid][2] += 5;
else COLORES[playerid][2]++;
if(COLORES[playerid][2] > 255) COLORES[playerid][2] = 0;
}
if(CSelec[playerid] == 4)//ALPHA
{
if(keys & KEY_SPRINT) COLORES[playerid][3] += 5;
else COLORES[playerid][3]++;
if(COLORES[playerid][3] > 255) COLORES[playerid][3] = 0;
}
}
if(leftright < 0)//IZQUIERDA
{
if(CSelec[playerid] == 1)//ROJO
{
if(keys & KEY_SPRINT) COLORES[playerid][0] -= 5;
else COLORES[playerid][0]--;
if(COLORES[playerid][0] < 0) COLORES[playerid][0] = 255;
}
if(CSelec[playerid] == 2)//VERDE
{
if(keys & KEY_SPRINT) COLORES[playerid][1] -= 5;
else COLORES[playerid][1]--;
if(COLORES[playerid][1] < 0) COLORES[playerid][1] = 255;
}
if(CSelec[playerid] == 3)//AZUL
{
if(keys & KEY_SPRINT) COLORES[playerid][2] -= 5;
else COLORES[playerid][2]--;
if(COLORES[playerid][2] < 0) COLORES[playerid][2] = 255;
}
if(CSelec[playerid] == 4)//ALHPA
{
if(keys & KEY_SPRINT) COLORES[playerid][3] -= 5;
else COLORES[playerid][3]--;
if(COLORES[playerid][3] < 0) COLORES[playerid][3] = 255;
}
}
ActualizarCombinador(playerid);
}
return 1;
}
//OnGameModeInit...
SetTimer("ActualizarListaJugadores", 1500, 1);
SetTimer("ActualizarTopPlayers", 3500, 1);
SetTimer("ActualizarTopClanes", 5000, 1);
public ActualizarTopClanes()
{
new
File:file,
Archivo[64],
string[128],
Linea,
Lugar,
Float:MAX_VALOR = -1.0;
//EXTRAER DATOS DEL ARCHIVO "Clanes.txt"
file = fopen("Clanes.txt", io_read);
while(fread(file, string))
{
new
v = strfind(string, ";", true);
strmid(NOMBRE[Linea], string, 0, v, 24);
format(Archivo, sizeof Archivo, "Clanes/%s.ini", NOMBRE[Linea]);
if(dini_Exists(Archivo))
{
VALOR[Linea] = dini_Float(Archivo, "Ratio");
}
Linea++;
}
fclose(file);
//SACAR LUGARES Y GUARDARLOS
Lugar = 1;
while(Lugar < MAX_TOP_CLANES+1)
{
for(new i = 0; i < MAX_DATOS; i++)
{
if(EnTop[i] == false)
{
if(VALOR[i] > MAX_VALOR)
{
MAX_VALOR = VALOR[i];
TopC[Lugar] = i;
}
}
}
strmid(TopInfoC[Lugar][NickTOP], NOMBRE[TopC[Lugar]], 0, strlen(NOMBRE[TopC[Lugar]]), 24);
format(Archivo, sizeof Archivo, "Clanes/%s.ini", TopInfoC[Lugar][NickTOP]);
TopInfoC[Lugar][AsesinatosTOP] = dini_Int(Archivo, "Asesinatos");
TopInfoC[Lugar][MuertesTOP] = dini_Int(Archivo, "Muertes");
TopInfoC[Lugar][RatioTOP] = dini_Float(Archivo, "Ratio");
EnTop[TopC[Lugar]] = true;
MAX_VALOR = -1;
Lugar++;
}
//RESETEAR DATOS:
for(new s = 0; s < MAX_DATOS; s++)
{
EnTop[s] = false;
NOMBRE[s][0] = 0;
VALOR[s] = 0.0;
}
//GUARDAR DATOS EN UNA CADENA DE CARACTERES
format(DLG_TOP_CLAN_STR, sizeof DLG_TOP_CLAN_STR, "");
Lugar = 1;
while(Lugar < MAX_TOP_CLANES+1)
{
if(strlen(TopInfoP[Lugar][NickTOP])) {
format(DLG_TOP_CLAN_STR, sizeof DLG_TOP_CLAN_STR,
"%s| %2d | Asesinatos: %6d | Muertes: %6d | A/M: %0.1f| Clan: %s \n",
DLG_TOP_CLAN_STR, Lugar, TopInfoC[Lugar][AsesinatosTOP], TopInfoC[Lugar][MuertesTOP],
TopInfoC[Lugar][RatioTOP], TopInfoC[Lugar][NickTOP]);
}
Lugar++;
}
// print(DLG_TOP_CLAN_STR); //DEBUG
SetTimer("ActualizarTopClanes", 62000, 0);
}
public ActualizarTopPlayers()
{
new
File:file,
Archivo[64],
string[128],
Linea,
Lugar,
Float:MAX_VALOR = -1.0;
//EXTRAER DATOS DEL ARCHIVO "Jugadores.txt"
file = fopen("Jugadores.txt", io_read);
while(fread(file, string))
{
new
v = strfind(string, ";", true);
strmid(NOMBRE[Linea], string, 0, v, 24);
format(Archivo, sizeof(Archivo), "Jugadores/%s.ini", NOMBRE[Linea]);
if(dini_Exists(Archivo))
{
VALOR[Linea] = dini_Float(Archivo, "Ratio");
}
Linea++;
}
fclose(file);
//SACAR LUGARES Y GUARDARLOS
Lugar = 1;
while(Lugar < MAX_TOP_PLAYERS+1)
{
for(new i = 0; i < MAX_DATOS; i++)
{
if(EnTop[i] == false)
{
if(VALOR[i] > MAX_VALOR)
{
MAX_VALOR = VALOR[i];
TopP[Lugar] = i;
}
}
}
strmid(TopInfoP[Lugar][NickTOP], NOMBRE[TopP[Lugar]], 0, strlen(NOMBRE[TopP[Lugar]]), 24);
format(Archivo, sizeof(Archivo), "Jugadores/%s.ini", TopInfoP[Lugar][NickTOP]);
TopInfoP[Lugar][AsesinatosTOP] = dini_Int(Archivo, "Asesinatos");
TopInfoP[Lugar][MuertesTOP] = dini_Int(Archivo, "Muertes");
TopInfoP[Lugar][RatioTOP] = dini_Float(Archivo, "Ratio");
EnTop[TopP[Lugar]] = true;
MAX_VALOR = -1;
Lugar++;
}
//RESETEAR DATOS:
for(new s = 0; s < MAX_DATOS; s++)
{
EnTop[s] = false;
NOMBRE[s][0] = 0;
VALOR[s] = 0.0;
}
//GUARDAR DATOS EN UNA CADENA DE CARACTERES
format(DLG_TOP_PLY_STR, sizeof(DLG_TOP_PLY_STR),"");
Lugar = 1;
while(Lugar < MAX_TOP_PLAYERS+1)
{
if(strlen(TopInfoP[Lugar][NickTOP])) {
format(DLG_TOP_PLY_STR, sizeof(DLG_TOP_PLY_STR),
"%s| %2d | Asesinatos: %6d | Muertes: %6d | A/M: %0.1f| Nick: %s \n",
DLG_TOP_PLY_STR, Lugar, TopInfoP[Lugar][AsesinatosTOP], TopInfoP[Lugar][MuertesTOP],
TopInfoP[Lugar][RatioTOP], TopInfoP[Lugar][NickTOP]);
}
Lugar++;
}
// print(DLG_TOP_PLY_STR); //DEBUG
}
//Y yo creo que aqui viene el problema, por que intente ponerlo en 200 milisegundos y se lagueo de una, en vez en 60000 tarda mas en laguearse xD
SetTimer("ActualizarTopPlayers", 60000, 0); // En este
SetTimer("ActualizarListaJugadores", 10000, 0); // En este no se xD
Amigo a mi me pasa lo mismo, eso no es lo que muestras hay, es un ataque ddos, lo digo porque a mi me atacan el server tambien,es ataque ddos.
|
claro que aparecen, fijense en el log's y miren los incoming conection
|