All pastes #939810 Raw Edit

Gates

public cpp v1 · immutable
#939810 ·published 2008-03-12 16:28 UTC
rendered paste body
#include <a_samp>new Float:DoorCoords[2][9] = {// 2 = Anzahl der Tore{1589.022, -1638.016, 14.950, 0.0, 0.0, -180.000, 1596.933, -1638.044, 14.924},{-1627.62, 688.59900, 7.8980, 0.0, 0.0, -180.000, -1619.68, 688.57900, 7.9010}//  X           Y       Z      RX   RY      RZ      OpenX       OpenY   OpenZ};//------------------------------------------------------------------------------//=====FILTERSCRIPT=============================================================//------------------------------------------------------------------------------public OnFilterScriptInit(){	print("\n--------------------------------------");	print(" Door Example by Rafelder loaded");	print("--------------------------------------\n");	CreateObject(971, DoorCoords[0][0], DoorCoords[0][1], DoorCoords[0][2], DoorCoords[0][3], DoorCoords[0][4], DoorCoords[0][5]);	CreateObject(971, DoorCoords[1][0], DoorCoords[1][1], DoorCoords[1][2], DoorCoords[1][3], DoorCoords[1][4], DoorCoords[1][5]);	// Andere Objecte ( Nach den Toren !!! )	return 1;}public OnFilterScriptExit(){	print("\n--------------------------------------");	print(" Door Example by Rafelder un-loaded");	print("--------------------------------------\n");	return 1;}//------------------------------------------------------------------------------//=====COMMANDS=================================================================//------------------------------------------------------------------------------public OnPlayerCommandText(playerid, cmdtext[]){	if (strcmp("/open", cmdtext, true) == 0)	{		new gate = GetClosestGate(playerid);		MoveObject(gate, DoorCoords[gate][6], DoorCoords[gate][7], DoorCoords[gate][8], 3.0);		return 1;	}			if (strcmp("/close", cmdtext, true) == 0)	{		new gate = GetClosestGate(playerid);		MoveObject(gate, DoorCoords[gate][0], DoorCoords[gate][1], DoorCoords[gate][2], 3.0);		return 1;	}		return 0;}//------------------------------------------------------------------------------//=====STOCK====================================================================//------------------------------------------------------------------------------stock GetDistanceToPoint(playerid, Float:x2, Float:y2, Float:z2){	new Float:dis;	new Float:x1,Float:y1,Float:z1;	GetPlayerPos(playerid,x1,y1,z1);	dis = floatsqroot((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)+(z2-z1)*(z2-z1));	return floatround(dis);}stock GetClosestGate(playerid){	if (!IsPlayerConnected(playerid)) return -1;	new Float:prevdist = 100000.000;	new nearobj, dist;	for (new i=0; i < sizeof(DoorCoords); i++) { 			dist = GetDistanceToPoint(playerid, DoorCoords[i][0], DoorCoords[i][1], DoorCoords[i][2]);	    	if (dist < prevdist) {	      		prevdist=dist;	        	nearobj=i;         	}	}	return nearobj;}