[Aporte] Encender/Apagar vehiculo como en SampHub + Textdraw

Aprende lo que no sabes de este lenguaje y encuentra herramientas y códigos útiles.

Moderador: Ayudantes

Reglas del Foro
  • Si tu código es corto, no crees un tema nuevo para liberarlo, publica un mensaje en el tema [Funciones] ¡Publica tu código aquí!.
  • Si creas una guía, debes explicar el código claramente. Evita poner la explicación en forma de comentarios dentro del mismo y no olvides utilizar el BBCode correspondiente: [Pawn]Código aquí[/Pawn].
  • No postear códigos sin probar. Publicar códigos con errores (que impidan compilar el script para el cual está destinado) en este apartado es motivo de sanción.
  • Si tu código necesita plugins, includes u otros códigos adicionales para funcionar, debes mencionarlo en el mensaje.
  • Si has utilizado códigos de otros autores, recuerda colocar los créditos correspondientes. (El plagio es motivo de sanción).
  • Si tu aporte es para un GameMode en específico, debes publicar el tema en el apartado "Guías y Aportes para GameModes específicos".
Responder
Avatar de Usuario
SlenderLAN
Aprendiz
Aprendiz
Mensajes: 24
Registrado: 20 Sep 2018 14:03
Ubicación: Corea del norte
Contactar:
Reputación: 2

11 May 2019 00:02

Introducción

Hola! -hi este es mi primer aporte a esta pagina pero bueno, este sistema por decirlo así se me ocurrió del anterior servidor SampHub, no es la gran cosa pero es algo.

Imágenes

Imagen

Imagen

Características

-El vehículo se enciende con la tecla "2" con la misma se apaga.

-Textdraw de encendido que luego de unos segundos se coloca de color verde.

Codigó

Aquí definimos el estado del motor del vehículo, si esta encendido o apagado, el new del Textdraw y el new del Asiento, para saber si esta manejando o no
 Codigo Pawno:
1
2
3
4

new MotorEstado[MAX_VEHICLES];
new Text:Encendiendo1;
new Text:Encendiendo2;
new Asiento;
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 4
En OnGameModeInit colocamos el Textdraw.
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

Encendiendo1= TextDrawCreate(284.846435, 360.333374, "Encendiendo...");
TextDrawLetterSize(Encendiendo1, 0.301610, 1.792500);
TextDrawAlignment(Encendiendo1, 1);
TextDrawColor(Encendiendo1, -1);
TextDrawSetShadow(Encendiendo1, 1);
TextDrawSetOutline(Encendiendo1, 0);
TextDrawBackgroundColor(Encendiendo1, 255);
TextDrawFont(Encendiendo1, 1);
TextDrawSetProportional(Encendiendo1, 1);
TextDrawSetShadow(Encendiendo1, 1);

Encendiendo2 = TextDrawCreate(284.846527, 360.333374, "Encendiendo...");
TextDrawLetterSize(Encendiendo2, 0.301610, 1.792500);
TextDrawAlignment(Encendiendo2, 1);
TextDrawColor(Encendiendo2, 139203583);
TextDrawSetShadow(Encendiendo2, 1);
TextDrawSetOutline(Encendiendo2, 0);
TextDrawBackgroundColor(Encendiendo2, 255);
TextDrawFont(Encendiendo2, 1);
TextDrawSetProportional(Encendiendo2, 1);
TextDrawSetShadow(Encendiendo2, 1);
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 21
Aquí hacemos que con la tecla "2" Enciendo o Apague el vehiculo. Esto debe ir en OnPlayerKeyStateChange
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

    if(newkeys & KEY_LOOK_BEHIND)
    {
    Asiento = GetPlayerVehicleSeat(playerid);
    if(Asiento == 0)
    {
        new engine,lights,alarm,doors,bonnet,boot,objective,vehicleid;
        vehicleid = GetPlayerVehicleID(playerid);
        GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);

        if(engine & 1)
            {
                SetVehicleParamsEx(vehicleid, 0, 0, 0, 0, 0, 0, 0);
                MotorEstado[vehicleid] = 0;
            }
        else
            {
                TextDrawShowForPlayer(playerid, Encendiendo1);
                SetTimerEx("Encendiendo", 1000, 0, "d", playerid);
              }
    }
    if(Asiento == 1)
        {
        }
    if(Asiento == 2)
    {
    }
    }
  Cantidad de llaves: Abiertas(6)-Cerradas(6) | Lineas Totales: 27
Creamos un Public para hacer que cambie de color a verde el textdraw de Encendiendo...
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10
11
12
13
14

forward Encendiendo(playerid);
public Encendiendo(playerid)
{
    Asiento = GetPlayerVehicleSeat(playerid);
    new engine,lights,alarm,doors,bonnet,boot,objective,vehicleid;
    vehicleid = GetPlayerVehicleID(playerid);
    GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
    MotorEstado[vehicleid] = 1;
    SetVehicleParamsEx(vehicleid, 1, 1, 0, 0, 0, 0, 0);
    TextDrawShowForPlayer(playerid,Encendiendo2);
    TextDrawHideForPlayer(playerid,Encendiendo1);
    SetTimerEx("Esconderencender", 1000, 0, "d", playerid);
    return 1;
}
  Cantidad de llaves: Abiertas(1)-Cerradas(1) | Lineas Totales: 14
Y por ultimo creamos un Public para esconder el Textdraw.
 Codigo Pawno:
1
2
3
4
5
6

forward Esconderencender(playerid);
public Esconderencender(playerid)
{
	TextDrawHideForPlayer(playerid,Encendiendo2);
    return 1;
}
  Cantidad de llaves: Abiertas(1)-Cerradas(1) | Lineas Totales: 6
Frank Gambino
Aprendiz
Aprendiz
Mensajes: 11
Registrado: 14 Abr 2019 14:39
Reputación: 0

11 May 2019 00:55

muy buen aporte amigo 10/10 -thumbup
el tiempo siempre te dará la experiencia y es la clave del progreso
Avatar de Usuario
SlenderLAN
Aprendiz
Aprendiz
Mensajes: 24
Registrado: 20 Sep 2018 14:03
Ubicación: Corea del norte
Contactar:
Reputación: 2

11 May 2019 12:31

Frank Gambino escribió:
11 May 2019 00:55
muy buen aporte amigo 10/10 -thumbup
-grin
En el proyecto de Unlimited Zombie Roleplay

Avatar de Usuario
Angel Masci
Aprendiz
Aprendiz
Mensajes: 92
Registrado: 06 Ene 2019 22:38
Ubicación: ..::Venezuela::..
Reputación: 8

11 May 2019 23:40

Me gusta mucho +1
Pero como podria crear el comando /arrancar y /detener es que estoy creando una gm desde 0 y pues necesito eso igual buen aporte -hi .
Aportes:
Angel Masci

Copyright © Angel Masci . Todos los Derechos Reservados.

Avatar de Usuario
SlenderLAN
Aprendiz
Aprendiz
Mensajes: 24
Registrado: 20 Sep 2018 14:03
Ubicación: Corea del norte
Contactar:
Reputación: 2

12 May 2019 14:01

Angel Masci escribió:
11 May 2019 23:40
Me gusta mucho +1
Pero como podria crear el comando /arrancar y /detener es que estoy creando una gm desde 0 y pues necesito eso igual buen aporte -hi .
Gracias, -thumbup

Para adaptarlo a tu GM tienes que descargar el include ZCMD aquí el link https://github.com/Southclaws/zcmd haces todo lo del tutorial menos lo del public OnPlayerKeyStateChange

Primero agregamos el include ZCMD.
 Codigo Pawno:
1

#include <zcmd>
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1
Y luego los comandos /arrancar y /detener
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52

CMD:arrancar(playerid, params[])
{

    Asiento = GetPlayerVehicleSeat(playerid);
    if(Asiento == 0)
    {
       new IDAuto = GetPlayerVehicleID(playerid);
       new engine,lights,alarm,doors,bonnet,boot,objective,vehicleid;
       vehicleid = GetPlayerVehicleID(playerid);
       GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
       if(engine & 1)
       {
       }
       else
       {
       TextDrawShowForPlayer(playerid, Encendiendo1);
       SetTimerEx("Encendiendo", 1000, 0, "d", playerid);
       MotorEstado[IDAuto] = 1;
       }
	}
    if(Asiento == 1)
    {
    }
    if(Asiento == 2)
    {
    }
    return 1;
}
CMD:detener(playerid, params[])
{

    Asiento = GetPlayerVehicleSeat(playerid);
    if(Asiento == 0)
    {
       new IDAuto = GetPlayerVehicleID(playerid);
       new engine,lights,alarm,doors,bonnet,boot,objective,vehicleid;
       vehicleid = GetPlayerVehicleID(playerid);
       GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
       if(engine & 1)
       {
       SetVehicleParamsEx(vehicleid, 0, 0, 0, 0, 0, 0, 0);
       MotorEstado[IDAuto] = 0;
       }
	}
    if(Asiento == 1)
    {
    }
    if(Asiento == 2)
    {
    }
    return 1;
}
  Cantidad de llaves: Abiertas(11)-Cerradas(11) | Lineas Totales: 52
En el proyecto de Unlimited Zombie Roleplay

Avatar de Usuario
Angel Masci
Aprendiz
Aprendiz
Mensajes: 92
Registrado: 06 Ene 2019 22:38
Ubicación: ..::Venezuela::..
Reputación: 8

12 May 2019 16:54

Spoiler:
SlenderLAN escribió:
12 May 2019 14:01
Angel Masci escribió:
11 May 2019 23:40
Me gusta mucho +1
Pero como podria crear el comando /arrancar y /detener es que estoy creando una gm desde 0 y pues necesito eso igual buen aporte -hi .
Gracias, -thumbup

Para adaptarlo a tu GM tienes que descargar el include ZCMD aquí el link https://github.com/Southclaws/zcmd haces todo lo del tutorial menos lo del public OnPlayerKeyStateChange

Primero agregamos el include ZCMD.
 Codigo Pawno:
1

#include <zcmd>
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1
Y luego los comandos /arrancar y /detener
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52

CMD:arrancar(playerid, params[])
{

    Asiento = GetPlayerVehicleSeat(playerid);
    if(Asiento == 0)
    {
       new IDAuto = GetPlayerVehicleID(playerid);
       new engine,lights,alarm,doors,bonnet,boot,objective,vehicleid;
       vehicleid = GetPlayerVehicleID(playerid);
       GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
       if(engine & 1)
       {
       }
       else
       {
       TextDrawShowForPlayer(playerid, Encendiendo1);
       SetTimerEx("Encendiendo", 1000, 0, "d", playerid);
       MotorEstado[IDAuto] = 1;
       }
	}
    if(Asiento == 1)
    {
    }
    if(Asiento == 2)
    {
    }
    return 1;
}
CMD:detener(playerid, params[])
{

    Asiento = GetPlayerVehicleSeat(playerid);
    if(Asiento == 0)
    {
       new IDAuto = GetPlayerVehicleID(playerid);
       new engine,lights,alarm,doors,bonnet,boot,objective,vehicleid;
       vehicleid = GetPlayerVehicleID(playerid);
       GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
       if(engine & 1)
       {
       SetVehicleParamsEx(vehicleid, 0, 0, 0, 0, 0, 0, 0);
       MotorEstado[IDAuto] = 0;
       }
	}
    if(Asiento == 1)
    {
    }
    if(Asiento == 2)
    {
    }
    return 1;
}
  Cantidad de llaves: Abiertas(11)-Cerradas(11) | Lineas Totales: 52
Muchas gracias, Me encanta muchisimo ese sistema -mfr_lol
Aportes:
Angel Masci

Copyright © Angel Masci . Todos los Derechos Reservados.

PawnoAlex
Aprendiz
Aprendiz
Mensajes: 43
Registrado: 10 May 2018 09:58
Reputación: 0

03 Jun 2019 08:25

SlenderLAN escribió:
11 May 2019 00:02
Introducción

Hola! -hi este es mi primer aporte a esta pagina pero bueno, este sistema por decirlo así se me ocurrió del anterior servidor SampHub, no es la gran cosa pero es algo.

Imágenes

Imagen

Imagen

Características

-El vehículo se enciende con la tecla "2" con la misma se apaga.

-Textdraw de encendido que luego de unos segundos se coloca de color verde.

Codigó

Aquí definimos el estado del motor del vehículo, si esta encendido o apagado, el new del Textdraw y el new del Asiento, para saber si esta manejando o no
 Codigo Pawno:
1
2
3
4

new MotorEstado[MAX_VEHICLES];
new Text:Encendiendo1;
new Text:Encendiendo2;
new Asiento;
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 4
En OnGameModeInit colocamos el Textdraw.
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

Encendiendo1= TextDrawCreate(284.846435, 360.333374, "Encendiendo...");
TextDrawLetterSize(Encendiendo1, 0.301610, 1.792500);
TextDrawAlignment(Encendiendo1, 1);
TextDrawColor(Encendiendo1, -1);
TextDrawSetShadow(Encendiendo1, 1);
TextDrawSetOutline(Encendiendo1, 0);
TextDrawBackgroundColor(Encendiendo1, 255);
TextDrawFont(Encendiendo1, 1);
TextDrawSetProportional(Encendiendo1, 1);
TextDrawSetShadow(Encendiendo1, 1);

Encendiendo2 = TextDrawCreate(284.846527, 360.333374, "Encendiendo...");
TextDrawLetterSize(Encendiendo2, 0.301610, 1.792500);
TextDrawAlignment(Encendiendo2, 1);
TextDrawColor(Encendiendo2, 139203583);
TextDrawSetShadow(Encendiendo2, 1);
TextDrawSetOutline(Encendiendo2, 0);
TextDrawBackgroundColor(Encendiendo2, 255);
TextDrawFont(Encendiendo2, 1);
TextDrawSetProportional(Encendiendo2, 1);
TextDrawSetShadow(Encendiendo2, 1);
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 21
Aquí hacemos que con la tecla "2" Enciendo o Apague el vehiculo. Esto debe ir en OnPlayerKeyStateChange
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

    if(newkeys & KEY_LOOK_BEHIND)
    {
    Asiento = GetPlayerVehicleSeat(playerid);
    if(Asiento == 0)
    {
        new engine,lights,alarm,doors,bonnet,boot,objective,vehicleid;
        vehicleid = GetPlayerVehicleID(playerid);
        GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);

        if(engine & 1)
            {
                SetVehicleParamsEx(vehicleid, 0, 0, 0, 0, 0, 0, 0);
                MotorEstado[vehicleid] = 0;
            }
        else
            {
                TextDrawShowForPlayer(playerid, Encendiendo1);
                SetTimerEx("Encendiendo", 1000, 0, "d", playerid);
              }
    }
    if(Asiento == 1)
        {
        }
    if(Asiento == 2)
    {
    }
    }
  Cantidad de llaves: Abiertas(6)-Cerradas(6) | Lineas Totales: 27
Creamos un Public para hacer que cambie de color a verde el textdraw de Encendiendo...
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10
11
12
13
14

forward Encendiendo(playerid);
public Encendiendo(playerid)
{
    Asiento = GetPlayerVehicleSeat(playerid);
    new engine,lights,alarm,doors,bonnet,boot,objective,vehicleid;
    vehicleid = GetPlayerVehicleID(playerid);
    GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
    MotorEstado[vehicleid] = 1;
    SetVehicleParamsEx(vehicleid, 1, 1, 0, 0, 0, 0, 0);
    TextDrawShowForPlayer(playerid,Encendiendo2);
    TextDrawHideForPlayer(playerid,Encendiendo1);
    SetTimerEx("Esconderencender", 1000, 0, "d", playerid);
    return 1;
}
  Cantidad de llaves: Abiertas(1)-Cerradas(1) | Lineas Totales: 14
Y por ultimo creamos un Public para esconder el Textdraw.
 Codigo Pawno:
1
2
3
4
5
6

forward Esconderencender(playerid);
public Esconderencender(playerid)
{
	TextDrawHideForPlayer(playerid,Encendiendo2);
    return 1;
}
  Cantidad de llaves: Abiertas(1)-Cerradas(1) | Lineas Totales: 6
¡Muy bueno el sistema! Pero tengo un error, a el iniciar el juego me aparecen : encendido... pero cuando voy y arrancó un vehículo se me desaparece el bug. NECESITO ayuda.
Responder