/event nur begrenzte Anzahl von Spieler.

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
  • Ich hätte das gerne so das man eingeben kann wie viele user /event machen können. Also ich sag ich mache ein Event mit 10 Spieler dann muss ich /event 10 machen und dann können auch nur 10 Spieler /event machen danach ist dieser befehl gesperrt.
    Ist sowas machbar?


    if(strcmp(cmd, "/pevent", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pAdmin] >= 4)
    {
    if(EventAktiv == false)
    {
    GetPlayerPos(playerid, EventPos[0], EventPos[1], EventPos[2]);
    EventInt = GetPlayerInterior(playerid);
    EventVW = GetPlayerVirtualWorld(playerid);
    EventAktiv = true;
    SendClientMessage(playerid, COLOR_GRAD1, "Du hast ein Event an dieser Position gesetzt!");
    SendClientMessageToAll(TEAM_GROVE_COLOR, "Ein Event ist aktiv! Benutze /event um dich hinzuteleportieren.");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Dir ist es nicht erlaubt, diesen Befehl zu benutzen!");
    }
    }
    return 1;
    }
    if(strcmp(cmd, "/event", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(EventAktiv == true)
    {
    SetPlayerPos(playerid, EventPos[0], EventPos[1], EventPos[2]);
    SetPlayerInterior(playerid, EventInt);
    SetPlayerVirtualWorld(playerid, EventVW);
    SendClientMessage(playerid, COLOR_GRAD2, "Du hast dich zum Event telepotiert!");
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "%s hat sich zum Event geportet!", sendername);
    ABroadCast(COLOR_YELLOW, string, 1);
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Es ist kein Event aktiv!");
    }
    }
    return 1;
    }
    if(strcmp(cmd, "/delevent", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pAdmin] >= 1)
    {
    if(EventAktiv == true)
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Event ausgeschaltet!");
    SendClientMessageToAll(TEAM_GROVE_COLOR, "Das Event ist vorbei.");
    EventAktiv = false;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Dir ist nicht erlaubt diesen Befehl zu benutzen! ");
    }
    }
    return 1;
    }

  • dan gib einer variabel den wert welchen du bei /event einstellen willst und wenn der spieler /event macht vergleichst du eine variabel mit der eingestellten
    jedoch solltest die variabel die du vergleichst pro /event erhöhen bis der wert gleich ist

  • mach nen wert
    z.B.


    new wert;
    dann wenn ein spieler /evelt eingibt machst du das
    wert++;
    dann eine Abfrage machen z.B
    if(wert==XX)
    {
    reinlassen
    }
    else
    {
    error voll
    }
    wenn er das event verlässt macht du wert--;

  • dafür musst du abfragen ob er darin ist wenn ja error wenn nein dann reinlassen


  • Genauso wie er es hier gemacht hat.
    Wenn ein Spieler /event eingibt, wird die Variable um 1 höher gesetzt und wenn er das Event verlässt um 1 zurück.
    Ist doch ganz logisch?

  • so wenn er den command eingibt das erstma oben
    new Eventspawn[MAX_PLAYERS];


    wenn er das event betritt machst du das in den Command rein


    Eventspawn[playerid]=1;
    wenn er es verlässt machst du da statt ne 1 ne 0
    bei der abfrage machst du es so
    if(Eventspawn[playerid]==1)
    {
    hier error
    }
    else
    {
    reinlassen
    }

  • machs doch einfacher ^^


    Beim Einstellen der Eventteilnehmer setzt du eine Integervariable auf den eingegeben Wert.
    Wenn jemand am Event teilnimmt, fragst du ab ob der Teilnehmerwert auf 0 ist, wenn ja,
    dann ist das Event voll und er kommt nichtmehr rein.
    Wenn nein, dann darf er am Event teilnehmen und die Teilnehmervariable wird um eins verringert.