28.01.2015, 00:31
Still
This is all what i got:
This is all what i got:
Код:
#include <a_samp> #include <fixes> #include <zcmd> new crate[MAX_PLAYERS] = {INVALID_OBJECT_ID, ...}; new bool:carry[MAX_PLAYERS]; public OnPlayerConnect(playerid) { carry[playerid] = false; return 1; } public OnPlayerDisconnect(playerid) { if(crate[playerid] != INVALID_OBJECT_ID) DestroyObject(crate[playerid]); crate[playerid] = INVALID_OBJECT_ID; return 1; } public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { if(newkeys & KEY_ANALOG_LEFT) { if(crate[playerid] != INVALID_OBJECT_ID) { new Float:x, Float:y, Float:z; GetObjectPos(crate[playerid], x, y, z); if(IsPlayerInRangeOfPoint(playerid, 1.5, x, y, z)) { ApplyAnimation(playerid, "CARRY", "liftup", 4.1, 0, 1, 1, 0, 0, 1); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_CARRY); DestroyObject(crate[playerid]); SetPlayerAttachedObject(playerid,0,2358,5,0.091000,0.125999,0.180000,-76.000015,0.000000,100.000000); crate[playerid] = INVALID_OBJECT_ID; } } else { ApplyAnimation(playerid, "CARRY", "putdwn", 4.1, 0, 1, 1, 0, 0, 1); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE); RemovePlayerAttachedObject(playerid, 0); new Float:x, Float:y, Float:z, Float:angle; GetPointInAngleOfPlayer(playerid, x, y, z, 0.8, 0.0); GetPlayerFacingAngle(playerid, angle); crate[playerid] = CreateObject(2358, x, y, z-0.85, 0.0, 0.0, angle); } return 0; } return 1; } CMD:crate(playerid, params[]) { new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y ,z); crate[playerid] = CreateObject(2358, x, y, z, 0.0, 0.0, 0.0); return 1; } stock GetPointInAngleOfPlayer(playerid, &Float:x, &Float:y, &Float:z, Float:distance, Float:angle) { new Float:current_angle; GetPlayerPos(playerid, x, y, z); GetPlayerFacingAngle(playerid, current_angle); if( IsPlayerInAnyVehicle(playerid) ) { GetVehicleZAngle(GetPlayerVehicleID(playerid), current_angle); } new Float:a = current_angle + angle; x += (distance * floatsin(-a, degrees)); y += (distance * floatcos(-a, degrees)); }