No sй destruye el objeto.
#1

Buenas, cuando varios usuarios aplican el comando(2 o mбs) de colocar el boombox cuando lo quieren recoger no sй elimina el objeto, se queda ahн pero dice que lo recogiste y todo... їa quй se debe? dejarй el comando donde se crea y se elimina. DARЙ +REP

Код:
	CMD:ubicarboombox(playerid, params[])
	{
		if(!GetPVarInt(playerid, "BoomBoxT")) return SendClientMessage(playerid, COLOR_WHITE, "{B5B6FF}» {FFFFFF}No tienes un boombox.");
		if(GetPVarType(playerid, "pDynamicBB")) return SendClientMessage(playerid, COLOR_WHITE, "{B5B6FF}» {FFFFFF}Tu ya tienes un boombox puesto, ubica /recogerboombox");

		foreach
		{
	 		if(GetPVarType(i, "pDynamicBB"))
	   		{
	  			if(IsPlayerInRangeOfPoint(playerid, 30.0, GetPVarFloat(i, "pDynamicBBX"), GetPVarFloat(i, "pDynamicBBY"), GetPVarFloat(i, "pDynamicBBZ")))
				{
	   				SendClientMessage(playerid, COLOR_WHITE, "{B5B6FF}» {FFFFFF}No puedes ubicar el boombox en este rбdio.");
				    return 1;
				}
			}
			new string[160];
			format(string, sizeof(string), "* %s ubicу su boombox en su posiciуn.", SenderName(playerid));
			SendNearbyMessage(playerid, 15, string, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE, COLOR_PURPLE);

		    new Float:x, Float:y, Float:z, Float:a;
		    GetPlayerPos(playerid, x, y, z);
		    GetPlayerFacingAngle(playerid, a);
		    ApplyAnimation(playerid,"BOMBER","BOM_Plant_Crouch_In", 4.0, 0, 0, 0, 0, 0, 1);
		    x += (2 * floatsin(-a, degrees));
	    	y += (2 * floatcos(-a, degrees));
	    	z -= 1.0;

		    SetPVarInt(playerid, "pDynamicBB", CreateDynamicObject(2226, x, y, z, 0.0, 0.0, 0.0, .worldid = GetPlayerVirtualWorld(playerid), .interiorid = GetPlayerInterior(playerid)));
		    SetPVarFloat(playerid, "pDynamicBBX", x); SetPVarFloat(playerid, "pDynamicBBY", y); SetPVarFloat(playerid, "pDynamicBBZ", z);
			format(string, sizeof(string), "{72B1FF}Dueсo:{FFFFFF} %s", SenderName(playerid));
		    SetPVarInt(playerid, "pDynamicBBLabel", _:CreateDynamic3DTextLabel(string, COLOR_WHITE, x, y, z+0.6, 5.0, .worldid = GetPlayerVirtualWorld(playerid), .interiorid = GetPlayerInterior(playerid)));
			SetPVarInt(playerid, "pDynamicBBArea", CreateDynamicSphere(x, y, z, 30.0, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid)));
			SetPVarInt(playerid, "pDynamicBBInt", GetPlayerInterior(playerid));
			SetPVarInt(playerid, "pDynamicBBVW", GetPlayerVirtualWorld(playerid));
		}
		return 1;
	}

	CMD:recogerboombox(playerid, params[])
	{
		if(GetPVarType(playerid, "pDynamicBB"))
		{
		    if(GetPlayerSpecialAction(playerid) != SPECIAL_ACTION_DUCK) return SendClientMessage(playerid, COLOR_WHITE, "{B5B6FF}» {FFFFFF} Debes de estar agachado para realizar esta acciуn.");
		    if(!IsPlayerInRangeOfPoint(playerid, 3.0, GetPVarFloat(playerid, "pDynamicBBX"), GetPVarFloat(playerid, "pDynamicBBY"), GetPVarFloat(playerid, "pDynamicBBZ"))) return SendClientMessage(playerid, COLOR_WHITE, "{B5B6FF}» {FFFFFF}No estбs cerca de tъ boombox, no puedes recogerlo.");
		    DestroyDynamicObject(GetPVarInt(playerid, "pDynamicBB"));
		    DestroyDynamic3DTextLabel(Text3D:GetPVarInt(playerid, "pDynamicBBLabel"));
		    DeletePVar(playerid, "pDynamicBB"); DeletePVar(playerid, "pDynamicBBStation"); DeletePVar(playerid, "pDynamicBBLabel");
		    DeletePVar(playerid, "pDynamicBBX"); DeletePVar(playerid, "pDynamicBBY"); DeletePVar(playerid, "pDynamicBBZ");
		    if(GetPVarType(playerid, "pDynamicBBArea"))
		    {
		        foreach
				{
		            if(IsPlayerInDynamicArea(i, GetPVarInt(playerid, "pDynamicBBArea")))
		            {
		                StopAudioEx(i);
					}
				}
		        DeletePVar(playerid, "pDynamicBBArea");
			}
			SendClientMessage(playerid, COLOR_WHITE, "{B5B6FF}» {FFFFFF}Recogiste tъ boombox del suelo, lo tendrбs guardado en el inventario.");
		}
		else
		{
		    foreach
			{
		        if(GetPVarType(i, "pDynamicBB"))
		        {
					if(GetPVarInt(i, "pDynamicBBVW") == GetPlayerVirtualWorld(playerid) && GetPVarInt(i, "pDynamicBBInt") == GetPlayerInterior(playerid) && IsPlayerInRangeOfPoint(playerid, 5.0, GetPVarFloat(i, "pDynamicBBX"), GetPVarFloat(i, "pDynamicBBY"), GetPVarFloat(i, "pDynamicBBZ")))
					{
					    if(GetPlayerSpecialAction(playerid) != SPECIAL_ACTION_DUCK) return SendClientMessage(playerid, COLOR_WHITE, "{B5B6FF}» {FFFFFF}Debes de estar agachado para realizar esta acciуn.");
					    if(!IsPlayerInRangeOfPoint(playerid, 3.0, GetPVarFloat(playerid, "pDynamicBBX"), GetPVarFloat(playerid, "pDynamicBBY"), GetPVarFloat(playerid, "pDynamicBBZ"))) return SendClientMessage(playerid, COLOR_WHITE, "{B5B6FF}» {FFFFFF}No estбs cerca de tъ boombox, no puedes recogerlo.");
					    DestroyDynamicObject(GetPVarInt(i, "pDynamicBB"));
					    DestroyDynamic3DTextLabel(Text3D:GetPVarInt(i, "pDynamicBBLabel"));

					    DeletePVar(i, "pDynamicBB");
						DeletePVar(i, "pDynamicBBStation");
						DeletePVar(i, "pDynamicBBLabel");
					    DeletePVar(i, "pDynamicBBX");
						DeletePVar(i, "pDynamicBBY");
						DeletePVar(i, "pDynamicBBZ");
						DeletePVar(i, "pDynamicBBInt");
						DeletePVar(i, "pDynamicBBVW");

					    new string[128];
					    if(GetPVarType(i, "pDynamicBBArea"))
					    {
					        for(new x=0; x<MAX_PLAYERS; x++)
							{
					            if(IsPlayerInDynamicArea(x, GetPVarInt(x, "pDynamicBBArea")))
					            {
					                StopAudioEx(x);
					                SendClientMessage(x, COLOR_PURPLE, string);
								}
							}
					        DeletePVar(i, "pDynamicBBArea");
						}
						return 1;
					}
				}
		    }
		    SendClientMessage(playerid, COLOR_WHITE, "{B5B6FF}» {FFFFFF}No tienes un boombox o no estбs cerca para recogerlo.");
		}
		return 1;
	}
Reply
#2

Para mн es un asco los PVars.
Reply
#3

Quote:
Originally Posted by LatinZ
Посмотреть сообщение
Para mн es un asco los PVars.
Todo el sistema lo tengo funcionando mediante eso... solo necesito solucionar ese error urgente. :c
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)