Lass dir die Werte mal per Print ausgeben:
if(tfrage[playerid]==GetPVarInt(playerid,string))
zu:
printf("%d == %d", tfrage[playerid], GetPVarInt(playerid,string));
if(tfrage[playerid]==GetPVarInt(playerid,string))
Beiträge von Jeffry
-
-
format(string1,sizeof(string1),"Name: {FFBE00}%s\n{FEFEFE}Frage: {FFBE00}%s\n\nDie Nachricht wird an den Spieler gesendet sobald du auf Absenden klickst.",PlayerInfo[playerid][pName],buffer[i]);
zu:
format(string1,sizeof(string1),"Name: {FFBE00}%s\n{FEFEFE}Frage: {FFBE00}%s\n\nDie Nachricht wird an den Spieler gesendet sobald du auf Absenden klickst.",PlayerInfo[playerid][pName],buffer);format(string,sizeof(string),"[Report System] %s: %s",PlayerInfo[playerid],inputtext);
zu:
format(string,sizeof(string),"[Report System] %s: %s",PlayerInfo[playerid][pName],inputtext); -
if(strval(inputtext) < 1 || strval(inputtext) > 200)
{
//...
} -
Suche Tiere.
1599 - 1609
19833
19315
16442
11470 -
Laut Log müsste das Label korrekt gelöscht werden.
Sicher, dass das Label nicht gespeichert wird, und gewollt nach dem Neustart des Servers wieder erstellt wird?
Ist es denn weg, wenn du die Konsole schließt?
-
Da müsste noch mehr folgen.
@JustMe.77
Hattest du Erfolg dabei?
Falls nein, poste bitte das aktuelle SQL Statement und je einen Screenshot der beiden Tabellen aus der Datenbank (Struktur). -
Wurde überhaupt ein Pickup erstellt? Alle Created sind auf 0 (false).
-
Nein.
Vergleiche das bitte mit dem Beispiel aus dem Link und versuche es entsprechend auszubessern.
Dein Code ist komplett anders, daher versuche es bitte nochmal. -
Wo ist denn killreason und Grund definiert und wie bekommt Grund seinen Wert? Die befinden sich nicht in der Funktion.
-
Du kannst die beiden Tabellen mit einem LEFT JOIN verbinden.
Siehe hier:
http://www.w3schools.com/sql/sql_join_left.aspMit dem Try it Yourself Editor kannst du das Ganze vorher ausprobieren, damit du das Prinzip verstehst.
-
Ah, der Tag, mache es so:
printf("i: %d / Created: %d / Label: %d / Pickup: %d", i, OfflineInfo[i][pickCreated], _:OfflineLable[i], OfflineInfo[i][pickID]); -
Lass es dir so mal per Print ausgeben, was steht so im Server Log?
for(new i=0;i<MAX_OFFLINEPICKUPS;i++)
{
printf("i: %d / Created: %d / Label: %d / Pickup: %d", i, OfflineInfo[i][pickCreated], OfflineLable[i], OfflineInfo[i][pickID]);
if(OfflineInfo[i][pickCreated] == true)
{
Delete3DTextLabel(OfflineLable[i]); //Hier
DestroyPickup(OfflineInfo[i][pickID]); //Hier
}
}Versuche es einmal beim GMX und einmal im Befehl (Befehl vor GMX eingeben).
-
Gehen die Labels denn weg, wenn du das mal in einen Test-Befehl einfügst und den Befehl eingibst?
for(new i=0;i<MAX_OFFLINEPICKUPS;i++)
{
if(OfflineInfo[i][pickCreated] == true)
{
Delete3DTextLabel(OfflineLable[i]); //Hier
DestroyPickup(OfflineInfo[i][pickID]); //Hier
}
}Vor dem GMX.
-
Sind die Labels auch noch da, wenn du GTA:SA schließt und neu verbindest?
Normalerweise sollte bei einem GMX alles weg sein. -
Wo wird das h,m,s ausgelesen?
In dem Code wird es nur genutzt. Die Zuweisung scheint woanders zu sein.
Falls du nicht weist wo, mache es so:
stock CreateOfflineInfo(playerid, reason)
{
new string[128],hr,mn,sc;
if(sServerGMX == 1)return 1;
for(new i=0;i<MAX_OFFLINEPICKUPS;i++)
{
if(Spieler[playerid][pLoggedIn])
{
if(OfflineInfo[i][pickCreated] == false)
{
OfflineInfo[i][pickCreated] = true;
GetPlayerPos(playerid, OfflineInfo[i][pickPos][0], OfflineInfo[i][pickPos][1], OfflineInfo[i][pickPos][2]);
OfflineInfo[i][pickVirtualWorld] = GetPlayerVirtualWorld(playerid);
format(OfflineInfo[i][pickName], MAX_PLAYER_NAME+1, GetName(playerid));
OfflineInfo[i][pickDeleteTime] = gettime() + (60);
OfflineInfo[i][pickID] = CreatePickup(1275, 0, OfflineInfo[i][pickPos][0], OfflineInfo[i][pickPos][1], OfflineInfo[i][pickPos][2], OfflineInfo[i][pickVirtualWorld]);
static const dc[3][] ={"(Timeout/Crash)","(Verlassen)","(Kick/Ban)"};
gettime(hr, mn, sc);
format(string, sizeof(string), "%s\n%s\n%02d:%02d:%02d", OfflineInfo[i][pickName], dc[reason], hr,mn,sc);
OfflineLable[i] = Create3DTextLabel(string, COLOR_ALPHA_WHITE, OfflineInfo[i][pickPos][0], OfflineInfo[i][pickPos][1], OfflineInfo[i][pickPos][2], 10.0, 0);
OfflineInfo[i][pickWanteds] = Spieler[playerid][pWanteds];
OfflineInfo[i][pickContract] = Spieler[playerid][pContract];
return i;
}
}
}
return 0;
} -
Eine Frage habe ich allerdings dazu noch, wie setze ich den Wert wieder auf 0 wenn er geupdatet hat ?
Das kannst du dann so machen:
forward HausUpdat();
public HausUpdat()
{
new num_rows, hid, tmp_name[MAX_PLAYER_NAME],id,query[128];
cache_get_row_count(num_rows);
if(!num_rows)return 1;
for(new i=0; i<num_rows; i++)
{
cache_get_value_name_int(i, "id",hid);
id=getHausID(hid);
if(id == -1) continue; //Haus existiert nicht
cache_get_value_name_float(i, "h_x", hInfo[id][h_x]); //Float
cache_get_value_name_float(i, "h_y", hInfo[id][h_y]); //Float
cache_get_value_name_float(i, "h_z", hInfo[id][h_z]); //Float
cache_get_value_name_float(i, "ih_x", hInfo[id][ih_x]); //Float
cache_get_value_name_float(i, "ih_y", hInfo[id][ih_y]); //Float
cache_get_value_name_float(i, "ih_z", hInfo[id][ih_z]); //Float
cache_get_value_name_int(i, "h_interior", hInfo[id][h_interior]); //Float
cache_get_value_name(i, "besitzer", tmp_name); //String
strmid(hInfo[id][h_besitzer], tmp_name, 0, sizeof(tmp_name), sizeof(tmp_name));
cache_get_value_name_int(i, "h_preis",hInfo[id][h_preis]); //Float
updateHaus(id);
format(query, sizeof(query), "UPDATE haus SET `update1` = 0 WHERE id = %d AND `update1` = 1", hid);
mysql_pquery(handle, query);
}
return 1;
} -
Was wird dir so im Server Log ausgegeben?
forward HausUpdat();
public HausUpdat()
{
printf("HausUpdat aufgerufen.");
new num_rows, hid, tmp_name[MAX_PLAYER_NAME],id;
cache_get_row_count(num_rows);
printf("rows: %d", num_rows);
if(!num_rows)return 1;
for(new i=0; i<num_rows; i++)
{
printf("i: %d", i);
cache_get_value_name_int(i, "id",hid);
printf("hid: %d", hid);
id=getHausID(hid);
printf("id: %d", id);
if(id == -1) continue; //Haus existiert nicht
cache_get_value_name_float(i, "h_x", hInfo[id][h_x]); //Float
cache_get_value_name_float(i, "h_y", hInfo[id][h_y]); //Float
cache_get_value_name_float(i, "h_z", hInfo[id][h_z]); //Float
printf("Koordinaten");
cache_get_value_name_float(i, "ih_x", hInfo[id][ih_x]); //Float
cache_get_value_name_float(i, "ih_y", hInfo[id][ih_y]); //Float
cache_get_value_name_float(i, "ih_z", hInfo[id][ih_z]); //Float
printf("Koordinaten2");
cache_get_value_name_int(i, "h_interior", hInfo[id][h_interior]); //Float
printf("Interior");
cache_get_value_name(i, "besitzer", tmp_name); //String
printf("Name: %s", tmp_name);
strmid(hInfo[id][h_besitzer], tmp_name, 0, sizeof(tmp_name), sizeof(tmp_name));
printf("Besitzer: %s", hInfo[id][h_besitzer]);
cache_get_value_name_int(i, "h_preis",hInfo[id][h_preis]); //Float
printf("Preis: %d", hInfo[id][h_preis]);
updateHaus(id);
printf("Updated.");
}
printf("Fertig.");
return 1;
} -
Ändere
cache_get_value_name(i, "besitzer", hInfo[id][h_besitzer]); //Float
zu:
cache_get_value_name(i, "besitzer", tmp_name); //StringOder alternativ:
cache_get_value_name(i, "besitzer", hInfo[id][h_besitzer], MAX_PLAYER_NAME); //String
und dann diese Zeile löschen:
strmid(hInfo[id][h_besitzer], tmp_name, 0, sizeof(tmp_name), sizeof(tmp_name));Und:
new num_rows, hid, tmp_name[MAX_PLAYER_NAME], id;
zu:
new num_rows, hid, id; -
Wo wird das h,m,s ausgelesen?
Was wird angezeigt, und was sollte stattdessen angezeigt werden? -
Ah, stimmt, habe ich übersehen.
Ändere in den Queries jeweils das
update
Zu
`update`Dann geht es.
Oder benenne die Spalte update um.Zwecks dem Fehler:
Bekommst du beim kompilieren Meldungen im Compiler?