Was steht denn in public Sekunde?
Gibt es Datenbank Fehler?
//Edit:
Zitat[18:56:27] MapAndreas: plugin could not init
[18:56:27] MapAndreas: check files and make sure you have enough memory!
...das solltest du auch checken...
Was steht denn in public Sekunde?
Gibt es Datenbank Fehler?
//Edit:
Zitat[18:56:27] MapAndreas: plugin could not init
[18:56:27] MapAndreas: check files and make sure you have enough memory!
...das solltest du auch checken...
Hmm das heißt der Server hat zu wenig Speicher ?`
Was steht deinem Server denn an Arbeitsspeicher zur Verfügung?
Ist ein Server von SAMP4YOU ist der 25 Slot Server.
Hm hatte das selbe Problem auch letztens auf windows gings und aufm Server nicht.
Es lag daran das meine formats zu lang waren.
Du kannst die Formate zweizeilig machen. Und wenn formate oder anderes zu lang sind, gibt der Compiler normalerweise eine Fehlermeldung aus.
reaL. Zeig mal von einen System, was nicht geladen wurde, wie es geladen wird via OnGameModeInit und die dazugehörige Function.
Moin,
hab da mal ein Problem mit TimestampToDate ...
Datenbank Eintrag: 1605898611
Ausgelesen wird: 1605898611
Angezeigt wird: 21 November, 2020
Die funktions zum ausgeben:
new strMsg[144];
format(strMsg, sizeof(strMsg), "Zuletzt Online: %d | %s", PlayerInfo[playerid][pLastonline], ReturnDate(PlayerInfo[playerid][pLastonline]));
SendClientMessage(playerid, -1, strMsg);
Die Include die genutzt wird:
/*
- Timestamp To Date converter -
- Made by Jochemd -
- http://forum.sa-mp.com/member.php?u=580 -
native TimestampToDate(Timestamp, &year, &month, &day, &hour, &minute, &second, HourGMT, MinuteGMT = 0);
native DateToTimestamp(str[11]);
*/
#include <a_samp>
#include <sscanf2>
#define SPLITTER .
new MonthTimes[12][4] =
{
{ 31, 31, 2678400, 2678400 },
{ 28, 29, 2419200, 2505600 },
{ 31, 31, 2678400, 2678400 },
{ 30, 30, 2592000, 2592000 },
{ 31, 31, 2678400, 2678400 },
{ 30, 30, 2592000, 2592000 },
{ 31, 31, 2678400, 2678400 },
{ 31, 31, 2678400, 2678400 },
{ 30, 30, 2592000, 2592000 },
{ 31, 31, 2678400, 2678400 },
{ 30, 30, 2592000, 2592000 },
{ 31, 31, 2678400, 2678400 }
};
stock IsLeapYear(year)
{
if(year % 4 == 0) return 1;
else return 0;
}
stock TimestampToDate(Timestamp, &year, &month, &day, &hour, &minute, &second, HourGMT, MinuteGMT = 0)
{
new tmp = 2;
year = 1970;
month = 1;
Timestamp -= 172800; // Delete two days from the current timestamp. This is necessary, because the timestamp retrieved using gettime() includes two too many days.
for(;;)
{
if(Timestamp >= 31536000)
{
year ++;
Timestamp -= 31536000;
tmp ++;
if(tmp == 4)
{
if(Timestamp >= 31622400)
{
tmp = 0;
year ++;
Timestamp -= 31622400;
}
else break;
}
}
else break;
}
for(new i = 0; i < 12; i ++)
{
if(Timestamp >= MonthTimes[i][2 + IsLeapYear(year)])
{
month ++;
Timestamp -= MonthTimes[i][2 + IsLeapYear(year)];
}
else break;
}
day = 1 + (Timestamp / 86400);
Timestamp %= 86400;
hour = HourGMT + (Timestamp / 3600);
Timestamp %= 3600;
minute = MinuteGMT + (Timestamp / 60);
second = (Timestamp % 60);
if(minute > 59)
{
minute = 0;
hour ++;
}
if(hour > 23)
{
hour -= 24;
day ++;
}
if(day > MonthTimes[month][IsLeapYear(year)])
{
day = 1;
month ++;
}
if(month > 12)
{
month = 1;
year ++;
}
return 1;
}
stock DateToTimestamp(str[11])
{
new date[3]; // date[0] = day date[1] = month date[2] = year
if(!sscanf(str,"p<"#SPLITTER">ddd",date[0],date[1],date[2]))
{
new total = 0, tmp = 0;
total += date[0] * 86400;
if(date[1] == 2 && date[0] < 29) tmp = ((date[2] - 1968) / 4 - 2);
else tmp = ((date[2] - 1968) / 4 - 1);
total += tmp * 31622400;
total += (date[2] - 1970 - tmp) * 31536000;
for(new i = 1; i < date[1]; i ++) total += MonthTimes[i][0 + IsLeapYear(date[2])] * 86400;
return total;
}
else return -1;
}
stock ReturnDate(timestamp)
{
new year, month, day, unused;
TimestampToDate(timestamp, year, month, day, unused, unused, unused, 0);
static monthname[15];
switch (month)
{
case 1: monthname = "January";
case 2: monthname = "February";
case 3: monthname = "March";
case 4: monthname = "April";
case 5: monthname = "May";
case 6: monthname = "June";
case 7: monthname = "July";
case 8: monthname = "August";
case 9: monthname = "September";
case 10: monthname = "October";
case 11: monthname = "November";
case 12: monthname = "December";
}
new date[30];
format(date, sizeof (date), "%i %s, %i", day, monthname, year);
return date;
}
Alles anzeigen
Das Datum, er sagt mir "21. November, 2020", wir haben aber den 20. November 2020,
hab wohl die Include kaputt gemacht. ![]()
Das Datum, er sagt mir "21. November, 2020", wir haben aber den 20. November 2020,
hab wohl die Include kaputt gemacht.
liegt an deinem server
@Rocky Balboa
Nein, die Server Zeit ist die Deutsche Zeit wie auf meinem PC.
Moin,
wieso speichern sich die Geschlechte nicht?
if(dialogid == DIALOG_REGISTER)
{
if(!response) return Kick(playerid);
if(strlen(inputtext) < 3) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Registration", "Bitte registriere Dich:\n{FF0000}Mindestens 3 Zeichen!", "Ok", "Abbrechen");
{
ShowPlayerDialog(playerid, DIALOG_CHAR, DIALOG_STYLE_LIST, "Bitte wähle dein Geschlächt aus", "Männlich\nWeiblich", "OK", "");
}
new query[256];
mysql_format(dbhandle, query, sizeof(query), "INSERT INTO users (name, password) VALUES ('%e', MD5('%e'))", pInfo[playerid][pName], inputtext);
mysql_pquery(dbhandle, query, "OnUserRegister", "d", playerid);
return 1;
}
if(dialogid == DIALOG_CHAR)
{
//Männlich
pInfo[playerid][pMoney] = 1;
SendClientMessage(playerid,COLOR_LIGHTBLUE,"Okay, du bist also Männlich..");
}
else
{
//Weiblich
pInfo[playerid][pMoney] = 2;
SendClientMessage(playerid,COLOR_LIGHTBLUE,"Okay, du bist also Weiblich..");
}
Alles anzeigen
seegras Speichern tut er ja alles richtig, auch das auslesen, nur das Umwandeln im Script ist nicht richtig, dies müsste wohl dann an der Include liegen, oder irre ich mich?
(Beispiel zum Umwandeln Online: https://timestampconvert.com/?…++++Convert+to+Date++++++ )
Das wird wohl so sein, du kannst ja auch weiterhin als Timestamp in der Datenbank speichern, jedoch wäre es halt möglich auf die Verwendung dieses Includes zu verzichten und direkt das lesbare Datum im Query zu erzeugen
wieso speichern sich die Geschlechte nicht?
Vielleicht liegt es an mir oder der Uhrzeit, aber ich sehe ehrlich gesagt nicht mal einen Versucht, das das Geschlecht gespeichert werden soll.
Weiterhin wird deine if Abfrage, so wie du sie derzeit hast nicht funktionieren.
Schau dir ab besten mal an, wie man generell Variablen erstellt/verwendet und die Daten daraus dann abspeichert.
(Als Beispiel hier mal ein Tutorial von Jeffry: [jTuT] MySQL R41-4 (Installation, XAMPP, Verwendung, Bedienung & Registrations-System))
if(day > MonthTimes[month][IsLeapYear(year)])
Ändere diese Zeile bitte zu
Sonst bricht der Code im Dezember ab, da das Array gesprengt wird.
Was den Fehler mit dem Tagesdatum angeht, lass dir mal die Stunden und Minuten mit ausgeben, und vergleiche das mit der Ist-Zeit.
Die Offset-Stunden zeihst du dann mal 3600 von "Timestamp" (Zeile 43 in deinem Post) ab, dann klappt alles.
Guten Abend,
Ich bekomme bei folgenden Code den Error sscanf warning: Strings without a length are deprecated, please add a destination size.
ocmd:forum(playerid,params[])
{
new id[4];
if(sscanf(params,"i[4]",id);
format(string,sizeof(string),"7", id);
WBB_AddToGroups(3, "7", playerid, 1);
}
//WBB_AddToGroups(3, "7", playerid, 1);
forward pWBB4_Callback(action, index, playerid, status, response[]);
public pWBB4_Callback(action, index, playerid, status, response[]) {
if ( action == pWBB4_ACTION_WBBADDTOGROUPS )
{
if ( status == 1 )
{
print("Gruppen erhalten!");
}
else
{
print("Leider ist ein Fehler aufgetreten :(");
}
}
return 1;
}
Alles anzeigen
Der Fehler ist scheinbar irgendwo im ocmd Befehl. Ich benutze die neueste sscanf. Woran kann der Fehler liegen?
Danke im Voraus.
MfG
Was willst du mit dem Befehl denn bezwecken? Du nutzt id gar nirgends, außer im Format, jedoch steht dort kein Platzhalter im String, sondern nur eine 7.
Daher ist der sscanf Befehl im Grunde unwirksam.
Die Warnung kommt daher, dass du eigentlich "s[4]" schreiben solltest. Aber wie gesagt, es ist so oder so unwirksam.
Was willst du mit dem Befehl denn bezwecken? Du nutzt id gar nirgends, außer im Format, jedoch steht dort kein Platzhalter im String, sondern nur eine 7.
Daher ist der sscanf Befehl im Grunde unwirksam.
Die Warnung kommt daher, dass du eigentlich "s[4]" schreiben solltest. Aber wie gesagt, es ist so oder so unwirksam.
Moin,
ich möchte das man damit im Forum eine Benutzergruppe bekommt in dem Fall 7.
Dann kannst du die ersten drei Zeilen des Befehls komplett entfernen und brauchst nur die letzte Zeile.