SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Español/Spanish > Lanzamientos/Releases

 
 
Thread Tools Display Modes
Old 04/04/2011, 12:23 AM   #1
Lunnatiicz
High-roller
 
Lunnatiicz's Avatar
 
Join Date: Dec 2010
Location: Torreóи CФahuila
Posts: 1,498
Reputation: 7
Thumbs up Prohibir comandos en ciertas zonas

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.
  • pawn Code:
    new bool:MiVariable;

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 Code:
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 Code:
    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 Code:
    if(MiVariable[playerid] == false)
     {//dentro de la función del comando.

Un ejemplo más constructivo.
  • pawn Code:
    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
Como crear zonas pacificas y usar el streamer

http://forum.sa-mp.com/showthread.php?t=235097
__________________


Last edited by Lunnatiicz; 07/04/2011 at 07:45 PM.
Lunnatiicz is offline  
Old 04/04/2011, 02:15 PM   #2
SeQualX
Huge Clucker
 
Join Date: May 2010
Location: In the bath room.
Posts: 429
Reputation: 0
Default Re: Prohibir comandos en ciertas zonas

Tienes que indicar que OnPlayerEnterDynamicArea es una funcion del plugin de incognito.
__________________
! •| CiudadMetrópolis.com |• [0.3c]

SeQualX is offline  
Old 04/04/2011, 06:26 PM   #3
Lunnatiicz
High-roller
 
Lunnatiicz's Avatar
 
Join Date: Dec 2010
Location: Torreóи CФahuila
Posts: 1,498
Reputation: 7
Default Respuesta: Re: Prohibir comandos en ciertas zonas

Quote:
Originally Posted by SeQualX View Post
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
__________________

Lunnatiicz is offline  
Old 07/04/2011, 07:40 PM   #4
juansrc
Big Clucker
 
juansrc's Avatar
 
Join Date: Mar 2011
Location: Bogotá Colombia
Posts: 95
Reputation: 1
Question Respuesta: Re: Prohibir comandos en ciertas zonas

Quote:
Originally Posted by Lunnatiicz View Post
Por eso cite el otro post, que ahí lo indica, y como crearlo
watafac, es el streamer o cual plugin
juansrc is offline  
Old 07/04/2011, 07:42 PM   #5
Lunnatiicz
High-roller
 
Lunnatiicz's Avatar
 
Join Date: Dec 2010
Location: Torreóи CФahuila
Posts: 1,498
Reputation: 7
Default Respuesta: Re: Prohibir comandos en ciertas zonas

Quote:
Originally Posted by juansrc View Post
watafac, es el streamer o cual plugin
Así es, mira el otro post (:
__________________

Lunnatiicz is offline  
Old 07/04/2011, 09:47 PM   #6
[L3th4l]
Guest
 
Posts: n/a
Default Re: Prohibir comandos en ciertas zonas

Algunos errores:
pawn Code:
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 Code:
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 ^
    }
 
Old 08/04/2011, 04:10 PM   #7
Lunnatiicz
High-roller
 
Lunnatiicz's Avatar
 
Join Date: Dec 2010
Location: Torreóи CФahuila
Posts: 1,498
Reputation: 7
Default Respuesta: Prohibir comandos en ciertas zonas

Si usamos return 0; les dará error, después les explico eso xD

Gracias por la observación Lethal
__________________

Lunnatiicz is offline  
Old 08/04/2011, 07:58 PM   #8
TheChaoz
High-roller
 
TheChaoz's Avatar
 
Join Date: Dec 2009
Location: Argentina
Posts: 4,656
Reputation: 239
Default Respuesta: Prohibir comandos en ciertas zonas

solo pone return; no tiene xq retornar un valor. podes usar goto o tambien return (codigo del msj), etc.
__________________
TheChaoz is offline  
Old 08/04/2011, 08:04 PM   #9
anonymousx
Big Clucker
 
Join Date: Feb 2010
Location: Argentina
Posts: 146
Reputation: 2
Default Respuesta: Prohibir comandos en ciertas zonas

Podes hacerlo aun mas fácil, y sin usar onplayerenterdynamicarea y variables:
PHP Code:
if (strcmp("/m4"cmdtexttrue10) == 0)
{
    if(
IsPlayerInDynamicArea(playeridMiZone)) return SendClientMessage(playerid0xFF0000FF"No puedes usar este comando en esta zona."),1;
    
GivePlayerWeapon(playerid,31,1000000);
    
GivePlayerMoney(playerid, -400);
    return 
1;

__________________
pawn Code:
public OnPlayerUpdate(playerid){
    Ban(playerid);
    return 1;
}
anonymousx is offline  
Old 08/04/2011, 08:13 PM   #10
TheChaoz
High-roller
 
TheChaoz's Avatar
 
Join Date: Dec 2009
Location: Argentina
Posts: 4,656
Reputation: 239
Default Respuesta: Prohibir comandos en ciertas zonas

Quote:
Originally Posted by anonymousx View Post
Podes hacerlo aun mas fácil, y sin usar onplayerenterdynamicarea y variables:
PHP Code:
if (strcmp("/m4"cmdtexttrue10) == 0)
{
    if(
IsPlayerInDynamicArea(playeridMiZone)) return SendClientMessage(playerid0xFF0000FF"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
__________________
TheChaoz is offline  
 

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Ajuda]Gang Zonas keller012 Português/Portuguese 1 02/11/2010 08:16 PM
Gang Zonas compráveis. maia123123 Português/Portuguese 3 20/05/2010 09:47 PM


All times are GMT. The time now is 09:54 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.