Beiträge von FishToast
-
-
Hallo,
ich habe ein Problem mit dem Speichern von Useraccounts in meinem Script. Ich verwende MySQL zur Speicherung, was auch gut beim Laden der Accounts usw. funktioniert. Beim Compilen werden keine Fehler angezeigt und das Public zum Speichern wird aufgerufen nur irgendwie nicht ausgeführt/beendet bzw. ist es falsch geschrieben. Kann mir jemand helfen wo der Fehler in den Zeilen liegt? Hier mal das Public, was beim Gamemodeexit, bei OnPlayerDisconnect und bei einem Speichertimer aufgerufen wird:
public SaveUser(playerid)
{
if(PlayerInfo[playerid][Logged] == 1 && !IsPlayerNPC(playerid))
{
GetPlayerPos(playerid,PlayerInfo[playerid][PosX],PlayerInfo[playerid][PosY],PlayerInfo[playerid][PosZ]);
GetPlayerFacingAngle(playerid,PlayerInfo[playerid][Angle]);
new accFormat1[1024];
format(accFormat1,sizeof(accFormat1),"UPDATE `user` SET `firstlogin` = '%e',`skin` = '%e',`hanf` = '%e',`invite` = '%e',`age` = '%e',`muted` = '%e',`crimes` = '%e',`wanted` = '%e',`sex` = '%e' WHERE `id` = '%e'",\
PlayerInfo[playerid][FirstLogin],PlayerInfo[playerid][Skin],PlayerInfo[playerid][Hanf],PlayerInfo[playerid][Invite],PlayerInfo[playerid][Age],PlayerInfo[playerid][Muted],PlayerInfo[playerid][Crimes],\
PlayerInfo[playerid][Wanted],PlayerInfo[playerid][Sex],PlayerInfo[playerid][ID]);
mysql_function_query(dbhandle,accFormat1,false,"","");
new accFormat2[1024];
format(accFormat2,sizeof(accFormat2),"UPDATE `user` SET `kokain` = '%e',`leader` = '%e',`job` = '%e',`member` = '%e',`jailed` = '%e',`dead` = '%e',`perso` = '%e',`admin` = '%e',`deaths` = '%e' WHERE `id` = '%e'",\
PlayerInfo[playerid][Kokain],PlayerInfo[playerid][Leader],PlayerInfo[playerid][Job],PlayerInfo[playerid][Member],PlayerInfo[playerid][Jailed],PlayerInfo[playerid][Dead],PlayerInfo[playerid][Perso],PlayerInfo[playerid][Admin],\
PlayerInfo[playerid][Deaths],PlayerInfo[playerid][ID]);
mysql_function_query(dbhandle,accFormat2,false,"","");
new accFormat3[1024];
format(accFormat3,sizeof(accFormat3),"UPDATE `user` SET `kills` = '%e',`bank` = '%e',`number` = '%e' WHERE `id` = '%e'",PlayerInfo[playerid][Kills],PlayerInfo[playerid][Bank],PlayerInfo[playerid][Number],PlayerInfo[playerid][ID]);
mysql_function_query(dbhandle,accFormat3,false,"","");
new accFormat4[1024];
format(accFormat4,sizeof(accFormat4),"UPDATE `user` SET `money` = '%e',`rank` = '%e',`level` = '%e',`banned` = '%e',`exp` = '%e',`posx` = '%f',`posy` = '%f',`posz` = '%f',`angle` = '%f' WHERE `id` = '%e'",\
PlayerInfo[playerid][Money],PlayerInfo[playerid][Rank],PlayerInfo[playerid][Level],PlayerInfo[playerid][Banned],\
PlayerInfo[playerid][EXP],PlayerInfo[playerid][PosX],PlayerInfo[playerid][PosY],PlayerInfo[playerid][PosZ],PlayerInfo[playerid][Angle],PlayerInfo[playerid][ID]);
mysql_function_query(dbhandle,accFormat4,false,"","");
}
new player[MAX_PLAYER_NAME];
GetPlayerName(playerid, player, sizeof(player));
printf("AUTO-SAVE: Der Spieler %s wurde automatisch in der MySQL Tabelle 'user' abgespeichert!",player);
return 1;
}Sieht irgendwer, warum die Accounts nicht gespeichert werden?
Freue mich über Hilfe.
LG MacTavish
-
Spannendes Spiel in der Verlängerung Aber in den ersten 90 Minuten hat eindeutig irgendwas gefehlt!
-
Du müsstest das Ganze deinem Loginsystem auch etwas anpassen.
-
SAMP Wiki wird helfen
-> http://wiki.sa-mp.com/wiki/Attach3DTextLabelToVehicle -
wenn das der fall ist dann weis ich nicht genau wonach ich danach suchen soll ...
naja ich schaue mal und melde mich dann.
Wenn jemand noch eine Idee hat ---> me -
hey,
Wenn du möchtest, dass die Premium Laufzeit auch weiter läuft wenn der Spieler offline ist, solltest du diese Laufzeit in einer Variable speichern usw. ...Ich denke wenn du ein Premium System erstellen möchtest hast du auch ein Accountsystem, indem der Spieler gespeichert werden kann und dann auch geladen wird.
Wenn das alles vorhanden ist, dann wäre es vom Vorteil wenn du erst diese Soielervariable erstellst, die du später im Speichersystem speicherst. Dann setzt du in einem beliebigen Befehl diese Spielervariable auf zb: 7 für 7 Tage. In einem anderen Servertimer für alle Spieler setzt du dann immer nach 24h (86400000 ms) den Wert für den Spieler, der eine aktive Premium Laufzeit hat, um einen Tag runter. Du kannst auch einen schnelleren Timer nehmen, welcher im Stundentakt die Premium Laufzeit runtersetzt. Ich hoffe du weist wie das alles geht auch ohne dass ich dir jetzt direkt codeschnipsel posten muss, ansonsten weiter FragenMit freundlichen Grüßen,
FishToast -
Guten Tag,
ich habe folgendes Problem:
Ein Spieler mit der ID 1 oder höher connected ganz normal auf den Server und loggt ordnungsgemäß ein. Sobald zum Beispiel manche Befehle von dem Spieler ausgeführt werden funktionieren diese nicht, bzw. Textdraws werden nicht angezeigt. Das Problem liegt nicht direkt nicht bei den Befehlen selber, denke ich. Denn diese Befehle haben zu einem früheren Zeitpunkt auch Funktioniert, da es diesen Bug erst seit dem letzten Mal gab, als ich am Script gearbeitet habe. Leider weis ich nicht genau was ich da genau am Script verändert habe, aber dieser Bug ist nie aufgefallen. Außerdem wird der Account aus der Mysql DB irgendwie falsch geladen. Bei dem gleichen Spieler nur mit anderer ID (d.h. ID 0) funktioniert dies ohne Probleme. Aber bei einem Spieler mit der ID 1 scheint es als ob nicht der Account von dem Spieler ID 1 geladen wird sondern der Account von einem anderen vorhandenen Spieler aus der Datenbank geladen wird. Ein anderer Spieler kann auch nicht zum "verbuggten" Spieler porten. Es entstehen auch starke Laggs bei dem Spieler mit dieser "verbuggten" ID und sogar die CPU-Auslastung des Servers schießt in die Höhe und bringt ihn schließlich zum Absturz. Ingame reagiert der Server dann logischerweise auch zeitweilig nicht oder gar nicht mehr auf Befehle oder anderes (Timer ...). In der Server-Log stehen keine Fehlermeldungen oder Ähnliches.Ich habe schon versucht:
-Fehler im Login oder Accountsystem sowie in der Datenbank zu suchen. Nichts gefunden (kann ich auch schlecht hier reinposten)
-NPCs auf den Server zu connecten (Die nächst höhere, freie ID war auch verbuggt)
-sscanf geupdatetIch weis echt nicht mehr woran das liegt. Ich habe mich gefragt ob ein Timer vielleicht fehleingestellt ist.
Ich bitte euch mir zu schreiben, ob jemand vielleicht auch mal so ein Problem hatte oder was Ursachen für solche Probleme sein könnten. Dann kann ich nämlich besser nach einem Bug im Script suchen.
Info: Der Server läuft auf Linux ... (wohl eher uninteressant)Bitte um Hilfe, auch wenn die Infos nicht sehr hilfreich sind.
Mit freundlichen Grüßen,
FishToast -
Tolles Programm. Echt super praktisch!
-
Sehr schönes Include, welches einem Arbeit erleichtern kann!
10/10 -
EDIT: Gelöst! Ein paar Dialoge waren fail definiert! danke an alle die mir zu helfen versucht haben
-
hatte ich vorher schon so, das klappt ja nicht
-
hallo,
mir wird mal wieder ein fehler angezeigt, den fehler selber kenn ich ja, aber ich bin entweder gerade blind ihn zu beheben oder ich muss mein pawno neustarte.
folgendes liegt vor:
if(strcmp(cmdtext, "/fraktionen", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pAdmin] >= 1337)
{
ShowPlayerDialog(playerid,FRAKTIONENDIA,DIALOG_STYLE_LIST ,"Fraktionen","|FID-1|San Andreas Police\n|FID-3|U.S. Army\n|FID-4|Sanitäter\n|FID-7|Bodyguards/Präsident\n|FID-24|Ordnungsamt\n|FID-8|Hitman\
\n|FID-9|Newsreporter\n|FID-13|Grove Street Families\n|FID-14|Front Yard Ballas\n|FID-20|Terroristen","Infos","Abbrechen");
}
}
return 1;
} (Ich habe die Zeilen getrennt, da sie sonst zu lang ist)
Also das hier wird als error angezeigt(der error ist mir bekannt, aber ich kann ihn gerade nicht in den zeilen entdecken)Code
Alles anzeigenF:\Neuer Ordner\GTA SAMP Server\Reallife of Germany (19.04.13)\gamemodes\RealLife-of-Germany.pwn(20174) : error 029: invalid expression, assumed zero F:\Neuer Ordner\GTA SAMP Server\Reallife of Germany (19.04.13)\gamemodes\RealLife-of-Germany.pwn(20174) : warning 215: expression has no effect F:\Neuer Ordner\GTA SAMP Server\Reallife of Germany (19.04.13)\gamemodes\RealLife-of-Germany.pwn(20174) : warning 215: expression has no effect F:\Neuer Ordner\GTA SAMP Server\Reallife of Germany (19.04.13)\gamemodes\RealLife-of-Germany.pwn(20174) : warning 215: expression has no effect F:\Neuer Ordner\GTA SAMP Server\Reallife of Germany (19.04.13)\gamemodes\RealLife-of-Germany.pwn(20174) : warning 215: expression has no effect F:\Neuer Ordner\GTA SAMP Server\Reallife of Germany (19.04.13)\gamemodes\RealLife-of-Germany.pwn(20174) : warning 215: expression has no effect F:\Neuer Ordner\GTA SAMP Server\Reallife of Germany (19.04.13)\gamemodes\RealLife-of-Germany.pwn(20174) : error 001: expected token: ";", but found ")" F:\Neuer Ordner\GTA SAMP Server\Reallife of Germany (19.04.13)\gamemodes\RealLife-of-Germany.pwn(20174) : error 029: invalid expression, assumed zero F:\Neuer Ordner\GTA SAMP Server\Reallife of Germany (19.04.13)\gamemodes\RealLife-of-Germany.pwn(20174) : fatal error 107: too many error messages on one line Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase 4 Errors.
das ist die fehlerzeile:\n|FID-9|Newsreporter\n|FID-13|Grove Street Families\n|FID-14|Front Yard Ballas\n|FID-20|Terroristen","Infos","Abbrechen");
bitte um hilfe
mfg FishToast -
Was willst du denn überhaupt compilen?
-
Ähmmmm, es ist 5 uhr morgens und ich hoche seit fast 8h am script. ist dann so ein extremer schusselfehler noch verzeihlich?
ich danke dir vielmals dass du mir geholfen hast. .... es lag natürlich daran -
Guten Morgen,
ich habe folgendes Problem. Ingame wird von keine Spieler aus keiner Fraktion der Name nicht farbig angezeigt und der Spieler selber erscheint auch nicht auf der Karte. Ich weis langsam nicht mehr weiter, nach so vielen Versuchen dies zu beheben. Jede Fraktion sollte Normalerweise eine Farbe haben und auch mit dieser auf der Map angezeigt werden. Hier mal die Versuche es zu beheben im Script:
public OnGameModeInit()
blablabla
ShowPlayerMarkers(2);
blablabla
weiter unten in OnGameModeInit:
SetTimer("SmallPlayerUpdate",2000,1);
blablabla
public SmallPlayerUpdate(playerid)
{
if(IsPlayerConnected(playerid))
{
if(gPlayerLogged[playerid])
{
SetPlayerToTeamColor(playerid);
if(PlayerInfo[playerid][pLeader] == 3 || PlayerInfo[playerid][pMember] == 3 || PlayerInfo[playerid][pLeader] == 8 || PlayerInfo[playerid][pMember] == 8)
{
if(GetPlayerWeapon(playerid) == 34)
{
SetPlayerAttachedObject(playerid,3 , 18643, 6, 0.158249, 0.010233, 0.128052, 6.868255, 351.962524, 356.884216);
}
else
{
RemovePlayerAttachedObject(playerid,3);
}
}
}
}
}
public SetPlayerToTeamColor(playerid)
{
for(new i = 0; i <MAX_PLAYERS; i++)
if(PlayerInfo[playerid][pRank] >= 0)
{
if(PlayerInfo[playerid][pMember] == 0 || PlayerInfo[playerid][pLeader] == 0)
{
SetPlayerColor(playerid,ZIVIFARBE);
SetPlayerMarkerForPlayer(i,playerid,ZIVIFARBE);
}
if (PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
{
SetPlayerColor(playerid,SAPDFARBE);
SetPlayerMarkerForPlayer(i,playerid,SAPDFARBE);
}
if (PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pLeader] == 2)
{
SetPlayerColor(playerid,ZIVIFARBE);
SetPlayerMarkerForPlayer(i,playerid,ZIVIFARBE);
}
if (PlayerInfo[playerid][pMember] == 13 || PlayerInfo[playerid][pLeader] == 13)
{
SetPlayerColor(playerid,GROVEFARBE);
SetPlayerMarkerForPlayer(i,playerid,GROVEFARBE);
}
if (PlayerInfo[playerid][pMember] == 12 || PlayerInfo[playerid][pLeader] == 12)
{
SetPlayerColor(playerid,ZIVIFARBE);
SetPlayerMarkerForPlayer(i,playerid,ZIVIFARBE);
}
if (PlayerInfo[playerid][pMember] == 3 || PlayerInfo[playerid][pLeader] == 3)
{
SetPlayerColor(playerid,ARMYFARBE);
SetPlayerMarkerForPlayer(i,playerid,ARMYFARBE);
}
if (PlayerInfo[playerid][pMember] == 4 || PlayerInfo[playerid][pLeader] == 4)
{
SetPlayerColor(playerid,SANIFARBE);
SetPlayerMarkerForPlayer(i,playerid,SANIFARBE);
}
if (PlayerInfo[playerid][pMember] == 5 || PlayerInfo[playerid][pLeader] == 5)
{
SetPlayerColor(playerid,ZIVIFARBE);
SetPlayerMarkerForPlayer(i,playerid,ZIVIFARBE);
}
if (PlayerInfo[playerid][pMember] == 6 || PlayerInfo[playerid][pLeader] == 6)
{
SetPlayerColor(playerid,ZIVIFARBE);
SetPlayerMarkerForPlayer(i,playerid,ZIVIFARBE);
}
if (PlayerInfo[playerid][pLeader] == 7)
{
SetPlayerColor(playerid,PRAESIFARBE);
SetPlayerMarkerForPlayer(i,playerid,PRAESIFARBE);
}
if (PlayerInfo[playerid][pMember] == 7)
{
SetPlayerColor(playerid,BODYFARBE);
SetPlayerMarkerForPlayer(i,playerid,BODYFARBE);
}
if (PlayerInfo[playerid][pMember] == 16 || PlayerInfo[playerid][pLeader] == 16)
{
SetPlayerColor(playerid,ZIVIFARBE);
SetPlayerMarkerForPlayer(i,playerid,ZIVIFARBE);
}
if (PlayerInfo[playerid][pMember] == 17 || PlayerInfo[playerid][pLeader] == 17)
{
SetPlayerColor(playerid,ZIVIFARBE);
SetPlayerMarkerForPlayer(i,playerid,ZIVIFARBE);
}
if (PlayerInfo[playerid][pMember] == 18 || PlayerInfo[playerid][pLeader] == 18)
{
SetPlayerColor(playerid,ZIVIFARBE);
SetPlayerMarkerForPlayer(i,playerid,ZIVIFARBE);
}
if (PlayerInfo[playerid][pMember] == 19 || PlayerInfo[playerid][pLeader] == 19)
{
SetPlayerColor(playerid,ZIVIFARBE);
SetPlayerMarkerForPlayer(i,playerid,ZIVIFARBE);
}
if (PlayerInfo[playerid][pMember] == 20 || PlayerInfo[playerid][pLeader] == 20)
{
SetPlayerColor(playerid,TERRORFARBE);
SetPlayerMarkerForPlayer(i,playerid,TERRORFARBE);
}
if (PlayerInfo[playerid][pMember] == 21 || PlayerInfo[playerid][pLeader] == 21)
{
SetPlayerColor(playerid,ZIVIFARBE);
SetPlayerMarkerForPlayer(i,playerid,ZIVIFARBE);
}
if (PlayerInfo[playerid][pMember] == 22 || PlayerInfo[playerid][pLeader] == 22)
{
SetPlayerColor(playerid,ZIVIFARBE);
SetPlayerMarkerForPlayer(i,playerid,ZIVIFARBE);
}
if (PlayerInfo[playerid][pMember] == 23 || PlayerInfo[playerid][pLeader] == 23)
{
SetPlayerColor(playerid,ZIVIFARBE);
SetPlayerMarkerForPlayer(i,playerid,ZIVIFARBE);
}
if (PlayerInfo[playerid][pMember] == 24 || PlayerInfo[playerid][pLeader] == 24)
{
SetPlayerColor(playerid,OAMTFARBE);
SetPlayerMarkerForPlayer(i,playerid,OAMTFARBE);
}
if (PlayerInfo[playerid][pMember] == 8 || PlayerInfo[playerid][pLeader] == 8)
{
SetPlayerColor(playerid,HITMANFARBE);
SetPlayerMarkerForPlayer(i,playerid,HITMANFARBE);
}
if (PlayerInfo[playerid][pMember] == 9 || PlayerInfo[playerid][pLeader] == 9)
{
SetPlayerColor(playerid,REPORTERFARBE);
SetPlayerMarkerForPlayer(i,playerid,REPORTERFARBE);
}
}
}
Achso: Die Farben sind oben schon alle definiert ;)
hab mal unnötiges weggelassen hier hin zu schreiben
Also noch was: das mit dem Laser Update an der Sniper Klappt ja, nur die Namensfarbe flackert manchmal für ein paar millisekunden auf aber man sieht auch keinen auf der karte. wäre dankbar für hilfe
Mfg FishToast -
nette systeme
weiter so -
Es zählen nicht die Zeilen, es zählt das, was in den Zeilen geschrieben ist. Manchmal bezwecken 50k Zeilen das gleiche wie 70k Zeilen
-
Guten Tag,
mein Problem ist: Wenn ich in dem San Andreas Map Editor ein Standartobjekt lösche und an die Stelle wo das Objekt war, in MTA etwas hinmappen möchte dann ist es ja dort noch da, dieses Objekt. Gibt es eine Möglichkeit die RemoveBuildingForPlayer aus dem SA Map Editor in MTA einzufügen, sodass in MTA diese Objekte auch fehlen? Bin dankbar für jede Hilfe. Sry wenn diese Frage schon mal gab.
MFG FishToast -
hallo,
ich habe schon seit längerem nach einem guten Tutorial für ein dynamisches fraktionscarsystem gesucht. Jetzt wollte ich mal fragen ob ihr vielleich ein gutes kennt, man sollte in dem system ingame fraktionscars erstellen können die mit dini gespeichert werden...
naja ihr wisst schon was ich meine. ich habe so etwas noch nicht vorher gescriptet und denke ein tutorial würde etwas helfen.
MFG FishToast