Prohibir comandos en ciertas zonas -
Lunnatiicz - 04.04.2011
Bien, para los que no saben como bloquear comandos en ciertas zonas, acб les dejo un tutorial con variables/arrays, quizбs no sea el mбs efectivo, pero es ъtil.
Empezamos definiendo nuestro array con el tag Bool, para obtener mбs info sobre las tag y sus tipos lee Este topic creado por Choaz que explica bastante bien muchas funciones.
Ya tenemos la variable de 2 raizes
Quote:
Originally Posted by the_chaoz
Bool => almacena true o false, verdadero o falso.
|
Ahora, cuando tengamos creada nuestra zona, si no sabes como, entra a este otro topic creado por mi para llevar a cabo la creaciуn de zonas seguras. colocaremos en el callback la variable en "false"
Un ejemplo:
pawn Код:
public OnPlayerEnterDynamicArea(playerid, areaid)
{
if(areaid == MiZona)
{
GameTextForPlayer(playerid, "~w~Has entrado a una zona pacifica, ~r~todas tus armas fueron removidas!", 4000, 3);
ResetPlayerWeapons(playerid);
MiVariable[playerid] = false; //Verбs que aquн esta la variable indicando "false"
}
return 1;
}
Asн los comandos se bloquearan en esa zona, pero aъn no terminamos, falta indicar QUE comandos NO serбn utilizados, e indicar cuando se pueden usar (salir del area)
Para indicar que al salir del area sean utilizables, le indicaremos en la variable "true" en el callback siguiente, un ejemplo:
pawn Код:
public OnPlayerLeaveDynamicArea(playerid, areaid)
{
if(areaid == MiZona)
{
GameTextForPlayer(playerid, "~w~Has salido de la zona pacifica, ~b~armas permitidas!", 4000, 3);
MiVariable[playerid] = true; //Acб cambia el valor al salir de la zona
return 1;
}
Para restringir comandos, sуlo debes colocar en sus funciones lo siguiente.
pawn Код:
if(MiVariable[playerid] == false)
{//dentro de la funciуn del comando.
Un ejemplo mбs constructivo.
pawn Код:
if (strcmp("/m4", cmdtext, true, 10) == 0)
{
if(MiVariable[playerid] == false)
{
SendClientMessage(playerid, Rojo, "Aquн no puedes usar comandos de armas!!");
return 1;
}
GivePlayerWeapon(playerid,31,1000000);
GivePlayerMoney(playerid, -400);
return 1;
}
Si tienen alguna duda, dнganme, si hice algo mal, por favor reporten aquн mismo para editar a la brevedad y asн evitar confusiones en futuras referencias.
Saludos!
Quote:
Originally Posted by Lunnatiicz
|
Re: Prohibir comandos en ciertas zonas -
SeQualX - 04.04.2011
Tienes que indicar que OnPlayerEnterDynamicArea es una funcion del plugin de incognito.
Respuesta: Re: Prohibir comandos en ciertas zonas -
Lunnatiicz - 04.04.2011
Quote:
Originally Posted by SeQualX
Tienes que indicar que OnPlayerEnterDynamicArea es una funcion del plugin de incognito.
|
Por eso cite el otro post, que ahн lo indica, y como crearlo
Respuesta: Re: Prohibir comandos en ciertas zonas -
juansrc - 07.04.2011
Quote:
Originally Posted by Lunnatiicz
Por eso cite el otro post, que ahн lo indica, y como crearlo 
|
watafac, es el streamer o cual plugin
Respuesta: Re: Prohibir comandos en ciertas zonas -
Lunnatiicz - 07.04.2011
Quote:
Originally Posted by juansrc
watafac, es el streamer o cual plugin
|
Asн es, mira el otro post (:
Re: Prohibir comandos en ciertas zonas - [L3th4l] - 07.04.2011
Algunos errores:
pawn Код:
public OnPlayerLeaveDynamicArea(playerid, areaid)
{
if(areaid == MiZona)
{
GameTextForPlayer(playerid, "~w~Has salido de la zona pacifica, ~b~armas permitidas!", 4000, 3);
MiVariable[playerid] = true; //Acб cambia el valor al salir de la zona
return 1;
} // < Te falto eso
return 1;
}
i:
pawn Код:
if(MiVariable[playerid] == false)
{
SendClientMessage(playerid, Rojo, "Aquн no puedes usar comandos de armas!!");
return 0; // Paramos el comando de que continue, y nomas mande ese mensaje ^
}
Respuesta: Prohibir comandos en ciertas zonas -
Lunnatiicz - 08.04.2011
Si usamos return 0; les darб error, despuйs les explico eso xD
Gracias por la observaciуn Lethal
Respuesta: Prohibir comandos en ciertas zonas -
TheChaoz - 08.04.2011
solo pone return; no tiene xq retornar un valor. podes usar goto o tambien return (codigo del msj), etc.
Respuesta: Prohibir comandos en ciertas zonas -
anonymousx - 08.04.2011
Podes hacerlo aun mas fбcil, y sin usar onplayerenterdynamicarea y variables:
PHP код:
if (strcmp("/m4", cmdtext, true, 10) == 0)
{
if(IsPlayerInDynamicArea(playerid, MiZone)) return SendClientMessage(playerid, 0xFF0000FF, "No puedes usar este comando en esta zona."),1;
GivePlayerWeapon(playerid,31,1000000);
GivePlayerMoney(playerid, -400);
return 1;
}
Respuesta: Prohibir comandos en ciertas zonas -
TheChaoz - 08.04.2011
Quote:
Originally Posted by anonymousx
Podes hacerlo aun mas fбcil, y sin usar onplayerenterdynamicarea y variables:
PHP код:
if (strcmp("/m4", cmdtext, true, 10) == 0)
{
if(IsPlayerInDynamicArea(playerid, MiZone)) return SendClientMessage(playerid, 0xFF0000FF, "No puedes usar este comando en esta zona."),1;
GivePlayerWeapon(playerid,31,1000000);
GivePlayerMoney(playerid, -400);
return 1;
}
|
usa [pawn ] y [/pawn], no los de php