Wie oben schon steht wird es immer an die id 0 geheftet... kann mir jemand helfen ?
//------------------------------------HausSystem-----------------------------------------------
if(strcmp(strget(cmdtext,0),"/ahauserstellen",true) == 0)
{
new Float:x, Float:y, Float:z;
if(IsPlayerConnected(playerid))
{
if(pDaten[playerid][AdminLevel] >= 2000 || IsPlayerAdmin(playerid))
{
if(!strlen(strget(cmdtext,1)) || !strlen(strget(cmdtext,2)) || !strlen(strget(cmdtext,3)))
{
SendClientMessage(playerid, COLOR_GRAD2, "Benutzung: /hauserstellen [Type1-12] [Kosten] [Level]");
return 1;
}
new HausType;
new money;
new level = strval(strget(cmdtext,3));
HausType = strval(strget(cmdtext,1));
money = strval(strget(cmdtext,2));
if (pDaten[playerid][AdminLevel] >= 2000 || IsPlayerAdmin(playerid))
{
if(IsPlayerConnected(playerid))
{
if(hausid <= 499)
{
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerPos(playerid,x,y,z);
strmid(Haus[hausid][Owner],"Keiner",0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
Haus[hausid][ax] = x;
Haus[hausid][ay] = y;
Haus[hausid][az] = z;
Haus[hausid][ix] = HausInterior [HausType][xx];
Haus[hausid][iy] = HausInterior [HausType][yy];
Haus[hausid][iz] = HausInterior [HausType][zz];
Haus[hausid][interior] = HausInterior [HausType][Inter];
Haus[hausid][vworld] = hausid+100;
Haus[hausid][kosten] = money;
Haus[hausid][kosten2] = level;
Haus[hausid][kaufen] = 0;
Haus[hausid][schloss] = 1;
Haus[hausid][heal] = 0;
Haus[hausid][armour] = 0;
Haus[hausid][Miete] = 0;
Haus[hausid][Mietbar] = 0;
Haus[hausid][Type] = HausType;
Haus[hausid][pickid] = CreateDynamicPickup(1273,1,x,y,z,0);
format(cmd,sizeof(cmd),"Besitzer : %s\n Größe : %s\nKosten : %d\nLevel: %d\n/hauskaufen zum kaufen",Haus[hausid][Owner],HausGrosse(hausid),money,level);
Haus[hausid][lbl_haus] = Create3DTextLabel(cmd,COLOR_GREEN,Haus[hausid][ax], Haus[hausid][ay], Haus[hausid][az]+1,15.0,0);
Haus[hausid][icon_id] = iAddStreamIcon(x,y,z,31,0);
CreateHaus(Haus[hausid][Owner], Haus[hausid][ax], Haus[hausid][ay], Haus[hausid][az], Haus[hausid][ix], Haus[hausid][iy], Haus[hausid][iz], Haus[hausid][interior], Haus[hausid][vworld], Haus[hausid][kosten],Haus[hausid][kosten2], Haus[hausid][kaufen], Haus[hausid][schloss], Haus[hausid][heal], Haus[hausid][armour], Haus[hausid][Type]);
UpdateHaus(hausid);
hausid++;
format(string, sizeof(string), "AdminSystem: %s hat das %d erstellt!",sendername,hausid);
SendAdminMessage(COLOR_LIGHTRED,string);
return 1;
}
else
{
SendClientMessage(playerid, COLOR_RED, "Es wurden di Anzahl an Maximalen Hauser erreicht!");
}
}
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, "Das darfst du nicht tun!");
}
}
return 1;
}
3DTextLabel von Häuser und Bizze werden immer an id 0 geheftet
- Cr4zY95
- Geschlossen
- Erledigt
-
-
Hast du vlt. vergessen "hausid" einen Wert zuzuweisen?
-
wo wird etwas in "hausid" eingespeichert? falls nirgendwo ist klar warums immer 0 ist
-
Was muss ich jetzt tuhen ?
-
Z.b. mit einem Loop überprüfen welche Häuser belegt sind.
Wenn ein freies gefunden wird einfach "hausid" die ID des freien Hauses zuordnen. -
versteh ich nicht wirklich
-
Probier das mal (hoffe es sind keine Fehler drinn):
if(strcmp(strget(cmdtext,0),"/ahauserstellen",true) == 0)
{
new Float:x, Float:y, Float:z;
if(IsPlayerConnected(playerid))
{
if(pDaten[playerid][AdminLevel] >= 2000 || IsPlayerAdmin(playerid))
{
if(!strlen(strget(cmdtext,1)) || !strlen(strget(cmdtext,2)) || !strlen(strget(cmdtext,3)))
{
SendClientMessage(playerid, COLOR_GRAD2, "Benutzung: /hauserstellen [Type1-12] [Kosten] [Level]");
return 1;
}
new HausType;
new money;
new level = strval(strget(cmdtext,3));
HausType = strval(strget(cmdtext,1));
money = strval(strget(cmdtext,2));
if (pDaten[playerid][AdminLevel] >= 2000 || IsPlayerAdmin(playerid))
{
if(IsPlayerConnected(playerid))
{
for(new i; i < 500; i++)
{
if(Haus[i][interior] > 0)continue;
hausid = i;
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerPos(playerid,x,y,z);
strmid(Haus[hausid][Owner],"Keiner",0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
Haus[hausid][ax] = x;
Haus[hausid][ay] = y;
Haus[hausid][az] = z;
Haus[hausid][ix] = HausInterior [HausType][xx];
Haus[hausid][iy] = HausInterior [HausType][yy];
Haus[hausid][iz] = HausInterior [HausType][zz];
Haus[hausid][interior] = HausInterior [HausType][Inter];
Haus[hausid][vworld] = hausid+100;
Haus[hausid][kosten] = money;
Haus[hausid][kosten2] = level;
Haus[hausid][kaufen] = 0;
Haus[hausid][schloss] = 1;
Haus[hausid][heal] = 0;
Haus[hausid][armour] = 0;
Haus[hausid][Miete] = 0;
Haus[hausid][Mietbar] = 0;
Haus[hausid][Type] = HausType;
Haus[hausid][pickid] = CreateDynamicPickup(1273,1,x,y,z,0);
format(cmd,sizeof(cmd),"Besitzer : %s\n Größe : %s\nKosten : %d\nLevel: %d\n/hauskaufen zum kaufen",Haus[hausid][Owner],HausGrosse(hausid),money,level);
Haus[hausid][lbl_haus] = Create3DTextLabel(cmd,COLOR_GREEN,Haus[hausid][ax], Haus[hausid][ay], Haus[hausid][az]+1,15.0,0);
Haus[hausid][icon_id] = iAddStreamIcon(x,y,z,31,0);
CreateHaus(Haus[hausid][Owner], Haus[hausid][ax], Haus[hausid][ay], Haus[hausid][az], Haus[hausid][ix], Haus[hausid][iy], Haus[hausid][iz], Haus[hausid][interior], Haus[hausid][vworld], Haus[hausid][kosten],Haus[hausid][kosten2], Haus[hausid][kaufen], Haus[hausid][schloss], Haus[hausid][heal], Haus[hausid][armour], Haus[hausid][Type]);
UpdateHaus(hausid);
format(string, sizeof(string), "AdminSystem: %s hat das %d erstellt!",sendername,hausid);
SendAdminMessage(COLOR_LIGHTRED,string);
return 1;
}
return SendClientMessage(playerid, COLOR_RED, "Es wurden di Anzahl an Maximalen Hauser erreicht!");
}
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, "Das darfst du nicht tun!");
}
}
return 1;
} -
Jetzt klebt es an Id 1, kann es sein das es an haus 0 liegt? den 1 und 2 funktioniert wunderbar
-
Hattest du die Häuser gespeichert?
Wenn ja lösch nochmal alle und erstell sie neu...
Und hast du schon die editierte Version? In der alten hatte ich nen Fehler -
Hab die editierte version, die Häuser hab ich neu erstellt und habe es dann gekauft und nun klebt das 3d textlabel an id 1
-
Deine Häuser haben aber nicht einen Interior mit der ID 1 oder?
-
Ne 5 und 7 hab ich genommen
-
Create3DTextLabel(cmd,COLOR_GREEN,Haus[hausid][ax], Haus[hausid][ay], Haus[hausid][az]+1,15.0,0);
Dann erstell das Label doch mal an den eingegeben Koordinaten (x, y, z).
Create3DTextLabel(cmd,x, y, z +1,15.0,0);
-
breadfish.de
Hat das Thema geschlossen.