Ayudita porfavor
#1

Hola amigos del samp, hice una funciуn para crear una zona pacifica,y puse una restricciуn para que no puedan usar armas dentro de la zona pacifica ejemplo /armas, pero ahora el problema me dice que estoy dentro de la zona pacifica que no puedo usar armas aun asн este en otro sitio que no sea la zona que marque como pacifica, no se si me equivoque en los true o false, alguien me pueda dar una revisada.


mi funcion:

pawn Код:
#include <a_samp>

#define COLOR_RED  0xFF0000FF
#define IsPlayerInArea
#define COLOR_GREY 0xAFAFAFAA


new bool:EstaEnZonaPacifica[MAX_PLAYERS];
forward OnPlayerEnterDynamicArea(playerid, areaid);
forward OnPlayerLeaveDynamicArea(playerid, areaid);
native CreateDynamicRectangle(Float:minx, Float:miny, Float:maxx, Float:maxy, worldid = -1, interiorid = -1, playerid = -1);
new ZonaPaz;

public OnFilterScriptInit()
{
ZonaPaz = CreateDynamicRectangle(-1712.617919, -199.212921, -1254.051391, 66.825927, -1, -1, -1);
GangZoneShowForAll(ZonaPaz, 0xFF030089);
return 1;
}

#if defined FILTERSCRIPT

#else

main(){}

#endif


public OnPlayerConnect(playerid)
{
EstaEnZonaPacifica[playerid] = false;
return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
EstaEnZonaPacifica[playerid] = false;
return 1;
}


public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/armas", cmdtext, true, 10) == 0)
{
if(IsPlayerInArea(playerid, ZonaPaz)) return GameTextForPlayer(playerid, "~w~No puedes usar armas, ~r~en un zona pacifica!", 4000, 3),PlayerPlaySound(playerid,1149,0.0,0.0,0.0);

return 1;
}


return 0;
}

public OnPlayerEnterDynamicArea(playerid, areaid)
{
if(areaid == ZonaPaz)
{
GameTextForPlayer(playerid, "~w~Has entrado a una zona pacifica, ~r~todas tus armas fueron removidas!", 4000, 3);//texto que aparecerб en la pantalla del jugador
ResetPlayerWeapons(playerid);//Le quitarб las armas
EstaEnZonaPacifica[playerid] = true;
}
return 1;
}

public OnPlayerLeaveDynamicArea(playerid, areaid)
{
if(areaid == ZonaPaz)
{
GameTextForPlayer(playerid, "~w~Has salido de la zona pacifica, ~b~armas permitidas!", 4000, 3);//Texto que aparecerб
GivePlayerWeapon(playerid, 24, 1000); // Da Armas
GivePlayerWeapon(playerid, 26, 1000); // Da Armas
GivePlayerWeapon(playerid, 31, 2000); // Da Armas
GivePlayerWeapon(playerid, 32, 1500); // Da Armas
GivePlayerWeapon(playerid, 34, 1000); // Da Armas
//puedes agregar mбs funciones como GivePlayerWeapon etc.
EstaEnZonaPacifica[playerid] = false;
}
return 1;
}

public OnPlayerSpawn(playerid) {
    GangZoneShowForPlayer(playerid, ZonaPaz, 0xFF030089);

    return 1;
gracias
Reply
#2

y si haces la restricciуn del comando con esta variable?

pawn Код:
EstaEnZonaPacifica[playerid]
cuando entra a la zona, la seteas a true. Pues entonces pon en la restricciуn que si esa variable estб a true le retorne el SendClientMessage

PD: es inъtil setear la variable a false cuando se conecta y cuando se desconecta tambiйn, con colocarla en un sуlo callback basta. (Yo la dejarнa solo en OnPlayerConnect)
Reply
#3

public OnPlayerEnterDynamicArea(playerid, areaid)
{
if(areaid == ZonaPaz)
{
GameTextForPlayer(playerid, "~w~Has entrado a una zona pacifica, ~r~todas tus armas fueron removidas!", 4000, 3);//texto que aparecerб en la pantalla del jugador
ResetPlayerWeapons(playerid);//Le quitarб las armas
EstaEnZonaPacifica[playerid] = true;
}
return 1;
}

Esta funcion siempre retorna 1, de ahн que falle, arreglalo asн.

public OnPlayerEnterDynamicArea(playerid, areaid)
{
if(areaid == ZonaPaz)
{
GameTextForPlayer(playerid, "~w~Has entrado a una zona pacifica, ~r~todas tus armas fueron removidas!", 4000, 3);//texto que aparecerб en la pantalla del jugador
ResetPlayerWeapons(playerid);//Le quitarб las armas
EstaEnZonaPacifica[playerid] = true;
return 1;
}
return 0;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)