Hay,
wenn ich immer Ingame "/Hauserstellen" eingebe und dazu die Daten, passiert nicht viel... es wird zwar was in der Tabelle erstellt, aber es wird nicht ein PickUp erstellt, geschweige noch 3D-Text
ocmd:hauserstellen(playerid,params[]) if(SpielerInfo[playerid][pAlevel] >= 5)[/size][size=10] {[/size][size=10] new Preis,Level,AZimmer = 0, MZimmer,Beschreibung[MaxHausBeschreibung];[/size][size=10] if(sscanf(params,"iiis[100]",Preis, Level, MZimmer, Beschreibung))return SendClientMessage(playerid,0xFF0000FF,"[FEHLER]{FFFFFF} Benutze: /Hauserstellen [Preis] [Level] [M.Zimmeranzahl] [Beschreibung]");[/size][size=10] if(strlen(Beschreibung) < MinHausBeschreibung || strlen(Beschreibung) > MaxHausBeschreibung)return SendClientMessage(playerid, 0xFF0000FF, "[FEHLER]{FFFFFF}Die Beschreibung ist zu kurz oder zu lang!(Mind. 4 Zeichen || Max. 12 Zeichen)");[/size][size=10] if(Preis < MinHausPreis || Preis > MaxHausPreis)return SendClientMessage(playerid, 0xFF0000FF, "[FEHLER]{FFFFFF}Der Preis ist zu hoch oder zu tief!(Mind. 1$ || Max. 1000000$)");[/size][size=10] if(MZimmer < MinHausZimmer || MZimmer > MaxHausZimmer)return SendClientMessage(playerid, 0xFF0000FF, "[FEHLER]{FFFFFF}Die Zimmer sind zu wenig oder zu viel!(Mind. 1 Zimmer || Max. 100 Zimmer)");[/size][size=10] if(Level < MinHausLevel || Level > MaxHausLevel)return SendClientMessage(playerid, 0xFF0000FF, "[FEHLER]{FFFFFF}Der Level ist zu hoch oder zu niedrig!(Mind. Level 1 || Max. Level 99)");[/size][size=10] {[/size][size=10] new Float:x,Float:y,Float:z,SQL[300];[/size][size=10] GetPlayerPos(playerid, x, y, z); //Die Hauspostion/Spielerpostion wird geholt.[/size][size=10] format(SQL, sizeof(SQL), "INSERT INTO hauser (Beschreibung, Preis, AZimmer, MZimmer , Level, HausPosX, HausPosY, HausPosZ) VALUES ('%s', '%i', '%i', '%i', '%i', '%f', '%f', '%f')",Beschreibung, Preis, AZimmer, MZimmer, Level, x, y, z);[/size][size=10] mysql_query(SQL);[/size][size=10] SendClientMessage(playerid, 0xFF0000FF, "[H-INFO] {FFFFFF}Das Haus wurde erfolgreich erstellt!");[/size][size=10] printf("Es wurde ein Haus erstellt!");[/size][size=10] for(new Var; Var < MaxHaus; Var++)[/size][size=10] { [/size][size=10] DestroyHouse(Var); [/size][size=10] }[/size][size=10] LoadHouses();[/size][size=10] }[/size][size=10] [/size][size=10] }[/size][size=10] return 1;[/size][size=10]}[/size]
[size=10]
stock LoadHouses()
{
new Schleife = 1,String[5],Text[150];
while(Schleife < MaxHaus)
{
format(String, sizeof(String), "%d", Schleife);
Haus[Schleife][hID] = mysql_GetInt("hauser", "hID", "ID", String);
format(Haus[Schleife][hBesitzer], MAX_PLAYER_NAME, mysql_GetString("hauser", "Besitzer", "ID", String));
format(Haus[Schleife][hBeschreibung], MaxHausBeschreibung, mysql_GetString("hauser", "Beschreibung", "ID", String));
Haus[Schleife][hPreis] = mysql_GetInt("hauser", "Preis", "ID", String);
Haus[Schleife][hZimmerA] = mysql_GetInt("hauser", "AZimmer", "ID", String);
Haus[Schleife][hZimmerM] = mysql_GetInt("hauser", "MZimmer", "ID", String);
Haus[Schleife][hLevel] = mysql_GetInt("hauser", "Level", "ID", String);
Haus[Schleife][hX] = mysql_GetFloat("hauser", "HausPosX", "ID", String);
Haus[Schleife][hY] = mysql_GetFloat("hauser", "HausPosY", "ID", String);
Haus[Schleife][hZ] = mysql_GetFloat("hauser", "HausPosZ", "ID", String);
if(strlen(Haus[Schleife][hBesitzer]) < 2 )
{
format(Text, sizeof(Text), "%s zu verkaufen!\nPreis: $%i\nLevel: %i\nZimmer: %i/%i", Haus[Schleife][hBeschreibung], Haus[Schleife][hPreis], Haus[Schleife][hLevel], Haus[Schleife][hZimmerA], Haus[Schleife][hZimmerM]);
}
else
{
format(Text, sizeof(Text), "%s\nBesitzer: %s\nZimmer %i/%i", Haus[Schleife][hBeschreibung], Haus[Schleife][hBesitzer], Haus[Schleife][hZimmerA], Haus[Schleife][hZimmerM]);
}
Haus[Schleife][hText] = Create3DTextLabel(Text, -1, Haus[Schleife][hX], Haus[Schleife][hY], Haus[Schleife][hZ], MaxHausTextSehbar, 0);
Haus[Schleife][hPickup] = CreatePickup(HausPickupModel, 23, Haus[Schleife][hX], Haus[Schleife][hY], Haus[Schleife][hZ], 0);
Update3DTextLabelText(Haus[Schleife][hText], 0xFF0000FF, Text);
Schleife++;
}
return 1;
}
stock DestroyHouse(ID)
{
DestroyPickup(Haus[ID][hPickup]);
Delete3DTextLabel(Haus[ID][hText]);
return 1;
}
Und wie würdet ihr das schreiben? Denn deswegen laggt der start immer.
public OnGameModeInit()
{
//MQSL
Connect_To_Database();
//Haussystem
new Hausx;
mysql_debug(1);
while(Hausx < MaxHaus)
{
LoadHouse(Hausx);
Hausx++;
}
return 1;
}
public OnGameModeExit()
{
//Haussystem
new Hausy;
while(Hausy < MaxHaus)
{
DestroyHouse(Hausy);
Hausy++;
}
return 1;
}