Beiträge von ray187

    Modulo 100 -> %100 gibt den Restbetrag des Teilens aus.


    Vorsicht allerdings denn wenn du mit GetPlayerMoney arbeitest bist du vor Moneycheating nicht gesichert.

    Entweder sind deine includes nicht sauber oder die Zeilen insb. über dieser würden Aufschluss geben - da Du aber nur spärlich Informationen lieferst ist weitere Hilfe nicht möglich.

    Zitat

    würde es so gehen die einzelnen Information wie die Kasse in einer .ini abzuspeichern oder muss ich das anders machen?


    Das würde so durchaus funktioneren. Kommt aber auch drauf an, wie Du die ini's abspeichern willst. Falls Fraktionsnamen.ini würde sich whitespace nicht gut machen schätze ich.


    Abfrage sieht wie bei Spielerabfrage aus, Fraktion[fraktionsid][NAME] (nur dass Du NAME in deinem enum gar nicht verwendest). Als fraktionsid musst Du die jeweilige ID der zugehörigen Fraktion verwenden.

    Aufgrund der fehlenden Indentication kann ich nur Vermutungen äußern... was schließt die unterste Klammer nach return 1; in diesem Ausschnitt?



    if(PlayerInfo[playerid][pTot] == 1 && FirstSpawn[playerid] == 0)
    {
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_LIGHTRED, " ");
    SendClientMessage(playerid, COLOR_YELLOW, "|________________________ Am Krankenhaus ________________________|");
    SendClientMessage(playerid, COLOR_LIGHTRED, "Durch deine schweren Verletzungnen liegst du im Koma!");
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "Du bist für 1-2 Minuten im Krankenhaus! Du wirst grade Behandelt.");
    ResetPlayerWeapons(playerid);
    return 1;
    }
    return 1;
    }

    Poste mal den gesamten Codeausschnitt um Zeile 5490 - 5495 herum und schau nochmal nach ob Du die richtigen Zeilen angegeben hast. Das sieht mir nicht wirklich stimmig aus.

    Wenn

    if (PlayerInfo[playerid][pSupporter] >= 1)
    +
    if (PlayerInfo[playerid][pAdmin] == 1339)


    die fehlerhaften Zeilen sind und als Fehler "invalid function or declaration" auftritt - bedeutet das idR, dass eben diese Bezeichner dem Compiler nicht bekannt sind. Von daher meine Vermutung.

    Zitat

    Probier mal so ^^


    Bitte poste doch keinen Schwachsinn.


    PlayerInfo[playerid][pSupporter] und PlayerInfo[playerid][pAdmin] sind dem Compiler nicht bekannt - kannst sein dass du Groß- und kleinschreibung missachtet hast?

    Dann bin ich mit meinem Latein am Ende - ich hab mir grad die Code Ausschnitte angeguckt und sehe nichts auffälliges, außerdem haste glaub ich schon die Execution Time der Funktionen ausgegeben und das sah mit 0-1ms ganz gut aus.


    Wenn Du deutlich über 150 Spieler hast, kann ich Dir mit den Erfahrungen die ich persönlich gemacht habe nicht mehr dienen - allerdings hört man auch von anderem in diesem Thread, dass es keine Probleme bei der Verwendung von mehreren Timern gibt.

    Ich kenn das Include nicht - allerdings dürfte es wenn du sauberen Code verwendest einfach keine Probleme geben. Kann es sein dass der Host schlecht ist (hab keine Erfahrungen mit diesem gemacht)?


    Ansonsten kann ich nur noch auf mangelhaften Code tippen (ohne Dir da was unterstellen zu wollen!).

    Das macht einen Unterschied von 20 Minuten mit dem kleinen aber feinen Nebeneffekt, dass du zukünftig eben diese Fragen nicht mehr stellen wirst.


    Ich helfe gerne aber vorallem die Commands wie Du sie am anfang hingeschrieben hast sind absolute Grundlagen, dazu braucht man kein Hintergrundwissen - das kannst du eins zu eins in Dokumentationen ablesen wenn Du Dir die Mühe machen würdest Dich mal 5 Minuten selbst damit zu beschäftigen anstelle anderen die Arbeit zuzuschieben.


    Damit ich Dich nicht gänzlich alleine lasse, geb ich Dir den direkten Link dann ersparst Dir schonmal DCMD im Wiki einzugeben :-$... http://wiki.sa-mp.com/wiki/Dcmd#sscanf.


    Ab diesem Abschnitt bis zum Ende der Seite wird vollständig erklärt was zu tun ist - Leseanspruch: 5 Minuten. Danach überträgst Du dieses Wissen auf dein Command.


    Ein vollständiges Ticketsystem ist natürlich anspruchsvoller.


    Viel Glück.

    Jetzt gehste auf wiki.sa-mp.com suchst nach dcmd und folgst der Step by Step Anleitung und änderst was für deine individuellen Ansprüche zu ändern ist. Ob Du dir den Aufwand machst das niederzuschreiben oder jemand anders macht unterm Strich keinen Unterschied, denn für so etwas braucht man kein Wissen - das kann man ablesen ;)

    Hast recht, musst ändern.


    Klar kannste das so machen, dann schreibst halt anstelle 200000 genau das rein was du weiter unten hinzufügt hast. Wenn du Dini verwendest hälst Dich halt strikt an die Documentation darüber und dann wird das schon klappen.


    Ich würde Dir aber auch raten dann nur Dini Befehle zu verwenden und nicht mal manuell schreiben und mal Dini - sonst kommst schnell durchaneinander. Viel Glück!

    gskasse verwendest du doch im Skript sobald du den Wert eingelesen hast oder? Wenn der Wert nicht existiert musst ihn ja trotzdem setzen und dann isses sinnvoller das manuell zu machen als in die Datei reinzuschreiben und dann wieder aus der Datei das was Du eben reingeschrieben hast auszulesen. Das was du in die Datei schreibst kannst Du auch direkt als Wert für gskasse setzen.


    !Inhalt[0] == Inhalt[0]=='\0' <- bedeutet dass in den String "NULL" geschrieben wurde. Wie gesagt ich weiß nicht was fread zurückgibt wenn keine Zeile existiert, NULL ist meine Vermutung.

    Ich denke nicht, dass Du wirklich etwas von dem was hier zwecks deines Problems geschildert wurde (inkl. meines Beitrags) durchgelesen hast.



    Zitat

    Zudem, wie schaffe ich es denn nun, das eine Message kommt wenn Vehicle Health bei 400 ist ?


    Musst Dir überlegen wie Du möglichst geschickt und ressourcensparend überprüfen kannst ob ein Wagen Schaden genommen hat und dadurch die VehicleHealth unter 400 geraten ist.

    Argument type mismatch, wie die Fehlerbezeichnung nahebringt, bedeuted - dass Du eine Funktion mit einem falschen Variablentyp aufrufst.


    SetPVarInt und SetPlayerColor erwarten integer, von daher denke ich dass es sich bei data0[0] um etwas anderes handelt (z.B. strings).

    Du solltest Dir zunächst mal Gedanken machen was dein Häusersystem alles bieten soll. Wie soll es funktionieren, soll etwas abgespeichert werden, dass es bei einem Neustart noch verfügbar ist, inwiefern sollen Player die Häuser betreten können etc. pp.


    Das sind alles Gedanken die mit dem Code an sich noch nichts zu tun haben sondern einfach mal eine grobe "Skizze" des späteren Systems erstellen - ich gehe davon aus, diese Gedanken hast Du Dir noch nicht gemacht ;).


    Sobald Du aber die o.g. Informationen hast kannst Du auch anfangen nach exakteren Begriffen zu suchen als "Wie erstelle ich ein Häusersystem?" - denn darauf gibt es schlichtweg keine geradlinige Antwort.

    Am einfachsten in einem array mit ner kleinen Funktion.


    Bsp.:



    stock IsValidSkin(skinid)
    {
    new skins[]={....}; // hier schreibst all deine skin ids rein
    for(new i;i<sizeof(skins);i++)
    {
    if(skinid==skins[i])
    return 1;
    }
    return 0;
    }


    Scriptzeile:


    if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 497 && IsValidSkin(GetPlayerSkin(playerid)))