Pressing a key to enter/exit building
#1

I want to make it like, when a user press 'Y' on keyboard he can enter/exit building. This is what I have so far. When I press 'Y'. It quickly enters and exits the building. Do I have to do anything with return?

pawn Code:
if(newkeys == 65536)
    {
          cmd_enter(playerid);
          return 0;
    }
    else {
          cmd_exit(playerid);
    }
Reply
#2

pawn Code:
if(newkeys == 65536)
{
    if(GetPlayerInterior(playerid)==0 && GetPlayerVirtualWorld(playerid)==0)
    {
          cmd_enter(playerid);
    }
    else
    {
          cmd_exit(playerid);
    }
}
Reply
#3

Quote:
Originally Posted by ATGOggy
View Post
pawn Code:
if(newkeys == 65536)
{
    if(GetPlayerInterior(playerid)==0 && GetPlayerVirtualWorld(playerid)==0)
    {
          cmd_enter(playerid);
    }
    else
    {
          cmd_exit(playerid);
    }
}
Server getting crashed, not sure why.
You can enter by pressing Y and it crashes the server as soon as you entered.

Server log says nothing
Reply
#4

Try this
pawn Code:
if(newkeys == KEY_YES)
{
    if(GetPlayerInterior(playerid)==0 && GetPlayerVirtualWorld(playerid)==0)
    {
          cmd_enter(playerid);
    }
    else
    {
          cmd_exit(playerid);
    }
}
Reply
#5

Quote:
Originally Posted by ahmedkoki
View Post
Try this
pawn Code:
if(newkeys == KEY_YES)
{
    if(GetPlayerInterior(playerid)==0 && GetPlayerVirtualWorld(playerid)==0)
    {
          cmd_enter(playerid);
    }
    else
    {
          cmd_exit(playerid);
    }
}
No luck. still crashing.

I'm getting this warning in line 5035, 5039 while compiling

pawn Code:
warning 202: number of arguments does not match definition
line 5035 = cmd_enter
line 5039 = cmd_exit
Reply
#6

Try this
pawn Code:
if(newkeys == KEY_YES)
{
    if(GetPlayerInterior(playerid)==0 && GetPlayerVirtualWorld(playerid)==0)
    {
          cmd_enter(playerid, params);
          return 1;
    }
    else
    {
          cmd_exit(playerid, params);
          return 1;
    }
}
Reply
#7

EDIT:
Add this at top of your script after #include <a_samp>
Code:
 #include <zcmd>
Try this one!
Also add this on top of your script!
Code:
#define PRESSED(%0) \
	(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
You should have command enter and exit registered in the server using ZCMD, Else maybe crash?
Code:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if (PRESSED(KEY_YES))
	{
	    new params[128];
    	if(GetPlayerInterior(playerid) == 0)
    	{
     		return cmd_enter(playerid, params);
    	}
    	else if(GetPlayerInterior(playerid) != 0)
    	{
          	return cmd_exit(playerid, params);
		}
	}
	return 1;
}
Also use Crash Detect to check the logs of crash!
Use crash detect and tell me the logs please -.-
You must use ZCMD its a good command processor!
-
http://www.solidfiles.com/d/879d1213...c8cf9/zcmd.inc
Example made by me:
Code:
CMD:enter(playerid, params[])
{
	SendClientMessage(playerid, -1, "Command Tested & Works!");
	return 1;
}

CMD:exit(playerid, params[])
{
	SendClientMessage(playerid, -1, "Command Tested & Works!");
	return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if (PRESSED(KEY_YES))
	{
	    new params[128];
    	if(GetPlayerInterior(playerid) == 0)
    	{
     		return cmd_enter(playerid, params);
    	}
    	else if(GetPlayerInterior(playerid) != 0)
    	{
          	return cmd_exit(playerid, params);
		}
	}
	return 1;
}
EDIT: Oh yeah look up!
Tell me if it works or not I didnt tested but I know it will all work fine!
Reply
#8

Quote:
Originally Posted by ZombieNest
View Post
EDIT:
Add this at top of your script after #include <a_samp>
Code:
 #include <zcmd>
Try this one!
Also add this on top of your script!
Code:
#define PRESSED(%0) \
	(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
You should have command enter and exit registered in the server using ZCMD, Else maybe crash?
Code:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if (PRESSED(KEY_YES))
	{
	    new params[128];
    	if(GetPlayerInterior(playerid) == 0)
    	{
     		return cmd_enter(playerid, params);
    	}
    	else if(GetPlayerInterior(playerid) != 0)
    	{
          	return cmd_exit(playerid, params);
		}
	}
	return 1;
}
Also use Crash Detect to check the logs of crash!
Use crash detect and tell me the logs please -.-
You must use ZCMD its a good command processor!
-
http://www.solidfiles.com/d/879d1213...c8cf9/zcmd.inc
Example made by me:
Code:
CMD:enter(playerid, params[])
{
	SendClientMessage(playerid, -1, "Command Tested & Works!");
	return 1;
}

CMD:exit(playerid, params[])
{
	SendClientMessage(playerid, -1, "Command Tested & Works!");
	return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if (PRESSED(KEY_YES))
	{
	    new params[128];
    	if(GetPlayerInterior(playerid) == 0)
    	{
     		return cmd_enter(playerid, params);
    	}
    	else if(GetPlayerInterior(playerid) != 0)
    	{
          	return cmd_exit(playerid, params);
		}
	}
	return 1;
}
EDIT: Oh yeah look up!
Tell me if it works or not I didnt tested but I know it will all work fine!
Works fine Thank you and repped.

and yeah I'm using zcmd
Reply
#9

No problem, I hoped my scripting is fine.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)