Beiträge von Tirus

    Ist es nicht total Unbewuem auf so nem Bike zu sitzen ?
    Und darf man auch auf der Staraße fahren ?


    Externer Inhalt
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.
    [/youtube
    ]

    Naja checkpoints abfahren klingt nicht besonmders was cool wäre wenn eine Kleine Zeitung geworfen wird wenn man durch einen Checkpoint fährt (sowas wäre was für Trooper...^^)

    Eure Idee finde ich ne Super sache allerdings ist das Forum in sachen Header und Style nicht das was man von eine mDesigner Team erwartet bei größeren Monitoren ist beim Forum am Rand einfach nur Schwarz und das sieht Häßlich aus...

    dcmd_setskin(playerid,params[]) {
    new
    skin;
    if(sscanf(params, "d",skin)) {
    return SendClientMessage(playerid,COLOR_RED,"Benutzung: /setskin [SkinID]");
    }
    SetPlayerSkin(playerid, skin);


    return 1;
    }

    Ich zeige euch hier wie ihr einen Individuellen Payday scriptet der für jeden Spieler einzeln läuft.


    Als erstes erstellen wir den Public oben bei den Forwards und den Timer.



    forward pimer(playerid);
    new pimerday[MAX_PLAYERS]; // MAX_PLAYERS ist die Anzahl da für jeden eines erstellt wird.
    pSincePayday[MAX_PLAYERS];
    new pPlaytime[MAX_PLAYERS];


    dann starten wir den Timer am besten unter "Onplayerconnect "oder bei Godfather empfehlenswert bei "Onplayerlogin".



    pimerday[playerid] = SetTimerEx("pimer",60000,1,"i",playerid);


    // pimerday[playerid] ist der Timername
    // pimer der Public er am Ende des Timers ausgelöst wird
    // 60000 die ZEit in Millisekunden bis der Public ausgelöst wird.
    // die "1" ob der TImer wiederholt werden soll
    // "i" steht für Integer eine Zahl ohne Komma ist entscheinend für Playerid da das die VAriable ist die übergeben wird.


    danach killen wir den Timer bei OnPlayerDisconnect

    KillTimer(pimerday[playerid]);



    dann fehlt natürlich nur noch der Public



    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.
    GivePlayerMoney(playerid, 2000); // der ID "Playerid" werden 2000$ gegeben
    }
    else
    {
    pSincePayday[playerid]++; // ZEit seit Payday wird um 1 erhöht
    }
    return 1;
    }



    EDIT:


    So jetzt speichern wir das noc hdass er zwischendurch auch OFfline gehen kann ich verwende dazu Dini.


    bei "OnplayerConnect "kommt das hier rein:

    new playername[16],string[32];
    GetPlayerName(playerid,playername,sizeof(playername));
    format(string,sizeof(string),"%s.ini",playername); // %s steht für einen String. In unserem Fall playername also dem NAmen vom SPieler also würde der STring bei mir heiße Tirus.ini
    if(dini_Exists(string)) // Fragt ab ob die Datei string existiert string ist in unserem FAll : "[namevomspieler].ini"
    {
    new paydayzeit = dini_Int(string, "zeitseitpayday"); // Lädt in der Datei des Spielers das was unter zeitseitpayday gespeichert ist und speichert es in der Variable paydayzeit.
    new spielzeitinsgesamt = dini_Int(string, "spielzeit"); // Lädt in der Datei des Spielers das was unter spielzeit gespeichert ist und speichert es in der Variable spielzeitinsgesamt.


    pSincePayday[playerid] = paydayzeit; // ändert die pSincePAyday variable um zu dem was wir gespeichert haben (bzw. erst noch kommt im Tut)
    pPlaytime[playerid] = spielzeitinsgesamt; // Das gleiche wie darüber nur mit anderen Variablen


    }
    else // die Datei existiert nicht
    {
    dini_Create(string);// Erstellt die Datei mit dem Namen "[namevomspieler].ini"
    }


    Da wir natürlich nichts laden können was nicht erstellt wurde müssen wir es beim Verlassen des Spielers vom Server noch hinzufügen also bei "Onplayerdisconnect"

    new playername[16],string[32];
    GetPlayerName(playerid,playername,sizeof(playername));// Das gleiche wie oben wir müssen erstmal den Namen des SPielers herausfinden um die Richtige Ini zu finden
    format(string,sizeof(string),"%s.ini",playername);


    dini_IntSet(string, "zeitseitpayday", pSincePayday[playerid]);// setzt in der Datei des Spielers zeitseitpayday auf das gleiche wie pSincePayday.
    dini_IntSet(string, "spielzeit", pPlaytime[playerid]);// setzt in der Datei des Spielers Spielzeit auf das gleiche wie pPlaytime.


    Die Spieler sollten das natürlich auch i-wie abrufen können dazu erstelle ich einen Command unter "OnPlayerCommandtext"



    if (strcmp("/payday", cmdtext, true, 10) == 0)
    {
    new string[128];
    new zeitrechnen = pSincePayday[playerid]-60;
    format(string, sizeof(string), "Zeit seit Payday: %d Spielzeit insgesamt:%d ",pSincePayday[playerid],pPlaytime[playerid] );
    SendClientMessage(playerid, 0xFFFFFFAA,string);// sendet Playerid in der Farbe Weiß String das ist das was wir eine ZEile obendrüber definiert haben.
    return 1;
    }