Random Spieler aussuchen -> Geschenke verteilen.

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Guten Tag,


    Ich möchte ein kleines System erstellen, diese Soll 10 Randomspieler aussuchen und Geschenke verteilen.
    Ich möchte das ganze in einer 2 Sekunden reihe. Da ich jetzt nicht die ganze Idee hier bekannt geben will, möchte ich das Privat mit jemanden klären, wenn jemand mir dabei helfen kann ^^
    @Jeffry wäre echt nice.


    mfg.

  • https://wiki.sa-mp.com/wiki/SetTimer
    http://wiki.sa-mp.com/wiki/Random
    http://wiki.sa-mp.com/wiki/Loops



    Im CMD setzt du einen Timer - gehst alle Spieler durch und stellst noch eine Abfrage ob es ein validplayer ist.
    Nimm dir eine seperate vspieler bezogene variable zur Hand in der du einen counter der schleife (validplayers) speicherst.
    Den Counter lässt du +1 setzen sofern eine Spielerid online ist.
    Somit bekommt jeder der online ist eine Zahl zugewiesen.


    new var[MAX_PLAYERS],
    counter;var[loopvari] = counter;
    Dann nutzt du die Random Funktion und gehst die aktuelle größe des globalen counters durch.
    Dann hast du als output eine Zahl, diese vergleichst du nochmal mit allen Spielern und guckst welcher Spieler diesen Counter input == randomzahl
    hat und somit hast du immer einen Gewinner der Online ist.
    Natürlich noch GewinnerCounter hinzufügen oder den alten resetten um zu prüfen wie viele Gewinner schon gepickt wurden.
    Wesentlich besser als solange zu loopen bis mal rndm mit ner playerid übereinstimmt falls einer zwischen drin offline sein sollte außer man hat MAX_PLAYERS an seine reguläre Spieleranzahl angepasst,
    dann wäre es nicht so wild.

    KleineHilfe 2.0

  • Man kann auch einfach [wiki]GetPlayerPoolSize[/wiki] nutzen. Das gibt einfach die Anzahl der belegten Slots zurück.

    Wenn playerid 1 und 22 online sind , spieler dazwischen sind offline, hat man aber dennoch unnötige slots und müsste durchgehend loopen bis random irgendwann
    mit einem belegten slot übereinstimmt.
    Kann man natürlich trotzdem besser verwenden als MAX_PLAYERS im Loop.

    KleineHilfe 2.0