29.04.2011, 03:46
Код:
public OpenCloseGates(playerid) { new Float: dist; new gateID = GetClosestGate(playerid, dist); if(dist < 10.0) { if(IsAllowedToUseGate(playerid, gateID)) { ToggleGate(gateID); return 1; } else { SendClientMessage(playerid, COLOR_RED, "You dont have a remote to open this gate!"); return 1; } } else { SendClientMessage(playerid, COLOR_GRAY, "Youre not close to any gates!"); return 1; } }
Here is the other function
Код:
public GetClosestGate(playerid, &Float: distance) { new Float: pX1, Float: pY1, Float: pZ1; GetPlayerPos(playerid, pX1, pY1, pZ1); distance = 999999.9; new Float: dist2; new ret; for(new i; i < MAX_GATES; i++) { dist2 = Distance(pX1, pY1, pZ1, Gate[i][CloseX], Gate[i][CloseY], Gate[i][CloseZ]); if(dist2 < distance && Gate[i][ParentId] == -1) { distance = dist2; ret = i; } } return ret; }