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;
}
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); } |
Puedes empezar a probar, agregando mбs lugares dуnde setees que la zona estб siendo capturada a 0, dнgamos, yo la agregarнa acб:
Debajo del Message lo pondrнa "InfoZonaCaptura[checkpointid][ZonaAtacada] = 0; " y luego volverнa a probar, tambiйn despuйs de eso intenta ejecutar la funciуn de guardado de las zonas de captura, dнgamos GuardarZonas();, no se como sea el tuyo. Es ir probando, revisa bien todo, a lo mejor el error es algo muy estъpido. |