Programación en Pawn - SAMP

Chaleco en el cuerpo (Dos diferentes)

¿Tienes un FilterScript muy bueno y quieres compartirlo con los demás? ¿Qué esperas? ¡Muéstranoslo aquí!
Reglas del Foro

  • Al liberar un FilterScript, debes informar sobre qué trata el código claramente, imágenes o vídeos y la explicación de cómo usarlo.
  • En caso de que quieras publicar un TextDraw que únicamente cumpla una función estética (como ser un TextDraw que muestra el nombre del servidor), es decir, no cumple ninguna función más que decorativa/visual (a diferencia de un TextDraw que realiza la función de velocímetro y contiene los códigos para ello, por ejemplo), debe ir en la sección Guías y Aportes.
  • Si el link de descarga no funciona, el tema será eliminado.
  • Si no eres el autor del FilterScript o has utilizado códigos de otros autores, recuerda colocar los créditos correspondientes. (El plagio es motivo de sanción).

Moderador: Ayudantes

Hola, hice este sistema, funciona perfectamente, si alguien puede mejorar el código puede hacerlo pero respetando los créditos originales.

Sistema 1, funciones:
• Al usar el comando /chaleco se le agrega 100 de chaleco y una armadura al cuerpo.
• Al morir, salir se le quita dicho objeto.
• Si el jugador no tiene chaleco para tiene la función "UsaChaleco" activada se le quitará el objeto.
Descarga:

Sistema 2, funciones:
• Al morir, salir se le quita el objeto.
• Si el jugador no tiene chaleco para tiene la función "TieneChaleco" activada se le quitará el objeto.
• Si el jugadot tiene chaleco pero no tiene la función activada, esta se le activará y agregará el objeto.
Descarga:

Imagen:
Eduardo_1 escribió:
01 Ene 2018 11:25
Hola, hice este sistema, funciona perfectamente, si alguien puede mejorar el código puede hacerlo pero respetando los créditos originales.

Sistema 1, funciones:
• Al usar el comando /chaleco se le agrega 100 de chaleco y una armadura al cuerpo.
• Al morir, salir se le quita dicho objeto.
• Si el jugador no tiene chaleco para tiene la función "UsaChaleco" activada se le quitará el objeto.
Descarga:

Sistema 2, funciones:
• Al morir, salir se le quita el objeto.
• Si el jugador no tiene chaleco para tiene la función "TieneChaleco" activada se le quitará el objeto.
• Si el jugadot tiene chaleco pero no tiene la función activada, esta se le activará y agregará el objeto.
Descarga:

Imagen:
Buen aporte men -dance4 pero no entendi el "Al morir, salir se le quita dicho objeto" como asi, al morirse se le quita el chaleco y si se le acaba el blindaje se le quita el chaleco?XD
Eduardo_1 escribió:
01 Ene 2018 11:25
Hola, hice este sistema, funciona perfectamente, si alguien puede mejorar el código puede hacerlo pero respetando los créditos originales.

Sistema 1, funciones:
• Al usar el comando /chaleco se le agrega 100 de chaleco y una armadura al cuerpo.
• Al morir, salir se le quita dicho objeto.
• Si el jugador no tiene chaleco para tiene la función "UsaChaleco" activada se le quitará el objeto.
Descarga:

Sistema 2, funciones:
• Al morir, salir se le quita el objeto.
• Si el jugador no tiene chaleco para tiene la función "TieneChaleco" activada se le quitará el objeto.
• Si el jugadot tiene chaleco pero no tiene la función activada, esta se le activará y agregará el objeto.
Descarga:

Imagen:
Muy bueno amigo pero como se puede poner para que solo le aparezca a los SAPD?
Buen aporte, solamente tengo que decir que yo utilizaría una variable booleana y no le veo el caso de utilizar una variable estática para comprobar si el jugador lleva blindaje o no.

Saludos -good
Eduardo_1 escribió:
01 Ene 2018 11:25
Hola, hice este sistema, funciona perfectamente, si alguien puede mejorar el código puede hacerlo pero respetando los créditos originales.

Sistema 1, funciones:
• Al usar el comando /chaleco se le agrega 100 de chaleco y una armadura al cuerpo.
• Al morir, salir se le quita dicho objeto.
• Si el jugador no tiene chaleco para tiene la función "UsaChaleco" activada se le quitará el objeto.
Descarga:

Sistema 2, funciones:
• Al morir, salir se le quita el objeto.
• Si el jugador no tiene chaleco para tiene la función "TieneChaleco" activada se le quitará el objeto.
• Si el jugadot tiene chaleco pero no tiene la función activada, esta se le activará y agregará el objeto.
Descarga:

Imagen:

Bro, me sale este error;
 Codigo Pawno:
1

 warning 219: local variable "Chaleco" shadows a variable at a preceding level
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1
Donde proviene el error es de acá:
 Codigo Pawno:
1
2
3
4
5
6
7
8
9

public OnPlayerUpdate(playerid)
{
    static Float:Chaleco;
    GetPlayerArmour(playerid, Chaleco);
    if(Chaleco == 0 && UsaChaleco[playerid] == 1)
    {
        UsaChaleco[playerid] = 0;
        RemovePlayerAttachedObject(playerid, 0);
        }
  Cantidad de llaves: Abiertas(2)-Cerradas(1) | Lineas Totales: 9
Y la linea del error es esta;
 Codigo Pawno:
1

static Float:Chaleco;
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1

¿Cómo hago?

Por cierto, muy buen sistema +1 -hi
Houssama escribió:
01 Ene 2018 12:46
Buen aporte men -dance4 pero no entendi el "Al morir, salir se le quita dicho objeto" como asi, al morirse se le quita el chaleco y si se le acaba el blindaje se le quita el chaleco?XD
Si, exacto. Al morir el chaleco se le acabará y este se le quitará automáticamente.
Arkit escribió: Muy bueno amigo pero como se puede poner para que solo le aparezca a los SAPD?
Con la variable que tienes para detectar a los SAPD, ejemplo: if(EsSAPD[playerid[ == 1) //El resto del código.
Lautaro97 escribió: Buen aporte, solamente tengo que decir que yo utilizaría una variable booleana y no le veo el caso de utilizar una variable estática para comprobar si el jugador lleva blindaje o no.

Saludos -good
En eso de la variable booleana tienes razón, la variable estática la usé ahí para que no la cree nuevamente cada 100ms (El cual creo que es tiempo del OnPlayerUpdate), si estoy equivocado corrijanme por favor.
Strikeskp escribió: Bro, me sale este error;
 Codigo Pawno:
1

 warning 219: local variable "Chaleco" shadows a variable at a preceding level
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1
Donde proviene el error es de acá:
 Codigo Pawno:
1
2
3
4
5
6
7
8
9

public OnPlayerUpdate(playerid)
{
    static Float:Chaleco;
    GetPlayerArmour(playerid, Chaleco);
    if(Chaleco == 0 && UsaChaleco[playerid] == 1)
    {
        UsaChaleco[playerid] = 0;
        RemovePlayerAttachedObject(playerid, 0);
        }
  Cantidad de llaves: Abiertas(2)-Cerradas(1) | Lineas Totales: 9
Y la linea del error es esta;
 Codigo Pawno:
1

static Float:Chaleco;
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1

¿Cómo hago?

Por cierto, muy buen sistema +1 -hi
El mismo error te lo dice "la variable local "Chaleco" sombrea una variable en un nivel precedente", es decir, ya tienes una variable llamada "Chaleco" en OnPlayerUpdate u otro lado de tu GameMode.

Gracias por comentar -hi
Buen aporte Eduardo_1 -thumbup
Eduardo_1 escribió:
01 Ene 2018 22:54
Houssama escribió:
01 Ene 2018 12:46
Buen aporte men -dance4 pero no entendi el "Al morir, salir se le quita dicho objeto" como asi, al morirse se le quita el chaleco y si se le acaba el blindaje se le quita el chaleco?XD
Si, exacto. Al morir el chaleco se le acabará y este se le quitará automáticamente.
Arkit escribió: Muy bueno amigo pero como se puede poner para que solo le aparezca a los SAPD?
Con la variable que tienes para detectar a los SAPD, ejemplo: if(EsSAPD[playerid[ == 1) //El resto del código.
Lautaro97 escribió: Buen aporte, solamente tengo que decir que yo utilizaría una variable booleana y no le veo el caso de utilizar una variable estática para comprobar si el jugador lleva blindaje o no.

Saludos -good
En eso de la variable booleana tienes razón, la variable estática la usé ahí para que no la cree nuevamente cada 100ms (El cual creo que es tiempo del OnPlayerUpdate), si estoy equivocado corrijanme por favor.
Strikeskp escribió: Bro, me sale este error;
 Codigo Pawno:
1

 warning 219: local variable "Chaleco" shadows a variable at a preceding level
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1
Donde proviene el error es de acá:
 Codigo Pawno:
1
2
3
4
5
6
7
8
9

public OnPlayerUpdate(playerid)
{
    static Float:Chaleco;
    GetPlayerArmour(playerid, Chaleco);
    if(Chaleco == 0 && UsaChaleco[playerid] == 1)
    {
        UsaChaleco[playerid] = 0;
        RemovePlayerAttachedObject(playerid, 0);
        }
  Cantidad de llaves: Abiertas(2)-Cerradas(1) | Lineas Totales: 9
Y la linea del error es esta;
 Codigo Pawno:
1

static Float:Chaleco;
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1

¿Cómo hago?

Por cierto, muy buen sistema +1 -hi
El mismo error te lo dice "la variable local "Chaleco" sombrea una variable en un nivel precedente", es decir, ya tienes una variable llamada "Chaleco" en OnPlayerUpdate u otro lado de tu GameMode.

Gracias por comentar -hi
La variable precedente se encuentra en OnPlayerTakeDamage

Y se encuentra de este modo:
 Codigo Pawno:
1

new Float:danio, Float:vida, Float:chaleco, string[256];
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1
¿Cómo tendría que hacer?
Gracias por responder -hi
Spoiler:
Strikeskp escribió:
02 Ene 2018 10:35
Eduardo_1 escribió:
01 Ene 2018 22:54
Houssama escribió:
01 Ene 2018 12:46
Buen aporte men -dance4 pero no entendi el "Al morir, salir se le quita dicho objeto" como asi, al morirse se le quita el chaleco y si se le acaba el blindaje se le quita el chaleco?XD
Si, exacto. Al morir el chaleco se le acabará y este se le quitará automáticamente.
Arkit escribió: Muy bueno amigo pero como se puede poner para que solo le aparezca a los SAPD?
Con la variable que tienes para detectar a los SAPD, ejemplo: if(EsSAPD[playerid[ == 1) //El resto del código.
Lautaro97 escribió: Buen aporte, solamente tengo que decir que yo utilizaría una variable booleana y no le veo el caso de utilizar una variable estática para comprobar si el jugador lleva blindaje o no.

Saludos -good
En eso de la variable booleana tienes razón, la variable estática la usé ahí para que no la cree nuevamente cada 100ms (El cual creo que es tiempo del OnPlayerUpdate), si estoy equivocado corrijanme por favor.
Strikeskp escribió: Bro, me sale este error;
 Codigo Pawno:
1

 warning 219: local variable "Chaleco" shadows a variable at a preceding level
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1
Donde proviene el error es de acá:
 Codigo Pawno:
1
2
3
4
5
6
7
8
9

public OnPlayerUpdate(playerid)
{
    static Float:Chaleco;
    GetPlayerArmour(playerid, Chaleco);
    if(Chaleco == 0 && UsaChaleco[playerid] == 1)
    {
        UsaChaleco[playerid] = 0;
        RemovePlayerAttachedObject(playerid, 0);
        }
  Cantidad de llaves: Abiertas(2)-Cerradas(1) | Lineas Totales: 9
Y la linea del error es esta;
 Codigo Pawno:
1

static Float:Chaleco;
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1

¿Cómo hago?

Por cierto, muy buen sistema +1 -hi
El mismo error te lo dice "la variable local "Chaleco" sombrea una variable en un nivel precedente", es decir, ya tienes una variable llamada "Chaleco" en OnPlayerUpdate u otro lado de tu GameMode.

Gracias por comentar -hi
La variable precedente se encuentra en OnPlayerTakeDamage

Y se encuentra de este modo:
 Codigo Pawno:
1

new Float:danio, Float:vida, Float:chaleco, string[256];
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1
¿Cómo tendría que hacer?
Gracias por responder -hi
Tendría que quedar asi:
 Codigo Pawno:
1

new Float:danio, Float:vida, string[256];
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1
Se ve genial lo probare
Houssama escribió:
02 Ene 2018 13:42
Tendría que quedar asi:
 Codigo Pawno:
1

new Float:danio, Float:vida, string[256];
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1
Exactamente como te dijo el compañero!
olle ocupo ayuda soy nuevo editando pawno en esto donde tendria que meter todos esos codigos ???? grasias
misael32 escribió: olle ocupo ayuda soy nuevo editando pawno en esto donde tendria que meter todos esos codigos ???? grasias
Es un FilterScript, abre un nuevo documento en pawn y copia el código, lo compilas y lo metes a la carpeta "Filterscripts" de tu servidor, luego abres server.cfg y en la linea de "filterscripts" le agregas el nombre que le pusiste, ejemplo:

Código: Seleccionar todo

filterscripts chaleco
y ya, o ponlo en tu gamemode.

¿Quién está conectado?

En total hay 2 usuarios conectados :: 0 registrados, 0 ocultos y 2 invitados (basados en usuarios activos en los últimos 5 minutos)
La mayor cantidad de usuarios identificados fue 855 el 27 May 2018 00:03

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados