Halli hallo liebe Community,
und zwar habe ich eine Frage, ich arbeite momentan an einem Haussystem und möchte die Häuser mit der ENTER-Taste betreten und verlassen.
Das Betreten funktioniert aber wie muss ich es nun für das verlassen machen?
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys == 16)
{
new id = IsHaus(playerid);
if(id != -1)
{
if(HausInfo[id][vergeben] != 1) return SCM(playerid,rot,"Du kannst das Haus nicht betreten!");
if(HausInfo[id][locked]!=0) return SCM(playerid,rot,"Das Haus ist abgeschlossen");
switch(HausInfo[id][hInt])
{
case 0:
{
SCM(playerid,rot,"ERROR: Kein Interior vergeben, melde dich bei einem Admin!");
}
case 1:
{
SetPlayerPos(playerid,318.564971,1118.209960,1083.882812);
SetPlayerInterior(playerid,5);
SetPlayerVirtualWorld(playerid,id);
houseint[playerid]=id;
inhouse[playerid]=1;
SCM(playerid,gruen,"Du hast das Haus betreten");
}
case 2:
{
SetPlayerPos(playerid,2324.419921,-1145.568359,1050.710083);
SetPlayerInterior(playerid,12);
SetPlayerVirtualWorld(playerid,id);
houseint[playerid]=id;
inhouse[playerid]=1;
SCM(playerid,gruen,"Du hast das Haus betreten");
}
case 3:
{
SetPlayerPos(playerid,1267.663208,-781.323242,1091.906250);
SetPlayerInterior(playerid,5);
SetPlayerVirtualWorld(playerid,id);
houseint[playerid]=id;
inhouse[playerid]=1;
SCM(playerid,gruen,"Du hast das Haus betreten");
}
}
}
}
return 1;
}
Und das ist mein momentaner /verlassen-Befehl der auf die ENTER-Taste gelegt werden soll:
ocmd:verlassen(playerid,params[])
{
new DBResult:Result, str[512],id=houseint[playerid];
if(inhouse[playerid]!=1)return SCM(playerid,rot,"Du bist in keinem Haus!");
format(str,sizeof(str),"SELECT * FROM `haus` WHERE `ID` = '%i'",houseint[playerid]);
Result = db_query(Database,str);
db_get_field_assoc(Result,"X",str,sizeof(str));
HausInfo[id][X]=floatstr(str);
db_get_field_assoc(Result,"Y",str,sizeof(str));
HausInfo[id][Y]=floatstr(str);
db_get_field_assoc(Result,"Z",str,sizeof(str));
HausInfo[id][Z]=floatstr(str);
SetPlayerPos(playerid,HausInfo[id][X],HausInfo[id][Y],HausInfo[id][Z]);
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid,0);
houseint[playerid]=0;
inhouse[playerid]=0;
db_free_result(Result);
return 1;
}