Hallo hab edoch ein problem mit den laden von hausern
stock LoadHaus()
{
new str[3];
new cmd[128];
mysql_query("SELECT * FROM hauser WHERE ID='hausid'");
mysql_store_result();new resultline[200];
if(mysql_fetch_row_format(resultline))
{
mysql_query("SELECT * FROM hauser");
mysql_store_result();
while(mysql_retrieve_row()) //this will be running until all rows are processed
{
valstr(str,hausid);
Haus[hausid][ID] = mysql_GetInt("hauser", "ID", "ID", str);
strmid(Haus[hausid][Owner],mysql_GetString("hauser", "Besitzer", "ID", str),0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
Haus[hausid][ax] = mysql_GetFloat("hauser", "ax", "ID", str);
Haus[hausid][ay] = mysql_GetFloat("hauser", "ay", "ID", str);
Haus[hausid][az] = mysql_GetFloat("hauser", "az", "ID", str);
Haus[hausid][ix] = mysql_GetFloat("hauser", "ix", "ID", str);
Haus[hausid][iy] = mysql_GetFloat("hauser", "iy", "ID", str);
Haus[hausid][iz] = mysql_GetFloat("hauser", "iz", "ID", str);
Haus[hausid][interior] = mysql_GetInt("hauser", "interior", "ID", str);
Haus[hausid][vworld] = mysql_GetInt("hauser", "virtual_world", "ID", str);
Haus[hausid][kosten] = mysql_GetInt("hauser", "kosten", "ID", str);
Haus[hausid][kosten2] = mysql_GetInt("hauser", "kosten2", "ID", str);
Haus[hausid][kaufen] = mysql_GetInt("hauser", "nicht_zum_kauf", "ID", str);
Haus[hausid][schloss] = mysql_GetInt("hauser", "verschlossen", "ID", str);
Haus[hausid][heal] = mysql_GetInt("hauser", "Heal", "ID", str);
Haus[hausid][armour] = mysql_GetInt("hauser", "Armour", "ID", str);
Haus[hausid][Type] = mysql_GetInt("hauser", "Type", "ID", str);
Haus[hausid][Miete] = mysql_GetInt("hauser", "Miete", "ID", str);
Haus[hausid][Mietbar] = mysql_GetInt("hauser", "Mietbar", "ID", str);
sscanf(resultline,"p<|>dsffffffddddddddddd",Haus[hausid][ID],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],Haus[hausid][Miete],Haus[hausid][Mietbar]);
printf("ID:%d Owner:%s AX:%f AY:%f AZ:%f IX:%f IY:%f IZ:%f Int:%d VW:%d KOSTEN:%d SCORE:%d KAUFE:%d SCHLOSS:%d HEAL:%d ARMOUR:%d TYPE:%d",Haus[hausid][ID],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]);
hausid++;
}
format(cmd,sizeof(cmd),"Besitzer : %s\n Größe : %s\nKosten : %d\nLevel: %d\n/buyhouse zum kaufen",Haus[hausid][Owner],HausGrosse(hausid),Haus[hausid][kosten],Haus[hausid][kosten2]);
Haus[hausid][lbl_haus] = Create3DTextLabel(cmd,COLOR_GREEN,Haus[hausid][ax], Haus[hausid][ay], Haus[hausid][az]+1,15.0,0);
UpdateHausInfo(hausid);
}
mysql_free_result();
} er lädt nur das 1e haus er macht ja das mit den while nicht irgendwie
-
-
versuche es mal mit ne normalen schleife also nicht mit der while schleife
also
for(new i=0;i<MAX_HAUS;i++)
{
//UND HIER DENN DEINE HÄUSER REIN
} -
Das wievielte Thema ist es heute von dir eigentlich ?
Du ließt einfach nicht die Dokumentation zu dem Plugin ...stock LoadHaus()
{
new str[3];
new cmd[128];
// --- MÜLL
mysql_query("SELECT * FROM hauser WHERE ID='hausid'");
mysql_store_result();new resultline[200];
if(mysql_fetch_row_format(resultline))
{
// --- MÜLL Ende
mysql_query("SELECT * FROM hauser");
mysql_store_result();
while(mysql_retrieve_row()) //this will be running until all rows are processed
{
valstr(str,hausid);
Haus[hausid][ID] = mysql_GetInt("hauser", "ID", "ID", str);
strmid(Haus[hausid][Owner],mysql_GetString("hauser", "Besitzer", "ID", str),0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
Haus[hausid][ax] = mysql_GetFloat("hauser", "ax", "ID", str);
Haus[hausid][ay] = mysql_GetFloat("hauser", "ay", "ID", str);
Haus[hausid][az] = mysql_GetFloat("hauser", "az", "ID", str);
Haus[hausid][ix] = mysql_GetFloat("hauser", "ix", "ID", str);
Haus[hausid][iy] = mysql_GetFloat("hauser", "iy", "ID", str);
Haus[hausid][iz] = mysql_GetFloat("hauser", "iz", "ID", str);
Haus[hausid][interior] = mysql_GetInt("hauser", "interior", "ID", str);
Haus[hausid][vworld] = mysql_GetInt("hauser", "virtual_world", "ID", str);
Haus[hausid][kosten] = mysql_GetInt("hauser", "kosten", "ID", str);
Haus[hausid][kosten2] = mysql_GetInt("hauser", "kosten2", "ID", str);
Haus[hausid][kaufen] = mysql_GetInt("hauser", "nicht_zum_kauf", "ID", str);
Haus[hausid][schloss] = mysql_GetInt("hauser", "verschlossen", "ID", str);
Haus[hausid][heal] = mysql_GetInt("hauser", "Heal", "ID", str);
Haus[hausid][armour] = mysql_GetInt("hauser", "Armour", "ID", str);
Haus[hausid][Type] = mysql_GetInt("hauser", "Type", "ID", str);
Haus[hausid][Miete] = mysql_GetInt("hauser", "Miete", "ID", str);
Haus[hausid][Mietbar] = mysql_GetInt("hauser", "Mietbar", "ID", str);
sscanf(resultline,"p<|>dsffffffddddddddddd",Haus[hausid][ID],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],Haus[hausid][Miete],Haus[hausid][Mietbar]);
printf("ID:%d Owner:%s AX:%f AY:%f AZ:%f IX:%f IY:%f IZ:%f Int:%d VW:%d KOSTEN:%d SCORE:%d KAUFE:%d SCHLOSS:%d HEAL:%d ARMOUR:%d TYPE:%d",Haus[hausid][ID],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]);
hausid++;
}
format(cmd,sizeof(cmd),"Besitzer : %s\n Größe : %s\nKosten : %d\nLevel: %d\n/buyhouse zum kaufen",Haus[hausid][Owner],HausGrosse(hausid),Haus[hausid][kosten],Haus[hausid][kosten2]);
Haus[hausid][lbl_haus] = Create3DTextLabel(cmd,COLOR_GREEN,Haus[hausid][ax], Haus[hausid][ay], Haus[hausid][az]+1,15.0,0);
UpdateHausInfo(hausid);
}
mysql_free_result();
}
Der markierte Bereich ist total überflüssig und gibt bestimmt auch nur Fehler in der mysql.log aus.
// --- MÜLL
mysql_query("SELECT * FROM hauser WHERE ID='hausid'"); // <-- Die Abfrage klappt doch niemals. WHERE ID = 'hausid' ????
mysql_store_result();new resultline[200];
if(mysql_fetch_row_format(resultline))
{
// --- MÜLL Ende
Übrigens ist die sscanf Zeile auch unnötig.Das auslesen machst du sowieso schon davor. Die Möglichkeit mit sscanf ist lediglich besser,aber wohl zu komplex um es einem MySQL Anfänger zu erklären :\.format(cmd,sizeof(cmd),"Besitzer : %s\n Größe : %s\nKosten : %d\nLevel: %d\n/buyhouse zum kaufen",Haus[hausid][Owner],HausGrosse(hausid),Haus[hausid][kosten],Haus[hausid][kosten2]);
Haus[hausid][lbl_haus] = Create3DTextLabel(cmd,COLOR_GREEN,Haus[hausid][ax], Haus[hausid][ay], Haus[hausid][az]+1,15.0,0);
UpdateHausInfo(hausid);
Der Teil muss sicherlich auch in die While-Schleife. Zumindest die format und Create3D... Zeilen. -
ja habe es jetzte so aber er sagt mir nur das er 1 haus lädt und auch nur in game 1 haus gibt obwohl ich shcon 40hauser in der db habe
//edit hilfeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
das mus s doch irgendwie gehen oder erklär mir da smal einer in deutsch mit den sscanf etc
//Edit
ich habe das jetzt so so lädt er nur 1 haus und den rest nicht. und bei den coordinaten macht er nach den koma 000000 statt die richtigen zahlen hinzu packenstock LoadHaus()
{
new cmd[128];
new Query[500];
format(Query,sizeof(Query),"SELECT * FROM `hauser` WHERE `ID` = '%d'",hausid);
mysql_query(Query);
mysql_store_result();new result[500];
while(mysql_fetch_row(result))
{
sscanf(result,"p|dsffffffddddddddddd",Haus[hausid][ID],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],Haus[hausid][Miete],Haus[hausid][Mietbar]);
print(result);
printf("ID:%d | Owner:%s | AX:%f | AY:%f | AZ:%f | IX:%f | IY:%f | IZ:%f | Int:%d | VW:%d | KOSTEN:%d | SCORE:%d | KAUFE:%d | SCHLOSS:%d | HEAL:%d | :%d | :%d",Haus[hausid][ID],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]);
format(cmd,sizeof(cmd),"Besitzer : %s\n Größe : %s\nKosten : %d\nLevel: %d\n/buyhouse zum kaufen",Haus[hausid][Owner],HausGrosse(hausid),Haus[hausid][kosten],Haus[hausid][kosten2]);
Haus[hausid][lbl_haus] = Create3DTextLabel(cmd,COLOR_GREEN,Haus[hausid][ax], Haus[hausid][ay], Haus[hausid][az]+1,15.0,0);
UpdateHausInfo(hausid);
hausid++;
//}
}
} -
wilste eig. verarschen? dass was müll ist lässt du drine?
stock LoadHaus()
{
new cmd[128];
new Query[500];
format(Query,sizeof(Query),"SELECT * FROM `hauser`");
mysql_query(Query);
mysql_store_result();new result[500];
while(mysql_fetch_row(result))
{
sscanf(result,"p|dsffffffddddddddddd",Haus[hausid][ID],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],Haus[hausid][Miete],Haus[hausid][Mietbar]);
print(result);
printf("ID:%d | Owner:%s | AX:%f | AY:%f | AZ:%f | IX:%f | IY:%f | IZ:%f | Int:%d | VW:%d | KOSTEN:%d | SCORE:%d | KAUFE:%d | SCHLOSS:%d | HEAL:%d | :%d | :%d",Haus[hausid][ID],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]);
format(cmd,sizeof(cmd),"Besitzer : %s\n Größe : %s\nKosten : %d\nLevel: %d\n/buyhouse zum kaufen",Haus[hausid][Owner],HausGrosse(hausid),Haus[hausid][kosten],Haus[hausid][kosten2]);
Haus[hausid][lbl_haus] = Create3DTextLabel(cmd,COLOR_GREEN,Haus[hausid][ax], Haus[hausid][ay], Haus[hausid][az]+1,15.0,0);
UpdateHausInfo(hausid);
hausid++;
//} -
JA das habe ich abgeguckt von wo anderes wo es klappt aber ich hatet das vorher anderes da hat er 1 haus geladen aber fehler haft
So habe ich ich das erst gehabt das ging nit
stock LoadHaus()
{
new str[500];
new cmd[128];
mysql_query("SELECT * FROM hauser");
mysql_store_result();
while(mysql_retrieve_row()) //this will be running until all rows are processed
{
valstr(str,hausid);
Haus[hausid][ID] = mysql_GetInt("hauser", "ID", "ID", str);
strmid(Haus[hausid][Owner],mysql_GetString("hauser", "Besitzer", "ID", str),0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
Haus[hausid][ax] = mysql_GetFloat("hauser", "ax", "ID", str);
Haus[hausid][ay] = mysql_GetFloat("hauser", "ay", "ID", str);
Haus[hausid][az] = mysql_GetFloat("hauser", "az", "ID", str);
Haus[hausid][ix] = mysql_GetFloat("hauser", "ix", "ID", str);
Haus[hausid][iy] = mysql_GetFloat("hauser", "iy", "ID", str);
Haus[hausid][iz] = mysql_GetFloat("hauser", "iz", "ID", str);
Haus[hausid][interior] = mysql_GetInt("hauser", "interior", "ID", str);
Haus[hausid][vworld] = mysql_GetInt("hauser", "virtual_world", "ID", str);
Haus[hausid][kosten] = mysql_GetInt("hauser", "kosten", "ID", str);
Haus[hausid][kosten2] = mysql_GetInt("hauser", "kosten2", "ID", str);
Haus[hausid][kaufen] = mysql_GetInt("hauser", "nicht_zum_kauf", "ID", str);
Haus[hausid][schloss] = mysql_GetInt("hauser", "verschlossen", "ID", str);
Haus[hausid][heal] = mysql_GetInt("hauser", "Heal", "ID", str);
Haus[hausid][armour] = mysql_GetInt("hauser", "Armour", "ID", str);
Haus[hausid][Type] = mysql_GetInt("hauser", "Type", "ID", str);
Haus[hausid][Miete] = mysql_GetInt("hauser", "Miete", "ID", str);
Haus[hausid][Mietbar] = mysql_GetInt("hauser", "Mietbar", "ID", str);
printf("ID:%d | Owner:%s | AX:%f | AY:%f | AZ:%f | IX:%f | IY:%f | IZ:%f | Int:%d | VW:%d | KOSTEN:%d | SCORE:%d | KAUFE:%d | SCHLOSS:%d | HEAL:%d | :%d | :%d",Haus[hausid][ID],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]);
format(cmd,sizeof(cmd),"Besitzer : %s\n Größe : %s\nKosten : %d\nLevel: %d\n/buyhouse zum kaufen",Haus[hausid][Owner],HausGrosse(hausid),Haus[hausid][kosten],Haus[hausid][kosten2]);
Haus[hausid][lbl_haus] = Create3DTextLabel(cmd,COLOR_GREEN,Haus[hausid][ax], Haus[hausid][ay], Haus[hausid][az]+1,15.0,0);
UpdateHausInfo(hausid);
hausid++;
}
mysql_free_result();
}//edit so wie das da steht ladt er 1 haus fast richtig nur die kordinaten stimmen nicht. also nach den komma die zahlen. Und er ladt wie gesagt nur das 1e haus mehr auch nit
//edit so wie ich das jetzt habe also mit den was da steht lädt er nur 1 haus korrekt und die restlichen 39 überhaupt nicht fehlt da noch was? -
breadfish.de
Hat das Thema geschlossen.