SA-MP Forums Archive
Cargos - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: Cargos (/showthread.php?tid=540763)



Cargos - Jeree10 - 07.10.2014

Hola quisiera saber como hacer para que a los policias no les den cargos en zona seguro, dejo codigo:
Код:
public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid)
{   for(new i = 0; i < MAX_PLAYERS; i++)
	
	{
	if(Info[playerid][pWantedLevel] == 0)
 	{
	new Float: x, Float: y, Float: z;
	new zone[MAX_ZONE_NAME];
	new string[200], attacker[MAX_PLAYER_NAME];
	GetPlayer2DZone(playerid, zone, MAX_ZONE_NAME);
    GetPlayerName(playerid,attacker,sizeof(attacker));
    PlayerPlaySoundEx(1084, x, y, z);
   	SetTimerEx("QuitarCargos1", 300000, 0, "d", playerid);
   	SetPlayerWantedLevel(playerid, 1);
 	Info[playerid][pWantedLevel] = 1;
 	SetPlayerMarkerForPlayer(i, playerid, c1_color);
   	SendClientMessage(playerid, COLOR_WHITE, "Fuiste descubierto por un guardia de seguridad, escapa de la zona.");
   	SendClientMessage(playerid, COLOR_WHITE, "Si te escondes bien durante 5 minutos, la policнa perderб tu rastro.");
	format(string, sizeof(string), "[Central de policia] {FFFFFF}reportando: {00CCFF}%s {FFFFFF}[%d] estб atacando a la gente en %s.", attacker, playerid, zone);
	    SendRadioMessage(1, TEAM_BLUE_COLOR, string);
    }
    }
    return 1;
}



Respuesta: Cargos - Ghost112397 - 07.10.2014

Proba asн:
pawn Код:
public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid)
{
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        if(VariableDePolicia >= 1) return 1;
        {
            if(Info[playerid][pWantedLevel] == 0)
            {
                new Float: x, Float: y, Float: z;
                new zone[MAX_ZONE_NAME];
                new string[200], attacker[MAX_PLAYER_NAME];
                GetPlayer2DZone(playerid, zone, MAX_ZONE_NAME);
                GetPlayerName(playerid,attacker,sizeof(attacker));
                PlayerPlaySoundEx(1084, x, y, z);
                SetTimerEx("QuitarCargos1", 300000, 0, "d", playerid);
                SetPlayerWantedLevel(playerid, 1);
                Info[playerid][pWantedLevel] = 1;
                SetPlayerMarkerForPlayer(i, playerid, c1_color);
                SendClientMessage(playerid, COLOR_WHITE, "Fuiste descubierto por un guardia de seguridad, escapa de la zona.");
                SendClientMessage(playerid, COLOR_WHITE, "Si te escondes bien durante 5 minutos, la policнa perderб tu rastro.");
                format(string, sizeof(string), "[Central de policia] {FFFFFF}reportando: {00CCFF}%s {FFFFFF}[%d] estб atacando a la gente en %s.", attacker, playerid, zone);
                SendRadioMessage(1, TEAM_BLUE_COLOR, string);
            }
        }
    }
    return 1;
}



Respuesta: Cargos - SickAttack - 07.10.2014

No ocupas un loop, solamente lo hara mas lento al ejecutarlo.

pawn Код:
new bool:VariableDePolicia[MAX_PLAYERS] = false,
bool:VariableDeEnZonaSegura[playerid] = false;

VariableDePolicia[playerid] = true; // OnPlayerSpawn(playerid) > Solamente si es policia.
VariableDePolicia[playerid] = false; // OnPlayerDisconnect(playerid).
VariableDeEnZonaSegura[playerid] = true; // Cuando entra una zona segura.
VariableDeEnZonaSegura[playerid] = false; // Cuando sale de una zona segura.

public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid)
{  
    if(VariableDePolicia[playerid] == true && VariableDeEnZonaSegura[playerid] == true) return 1;
    if(Info[playerid][pWantedLevel] == 0)
    {
        new Float: x, Float: y, Float: z, zone[MAX_ZONE_NAME], string[200], attacker[MAX_PLAYER_NAME];
        GetPlayer2DZone(playerid, zone, MAX_ZONE_NAME);
        GetPlayerName(playerid,attacker,sizeof(attacker));
        PlayerPlaySoundEx(1084, x, y, z);
        SetTimerEx("QuitarCargos1", 300000, 0, "d", playerid);
        SetPlayerWantedLevel(playerid, 1);
        Info[playerid][pWantedLevel] = 1;
        SetPlayerMarkerForPlayer(i, playerid, c1_color);
        SendClientMessage(playerid, COLOR_WHITE, "Fuiste descubierto por un guardia de seguridad, escapa de la zona.");
        SendClientMessage(playerid, COLOR_WHITE, "Si te escondes bien durante 5 minutos, la policнa perderб tu rastro.");
        format(string, sizeof(string), "[Central de policia] {FFFFFF}reportando: {00CCFF}%s {FFFFFF}[%d] estб atacando a la gente en %s.", attacker, playerid, zone);
        SendRadioMessage(1, TEAM_BLUE_COLOR, string);
    }
    return 1;
}



Respuesta: Cargos - [J]ulian - 07.10.2014

Necesita el loop para saber si hay un guardia cerca, pero estб mal ubicado como lo tiene.