Beitrag von tayson87 ()
Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
Wenn du diesen Code-Teil auskommentierst dann dauert es nicht so lange?
Möglicherweise liegt es daran, dass du alle Textdraws auf einmal dem Spieler anzeigen lässt, aber eigentlich dürfte das nicht viel ausmachen.
fail hab nicht bemerkt das mein ping immer gestiegen ist
Okey danke dir
Habe nun ein echtes Problem.. ID 0 Sieht zwar die Textdraws aber die restlichen ab 0 aufwärts sehen diese leider nicht.. Wie kann ich das denn fixen?
new PlayerText:HausLabelTD[MAX_HAUS][10];
for(new haus=1;haus<MAX_HAUS;haus++)
{
HausLabelTD[haus][0] = CreatePlayerTextDraw(playerid,496.799896, 232.311096, "_");
PlayerTextDrawLetterSize(playerid,HausLabelTD[haus][0], 0.424398, 18.230764);
PlayerTextDrawTextSize(playerid,HausLabelTD[haus][0], 604.600097, 0.000000);
PlayerTextDrawBoxColor(playerid,HausLabelTD[haus][0], 0x00000056);
PlayerTextDrawSetShadow(playerid,HausLabelTD[haus][0], 0);
PlayerTextDrawAlignment(playerid,HausLabelTD[haus][0], 1);
PlayerTextDrawUseBox(playerid,HausLabelTD[haus][0], 1);
PlayerTextDrawBackgroundColor(playerid,HausLabelTD[haus][0], 255);
HausLabelTD[haus][1] = CreatePlayerTextDraw(playerid,497.900268, 237.786712, " "); //Hausbesitzer
PlayerTextDrawLetterSize(playerid,HausLabelTD[haus][1], 0.205199, 0.942932);
PlayerTextDrawAlignment(playerid,HausLabelTD[haus][1], 1);
PlayerTextDrawColor(playerid,HausLabelTD[haus][1], 0x00E200BB);
PlayerTextDrawSetShadow(playerid,HausLabelTD[haus][1], 1);
PlayerTextDrawSetOutline(playerid,HausLabelTD[haus][1], 0);
PlayerTextDrawBackgroundColor(playerid,HausLabelTD[haus][1], 255);
PlayerTextDrawFont(playerid,HausLabelTD[haus][1], 1);
PlayerTextDrawSetProportional(playerid,HausLabelTD[haus][1], 1);
PlayerTextDrawSetShadow(playerid,HausLabelTD[haus][1], 0);
HausLabelTD[haus][2] = CreatePlayerTextDraw(playerid,498.300109, 257.697631, " "); //Kosten
PlayerTextDrawLetterSize(playerid,HausLabelTD[haus][2], 0.205199, 0.942932);
PlayerTextDrawAlignment(playerid,HausLabelTD[haus][2], 1);
PlayerTextDrawColor(playerid,HausLabelTD[haus][2], 0x00E200BB);
PlayerTextDrawSetShadow(playerid,HausLabelTD[haus][2], 1);
PlayerTextDrawSetOutline(playerid,HausLabelTD[haus][2], 0);
PlayerTextDrawBackgroundColor(playerid,HausLabelTD[haus][2], 255);
PlayerTextDrawFont(playerid,HausLabelTD[haus][2], 1);
PlayerTextDrawSetProportional(playerid,HausLabelTD[haus][2], 1);
PlayerTextDrawSetShadow(playerid,HausLabelTD[haus][2], 0);
HausLabelTD[haus][3] = CreatePlayerTextDraw(playerid,497.900115, 268.150970, " "); //Miete
PlayerTextDrawLetterSize(playerid,HausLabelTD[haus][3], 0.205199, 0.942932);
PlayerTextDrawAlignment(playerid,HausLabelTD[haus][3], 1);
PlayerTextDrawColor(playerid,HausLabelTD[haus][3], 0x00E200BB);
PlayerTextDrawSetShadow(playerid,HausLabelTD[haus][3], 1);
PlayerTextDrawSetOutline(playerid,HausLabelTD[haus][3], 0);
PlayerTextDrawBackgroundColor(playerid,HausLabelTD[haus][3], 255);
PlayerTextDrawFont(playerid,HausLabelTD[haus][3], 1);
PlayerTextDrawSetProportional(playerid,HausLabelTD[haus][3], 1);
PlayerTextDrawSetShadow(playerid,HausLabelTD[haus][3], 0);
HausLabelTD[haus][4] = CreatePlayerTextDraw(playerid,498.300201, 247.741973, " "); //Level
PlayerTextDrawLetterSize(playerid,HausLabelTD[haus][4], 0.205199, 0.942932);
PlayerTextDrawAlignment(playerid,HausLabelTD[haus][4], 1);
PlayerTextDrawColor(playerid,HausLabelTD[haus][4], 0x00E200BB);
PlayerTextDrawSetShadow(playerid,HausLabelTD[haus][4], 1);
PlayerTextDrawSetOutline(playerid,HausLabelTD[haus][4], 0);
PlayerTextDrawBackgroundColor(playerid,HausLabelTD[haus][4], 255);
PlayerTextDrawFont(playerid,HausLabelTD[haus][4], 1);
PlayerTextDrawSetProportional(playerid,HausLabelTD[haus][4], 1);
PlayerTextDrawSetShadow(playerid,HausLabelTD[haus][4], 0);
HausLabelTD[haus][5] = CreatePlayerTextDraw(playerid,497.899871, 278.604156, " "); //Mieterslots
PlayerTextDrawLetterSize(playerid,HausLabelTD[haus][5], 0.205199, 0.942932);
PlayerTextDrawAlignment(playerid,HausLabelTD[haus][5], 1);
PlayerTextDrawColor(playerid,HausLabelTD[haus][5], 0x00E200BB);
PlayerTextDrawSetShadow(playerid,HausLabelTD[haus][5], 1);
PlayerTextDrawSetOutline(playerid,HausLabelTD[haus][5], 0);
PlayerTextDrawBackgroundColor(playerid,HausLabelTD[haus][5], 255);
PlayerTextDrawFont(playerid,HausLabelTD[haus][5], 1);
PlayerTextDrawSetProportional(playerid,HausLabelTD[haus][5], 1);
PlayerTextDrawSetShadow(playerid,HausLabelTD[haus][5], 0);
HausLabelTD[haus][6] = CreatePlayerTextDraw(playerid,497.900299, 298.515197, "Mieterliste:");
PlayerTextDrawLetterSize(playerid,HausLabelTD[haus][6], 0.259200, 1.022577);
PlayerTextDrawAlignment(playerid,HausLabelTD[haus][6], 1);
PlayerTextDrawColor(playerid,HausLabelTD[haus][6], 0x00E200BB);
PlayerTextDrawSetShadow(playerid,HausLabelTD[haus][6], 1);
PlayerTextDrawSetOutline(playerid,HausLabelTD[haus][6], 0);
PlayerTextDrawBackgroundColor(playerid,HausLabelTD[haus][6], 255);
PlayerTextDrawFont(playerid,HausLabelTD[haus][6], 1);
PlayerTextDrawSetProportional(playerid,HausLabelTD[haus][6], 1);
PlayerTextDrawSetShadow(playerid,HausLabelTD[haus][6], 0);
HausLabelTD[haus][7] = CreatePlayerTextDraw(playerid,497.899871, 309.466400, " "); //Mietername
PlayerTextDrawLetterSize(playerid,HausLabelTD[haus][7], 0.205199, 0.942932);
PlayerTextDrawAlignment(playerid,HausLabelTD[haus][7], 1);
PlayerTextDrawColor(playerid,HausLabelTD[haus][7], WEISS);
PlayerTextDrawSetShadow(playerid,HausLabelTD[haus][7], 1);
PlayerTextDrawSetOutline(playerid,HausLabelTD[haus][7], 0);
PlayerTextDrawBackgroundColor(playerid,HausLabelTD[haus][7], 255);
PlayerTextDrawFont(playerid,HausLabelTD[haus][7], 1);
PlayerTextDrawSetProportional(playerid,HausLabelTD[haus][7], 1);
PlayerTextDrawSetShadow(playerid,HausLabelTD[haus][7], 0);
HausLabelTD[haus][8] = CreatePlayerTextDraw(playerid,478.400054, 289.057800, ".");
PlayerTextDrawLetterSize(playerid,HausLabelTD[haus][8], 13.061003, 0.717690);
PlayerTextDrawAlignment(playerid,HausLabelTD[haus][8], 1);
PlayerTextDrawColor(playerid,HausLabelTD[haus][8], WEISS);
PlayerTextDrawSetShadow(playerid,HausLabelTD[haus][8], 0);
PlayerTextDrawSetOutline(playerid,HausLabelTD[haus][8], 0);
PlayerTextDrawBackgroundColor(playerid,HausLabelTD[haus][8], 255);
PlayerTextDrawFont(playerid,HausLabelTD[haus][8], 1);
PlayerTextDrawSetProportional(playerid,HausLabelTD[haus][8], 1);
PlayerTextDrawSetShadow(playerid,HausLabelTD[haus][8], 0);
HausLabelTD[haus][9] = CreatePlayerTextDraw(playerid,495.600036, 220.862182, " "); //Hausnummer
PlayerTextDrawLetterSize(playerid,HausLabelTD[haus][9], 0.400000, 1.600000);
PlayerTextDrawAlignment(playerid,HausLabelTD[haus][9], 1);
PlayerTextDrawColor(playerid,HausLabelTD[haus][9], WEISS);
PlayerTextDrawSetShadow(playerid,HausLabelTD[haus][9], 1);
PlayerTextDrawSetOutline(playerid,HausLabelTD[haus][9], 0);
PlayerTextDrawBackgroundColor(playerid,HausLabelTD[haus][9], 255);
PlayerTextDrawFont(playerid,HausLabelTD[haus][9], 1);
PlayerTextDrawSetProportional(playerid,HausLabelTD[haus][9], 1);
PlayerTextDrawSetShadow(playerid,HausLabelTD[haus][9], 0);
}
Wo steht dieser Code?
Wo steht dieser Code?
Unter OnPlayerConnect, hoffe ich kann das noch fixxen bevor ich übermorgen in Urlaub bin
Habs auch so definiert new PlayerText:HausLabelTD[MAX_HAUS][10]; Habs auch mit new PlayerText:HausLabelTD[MAX_PLAYERS][10]; versucht aber kein erfolg, dann wird der Textdraw nicht angezeigt.
new PlayerText:HausLabelTD[MAX_PLAYERS][10];
Und bei OnPlayerConnect:
Dann kannst du den String der Textdraws entsprechend dem jeweiligen Haus dem Spieler dann setzen, wenn es angezeigt werden soll.
Textdraw Funktioniert aber nun hab ich schon wieder Probleme beim Account.. oh man.
MySQL Speicherung ist echt nicht meine stärke
Super!
Hast du einen Code und die Fehler dazu?
Danke erstmals.
Kleiner Hinweis: Ich spawn beim einloggen am Bauernhof. Glaube die Datenbank ist betroffen
Die Fehler:
http://pastebin.com/GikexC3K
Der Code bzw ganze Speicherungssystem:
http://pastebin.com/VKwDLTrN
Am besten wäre es halt über Teamviewer drüber zu gucken aber das Problem ist glaube kaum das jemand Zeit und wirklich die Lust hat..
Das heißt Laptop mit in den Urlaub nehmen oder ich bekomm es noch hin hab ja noch 10 Stunden Zeit.
Du sendest ein Query ohne Content, also ein leeres Query. Wahrscheinlich nutzt du mysql_query vor format.
[18:23:40] [ERROR] CMySQLQuery::Execute[()] - (error #1060) Duplicate column name 'Friedhof'
[18:23:40] [ERROR] CMySQLQuery::Execute[()] - (error #1060) Duplicate column name 'pMarried'
[18:23:40] [ERROR] CMySQLQuery::Execute[()] - (error #1060) Duplicate column name 'pArchs0'
Diese Felder existieren im Query doppelt.
Feld existiert in der Tabelle nicht.
[18:24:30] [ERROR] CMySQLQuery::Execute[()] - (error #1136) Column count doesn't match value count at row 1
Im INSERT hast du mehr/weniger Spaltennamen als Werte (VALUES).
[18:24:58] [ERROR] mysql_escape_string - destination size is too small (must be at least as big as source)
Beim escapen muss die Zielvariable gleich groß oder größer als die Quellvariable sein.
[18:24:58] [ERROR] CMySQLQuery::Execute[()] - (error #1452) Cannot add or update a child row: a foreign key constraint fails (`german-midnight`.`gm_account_blacklist`, CONSTRAINT `gm_account_blacklist_ibfk_1` FOREIGN KEY (`id`) REFERENCES `gm_account_main` (`id`) ON DELETE CASCADE)
https://kittblog.com/article/1…constraint-fails-umgehen/
[18:28:53] [ERROR] CMySQLQuery::Execute[()] - (error #1146) Table 'german-midnight.onlines' doesn't exist
Diese Tabelle existiert nicht.
Feld existiert in der Tabelle nicht.
Versuche erst mal selbst, wie viele der Fehler du selbst beheben kannst.
Die ganzen Warnings weis ich leider nicht wie ich die beheben soll
Die Errors hab ich einigermaßen versucht zu fixxen.
Kannst du mal einen Blick auf die Warnings werfen ? Ich mein pArch ect können doch nicht doppelt erstellt werden, oder was muss ich machen damit diese Column nicht doppelt gemacht wird?
Bist du dir sicher, dass die Fehler von dem Code stammen, den du da gepostet hast? Weil ich da nicht alles nachvollziehen kann, vor allem diese duplicate columns kann ich da nicht finden.
Column hab ich nur bei CreateTable verwendet sonst nirgends oder meinst du die Sachen wie ich die im Script alles definiert hab und geschrieben?
Du hast irgendwo ein Query, in dem pArchs0 (bzw. die anderen) doppelt drin steht.
Suche mal danach.
CreateTable:
strcat(query,"ALTER TABLE `"#SQLTAG"_account_licenses` ADD COLUMN (");
for(new i=0;i<MAX_ARCHIVMENTS;i++)
{
strcat(query,",");
format(query,sizeof(query),"%s%s`pArchs%i` int(2) NOT NULL",query,i);
}
strcat(query,")");
mysql_function_query(MySqlConnection,query,false,"","");
strdel(query,0,sizeof(query));
Und einmal beim Speichern des Accounts
strcat(mainquery,"UPDATE "#SQLTAG"_account_licenses SET ");
for(new i=0;i<MAX_ARCHIVMENTS;i++)
{
mysql_format(MySqlConnection,mainquery,sizeof(mainquery),"%s,pArchs%i='%d'",mainquery,i,Spieler[playerid][pArchs][i]);
}
mysql_format(MySqlConnection,mainquery,sizeof(mainquery),"%s WHERE Name='%s' LIMIT 1",mainquery,Spieler[playerid][pName]);
mysql_function_query(MySqlConnection,mainquery,false,"","");
strdel(mainquery,0,sizeof(mainquery));
PS: Haustextdraw funktioniert doch nicht Nun sieht man das Textdraw wenn man ein neues Haus erstellt.. aber die alten Häuser haben dann kein Textdraw.. Nur das neue Haus
Versuche es so:
strcat(query,"ALTER TABLE `"#SQLTAG"_account_licenses` ADD COLUMN (`pArchs0` int(2) NOT NULL");
for(new i=1;i<MAX_ARCHIVMENTS;i++)
{
format(query,sizeof(query),"%s, `pArchs%i` int(2) NOT NULL",query,i);
}
strcat(query,")");
mysql_function_query(MySqlConnection,query,false,"","");
strdel(query,0,sizeof(query));
strcat(mainquery,"UPDATE "#SQLTAG"_account_licenses SET ");
for(new i=0;i<MAX_ARCHIVMENTS;i++)
{
if(i != MAX_ARCHIVMENTS) mysql_format(MySqlConnection,mainquery,sizeof(mainquery),"%spArchs%i='%d', ",mainquery,i,Spieler[playerid][pArchs][i]);
else mysql_format(MySqlConnection,mainquery,sizeof(mainquery),"%spArchs%i='%d'",mainquery,i,Spieler[playerid][pArchs][i]);
}
mysql_format(MySqlConnection,mainquery,sizeof(mainquery),"%s WHERE Name='%s' LIMIT 1",mainquery,Spieler[playerid][pName]);
mysql_function_query(MySqlConnection,mainquery,false,"","");
strdel(mainquery,0,sizeof(mainquery));
Wobei das eigentlich Syntax Fehler hätten sein müssen.
Zwecks dem Textdraw: Wir sollten zuerst ein Problem lösen, und dann das andere.
Da das einen Monat her ist musst du mir das Textdraw Problem bitte nochmal erklären.
Poste auch den entsprechenden, aktuellen, Code dazu, damit wir wieder einen frischen Stand haben.
Also das Problem ist, das nur ID 0 den Textdraw eines Hauses sehen kann.. Und das meistens immer von dem Haus, dass als neuestes erstellt wurde. Aber es sollen alle User sehen können, wenn sie sich in der nähe eines Hauses sich befinden.. Habe es mit einem SekundenTimer geschrieben.
Die Textdraws werden mit PlayerTextdraw erstellt
new PlayerText:HausLabelTD[MAX_PLAYERS][10];
//Eine Sekunden Timer
forward GrandTimer(playerid);
public GrandTimer(playerid)
{
if(!IsPlayerConnected(playerid))return 1;
if(IsPlayerNPC(playerid))return 1;
new string[300], query[128];
//Haussystem Textdraw
for(new haus=1;haus<MAX_HAUS;haus++)
{
if(HausInfo[haus][hauscreatet] != 0)
{
if(IsPlayerInRangeOfPoint(playerid,2,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]))
{
if(GetString(HausInfo[haus][haus_besitzer],"Niemand"))
{
format(string,sizeof(string),"Hausnummer: %i",haus);
PlayerTextDrawSetString(playerid,HausLabelTD[playerid][9],string);
format(string,sizeof(string),"Besitzer: ~w~Haus zum Verkauf");
PlayerTextDrawSetString(playerid,HausLabelTD[playerid][1],string);
format(string,sizeof(string),"Kosten: ~w~%i$",HausInfo[haus][haus_preis]);
PlayerTextDrawSetString(playerid,HausLabelTD[playerid][2],string);
format(string,sizeof(string),"Miete: ~w~%i$",HausInfo[haus][haus_miete]);
PlayerTextDrawSetString(playerid,HausLabelTD[playerid][3],string);
format(string,sizeof(string),"Level: ~w~%i",HausInfo[haus][haus_level]);
PlayerTextDrawSetString(playerid,HausLabelTD[playerid][4],string);
format(string,sizeof(string),"Mieter Slots: ~w~%i/%i",HausInfo[haus][haus_eingemitetenzaehler],HausInfo[haus][haus_slots]);
PlayerTextDrawSetString(playerid,HausLabelTD[playerid][5],string);
mysql_format(MySqlConnection,query,sizeof(query),"SELECT * FROM "#SQLTAG"_account_main WHERE `HausMieter` = '%d'", haus);
mysql_function_query(MySqlConnection,query,true,"LoadHouseRentFinish","siii",query,_SQL_HOUSEMIETER_LOAD,0,MySqlConnection);
PlayerTextDrawShow(playerid,HausLabelTD[playerid][0]);
PlayerTextDrawShow(playerid,HausLabelTD[playerid][1]);
PlayerTextDrawShow(playerid,HausLabelTD[playerid][2]);
PlayerTextDrawShow(playerid,HausLabelTD[playerid][3]);
PlayerTextDrawShow(playerid,HausLabelTD[playerid][4]);
PlayerTextDrawShow(playerid,HausLabelTD[playerid][5]);
PlayerTextDrawShow(playerid,HausLabelTD[playerid][6]);
PlayerTextDrawShow(playerid,HausLabelTD[playerid][7]);
PlayerTextDrawShow(playerid,HausLabelTD[playerid][8]);
PlayerTextDrawShow(playerid,HausLabelTD[playerid][9]);
}
else
{
format(string,sizeof(string),"Hausnummer: %i",haus);
PlayerTextDrawSetString(playerid,HausLabelTD[playerid][9],string);
format(string,sizeof(string),"Besitzer: ~w~%s",HausInfo[haus][haus_besitzer]);
PlayerTextDrawSetString(playerid,HausLabelTD[playerid][1],string);
format(string,sizeof(string),"Kosten: ~w~%i$",HausInfo[haus][haus_preis]);
PlayerTextDrawSetString(playerid,HausLabelTD[playerid][2],string);
format(string,sizeof(string),"Miete: ~w~%i$",HausInfo[haus][haus_miete]);
PlayerTextDrawSetString(playerid,HausLabelTD[playerid][3],string);
format(string,sizeof(string),"Level: ~w~%i",HausInfo[haus][haus_level]);
PlayerTextDrawSetString(playerid,HausLabelTD[playerid][4],string);
format(string,sizeof(string),"Mieter Slots: ~w~%i/%i",HausInfo[haus][haus_eingemitetenzaehler],HausInfo[haus][haus_slots]);
PlayerTextDrawSetString(playerid,HausLabelTD[haus][5],string);
mysql_format(MySqlConnection,query,sizeof(query),"SELECT * FROM "#SQLTAG"_account_main WHERE `HausMieter` = '%d'", haus);
mysql_function_query(MySqlConnection,query,true,"LoadHouseRentFinish","siii",query,_SQL_HOUSEMIETER_LOAD,0,MySqlConnection);
PlayerTextDrawShow(playerid,HausLabelTD[playerid][0]);
PlayerTextDrawShow(playerid,HausLabelTD[playerid][1]);
PlayerTextDrawShow(playerid,HausLabelTD[playerid][2]);
PlayerTextDrawShow(playerid,HausLabelTD[playerid][3]);
PlayerTextDrawShow(playerid,HausLabelTD[playerid][4]);
PlayerTextDrawShow(playerid,HausLabelTD[playerid][5]);
PlayerTextDrawShow(playerid,HausLabelTD[playerid][6]);
PlayerTextDrawShow(playerid,HausLabelTD[playerid][7]);
PlayerTextDrawShow(playerid,HausLabelTD[playerid][8]);
PlayerTextDrawShow(playerid,HausLabelTD[playerid][9]);
}
}
else if(!IsPlayerInRangeOfPoint(playerid,2,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]))
{
PlayerTextDrawHide(playerid,HausLabelTD[playerid][0]);
PlayerTextDrawHide(playerid,HausLabelTD[playerid][1]);
PlayerTextDrawHide(playerid,HausLabelTD[playerid][2]);
PlayerTextDrawHide(playerid,HausLabelTD[playerid][3]);
PlayerTextDrawHide(playerid,HausLabelTD[playerid][4]);
PlayerTextDrawHide(playerid,HausLabelTD[playerid][5]);
PlayerTextDrawHide(playerid,HausLabelTD[playerid][6]);
PlayerTextDrawHide(playerid,HausLabelTD[playerid][7]);
PlayerTextDrawHide(playerid,HausLabelTD[playerid][8]);
PlayerTextDrawHide(playerid,HausLabelTD[playerid][9]);
}
}
}
return 1;
}
//MySQL Mieter die Aufgelistet werden
forward LoadHouseRentFinish(index[],sqlresultid,extraid,SconnectionHandle,playerid);
public LoadHouseRentFinish(index[],sqlresultid,extraid,SconnectionHandle,playerid)
{
new lResult[128], rows, fields, string[256];
switch(sqlresultid)
{
case _SQL_HOUSEMIETER_LOAD:
{
cache_get_data(rows, fields);
new lCount;
format(string, sizeof(string), "~w~");
while(lCount < rows)
{
cache_get_field_content(lCount, "SPALTE MIT DEM NAMEN", lResult);
format(string, sizeof(string), "%s%s~n~", string,lResult);
lCount++;
}
for(new i = lCount; i < 10; i++)
{
format(string, sizeof(string), "%sNiemand~n~", string);
}
PlayerTextDrawSetString(playerid,HausLabelTD[playerid][7], string);
}
}
return 1;
}