09.04.2015, 21:18
Buenas, alguien me puede ayer con mi sistema? Hace mбs de dos semanas que vengo intentando repararlo, pero no puedo. El problema que tengo es que cuando termino de capturar una zona, y viene alguien del equipo enemigo a intentar capturarla nuevamente, no deja, dice que la zona estб siendo capturada.
Desde ya muchas gracias.
PHP код:
public OnPlayerEnterDynamicCP(playerid, checkpointid)
{
if(checkpointid == ACP1)
{
new string[128], pZone;
if(InfoZonaCaptura[checkpointid][ZonaAtacada] == 1) return SendClientMessage(playerid, COLOR_ROJO, "Esta zona estб siendo capturada.");
if(InfoZonaCaptura[checkpointid][EquipoProp] == Equipo[playerid]) return SendClientMessage(playerid, COLOR_ROJO, "Tu equipo es dueсo de esta zona.");
if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_ROJO, "No puedes capturar estado en un vehнculo!");
InfoZonaCaptura[checkpointid][ZonaAtacada] = 1;
pZone = PlayerArea(playerid);
VarTempJugador[playerid][pCapturandoZona] = 1;
ContadorDeTiempo[playerid] = 30;
TimerDeTiempo[playerid] = SetTimerEx("CapturarZona", 1000, true, "iii", playerid, checkpointid, pZone);
format(string, sizeof(string), "{FFFFFF}[ZONAS] {FFFF00}%s {FFFFFF}estб siendo capturada!", ZoneName(checkpointid));
SendClientMessageToAll(-1, string);
}
return 1;
}
forward CapturarZona(playerid, checkpointid, zonename);
public CapturarZona(playerid, checkpointid, zonename)
{
new time[16];
ContadorDeTiempo[playerid] --;
format(time, sizeof(time), "~g~%i..", ContadorDeTiempo[playerid]);
GameTextForPlayer(playerid, time, 1100, 3);
if(ContadorDeTiempo[playerid] == 0)
{
if(checkpointid == ACP1)
{
ColorZona1 = PlayerGangColor(playerid);
}
GangZoneStopFlashForAll(zonename);
GangZoneShowForAll(zonename, PlayerGangColor(playerid));
SetZoneColor(zonename, playerid);
new string[128];
format(string, sizeof(string), "Recibiste {FFFF00}+3 score + $2500{FFFFFF} por capturar la zona {15FF00}%s!", ZoneName(checkpointid));
SendClientMessage(playerid, -1, string);
GivePlayerMoneyEx(playerid, 2500);
SetPlayerScore(playerid, GetPlayerScore(playerid)+3);
InfoZonaCaptura[checkpointid][ZonaAtacada] = 0;
VarTempJugador[playerid][pCapturandoZona] = 0;
foreach(Player, i)
{
if(InfoZonaCaptura[checkpointid][EquipoProp] == Equipo[i])
{
format(string, sizeof(string), "Tu equipo ha perdido la zona {FF0000}%s{FFFFFF}, perdiste {FF0000}-1{FFFFFF} score!", ZoneName(checkpointid));
SetPlayerScore(i, GetPlayerScore(i)-1);
SendClientMessage(i, -1, string);
}
else if(Equipo[i] == Equipo[playerid])
{
if(i != playerid)
{
format(string, sizeof(string), "Te equipo ha capturado la zona {15FF00}%s{FFFFFF}, ganaste {15FF00}+1{FFFFFF} score!", ZoneName(checkpointid));
SetPlayerScore(i, GetPlayerScore(i)+1);
SendClientMessage(i, -1, string);
}
}
}
KillTimer(TimerDeTiempo[playerid]);
InfoZonaCaptura[checkpointid][EquipoProp] = Equipo[playerid];
}
return 1;
}