[Guía] AttachObjectToVehicle (Básico)

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
dello
Ayudante
Ayudante
Mensajes: 225
Registrado: 09 Jun 2014 19:08
Reputación: 5

21 Sep 2018 16:37

Hola Invitado.

Estuve mirando un poco la sección de guías y noté que no había nada respecto a la función de AttachObjectToVehicle ni como obtener las cordenadas del objeto en el vehículo, así que decidí hacer una pequeña explicación de lo mencionado.
Introducción


Bien, lo que hace básicamente la función es tomar un objeto X y adherirlo a un vehículo Y.

Función:
 Codigo Pawno:
1

AttachObjectToVehicle(objectid, vehicleid, Float:OffsetX, Float:OffsetY, Float:OffsetZ, Float:RotX, Float:RotY, Float:RotZ)
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1
Índice:
  • objectid : El ID/Variable que le asignamos al objeto que se añadirá al vehículo. (Recordemos que es un ObjectID y no un modelid.
  • vehicleid : El ID / Variable que le asignamos al vehículo al que se le añadirá el objeto.
  • Float:OffsetX : Coordenada X del objeto..
  • Float:OffsetY : Coordenada Y del objeto..
  • Float:OffsetZ : Coordenada Z del objeto.
  • Float:RotX : Rotación X del objeto.
  • Float:RotY : Rotación Y del objeto.
  • Float:RotZ : Rotación Z del objeto.
Bien, ahora iremos a la parte que más de a uno le interesará.

Obtener coordenadas del vehículo / objeto
¿Cómo averigulo las coordenadas a la que agregaré el objeto? Bien, haré una explicación medio sencilla.

Necesitaremos algún programa como el MapEditor o FS de mapeos.
Cargamos un mapa por defecto, y nos dirigímos a las coordenadas 0, 0, 0. Ahí mismo, agregamos el vehículo. (Debería quedar en las mismas coordenadas, de no ser así, ubícalo en las 0,0,0 )
Ahora agregamos el objeto y lo situamos también en la posición 0,0,0.
Listo, tenemos lo que queríamos, al mover nuestro objeto y ubicarlo en alguna parte del vehículo, usaremos esas mismas coordenadas para la función en pawno. (Al estar en la coordenada 0.000, 0.000, 0.000, se encuentra en una posición "neutral" el vehículo, entonces podemos medir la coordenada desde ahí).

Ya tengo las coordenadas, ¿Cómo quedaría la función en pawno?


Bien, la función la elaboraremos con una variable que almacenará el objectid y otra que almacenará la del vehículo.
 Codigo Pawno:
1
2

new MiVehiculo;
new MiObjeto[MAX_VEHICLES]
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 2
Luego, utilizaremos la función de CreateVehicle para crear MiVehiculo y CreateObject para crear MiObjeto.
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10
11
12
13
14

//Realizaré el ejemplo con un comando.
public OnPlayerCommandText(playerid, cmdtext[])
{
	if (strcmp("/vehiculo", cmdtext, true, 10) == 0)
	{
		new Float:x, Float:y, Float:z;
		GetPlayerPos(playerid, x, y, z);

		MiVehiculo = CreateVehicle(578, x, y + 10, z, 0.0000, -1, -1, 100); //Creamos el vehículo MiVehiculo, en éste caso creé un DFT-30.
                MiObjeto[MiVehiculo] = CreateObject(18609, 0.06777, -4.81707, 0.81208,   0.00000, 0.00000, 2.45532); //Creamos el objeto con el nombre MiObjeto indexado al vehículo MiVehiculo. En éste caso, creé el objeto modelid 18609, que son troncos.
                AttachObjectToVehicle(objeto_troncos[vehicleid], vehicleid, 0.06777, -4.81707, 0.81208,   0.00000, 0.00000, 2.45532); //Agregamos el objeto al vehículo, utilizando las variables obtenidas con el MapEditor del objeto "MiObjeto".
		return 1;
	}
}
  Cantidad de llaves: Abiertas(2)-Cerradas(2) | Lineas Totales: 14

Bien, eso es todo, algo simple pero a más de uno creo que le va a servir. Espero haya sido claro y entendible.

Un saludo comunidad, Dello.
Licenciatura en Cs de la computación

tostad0r - Toaster - Dello


Avatar de Usuario
Untitled_
Senior
Senior
Mensajes: 806
Registrado: 13 Sep 2018 11:24
Reputación: 58

21 Sep 2018 17:00

Ya está aportada una guía sobre esto viewtopic.php?t=2888, pero está es otra forma buena guía
Sí eres nuevo podrías pasarte por mis guía
[Guía] Cómo crear un post de forma correcta
[Guía] Cómo obtener link .mp3 de [dropbox]

La suerte es el resultado de la suma de intentos, fracasos y perseverancia
Únete a mi grupo de discord

Grupo de Discord
Quieres ser parte de un proyecto TDM actualmente estoy solo cuento con host y foro phpbb
Untitled#1748
Imagen

Avatar de Usuario
KaizerHind
Senior
Senior
Mensajes: 1920
Registrado: 01 Mar 2016 12:27
Ubicación: En algún lugar del mundo.
Contactar:
Reputación: 58

21 Sep 2018 17:04

También esta aportado esto. (No es una Guía, pero es una herramienta que sirve para hacer el mismo proceso)

viewtopic.php?t=18062

Ya no tiene vídeo, pero se puede crear uno.
Imagen

Actualmente retirado de Pawnscript, si usted desea comunicarse conmigo
puede escribirme en las redes que se encuentran en mi firma.

Desarrollador de Modelos - Versión 0.3 DL.
¿Quieres ver mi trabajo? Entra abajo en mi Pagina de contacto o Portafolio de diseño.

Imagen Pagina de Contacto. Imagen Portafolio de diseño.Imagen Canal de Youtube.ImagenKaizer#3443.


» Aportes dentro del Foro.
.
Avatar de Usuario
dello
Ayudante
Ayudante
Mensajes: 225
Registrado: 09 Jun 2014 19:08
Reputación: 5

21 Sep 2018 17:14

Uhm... no sabía que estaba creada sinceramente. -sorry
De todas formas, eso es un filterscript y me parece que no explica la función ni como obtener coordenadas. Anyway, si le molesta al usuario o inflige las normas mi aporte lo retiro -giveup

Gracias por los comentarios. -happy
Licenciatura en Cs de la computación

tostad0r - Toaster - Dello


Avatar de Usuario
Franco12
Aprendiz
Aprendiz
Mensajes: 128
Registrado: 06 Feb 2017 21:17
Ubicación: Server Closed The Connection.
Reputación: 5

21 Sep 2018 17:33

dello escribió:
21 Sep 2018 16:37
Hola Invitado.

Estuve mirando un poco la sección de guías y noté que no había nada respecto a la función de AttachObjectToVehicle ni como obtener las cordenadas del objeto en el vehículo, así que decidí hacer una pequeña explicación de lo mencionado.
Introducción


Bien, lo que hace básicamente la función es tomar un objeto X y adherirlo a un vehículo Y.

Función:
 Codigo Pawno:
1

AttachObjectToVehicle(objectid, vehicleid, Float:OffsetX, Float:OffsetY, Float:OffsetZ, Float:RotX, Float:RotY, Float:RotZ)
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1
Índice:
  • objectid : El ID/Variable que le asignamos al objeto que se añadirá al vehículo. (Recordemos que es un ObjectID y no un modelid.
  • vehicleid : El ID / Variable que le asignamos al vehículo al que se le añadirá el objeto.
  • Float:OffsetX : Coordenada X del objeto..
  • Float:OffsetY : Coordenada Y del objeto..
  • Float:OffsetZ : Coordenada Z del objeto.
  • Float:RotX : Rotación X del objeto.
  • Float:RotY : Rotación Y del objeto.
  • Float:RotZ : Rotación Z del objeto.
Bien, ahora iremos a la parte que más de a uno le interesará.

Obtener coordenadas del vehículo / objeto
¿Cómo averigulo las coordenadas a la que agregaré el objeto? Bien, haré una explicación medio sencilla.

Necesitaremos algún programa como el MapEditor o FS de mapeos.
Cargamos un mapa por defecto, y nos dirigímos a las coordenadas 0, 0, 0. Ahí mismo, agregamos el vehículo. (Debería quedar en las mismas coordenadas, de no ser así, ubícalo en las 0,0,0 )
Ahora agregamos el objeto y lo situamos también en la posición 0,0,0.
Listo, tenemos lo que queríamos, al mover nuestro objeto y ubicarlo en alguna parte del vehículo, usaremos esas mismas coordenadas para la función en pawno. (Al estar en la coordenada 0.000, 0.000, 0.000, se encuentra en una posición "neutral" el vehículo, entonces podemos medir la coordenada desde ahí).

Ya tengo las coordenadas, ¿Cómo quedaría la función en pawno?


Bien, la función la elaboraremos con una variable que almacenará el objectid y otra que almacenará la del vehículo.
 Codigo Pawno:
1
2

new MiVehiculo;
new MiObjeto[MAX_VEHICLES]
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 2
Luego, utilizaremos la función de CreateVehicle para crear MiVehiculo y CreateObject para crear MiObjeto.
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10
11
12
13
14

//Realizaré el ejemplo con un comando.
public OnPlayerCommandText(playerid, cmdtext[])
{
	if (strcmp("/vehiculo", cmdtext, true, 10) == 0)
	{
		new Float:x, Float:y, Float:z;
		GetPlayerPos(playerid, x, y, z);

		MiVehiculo = CreateVehicle(578, x, y + 10, z, 0.0000, -1, -1, 100); //Creamos el vehículo MiVehiculo, en éste caso creé un DFT-30.
                MiObjeto[MiVehiculo] = CreateObject(18609, 0.06777, -4.81707, 0.81208,   0.00000, 0.00000, 2.45532); //Creamos el objeto con el nombre MiObjeto indexado al vehículo MiVehiculo. En éste caso, creé el objeto modelid 18609, que son troncos.
                AttachObjectToVehicle(objeto_troncos[vehicleid], vehicleid, 0.06777, -4.81707, 0.81208,   0.00000, 0.00000, 2.45532); //Agregamos el objeto al vehículo, utilizando las variables obtenidas con el MapEditor del objeto "MiObjeto".
		return 1;
	}
}
  Cantidad de llaves: Abiertas(2)-Cerradas(2) | Lineas Totales: 14

Bien, eso es todo, algo simple pero a más de uno creo que le va a servir. Espero haya sido claro y entendible.

Un saludo comunidad, Dello.
Hola sr dello. Subiré la v.2 de mi sistema de attach, una versión muy trabajada, usted me ayudaría a crear el guardado? Es lo único que me falta, claramente le daré créditos a su ayuda.
Retirado de SAMP/Pawn/PawnScript/Script
Avatar de Usuario
dello
Ayudante
Ayudante
Mensajes: 225
Registrado: 09 Jun 2014 19:08
Reputación: 5

21 Sep 2018 19:21

Franco12 escribió:
21 Sep 2018 17:33
Con gusto! Contactame por MP.
Licenciatura en Cs de la computación

tostad0r - Toaster - Dello


nachoom911
Aprendiz
Aprendiz
Mensajes: 49
Registrado: 12 Sep 2015 13:02
Ubicación: Argentina
Reputación: 0

21 Ene 2019 21:58

dello escribió:
21 Sep 2018 16:37
Hola Invitado.

Estuve mirando un poco la sección de guías y noté que no había nada respecto a la función de AttachObjectToVehicle ni como obtener las cordenadas del objeto en el vehículo, así que decidí hacer una pequeña explicación de lo mencionado.
Introducción


Bien, lo que hace básicamente la función es tomar un objeto X y adherirlo a un vehículo Y.

Función:
 Codigo Pawno:
1

AttachObjectToVehicle(objectid, vehicleid, Float:OffsetX, Float:OffsetY, Float:OffsetZ, Float:RotX, Float:RotY, Float:RotZ)
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1
Índice:
  • objectid : El ID/Variable que le asignamos al objeto que se añadirá al vehículo. (Recordemos que es un ObjectID y no un modelid.
  • vehicleid : El ID / Variable que le asignamos al vehículo al que se le añadirá el objeto.
  • Float:OffsetX : Coordenada X del objeto..
  • Float:OffsetY : Coordenada Y del objeto..
  • Float:OffsetZ : Coordenada Z del objeto.
  • Float:RotX : Rotación X del objeto.
  • Float:RotY : Rotación Y del objeto.
  • Float:RotZ : Rotación Z del objeto.
Bien, ahora iremos a la parte que más de a uno le interesará.

Obtener coordenadas del vehículo / objeto
¿Cómo averigulo las coordenadas a la que agregaré el objeto? Bien, haré una explicación medio sencilla.

Necesitaremos algún programa como el MapEditor o FS de mapeos.
Cargamos un mapa por defecto, y nos dirigímos a las coordenadas 0, 0, 0. Ahí mismo, agregamos el vehículo. (Debería quedar en las mismas coordenadas, de no ser así, ubícalo en las 0,0,0 )
Ahora agregamos el objeto y lo situamos también en la posición 0,0,0.
Listo, tenemos lo que queríamos, al mover nuestro objeto y ubicarlo en alguna parte del vehículo, usaremos esas mismas coordenadas para la función en pawno. (Al estar en la coordenada 0.000, 0.000, 0.000, se encuentra en una posición "neutral" el vehículo, entonces podemos medir la coordenada desde ahí).

Ya tengo las coordenadas, ¿Cómo quedaría la función en pawno?


Bien, la función la elaboraremos con una variable que almacenará el objectid y otra que almacenará la del vehículo.
 Codigo Pawno:
1
2

new MiVehiculo;
new MiObjeto[MAX_VEHICLES]
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 2
Luego, utilizaremos la función de CreateVehicle para crear MiVehiculo y CreateObject para crear MiObjeto.
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10
11
12
13
14

//Realizaré el ejemplo con un comando.
public OnPlayerCommandText(playerid, cmdtext[])
{
	if (strcmp("/vehiculo", cmdtext, true, 10) == 0)
	{
		new Float:x, Float:y, Float:z;
		GetPlayerPos(playerid, x, y, z);

		MiVehiculo = CreateVehicle(578, x, y + 10, z, 0.0000, -1, -1, 100); //Creamos el vehículo MiVehiculo, en éste caso creé un DFT-30.
                MiObjeto[MiVehiculo] = CreateObject(18609, 0.06777, -4.81707, 0.81208,   0.00000, 0.00000, 2.45532); //Creamos el objeto con el nombre MiObjeto indexado al vehículo MiVehiculo. En éste caso, creé el objeto modelid 18609, que son troncos.
                AttachObjectToVehicle(objeto_troncos[vehicleid], vehicleid, 0.06777, -4.81707, 0.81208,   0.00000, 0.00000, 2.45532); //Agregamos el objeto al vehículo, utilizando las variables obtenidas con el MapEditor del objeto "MiObjeto".
		return 1;
	}
}
  Cantidad de llaves: Abiertas(2)-Cerradas(2) | Lineas Totales: 14

Bien, eso es todo, algo simple pero a más de uno creo que le va a servir. Espero haya sido claro y entendible.

Un saludo comunidad, Dello.
Hola tengo estos problemas al compilar, ¿alguna solución?.

Código: Seleccionar todo

C:\Users\m911\Downloads\GM LVRP\gamemodes\LVRP.pwn(54088) : error 017: undefined symbol "objeto_sirena"
C:\Users\m911\Downloads\GM LVRP\gamemodes\LVRP.pwn(54088) : error 017: undefined symbol "vehicleid"
C:\Users\m911\Downloads\GM LVRP\gamemodes\LVRP.pwn(54088) : error 029: invalid expression, assumed zero
C:\Users\m911\Downloads\GM LVRP\gamemodes\LVRP.pwn(54088) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.

Y así quedó mi auto mapeado:
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10
11
12
13
14

}public OnPlayerCommandText(playerid, cmdtext[])
{
	if (strcmp("/vehiculo", cmdtext, true, 10) == 0)
	{
		new Float:x, Float:y, Float:z;
		GetPlayerPos(playerid, x, y, z);

		MiVehiculo = CreateVehicle(560, 0.0000, 0.0000, 0.0000, 0.0000, -1, -1, 100); //Creamos el vehículo MiVehiculo, en éste caso creé un DFT-30.
                MiObjeto[MiVehiculo] = CreateObject(19620, 0.00000, 0.00000, 0.90000,   0.00000, 0.00000, 0.00000);
 //Creamos el objeto con el nombre MiObjeto indexado al vehículo MiVehiculo. En éste caso, creé el objeto modelid 18609, que son troncos.
                AttachObjectToVehicle(objeto_sirena[vehicleid], vehicleid, CreateObject(19620, 0.00000, 0.00000, 0.90000,   0.00000, 0.00000, 0.00000); //Agregamos el objeto al vehículo, utilizando las variables obtenidas con el MapEditor del objeto "MiObjeto".
		return 1;
	}
}
  Cantidad de llaves: Abiertas(2)-Cerradas(3) | Lineas Totales: 14
El error sería la linea 11 del código de arriba.
Avatar de Usuario
dello
Ayudante
Ayudante
Mensajes: 225
Registrado: 09 Jun 2014 19:08
Reputación: 5

22 Ene 2019 06:27

nachoom911 escribió:
21 Ene 2019 21:58
Spoiler:
dello escribió:
21 Sep 2018 16:37
Hola Invitado.

Estuve mirando un poco la sección de guías y noté que no había nada respecto a la función de AttachObjectToVehicle ni como obtener las cordenadas del objeto en el vehículo, así que decidí hacer una pequeña explicación de lo mencionado.
Introducción


Bien, lo que hace básicamente la función es tomar un objeto X y adherirlo a un vehículo Y.

Función:
 Codigo Pawno:
1

AttachObjectToVehicle(objectid, vehicleid, Float:OffsetX, Float:OffsetY, Float:OffsetZ, Float:RotX, Float:RotY, Float:RotZ)
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1
Índice:
  • objectid : El ID/Variable que le asignamos al objeto que se añadirá al vehículo. (Recordemos que es un ObjectID y no un modelid.
  • vehicleid : El ID / Variable que le asignamos al vehículo al que se le añadirá el objeto.
  • Float:OffsetX : Coordenada X del objeto..
  • Float:OffsetY : Coordenada Y del objeto..
  • Float:OffsetZ : Coordenada Z del objeto.
  • Float:RotX : Rotación X del objeto.
  • Float:RotY : Rotación Y del objeto.
  • Float:RotZ : Rotación Z del objeto.
Bien, ahora iremos a la parte que más de a uno le interesará.

Obtener coordenadas del vehículo / objeto
¿Cómo averigulo las coordenadas a la que agregaré el objeto? Bien, haré una explicación medio sencilla.

Necesitaremos algún programa como el MapEditor o FS de mapeos.
Cargamos un mapa por defecto, y nos dirigímos a las coordenadas 0, 0, 0. Ahí mismo, agregamos el vehículo. (Debería quedar en las mismas coordenadas, de no ser así, ubícalo en las 0,0,0 )
Ahora agregamos el objeto y lo situamos también en la posición 0,0,0.
Listo, tenemos lo que queríamos, al mover nuestro objeto y ubicarlo en alguna parte del vehículo, usaremos esas mismas coordenadas para la función en pawno. (Al estar en la coordenada 0.000, 0.000, 0.000, se encuentra en una posición "neutral" el vehículo, entonces podemos medir la coordenada desde ahí).

Ya tengo las coordenadas, ¿Cómo quedaría la función en pawno?


Bien, la función la elaboraremos con una variable que almacenará el objectid y otra que almacenará la del vehículo.
 Codigo Pawno:
1
2

new MiVehiculo;
new MiObjeto[MAX_VEHICLES]
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 2
Luego, utilizaremos la función de CreateVehicle para crear MiVehiculo y CreateObject para crear MiObjeto.
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10
11
12
13
14

//Realizaré el ejemplo con un comando.
public OnPlayerCommandText(playerid, cmdtext[])
{
	if (strcmp("/vehiculo", cmdtext, true, 10) == 0)
	{
		new Float:x, Float:y, Float:z;
		GetPlayerPos(playerid, x, y, z);

		MiVehiculo = CreateVehicle(578, x, y + 10, z, 0.0000, -1, -1, 100); //Creamos el vehículo MiVehiculo, en éste caso creé un DFT-30.
                MiObjeto[MiVehiculo] = CreateObject(18609, 0.06777, -4.81707, 0.81208,   0.00000, 0.00000, 2.45532); //Creamos el objeto con el nombre MiObjeto indexado al vehículo MiVehiculo. En éste caso, creé el objeto modelid 18609, que son troncos.
                AttachObjectToVehicle(objeto_troncos[vehicleid], vehicleid, 0.06777, -4.81707, 0.81208,   0.00000, 0.00000, 2.45532); //Agregamos el objeto al vehículo, utilizando las variables obtenidas con el MapEditor del objeto "MiObjeto".
		return 1;
	}
}
  Cantidad de llaves: Abiertas(2)-Cerradas(2) | Lineas Totales: 14

Bien, eso es todo, algo simple pero a más de uno creo que le va a servir. Espero haya sido claro y entendible.

Un saludo comunidad, Dello.
Hola tengo estos problemas al compilar, ¿alguna solución?.

Código: Seleccionar todo

C:\Users\m911\Downloads\GM LVRP\gamemodes\LVRP.pwn(54088) : error 017: undefined symbol "objeto_sirena"
C:\Users\m911\Downloads\GM LVRP\gamemodes\LVRP.pwn(54088) : error 017: undefined symbol "vehicleid"
C:\Users\m911\Downloads\GM LVRP\gamemodes\LVRP.pwn(54088) : error 029: invalid expression, assumed zero
C:\Users\m911\Downloads\GM LVRP\gamemodes\LVRP.pwn(54088) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.

Y así quedó mi auto mapeado:
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10
11
12
13
14

}public OnPlayerCommandText(playerid, cmdtext[])
{
	if (strcmp("/vehiculo", cmdtext, true, 10) == 0)
	{
		new Float:x, Float:y, Float:z;
		GetPlayerPos(playerid, x, y, z);

		MiVehiculo = CreateVehicle(560, 0.0000, 0.0000, 0.0000, 0.0000, -1, -1, 100); //Creamos el vehículo MiVehiculo, en éste caso creé un DFT-30.
                MiObjeto[MiVehiculo] = CreateObject(19620, 0.00000, 0.00000, 0.90000,   0.00000, 0.00000, 0.00000);
 //Creamos el objeto con el nombre MiObjeto indexado al vehículo MiVehiculo. En éste caso, creé el objeto modelid 18609, que son troncos.
                AttachObjectToVehicle(objeto_sirena[vehicleid], vehicleid, CreateObject(19620, 0.00000, 0.00000, 0.90000,   0.00000, 0.00000, 0.00000); //Agregamos el objeto al vehículo, utilizando las variables obtenidas con el MapEditor del objeto "MiObjeto".
		return 1;
	}
}
  Cantidad de llaves: Abiertas(2)-Cerradas(3) | Lineas Totales: 14
El error sería la linea 11 del código de arriba.
Fijate que estas poniendo un "objeto_troncos" sin tener definido el mismo. Si ya definiste el
 Codigo Pawno:
1

new MiObjeto[MAX_VEHICLES];
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1
y
 Codigo Pawno:
1

new MiVehiculo;
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1
Entonces deberás usar esos mismos. (Yo tuve el error al redactar esa parte se vé, no la expliqué bien)

Digamos, te quedaría:
 Codigo Pawno:
1

 AttachObjectToVehicle(MiObjeto[MiVehiculo], MiVehiculo, CreateObject(19620, 0.00000, 0.00000, 0.90000,   0.00000, 0.00000, 0.00000); //Agregamos el objeto al vehículo, utilizando las variables obtenidas con el MapEditor del objeto "MiObjeto".
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1
Licenciatura en Cs de la computación

tostad0r - Toaster - Dello


nachoom911
Aprendiz
Aprendiz
Mensajes: 49
Registrado: 12 Sep 2015 13:02
Ubicación: Argentina
Reputación: 0

22 Ene 2019 15:13

Spoiler:
dello escribió:
22 Ene 2019 06:27
nachoom911 escribió:
21 Ene 2019 21:58
Spoiler:
dello escribió:
21 Sep 2018 16:37
Hola Invitado.

Estuve mirando un poco la sección de guías y noté que no había nada respecto a la función de AttachObjectToVehicle ni como obtener las cordenadas del objeto en el vehículo, así que decidí hacer una pequeña explicación de lo mencionado.
Introducción


Bien, lo que hace básicamente la función es tomar un objeto X y adherirlo a un vehículo Y.

Función:
 Codigo Pawno:
1

AttachObjectToVehicle(objectid, vehicleid, Float:OffsetX, Float:OffsetY, Float:OffsetZ, Float:RotX, Float:RotY, Float:RotZ)
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1
Índice:
  • objectid : El ID/Variable que le asignamos al objeto que se añadirá al vehículo. (Recordemos que es un ObjectID y no un modelid.
  • vehicleid : El ID / Variable que le asignamos al vehículo al que se le añadirá el objeto.
  • Float:OffsetX : Coordenada X del objeto..
  • Float:OffsetY : Coordenada Y del objeto..
  • Float:OffsetZ : Coordenada Z del objeto.
  • Float:RotX : Rotación X del objeto.
  • Float:RotY : Rotación Y del objeto.
  • Float:RotZ : Rotación Z del objeto.
Bien, ahora iremos a la parte que más de a uno le interesará.

Obtener coordenadas del vehículo / objeto
¿Cómo averigulo las coordenadas a la que agregaré el objeto? Bien, haré una explicación medio sencilla.

Necesitaremos algún programa como el MapEditor o FS de mapeos.
Cargamos un mapa por defecto, y nos dirigímos a las coordenadas 0, 0, 0. Ahí mismo, agregamos el vehículo. (Debería quedar en las mismas coordenadas, de no ser así, ubícalo en las 0,0,0 )
Ahora agregamos el objeto y lo situamos también en la posición 0,0,0.
Listo, tenemos lo que queríamos, al mover nuestro objeto y ubicarlo en alguna parte del vehículo, usaremos esas mismas coordenadas para la función en pawno. (Al estar en la coordenada 0.000, 0.000, 0.000, se encuentra en una posición "neutral" el vehículo, entonces podemos medir la coordenada desde ahí).

Ya tengo las coordenadas, ¿Cómo quedaría la función en pawno?


Bien, la función la elaboraremos con una variable que almacenará el objectid y otra que almacenará la del vehículo.
 Codigo Pawno:
1
2

new MiVehiculo;
new MiObjeto[MAX_VEHICLES]
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 2
Luego, utilizaremos la función de CreateVehicle para crear MiVehiculo y CreateObject para crear MiObjeto.
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10
11
12
13
14

//Realizaré el ejemplo con un comando.
public OnPlayerCommandText(playerid, cmdtext[])
{
	if (strcmp("/vehiculo", cmdtext, true, 10) == 0)
	{
		new Float:x, Float:y, Float:z;
		GetPlayerPos(playerid, x, y, z);

		MiVehiculo = CreateVehicle(578, x, y + 10, z, 0.0000, -1, -1, 100); //Creamos el vehículo MiVehiculo, en éste caso creé un DFT-30.
                MiObjeto[MiVehiculo] = CreateObject(18609, 0.06777, -4.81707, 0.81208,   0.00000, 0.00000, 2.45532); //Creamos el objeto con el nombre MiObjeto indexado al vehículo MiVehiculo. En éste caso, creé el objeto modelid 18609, que son troncos.
                AttachObjectToVehicle(objeto_troncos[vehicleid], vehicleid, 0.06777, -4.81707, 0.81208,   0.00000, 0.00000, 2.45532); //Agregamos el objeto al vehículo, utilizando las variables obtenidas con el MapEditor del objeto "MiObjeto".
		return 1;
	}
}
  Cantidad de llaves: Abiertas(2)-Cerradas(2) | Lineas Totales: 14

Bien, eso es todo, algo simple pero a más de uno creo que le va a servir. Espero haya sido claro y entendible.

Un saludo comunidad, Dello.
Hola tengo estos problemas al compilar, ¿alguna solución?.

Código: Seleccionar todo

C:\Users\m911\Downloads\GM LVRP\gamemodes\LVRP.pwn(54088) : error 017: undefined symbol "objeto_sirena"
C:\Users\m911\Downloads\GM LVRP\gamemodes\LVRP.pwn(54088) : error 017: undefined symbol "vehicleid"
C:\Users\m911\Downloads\GM LVRP\gamemodes\LVRP.pwn(54088) : error 029: invalid expression, assumed zero
C:\Users\m911\Downloads\GM LVRP\gamemodes\LVRP.pwn(54088) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.

Y así quedó mi auto mapeado:
 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10
11
12
13
14

}public OnPlayerCommandText(playerid, cmdtext[])
{
	if (strcmp("/vehiculo", cmdtext, true, 10) == 0)
	{
		new Float:x, Float:y, Float:z;
		GetPlayerPos(playerid, x, y, z);

		MiVehiculo = CreateVehicle(560, 0.0000, 0.0000, 0.0000, 0.0000, -1, -1, 100); //Creamos el vehículo MiVehiculo, en éste caso creé un DFT-30.
                MiObjeto[MiVehiculo] = CreateObject(19620, 0.00000, 0.00000, 0.90000,   0.00000, 0.00000, 0.00000);
 //Creamos el objeto con el nombre MiObjeto indexado al vehículo MiVehiculo. En éste caso, creé el objeto modelid 18609, que son troncos.
                AttachObjectToVehicle(objeto_sirena[vehicleid], vehicleid, CreateObject(19620, 0.00000, 0.00000, 0.90000,   0.00000, 0.00000, 0.00000); //Agregamos el objeto al vehículo, utilizando las variables obtenidas con el MapEditor del objeto "MiObjeto".
		return 1;
	}
}
  Cantidad de llaves: Abiertas(2)-Cerradas(3) | Lineas Totales: 14
El error sería la linea 11 del código de arriba.
Fijate que estas poniendo un "objeto_troncos" sin tener definido el mismo. Si ya definiste el
 Codigo Pawno:
1

new MiObjeto[MAX_VEHICLES];
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1
y
 Codigo Pawno:
1

new MiVehiculo;
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1
Entonces deberás usar esos mismos. (Yo tuve el error al redactar esa parte se vé, no la expliqué bien)

Digamos, te quedaría:
 Codigo Pawno:
1

 AttachObjectToVehicle(MiObjeto[MiVehiculo], MiVehiculo, CreateObject(19620, 0.00000, 0.00000, 0.90000,   0.00000, 0.00000, 0.00000); //Agregamos el objeto al vehículo, utilizando las variables obtenidas con el MapEditor del objeto "MiObjeto".
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1
¡Te lo agradezco no tengo errores ni warn!, ¿pero ahora el auto ya está en el servidor?, porque no lo encuentro. ¿O como defino su spawn?.
Responder