CMD's in filter script not working on server load
#1

I have set up a private server for myself through LAN to test my script. Except once i have joined none of my CMD's work at all. They just show up saying unknown CMD. I don't think it's an issue with loading the script as the SAMP-server application that I load displays that it has loaded it onto the server just once in game nothing seems to work which leads me to think it's something to do with my script.

I have the includes in my server file and so on.
Also the basic code that the server downlaod from sa-mp.com load fine and work in game.

Here is my current code.

Код:
#include <a_samp>
#include <zcmd>

//My chat colours
#define White 0xFFFFFFAA
#define Black 0x00000000
#define Green 0x9EC73DAA
#define Red 0xAA3333AA
#define Yellow 0xDABB3EAA
#define Orange 0xFF9900AA
#define Pink 0xFF66FFAA
#define Grey 0xAFAFAFAA

#define CONNECT_DIALOG 1
#define PAINTGUN_DIALOG 2
#define PAINTBALL_DIALOG 3
#define VEST_DIALOG 4

#define FILTERSCRIPT

//--------------------------------------------------------------------------

#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
	print("\n--------------------------------------");
	print(" Running Toro's paintball filter script");
	print("--------------------------------------\n");
	
	SetTimer("Health1", 300000, 1);
	SetTimer("Health2", 300000, 1);
	SetTimer("Health3", 300000, 1);
	//Yet to add in. timer for a drop for player to get health
	
	return 1;
}
public OnFilterScriptExit()
{
	return 1;
}
#else
main()
{
	print("\n----------------------------------");
	print(" Toro's Server is live");
	print("----------------------------------\n");
}
#endif

//--------------------------------------------------------------------------

public OnPlayerSpawn(playerid)
{
	SetPlayerCheckpoint(playerid, 1982.6150, -220.6680, -0.2432, 3.0);
	SetPlayerCheckpoint(playerid, 1982.6150, -220.6680, -0.2432, 3.0);
	SetPlayerCheckpoint(playerid, 1982.6150, -220.6680, -0.2432, 3.0);
	//Checkpoints for health - Needs cords for mapping
	return 1;
}

//--------------------------------------------------------------------------

public OnPlayerDeath(playerid, killerid, reason)
{
	if(killerid != INVALID_PLAYER_ID) // Checking for suicide or not
    {
		SendClientMessage(playerid, White, "You have been gun downed by %s.");
        SendClientMessage(playerid, Grey, "Due to your wipout you have lost your paintball gun. /paintgun to buy a new one");
		SetPlayerPos (playerid,2029.961181,1413.184936,16.998857);
	 	//NEED TO GET PAINT BALL ARENA POSITION
	  	SendDeathMessage(killerid, playerid, reason);
 		return 1;
    }
   	
	else // else here refers to if(Killerid == INVALID_PLAYER_ID)
    {
		SendClientMessage(playerid, White, "You commited suicide");
        SendClientMessage(playerid, Grey, "Due to your wipout you have lost your paintball gun. /paintgun to buy a new one");
        SetPlayerPos (playerid,2029.961181,1413.184936,16.998857);
        //NEED TO GET PAINT BALL ARENA POSITION
       	return 1;
    }
}

//--------------------------------------------------------------------------

public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid, bodypart)
{
    return 1;
}

//--------------------------------------------------------------------------

public OnPlayerEnterCheckpoint(playerid)
{
	SetPlayerSkillLevel(playerid, WEAPONSKILL_PISTOL_SILENCED, 1);
	SetPlayerSkillLevel(playerid, WEAPONSKILL_SHOTGUN, 1);
	SetPlayerSkillLevel(playerid, WEAPONSKILL_MP5, 1);
	SetPlayerSkillLevel(playerid, WEAPONSKILL_SNIPERRIFLE, 1);
	SetPlayerSkillLevel(playerid, WEAPONSKILL_DESERT_EAGLE, 1);
	return 1;
}

public OnPlayerLeaveCheckpoint(playerid)
{
	return 1;
}

//--------------------------------------------------------------------------

public OnPlayerPickUpPickup(playerid, pickupid)
{
	return 1;
}

//--------------------------------------------------------------------------

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	if(response)
	{
		switch(dialogid)
		{
			case PAINTGUN_DIALOG:
			{
			    switch(listitem)
			    {
				    case 0:
				    {
					    if(GetPlayerMoney(playerid) >= 100)
						{
					    	SendClientMessage(playerid, White, "You have purchaused a Paint Rifle for $350");
					    	GivePlayerWeapon (playerid, 33, 25);
					    	GivePlayerMoney(playerid, -350);
				    	}
				    	else
						{
						    SendClientMessage(playerid, Red, "You don't have enough money");
						}
				    }
				    case 1:
				    {
					    if(GetPlayerMoney(playerid) >= 100)
						{
					    	SendClientMessage(playerid, White, "You have purchaused a MPaint5 for $500");
					    	GivePlayerWeapon (playerid, 29, 150);
					    	GivePlayerMoney(playerid, -500);
				    	}
				    	else
						{
						    SendClientMessage(playerid, Red, "You don't have enough money");
						}
				    }
				    case 2:
				    {
					    if(GetPlayerMoney(playerid) >= 100)
						{
					    	SendClientMessage(playerid, White, "You have purchaused a Paint Sniper for $600");
					    	GivePlayerWeapon (playerid, 34, 20);
					    	GivePlayerMoney(playerid, -600);
				    	}
				    	else
						{
						    SendClientMessage(playerid, Red, "You don't have enough money");
						}
				    }
				    case 3:
				    {
					    if(GetPlayerMoney(playerid) >= 100)
						{
					    	SendClientMessage(playerid, White, "You have purchaused a Paint Action Shotgun for $400");
					    	GivePlayerWeapon (playerid, 25, 25);
					    	GivePlayerMoney(playerid, -400);
				    	}
				    	else
						{
						    SendClientMessage(playerid, Red, "You don't have enough money");
						}
				    }
				    case 4:
				    {
					    if(GetPlayerMoney(playerid) >= 100)
						{
					    	SendClientMessage(playerid, White, "You have purchaused a Paint Deagle for $750");
					    	GivePlayerWeapon (playerid, 24, 35);
					    	GivePlayerMoney(playerid, -750);
				    	}
						else
						{
						    SendClientMessage(playerid, Red, "You don't have enough money");
						}
			    	}
					case 5:
					{
					    if(GetPlayerMoney(playerid) >= 100)
						{
						    SendClientMessage(playerid, White, "You have purchaused a Silenced Paint for $200");
						    GivePlayerWeapon (playerid, 23, 85);
						    GivePlayerMoney(playerid, -200);
					    }
						else
						{
						    SendClientMessage(playerid, Red, "You don't have enough money");
						}
					}
			    }
			}
//--------------------------------------------------------------------------
			case PAINTBALL_DIALOG:
			{
			    switch(listitem)
			    {
				    case 0:
				    {
				        if(GetPlayerMoney(playerid) >= 175)
						{
					    	SendClientMessage(playerid, White, "You have purchaused a Paint Rifle AMMO for $175");
					    	GivePlayerMoney(playerid, -175);
							new ammo;
							ammo = GetPlayerAmmo(playerid);
							SetPlayerAmmo(playerid, 33, ammo+25);
						}
						else
						{
						    SendClientMessage(playerid, Red, "You don't have enough money");
						}
				    }
				    case 1:
				    {
                        if(GetPlayerMoney(playerid) >= 250)
						{
							SendClientMessage(playerid, White, "You have purchaused a MPaint5 AMMO for $250");
					    	GivePlayerMoney(playerid, -250);
					    	new ammo;
							ammo = GetPlayerAmmo(playerid);
							SetPlayerAmmo(playerid, 29, ammo+150);
						}
						else
						{
						    SendClientMessage(playerid, Red, "You don't have enough money");
						}

					}
				    case 2:
				    {
                        if(GetPlayerMoney(playerid) >= 300)
						{
							SendClientMessage(playerid, White, "You have purchaused a Paint Sniper AMMO for $300");
					    	GivePlayerMoney(playerid, -300);
					    	new ammo;
							ammo = GetPlayerAmmo(playerid);
							SetPlayerAmmo(playerid, 34, ammo+20);
						}
						else
						{
						    SendClientMessage(playerid, Red, "You don't have enough money");
						}
				    }
				    case 3:
				    {
                        if(GetPlayerMoney(playerid) >= 200)
						{
					    	SendClientMessage(playerid, White, "You have purchaused a Paint Action Shotgun AMMO for $200");
					    	GivePlayerMoney(playerid, -200);
					    	new ammo;
							ammo = GetPlayerAmmo(playerid);
							SetPlayerAmmo(playerid, 25, ammo+25);
						}
						else
						{
						    SendClientMessage(playerid, Red, "You don't have enough money");
						}
				    }
				    case 4:
				    {
                        if(GetPlayerMoney(playerid) >= 375)
						{
							SendClientMessage(playerid, White, "You have purchaused a Paint Deagle AMMO for $375");
					    	GivePlayerMoney(playerid, -375);
					    	new ammo;
							ammo = GetPlayerAmmo(playerid);
							SetPlayerAmmo(playerid, 24, ammo+35);
						}
						else
						{
						    SendClientMessage(playerid, Red, "You don't have enough money");
						}
			    	}
					case 5:
					{
					    if(GetPlayerMoney(playerid) >= 100)
						{
						    SendClientMessage(playerid, White, "You have purchaused a Silenced Paint AMMO for $100");
						    GivePlayerMoney(playerid, -100);
						    new ammo;
							ammo = GetPlayerAmmo(playerid);
							SetPlayerAmmo(playerid, 23, ammo+85);
						}
						else
						{
						    SendClientMessage(playerid, Red, "You don't have enough money");
						}
					}
			    }
			}
//--------------------------------------------------------------------------
			case VEST_DIALOG:
			{
			    switch(listitem)
			    {
				    case 0:
				    {
					    if(GetPlayerMoney(playerid) >= 100)
						{
				    	SendClientMessage(playerid, White, "You have purchaused a Paint Rifle AMMO for $100");
				    	GivePlayerMoney(playerid, -100);
				    	SetPlayerArmour(playerid, 33);
				    	}
				    	else
						{
						    SendClientMessage(playerid, Red, "You don't have enough money");
						}
				    }
				    case 1:
				    {
					    if(GetPlayerMoney(playerid) >= 100)
						{
				    	SendClientMessage(playerid, White, "You have purchaused a Paint Rifle AMMO for $200");
				    	GivePlayerMoney(playerid, -200);
				    	SetPlayerArmour(playerid, 66);
				    	}
				    	else
						{
						    SendClientMessage(playerid, Red, "You don't have enough money");
						}
				    }
				    case 2:
				    {
					    if(GetPlayerMoney(playerid) >= 100)
						{
				    	SendClientMessage(playerid, White, "You have purchaused a Paint Rifle AMMO for $300");
				    	GivePlayerMoney(playerid, -300);
				    	SetPlayerArmour(playerid, 100);
				    	}
				    	else
						{
						    SendClientMessage(playerid, Red, "You don't have enough money");
						}
				    }
		    	}
		    }
  		}
	}
	return 1;
}

//--------------------------------------------------------------------------
//My commands

command(Paintgun, playerid, params[])
{
	#pragma unused params
	ShowPlayerDialog(playerid, PAINTGUN_DIALOG, DIALOG_STYLE_LIST, "Select a Paintball gun", "$350 - Paint Rifle\n $500 - MPaint5\n $600 - Paint Sniper\n $400 - Paint Action Shotgun\n $750 - Paint Deagle\n $200 - Silenced Paint\n", "Yes", "");
	SendClientMessage(playerid, White, "Each weapon comes with 5 magazines worth of paintballs. /paintballs to buy paintballs.");
	return 1;
}

command(Paintballs, playerid, params[])
{
	ShowPlayerDialog(playerid, PAINTBALL_DIALOG, DIALOG_STYLE_LIST, "Select the gun you'd like PAINT for", "$175 - Paint Rifle AMMO\n $250 - MPaint5 AMMO\n $300 - Paint Sniper AMMO\n $200 - Paint Action Shotgun AMMO\n $375 - Paint Deagle AMMO\n $100 - Silenced Paint AMMO\n", "Yes", "");
	return 1;
}

command(Vest, playerid, params[])
{
	ShowPlayerDialog(playerid, VEST_DIALOG, DIALOG_STYLE_LIST, "What size vest", "Small\n Medium\n Large\n", "Yes", "");
	return 1;
}
//To do list
//  Health packs around the map, have it on a timer to respawn
//  Kill rewards - hitman level for guns
Reply
#2

you can use only one command processor

check whether your gm or any other filterscripts use other cmd processors
Reply
#3

All I have is my filter script and the Bare gamemode running and none of my cmds worked. I'm just trying the CMD's after I have spawned.

I think that's what you meant?
Reply
#4

I'm not sure this is the problem, however it's not correct.

You shouldn't have a main() function in a filterscript. Try deleting it. And use OnFilterscriptInit for initialization/printing messages.

EDIT: Sorry main wont get executed becuase you have defined FILTERSCRIPT. My bad.

EDIT2: Make sure you remove (delete) OnPlayerCommandText from your loaded scripts.
Reply
#5

Hello guys.

Change
PHP код:
command(Paintgunplayeridparams[])
{
    
#pragma unused params
    
ShowPlayerDialog(playeridPAINTGUN_DIALOGDIALOG_STYLE_LIST"Select a Paintball gun""$350 - Paint Rifle\n $500 - MPaint5\n $600 - Paint Sniper\n $400 - Paint Action Shotgun\n $750 - Paint Deagle\n $200 - Silenced Paint\n""Yes""");
    
SendClientMessage(playeridWhite"Each weapon comes with 5 magazines worth of paintballs. /paintballs to buy paintballs.");
    return 
1;
}
command(Paintballsplayeridparams[])
{
    
ShowPlayerDialog(playeridPAINTBALL_DIALOGDIALOG_STYLE_LIST"Select the gun you'd like PAINT for""$175 - Paint Rifle AMMO\n $250 - MPaint5 AMMO\n $300 - Paint Sniper AMMO\n $200 - Paint Action Shotgun AMMO\n $375 - Paint Deagle AMMO\n $100 - Silenced Paint AMMO\n""Yes""");
    return 
1;
}
command(Vestplayeridparams[])
{
    
ShowPlayerDialog(playeridVEST_DIALOGDIALOG_STYLE_LIST"What size vest""Small\n Medium\n Large\n""Yes""");
    return 
1;

to
PHP код:
CMD:paintgun(playeridparams[])
{
    
#pragma unused params // Why this ?
    
ShowPlayerDialog(playeridPAINTGUN_DIALOGDIALOG_STYLE_LIST"Select a Paintball gun""$350 - Paint Rifle\n $500 - MPaint5\n $600 - Paint Sniper\n $400 - Paint Action Shotgun\n $750 - Paint Deagle\n $200 - Silenced Paint\n""Yes""");
    
SendClientMessage(playeridWhite"Each weapon comes with 5 magazines worth of paintballs. /paintballs to buy paintballs.");
    return 
1;
}
CMD:paintballs(playeridparams[])
{
    
ShowPlayerDialog(playeridPAINTBALL_DIALOGDIALOG_STYLE_LIST"Select the gun you'd like PAINT for""$175 - Paint Rifle AMMO\n $250 - MPaint5 AMMO\n $300 - Paint Sniper AMMO\n $200 - Paint Action Shotgun AMMO\n $375 - Paint Deagle AMMO\n $100 - Silenced Paint AMMO\n""Yes""");
    return 
1;
}
CMD:vest(playeridparams[])
{
    
ShowPlayerDialog(playeridVEST_DIALOGDIALOG_STYLE_LIST"What size vest""Small\n Medium\n Large\n""Yes""");
    return 
1;

Do you understand your mistake? Create a command with zcmd/sscanf
PHP код:
CMD:nameOfYourCommand(playeridparams[])
/* CMD:nameOfYourCommand(Player typing the command), Different params in your command) */ 
Reply
#6

Quote:
Originally Posted by Dayrion
Посмотреть сообщение
Hello guys.

Change
[php]command(Paintgun, playerid, params[])
{
#pragma unused params
ShowPlayerDialog(playerid, PAINTGUN_DIALOG, DIALOG_STYLE_LIST, "Select a Paintball gun", "$350 - Paint Rifle\n $500 - MPaint5\n $600 - Paint Sniper\n $400 - Paint Action Shotgun\n $750 - Paint Deagle\n $200 - Silenced Paint\n", "Yes", "");
SendClientMessage(playerid, White, "Each weapon comes with 5 magazines worth of paintballs. /paintballs to buy paintballs.");
return 1;
}
...
Do you understand your mistake? Create a command with zcmd/sscanf
PHP код:
CMD:nameOfYourCommand(playeridparams[])
/* CMD:nameOfYourCommand(Player typing the command), Different params in your command) */ 
That's not actually a mistake, it's the old way of using zcmd and it's valid. Check zcmd thread.
Reply
#7

Quote:
Originally Posted by iggy1
Посмотреть сообщение
That's not actually a mistake, it's the old way of using zcmd and it's valid. Check zcmd thread.
Ohh. Alright, i didn't know that. I never see this way to do a command. Sorry'.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)