Beiträge von Pille

    Rauchen kostet nicht nur immens viel Kohle,
    geht auch auf die Lunge und weitaus mehr Organe ^^


    Heb dir das Geld lieber für etwas wichtiges auf,
    glaub mir, ich spreche aus Erfahrung ;)

    Kurz gesagt: Mit folgender Lösung bekommt der User mit der niedrigsten ID,
    der gerade auf dem Server ist +50 Score, und das wars.
    Nurnoch die Nachricht kommt.

    Spoiler anzeigen
    ocmd:giveallscore (playerid,params[])
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    SetPlayerScore(i, GetPlayerScore(i) +50);
    SendClientMessage(playerid, 0xffffffff, "Allen Spielern wurden 50 Score geschenkt!");
    return 1;
    }
    }
    return 1;
    }

    Zu den wenigsten Sachen gibt es eine eindeutige Antwort,
    es gibt immer Meinungsverschiedenheiten und verschiedene Wege
    zum Ziel zu kommen.


    Wer also "Mist" verzapft, schlägt einen anderen Lösungsvorschlag vor.
    Mehr nicht.

    Das Script setzt nun den Socre des Spielers mit der ID 0 auf +50,
    dann sendet er eine ClientMessage, und dann beendet er die Schleife.


    Alle anderen Scores werden nicht verändert.



    Die Lösung:
    ocmd:giveallscore (playerid,params[])
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    SetPlayerScore(i, GetPlayerScore(i) +50);
    }
    }
    SendClientMessage(playerid, 0xffffffff, "Allen Spielern wurden 50 Score geschenkt!");
    return 1;
    }

    Mit GetPlayerScore kannst du den Score des Spielers herausfinden.
    Dann speicherst du ihn ihn eine Integer-Variable und erhöhst diese um
    die Anzahl.


    Beispiel:


    new score;
    score=GetPlayerScore(playerid);
    SetPlayerScore(playerid,score+50)

    Wo hast du Jura studiert im Keller?


    Musst du denn gleich provozieren?



    Ich will dich nur darauf hinweisen, dass wenn man etwas nicht weiß
    oder falsch hinschreibt, man nicht lügt, sondern man sein bestes
    gibt anderen Leuten zu helfen aber man es nicht besser weiß,
    es falsch verstanden hat etc..


    :thumbdown:

    ocmd:giveallscore (playerid,params[])
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    SetPlayerScore(i, 50); //kann geändert werden.
    }
    SendClientMessage(playerid, 0xffffffff, "Allen Spielern wurden 50 Score geschenkt!");
    return 1;
    }

    Also lüg nicht.


    Lügen tut hier sicher keiner, man gibt sein bestes
    zu dem Thema ab was man weiß, und wenn es falsch ist,
    liegt man vlt. falsch, aber man lügt nicht, das ist eine Anschuldigung, sogar eine Straftat :!:


    Wenn man zuviel Überprüfungen bei OnPlayerUpdate hat, kommt das zu extremen
    Laggs, wer mit Timern arbeitet, kann so sicher Laggs (er-)sparen,
    ob das jedoch dann mit dem Anticheat mit Timern problemlos funktioniert - da bin ich überfragt.

    Folgende Frage:


    Ich habe etwas in eine Datei geschrieben, so ähnlich wie dini das macht,
    also "NAME=WERT".


    Jetzt möcht ich diesen Wert auslesen, aber ich komm nicht drauf wie ich das mache.
    Ich muss irgendwie die Zeilenangabe auslesen lassen, weiß aber nicht wie :S


    new File:data=fopen("%i.txt",io_read);
    new string[50];
    fread(data,string,50);
    fclose(data);
    // Und nun?


    Die Datei hat in der ersten Zeile folgenden Inhalt:
    "Dateiname=333"


    Ich will die 333 rauslesen, die 333 kann sowohl eine Zahl,
    als auch eine Zeichenkette mit einer Länge von max. 20 Zeichen sein.


    Wie lese ich das heraus?



    ocmd:duty(playerid,params[])
    {
    if(!istPlayerJob(playerid,2))return SendClientMessage(playerid,Gelb,"Du bist kein Pilot");
    new model = GetVehicleModel(GetPlayerVehicleID(playerid));
    if(model == 577 || model == 511)
    SetPlayerCheckpoint(playerid,2052.0886,-2593.5962,13.5469,10.0);
    SetTimerEx("Jobtimer",15000,false,"i",playerid);
    return 1;
    }


    forward Jobtimer(playerid);
    public Jobtimer(playerid)
    {
    DisablePlayerCheckpoint(playerid);
    SetPlayerCheckpoint(playerid,x,y,z,range);
    return 1;
    }