Beiträge von Kaliber

    if(IsAMemberFromFraktion(GetPlayerVehicleID(playerid)) != SpielerInfo[playerid][pMember] && IsAMemberFromFraktion(GetPlayerVehicleID(playerid)) != SpielerInfo[playerid][pLeader])return SendClientMessage(playerid, -1, "Du hast die Autoschlüssel nicht!");

    Also hier musst du || verwenden, sonst heißt es ja, dass er Member und Leader sein muss ^^


    Kannst ja mal wenn das nicht gehen sollte einen print Debug machen und schauen, was er da ausgibt :)

    Mein Problem ist jetzt aber, OnPlayerStateChange fragt es ja nur bei sich selbst ab, nicht per "pID" die ich Spectaten möchte, wie ich kann es dies nun anpassen?

    Da wo du den Spectate Befehl startest, musst du so eine Zeile machen:


    PS: Unter OnPlayerConnect solltest du sInfo[playerid][sSpectate] = -1; machen, damit da nichts passiert oder INVALID_PLAYER_ID.


    sInfo[playerid][sSpectate] = pID; //pID = Die Person die du spectaten willst


    Dann kannst du unter OnPlayerStateChange abfragen:


    C
    for(new i=GetPlayerPoolSize(); i!=-1; i--) //Loopst durch alle Spieler
    {
        if(IsPlayerConnected(i) && sInfo[i][sSpectate] == playerid)
        {
            //Hier entspricht i=der playerid, die den Spieler spectatet und playerid entspricht der pID, also der, der spectatet wird :)
        }
    }

    Kennt einer ne Seite wo ich mehrere Namen eintrage und sie random ausgewählt werden?

    Da brennt mein Informatiker Herz xD


    Drück F12 klick auf Console und gib ein:


    JavaScript
    //Hier alle Namen reinschreiben
    var names = ["Albert","Rocky","Balbo","Test"]; //dann enter drücken
    //und dann gib folgendes ein:
    names[Math.round(Math.random()*1000)%names.length]; //Das gibt dir einen zufälligen Namen aus der Liste xD

    Das ist kein Bug in dem Sinne...das ist Absicht von GTA SA.


    Deshalb kannst du meistens keine NRG auf einem Server kaufen, weil du durch den Glitch einfach unglaublich schnell wirst :whistling:


    Kann natürlich durch gewisse Abfragen in SA:MP verhindert werden..oder auch durch n Mod xD

    Das ist keine triviale Aufgabe.
    Man muss hier schon einige Dinge beachten.


    Als Tipp eventuell du solltest nicht versuchen das einfach random irgendwo zwischen zu quetschen, bei so "komplexen" Aufgaben, solltest du das gezielt auslagern, so entstehen weniger Fehler.
    Am besten baust du die Aufgabe als Include auf, worauf du vereinzelnd zugreifst für die jeweiligen Funktionen.


    Du brauchst auf jeden Fall die [wiki]gettime[/wiki] Funktion und die [wiki]getdate[/wiki] Funktion.


    • gettime als Timestamp, wenn sich der Spieler einloggt x[playerid] = gettime(), wenn er sich ausloggt pTimestamp[playerid] += (gettime()-x[playerid])
    • Lager das alles aus, sonst verlierst du nur den Überblick
    • Hat er heute schon mal den Bonus bekommen.
    • Beim einloggen am besten prüfen, wie lange ist sein letzter Bonus her, musst Daten (Plural von Datum = Daten) Differenzen bilden.
    • Brauchst einen Spieler Timer, der prüft ob er 120 Minuten erreicht hat.

      • Denk hier daran, dass gettime in Sekunden zählt. Für die Abfrage brauchst du also sowas wie:
      • if(pTimestamp[playerid]+(gettime()-x[playerid]) >= 60*120) //Dann Bonus
      • Vergiss nicht, dass da noch eine Abfrage rein muss, ob er heute schon den Bonus hatte
    • Dann wieder zu beachten, dass wenn er von 23:59 auf 00:00 durchzockt, x[playerid] = gettime() zu setzen.

    Also das ist eine ziemlich komplexe Angelegenheit und in meinen Augen für einen Neuling etwas zu komplex.


    Kannst du ja mal daran versuchen und deinen Zwischenstand mal posten.


    Auf jeden Fall wie gesagt am Besten auslagern, wenn du das alles so in deinen Code schreibst kommt nur Chaos dabei raus ^^

    @hav0K~ Ab jetzt gibt es die Möglichkeit deinen Avatar zu heiraten :lach:


    Externer Inhalt www.youtube.com
    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.

    • Du machst CreatePickup(1318, 1, SShop[i][skinX], SShop[i][skinY], SShop[i][skinZ]+0.75, 0);. Da setzt du die Virtuelle Welt nicht mit dem letzten Parameter, ich glaube da solltest du ein i reinsetzen :)
    • Du zählst skinCount hoch, im Endeffekt kannst du dir das schenken, da du es nicht verwendest und skinCount = MAX_SHOPS ist ;)