Folgendermaßen,
in meinem Selfmade Script möchte ich es so haben, das man alle 60 Minuten einen Payday erhält, dazu jedoch sollen alle 10 Stunden ein Score hoch gehen, also
( 60min = payday | 10 Stunden = LevelUp | )
Habe aber garkeinen Plan
Level System
- Landstreicher-RP
- Geschlossen
- Erledigt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Ausführlich: [ SCRIPTING ] Individuellen Payday
Prinzip: http://gta-action.gamona.de/co…age=Thread&threadID=40690
-
Aber mein Scrpt ist auf MYSQL &'er soll ja die Zeit speichern wenn er off geht und alles :$
-
Dann speicher doch die Zeit ab, und lass diese wenn sie 10 erreicht wieder auf 0 setzen.
-
public pimer(playerid)
{
pPlaytime[playerid]++; // ++ ist wie +1 also wird es alle 60000 milliskunden um 1 erhöht soll die Spielzeit sein
if(pSincePayday[playerid] >= 60) // wenn Zeitseitpayday 60 oder über 6o ist wird das in der Klammer ausgelöst
{
pSincePayday[playerid] = 0; // ZeitseitPayday wird wieder auf 0 gesetzt da er den Payday hatte.
GivePlayerMoneyEx(playerid, 2000); // der ID "Playerid" werden 2000$ gegeben
SendClientMessage(playerid,GRÜN,"PAYDAY");
}
else
{
pSincePayday[playerid]++; // ZEit seit Payday wird um 1 erhöht
}
return 1;
}Das ist nun mein Paypday Public, Timer etc. funktioniert.
Mein Script ist auf MYSQL, wie speichere ich jetzt die Spielzeit &'die Zeit seit Payday? :-/
Spalten in der User Tabelle sind angelegtSpielerInfo[playerid][pSpielzeit]
SpielerInfo[playerid][pSeitPayday]Ich habe keine Ahnung, wie ich das Speichern soll
// Das PayD Sys. an Sich, ist ja fertig, es geht nur darum, das die Zeit gespeichert werden soll. Damit man nicht nochma ne std spielen muss wenn man bei 35min sich ausloggt.
-
Wieso benutzt du pSincePayday?
public pimer(playerid)
{
pPlaytime[playerid]++; // ++ ist wie +1 also wird es alle 60000 milliskunden um 1 erhöht soll die Spielzeit sein
if(pPlaytime[playerid] == 60) // Wenn playtime = 60 Min ist
{
pPlaytime[playerid] = 0; // ZeitseitPayday wird wieder auf 0 gesetzt da er den Payday hatte.
GivePlayerMoneyEx(playerid, 2000); // der ID "Playerid" werden 2000$ gegeben
SendClientMessage(playerid,GRÜN,"PAYDAY");
}
return 1;
} -
Versteh ich jetzt nicht so richtig
-
pPlaytime[playerid] ist eine Variable, die jede Minute erhöht wird.
Nachdem die Variable erhöht wurde und == 60 ist, bekommt der Spieler den PayDay und die Variable wird wieder auf 0 gesetzt.
Oder willst du dass pPlaytime einfach nur die Spielzeit in Minuten speichert?
---
Zu deinem MySQL Problem:
Hast du bereits irgendwelche Stocks definiert wie mysql_SetInt o.ä.?
stock mysql_GetInt(Table[], Field[], Where[], Is[])
{
new query[128];
mysql_real_escape_string(Table, Table);
mysql_real_escape_string(Field, Field);
mysql_real_escape_string(Where, Where);
mysql_real_escape_string(Is, Is);
format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
mysql_query(query);
mysql_store_result();
new sqlint = mysql_fetch_int();
mysql_free_result();
return sqlint;
}stock mysql_SetInt(Table[], Field[], To, Where[], Where2[])
{
new query[128];
mysql_real_escape_string(Table, Table);
mysql_real_escape_string(Field, Field);
mysql_real_escape_string(Where, Where);
mysql_real_escape_string(Where2, Where2);
format(query, 128, "UPDATE `%s` SET `%s` = '%d' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
mysql_query(query);
return true;
}
public OnPlayerDisconnect(playerid, reason)
{
mysql_SetInt("accounts","Spielzeit", SpielerInfo[playerid][pSpielzeit], "Name", SpielerName(playerid));
mysql_SetInt("accounts","pSeitPayday", SpielerInfo[playerid][pSeitPayday], "Name", SpielerName(playerid));
}
public OnPlayerConnect(playerid)
{
SpielerInfo[playerid][pSpielzeit] = mysql_GetInt("accounts","Spielzeit", "Name", SpielerName(playerid));
SpielerInfo[playerid][pSeitPayday] = mysql_GetInt("accounts","pSeitPayday", "Name", SpielerName(playerid));
}Die Tabellennamen "accounts" musst du natürlich auf deinen Tabellennamen abändern.
-
Hast du bereits irgendwelche Stocks definiert wie mysql_SetInt o.ä.?
Dreh den mist bitte keinen an@TE wie lässt du daten Speichern/laden?
(in welcher art meine ich denn das mit den mysql_getint etc ist purer Müll den man nicht nutzen sollte) -
-
Dreh den mist bitte keinen an
Ich bin nicht so der Crack in MySQL hab das mal von einem angeblich "guten" Tutorial übernommen.
Wasn daran so verkehrt?
-
Ich bin nicht so der Crack in MySQL hab das mal von einem angeblich "guten" Tutorial übernommen.
Wasn daran so verkehrt?
Es wird für eine Speicherung immer 1 Query an die DB gesendet obwohl man dies mit einem kann und dabei mehrere sachen speichern/laden kann.mfg
-
breadfish.de
Hat das Thema geschlossen.