abfrage on jemand letzter ist

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
  • hallo, ich habe eine DM arena erstellt mit nem timer:


    public DMTele(playerid)
    {
    for(new player = 0; player < MAX_PLAYERS; player++)
    {
    if(IsPlayerConnected(player))
    {
    if(gTeam[player]== TEAM_Grove)
    {
    SetPlayerPos(player, 4122.0176,-1721.6714,10.5246);
    }
    }
    }

    for(new player = 0; player < MAX_PLAYERS; player++)
    {
    if(IsPlayerConnected(player))
    {
    if(gTeam[player]== TEAM_Polizei)
    {
    SetPlayerPos(player, 4078.4377,-1734.8812,5.3267);
    }
    }
    }


    // USW.


    dort möchte ich jetzt einfügen wenn einer der letzte in dieser arena ist das der dann geld bekommt und rausteleportiert wird


    als eine abfrage ob er letzter ist in dieser arena geht sowas, wenn ja wie ?

  • Hmm, geht auch leichter ;)


    OnGameModeInit
    new spieleronline = 0;
    OnPlayerConnect
    spieleronline = spieleronline + 1
    OnPlayerDisconnect
    spieleronline = spieleronline - 1


    Dann halt um prüfen
    OnGameModeInit
    new spielerenter = 0;
    Beim SetPlayerPos
    spielerenter = spielerenter + 1
    und dann darüber/dadrunter
    if(spielerenter == spieleronline)
    {
    //effekt
    }


    P.S.: die variable spielerenter nach der runde immer zurücksetzen (auf 0)

  • Eigeninitiative wird echt nichtmehr groß geschrieben :/


    Pack bei der Telefunktion (ich bin ja nicht Gott, ich weiß nit, ob das per Timer oder Textbefehl abgerufen wird)

    Zitat

    if(spielerenter == spieleronline)
    {
    //effekt (und effekt kann euch zurückporten etc. bedeuten :/ )
    }

  • Also es reicht dir nicht, wenn ich dir das gesamte Script schreibe und einen Kommentar an die Stelle packe, wo du nurnoch deinen Code einfügen musst.
    Diesen Code musst du dann sogar nurnoch nach Anleitung einfügen und bei dir anpassen !


    Mehr Hilfe geht nur über Teamviewer , wenn jmd. dir das reinbaut.
    Aber selber denken schadet nicht, was aber leider anscheinend nicht viele wissen.


    Ich gab dir das Werkzeug, bau du dir dein Script daraus ;)


    Bin ebenfalls im Bett,
    gn8

  • Es geht einfacher :)
    //ganz nach oben:
    new imdm, indasdm[MAX_PLAYERS];;
    //OnPlayerDisconnect und wenn er das DM anders verlässt (z.B. /dmexit oder so):
    if(indasdm[playerid]==1) {
    imdm--;
    indasdm[playerid]--;
    if(imdm==1) {
    for(new i=0; i<MAX_PLAYERS; i++) {
    if(IsPlayerConnected(i)) {
    if(indasdm[i]==1) {
    SendClientMessage(i,FARBE,"Du hast gewonnen bla bla");
    GivePlayerMoney(i,SUMME); }}}}

  • wenn ich nur das rein mache:


    if(indasdm[playerid]==1) {
    imdm--;
    indasdm[playerid]--;
    if(imdm==1) {
    for(new i=0; i<MAX_PLAYERS; i++) {
    if(IsPlayerConnected(i)) {
    if(indasdm[i]==1) {
    SendClientMessage(i,COLOR_YELLOW,"Du hast gewonnen bla bla");
    GivePlayerMoney(i,1546); }}}}


    bekomme ich 4 errors, wenn cih das reinmache:


    new imdm;
    new indasdm[MAX_PLAYERS];



    bekomme ich 26 errors

  • Ok, mit meiner Möglichkeit errechnest du, wieviele Spieler auf dem Server sind.
    Also

    Code
    Er tritt als x./24 Spielern bei


    Bei jedem Arenaeintritt wird dann x (Startwert 0) um eins hochgezählt.
    Also

    Code
    Er tritt als 1/24 Spielern bei


    Code
    Er tritt als 2/24 Spielern bei


    Code
    Er tritt als 3/24 Spielern bei


    etc.


    Wenn nun aber die maximale Spieleranzahl gleich der Beitrittsnummer (also x ) ist,
    d.h.

    Code
    Er tritt als 24/24 Spielern bei


    ist er der letzte ;)