public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { if(newkeys & KEY_CROUCH) { SendClientMessage(playerid,0xFFFFFFFF, "WORKING"); } return 1; }
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { if(newkeys & KEY_CROUCH) { SendClientMessage(playerid,0xFFFFFFFF, "WORKING"); new randomid = random(500);//500=number of players TogglePlayerControllable(randomid, false); SendClientMessage(randomid,0xFFFFFFFF, "You've been freezed by someone."); } return 1; }
Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { if(newkeys & KEY_CROUCH) { SendClientMessage(playerid,0xFFFFFFFF, "WORKING"); new randomid = random(500);//500=number of players TogglePlayerControllable(randomid, false); SendClientMessage(randomid,0xFFFFFFFF, "You've been freezed by someone."); } return 1; } |
He wouldn't be able to use this. It would only work if all 500 player slots were filled.
Not quite sure how you could do this. I'm sure a more experienced Pawn Programmer will know how to do this properly. |
new totalplayers; public OnPlayerConnect(playerid) { if(totalplayers < GetMaxPlayers()) totalplayers++; return 1; } public OnPlayerDisconnect(playerid) { if(totalplayers > 0) totalplayers--; return 1; } public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { if(newkeys & KEY_CROUCH) { SendClientMessage(playerid,0xFFFFFFFF, "WORKING"); new randomid = random(totalplayers); TogglePlayerControllable(randomid, false); SendClientMessage(randomid,0xFFFFFFFF, "You've been freezed by someone."); } return 1; }
Yes, it was just an example. To do this, could be used variables.
Example: Код:
new totalplayers; public OnPlayerConnect(playerid) { if(totalplayers < GetMaxPlayers()) totalplayers++; return 1; } public OnPlayerDisconnect(playerid) { if(totalplayers > 0) totalplayers--; return 1; } public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { if(newkeys & KEY_CROUCH) { SendClientMessage(playerid,0xFFFFFFFF, "WORKING"); new randomid = random(totalplayers); TogglePlayerControllable(randomid, false); SendClientMessage(randomid,0xFFFFFFFF, "You've been freezed by someone."); } return 1; } |
#include < foreach >
public OnPlayerKeyStateChange( playerid, newkeys, oldkeys )
{
if( newkeys & KEY_CROUCH )
{
SendClientMessage( playerid,0xFFFFFFFF, "WORKING" );
new randomid = Iter_Random( Player );
TogglePlayerControllable( randomid, false );
SendClientMessage( randomid,0xFFFFFFFF, "You've been frozen by someone." ); // It's frozen not freezed :P
}
return 1;
}
This will ALSO have bugs. If there are 2 players, and one has ID 3, it will exclude him, and it might pick 2 which is not connected. Best way is using foreach.
|
// It's frozen not freezed