OnPlayerKeyStateChange
#1

I want to know why this code aint working. I tried to make it with KEY_CROUCH and KEY_JUMP but it's still not working.
Code:
 		if(newkeys & KEY_UP)
		{
			if (PlayerToPoint(4, playerid,2355.8599,224.8270,25.8024))
			{
				if (GetPlayerState(playerid) == 2)
				{
					new tmpcar = GetPlayerVehicleID(playerid);
					SetVehiclePos(tmpcar, 2364.9453,225.0879,22.5551);
					TelePos[playerid][0] = 0.0;TelePos[playerid][1] = 0.0;
				}
				else
				{
					SetPlayerInterior(playerid,0);
					SetPlayerPos(playerid,2364.9453,225.0879,22.5551);
				}
			}
			if (PlayerToPoint(4, playerid,1353.1167,450.1613,19.9677))
			{
				if (GetPlayerState(playerid) == 2)
				{
					new tmpcar = GetPlayerVehicleID(playerid);
					SetVehiclePos(tmpcar, 1345.7319,435.9819,19.8277);
					TelePos[playerid][0] = 0.0;TelePos[playerid][1] = 0.0;
				}
				else
				{
					SetPlayerInterior(playerid,0);
					SetPlayerPos(playerid,1345.7319,435.9819,19.8277);
				}
			}
		}
 		if(newkeys & KEY_UP)
		{
			if (PlayerToPoint(4, playerid,2364.9453,225.0879,22.5551))
			{
				if (GetPlayerState(playerid) == 2)
				{
					new tmpcar = GetPlayerVehicleID(playerid);
					SetVehiclePos(tmpcar, 2355.8599,224.8270,25.8024);
					TelePos[playerid][0] = 0.0;TelePos[playerid][1] = 0.0;
				}
				else
				{
					SetPlayerInterior(playerid,0);
					SetPlayerPos(playerid,2355.8599,224.8270,25.8024);
				}
			}
			if (PlayerToPoint(4, playerid,1345.7319,435.9819,19.8277))
			{
				if (GetPlayerState(playerid) == 2)
				{
					new tmpcar = GetPlayerVehicleID(playerid);
					SetVehiclePos(tmpcar, 1353.1167,450.1613,19.9677);
					TelePos[playerid][0] = 0.0;TelePos[playerid][1] = 0.0;
				}
				else
				{
					SetPlayerInterior(playerid,0);
					SetPlayerPos(playerid,1353.1167,450.1613,19.9677);
				}
			}
		}
		return 1;
	}
Reply
#2

there are no errors in pawn
Reply
#3

No, but it's not working In-Game...
Reply
#4

pawn Code:
if(newkeys && KEY_UP)
        {
            if (PlayerToPoint(4, playerid,2355.8599,224.8270,25.8024))
            {
                if (GetPlayerState(playerid) == 2)
                {
                    new tmpcar = GetPlayerVehicleID(playerid);
                    SetVehiclePos(tmpcar, 2364.9453,225.0879,22.5551);
                    TelePos[playerid][0] = 0.0;TelePos[playerid][1] = 0.0;
                }
                else
                {
                    SetPlayerInterior(playerid,0);
                    SetPlayerPos(playerid,2364.9453,225.0879,22.5551);
                }
            }
            if (PlayerToPoint(4, playerid,1353.1167,450.1613,19.9677))
            {
                if (GetPlayerState(playerid) == 2)
                {
                    new tmpcar = GetPlayerVehicleID(playerid);
                    SetVehiclePos(tmpcar, 1345.7319,435.9819,19.8277);
                    TelePos[playerid][0] = 0.0;TelePos[playerid][1] = 0.0;
                }
                else
                {
                    SetPlayerInterior(playerid,0);
                    SetPlayerPos(playerid,1345.7319,435.9819,19.8277);
                }
            }
        }
        if(newkeys && KEY_UP)
        {
            if (PlayerToPoint(4, playerid,2364.9453,225.0879,22.5551))
            {
                if (GetPlayerState(playerid) == 2)
                {
                    new tmpcar = GetPlayerVehicleID(playerid);
                    SetVehiclePos(tmpcar, 2355.8599,224.8270,25.8024);
                    TelePos[playerid][0] = 0.0;TelePos[playerid][1] = 0.0;
                }
                else
                {
                    SetPlayerInterior(playerid,0);
                    SetPlayerPos(playerid,2355.8599,224.8270,25.8024);
                }
            }
            if (PlayerToPoint(4, playerid,1345.7319,435.9819,19.8277))
            {
                if (GetPlayerState(playerid) == 2)
                {
                    new tmpcar = GetPlayerVehicleID(playerid);
                    SetVehiclePos(tmpcar, 1353.1167,450.1613,19.9677);
                    TelePos[playerid][0] = 0.0;TelePos[playerid][1] = 0.0;
                }
                else
                {
                    SetPlayerInterior(playerid,0);
                    SetPlayerPos(playerid,1353.1167,450.1613,19.9677);
                }
            }
        }
        return 1;
    }
try this untested...
Reply
#5

I don't see any changes...
Reply
#6

"&&"

This is PAWN.
Reply
#7

It's still not working.
Reply
#8

Someone knows what the problem here?
Reply
#9

Someone?
Reply
#10

Umm, try this:
pawn Code:
if(newkeys == KEY_UP)
Reply
#11

No, no iPLEOMAX. You have to read a bit about Bitwise operations. Don't check like that, check like this:
PHP код:
if(newkeys KEY_UP == (KEY_UP)) // to check if only KEY_UP is pressed 
PHP код:
if(newkeys KEY_UP// to check if at least KEY_UP is pressed 
Reply
#12

I knew i was doing something wrong. Thanks for explaining Moro.
Reply
#13

Still, you're are all wrong. Movement keys never get detected with OnPlayerKeyStateChange. You will need a timer or OnPlayerUpdate to detect KEY_UP, KEY_DOWN, KEY_LEFT or KEY_RIGHT.
Reply
#14

But when I used KEY_JUMP or KEY_CROUCH it's didn't work too...

So what I need to do?
Reply
#15

Can someone help?
Reply
#16

Smoeone?
Reply
#17

You should use debug methods.

pawn Код:
if(newkeys & KEY_CROUCH)
{
    SendClientMessageToAll( -1, "Key Crouch works"); //debug line to check if key crouch is being pressed.
    if (PlayerToPoint(4, playerid,2355.8599,224.8270,25.8024))
    {
        SendClientMessageToAll( -1, "Playertopoint works"); //debug line to check if player is close to the point.
        if (GetPlayerState(playerid) == 2)
        {
            SendClientMessageToAll( -1, "State 2 - works."); //debug line to check working state..
These are examples, by adding message lines to your functions, you can determine whether it's being called or not..
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)