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

    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 Fragen :D


    Mit 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 geupdatet


    Ich 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

    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)


    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

    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

    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