Ich kann das nicht benutzen, das andee "Zolltor" hat eine andere Objektid. Das 2. Tor hat eine andere Objektid, schlimm?
Nein ist es nicht.
Sry hab vergessen, dass das so in Pawn ja nicht geht, schreib es mal so:
C
#define E:: e_z
enum E::Tor
{
Float:E::x,
Float:E::y,
Float:E::z,
Float:E::from_rX,
Float:E::from_rY,
Float:E::from_rZ,
Float:E::to_rX,
Float:E::to_rY,
Float:E::to_rZ
};
stock const zollTore[][e_zTor] = {
{2234.0056,-2216.0217,13.546, 0.0,270.0,135.0, 0.0,0.0,135.0},
{2179.1099,-2255.8748,14.7734, 0.0,0.0,135.0, 0.0,0.0,0.0} //Musst noch angeben, in welche Rotation gedreht werden soll
};
new ZollTor[2];
ocmd:zolltor(playerid,params[])
{
if(pInfo[playerid][pJob] != 1) return SendClientMessage(playerid,-1,"{bc4343}Du bist kein Mitarbeiter vom Zoll und kannst das Tor nicht öffnen.");
new i = GetZollStation(playerid);
if(i == -1) return SendClientMessage(playerid,-1,"Du befindest dich an keinem Zoll Tor!");
MoveDynamicObjectRot(ZollTor[i], zollTore[i][E::to_rX], zollTore[i][E::to_rY], zollTore[i][E::to_rZ], true);
SetTimerEx("@checkZone", 3000, 0, "ii", playerid, i);
return 1;
}
stock GetZollStation(playerid)
{
for(new i; i<sizeof(zollTore); i++)
{
if(IsPlayerInRangeOfPoint(playerid,10.0,zollTore[i][E::x],zollTore[i][E::y],zollTore[i][E::z])) return i;
}
return -1;
}
@checkZone(p,i);@checkZone(p,i)
{
return (!IsPlayerConnected(p) || !IsPlayerInRangeOfPoint(p, 10.0,zollTore[i][E::x],zollTore[i][E::y],zollTore[i][E::z])) ? Zollzu(i) : SetTimerEx("@checkZone", 3000, 0, "ii", p,i);
}
stock MoveDynamicObjectRot(obj, Float:rX, Float:rY, Float:rZ, bool:open)
{
new Float:x,Float:y,Float:z;
GetDynamicObjectPos(obj,x,y,z);
MoveDynamicObject(obj,x,y,z+((open)?(0.0001):(-0.0001)),0.0001,rX,rY,rZ);
return 1;
}
forward Zollzu (i);
public Zollzu (i)
{
MoveDynamicObjectRot(ZollTor[i], zollTore[i][E::from_rX], zollTore[i][E::from_rY], zollTore[i][E::from_rZ], false);
return 1;
}
Alles anzeigen
und die Zuweisung mit den Objekten machst du dann so:
ZollTor[0] = CreateDynamicObject(...); //da wo du jetzt ZollTor1 hast
//und dann eben das selbe nochmal für ZollTor[1]
ich will noch bei Zolltor2 ein Ingamesound abspielen.
Nur da, oder bei beiden?
Im Endeffekt, wenn du wirklich nur 2 ZollTore haben willst...ist das System n bisschen over...aber im Endeffekt spielt das jetzt keine Rolle.