Ja was steht denn in der Datei? Poste das mal.
Beiträge von Jeffry
-
-
Oh, stimmt, das ist natürlich schlecht in dem Tutorial, darauf hab ich gar nicht geachtet. Kommt davon wenn man sich auf die Korrektheit verlässt.
Mache es so:
OnGameModeInit:
SetTimer("PayDay", 60000, true);Und das Public:
forward PayDay();
public PayDay()
{
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && !IsPlayerNPC(i))
{
payDayCount[i]++;
if(payDayCount[i] >= 60)
{
//PayDay geben, für i.
payDayCount[i] = 0;
}
}
}
return 1;
}Und unter den Includes:
new payDayCount[MAX_PLAYERS];Beim Login den payDayCount laden und beim Verlassen speichern.
-
Schreibe vor den stock:
forward Float:GetDistanceBetweenPoints(Float:X, Float:Y, Float:Z, Float:PointX, Float:PointY, Float:PointZ);Oder schreibe den stock direkt unter die Includes.
Die Warnung kommt, weil eine Funktion mit einem, mit Tag gekennzeichneten return-Wert, nicht nach der ersten Verwendung deklariert werden darf.
-
-
Das weiß ich nicht, aber die lokale IP Adresse ist die IPv4 Adresse (192.168.x.x).
-
Was steht denn in der Datei, wenn du die Fahrzeuge speichern lässt?
-
if(WantedLevel[giveplayerid] >= 6)
zu:
if(WantedLevel[giveplayerid] >= 6 && strval(result) > 0)Und das hier kannst du noch hinzufügen:
if(WantedLevel[giveplayerid] <= 0 && strval(result) < 0)
{
SendClientMessage(playerid, COLOR_WHITE, "Der Spieler hat schon 0 Wanteds!");
return 1;
} -
new ID = ReturnUser(inputtext);
Mach das "new" weg, oder benenne das "ID" um, da ID schon deklariert ist. -
PlayerInfo[giveplayerid][pCrimes] += 1;
WantedLevel[giveplayerid] += 1;
zu
PlayerInfo[giveplayerid][pCrimes] += strval(result);
WantedLevel[giveplayerid] += strval(result); -
Die Variable ist bereits deklariert. Mach das "new" weg oder benenne das "money" zu "money2" um.
-
[ SCRIPTING ] Individuellen Payday
[ SCRIPTING ] Individuellen Payday Scripten [Updated]Zu Lags führt das nicht, ich würde trotzdem lieber einen Timer nehmen, der nicht wie in den Links oben minütlich für alle Spieler prüft, sondern eben über die Variable.
EDIT:
So wie hier:
Einfaches PayDay System
Nur nicht mit dini sondern mit Variablen.Siehe einfach:
PayDay -
Nein, du kannst nur die angegebenen Keys abfragen.
Wenn du einen zweiten PC hast, dann kannst du auch über localhost mit mehreren Spielern drauf sein (mit beiden Rechnern eben). Dafür nimmst du einfach die lokale IP (findest du bei ipconfig in der cmd).
-
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys & KEY_JUMP)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
SetPlayerPos(playerid, x, y, z);
ClearAnimations(playerid);
}
return 1;
}Du könntest es so versuchen.
Alternativ mit GetPlayerKeys unter OnPlayerUpdate, und dann mit return 0, falls es den Sprung für die anderen trotzdem zeigt. -
Problem behoben, er hatte bei mysql_connect die Datenbank und das Passwort vertauscht.
Richtig ist es (wie in Post #19 auch steht):
mysql = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_DATABASE, MYSQL_PASS);Beim Überprüfen ob ein Account schon existiert musste zudem
mysql_fetch_int
zu
mysql_num_rows
geändert werden.Funktioniert nun alles.
FunkySimonp: Thema auf erledigt setzen nicht vergessen.

-
@0x0040FB80: Ja.
Grapefruit:
Zu den beiden Errors fehlt jeweils das public zum forward.
Die beiden Warnungen sagen, dass diese Funktionen nie verwendet werden. Die solltest du wahrscheinlich verwenden, sonst funktioniert das System nicht. -
Heißt deine Datenbank auch "samp"?
MySQL (etc) alles korrekt aufgesetzt, also kommst du mit z.B. phpMyAdmin auf die Datenbank?
Hast du es mal mit 127.0.0.1 anstatt localhost versucht?
Was sagt der MySQL Log, wenn du den Server startest (zuvor leeren)? -
Das ist ja jetzt wieder der gleiche Fehler wie zu Anfangs, bevor du das Plugin gewechselt hast.
Nimm den root Benutzer ohne Passwort:
#define MYSQL_HOST "127.0.0.1"
#define MYSQL_USER "root"
#define MYSQL_DATABASE "Datenbank"
#define MYSQL_PASS ""Das ist in 99% aller Fälle standardmäßig so eingestellt, ohnehin so, wenn du es neu installierst.
Zwecks dem Error:
Ja also dann doch mysql_debug wie ich schon sagte.
mysql_debug(1); -
Hast du den Filterscript in der server.cfg eingetragen?
Wenn ja, setze mal bei dem OnPlayerSpawn einen Print hin, wird der aufgerufen? -
if(listitem == 1)
{
new string[512];
for(new i = 0; i < 10; i++)
{
format(string, sizeof(string), "%s%s - %s | Quote 1: %i | Quote X: %i | Quote 2: %i\n", string, Wettinfo[i][Team1], Wettinfo[i][Team2],Wettinfo[i][Quote1],Wettinfo[i][QuoteX],Wettinfo[i][Quote2]);
}
ShowPlayerDialog(playerid,3, DIALOG_STYLE_LIST, "Spiel löschen:", string, "Löschen", "Abbrechen");
return 1;
}Dann dürfte es alle anzeigen, ich denke das ist was du willst.
EDIT: (Post unten)
hubby: Da dein Problem behoben ist, wäre es gut, wenn du den Thread auf erledigt setzt. Danke!
-
Da es ein Textdraw ist, das spielerspezifisch erstellt wird, musst du das playerid Array hinzufügen, überall.
Textdraw0
Zu
Textdraw0[playerid]Ebenso für Textdraw1.
Die richtige Deklaration hatte ich dir ja bereits gegeben.
@xCurry:
Setze einen Timer, oder nimm OnPlayerRequestClass.