Zu deiner 1. Frage mit dem Enter, schreib das mal so:
C
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(!IsPlayerInAnyVehicle(playerid) && (newkeys & KEY_SECONDARY_ATTACK))// Enter
{
// Öffentliche Gebäude
if(GetPVarInt(playerid,"InBuilding")!=-1)
{
new e=GetPVarInt(playerid,"InBuilding");
if(IsPlayerInRangeOfPoint(playerid,3.0,Building[e][IX],Building[e][IY],Building[e][IZ]))
{
SetPlayerPos(playerid,Building[e][EX],Building[e][EY],Building[e][EZ]);
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid,0);
SetPVarInt(playerid,"InBuilding",-1);
return 1;
}
}
else
{
for(new e;e<sizeof (Building);e++)
{
if(IsPlayerInRangeOfPoint(playerid,3.0,Building[e][EX],Building[e][EY],Building[e][EZ]))
{
SetPlayerPos(playerid,Building[e][IX],Building[e][IY],Building[e][IZ]);
if(Building[e][Interior]!=0)SetPlayerInterior(playerid,Building[e][Interior]);
if(Building[e][Welt]!=0)SetPlayerVirtualWorld(playerid,Building[e][Welt]);
SetPVarInt(playerid,"InBuilding",e);
return 1;
}
}
}
// Biz
if(GetPVarInt(playerid,"InBiz")!=-1)
{
new b=GetPVarInt(playerid,"InBiz");
new bi=bInfo[b][bInterior];
if(IsPlayerInRangeOfPoint(playerid,3.0,BizInts[bi][IX],BizInts[bi][IY],BizInts[bi][IZ]))
{
SetPlayerPos(playerid,bInfo[b][bX],bInfo[b][bY],bInfo[b][bZ]);
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid,0);
SetPVarInt(playerid,"InBiz",-1);
return 1;
}
}
else
{
for(new b;b<sizeof(bInfo);b++)
{
printf("A: %d",b);
if(IsPlayerInRangeOfPoint(playerid,5.0,bInfo[b][bX],bInfo[b][bY],bInfo[b][bZ]))
{
if(bInfo[b][biztype]==3)return SendClientMessage(playerid,-1,"Diesen BizTyp kannst du nicht betreten!");
new bi=bInfo[b][bInterior];
SetPlayerPos(playerid,BizInts[bi][IX],BizInts[bi][IY],BizInts[bi][IZ]);
SetPlayerInterior(playerid,BizInts[bi][Interior]);
SetPlayerVirtualWorld(playerid,BizInts[bi][Welt]);
SetPVarInt(playerid,"InBiz",b);
new string[250];
format(string,sizeof(string),"Binfo Interior: %d | BizInfo Y: %f | BizInfo Interior: %d",bi,BizInts[bi][IY],BizInts[bi][Interior]);
printf(string);
return 1;
}
}
}
}
return 1;
}
Alles anzeigen
Zu deiner 2. Frage naja, was heißt Fehler, es ist halt komplett unnötig, du verwendest ja diese Dinge nicht.
Solltest du so schreiben:
C
stock const Float:SAHSpawn[][] =
{
{770.2623,-1360.5071,13.4866,90.3064}, // 1
{769.7510,-1364.0002,13.4859,89.2629}, // 2
{769.6163,-1367.4791,13.4856,89.5874}, // 3
{769.5392,-1370.8284,13.4845,89.2213}, // 4
{769.7069,-1374.3871,13.4850,89.7537}, // 5
{769.9338,-1378.0271,13.4861,89.0365}, // 6
{769.6988,-1381.5538,13.4854,89.0018}, // 7
{758.9918,-1381.4570,13.4671,270.7707}, // 8
{758.7995,-1378.0237,13.4667,269.7128}, // 9
{759.1549,-1374.4269,13.4650,268.9954}, // 10
{758.9277,-1370.9075,13.4665,268.7696}, // 11
{759.0135,-1367.4722,13.4659,269.2463}, // 12
{758.9769,-1363.9332,13.4660,270.8068}, // 13
{758.6721,-1360.5215,13.4664,269.2405} // 14
};
Alles anzeigen
Diese 15 bezieht sich übrigens nicht auf die Anzahl der Einträge, sondern auf die Länge.
Sprich du hast X, Y, Z, A, aber da sagst du nein, du hast nicht 4, sondern 15. Der Ganze Rest ist halt 0.


