public OnPlayerPickUpPickup(playerid, pickupid)
{
new keys, updown, leftright;
GetPlayerKeys(playerid, keys, updown, leftright);
if(keys == KEY_JUMP)
{
for(new i; i<MAX_INTERIORS; i++)
{
if(pickupid == PickupID[i])
{
SetPlayerPos(playerid, InteriorInfo[i][TeleX], InteriorInfo[i][TeleY], InteriorInfo[i][TeleZ]);
SetPlayerInterior(playerid, InteriorInfo[i][Interior]);
InInterior[playerid] = i;
SetPlayerVirtualWorld(playerid, 0);
return 1;
}
}
}
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys & KEY_JUMP)
{
for(new i = 0; i < MAX_INTERIORS; i++)
{
if(pickupid == PickupID[i])
{
OnPlayerPickUpPickup(playerid, PickupID[i]);
}
}
}
}
pawn Код:
|
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys & KEY_JUMP)
{
for(new i = 0; i < MAX_INTERIORS; i++)
{
if(IsPlayerIsValidDynamicPickup(PickupID[i]))
{
SetPlayerPos(playerid, InteriorInfo[i][TeleX], InteriorInfo[i][TeleY], InteriorInfo[i][TeleZ]);
SetPlayerInterior(playerid, InteriorInfo[i][Interior]);
InInterior[playerid] = i;
SetPlayerVirtualWorld(playerid, 0);
}
}
}
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys & KEY_JUMP)
{
for(new i = 0; i < MAX_INTERIORS; i++)
{
if(IsValidDynamicPickup(PickupID[i]))
{
SetPlayerPos(playerid, InteriorInfo[i][TeleX], InteriorInfo[i][TeleY], InteriorInfo[i][TeleZ]);
SetPlayerInterior(playerid, InteriorInfo[i][Interior]);
InInterior[playerid] = i;
SetPlayerVirtualWorld(playerid, 0);
}
}
}
return 1;
}
//put getplayerdistancetopoint anywhere above the snippet
stock Float:GetPlayerDistanceToPoint2(playerid, {Float,_}:...)
{
new num = numargs(), Float:pos[3];
GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
if(num == 3) return floatsqroot(floatpower(floatabs(floatsub(pos[0], Float:getarg(1))), 2) + floatpower(floatabs(floatsub(pos[1], Float:getarg(2))), 2));
else if(num == 4) return floatsqroot(floatpower(floatabs(floatsub(pos[0], Float:getarg(1))), 2) + floatpower(floatabs(floatsub(pos[1], Float:getarg(2))), 2) + floatpower(floatabs(floatsub(pos[2], Float:getarg(3))), 2));
return -1.0;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys & KEY_JUMP)
{
new Float:Pos[3];
#define RADIUS 2.0//change this value
for(new i = 0; i < MAX_INTERIORS; i++)
{
if(!IsValidDynamicPickup(PickupID[i])) continue;
Streamer_GetFloatData(E_STREAMER_TYPE_PICKUP, PickupID[i], E_STREAMER_X, Pos[0]);
Streamer_GetFloatData(E_STREAMER_TYPE_PICKUP, PickupID[i], E_STREAMER_Y, Pos[1]);
Streamer_GetFloatData(E_STREAMER_TYPE_PICKUP, PickupID[i], E_STREAMER_Z, Pos[2]);
if(GetPlayerDistanceToPoint2(playerid, Pos[0], Pos[1], Pos[2]) > RADIUS) continue;
SetPlayerPos(playerid, InteriorInfo[i][TeleX], InteriorInfo[i][TeleY], InteriorInfo[i][TeleZ]);
SetPlayerInterior(playerid, InteriorInfo[i][Interior]);
InInterior[playerid] = i;
SetPlayerVirtualWorld(playerid, 0);
}
}
return 1;
}