SA-MP Forums Archive
[FS]Crate system not working i need help - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: [FS]Crate system not working i need help (/showthread.php?tid=502552)



[FS]Crate system not working i need help - Pr0GreSiVe - 24.03.2014

I got help in my old thread but i tested the fs when i do /opencrate and click for example shotgun and it gives me nothing?
Crate fs code:
Код:
#include <a_samp>
#include <ZCMD>
#include <sscanf2>
#include <streamer>

#define COLOR_LIGHTRED 0xFF6347AA
#define COLOR_ORANGE 0xFF8000FF
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_GRAD1 0xB4B5B7FF
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_PURPLE 0xC2A2DAAA

#define CRATEGUN 1

new dynamiccrate;
new Text3D:dynamiccrate3DText;

public OnGameModeExit()
{
    print("Crate System Shutting Down.");
    print("Spawned crates removed.");
    DestroyDynamicObject(dynamiccrate);
	dynamiccrate = 0;
	DestroyDynamic3DTextLabel( Text3D:dynamiccrate3DText );
    return 1;
}
forward ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5);
public ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5)
{
    if(IsPlayerConnected(playerid))
    {
        new Float:posx, Float:posy, Float:posz;
        new Float:oldposx, Float:oldposy, Float:oldposz;
        new Float:tempposx, Float:tempposy, Float:tempposz;
        GetPlayerPos(playerid, oldposx, oldposy, oldposz);
        for(new i = 0; i < MAX_PLAYERS; i++)
        {
            if(IsPlayerConnected(i))
            {
                GetPlayerPos(i, posx, posy, posz);
                tempposx = (oldposx -posx);
                tempposy = (oldposy -posy);
                tempposz = (oldposz -posz);
                if(GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i))
                {
                    if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16)))
                    {
                        SendClientMessage(i, col1, string);
                    }
                    else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8)))
                    {
                        SendClientMessage(i, col2, string);
                    }
                    else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4)))
                    {
                        SendClientMessage(i, col3, string);
                    }
                    else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2)))
                    {
                        SendClientMessage(i, col4, string);
                    }
                    else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
                    {
                        SendClientMessage(i, col5, string);
                    }
                }
            }
        }
    }
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == CRATEGUN)
    {
        if(response) // If they clicked 'Yes' or pressed enter
        {
			if(listitem == 0) // Shotgun
			{
				if(GetPlayerMoney(playerid) >= 100)
				{
					GivePlayerWeapon(playerid, 25, 99999);
					SendClientMessage(playerid, COLOR_LIGHTBLUE,"   You have purchased a Shotgun!");
     				GivePlayerMoney(playerid, -100);
				}
				else
				{
					SendClientMessage(playerid, COLOR_GREY,"   You can't afford that weapon!");
				}
			}
			if(listitem == 1) // MP5
			{
				if(GetPlayerMoney(playerid) >= 100)
				{
				GivePlayerWeapon(playerid, 29, 99999);
				SendClientMessage(playerid, COLOR_LIGHTBLUE,"   You have taken a MP5!");
				GivePlayerMoney(playerid, -100);
				}
				else
				{
				   SendClientMessage(playerid, COLOR_GREY,"  You can't afford that weapon!");
				}
			}
			if(listitem == 2) // Rifle
			{
				if(GetPlayerMoney(playerid) >= 100)
				{
				GivePlayerWeapon(playerid, 33, 99999);
				SendClientMessage(playerid, COLOR_LIGHTBLUE,"   You have taken a Rifle!");
				GivePlayerMoney(playerid, -100);
				}
				else
				{
				  SendClientMessage(playerid, COLOR_GREY,"  You can't afford that weapon!");
		        }
			}
			if(listitem == 3) // Desert Eagle
			{
				if(GetPlayerMoney(playerid) >= 100)
				{
				GivePlayerWeapon(playerid, 24, 99999);
				SendClientMessage(playerid, COLOR_LIGHTBLUE,"   You have taken a Desert Eagle!");
				GivePlayerMoney(playerid, -100);
				}
				else
				{
				  SendClientMessage(playerid, COLOR_GREY,"  You can't afford that weapon!");
				  }
			}
			if(listitem == 4) // AK-47
			{
				if(GetPlayerMoney(playerid) >= 100)
				{
				GivePlayerWeapon(playerid, 30, 99999);
				SendClientMessage(playerid, COLOR_LIGHTBLUE,"   You have taken an AK-47!");
				GivePlayerMoney(playerid, -100);
				}
				else
				{
				  SendClientMessage(playerid, COLOR_GREY,"  You can't afford that weapon!");
				  }
			}
			if(listitem == 5) // M4
			{
				if(GetPlayerMoney(playerid) >= 100)
				{
				GivePlayerWeapon(playerid, 31, 99999);
				SendClientMessage(playerid, COLOR_LIGHTBLUE,"   You have taken an M4!");
				GivePlayerMoney(playerid, -100);
				}
				else
				{
				   SendClientMessage(playerid, COLOR_GREY," You can't afford that weapon!");
				   }
			}
			if(listitem == 6) // SPAS-12
			{
				if(GetPlayerMoney(playerid) >= 100)
				{
				GivePlayerWeapon(playerid, 27, 99999);
				SendClientMessage(playerid, COLOR_LIGHTBLUE,"   You have taken a SPAS-12!");
				GivePlayerMoney(playerid, -100);
				}
				else
				{
				   SendClientMessage(playerid, COLOR_GREY,"  You can't afford that weapon!");
				   }
			}
			if(listitem == 7) // Sniper
			{
				if(GetPlayerMoney(playerid) >= 100)
				{
				GivePlayerWeapon(playerid, 34, 99999);
				SendClientMessage(playerid, COLOR_LIGHTBLUE,"   You have taken a Sniper!");
				GivePlayerMoney(playerid, -100);
				}
				else
				{
				   SendClientMessage(playerid, COLOR_GREY,"  You can't afford that weapon!");
				   }
			}
			if(listitem == 8) // Kevlar vest
			{
				if(GetPlayerMoney(playerid) >= 100)
				{
				SetPlayerArmour(playerid, 100.0);
				SendClientMessage(playerid, COLOR_LIGHTBLUE,"   You have taken a Kevlar vest!");
				GivePlayerMoney(playerid, -100);
				}
				else
				{
				  SendClientMessage(playerid, COLOR_GREY," You can't afford that item!");
				  }
			}
			if(listitem == 9)
			{
				if(GetPlayerMoney(playerid) >= 100)
				{
				SetPlayerHealth(playerid, 100);
				SendClientMessage(playerid, COLOR_LIGHTBLUE,"  You have taken a firstaidkit!");
				GivePlayerMoney(playerid, -100);
				}
				else
				{
				  SendClientMessage(playerid, COLOR_GREY,"  You can't afford that item!");
				  }
			}
        }
        return 1; // We handled a dialog, so return 1. Just like OnPlayerCommandText.
    }

    return 0; // You MUST return 0 here! Just like OnPlayerCommandText.
}

CMD:opencrate(playerid, params[])
{
	if(dynamiccrate != 0)
	{
		new Float:Position[3];
		GetDynamicObjectPos(dynamiccrate, Position[0], Position[1], Position[2]);

		if(IsPlayerInRangeOfPoint(playerid, 5.0, Position[0], Position[1], Position[2]))
		{
			ShowPlayerDialog(playerid, CRATEGUN, DIALOG_STYLE_LIST, "Crate Equipment","Shotgun\nMP5\nRifle\nDesert Eagle\nAK-47\nM4\nSPAS-12\nSniper\nKevlar vest\nFirst Aid Kit", "Take", "Cancel");
		}
		else
		{
		SendClientMessage(playerid, COLOR_WHITE, "* You're not near the crate!");
		}
	}
	return 1;
}

CMD:spawncrate(playerid, params[])
{
	if (IsPlayerAdmin(playerid))
	{
		if(IsPlayerInAnyVehicle(playerid))
		{
			SendClientMessage(playerid, COLOR_GREY, "You must be on foot to use this command.");
			return 1;
		}

		new Float:Position[4];
		if(dynamiccrate == 0)
		{
			GetPlayerPos(playerid, Position[0], Position[1], Position[2]);
			GetPlayerFacingAngle(playerid, Position[3]);
			dynamiccrate = CreateDynamicObject(964, Position[0], Position[1], Position[2]-1.28, 0.0, 0.0, Position[3], -1, -1, -1, 200.0);
			dynamiccrate3DText = CreateDynamic3DTextLabel("/opencrate\nTo open the crate.",COLOR_ORANGE,Position[0], Position[1], Position[2]+0.0,8.0);
			SetPlayerPos(playerid, Position[0], Position[1], Position[2]+3);
			SendClientMessageToAll(COLOR_LIGHTRED, "Crate: The crate has been placed!");
		}
		else
		{
			DestroyDynamicObject(dynamiccrate);
			dynamiccrate = 0;
			DestroyDynamic3DTextLabel( Text3D:dynamiccrate3DText );
			SendClientMessageToAll(COLOR_LIGHTRED, "Crate: The crate has been destroyed!");
		}
	}
	return 1;
}



Re: [FS]Crate system not working i need help - CroM256 - 24.03.2014

I don't know is this problem, but I have return 1 on the end of OnDialogResponse


Re: [FS]Crate system not working i need help - Pr0GreSiVe - 25.03.2014

( Bump )
Please i really need help about this