Programación en Pawn - SAMP

Crear slot para algunas cosas

¿Tienes dudas sobre un código? Consúltalas aquí y aprende cómo se solucionan diferentes tipos de errores.
Reglas del Foro

  • A la hora de realizar su pregunta, especifique bien los detalles y tenga buena ortografía, de esa manera el resto de los usuarios podrán entender su pregunta.
  • Recuerde proporcionar el código que le trae problemas y sus respectivos errores utilizando el BBCode [Pawn]Código aquí[/Pawn] en su mensaje.
  • En esta sección, sólo podrás publicar preguntas asociadas a programación en PAWN ("¿Cuál es la diferencia entre new y static?"), más no temas relacionados a pedir códigos ("¿Me pueden pasar el sistema de 'X' servidor?"). (Ir a Pedidos para publicar estos temas).
  • Si tu pregunta es relacionada con un GM publicado en PawnScript, no crees tu pregunta en esta sección, créala en el mismo tema desde donde obtuviste el GameMode.
  • Evita colocar títulos como: "[Pregunta]", "[Duda]", "[Ayuda]", etc. Los títulos deben ser descriptivos.
  • Si la pregunta es respondida, no modifiques el título ni el contenido de los mensajes del tema. Quizás le pueda servir a alguien más en otro momento.
  • Si la pregunta es respondida, el tema será movido a "Preguntas Solucionadas".
  • Si la pregunta no cumple con alguna de las reglas antes mencionadas o con las Normas del foro, el tema será movido a "Preguntas Cerradas" o a la Papelera.

Moderador: Ayudantes

Hola quiero saber sí alguien sabe como crear espacios para objetos, tengo un trabajo de transportista y quiero qué los vehiculos cargen 5 cajas, pero no se como hacerlo
Revivo, No es slot es stock, Quiero qué yo pueda recojer 4 cajas montarlas a la camioneta y ya no mas
¿A que te refieres con "slot"?
#Fede escribió:
10 Ago 2018 18:11
¿A que te refieres con "slot"?
"Slots" Osea qué como sí tenes un sistema de maletero y el maletero tiene 10 espación para guardar cosas
Supongo que te refieres a algo así:
 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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69

#include <a_samp>
#include <zcmd>

new MaximoCajas[MAX_VEHICLES];
new bool:TieneCaja[MAX_PLAYERS];

CMD:guardarcaja(playerid, params[])
{
	if(IsPlayerInAnyVehicle(playerid)) 		return 	SendClientMessage(playerid, -1, "{33CCFF}[ERROR]{FFFFFF} Sal del vehículo");
	if(TieneCaja[playerid] == false) 		return SendClientMessage(playerid, -1, "No tienes una caja en tus manos.");
	new counter = 0;	new result;			
	for(new i; i != MAX_VEHICLES; i++)
	{
		new dist = DistanciaJugadorVehiculo(5.0, playerid, i);
		if(dist)
		{
			result = i;counter++;
		}
	}
	switch(counter)
	{
		case 0:		{	SendClientMessage(playerid, -1, "No hay vehículo cerca de ti.");	}
		case 1:
		{
		    if(MaximoCajas[result] > 5) return SendClientMessage(playerid, -1, "Este vehículo no puede llevar más cajas.");
		    MaximoCajas[result] ++;
		    GameTextForPlayer(playerid,"Caja cargada",5000,3);
	  	}
		default:	SendClientMessage(playerid, -1, " Se ha detectado mas de un vehículo cerca, acerquese mas a su vehículo.");
	}
   	return 1;
}

CMD:cogercaja(playerid, params[])
{
	if(TieneCaja[playerid] == true) return SendClientMessage(playerid, -1, "Ya tienes una caja en tus manos.");
    SendClientMessage(playerid, -1, "Recogiste una caja, guardala en un camión.");
    TieneCaja[playerid] = true;
   	return 1;
}

public OnPlayerConnect(playerid)
{
	TieneCaja[playerid]= false;
	return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{

	MaximoCajas[vehicleid] = 0;
	return 1;
}

stock DistanciaJugadorVehiculo(Float:radi, playerid, vehicleid)
{
	if(IsPlayerConnected(playerid))
	{
	    new Float:PX,Float:PY,Float:PZ,Float:CX,Float:CY,Float:CZ;
	    GetPlayerPos(playerid,PX,PY,PZ);
	    GetVehiclePos(vehicleid, CX,CY,CZ);
	    new Float:CDistance = (CX-PX)*(CX-PX)+(CY-PY)*(CY-PY)+(CZ-PZ)*(CZ-PZ);
	    if(CDistance <= radi*radi)
	    {
	        return 1;
	    }
	}
	return 0;
}
  Cantidad de llaves: Abiertas(14)-Cerradas(14) | Lineas Totales: 69
Tyrael escribió:
11 Ago 2018 17:50
Supongo que te refieres a algo así:
 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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69

#include <a_samp>
#include <zcmd>

new MaximoCajas[MAX_VEHICLES];
new bool:TieneCaja[MAX_PLAYERS];

CMD:guardarcaja(playerid, params[])
{
	if(IsPlayerInAnyVehicle(playerid)) 		return 	SendClientMessage(playerid, -1, "{33CCFF}[ERROR]{FFFFFF} Sal del vehículo");
	if(TieneCaja[playerid] == false) 		return SendClientMessage(playerid, -1, "No tienes una caja en tus manos.");
	new counter = 0;	new result;			
	for(new i; i != MAX_VEHICLES; i++)
	{
		new dist = DistanciaJugadorVehiculo(5.0, playerid, i);
		if(dist)
		{
			result = i;counter++;
		}
	}
	switch(counter)
	{
		case 0:		{	SendClientMessage(playerid, -1, "No hay vehículo cerca de ti.");	}
		case 1:
		{
		    if(MaximoCajas[result] > 5) return SendClientMessage(playerid, -1, "Este vehículo no puede llevar más cajas.");
		    MaximoCajas[result] ++;
		    GameTextForPlayer(playerid,"Caja cargada",5000,3);
	  	}
		default:	SendClientMessage(playerid, -1, " Se ha detectado mas de un vehículo cerca, acerquese mas a su vehículo.");
	}
   	return 1;
}

CMD:cogercaja(playerid, params[])
{
	if(TieneCaja[playerid] == true) return SendClientMessage(playerid, -1, "Ya tienes una caja en tus manos.");
    SendClientMessage(playerid, -1, "Recogiste una caja, guardala en un camión.");
    TieneCaja[playerid] = true;
   	return 1;
}

public OnPlayerConnect(playerid)
{
	TieneCaja[playerid]= false;
	return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{

	MaximoCajas[vehicleid] = 0;
	return 1;
}

stock DistanciaJugadorVehiculo(Float:radi, playerid, vehicleid)
{
	if(IsPlayerConnected(playerid))
	{
	    new Float:PX,Float:PY,Float:PZ,Float:CX,Float:CY,Float:CZ;
	    GetPlayerPos(playerid,PX,PY,PZ);
	    GetVehiclePos(vehicleid, CX,CY,CZ);
	    new Float:CDistance = (CX-PX)*(CX-PX)+(CY-PY)*(CY-PY)+(CZ-PZ)*(CZ-PZ);
	    if(CDistance <= radi*radi)
	    {
	        return 1;
	    }
	}
	return 0;
}
  Cantidad de llaves: Abiertas(14)-Cerradas(14) | Lineas Totales: 69
Gracias me sirvio, Y sí puedes ayudarme con esta otra cosita tambien te lo agradesco, Tengo varios trabajos en mi GM y quiero qué cuando la gente valla a ayuda-trabajos aparesca la información del trabajo, Yo lo tengo así pero no funciona
 Codigo Pawno:
1
2
3
4
5
6
7
8

if(!TrabajandoTrans[playerid])
			  {
				 ShowPlayerDialog(playerid, TRANSPORTISTA, DIALOG_STYLE_MSGBOX, "{FFFFFF}Información del servidor {0000BB}• Trabajo Transportista", "{FFFFFF}Aquí encontrara información de su trabajo y comandos.\n\n\t{FFFFFF}•Para tomar un paquete tienes qué ir al almazen y recoger el paquete\n\t{FFFFFF}•Para cargar el paquete use /cargarcamion\n\t{FFFFFF}•Para dejar el trabajo use /dejartrabajo", "Cerrar", "");
			  }
			  if(!TrabajandoConst[playerid])
			  {
				 ShowPlayerDialog(playerid, CONSTRUCTOR, DIALOG_STYLE_MSGBOX, "{FFFFFF}Información del servidor {0000BB}• Trabajo Obrero", "{FFFFFF}Aquí encontraras información de su trabajo y comandos.\n\n\t{FFFFFF}•Debes tomar tú uniforme para poder trabajar ve al vestuario y use /uniforme\n\t{FFFFFF}•Para tomar tú pico dirigete a la mesa y use /tomarpico\n\t{FFFFFF}•Para dejar el trabajo use /dejartrabajo", "Cerrar", "");
			  }
  Cantidad de llaves: Abiertas(14)-Cerradas(14) | Lineas Totales: 8
Antony Rodriguez escribió:
12 Ago 2018 20:32
Vamos a suponer que la variable donde se almacena la ID del trabajo del jugador es pTrabajo.

Ahora supongamos que las IDs de los trabajos son las siguientes:

1 - Mecánico
2 - Taxista
3 - Camionero
4 - Repartidos de pizzas

Puedes añadir ésta función al ayuda-trabajos

 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

switch(PlayerInfo[playerid][pTrabajo])
{
    case 1:
    {
        SendClientMessage(playerid, -1, "Dialog con el mensaje del trabajo de mecánico.");
    }
    case 2:
    {
        SendClientMessage(playerid, -1, "Dialog con el mensaje del trabajo de taxista.");
    }
    case 3:
    {
        SendClientMessage(playerid, -1, "Dialog con el mensaje del trabajo de camionero.");
    }
    case 4:
    {
        SendClientMessage(playerid, -1, "Dialog con el mensaje del trabajo de repartidos de pizzas.");
    }
	//etc etc etc
}
  Cantidad de llaves: Abiertas(5)-Cerradas(5) | Lineas Totales: 20
Tyrael escribió:
14 Ago 2018 21:44
Antony Rodriguez escribió:
12 Ago 2018 20:32
Vamos a suponer que la variable donde se almacena la ID del trabajo del jugador es pTrabajo.

Ahora supongamos que las IDs de los trabajos son las siguientes:

1 - Mecánico
2 - Taxista
3 - Camionero
4 - Repartidos de pizzas

Puedes añadir ésta función al ayuda-trabajos

 Codigo Pawno:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

switch(PlayerInfo[playerid][pTrabajo])
{
    case 1:
    {
        SendClientMessage(playerid, -1, "Dialog con el mensaje del trabajo de mecánico.");
    }
    case 2:
    {
        SendClientMessage(playerid, -1, "Dialog con el mensaje del trabajo de taxista.");
    }
    case 3:
    {
        SendClientMessage(playerid, -1, "Dialog con el mensaje del trabajo de camionero.");
    }
    case 4:
    {
        SendClientMessage(playerid, -1, "Dialog con el mensaje del trabajo de repartidos de pizzas.");
    }
	//etc etc etc
}
  Cantidad de llaves: Abiertas(5)-Cerradas(5) | Lineas Totales: 20
Gracias pero tengo otra duda, Como yo no sabia poner el ID de los trabajos, Yo los puse alazar junto a la GM, ¿Como puedo poner los trabajos con ID como dices vos?
Antony Rodriguez escribió:
15 Ago 2018 07:47
Dime cómo los tienes definidos y pon un ejemplo.
Tyrael escribió:
15 Ago 2018 17:33
Antony Rodriguez escribió:
15 Ago 2018 07:47
Dime cómo los tienes definidos y pon un ejemplo.
@Tyrael Yo no los tengo definido con ID's, Yo los tengo regado por toda la GM
Antony Rodriguez escribió:
15 Ago 2018 17:38
Si no me das más datos no se cómo quieres que te ayude.

Supongo que los tendrás definidos con TrabajandoTrans[playerid], ¿ no ?.
Tyrael escribió:
15 Ago 2018 17:41
Antony Rodriguez escribió:
15 Ago 2018 17:38
Si no me das más datos no se cómo quieres que te ayude.

Supongo que los tendrás definidos con TrabajandoTrans[playerid], ¿ no ?.
Ahh así sí, Pero Eh visto por un foro qué no explica nada una definición con Enum para poner los jobs por id pero no lo entendi, Aquí mi variable
 Codigo Pawno:
1

new bool:TrabajandoTrans[MAX_PLAYERS];
  Cantidad de llaves: Abiertas(0)-Cerradas(0) | Lineas Totales: 1

¿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