Programación en Pawn - SAMP

[DUDA] Bug de municiones

¿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

Buenas noches. Vengo a consultar si alguien me podría ayudar a solucionar un bug que tengo con las municiones de las armas.
Ej: Disparo en el exterior 5 balas con una desert (que lleva 7 municiones), la guardo en el bolsillo y la vuelvo a sacar y aun me quedan mis 2 balas.

Ahora cuando estoy en el interior de una casa, me guardo el arma y la vuelvo a sacar y se me recarga el arma.

¿Cómo puedo solucionar el problema?. Muchas gracias y saludos.
@Nano escribió:
14 Jul 2018 01:51
Buenas noches. Vengo a consultar si alguien me podría ayudar a solucionar un bug que tengo con las municiones de las armas.
Ej: Disparo en el exterior 5 balas con una desert (que lleva 7 municiones), la guardo en el bolsillo y la vuelvo a sacar y aun me quedan mis 2 balas.

Ahora cuando estoy en el interior de una casa, me guardo el arma y la vuelvo a sacar y se me recarga el arma.

¿Cómo puedo solucionar el problema?. Muchas gracias y saludos.
Pasa el código que tienes para guardar en el bolsillo el arma y el de la casa.
Pero debe ser cosa de chequear la variable.
Aquí tiene
 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

funcion G_Bol(playerid, mano)
{
	if (GetPVarInt(playerid, "EnCrack") == 1) return _Mensaje(playerid, 0, "12", "No puedes usar este comando mientras estás herido.");
	update_Manos(playerid);
	if(mano == 1)
	{
		if(user[playerid][jm_Derecha] == 0) return _Mensaje(playerid, 0, "9", "No tienes un objeto en tu mano derecha.");
		new Mano = user[playerid][jm_Derecha], Cant = user[playerid][jm_DerechaCant], string[128], BolsilloLibre;
		if(InfoObjeto[Mano][Guardable] == 2 || InfoObjeto[Mano][Guardable] == 3) return _Mensaje(playerid, 0, "9", "Este objeto es demasiado grande.");
		for(new x = 0; x < 10; x++)
		{
			if(user[playerid][jBolsillo][x] == 0)
			{
				user[playerid][jBolsillo][x] = Mano;
				user[playerid][jBolsilloCant][x] = Cant;
				RemovePlayerAttachedObject(playerid, 6);
				ResetPlayerWeapons(playerid);
				user[playerid][jm_Derecha] = 0;
				user[playerid][jm_DerechaCant] = 0;
				format(string, sizeof(string), "Guardaste en tus bolsillos un(a) %s.", InfoObjeto[Mano][NombreObjeto]);
				_Mensaje(playerid, 4, "A7CE00", string);
				BolsilloLibre = 1;
				return 1;
			}
		}
		if(BolsilloLibre == 0) return _Mensaje(playerid, 0, "9", "No tienes espacio en tus bolsillos.");
	}
	else if(mano == 2)
	{
		if(user[playerid][jm_Izquierda] == 0) return _Mensaje(playerid, 0, "9", "No tienes un objeto en tu mano izquierda.");
		new Mano = user[playerid][jm_Izquierda], Cant = user[playerid][jm_IzquierdaCant], string[128], BolsilloLibre;
		if(InfoObjeto[Mano][Guardable] == 2 || InfoObjeto[Mano][Guardable] == 3) return _Mensaje(playerid, 0, "9", "Este objeto es demasiado grande.");
		for(new x = 0; x < 10; x++)
		{
			if(user[playerid][jBolsillo][x] == 0)
			{
				user[playerid][jBolsillo][x] = Mano;
				user[playerid][jBolsilloCant][x] = Cant;
				RemovePlayerAttachedObject(playerid, 7);
				user[playerid][jm_Izquierda] = 0;
				user[playerid][jm_IzquierdaCant] = 0;
				format(string, sizeof(string), "Guardaste en tus bolsillos un(a) %s.", InfoObjeto[Mano][NombreObjeto]);
				_Mensaje(playerid, 4, "A7CE00", string);
				BolsilloLibre = 1;
				return 1;
			}
		}
		if(BolsilloLibre == 0) return _Mensaje(playerid, 0, "9", "No tienes espacio en tus bolsillos.");
	}
	return 1;
}
  Cantidad de llaves: Abiertas(7)-Cerradas(7) | Lineas Totales: 51
GM GC.

El codigo no tiene problemas, es culpa del Junkbuster (El anticheat del GameMode).
Yo repare el problema borrando JunkBuster, no te recomiendo esa porqueria inutil anticheat.

¿Quién está conectado?

En total hay 2 usuarios conectados :: 1 registrado, 0 ocultos y 1 invitado (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: Federico_Tolosa y 1 invitado